我很难理解为什么Dijkstra算法不适用于具有负边的无环有向图。据我所知,Dijkstra对图形进行了广度优先遍历,在适当的时候放松。例如,考虑图表:Dijkstra和负边缘
S->A (3)
S->B (4)
B->A (-2)
其中S是源节点。这是我想象它的工作:与4
2)递归对A的距离,马克B的距离
1)标志由于A分没有节点,什么也不做。
3)在B上行走。由于B指向A,检查B的距离+ B-> A是否小于A的当前距离。2 < 3,所以标记A的距离为2
然而,显然这不是它的工作原理,因为我使用这本书给出了这张图来说明底片为什么不起作用。我无法按照本书的解释。 Dijkstra如何在这张图表上工作,为什么他们不会使用我想象中的方法?