如何在networkx中使用dijkstra_path查找最短路径的长度?

时间:2018-03-22 14:17:16

标签: python networkx

我试图找到最短路径的距离/重量,而不仅是最短路径。 networkx中是否有任何功能可以找到距离?

这是我的代码:

import networkx as nx 
import random

G = nx.Graph()
G.add_edge(1, 2, weight = 450)
G.add_edge(2, 1, weight = 450)
G.add_edge(1, 3, weight = 390)
G.add_edge(3, 1, weight = 390)
G.add_edge(1, 4, weight = 550)
G.add_edge(4, 1, weight = 550)
G.add_edge(1, 8, weight = 1310)
G.add_edge(8, 1, weight = 1310)
G.add_edge(2, 3, weight = 300)

node_1=input("Entrer Noeud 1:")
node_2=input("Entrer Noeud  2 :")

# shortest path
print "Le plus court chemin de ",node_1," a ",node_2," est :"
liste=nx.dijkstra_path(G,node_1,node_2)
print (liste) 

# length of the shortest path 
print "la longueur du plus court chemin est "  
print (nx.shortest_path_length(G,source=node_1,target=node_2))

1 个答案:

答案 0 :(得分:0)

您需要指定权重字段名称,在这种情况下,它只是“权重”。

nx.shortest_path_length(G, source=node_1, target=node_2, weight='weight')

有关详细信息,请参阅official documentation