Floyd-Warshall算法适用于负循环

时间:2015-02-24 18:46:07

标签: algorithm graph-algorithm shortest-path floyd-warshall

如何修改Floyd-Warshall算法以找到维持O(V ^ 3)时间复杂度的有向图的任何负成本周期的最短路径?

1 个答案:

答案 0 :(得分:6)

在具有负循环的图形中没有最短路径,对于每个路径 - 通过再次遍历循环可以找到更短的路径。

如果你指的是Shortest Simple Path (每个顶点最多可以访问一次) - 除非P=NP,否则无法完成,而且很可能不是

假设您有一个有效的最短简单路径算法A
给定Longest Path Problem和图G=(V,E,w)的实例,创建一个新图G'=(V,E,w'),其中w'(u,v) = -1*w(u,v)。现在在A上调用G',您就可以在G'上获得最短的简单路径 - 这是G上最长的路径。

然而,由于最长路径是NP-Hard - 除非P = NP,否则这种解决方案是不可能的。


<强> TL; DR:

  • 在负循环图中,没有最短路径。
  • O(V^3)时间内,在负图周期的图表中找不到最短的简单路径(除非P = NP,即使那时它也不确定为O(V ^ 3))。 / LI>