我正在学习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算法显然没有展示正确的结果。
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算法显然没有展示正确的结果。