Dijkstra

1959年被发明,路径规划算法,计算从起点到终点的路径。通过贪心策略更新代价值。

步骤

1. 取距离起点S最近的点A,更新从S到其他点的最短距离和路径(起始两个点为S、A,路径为S-A-X)。

2. 迭代,从未被考虑(未被用作A)的点中,选择距离最小的,更新其他点(的最短距离和路径)。

3. 直至到达终点E。

举例

 v1为起点,计算从v1到其余各点的距离。图上数字为代价值,如从v1点到v2点的代价值为10.

初始距离表格:

v1v2v3v4v5v6
0103

∞表示无法到达。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

更新后的距离表格为:

v1v2v3v4v5v6
05943

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

更新后的距离表格为:

v1v2v3v4v5v6
0517943

所有距离都计算过(满足终止条件),结束

图示

特点

1. 贪心

2. 广度优先搜索

3. 低效(遍历的节点多)

其他路径规划算法: 路径规划算法总览

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值