是否对Bellman-Ford算法的修改是否适用于DAG?

时间:2014-09-08 20:03:16

标签: algorithm time-complexity graph-theory shortest-path bellman-ford

贝尔曼 - 福特算法对于解决单源最短路径问题很有用,并且在第k次迭代时具有k-hops最优性的独特且有趣的特性,这是我的应用所需要的。 (基本上,我想要一对顶点之间最多k-hops的最短路径)

由于J.Yen,Bellman-Ford有两个wellknown improvements,据说可以将复杂度从O(| V | ^ 3)降低到O(| V | ^ 3/4)。即a通过等于1/4的常数因子(每次改进的因数为1/2)可以很好地节省计算量。

然而,似乎至少有一个修改对有向无环图(DAG)没有用,因为Yen的方法主要依赖于将图分成两个DAG,然后改变两个DAG之间的迭代,从而获得1/2倍的优点。这是对的吗?

在同样的路线上,如果您能判断Bellman-Ford是否还有其他任何改进/替代品可以找到K-hop最佳最短路径,我们将不胜感激。

1 个答案:

答案 0 :(得分:2)

Yen的修改在DAG上运行良好。实际上,如果您选择线性顺序作为DAG的拓扑顺序,那么它只会在一次迭代中收敛。对你而言,问题是Yen的修改不能解决你的问题,因为它要求边缘按特定顺序放松而不是同时放松,这就是你需要找到最多k个边缘的最短路径