1. 引言
路径规划在移动机器人领域至关重要,其主要任务是在确保移动路径安全和可行的基础上,找到一条从起点到终点效率最高或代价最小的路径。这涉及在复杂环境中避开障碍物,满足机器人动力学约束,并生成平滑且高阶连续的运动轨迹,以确保机器人能够顺利执行任务。传统的单一目标点路径规划算法有快速扩展随机树(RRT) [1]、A*算法[2]和Dijkstra算法[3],随着移动机器人技术的不断向前发展与社会的需求日益复杂化,如物资配送、机器人巡检[4]、自主导航和交通路线规划等领域,传统路径规划算法对于移动机器人多目标点路径规划问题变得愈加困难,难以满足实际需求。因此,许多学者对种群智能优化算法进行广泛研究,用以解决遍历多个目标点的路径规划问题。例如麻雀优化算法(Sparrow Search Algorithm, SSA) [5]、灰狼优化算法(Grey Wolf Optimizer, GWO) [6]、哈里斯鹰优化算法(Harris Hawks Optimization, HHO) [7]、鲸鱼优化算法(WOA) [8]和蜣螂优化算法(Dung Beetle Optimizer, DBO) [9]等。这些算法通过各自独特的优化机制,能够在复杂环境中有效地解决多目标点路径规划问题。
蜣螂优化算法(Dung Beetle Optimizer, DBO)是受蜣螂蜣螂滚球、跳舞、育种、觅食与偷窃行为启发的优化算法,其主要优点是具有强大的寻优能力与快速收敛特性,因此被广泛应用于求解工程优化、路径规划与故障诊断等问题等[10]。然而,标准DBO存在易陷入局部最优与搜索方式随机性强的不足,许多学者对此提出了优化策略。文献[11]提出改进的屎壳郎优化(IDBO)算法,通过增加初始种群异质性、提高收敛速度和优化搜索策略,显著提升了算法性能。将IDBO算法应用于优化BP神经网络,成功预测了热处理落叶松锯材的力学性能,较其他算法展现出更高的预测精度和优势。文献[12]提出了一种结合帐篷混沌映射和蜣螂算法的MDBO方法,用于优化水下伸缩臂机器人的轨迹规划并有效避障,实验结果表明,MDBO算法在基准函数测试中表现出较强的优化能力和稳定性,并在水下实验中显著提升了路径优化能力和避障效率,缩短了30%轨迹规划时间。文献[13]通过动态调整搜索策略、融合麻雀搜索算法机制及引入柯西高斯变异,有效提升了收敛精度和全局搜索能力,在基准测试和实际工程问题中均展现出优异的寻优性能和鲁棒性。文献[14]提出一种基于多策略改进蜣螂算法优化BiLSTM的变压器故障诊断方法,通过混沌映射、自适应因子和Levy飞行策略提升算法性能,结合KPCA特征提取,实现高准确率、强泛化能力的变压器故障诊断。文献[15]提出了一种多策略和改进的蜣螂优化算法(MSIDBO),通过引入随机逆向学习、适应度–距离平衡、螺旋觅食和最优维度–高斯突变策略,解决了传统DBO算法易陷入局部最优的问题,显著提升了全局搜索能力和求解精度,并在路径规划仿真中展现了其优越性。
然而,标准DBO算法用以求解遍历多个目标点路径规划问题时依然存在寻优速度缓慢、收敛精度低与难以逃离局部峰值等缺点。为解决以上问题,本文提出三种策略改进蜣螂优化算法(IDBO);策略1引入Logistic-tent混沌映射初始化种群,策略2设计对数自适应因子改善小蜣螂搜素能力,策略3通过精英差分变异策略增强算法跳出局部最优解能力,同时,在路径规划初始阶段,将A*算法规划全局路径节点作为输入,从而提高IDBO算法求解多目标点路径规划问题的精度和效率。
2. 地图环境建立
栅格法[16]常常被用于二维环境模型搭建,被广泛应用于移动机器人路径规划领域。其优点为实现简单、构建更新相对容易;适合实时应用,适用性广,适用于各种类型的环境,特别是结构复杂或不规则的环境;支持动态更新,在动态环境中,可以实时更新栅格地图,反映环境的变化,提高机器人对环境的适应能力。假设环境地图长为s1时,宽为s2,将地图划分为M*N个单位长为1的正方形,用集合C表示整个地图,Lnm表示每个栅格,整个地图可用C表示:
(1)
小栅格位置信息表达式为:
(2)
式中:当
时,表示表示可通行白色区域,
,表示黑色障碍物(图1)。
Figure 1. Raster map model
图1. 栅格地图模型
3. 路径规划
3.1. 单目标点路径规划
单目标点路径规划[17]是指在已知空间环境内,确定一条从起始点到目标点的最优路径。这条路线需要满足以下两个条件:1) 规避所有障碍:路线必须避开环境中的所有障碍物,确保个体能够安全通过;2) 在满足上述条件1的前提下,所选路线应为长度最短、时间最少或综合资源消耗最少的路径。
A*算法是一种基于图搜索方式、鲁棒性能好和节点搜索效率高的优化算法,在单目标点路径规划问题求解中表现十分良好。其路径规划原理是以起点作为起始节点,搜索邻近节点,并选择耗费代价最低的节点作为新的起始节点,重复搜索过程,直到最终选择的节点与终点节点一致,最后,将起点、所选节点与终点依次连接形成一条路径,即为最优路径。A*算法的代价函数如下:
(3)
式中:h(t)为最优路径总代价,q(t)为从t节点到起始节点最短路径代价,p(t)为t节点到终点预估代价。
3.2. 多目标点路径规划
多目标点路径规划[18]是指在已知环境中,确定一条从起点出发,经过多个目标点,到达终点的最优路径。该问题的核心在于确定各目标点的访问顺序和路径,以满足特定的优化目标,如最短总距离、最少时间或最低能耗等。定义遍历n个目标点的路径为P ={L1, L2, …, Ln}
则遍历路径的总距离d为:
(4)
式中:
为相邻节点最小距离。
在多目标点路径规划中,为确保在有障碍物的场景下规划路径与实际最优路径一致,本文首先利用A*算法规划一条起点至终点的单目标点路径,并将其最优避障路径距离替换忽略障碍物的欧式距离,将A*算法所有节点相连接的总距离输入改进蜣螂优化算法,进行多目标点路径规划仿真,寻找d值最小的最优路径。
4. 蜣螂优化算法
4.1. 标准蜣螂优化算法
蜣螂优化算法(DBO)灵感来源于蜣螂滚球、跳舞、觅食、偷窃和繁殖行为,算法数学模型如下。
4.1.1. 滚球蜣螂
滚球蜣螂将粪便滚成球,利用天体线索进行导航,沿直线滚动。滚球蜣螂位置更新方式如下:
(5)
式中:k为调整参数,η为(0, 1)的常量,n为当前迭代次数,i为当前个体数,α是受自然因素影响的变量,α = 1或−1,α = −1表示偏转角度,Yw为全局最差位置,Δy为光强变化量,光强越大,Δy越小。
当遇到障碍物无法前进时,滚球蜣螂通过跳舞调整方向,重新确定前进路径。蜣螂位置更新方式如下:
(6)
式中:θ为偏转干扰角,其取值范围为[1, π]。
4.1.2. 繁殖蜣螂
在自然界中,雌性蜣螂将粪球藏匿在安全区域,用作产卵和养育幼虫的场所。产卵区域为:
(7)
式中:Y*为当前局部最优个体,R为随机数,Ub*和Lb*分别为产卵区的上边界和下边界,T为最大迭代次数,Ub和Lb分别表示问题的上限和下限。
繁殖蜣螂位置更新方式为:
(8)
式中:c1和c2为随机变量。
4.1.3. 觅食蜣螂
卵球孵化变成小蜣螂,小蜣螂会选择在觅食成功率高的区域附近寻找食物,最佳觅食区域的范围为:
(9)
式中:Yb为全局最优位置,Ubb和Lbb分别为最佳觅食区域的上边界和下边界。小蜣螂位置更新公式为:
(10)
式中:C1为正态分布随机数,C2为(0, 1)的变量。
4.1.4. 偷窃蜣螂
蜣螂种群中存在一部分偷取其它蜣螂粪球作为自己的食物来源的蜣螂,称之为偷窃蜣螂。从式(5)中可以看出,在迭代过程中Yb是获取食物最佳区域,偷窃蜣螂会在最佳区域附近争夺食物。偷窃蜣螂的位置更新公式如下:
(11)
式中:g为正态分布随机数,大小为
,C2为(0, 1)的变量,r为一个定值。
4.2. 改进DBO算法
4.2.1. Logistic-tent混沌映射初始化种群
DBO算法与其它群智能优化算法类似,采用随机方式生成初始化种群。然而,随机生成初始的种群质量分布不均匀、种群个体多样性低,进而影响算法求解优化问题的效率与精度。在求解高维、复杂优化问题时,则导致算法在迭代后期陷入局部最优。如果蜣螂初始种群均匀分布在解空间内,则有助于算法探索更多可能的解,从而加快算法的收敛速度、提高求解精度。
混沌映射兼具随机性与规律性两种特点,能够均匀分布在规定空间内。如图2所示,相较于Logistic混沌映射[19]和sine混沌映射[20],Logistic-tent混沌映射[21]在空间内分布更均匀。因此,本文选择Logistic-tent混沌映射生成初始种群。Logistic-tent混沌映射公式如下所示:
(12)
式中:r1为(0,1)的随机数。
(a) (b)
(c)
Figure 2. (a) Logistic chaotic mapping distributions, (b) Distribution of mappings for sine mixing, (c) Logistic-tent chaotic mapping distributions
图2. (a) Logistic混沌映射分布图,(b) sine混的映射分布图,(c) Logistic-tent混沌映射分布图
4.2.2. 对数调整因子
为改善标准蜣螂算法在前期全局探索能力与后期局部开发能力不足的缺陷,提出一种对数调整因子策略,用于提高小蜣螂算全局与局部搜索能力。对数调整因子表达式如下:
(13)
式中:ωmax调整因子最大值,ωmin为调整因子最小值。
对数调整因子策略是一种在优化算法中嵌入对数调整因子的方法,旨在平衡算法的全局搜索与局部开发能力,从而提高收敛速度和寻优精度。调整因子ω(n)随着迭代次数n的增加从ωmax呈对数形式递减至ωmin。在算法初期,ω(n)为算法提供较大的控制系数,增强全局搜索能力;在后期则降低控制系数,促进局部开发,从而提高算法的整体性能。基于对数调整因子的小蜣螂位置更新公式如下:
(14)
4.2.3. 精英差分变异策略
在标准DBO算法后期,大多数蜣螂个体会聚集在当前最优位置附近,若该位置是局部最优而不是全局最优值,则会导致算法难以跳出局部最优,无法寻找到全局最优解。因此,本文提出精英差分变异策略,引导蜣螂种群在适应度更优的食物源区域产生子代,同时也可避免传统差分变异进化过程的盲目性,提升算法的搜素效率和跳出局部最优的能力。本文从滚球蜣螂群中的局部最优解作为精英解1 (Ynew1),小蜣螂群中最优解作为精英解2 (Ynew2)、偷窃蜣螂群最优解作为精英解3 (Ynew3),将三组精英解进行式(15)变异产生新蜣螂个体,增强种群多样性。精英差分变异蜣螂位置更新公式为:
(15)
式中:Ynew1为滚球蜣螂局部最优解,Ynew2为小蜣螂局部最优解,Ynew3为偷窃蜣螂局部最优解,Ynew4为变异后蜣螂个体位置。
由于在变异后得到的子代蜣螂位置是否优于父代蜣螂位置是无法确定的,因此在进行差分变异后需要通过贪婪规则比较两代蜣螂适应度值,选择是否需要更新全局最优位置。贪婪规则为:
(16)
式中:
表示变异后蜣螂个体适应度,
表示全局最优蜣螂个体适应度。
4.3. 算法性能测试
为了验证改进蜣螂优化算法性能,本文选取5个常用的标准测试函数[22]-[24]对标准蜣螂优化算法与改进算法进行测试,对比两种算法的寻优速度、精度与稳定性,统一设置种群数量为30,优化问题维度为30,迭代次数为500,重复实验30次取其平均值和标准差。如表1所示,f1、f2、f3、为单极值测试函数只有一个全局最小值,能够测试算法寻优速度与精度;f4、f5为多模态测试函数,有多个局部极值和一个全局极值,能够测试算法跳出局部最优的能力。对比实验结果如表2所示,收敛曲线如图3。
Table 1. Test functions
表1. 测试函数
函数编号 |
名称 |
区间 |
最优值 |
F1 |
Sphere |
[−100, 100] |
0 |
F2 |
Schwefel |
[−100, 100] |
0 |
F3 |
Schwefel’s |
[−100, 100] |
0 |
F4 |
Ackley’s |
[−32, 32] |
0 |
F5 |
Generalized Penalized |
[−50, 50] |
0 |
(a) (b)
(c) (d)
(e)
Figure 3. (a) F1 convergence curve, (b) F2 convergence curve, (c) F3 convergence curve, (d) F4 convergence curve, (e) F5 convergence curve
图3. (a) F1收敛曲线,(b) F2收敛曲线,(c) F3收敛曲线,(d) F3收敛曲线,(e) F5收敛曲线
Table 2. Standard test function results
表2. 标准测试函数结果
算法 |
指标 |
F1 |
F2 |
F3 |
F4 |
F5 |
DBO |
平均值 |
2.67E−86 |
1.78E−57 |
4.98E−82 |
1.01E−15 |
1.47E−08 |
标准差 |
1.56E−86 |
9.79E−57 |
2.72E−81 |
6.48E−16 |
8.03E−08 |
IDBO |
平均值 |
0 |
0 |
0 |
8.88E−16 |
4.91E−32 |
标准差 |
0 |
0 |
0 |
0 |
5.34E−33 |
由表2的数据可知,相比于标准蜣螂优化算法,本文改进蜣螂优化算法对于单峰函数F1、F2和F3的求解均达到了理论最优解,即平均值与标准差均为0,说明了改进蜣螂优化算法具有更优良的收敛精度与鲁棒性;对于多峰函数F4和F5的求解,本文改进算法在平均寻优精度上有较好的提升,特别的,对于F4的求解标准差为0,F5的求解标准差提升了20多个数量级,展现了本文改进算法良好的逃离局部最优的能力和处理复杂问题的良好性能。
由图3可知,无论是在单峰函数F1、F2、F3还是多峰函数F4、F5测试中,本文改进算法在收敛速度与收敛精度均优于DBO算法。因此,本文改进算法在引入Logistic-tent混沌映射初始化种群、结合对数调节因子、嵌入精英差分变异策略后,算法的寻优速度、寻优精度低、逃离局部最优的能力与鲁棒性均得到了明显的增强。
4.4. 多目标点路径规划步骤
基于改进蜣螂优化算法的多目标点路径规划步骤如下:
1) 环境模型搭建:建立移动机器人移动空间模型,确定起始点、目标点与终点位置,设定初始参数:蜣螂种群数量、最大迭代次数。
2) 路径表示:使用A*算法计算所有目标点之间的最短避障距离d。
3) 将d输入到改进蜣螂优化,根据公式生成初始种群,计算初始种群适应度并排序。
4) 根据公式(5)滚球蜣螂更新路径信息,并记录当前局部最优解;当遇上障碍物时,根据公式(6)更新路径信息,记录滚球蜣螂规划路径局部最优解。
5) 根据公式更新(8)繁殖蜣螂路径信息。
6) 根据公式更新(14)小蜣螂路径信息,并记录小蜣螂局部最优解。
7) 根据公式(11)更新偷窃蜣螂路径信息,记录偷窃蜣螂个体路径局部最优解。
8) 根据公式(15)对蜣螂种群进行差分变异,并根据公式(16)选择适应度值更优的路径。
9) 当达到最大迭代次数后,输出路径最优的解,并根据最优解遍历顺序,画出最优多目标点路径规划图。
5. 多目标点路径规划仿真实验与分析
为了验证改进蜣螂优化算法求解多目标点路径规划问题优越性能,设置了三种大小不同的地图环境(15*15, 20*20, 25*25)进行仿真实验对比,种群数量均设置为30,迭代次数为100。地图1 (15*15大小)选取10个目标点进行规划,地图2 (20*20大小)选取12个目标点进行实验,地图3 (25*25大小)选取14个目标点进行规划;首先通过A*算法规划起点至终点的所有路径节点,将路径节点与距离输入标准DBO算法与改进算法,最后通过比较两种算法规划最终路径长度、收敛曲线,验证改进算法优越性。如表3所示。规划结果如图4~6所示,图中黑色矩形表示障碍物,红色线条为算法所规划的路径,圆圈表示目标点。算法性能对比如表3所示。
Table 3. Comparison results of path planning experiments
表3. 路径规划实验对比结果
环境大小 |
指标 |
DBO算法 |
本文算法 |
平均路径长度提升 |
15*15 |
遍历顺序 |
1 5 7 8 4 3 2 6 9 10 |
1 2 5 6 9 7 3 4 8 10 |
22.54% |
平均路径长度 |
61.27 |
50.00 |
|
20*20 |
遍历顺序 |
1 6 7 10 11 9 5 2 3 4 8 12 |
1 6 10 7 2 3 4 5 8 9 11 12 |
20.86% |
平均路径长度 |
96 |
70.33 |
|
25*25 |
遍历顺序 |
1 10 12 5 11 4 7 2 3 6 13 9 8 14 |
1 4 6 3 2 10 7 8 11 5 12 9 13 14 |
|
平均路径长度 |
172 |
145.37 |
15.61% |
由表3数据可知,在地图1、地图2和地图3的环境下,本文改进蜣螂优化算法平均路径长度均少于DBO算法,相较于DBO算法平均路径长度分别减少了22.54%、20.86%、15.61%。
(a) (b)
(c) (d)
Figure 4. (a) Map 1 IDBO Convergence Curve, (b) Map 1 IDBO Planning Paths, (c) Map 1 DBO Convergence Curve, (d) Map 1 DBO Planning Paths
图4. (a) 地图1 IDBO收敛曲线,(b) 地图1 IDBO规划路径,(c) 地图1 DBO收敛曲线,(d) 地图1 DBO规划路径
(a) (b)
(c) (d)
Figure 5. (a) Map 2 IDBO Convergence Curve, (b) Map 2 IDBO Planning Paths, c) Map 2 DBO Convergence Curve, (d) Map 2 DBO Planning Paths
图5. (a) 地图2 IDBO收敛曲线,(b) 地图2 IDBO规划路径,(c) 地图2 DBO收敛曲线,(d) 地图2 DBO规划路径
(a) (b)
(c) (d)
Figure 6. (a) Map 3 IDBO Convergence Curve, (b) Map 3 IDBO Planning Paths, © Map 3 DBO Convergence Curve, (d) Map 3 DBO Planning Paths
图6. (a) 地图3 IDBO收敛曲线,(b) 地图3 IDBO规划路径,(c) 地图3 DBO收敛曲线,(d) 地图3 DBO规划路径
由图4可知,在简单场景1下,本文改进蜣螂优化算法相比于DBO算法,寻优精度更快,收敛速度更快,规划的路径重复率更低、拐点更少;由图5可知,随着地图的增大,DBO算法在迭代前期就停止收敛,陷入局部最优,相较于DBO算法改进算法的收敛曲线出现多次波动性,在不断的波动下精度更高,两种算法规划路径拐点数与重复路线虽然均增加,但是改进算法规划平均路径长度远远低于DBO算法,说明了改进算法具有跳出局部最优的能力,能够提高寻优精度。由图6可知,随着地图的增大、障碍物增多与遍历目标点数增加,两种算法收敛曲线均在不断的收敛,明显地,改进算法收敛精度与速度优于DBO算法,规划路径平均长度与复杂程度也远远小于DBO算法。
因此,对于多目标点路径规划问题的求解,本文改进蜣螂优化算法较于DBO算法无论是在简单的小环境还是相对较大的环境还是更为复杂的大环境中,收敛精度、寻优速度、规划路径质量与鲁棒性均表现更优。
6. 结论
本文针对标准蜣螂优化算法求解多目标点路径规划问题存在收敛速度慢、寻优精度低与易陷入局部最优等缺陷,提出了一种改进蜣螂优化算法。
首先,采用Logistic-tent混沌映射初始化种群,提高种群多样性;然后,提出了一种对数调整因子改善算法中小蜣螂探索能力,提升算法前期全局探索与后期局部开发能力;最后,通过精英差分变异策略引导蜣螂种群在适应度更优的食物源区域产生子代,提升算法的搜素效率和跳出局部最优的能力。在MATLAB环境下,对改进算法与DBO算法进行了三种场景下的仿真实验,仿真结果表明,改进算法相较于DBO算法平均路径长度分别减少了22.54%、20.86%、15.61%。
综上所述,本文改进蜣螂优化算法较于DBO算法在求解多目标点路径规划问题,无论是在简单的小环境还是相对较大的环境还是更为复杂的大环境中,收敛精度、寻优速度、规划路径质量与鲁棒性均表现更优。