如何在我的图中获得最长的最短路径?
How to get the longest shortest path in my graph?
我试图在我的图表上获得所有最长的最短路径,我确实写了这段代码:
for source in g.nodes:
for dist in g.nodes:
if source!=dist:
distination=len(nx.shortest_path(g,source,dist))
if distination>3:
print(source,dist,distination)
这段代码的输出是这样的
0 1 7
0 2 7
0 3 7
0 4 6
0 5 6
0 6 5
0 7 4
0 8 7
0 9 6
0 10 7
0 11 8
0 12 5
0 13 7
0 14 8
0 15 5
0 16 8
0 18 5
0 19 6
0 20 6
0 21 6
0 22 8
0 23 5
0 26 7
0 27 8
0 28 5
0 29 8
0 30 4
0 31 8
它给了我所需的结果,但是有没有更专业的方法来做到这一点?
你可以使用all_pairs_dijkstra_path_length
,它会给你每个节点的所有最短路径,然后你可以用它循环
ppp=nx.all_pairs_dijkstra_path_length(g)
for i in ppp:
node=max(i[1], key=i[1].get)
print(i[0],node,len(nx.shortest_path(g,i[0],node)))
我试图在我的图表上获得所有最长的最短路径,我确实写了这段代码:
for source in g.nodes:
for dist in g.nodes:
if source!=dist:
distination=len(nx.shortest_path(g,source,dist))
if distination>3:
print(source,dist,distination)
这段代码的输出是这样的
0 1 7
0 2 7
0 3 7
0 4 6
0 5 6
0 6 5
0 7 4
0 8 7
0 9 6
0 10 7
0 11 8
0 12 5
0 13 7
0 14 8
0 15 5
0 16 8
0 18 5
0 19 6
0 20 6
0 21 6
0 22 8
0 23 5
0 26 7
0 27 8
0 28 5
0 29 8
0 30 4
0 31 8
它给了我所需的结果,但是有没有更专业的方法来做到这一点?
你可以使用all_pairs_dijkstra_path_length
,它会给你每个节点的所有最短路径,然后你可以用它循环
ppp=nx.all_pairs_dijkstra_path_length(g)
for i in ppp:
node=max(i[1], key=i[1].get)
print(i[0],node,len(nx.shortest_path(g,i[0],node)))