寻找Dijkstra路径的总成本

时间:2018-01-30 10:10:58

标签: python networkx

我有一个网络中两个节点之间的最短路径。

我试图找到两个节点之间的总成本。

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很新。提前致谢

1 个答案:

答案 0 :(得分:1)

您可以使用single_source_dijkstra。您的示例用法(根据文档中的示例改编):

total, path = nx.single_source_dijkstra(network, source=a, target=b)