为什么Bellman-Ford无法用于单一来源最长路径?

问题描述

Dijkstra不能用于最长路径,因为它使用的属性是当前最短路径肯定会比其他路径之一短。当然,假设没有负边缘权重,这是正确的。这个概念也是为什么最长路径在Dijkstra上不起作用的原因,因为当前的最长路径不能保证以后不会再有更长的路径使用更大的值。

另一方面,贝尔曼·福特(Bellman Ford)具有负重的灵活性,但性能较差。这意味着对于Bellman Ford,因此无法在与Dijkstra相同的贪婪属性上使用。这就是为什么我很困惑-为什么不能将Bellman Ford用于单源最长路径问题(NP困难)?例如,我们可以简单地将图的所有权重乘以-1并找到最短路径,该路径将是原始图的最长路径。

解决方法

Bellman-Ford允许重用电弧(否则,即使存在负循环,也将有明确定义的最短路径),而Single Source Longest Path问题则源于NP硬度,而事实并非如此(否则,您可以在将所有权重乘以−1之后再使用Bellman–Ford。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...