Improved Dung Beetle Optimizer Based on Elite Opposition Learning Strategy
In order to improve the population diversity and avoid the risk of falling into local optimum during the global search of Dung Beetle Optimizer (DBO), an improved Dung Beetle Optimizer based on Elite Opposition Learning Strategy (EoDBO) is proposed using chaos theory and elite opposition learning strategy. First, a Sinusoidal map chaotic mapping strategy is introduced in the initialization of individual population positions of dung beetles to improve the overall quality of the dung beetle population before the search for optimality and to facilitate faster global search; second, an elite opposition learning strategy is used in the later stage of the algorithm to perturb some of the better dung beetle positions to tune up the local exploitation capability of the algorithm. The performance of the improved algorithm is tested using 12 international benchmarking functions and compared with DBO algorithm, Sparrow Search Algorithm (SSA), Gray Wolf Optimization Algorithm (GWO), Whale Optimization Algorithm (WOA), and Chimpanzee Optimization Algorithm (ChOA) for analysis. The experiments show that the EoDBO algorithm turns out to be superior in terms of convergence accuracy and stability of the algorithm, and converges faster.
Dung Beetle Optimizer
优化问题普遍存在于社会科学、工程和经济等各个领域中,群智能(Swarm Intelligent, SI)优化算法作为求解优化问题的有效工具且因其寻优能力强、操作简单等特点近些年来备受学者们的关注
为了提升算法的性能,不断有学者提出改进的SI算法。王乐洋等人
蜣螂优化算法(Dung Beetle Optimizer, DBO)是2022年Xue等人
DBO算法受自然界中蜣螂生物活动的影响,将蜣螂种群的生物活动抽象为五种过程:滚球、跳舞、繁殖、觅食和偷窃。蜣螂会利用天体线索,如阳光、月光和偏振光进行导航,使其所滚的粪球沿着直线滚动。一旦失去光源,蜣螂的路径就不再是直线,而是弯曲的,有时甚至是圆形。除了光源外,许多自然因素也会导致蜣螂偏离原来的方向,如风或者不平坦的地面。当蜣螂在滚球的过程中遇到障碍物无法前进时,则会爬到粪球上面跳舞(包括一系列的旋转和停顿)来决定它们前进的方向。因此,蜣螂的滚球行为可以描述为:
(1)
当蜣螂遇到障碍物无法前进时,则通过跳舞的方式决定新的方向,此时蜣螂滚球的位置按式(2)进行更新:
(2)
式中, 是偏转角。
蜣螂所获得的粪球主要有两个目的,第一个目的是将所获得的粪球用于产卵和养育下一代。为了给下一代提供一个安全的环境,将雌性蜣螂的产卵区域定义如下:
(3)
式中, 表示当前局部最优位置, 和 分别表示产卵区域的下边界和上边界。 表示最大迭代次数, 和 分别表示优化问题的下边界和上边界。
一旦确定了产卵区域,雌性蜣螂就会在该区域进行产卵,假设每个雌性蜣螂在每次迭代过程中只会下一个卵,则卵球在每次迭代过程中,其位置更新如下式所示:
(4)
(5)
式中, 表示全局最优位置, 和 分别表示最佳觅食区域的下边界和上边界。小蜣螂的位置更新如下式所示:
(6)
式中, 表示第i个小蜣螂第t次迭代的位置信息,C1表示服从正太分布的随机数,C2是 范围内的随机向量。还有一定比例的蜣螂会从其他蜣螂哪里偷窃粪球,因此,进行偷窃的蜣螂的位置更新如下所示:
(7)
式中, 表示第i个小偷第t次迭代的位置信息,g是大小为 的服从正太分布的随机变量,S是常量。
混沌系统具有随机性、遍历性,因此将混沌理论和SI算法结合是改进优化算法的一种思路,研究表明其能有效逃离局部和提高收敛精度
(8)
式中, 为第k次迭代的位置信息,迭代过程中, , 。
精英反向学习策略是Tizhoosh
定义2:基于反向解的优化
定义3:精英反向解
精英反向学习(Elite Opposition-Based Learning, EOBL)是通过当前问题的可行解构造其反向解以此来增加种群多样性,本文将DBO算法中融入精英反向学习策略,在DBO的每一个迭代过程中,针对精英个体执行反向学习,生成精英个体的反向种群,参与进化竞争。
本文提出的基于精英反向学习策略的改进蜣螂优化算法(EoDBO)步骤如下:
1) 对种群进行初始化,并进行相关参数设置,如种群数量,最大迭代次数,当前迭代次数,滚球蜣螂数量、卵球数量、小蜣螂数量和偷窃蜣螂数量。
2) 采用Sinusoidal混沌映射随机生成蜣螂个体位置,计算蜣螂个体适应度值,记录当前全局最优和最劣值,及其对应位置。
3) 根据公式(1)、(2)对滚球蜣螂的位置进行更新,并计算相应的适应度值,记录当前局部最优值和最优位置。
4) 根据公式(3)计算蜣螂产卵区域,并根据公式(4)对卵球位置进行更新。
5) 根据公式(5)计算小蜣螂的觅食区域,并根据公式(6)对小蜣螂的位置进行更新。
6) 根据公式(7)对偷窃蜣螂的位置进行更新。
7) 更新蜣螂种群个体最优位置和全局最优位置。
8) 对蜣螂种群个体实施精英反向学习策略,更新蜣螂位置,得到新的蜣螂个体最优位置和全局最优位置。
为验证本文所提出的EoDBO算法的可行性和寻优能力,本文基于Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz,16 GB内存,Windows 10操作系统和仿真软件MATLAB R2021a进行仿真实验。
为验证EoDBO算法的寻优能力,本文将它用于求解12个国际上通用的标准测试函数,并与基础DBO算法、SSA算法、GWO算法、WOA算法、ChOA算法进行实验比较。测试函数见
测试函数 |
范围 |
最小值 |
|
[−100, 100] |
0 |
|
[−10, 10] |
0 |
|
[−100, 100] |
0 |
|
[−100, 100] |
0 |
|
[−30, 30] |
0 |
|
[−100, 100] |
0 |
|
[−1.28, 1.28] |
0 |
|
[−500, 500] |
−12569.5 |
|
[−5.12, 5.12] |
0 |
|
[−32, 32] |
0 |
|
[−600, 600] |
0 |
|
[−50, 50] |
0 |
函数 |
名称 |
EoDBO |
DBO |
SSA |
GWO |
WOA |
ChOA |
F1 |
平均值 |
0 |
1.23E-109 |
8.96E-74 |
1.57E-27 |
3.85E-74 |
1.26E-07 |
标准差 |
0 |
6.75E-109 |
4.91E-73 |
3.50E-27 |
1.91E-73 |
2.48E-06 |
|
F2 |
平均值 |
3.84E-153 |
3.62E-57 |
1.95E-40 |
1.12E-16 |
5.73E-52 |
3.76E-06 |
标准差 |
2.10E-152 |
1.67E-56 |
1.07E-39 |
1.13E-16 |
1.19E-51 |
5.56E-06 |
|
F3 |
平均值 |
0 |
1.41E-45 |
1.32E-70 |
5.05E-06 |
47090.4 |
158.232 |
标准差 |
0 |
7.72E-45 |
7.20E-70 |
8.95E-06 |
12966.1 |
479.476 |
|
F4 |
平均值 |
8.38E-353 |
2.59E-42 |
1.36E-54 |
6.58E-07 |
54.5600 |
0.21946 |
标准差 |
0 |
1.41E-41 |
7.43E-54 |
5.71E-07 |
26.8119 |
0.36133 |
|
F5 |
平均值 |
25.01515 |
25.73096 |
0.01640 |
27.2492 |
27.8623 |
28.7841 |
标准差 |
3.64473 |
0.19397 |
0.02388 |
0.68983 |
0.45879 |
0.31544 |
|
F6 |
平均值 |
6.84E-05 |
0.00938 |
0.00013 |
0.86759 |
0.43450 |
3.85132 |
标准差 |
9.24E-05 |
0.04345 |
9.45E-05 |
0.44661 |
0.21278 |
0.44380 |
|
F7 |
平均值 |
0.00076 |
0.00131 |
0.00055 |
0.00172 |
0.00372 |
0.00210 |
标准差 |
0.00068 |
0.00108 |
0.00036 |
0.00072 |
0.00461 |
0.00227 |
|
F8 |
平均值 |
−11231.7 |
−9831.68 |
−8009.45 |
−6101.95 |
−10247.2 |
−5708.48 |
标准差 |
1271.27 |
1932.27 |
2316.39 |
690.233 |
1748.23 |
61.2739 |
|
F9 |
平均值 |
0 |
0.16867 |
0 |
2.19325 |
1.89E-15 |
4.44135 |
标准差 |
0 |
0.92383 |
0 |
3.48915 |
1.04E-14 |
5.57871 |
|
F10 |
平均值 |
1.01E-15 |
8.88E-16 |
8.88E-16 |
1.03E-13 |
4.56E-15 |
19.9624 |
标准差 |
6.48E-16 |
0 |
0 |
1.72E-14 |
3.43E-15 |
0.00144 |
|
F11 |
平均值 |
0 |
0 |
0 |
0.00334 |
1.08E-02 |
0.01339 |
标准差 |
0 |
0 |
0 |
0.00636 |
4.14E-02 |
0.02158 |
|
F12 |
平均值 |
5.99E-05 |
3.86E-03 |
3.31E-05 |
0.04694 |
0.02188 |
0.58261 |
标准差 |
2.65E-04 |
1.89E-02 |
2.80E-05 |
0.02095 |
0.01950 |
0.26338 |
由
多峰基准测试函数含有多个局部高峰,优化算法求解时极易陷入局部最优,因此多峰基准测试函数常用于测试算法逃离局部最优的能力。在求解多峰函数F8时,ChOA算法和GWO算法在求解精度上明显弱于其余算法,且EoDBO算法、SSA算法的求解精度最高。在求解函数F9、F11时,EoDBO算法、SSA算法和WOA算法均具有良好的求解精度。在求解函数F10时,EoDBO算法、SSA算法和DBO算法具有良好的求解精度。在求解函数F12时,EoDBO算法、SSA算法具有较好的求解精度。通过对比可以发现,在求解多峰函数时,EoDBO算法和SSA算法相较于其他四种算法表现更优,能更好地降低陷入局部最优的风险从而提高整体搜索速度。
为了更直观显示实验对比分析结果,本文给出EoDBO算法与其余五种算法在相同实验条件下得到的函数仿真曲线,见
由
综上所述,改进后的蜣螂算法在搜索中能有效改善全局寻优精度,提高了算法稳定性,并使算法具有较强的逃离局部最优的能力。
蜣螂优化算法是模拟蜣螂自然行为的一种仿生智能算法,本文针对在蜣螂优化算法的基础上提出了一种改进的蜣螂优化算法。改进的蜣螂优化算法前期使用Sinusoidal map混沌思想以增加初始种群的多样性,从而增加全局搜索速度;在后期引入精英反向学习策略以增强其逃离局部最优的能力。通过求解12个基本测试函数并与其余五种智能算法进行比较,改进的蜣螂优化算法能有效提高算法的收敛精度,且提高整个搜索过程的搜索速度与稳定性。