狄克拉斯特算法
找出两个点之间的耗时时间最短路径
步骤
- 找出耗时最短的节点
- 更新该节点的邻居开销,检查是否存在到邻居节点的最短路径
- 重复过程,直到对图中每个节点都这么做
- 计算最终路径
第一步:找出耗时最短的点,站在起点前往A需要6分钟,前往B需要2分钟。终点假设无穷大。
第二步:计算节点B前往各个邻居所需的时间。找到一条耗时更短的路径父节点改为B只需要5分钟。
前往终点的时间缩短为7分钟。
第三步:重复
重复第一步,找出最短时间内前往的节点。对节点B执行了第二步。除节点B外,可以最短前往A为5.
重复第三步:更新A的邻居节点
最后到终点为6分钟
狄克斯特拉算法只适合有向无环图
负权边不能使用狄克拉斯特算法
例:
采用狄克拉斯特算法首先处理海报这个节点,处理完成后不再处理海报,而处理唱片的时候导致到达海报节点的父节点再次改变,然而已经无法改变海报节点,以至于后面的耗时最短路径与实际不符
来源:CSDN
作者:hello妈耶儿
链接:https://blog.csdn.net/V2636011127/article/details/104157205