all_pairs_dijkstra
只是带有循环的dijkstra_path
,还是在all_pairs_dijkstra
中一次计算出所有最短路径?
在for循环中执行一个all_pairs_dijkstra
或许多dijkstra_path
更快吗?
答案 0 :(得分:0)
尽管我不能具体说说networkx如何实现此功能,但使用Dijkstra算法来解决所有对最短路径问题只是意味着从图中的每个节点开始运行Dijkstra算法的一个副本以计算成对距离。 / p>
在决定是在单个调用周围使用for
循环还是使用all_pairs_dijkstra
函数时,我建议使用all_pairs_dijkstra
,除非您有令人信服的理由不这样做,因为该功能明确传达了您的意图。另外,如果在后台进行了任何优化,您都可以利用它们。
但是专门针对networkx,有没有理由不只使用更简单的all_shortest_paths
函数?我想这会更简单,除非您有特定的理由使用all_pairs_dijkstra
,否则这将是一个不错的选择。