1959年被发明,路径规划算法,计算从起点到终点的路径。通过贪心策略更新代价值。
步骤
1. 取距离起点S最近的点A,更新从S到其他点的最短距离和路径(起始两个点为S、A,路径为S-A-X)。
2. 迭代,从未被考虑(未被用作A)的点中,选择距离最小的,更新其他点(的最短距离和路径)。
3. 直至到达终点E。
举例
v1为起点,计算从v1到其余各点的距离。图上数字为代价值,如从v1点到v2点的代价值为10.
初始距离表格:
v1 | v2 | v3 | v4 | v5 | v6 |
0 | 10 | ∞ | ∞ | ∞ | 3 |
∞表示无法到达。v1无法通过一步直接到达v3,所以v1到v3的初始代价值为∞。
1. 取距离起点S最近的点A,更新从S到其他点的最短距离和路径(起始两个点为S、A,路径为S-A-X)。
选择v6为"A",v6可到达的点有v2,v4,v5,更新它们的代价值。
v1-v6-v2的代价值=3+2=5<10,更新v2
v1-v6-v4的代价值=3+6=9<∞,更新v4
v1-v6-v5的代价值=3+1=4<∞,更新v5
更新后的距离表格为:
v1 | v2 | v3 | v4 | v5 | v6 |
0 | 5 | ∞ | 9 | 4 | 3 |
2. 迭代,从未被考虑(未被用作A)的点中,选择距离最小的,更新其他点(的最短距离和路径)。
除v6以外,距离最小的点为v5,v5没有可达的点,不更新。
除v6,v5以外,距离最小的点为v2,v2可到达的点有v3,v4,更新它们的代价值。
v1-v2-v3的代价值=10+7=17<∞,更新v3
v1-v2-v4的代价值=10+5=15>9,不更新v4
更新后的距离表格为:
v1 | v2 | v3 | v4 | v5 | v6 |
0 | 5 | 17 | 9 | 4 | 3 |
所有距离都计算过(满足终止条件),结束。
图示
特点
1. 贪心
2. 广度优先搜索
3. 低效(遍历的节点多)
其他路径规划算法: 路径规划算法总览