Mix-Strategy Improved Dung Beetle Optimizer
Dung Beetle Optimizer (DBO) is a new swarm intelligence optimization algorithm proposed by Xue et al. in 2022, inspired by the biological behavior process of dung beetles. A mix-strategy improved dung beetle optimizer (MIDBO) is proposed to address the drawbacks of imbalanced global exploration and local development capabilities, as well as the tendency to fall into local optima. Firstly, during population initialization, a Tent chaotic reverse learning strategy is introduced to enable the initial population members to be evenly distributed and increase population richness; secondly, the introduction of triangle random walk strategy improves the position update method of breeding dung beetles, balancing global search and local mining capabilities; then, a hybrid mutation operator is adopted to improve the theft behavior of dung beetles and accelerate the convergence speed of the algorithm; finally, a mixed mutation operator is introduced to perturb the optimal dung beetle position, improving the algorithm’s ability to jump out of local optima. The proposed algorithm was compared with other well-known optimization algorithms through 15 benchmark test functions, and simulation results showed that the MIDBO algorithm is feasible and effective. Its optimization accuracy and convergence speed have been greatly improved, and the overall performance is better.
Dung Beetle Optimizer
优化问题长期以来一直是研究的热点,存在于各种实际系统中,包括故障诊断系统
蜣螂优化算法(Dung Beetle Optimizer, DBO)是2022年由Xue等人
本文提出了一种混合策略改进的蜣螂优化算法(Mix-Strategy Improved Dung Beetle Optimizer, MIDBO),以下几个方面对DBO算法进行改进:首先,选择Tent混沌反向学习初始化种群,从而提高种群多样性;其次,引入三角形随机游走策略来改进繁殖蜣螂位置更新方式,平衡全局搜索和局部挖掘;然后,加入动态权重系数策略以改进蜣螂偷窃行为,加快算法的收敛速度;最后,引入混合变异策略对最优位置进行扰动,进而避免算法陷入局部最优。
在本章中,我们主要简单介绍一下蜣螂优化算法(DBO)的来源、数学模型以及相应的算法。蜣螂优化算法的灵感主要来源于蜣螂的滚球、跳舞、觅食、偷窃和繁殖等行为。DBO算法主要包括四个过程:滚球、繁殖、觅食和偷窃,该算法是基于子种群的,每个子种群执行不同的搜索方式。与蛇优化(Snake Optimizer, SO)
1) 滚球蜣螂。蜣螂有一个有趣的习惯,把粪便做成球,然后把它滚到理想位置,在滚动粪球过程中需要通过天体线索导航,以保持粪球在直线路径上滚动。为了模拟滚球行为,要求蜣螂在整个搜索空间中沿着给定的方向移动。蜣螂利用太阳来导航,同时,我们假设光源的强度也会影响蜣螂的路径。在滚动过程中,滚球蜣螂的位置更新公式为:
(1)
式中,t为当前迭代次数; 为第i只蜣螂在第t次迭代时的位置信息;k为挠度系数,取0.1;b取0.3; 为自然系数,赋值为−1或1 (参考算法1)。 , 用来模拟光强,其中, 为全局最差位置。
算法1: 的选择策略输入:概率值 输出:自然系数 |
1. 2. if then3. 4. else5. 6. end if |
当蜣螂遇到障碍物无法前进时,就需要通过跳舞来重新定位,以获得新的路线。用切线函数来模拟舞蹈行为,得到新的滚动方向。需要指出的是,只需要考虑定义在区间 。一旦蜣螂成功确定了一个新的方向,它就会继续向前滚动球。因此,蜣螂跳舞行为的位置被定义如下:
(2)
式中, 为挠脚度,属于 。 为第i只蜣螂在第t次迭代时位置与其在第第 次迭代时的位置之差。如果 时,将不更新蜣螂的位置。
2) 繁殖蜣螂。在自然界中,粪球被蜣螂滚到安全的地方,然后藏起来。为了给它们的后代提供安全的环境,选择合适的产卵地点对蜣螂来说至关重要。提出了一种模拟雌性蜣螂产卵的区域边界选择策略,其公式定义为:
(3)
式中, 为当前局部最佳位置, 和 分别为产卵取下限和上限,其中 , 为最大迭代次数,Lb和Ub分别表示优化问题的下界和上界。
从式(3)可以明显看出,产卵区域的边界范围是动态变化的,这主要是由R值决定的,由此可见,繁殖蜣螂的位置在迭代过程中也是动态的,表示为:
(4)
式中, 为第t次迭代时第i个繁殖蜣螂的位置信息;b1和b2表示大小为 的两个独立随机变量,D为优化问题的维数。注意,繁殖蜣螂的位置被限制在一定的范围内,即产卵区。
算法2:繁殖蜣螂位置更新策略输入:最大迭代次数 、当前迭代次数t、繁殖蜣螂数量N输出:第i个繁殖蜣螂 的位置 |
1. 2. for do3. 用公式(4)更新繁殖蜣螂的位置4. for do5. if then6. 7. end if8. if then9. 10. end if11. end for12. end for |
3) 觅食蜣螂。一些已经长成成虫的蜣螂会从地下钻出来寻找食物,我们称它们为觅食蜣螂,也叫小蜣螂。除此之外,还需要建立最佳受食区域来引导觅食蜣螂受食,这模拟了觅食蜣螂在自然界的觅食过程。最佳受食区域的边界定义如下:
(5)
式中, 为全局最佳受食位置; 和 分别为最佳受食区域的下界和上界,其余参数在式(3)中定义。因此,觅食蜣螂的位置更新公式如下:
(6)
式中, 为第i只觅食蜣螂在第t次迭代时的位置信息;C1表示一个服从正态分布的随机数;C2表示属于(0, 1)的随机向量。
4) 偷窃蜣螂。还有一些蜣螂被称为偷窃蜣螂,会从其他蜣螂那里偷粪球,这是自然界中非常常见的现象。从式(5)可以看出, 是最优的食物来源位置。因此,我们可以假设 周围即表示争夺食物的最佳地点。在迭代过程中,偷窃蜣螂的位置更新公式如下:
(7)
式中, 为第i只偷窃蜣螂在第t次迭代时的位置信息;g是一个大小为 维的随机向量,服从正态分布;S为常量。
由以上可得,DBO算法的伪代码如下:
算法3:DBO算法伪代码输入:最大迭代次数 、种群规模N输出:最优位置 、适应度值 |
1. 随机初始化种群和定义算法相关参数2. while ( ) do3. for do4. if 滚球蜣螂 then5. if then6. 利用公式(1)更新滚球蜣螂位置7. else8. 利用公式(2)更新滚球蜣螂位置9. end if10. end if11. if 繁殖蜣螂 then12. 利用公式(4)更新卵球位置13. end if14. if 觅食蜣螂 then15. 利用公式(6)更新觅食蜣螂位置16. end if17. if 偷窃蜣螂 then18. 利用公式(7)更新偷窃蜣螂位置19. end if20. end for21. 如果存在比当前全局最优值更优的值,则更新最优解和最优值22. t = t + 123. end while24. 输出适应度值 |
本章针对蜣螂优化算法容易陷入局部最优、全局搜索性较差等不足,提出了一种混合策略改进的蜣螂优化算法(MIDBO),具体的改进策略如下。
在解决复杂的优化问题时,由于DBO算法的种群初始化是随机的,并不能保证初始种群能够均匀分布,种群位置随机分布,使得部分个体远离最优解,从而会影响算法的收敛速度。为了解决原算法中存在的这些问题,引入了Tent混沌映射。
混沌序列因其随机性,遍历性等特点,近年来已经成为实现对优化算法改进的一种常用手段,改进方法基于混沌远离,通过混沌奇数产生随机数代替常规伪随机数生成群体的初始位置,且在大量的文献中已得到验证。如刘志强等利用Tent混沌映射丰富了狼群算法的初始化,提出了TGWO,并通过实验验证了该算法在路径寻优上的优越性
(8)
本文对 取0.5,t是迭代次数。
然后,对混沌初始化得到的种群进行反向学习,反向学习的公式如(9)所示:
(9)
其中,w是一个大小为 维的随机向量,服从正态分布;Lb和Ub分别表示解空间的下界和上界,X表示初始化种群。
最后,将初始种群和反向种群合并,计算其适应度值,选择最优N个个体作为新的初始化种群。
使用Tent混沌反向学习来初始化种群,提升了种群多样性,让种群分布更加均匀,从而使算法可以快速收敛并接近最优解。
三角形随机游走通常指的是在一个三角形内部进行随机步行的过程,在数学和计算机科学中都有一些应用和研究,其应用主要包括:① 在随机游走模型中,用于研究分子在空间中的扩散或者在材料科学中的颗粒运动模拟;② 在算法设计中,随机游走可以用来模拟搜索算法或者优化问题的解空间;③ 在概率分析中,用于研究在给定约束下的随机行为的概率性质。
将三角形随机游走策略运用在本文中,蜣螂不再直接向食物源移动,而是采用三角形的路径在食物周围游走,这样可以大大增加蜣螂在搜索过程的随机性,避免算法陷入局部最优,同时使蜣螂有更大的机会探索搜索空间,从而找到更好的解。
首先,得到种群和食物源之间的距L1,种群的游走步长范围为L2;然后,根据公式(12)定义行走的方向 ;最后用公式(14)求出获得种群游走后得到的位置 :
(10)
(11)
(12)
(13)
(14)
其中, 表示属于(0, 1)之间的随机向量。
通过采用三角形随机游走策略,可以增加蜣螂在搜索过程中的随机性,避免算法陷入局部最优,提高算法的收敛速度和全局搜索能力。
针对收敛速度慢的问题,将基于迭代次数的动态权重系数引入偷窃蜣螂的位置更新公式(7),偷窃蜣螂改进后的位置更新公式如下:
(15)
其中, , 。在上式中, 的权重系数k1在迭代前期较大,使蜣螂在搜索空间内探索更优区域;而在后期,蜣螂靠近最优区域,其权重系数k2逐渐增大,使蜣螂在最优区域邻域开发,以此提高全局探索和局部开发的平衡能力。
在原DBO算法的迭代后期,容易出现局部最优停滞的情况,为解决这一问题,引入了柯西–高斯变异策略,选择当前适应度最高的个体进行变异,然后比较其变异前后的位置,选择较优的位置代入下一次迭代。具体的公式如下所示:
(16)
式中, 为最优个体变异后的位置; 为柯西–高斯变异的标准差; 是满足柯西分布的随机变量; 是满足高斯分布的随机变量; 和 是随迭代次数自适应调整的动态参数。在迭代过程中, 缓慢较小, 缓慢增大,是算法可以跳出当前停滞,同时平衡其全局探索和局部开发能力。
对于DBO算法中存在的收敛速度慢,易陷入局部最优等问题,本文提出了一种多策略改进的蜣螂优化算法,在种群初始化时,加入Tent混沌反向学习策略,使初始种群成员均匀分布;其次,引入了三角形随机游走策略改进繁殖蜣螂位置更新方式,平衡了全局搜索和局部挖掘能力;又加入动态权重系数改进了偷窃蜣螂位置更新方式;最后,引入柯西–高斯变异策略对最优蜣螂位置进行扰动,提高算法跳出局部最优的能力。MIDBO算法的步骤如下:
1) 初始化种群大小N,最大迭代次数 等参数,根据公式(8)来初始化种群;
2) 计算种群个体的目标函数值,确定种群的最优位置和最优值;
3) 根据λ的值来判断使用公式(1)还是公式(2)来更新滚球蜣螂位置;
4) 用公式(3)更新雌蜣螂产卵的区域边界,并用公式(6)来更新繁殖蜣螂位置;
5) 用公式(5)更新觅食蜣螂的最佳受食区域,然后用公式(14)更新繁殖蜣螂位置;
6) 根据公式(15)更新偷窃蜣螂位置;
7) 利用公式(16)进行柯西–高斯变异扰动寻优;
8) 更新全局最优解和最优值;
9) 判断是否达到最大迭代次数,如果是,输出最优解和最优值;否则,跳转到(3)继续迭代。
基准函数 | 维度 | 范围 | 最优值 |
30 | [−100, 100] | 0 | |
30 | [−10, 10] | 0 | |
30 | [−100, 100] | 0 | |
30 | [−100, 100] | 0 | |
30 | [−128, 128] | 0 | |
30 | [−500, 500] | 418.9829×Dim | |
30 | [−5.12, 5.12] | 0 | |
30 | [−32, 32] | 0 | |
30 | [−600, 600] | 0 | |
2 | [−65, 65] | 1 | |
4 | [−5, 5] | 0.0003075 | |
2 | [−5, 5] | −1.0316285 | |
4 | [0, 10] | −10.1523 | |
4 | [0, 10] | −10.4028 | |
4 | [0, 10] | −10.5363 |
为了测试本文所提改进策略的性能,选用了15个经典基准测试函数进行仿真测试。其中,F1~F5是单峰函数,可以测试勘探能力;F6~F9是多峰函数,F10~F15是固定维度的多峰函数,包含多个局部最优值,用于评估算法的全局搜索和挖掘能力。基准测试函数的函数表达式、搜索范围和理论最优解如
在本章中,将验证每种改进策略的有效性,同时验证文章改进算法性能。本次选取了近年来比较新颖的五种基本元启发式算法与MIDBO进行对比实验,分别是蜣螂优化算法(DBO)、减法平均优化算法(Subtraction-Average-Based Optimizer, SABO)
为保证实验的有效性和公平性,测试在同一环境下进行,实验环境为:Windows11操作系统,CPU为Intel Core i7-12700H,主频2.3 GHz,内存16 GB,算法用MatlabR2022a编写。
算法 | 参数值 |
MIDBO | , , |
DBO | , , |
PSO | , , |
SABO | , , |
WOA | 由2线性下降到0 |
SSA | , , |
所要测试算法的种群规模统一设定为30,最大迭代次数为500次,各算法其余的参数设置如
为减小实验过程中偶然性的影响,设置最大迭代次数为500次,对每个测试函数独立运行30次,计算其最优值(Best)、平均值(Mean)、标准差(Std),这三者作为评价指标。实验结果如
MIDBO | DBO | SSA | GWO | WOA | SABO | ||
F1 | Best | 0 | 1.76E−162 | 0 | 2.07E−29 | 2.35E−86 | 1.86E−115 |
Mean | 0 | 1.49E−108 | 1.23E−57 | 3.12E−27 | 3.81E−72 | 4.83E−113 | |
Std | 0 | 8.13E−108 | 6.67E−57 | 1.57E−27 | 8.33E−72 | 7.56E−113 | |
F2 | Best | 0 | 1.77E−84 | 6.73E−104 | 1.42E−17 | 5.93E−57 | 2.97E− 59 |
Mean | 0 | 1.56E−57 | 1.48E−25 | 9.18E−17 | 1.21E−51 | 1.11E−58 | |
Std | 0 | 8.28E−57 | 7.87E−25 | 5.70E−17 | 6.53E−51 | 7.56E−59 | |
F3 | Best | 0 | 1.63E−158 | 4.08E−163 | 1.39E−09 | 1.15E+24 | 1.67E−66 |
Mean | 0 | 1.41E−90 | 3.90E−25 | 4.62E−05 | 4.65E+04 | 6.31E−49 | |
Std | 0 | 7.79E−90 | 2.13E−24 | 1.49E−05 | 1.71E+04 | 3.45E−48 | |
F4 | Best | 0 | 5.84E−72 | 3.99E−105 | 4.69E−01 | 5.80E+01 | 3.68E− 36 |
Mean | 0 | 1.33E−44 | 5.96E−29 | 4.60E+00 | 8.58E+01 | 2.65E−35 | |
Std | 0 | 7.29E−43 | 3.27E−28 | 3.43E+00 | 1.09E+01 | 1.46E−35 | |
F5 | Best | 1.82E−06 | 1.09E−05 | 1.04E−04 | 6.08E−04 | 5.68E−04 | 1.32E−05 |
Mean | 8.13E−05 | 8.96E−04 | 1.89E−03 | 2.20E−03 | 2.99E−03 | 3.85E−04 | |
Std | 8.86E−05 | 6.52E−04 | 1.36E−03 | 1.21E−03 | 3.23E−03 | 2.48E−04 | |
F6 | Best | −1.26E+04 | −1.13E+04 | −9.35E+03 | −7.76E+03 | −1.25E+04 | −4.83E+03 |
Mean | −1.13E+04 | −7.52E+03 | −8.32E+03 | −5.93E+03 | −1.06E+04 | −3.16E+03 | |
Std | 2.70E−01 | 1.56E+03 | 4.93E+02 | 8.30E+02 | 1.89E+03 | 4.43E+02 | |
F7 | Best | 0 | 0 | 0 | 0 | 0 | 0 |
Mean | 0 | 0 | 0 | 3.58E+00 | 1.89E−15 | 2.08E−14 | |
Std | 0 | 0 | 0 | 4.35E+00 | 1.03E−14 | 2.79E−14 | |
F8 | Best | 4.44E−16 | 4.44E−16 | 4.44E−16 | 7.51E−14 | 4.44E−16 | 7.53E−15 |
Mean | 4.44E−16 | 4.44E−16 | 5.62E−16 | 1.00E−13 | 3.87E−15 | 8.02E−15 | |
Std | 0 | 6.49E−16 | 0 | 1.29E−14 | 2.37E−15 | 1.54E−15 | |
F9 | Best | 0 | 0 | 0 | 0 | 0 | 0 |
Mean | 0 | 0 | 0 | 3.37E−03 | 1.16E−02 | 0 | |
Std | 0 | 0 | 0 | 7.79E−03 | 2.03E−17 | 0 | |
F10 | Best | 9.98E−01 | 9.98E−01 | 9.98E−01 | 9.98E−01 | 9.98E−01 | 9.98E−01 |
Mean | 1.13E+00 | 5.60E+00 | 5.35E+00 | 4.20E+0 | 4.32E+00 | 3.49E+00 | |
Std | 5.03E−01 | 4.39E+00 | 5.45E+00 | 4.11E+00 | 4.33E+00 | 2.60E+00 | |
F11 | Best | 3.08E−04 | 3.10E−04 | 3.07E−04 | 3.08E−04 | 3.18E−04 | 3.08E−04 |
Mean | 4.06E−04 | 7.73E−04 | 3.63E−04 | 5.15E−03 | 8.23E−04 | 7.57E−04 | |
Std | 8.35E−05 | 4.51E−04 | 1.81E−04 | 8.54E−03 | 5.63E−04 | 1.31E−03 | |
F12 | Best | 3.98E−01 | 3.98E−01 | 3.98E−01 | 3.98E−01 | 3.98E−01 | 3.98E−01 |
Mean | 3.98E−01 | 3.98E−01 | 3.98E−01 | 3.98E−01 | 3.98E−01 | 4.70E−01 | |
Std | 5.41E−04 | 1.11E−03 | 0 | 6.65E−05 | 3.89E−05 | 1.18E−01 | |
F13 | Best | −1.02E+01 | −1.01E+01 | −1.02E+01 | −1.02E+01 | −1.02E+01 | −1.01E+01 |
Mean | −9.82E+00 | −4.43E+00 | −8.45E+00 | −9.51E+00 | −8.62E+00 | −9.50E+00 | |
Std | 4.51E−01 | 2.36E+00 | 2.44E+00 | 1.68E+00 | 2.62E+00 | 1.96E+00 | |
F14 | Best | −1.04E+01 | −1.04E+01 | −1.04E+01 | −1.04E+01 | −1.04E+01 | −1.04E+01 |
Mean | −1.01E+01 | −6.23E+00 | −8.10E+00 | −1.04E+01 | −7.68E+00 | −9.53E+00 | |
Std | 2.03E−01 | 2.76E+00 | 2.68E+00 | 4.43E+00 | 3.22E+00 | 1.65E+00 | |
F15 | Best | −1.05E+01 | −1.05E+01 | −1.05E+01 | −1.05E+01 | −1.05E+01 | −1.05E+01 |
Mean | −1.05E+00 | −8.67E+00 | −9.09E+00 | −9.99E+00 | −6.46E+00 | −9.07E+00 | |
Std | 1.35E−01 | 2.67E+00 | 2.43E+00 | 2.06E+00 | 3.22E+00 | 1.76E+00 |
从
通过上述可知,改进的MIDBO算法能有效提高全局搜索能力,并在算法后期,有效提高局部开发能力。综上,MIDBO在上述不同类型的基准测试函数上的表现均优于对比算法。
图1. 测试函数收敛曲线图
本文在蜣螂优化算法的基础上提出了基于混合策略改进的蜣螂优化算法(MIDBO)。通过引入Tent混沌反向学习、三角形随机游走和动态权重系数、柯西–高斯变异策略,能够在很大程度上改善基本DBO算法寻优精度低和易陷入局部最优的不足。并且,本文还进行了15个基准函数的仿真测试,实验结果表明,MIDBO算法是可行有效的,在收敛精度和收敛速度上都优于原DBO算法、减法平均优化算法、灰狼优化算法、鲸鱼优化算法、麻雀搜索算法。其寻优性能有了很大的提高。下一步考虑继续改进算法,提高算法在有多约束条件优化问题中的寻优性能,或将重点转移到本文算法在实际问题中的拓展应用。
北航北斗技术成果转化及产业化资金资助项目(项目编号:BARI202104)。
*通讯作者。