在最短路径列表中找到一个最小值

2024-05-01 22:00:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有我的图形对象,我试图找到一个方法,找到一组节点的最小值。你知道吗

例如节点:

      input_nodes=[123,45]
      graph_nodes=[10, 76,123,45,98,456]

我运行了一个算法来计算图中每个节点和输入中每个节点之间的最短路径。 我有一本包含所有最短路径和节点的字典:

                {10:{123:0.56, 45:0.2}, 76:{123:0, 45:0.23}......

对于每个图节点,依此类推。 如何仅获得不同于零的最小重量:

像这样:

节点10与节点45之间的最小路径, 节点76与节点45之间的最小路径, ...... 那太好了


Tags: 对象方法路径算法图形input字典节点
1条回答
网友
1楼 · 发布于 2024-05-01 22:00:58

我假设权重中可能存在联系,即一个节点可以与多个其他节点同等“接近”。下面的代码将它们全部包含在dict中。结果的结构基本上与输入d相同,但只保留最小权重项。你知道吗

更新:如果节点没有邻居或只有权重为0的邻居,则此节点将映射到结果中的空dict。你知道吗

d = {10:{123:0.56, 45:0.2}, 76:{123:0, 45:0.23}, 19:{17:0}, 20:{}}

def closest(ns):
    m = min((v for v in ns.values() if v != 0), default=-1)
    return {k: v for k, v in ns.items() if v == m}

print({k: closest(v) for k, v in d.items()})

相关问题 更多 >