所以我完全理解为什么负边缘权重不能与Dijkstra的算法一起工作,例如以下示例:
A
/ \
/ \
/ \
5 2
/ \
B--(-10)-->C
但是,我读到“如果图形中有任何负循环,您将永远不会停止更新顶点的距离。这将导致无限循环。”我不明白如果在访问顶点时声明顶点“完成”,情况会如何。如果我们不能重新访问已经访问过的顶点,我们怎么能进入一个循环?
答案 0 :(得分:4)
您描述的版本确实可以避免循环。在最低成本路径具有负边的情况下,它也可能无法发现正确的最低成本路径,但是如果没有负边,则存在更直接的路径。