2022年CIE SCI2区TOP,双向交替搜索 A* 算法的移动机器人全局路径规划,深度解析+性能实测

目录


1.摘要

针对传统 A* 算法在大规模环境中存在的计算效率低、路径转向角大以及路径不平滑等问题,本文提出了一种改进 A* 路径规划算法,该方法引入双向交替搜索(BAS)策略,通过正向与反向搜索交替进行并在路径相遇时完成规划,有效提升了搜索效率;同时,采用指数衰减加权的启发式函数,进一步优化了搜索性能。为减少路径冗余并降低转向角,算法引入路径节点筛选机制,并利用 Bézier 曲线实现路径平滑处理,以满足移动机器人运动控制的实际需求。

2.改进A*算法

双向交替搜索策略

双向交替搜索(BAS)策略,从起点和终点同时进行路径搜索,通过交替选取正、反向开放列表中的最优节点作为搜索目标,使两条路径自适应地相遇,从而减少无效节点扩展并提高搜索效率。正反向搜索均采用 8 邻域扩展,并以欧氏距离作为启发式函数:
f F ( N F ) = g F ( N F ) + h F ( N F ) f_F(N_F)=g_F(N_F)+h_F(N_F) fF(NF)=gF(NF)+hF(NF)

f B ( N B ) = g B ( N B ) + h B ( N B ) f_B(N_B)=g_B(N_B)+h_B(N_B) fB(NB)=gB(NB)+hB(NB)

h F ( N F ) = ( x N B − x N F ) 2 + ( y N B − y N F ) 2 h_F(N_F)=\sqrt{\left(x_{N_B}-x_{N_F}\right)^2}+\sqrt{\left(y_{N_B}-y_{N_F}\right)^2} hF(NF)=(xNB−xNF)2 +(yNB−yNF)2
h B ( N B ) = ( x N F − x N B ) 2 + ( y N F − y N B ) 2 h_B(N_B)=\sqrt{\left(x_{N_F}-x_{N_B}\right)^2}+\sqrt{\left(y_{N_F}-y_{N_B}\right)^2} hB(NB)=(xNF−xNB)2 +(yNF−yNB)2

改进启发式函数

BAS-A* 算法在部分情况下仍存在绕障能力不足和节点重复搜索的问题,导致计算效率下降。针对评价函数在搜索效率与最优性之间的权衡,本文对启发式函数进行加权改进,使节点距离较远时增强搜索引导、加速路径相遇,距离较近时弱化启发影响以逼近真实代价,从而有效减少冗余搜索并提升整体规划效率。
f ( n ) = g ( n ) + e h ( n ) ⋅ h ( n ) f(n)=g(n)+\mathrm{e}^{h(n)}\cdot h(n) f(n)=g(n)+eh(n)⋅h(n)

3.结果展示

4.参考文献

1 Li C, Huang X, Ding J, et al. Global path planning based on a bidirectional alternating search A* algorithm for mobile robotsJ. Computers & Industrial Engineering, 2022, 168: 108123.

5.代码获取

xx

6.算法辅导·应用定制·读者交流

xx

相关推荐
Gigavision1 小时前
基于BUAA-MIHR数据集的噪声解耦对比学习算法
人工智能·python·深度学习·算法
鹿角片ljp1 小时前
LeetCode 64:最小路径和复盘|二维 DP 与 ACM 模式完整写法
java·数据结构·算法
彧azz2 小时前
算法设计与分析:贪心与动态规划
数据结构·学习·算法·贪心算法·动态规划
Beyond_System|系统之外3 小时前
【学编程】Python基础编程题100道(21-60)
开发语言·python·算法
漂流瓶jz5 小时前
UVA-1442 洞穴 题解答案代码 算法竞赛入门经典第二版
c++·算法·题解·aoapc·算法竞赛入门经典·uva
叠层归一研究院6 小时前
基于极限自指的叠层归一宇宙结构理论——无元外部封闭系统的内生区分模型
人工智能·经验分享·算法·agi
Selvaggia7 小时前
Diffusion Model 的基本原理与模型架构
算法
wabs6669 小时前
关于二叉树【力扣572.另一棵树的子树的思考】
数据结构·c++·算法·leetcode·二叉树
hanlin039 小时前
刷题笔记:力扣第41题-缺失的第一个正数
笔记·算法·leetcode
shehuiyuelaiyuehao9 小时前
算法50,分治归并,数组中的逆序对
java·算法