Dijkstra算法的负周期

时间:2018-08-17 23:41:37

标签: algorithm dijkstra negative-number bellman-ford

所以我完全理解为什么负边缘权重不能与Dijkstra的算法一起工作,例如以下示例:

       A
      / \
     /   \
    /     \
   5       2
  /         \
  B--(-10)-->C

但是,我读到“如果图形中有任何负循环,您将永远不会停止更新顶点的距离。这将导致无限循环。”我不明白如果在访问顶点时声明顶点“完成”,情况会如何。如果我们不能重新访问已经访问过的顶点,我们怎么能进入一个循环?

1 个答案:

答案 0 :(得分:4)

您描述的版本确实可以避免循环。在最低成本路径具有负边的情况下,它也可能无法发现正确的最低成本路径,但是如果没有负边,则存在更直接的路径。