我正在尝试获得无向无权图中所有节点对之间的所有最短路径。我目前使用的是nx.all_pairs_shortest_path()
,但我不明白为什么它只为每对节点返回一条最短路径。我的图中有圈,所以在某些节点之间应该存在多个最短路径。有什么建议吗?
发布于 2021-10-12 16:55:23
遍历图中的所有节点:
results = []
for n1 in G.nodes():
for n2 in G.nodes():
shortest_path = nx.single_source_dijkstra(G, source=n1, target=n2, weight=f)
results.append(shortest_path)
发布于 2021-11-06 00:48:41
我可能会迟到,但我刚刚遇到了同样的问题,这是我的解决方案:
def all_shortest_paths(G):
a = list(nx.all_pairs_shortest_path(G))
all_sp_list = []
for n in range(len(G.nodes)):
a1 = a[n][1]
for k,v in a1.items():
all_sp_list.append(len(v))
return all_sp_list
我尝试的其他方法都变得非常非常慢,因为我的图有一堆节点,所以这是我最快的解决方案。
https://stackoverflow.com/questions/69539672
复制相似问题