我正在学习 Dijkstra 算法并进行了基本查询。我有一个如下图所示的图表..(非负节点):
A---2-----B------16------D-----3-----F
* *
* *
3 4
* *
C-- --------2----------------------------------------E
从上面的图表显示看不清楚,但 AC 的距离为 3,EF 的距离为 4。
我有兴趣找到 A 和 F 之间的最短路径。
考虑目标节点 F。当我们考虑其最近的节点时,我们得到 D(DF 的权重为 3,EF 的权重为 4)。然而,当我们沿着这条路径走时,我们得到的最短路径为:A、B、D、F(总距离:19)。
快速观察告诉我们,最短路径实际上是 A、C、E、F(距离:9)。然而,由于在第一步中,E 比 D 更远,所以我们跟随 D。
我在这里错过了什么吗?Dijkstra 算法在这里显然没有显示正确的结果。