深圳幻海软件技术有限公司 欢迎您!

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

2023-03-31

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

 启发式探索是利用问题拥有的启发信息来引导搜索,达到减少探索范围、降低问题复杂度的目的。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,灰色节点移动到红色终点的步数(曼哈顿距离),也

文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览42577 人正在系统学习中