Dijkstras 算法根据起始节点和中间节点之间的边权重假设最近的邻居。重复此过程直到到达目标节点。
如果起始节点和中间节点之间的最短路径是通过其他几个中间节点的间接路由怎么办?
如果起始节点和中间节点之间的最短路径是通过其他几个中间节点的间接路由怎么办?
在尝试找到最短路径时,通常会穿越多个节点。如果没有多个可能的路径,那么您为什么需要 Dijkstra?
想象下图:
为了更好地理解,假设算法从顺时针方向开始,START
从1
节点开始。它将发现START -> 1 -> 6 -> END
成本为 7。然后逆时针走,发现START -> 3 -> 5 -> 8 -> 9 -> END
成本为 5。然后算法将逆时针路径标记为从START
到的最短路径END
。
现在假设我们有以下图表:
该算法将发现START -> 1 -> 9
成本为 5(顺时针)和START -> 3 -> 5 -> 8 -> 9
成本为 4(逆时针)。因此,算法会将逆时针路径标记为从START
到的最短路径END
,其成本为 5。接下来,算法将尝试找到另一条经过 的路径(如果可能的话)START -> 1 -> 6 -> END
。它将发现这条路径的成本为 4,并且会将这条路径标记为从START
到的最短路径END
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句