A星算法理解

A星算法是一种探测性算法,实现需要关注的重点:二维地图数组,关闭列表,开放列表(小根堆),每个点的父节点。

 二维地图数组用来存储地图上是否可通过的标记信息,假设现在要从地图的起始点A移动到目的点B,如何寻找到最短的路径呢?

1.      把地图上的A点放入关闭列表中,然后将A点周围的可走点放入一个以小堆为结构的开放列表,并把它们的父节点指向A点。

2.      计算周围可走点到A点的距离H和周围可走点到B点的预测距离V,将H和V相加调整更新小根堆。

3.      取出堆顶的点放到关闭列表中,继续把该点的周围可走点(该点不在关闭和开放列表中)放入开放列表中,重复第2步。(如果该点已经在开放列表中,就需要再次计算H 值,是否可以更改它的父节点值)

4.      直到最后遇到B点才结束探测。

5.      最后通过父节点不断追溯,便可以得到最短的路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值