graph - 带有networkx的加权图的所有最短路径?

标签 graph shortest-path networkx weighted

我有一个由两组不同的边组成的图。第一组由权重 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/

相关文章:

python - 如何从图中计算不同排列的最小排除项?

database - 图数据库更适合最短路径算法吗?

java - 用Dijkstra算法求距离为坐标的最短路径

algorithm - 来自多个集合的最短路径

python - graph_from_place OSMNX 的响应时间极长

python - 返回节点邻域中最大的节点

python - 在节点外标记 networkx 节点属性

java - 编写一个程序来标记无向图的连通分量

javascript - Mysql PHP 到 JavaScript 数组

database - 通过有向无环图存储唯一路径是否可行?