我有一个加权DAG,有一些负边缘权重,并希望在其中找到所有最短路径。是否存在复杂度优于O(n ^ 2)的算法。 (我的图表是完整的,即对于{1..n}和i 由于
答案 0 :(得分:1)
答案 1 :(得分:1)
您正在寻找的算法是Floyd-Warshall,它在O(n 3 )中运行。
有时你可以通过在每个节点上运行Djikstra来做得更好。使用fibbonacci heap,可以得到O(n 2 log n + ne),其中e =边数。这是even possible使用负边缘权重!
然而,fibbonacci堆具有较大的常数,因此在实践中,这种方法对于非常稀疏的图只会更快。既然你说你的图表已经完成,Floyd-Warshall是你最好的选择。