zl程序教程

您现在的位置是:首页 >  其他

当前栏目

算法 | A*算法实现最优路径规划

规划算法 实现 路径 最优
2023-09-11 14:20:35 时间

 启发式探索是利用问题拥有的启发信息来引导搜索,达到减少探索范围、降低问题复杂度的目的。A*寻路算法是启发式探索的一个典型实践,在寻路搜索的过程中,给每个节点绑定了一个估计值(即启发式),在对节点的遍历过程中采取估计值优先原则,估计值更优的节点会被优先遍历。

1、A*算法基本原理

A*算法是一种有序搜索算法,其特点在于对估价函数的定义上。公式表示为:  f(n)=g(n)+h(n),其中, f(n)是从初始状态经由状态n到目标状态的代价估计,g(n) 是在状态空间中从初始状态到状态n的实际代价,h(n)是从状态n到目标状态的最佳路径的估计代价。对于路径搜索问题,状态就是图中的节点,代价就是距离。

2、A*算法搜索步骤

1. 算法步骤

(1) 设置地图大小,起点S,终点E,障碍集合Blocklist。

(2) 添加起点S到Openlist(待搜索集合)。

(3) 将S取出,添加到Closelist(已搜索集合)。

(4) 查找S所有相邻节点,添加到Openlist,并设置S为它们的父节点;以绿色初始节点右侧的灰色节点为例:f(n)=g(n)+h(n)。g(n)=1,绿色初始节点到该节点的移动步数;h(n)=3,灰色节点移动到红色终点的步数(曼哈顿距离),也