Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm DAG中所有对之间的最长路径_Algorithm_Shortest Path_Directed Acyclic Graphs_Floyd Warshall - Fatal编程技术网

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

Algorithm DAG中所有对之间的最长路径,algorithm,shortest-path,directed-acyclic-graphs,floyd-warshall,Algorithm,Shortest Path,Directed Acyclic Graphs,Floyd Warshall,我试图找到一个无环有向图中所有节点对之间的最长路径。我的问题是,如果我在邻接矩阵中设置以下初始条件,Floyyd Warshall会给出正确的答案吗 如果i=j,则调整[i][j]=0 调整[i][j]=-1*INF如果我=节点i和j之间没有边 Adj[i][j]=w[i][j]否则,其中w[i][j]是节点i和j之间的边的权重 边的权重可以是正的,也可以是负的。是的,Floyd Warshall可以为您的问题给出正确的答案,就像使用Floyd Warshall查找图中所有对之间的最短路径一样。

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

  • 如果i=j,则调整[i][j]=0
  • 调整[i][j]=-1*INF如果我=节点i和j之间没有边
  • Adj[i][j]=w[i][j]否则,其中w[i][j]是节点i和j之间的边的权重

  • 边的权重可以是正的,也可以是负的。

    是的,Floyd Warshall可以为您的问题给出正确的答案,就像使用Floyd Warshall查找图中所有对之间的最短路径一样。 或者,您可以将每条边与(-1)相乘,并解决您的问题,如查找所有对之间的最短路径,然后将结果与(-1)相乘


    但是你可以对图形进行拓扑排序,然后使用动态规划进行计算,它的复杂性是max(| E |,| V |),而不是FW的| V | ^3。

    问题是什么?为什么不使用动态规划来代替呢?它在时间和空间复杂度方面更有效,而且它的正确性更容易证明(我不确定你的方法是否正确)。@user2040251是的,我可以,但我想知道上面的:)需要注意的是,这只适用于非循环图。如果这个图可能包含一个圈,那么这是一个NP难问题。