在图中找到任意大权重的路径

时间:2018-05-29 13:31:45

标签: algorithm graph

给定带有n个顶点的加权有向图,其中边权重为整数(正,零或负),确定是否存在任意大权重的路径可以及时执行 -

  

O(n)的

     

O(n.log(n))但不是O(n)

     

O(n ^ 1.5)但不是O(nlogn)

     

O(n ^ 3)但不是O(n ^ 1.5)

     

O(2n)但不是O(n ^ 3)

我不明白使用什么算法,因为找到最长的路径是NP Hard问题。但是,给出的答案是O(n ^ 3)

1 个答案:

答案 0 :(得分:1)

简而言之,你必须否定权重,然后运行Floyd-Warshall算法。需要O(n ^ 3)。

如上所述here

  

图表必须是非循环的,否则路径可以有   任意大的重量。我们可以通过否定所有这些来找到最长的路径   边权重,然后使用最短路径算法。不幸的是,Dijk   如果允许边具有负权重,则stra的算法不起作用。   然而,Floyd-Warshall算法确实有效,只要没有   负重量循环,所以它可以用来找到最长的重量路径   非循环图。