2.A*搜索算法原理及matlab代码

A*算法是一种优化的路径规划搜索算法,相较于Dijkstra算法,它通过启发函数减少搜索空间。该文介绍了A*算法的基本原理,强调启发函数在评估节点中的作用,并展示了在matlab中使用欧式距离和曼哈顿距离计算启发函数的效果,指出在实际应用中,不同距离计算方式对搜索效率和路径结果的影响。
摘要由CSDN通过智能技术生成

一、原理   

        A*算法是根据评估函数在静态连通图中寻找最优路径的经典启发式搜索算法,也是最有效的直接搜索算法。在 A*算法之前,路径规划通常采用 Dijkstra 算法,Dijkstra 是一种广度优先搜索算法,但其搜索具有盲目性。A*算法则是利用启发函数对 Dijkstra 的搜索空间进行剪枝的优化算法。两者最大的差别就是启发函数,A*算法的搜索过程是根据启发函数值的大小向着代价值低的方向进行。即对于所处的节点 n ,算法利用估价函数对其周边节点进行评估,并选择估价值最小的点为下一节点,表达式为 f(n) =g(n)+h(n)。启发函数h(n) 表示当前节点位置n 到目标点的估计值,而 g(n) 表示出发点到当前位置节点 n 实际的代价,估计值 f(n) 即由这两部分组成。在栅格地图中,启发函数通常采用两点间距离表示,例如曼哈顿距离。

二、实现效果

能够看到欧式距离结果更好,与Dijkstra算法结果一样,但是拓展次数Dijkstra算法>欧式距离>曼哈顿距离,计算路径结果Dijkstra算法=欧式距离<曼哈顿距离

1.欧式距离计算H

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨叔叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值