A*算法

A*算法是一种启发式搜索方法,通过估价函数F=G+H来指导搜索,提高效率。它维护open和close表,不断寻找最优节点直至目标。F值是最小堆中的排序依据,算法适用于游戏寻路、图的寻路等问题。
摘要由CSDN通过智能技术生成

A*算法学习

2013-6-20


(1)是一种启发式搜索,其中很重要的影响因素是估价函数。

启发式搜索——不是简单的DFS和BFS,启发式搜索会根据当前的状态空间,对每一个搜索的位置进行评估,选择最优的节点直到达到目的节点。 这样提高了效率。

估价函数——启发式的,在迷宫和地图问题中,常用曼哈顿算法(距离=|x轴的差值|+|y轴的差值|)



(2)算法思路

关键因素—— F = G + H

整个算法中维护两个列表:open表 和  close表(用于存放节点)

算法过程:


把起点放到open表中,设为当前节点A。

1.寻找该点周围可达的点,也放入open表(此时记录每个点的父节点为A,同时把A节点移动到close表中)。

       * 若周围可达的点叫B已经在open表中,看看以A作为B的父节点是否减小了B的F值,如果是的话则进行B节点上值的更新。

2.计算这些节点的F值。G表示从起始节点到该节点的距离值。H表示从该节点到终点的距离值(这个值的计算就需要使用到估算函数,目前有很多各种各样的估算函数,算法最开间的就是选择的估算函数的优劣)

 按照f值的大小从小到大,所以表可以用数据结构中的最小堆来进行维护

3.把f值最小的节点放到clo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值