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 robots\[J\]. Computers \& Industrial Engineering, 2022, 168: 108123. ### 5.代码获取 xx ### 6.算法辅导·应用定制·读者交流 xx

相关推荐
木头左6 小时前
多任务联合训练框架下的遗忘门协同优化趋势跟踪与均值回归双目标平衡
算法·均值算法·回归
xu_yule6 小时前
算法基础-(单调队列)
算法·单调队列
代码不停6 小时前
Java递归综合练习
java·开发语言·算法·回归
前端小白在前进6 小时前
力扣刷题:删除排序链表的重复元素Ⅱ
算法·leetcode·链表
qq_214782616 小时前
Hadley Wickham长文回顾:R语言tidyverse过去20年的演进之路、现状与未来展望!
python·算法·线性回归
霍田煜熙6 小时前
C++ 部署小型图书管理系统
开发语言·c++·算法
ywwwwwwv6 小时前
力扣300
算法·leetcode·职场和发展
来自于狂人6 小时前
HCIE云计算超长考点精析
算法·贪心算法·云计算
@小码农6 小时前
2025年厦门市小学生信息学竞赛C++(初赛)真题-附答案
开发语言·c++·python·算法·蓝桥杯