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

K-shortest paths using networkx package in python

我使用osmnx软件包创建了荷兰高速公路的多维图。 Motorway

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

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


尝试使用networkx命令shortest_simple_paths(文档)。

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

1
2
3
4
5
6
7
8
9
10
11
12
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。