使用python中的networkx包的K最短路径

时间:2018-12-02 18:32:57

标签: python-3.x networkx osmnx

我使用osmnx软件包创建了荷兰高速公路的多维数据集。 image-exists npm module

图是从osmnx返回的多重图。由于我有兴趣计算起点和终点之间的k最短路径,因此尝试使用networkx库。但是,networkx似乎不适用于多重图。我所能计算出的最短路径。

我想问问是否还有其他方法可以在python上通过多重图执行k最短路径计算。

1 个答案:

答案 0 :(得分:1)

尝试使用networkx命令shortest_simple_pathsdocumentation)。

它返回一个生成器,该生成器一次从最短到最长返回一条路径。

G = nx.karate_club_graph()
X = nx.shortest_simple_paths(G, 0, 5)
k = 5
for counter, path in enumerate(X):
     print(path)
     if counter == k-1:
         break
> [0, 5]
> [0, 6, 5]
> [0, 10, 5]
> [0, 6, 16, 5]
> [0, 4, 6, 5]

这将与DiGraph一起使用,但是我不确定MultiDiGraph。对我来说,目前还不清楚公路网是否会是MultiDiGraph。