有没有一种方法可以使用弗洛伊德-沃歇尔算法给出最短路径,其中存在负权重循环而不允许重叠边缘?

Is there a way that gives shortest path using Floyd-Warshall's algorithm where negative weight cycle exists whereas overlapped edges are not allowed?

本文关键字:存在 最短路径 权重 边缘 重叠 不允许 循环 算法 一种 方法 可以使      更新时间:2023-10-16

我们知道,如果图中出现负权重循环,则 Floyd-Warsshall 算法的结果无效,这是因为在负权重周期上多次旅行会使权重总和任意小。但是,如果我们指定不允许在上面移动重复的边,则权重总和在意义上是正确的。我想知道一种在这种情况下产生最小权重总和的方法。已经尝试了对算法的一些修改(包括当从某个顶点到自身的权重和为负时跳过循环(,但前一个矩阵仍然很奇怪,权重和矩阵完全没用(偶然我知道它的值将不可避免地发生指数增长,见链接(。

这个问题的有效解决方案意味着P=NP,所以几乎肯定没有这样的解决方案。

使用问题的多项式时间解决方案,您可以通过将所有边权重设置为 -1 并请求两个节点之间的最短路径来解决最长跟踪问题。

正如Marzio De Biasi在链接的帖子中所证明的那样,最长轨迹问题的解决方案可用于解决最大次数为3的网格图上的哈密顿循环问题,方法是将两个新节点连接到左上角节点并请求最长的轨迹。

当限制在最大次数为3的网格图时,哈密顿循环问题仍然是NP完全的,正如Christos H Papadimitriou,Umesh V Vazirani,关于与旅行推销员问题相关的两个几何问题所证明的那样,算法杂志,第5卷,第2期,1984年6月,第231-246页,ISSN 0196-6774。

因此,您的问题是NP困难的。