我有一个由两组不同的边组成的图。第一组由权重 1 的边组成(列表 1)。第二组由权重 2 的边组成(列表 2)。首先,我使用 networkx 创建图表,然后使用 add_edges_from 添加列表 1 和列表 2。我想计算这个加权图中的所有最短路径。基本上我正在寻找类似的“all_shortest_paths”但具有权重(看起来“dijkstra”模块不允许您知道给定源和给定目标之间的所有可能路线)。如果我尝试将“all_shortest_path”与加权链接(3元组、两个节点和权重)一起使用,我会收到错误。有谁能够帮助我? 非常感谢!
最佳答案
这是一个简单的示例,展示 all_shortest_paths() 的工作原理
import networkx as nx
import StringIO
edges = StringIO.StringIO("""
a b 1
a bb 1
b c 2
bb c 2
c d 1
a d 10""")
G = nx.read_weighted_edgelist(edges, nodetype=str)
print list(nx.all_shortest_paths(G, 'a', 'd', weight='weight'))
# [['a', 'b', 'c', 'd'], ['a', 'bb', 'c', 'd']]
关于graph - 带有networkx的加权图的所有最短路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16550292/