【发布时间】:2023-04-06 07:18:01
【问题描述】:
该图是从 osmnx 返回的多向图。由于我有兴趣计算起点和终点之间的 k 最短路径,因此我尝试了 networkx 库。但是,networkx 似乎不适用于多向图。我只能计算最短路径。
我想问一下是否有其他方法可以在 python over multidigraph 上执行 k-最短路径计算。
【问题讨论】:
标签: python-3.x networkx osmnx
该图是从 osmnx 返回的多向图。由于我有兴趣计算起点和终点之间的 k 最短路径,因此我尝试了 networkx 库。但是,networkx 似乎不适用于多向图。我只能计算最短路径。
我想问一下是否有其他方法可以在 python over multidigraph 上执行 k-最短路径计算。
【问题讨论】:
标签: python-3.x networkx osmnx
尝试使用 networkx 命令shortest_simple_paths (documentation)。
它返回一个生成器,它一次返回一条从最短到最长的路径。
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]
这适用于DiGraphs,但我不确定MultiDiGraph。但是,我不清楚道路网络是否会是 MultiDiGraph。
【讨论】: