A星算法介绍(python代码实现)未完待续

A星算法思路

启发式搜索算法是比较常规的一类算法就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无谓的搜索路径,提高了效率。

建立地图

A星算法需要确定搜索的地图,并将其栅格化,从而将起点和终点在地图的栅格位置确定下来。
在自动驾驶或者机器人的应用中,对于栅格化需要设定好栅格大小,如果栅格太大,那么位置就不精确;如果栅格太小,那么会消耗比较长的时间进行搜索。
在这里插入图片描述

设定代价函数

公式

A星寻路算法通过计算和量化行走的各个方向的代价,来选择最优路径。
公式:F = G + H
F:设定其为最终评估代价
G:当起点走到下一目标点的付出的代价
H:下一目标点到终点的预期代价(一般选择曼哈顿距离)
如果下一目标点是不可逾越的障碍物,则从当前点过去的代价为无穷大,最后通过比较各条路线的最终代价,选择最小代价,即为合适的路径,也为最短路径。

示例

以下图为例,绿色的点为起点,到右边的点的代价为10,所以G=10;右边的点到终点(红色点)的预期代价为3个格子,即30,所以H=30;因此F=G+H=40。
在这里插入图片描述

A星搜索过程

流程图

在这里插入图片描述

代码解释

参考:https://blog.csdn.net/jj6666djdbbd/article/details/126287486?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-126287486-blog-78786493.235%5Ev43%5Epc_blog_bottom_relevance_base5&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-126287486-blog-78786493.235%5Ev43%5Epc_blog_bottom_relevance_base5&utm_relevant_index=2

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值