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

相关推荐
艾iYYY3 分钟前
类和对象(详解初始化列表, static成员变量, 友元,内部类)
c语言·数据结构·c++·算法
AbandonForce9 分钟前
C++11:列表初始化||右值和移动语义||引用折叠和完美转发||可变参数模板||lambda表达式||包装器(function bind)
开发语言·数据结构·c++·算法
khalil102014 分钟前
代码随想录算法训练营Day-50 图论02 | 99.岛屿数量-深搜、99.岛屿数量-广搜 、100.岛屿的最大面积
数据结构·c++·算法·leetcode·深度优先·图论
Brilliantwxx14 分钟前
【C++】模版进阶(特化+分离编译+非类型模版参数)
开发语言·数据结构·c++·算法
Black蜡笔小新15 分钟前
自动化AI算法训练服务器DLTM企业级AI模型工作站构筑企业AI自主可控新模式
人工智能·算法·自动化
bnmoel15 分钟前
数据结构深度剖析链表全集:结构实现、分类与底层原理全解析
c语言·数据结构·算法·链表·双向链表
童先生25 分钟前
华为云、阿里云、AWS签名机制详解! AK/SK + HMAC-SHA256 签名鉴权!
算法·阿里云·华为云·云计算
承渊政道27 分钟前
【贪心算法】(经典实战应用解析(二):最⻓递增⼦序列、递增的三元⼦序列、最⻓连续递增序列、买卖股票的最佳时机、买卖股票的最佳时机II)
数据结构·c++·学习·算法·leetcode·贪心算法·哈希算法
li星野29 分钟前
动态规划十题通关:从爬楼梯到编辑距离(Python + C++)
c++·python·学习·算法·动态规划
栈溢出了32 分钟前
GAT(Graph Attention Network)学习笔记
人工智能·深度学习·算法·机器学习