我有一个网络中两个节点之间的最短路径。
我试图找到两个节点之间的总成本。
import numpy as np
import networkx as nx
def shortest_path(a,b):
m = np.array([[0,2,1,....]])
network = nx.from_numpy_matrix(m)
path = nx.dijkstra_path(network, source=a, target=b)
ix =[[path[i],path[i+1]] for i in range(len(path)-1)]
total = sum([m[i[0]][i[1]] for i in ix])
path = nx.dijkstra_path(network, source=a, target=b)
return(total, path)
我只是想知道是否有一个属性可以找到总成本变量,而不是我必须编写它以便我的代码看起来更干净?我似乎无法在文档中找到它,因为我对networkx很新。提前致谢
答案 0 :(得分:1)
您可以使用single_source_dijkstra
。您的示例用法(根据文档中的示例改编):
total, path = nx.single_source_dijkstra(network, source=a, target=b)