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