DAG中所有对之间的最长路径

时间:2014-11-29 18:55:56

标签: algorithm shortest-path directed-acyclic-graphs floyd-warshall

我试图找到非循环有向图中所有节点对之间的最长路径。我的问题是,如果我在邻接矩阵中做出以下初始条件,Floyyd Warshall会给出正确的答案吗?

  1. 如果i = j
  2. ,则Adj [i] [j] = 0
  3. Adj [i] [j] = - 1 * INF if i!= j且节点i和j之间没有边缘
  4. Adj [i] [j] = w [i] [j]否则,其中w [i] [j]是节点i和j之间边缘的权重
  5. 边缘的权重可以是正的和负的。

1 个答案:

答案 0 :(得分:2)

是的,Floyd Warshall可以为您的问题提供正确答案,可以证明使用Floyd Warshall找到图中所有对之间的最短路径。 或者你可以用(-1)乘以每个边,并解决你的问题,比如找到所有对之间的最短路径,然后将你的结果乘以(-1)。

但你可以在拓扑上对图进行排序,然后使用动态编程进行计算,其复杂度为最大值(| E |,| V |),而不是FW的| V | ^ 3。