我需要找到图G
中所有对之间的最短路径。我正在使用Floyd-Warshall算法来计算解决方案。
我需要知道是否有更好的选择来找到关于G
这些事实的所有最短路径:
G
是无向图。鉴于这些事实,是否有比Floyd-Warshall更好的解决方案?
答案 0 :(得分:4)
对稀疏图进行Dijkstra最短路径算法的修改非常快并且显示对数线性(接近线性)渐近行为。你需要从N个顶点进行N次搜索,得到的O(N ^ 2 * LogN)渐近时间优于O(N ^ 3)Floyd-Warshall算法。
可能你的图表有特殊的拓扑结构,允许更有效的方法...
C++ code with Russian description(可由Google Chrome翻译)
我有网格图here的delphi实现。
答案 1 :(得分:1)
你试过Johnson的算法吗?它似乎准确地解决了你的问题,即稀疏加权图上的APSP(没有负权重的圆圈) https://en.wikipedia.org/wiki/Johnson%27s_algorithm
答案 2 :(得分:0)