首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在NetworkX中寻找两个节点之间的所有最短路径

在NetworkX中寻找两个节点之间的所有最短路径
EN

Stack Overflow用户
提问于 2020-10-22 09:44:33
回答 2查看 1.6K关注 0票数 0

假设我有一个有N个节点的BA网络,其中每个节点至少有两个边。网络是不加权的。我试图为网络中的所有节点找到每个节点ij之间的所有最短路径。但是,如果节点ij之间有超过1条最短路径,则需要ij之间的每一条最短路径。

因此,如果可以使用路径[0,1,2], [0,3,4,2], [0,3,4,5,2], [0,4,5,2][0,3,2]从0到达节点2,我需要一个表示[[0,1,2], [0,3,2]]的列表。

这样做的唯一方法是计算从i到j的每条路径,并得到最小的从属性列表吗?这能否以更有效的方式建立起来?

编辑:显然有一个名为路径的路径查找方法。我会试试这个,看看它是否有效。

EN

Stack Overflow用户

回答已采纳

发布于 2020-10-22 10:13:47

您可以为此使用nx.nx.all_shortest_paths

all_shortest_paths(G,源,目标,weight=None,method='dijkstra')

它允许您指定源节点和目标节点。下面是一个简单的例子:

代码语言:javascript
运行
复制
plt.figure(figsize=(6,4))
G = nx.from_edgelist([[1,2],[2,3],[7,8],[3,8],[1,8], [2,9],[9,0],[0,7]])
nx.draw(G, with_labels=True, node_color='lightgreen')

代码语言:javascript
运行
复制
list(nx.all_shortest_paths(G, 2, 8))
# [[2, 1, 8], [2, 3, 8]]
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64479578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档