关于自学A星算法的理解和总结

本文详细介绍了A星算法的理解,包括关键名词如节点、开启列表、关闭列表和F值计算,以及算法的计算逻辑。通过示例展示了如何从起点到终点计算最优路径,并提供了简单的MATLAB代码实现。
摘要由CSDN通过智能技术生成

关于自学A星算法的理解和总结

知识点总结部分

关键名词部分

节点:搜索区域发的近似替代,节省计算量,削减了对搜索区域的约束
A星算法是用来计算从起点到终点的最低成本(最优)路径的算法
开启列表:用来存放可能的、未计算的节点。
(若最终开启列表是空的,则说明没有直接到达终点的路径)
关闭列表:存放已经计算过的节点。
存放的节点不但要记录其F值,还要记录其父节点。
公式:F=G+H;
F:寻路消耗;
G:已经付出的成本;
H:预计还要付出的成本;
用曼哈顿街区算法计算
如图:
在这里插入图片描述
直接计算其与目标点的横距离与纵距离之和。

计算逻辑部分

计算逻辑:
1.先检索计算起点周围的节点的F值并记录下这些节点的父节点后存入开启列表中,
2.对开启列表中各节点按F值从小到大进行排序。
3.对F值最小的点周围进行检索,得到数个新的节点存入开启列表(已经检索过的节点不用再次检索),且将该点存入关闭列表
4.重复2、3步骤直至检索到终点或开启列表中为空列表。
5.若检索到终点,则从终点反向梳理出路径(依据每个点记录的父节点),若最终开启列表为空,则说明没有直接到达终点的路径。
额外:最终不从正向梳理路径原因是依照A星算法的逻辑很可能会有多条从起点分化出来的路径,但只有一条是通往终点的。(参考树状图)

在这里插入图片描述
这里可以理解为算法从A系列点计算到C系列点后发现所有C系点的F值均大于A2点,于是算法从A2点寻找新的路线,
当然,正常情况下可能不止一次从新开始。这里只是举了最简单的例子。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值