首页 > 解决方案 > all_pairs_dijkstra 是否比多个 dijkstra_path 快?

问题描述

只是 all_pairs_dijkstra一个dijkstra_path带有for循环的,还是所有最短路径路由都在all_pairs_dijkstra

在 for 循环中做一个all_pairs_dijkstra或多个更快吗?dijkstra_path

标签: pythonnetworkxgraph-theoryshortest-pathdijkstra

解决方案


虽然我不能具体说明 networkx 是如何实现这个功能的,但是使用 Dijkstra 算法来解决所有对最短路径问题只是意味着从图中的每个节点开始运行 Dijkstra 算法的一个副本来计算成对距离。

在决定是for围绕单个调用使用循环还是使用该all_pairs_dijkstra函数时,我建议您使用all_pairs_dijkstra,除非您有令人信服的理由不这样做,因为该函数明确传达了您的意图。另外,如果在幕后进行了任何优化,您将能够利用它们。

但特别是对于networkx,有什么理由不只使用更简单的all_shortest_paths功能吗?我想这更简单,除非你有特定的理由使用all_pairs_dijkstra.


推荐阅读