蜣螂优化算法(dung beetle optimizer,DBO)[1]作为2022年提出的一种新型元启发算法,其灵感来源于蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为。与灰狼优化算法(GWO)[2]、鲸鱼优化算法(WOA)[3]等其他学习算法相比,DBO算法在基准函数上具有更强的优化能力和更快的效率。但是,DBO算法和大部分智能算法一样,在后期迭代中,很容易陷入局部最优。为了进一步提升DBO算法的性能,本文对该算法进行了研究改进。
对于类似的元启发式算法,已经有很多学者对各种算法的精度、速度和鲁棒性等进行优化改进。王娟等[4]使用Tent混沌映射增加了算法种群的多样性,有效提高了海鸥算法的求解精度和速度;Wang等[5]在萤火虫算法(FA)中引入惯性权重,平衡了FA的收敛速度和局部寻优能力,提升了算法的精度和速度;赵青杰等[6]应用动态自适应惯性权重有效提升了算法局部和全局搜索能力;李阳等[7]在算法中引入莱维飞行策略,扩大了种群的搜索范围,一定程度上优化了算法的性能;邬贵昌等[8]在麻雀算法中也使用了莱维飞行策略,有效提升了算法的寻优精度和稳定性。
本文针对DBO算法的精度和收敛速度进行了优化改进,提出了混合策略改进的蜣螂优化算法(TDBO),从3个方面对DBO算法作出改进:采用Tent混沌映射策略使初始蜣螂种群在搜索空间中分布得更加均匀,以此增加种群多样性;引入自适应惯性权重改进蜣螂繁衍公式,提升算法寻优能力;在蜣螂偷窃行为公式中引入莱维飞行,产生随机步长,为解增加一个扰动量,提高算法的搜索能力,使算法跳出局部最优。通过上述3方面的改进,在基于9个经典基准测试函数上进行测试, 且进行Wilcoxon秩和检验,并通过3个工程优化问题的验证。实验结果证明了TDBO算法在性能上的优越性。
1.
蜣螂优化算法介绍
蜣螂优化算法是基于蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为而提出的一种元启发式算法,主要包括蜣螂滚球、觅食、繁衍、偷窃4个优化过程。
1.1
蜣螂滚球
a. 无障碍模式。
当蜣螂前行无障碍时,蜣螂在滚动过程中通过太阳来导航,以保持粪球在直线上滚动。滚球蜣螂的位置更新如式(1)所示。
$$ \left\{\begin{array}{l}{x}_{i}^{t+1}={x}_{i}^{t}+\alpha k{x}_{i}^{t-1}+b\Delta x\\ \Delta x=\left|{x}_{i}^{t}-{x}^{\mathrm{w}}\right|\end{array}\right. $$
(1)
式中:$ t $表示当前迭代次数;$ {x}_{i}^{t} $表示第$ t $次迭代时第$ i $只蜣螂的位置信息;$ k\in \left(0\right.,0.2] $是一个常数量,表示偏转系数,本文取0.1;$ b $是属于$ \left(\mathrm{0,1}\right) $的常数值,本文取0.3;$ \alpha $是自然系数,取1或−1,当$ \alpha $取1时表示无偏差,取−1时表示偏离原来方向,$ \alpha $的具体取值根据概率方法确定,用来模拟复杂的环境;$ {x}^{\mathrm{w}} $表示全局最差位置;$ \Delta x $是蜣螂当前位置与全局最差位置的绝对距离,用以模拟光强度变化,越大表示光源越弱,该参数可以提升算法搜索的性能,尽可能地使算法探索整个空间。
b. 跳舞。
当蜣螂遇到障碍物而无法前进时,它会通过跳舞来重新定向自己,以获得新的路线。因此,蜣螂的位置更新如式(2)所示。
$$ {x}_{i}^{t+1}={x}_{i}^{t}+\mathrm{tan}\;\theta \left|{x}_{i}^{t}-{x}_{i}^{t-1}\right| $$
(2)
式中:$ \theta $是属于$ [0,\text{π}] $的角。当$ \theta =0,\;\dfrac{\text{π}}{2} $或π时,$ \mathrm{tan}\;\theta $没有意义,此时蜣螂的位置不会更新。
1.2
繁 殖
为了给后代提供一个安全的环境,作者提出了一个边界选择策略来模拟雌性蜣螂产卵的区域,其定义为
$$ \left\{\begin{array}{c}{L}^{\mathrm{*}}=\mathrm{max}\left({x}^{\mathrm{g}}\left(1-R\right),L\right)\\ {U}^{\mathrm{*}}=\mathrm{min}\left({x}^{\mathrm{g}}\left(1+R\right),U\right)\end{array}\right. $$
式中:$ {x}^{\mathrm{g}} $表示当前局部最优位置;$ R=1-t/{T}_{\mathrm{m}\mathrm{a}\mathrm{x}} $,$ {T}_{\mathrm{m}\mathrm{a}\mathrm{x}} $表示最大迭代次数;$ L $和$ U $分别表示优化问题的下界和上界,$ {L}^{*} $和$ {U}^{*} $分别表示产卵区域的下界和上界。
蜣螂产卵区域是随迭代次数动态调整的,因此,产卵球的位置在迭代过程中也是动态的,如式(3)所示。
$$ {B}_{i}^{t+1}={x}^{\mathrm{g}}+{\boldsymbol{b}}_{1}\left({B}_{i}^{t}-{L}^{*}\right)+{\boldsymbol{b}}_{2}\left({B}_{i}^{t}-{U}^{*}\right) $$
(3)
式中:$ {B}_{i}^{t} $为第$ i $个卵球在第$ t $次迭代的位置信息;$ {\boldsymbol{b}}_{1} $和$ {\boldsymbol{b}}_{2} $为两个独立的、大小为$ 1\times D $的随机向量,$ D $为优化问题的维度。
1.3
觅 食
一些成熟的小蜣螂会从地下出来寻找食物,小蜣螂的觅食区域是动态更新的,表示如下:
$$ \left\{\begin{array}{c}{L}^{\mathrm{l}}=\mathrm{max}\left({x}^{\mathrm{b}}\left(1-R\right),L\right)\\ {U}^{\mathrm{l}}=\mathrm{min}\left({x}^{\mathrm{b}}\left(1+R\right),U\right)\end{array}\right. $$
式中:$ {x}^{\mathrm{b}} $为当前种群的全局最优位置;$ {L}^{\mathrm{l}} $和$ {U}^{\mathrm{l}} $分别表示小蜣螂觅食区域的下界和上界。小蜣螂的位置更新如式(4)所示。
$$ {x}_{i}^{t+1}={x}_{i}^{t}+{\boldsymbol{C}}_{1}\left({x}_{i}^{t}-{L}^{\mathrm{l}}\right)+{\boldsymbol{C}}_{2}\left({x}_{i}^{t}-{U}^{\mathrm{l}}\right) $$
(4)
式中:$ {\boldsymbol{C}}_{1} $为服从正态分布的随机数,即$ {\boldsymbol{C}}_{1}~N\left(\mathrm{0,1}\right) $;$ {\boldsymbol{C}}_{2} $为$ 1\times D $的属于$ \left(\mathrm{0,1}\right) $之间的随机向量。
1.4
偷 窃
在种群中,会有一些蜣螂从其他蜣螂那里偷食物,偷窃蜣螂的位置更新如式(5)所示。
$$ {x}_{i}^{t+1}={x}^{\mathrm{b}}+S\boldsymbol{g}\left(\left|{x}_{i}^{t}-{x}^{\mathrm{g}}\right|+\left|{x}_{i}^{t}-{x}^{\mathrm{b}}\right|\right) $$
(5)
式中:$ {x}^{\mathrm{b}} $为当前种群的全局最优位置,表示最优食物源,即假设该位置附近是竞争食物的最优位置;$ \boldsymbol{g} $表示大小为$ 1\times D $且服从正态分布的随机向量;$ S $表示一个常数值。
1.5
种群划分
对于种群中蜣螂个体的划分,作者按照6∶6∶7∶11的比例。既在30个个体中,滚球蜣螂有6个,繁衍蜣螂有6个,觅食蜣螂有7个,偷窃蜣螂有11个。
2.
蜣螂优化算法的改进
2.1
Tent混沌映射
基础DBO算法的初始蜣螂位置是随机分布的,致使蜣螂个体位置在解空间中分布不均匀,从而降低算法的收敛速度和精度。因此,本文在DBO算法的基础上引入混沌映射策略,丰富蜣螂种群多样性。岳龙飞等[9]验证了Tent映射在均匀分布和收敛速度方面相对于其他映射具有更大的优势。
Tent混沌映射的函数表达式如式(6)所示。
$$ {x}_{n}^{m+1}=\left\{\begin{array}{l}2{x}_{n}^{m}\text{,}\qquad \; 0\leqslant {x}_{n}^{m}\leqslant 0.5\\ 2\left(1-{x}_{n}^{m}\right)\text{,}0.5\leqslant {x}_{n}^{m}\leqslant 1\end{array}\right. $$
(6)
式中:$ n $表示种群大小;m表示空间维数。
通过式(6)得到混沌序列$ {x}_{i}^{k} $后再通过式(7)得到初始化的种群。
$$ y_n^m=L+\left(U-L\right)x_n^m $$
(7)
2.2
自适应惯性权重
惯性权重因子$ \omega $在算法优化中是一个很重要的参数,可以有效提高算法的收敛速度和局部寻优能力。繁衍蜣螂在进行局部寻优时是依据上一时刻局部最优位置更新的,没有考虑计算过程中其他位置信息,可能导致算法最终陷入局部最优,达不到整体最优值。参考文献[10-11],本文使用式(8)的自适应惯性权重。当权重较大时,繁衍蜣螂拥有较强的全局搜索能力,当权值较小时,繁衍蜣螂具有较强的局部寻优能力,能够加快收敛速度。因此,融合自适应惯性权重能够很好地平衡搜索多样性与收敛准确性之间的关系,提高算法的收敛精度和速度。
自适应权重公式如式(8)所示。
$$ \omega =\mathrm{cos}\left(\frac{\text{π}t}{4{T}_{\mathrm{m}\mathrm{a}\mathrm{x}}}+\text{π}\right)+1 $$
(8)
式中,Tmax为最大迭代次数。
将式(8)代入式(3),得到改进的蜣螂繁衍位置更新函数:
$$ {B}_{i}^{t+1}={x}^{\mathrm{g}}+\omega \left({B}_{i}^{t}-{L}^{*}\right)+\omega \left({B}_{i}^{t}-{U}^{\mathrm{*}}\right) $$
(9)
2.3
莱维飞行
莱维飞行[12]是通过随机交替大、小步长使得算法跳出局部最优的方法。由上述偷窃蜣螂的更新公式可以发现,其搜索步长是固定的,因此算法可能会陷入局部最优的情况。引入莱维飞行后可以避免搜索空间的逐步缩小,使算法跳出局部最优解。改进后的蜣螂偷窃位置更新函数如式(10)所示。
$$ {x}_{i}^{t+1}={x}^{\mathrm{b}}y+S\boldsymbol{g}\left(\left|{x}_{i}^{t}-{x}^{\mathrm{g}}\right|+\left|{x}_{i}^{t}-{x}^{\mathrm{b}}\right|\right) $$
(10)
式中:$ y $符合莱维分布。
因为莱维飞行过程的复杂性,所以使用$ \mathrm{M}\mathrm{a}\mathrm{n}\mathrm{t}\mathrm{e}\mathrm{g}\mathrm{n}\mathrm{a} $算法模拟其过程[13],$ y $步长大小的公式如下:
$$ y=0.001\frac{u}{{v}^{1/\mathrm{\beta }}} $$
$ u $和$ v $均遵循正态分布:
$$ u~N\left(0,{\sigma }_{u}^{2}\right),v~N(0,{\sigma }_{v}^{2}) $$
$$ {\sigma }_{u}={\left\{\frac{\mathrm{\Gamma }(1+\beta ) \mathrm{s}\mathrm{i}\mathrm{n}\left(\dfrac{\text{π}\beta }{2}\right)}{{2}^{\left(\frac{\beta -1}{2}\right)} \mathrm{\Gamma }\left(\dfrac{1+\beta }{2}\right) \beta }\right\}}^{\tfrac{1}{\beta }},{\sigma }_{v}=1 $$
式中,$ \mathrm{\Gamma } $为$ \mathrm{G}\mathrm{a}\mathrm{m}\mathrm{m}\mathrm{a} $函数,参数$ \beta =1.5 $。
2.4
算法流程
a. 算法参数初始化,如:种群数量,空间维度和最大迭代次数等;
b. 种群初始化,通过式(6)的tent混沌映射,得到初始化蜣螂位置;
c. 计算种群的适应度值,获得最优个体;
d. 通过式(1)或(2)更新滚球蜣螂的位置;通过式(9)更新繁衍蜣螂的位置;通过式(4)更新觅食蜣螂的位置;通过式(10)更新偷窃蜣螂的位置;
e. 更新蜣螂种群信息,找出并保存适应度最优的蜣螂位置;
f. 当满足迭代条件时,输出算法最优结果,否则继续进行从d$ ~ $f的流程。
2.5
时间复杂度分析
假设DBO算法的种群大小为$ N $,空间维度为$ M $,那么该算法的初始化时间复杂度为$ O\left(1\right) $,计算适应度为$ O\left(N\right) $,总的迭代过程的复杂度为$ O\left(NM\right) $,DBO算法总的时间复杂度为
$$ O\left(1\right)+O\left(N\right)+O\left(NM\right)=O\left(NM\right) $$
在TDBO算法中,Tent混沌映射的初始化时间复杂度为$ O\left(NM\right) $,计算适应度为$ O\left(N\right) $,莱维飞行和自适应惯性权重对位置更新的时间复杂度分别为$ O\left(NM\right) $,总的迭代过程的复杂度为$ O\left(NM\right) $,TDBO算法总的时间复杂度为
$$ O\left(NM\right)+O\left(N\right)+O\left(NM\right)+O\left(NM\right)+O\left(NM\right)=O\left(NM\right) $$
综上所述,TDBO算法的时间复杂度并没有提升。
3.
实验结果分析
本文将从以下3个部分进行实验验证:a. 将TDBO算法与GWO算法、麻雀搜索算法(SSA)[14]、WOA算法、北方苍鹰优化算法(NGO)[15]和DBO算法这5个基本元启发式算法进行对比,验证TDBO算法的寻优能力和鲁棒性; b. 将TDBO算法与单独策略改进型的DBO算法进行比较,验证不同改进策略的有效性; c. 采用Wilcoxon秩和检验的方法验证TDBO算法与对比算法的差异性。
如表1所示,本文选取了多个常用的基准测试函数。其中,F1~F5为多维单峰值函数,F6和F7为多峰函数,F8和F9为固定维度多峰函数。为了避免实验的随机性,算法的最大迭代次数设置为500,种群规模大小均设为30,每个算法依据相应的参考文献设置其他的参数。
表
1
基本测试函数
Table
1
Basic test functions
函数表达式
维度
搜索区间
最优值
$ {{F}}_{1}\left({x}\right)=\displaystyle\sum _{{i}=1}^{{n}}\left|{{x}}_{{i}}\right|+\prod _{{i}=1}^{{n}}\left|{{x}}_{{i}}\right| $
30
[–10,10]
0
$ {{F}}_{2}\left({x}\right)=\displaystyle\sum _{{i}=1}^{{n}}{\left(\sum _{{j}-1}^{{i}}{{x}}_{{j}}\right)}^{2} $
30
[–100,100]
0
$ {{F}}_{3}\left({x}\right)=\mathbf{m}\mathbf{a}\mathbf{x}\{\left|{{x}}_{{i}}\right|,1\leqslant {i}\leqslant {n}\} $
30
[–100,100]
0
$ {{F}}_{4}\left({x}\right)=\displaystyle\sum _{{i}=1}^{{n}-1}{{i}{x}}_{{i}}^{4}+\mathbf{r}\mathbf{a}\mathbf{n}\mathbf{d}\mathbf{o}\mathbf{m}[0,1) $
30
[–1.28,1.28]
0
$ {{F}}_{5}\left({x}\right)=\displaystyle\sum _{{i}=1}^{{n}}{\left|{{x}}_{{i}}\right|}^{{i}+1} $
30
[–1,1]
0
$ {{F}}_{6}\left({x}\right)=\displaystyle\sum _{{i}=1}^{{n}}[{{x}}_{{i}}^{2}-10\mathbf{cos}\left(2\text{π}{{x}}_{{i}}\right)+10] $
30
[–5.12,5.12]
0
$ {{F}}_{7}\left({x}\right)=\dfrac{1}{4\;000}\displaystyle\sum _{{i}=1}^{{n}}{{x}}_{{i}}^{2}-\prod _{{i}=1}^{{n}}\mathbf{c}\mathbf{o}\mathbf{s}\frac{{{x}}_{{i}}}{\sqrt{{i}}}+1 $
30
[–600,600]
0
$ {{F}}_{8}\left({x}\right)=0.5+\dfrac{{\mathbf{s}\mathbf{i}\mathbf{n}}^{2}\left(\sqrt{{{x}}_{1}^{2}+{{x}}_{2}^{2}}-0.5\right)}{{(1.0+0.001({{x}}_{1}^{2}+{{x}}_{2}^{2}\left)\right)}^{2}} $
2
[–100,100]
0
$ {{F}}_{9}\left({x}\right)=\displaystyle\sum _{{i}=1}^{11}{\left[{{a}}_{{i}}-\dfrac{{{x}}_{1}({{b}}_{{i}}^{2}+{{b}}_{{i}}{{x}}_{2})}{{{b}}_{{i}}^{2}+{{b}}_{{i}}{{x}}_{3}+{{x}}_{4}}\right]}^{2} $
4
[–5,5]
0.0003
3.1
与其他基准算法进行对比
为了验证改进后DBO算法的收敛性以及稳定性,将本文提出的TDBO算法与WOA,GWO,SSA,NGO,DBO算法在9个基准测试函数上进行对比实验。
各个算法在上述函数上都独立运行30次,避免一次运行结果的偶然性。每个算法所得数据的平均值和标准差如表2所示。
表
2
不同算法测试结果
Table
2
Test results of different algorithms
函数
GWO
SSA
WOA
NGO
DBO
TDBO
$ {{F}}_{1} $
1.16E-16
6.02E-29
5.70E-50
1.34E-45
9.95E-52
0.00E+00
8.24E-17
2.45E-28
2.31E-49
1.86E-45
5.45E-51
0.00E+00
$ {{F}}_{2} $
4.83E-06
1.65E-29
3.85E+04
1.79E-22
2.35E-59
0.00E+00
1.20E-05
8.85E-29
1.17E+04
5.74E-22
1.29E-58
0.00E+00
$ {{F}}_{3} $
8.70E-07
2.47E-30
4.92E+01
2.51E-37
1.21E-53
0.00E+00
7.82E-07
8.72E-30
2.69E+01
3.31E-37
4.61E-52
0.00E+00
$ {{F}}_{4} $
2.49E-03
2.22E-03
3.00E-03
5.60E-04
1.37E-03
1.21E-04
1.49E-03
2.58E-03
3.62E-03
2.28E-04
1.10E-03
1.06E-04
$ {{F}}_{5} $
6.01E-93
3.14E-53
4.23E-99
3.61E-180
3.93E-105
0.00E+00
3.27E-92
1.72E-52
2.29E-14
0.00E+00
2.15E-104
0.00E+00
$ {{F}}_{6} $
2.65E+00
0.00E+00
7.60E-15
0.00E+00
0.44E+00
0.00E+00
3.55E+00
0.00E+00
2.47E-14
0.00E+00
1.44E+00
0.00E+00
$ {{F}}_{7} $
3.97E-03
0.00E+00
3.70E-18
0.00E+00
5.15E-04
0.00E+00
5.27E-03
0.00E+00
2.03E-17
0.00E+00
2.82E-03
0.00E+00
$ {{F}}_{8} $
3.45E-02
0.00E+00
2.24E-02
9.72E-03
9.72E-03
0.00E+00
8.39E-03
0.00E+00
1.78E-02
6.17E-14
1.10E-07
0.00E+00
$ {{F}}_{9} $
4.42E-03
3.47E-04
8.12E-04
3.15E-04
7.49E-04
6.45E-04
8.28E-03
1.05E-05
5.64E-04
3.85E-06
3.32E-04
1.60E-04
从表2可以看出,在多维单峰值函数F1~F5中,TDBO函数的性能远优于其他对比函数,并且除了F4函数,其他均达到了理论最优值。在多峰函数F6~F7中,TDBO算法也展现了不错的性能,均达到了理论最优值。其中的F6和F7函数,SSA和NGO算法也都达到理论最优,无法比较TDBO算法与这两者的性能,但是相对于未改进的初始DBO算法,TDBO算法的性能均有较大提升。在固定多峰值函数F8和F9中,TDBO算法相较于基础DBO算法均有所改善,但是在F8函数中,无法比较与SSA算法的性能;在F9函数中,性能不及NGO算法和SSA算法。
3.2
算法收敛曲线对比分析
本文给出了算法在上述测试函数上的曲线收敛图,用来直观地比较TDBO算法和对比算法的收敛速度。
由图1可知,在多维单峰值函数F1~F5和多峰值函数F6~F7中,TDBO算法的收敛速度和精度明显高于其他对比算法。说明TDBO算法具有较好的性能并且可以跳出局部极值点,收敛到最优值。在固定多峰函数F8上,TDBO算法相对于对比算法也展现出了极快的收敛速度。虽然在F9上精度和速度略低于NGO算法和SSA算法,但是相对于未改进的DBO算法,TDBO算法的精度和速度均有所提升。
图
1
各测试函数下的收敛曲线
Fig.
1
Convergence curve under each test function
下载:
全尺寸图片
3.3
消融实验
通过将TDBO算法与基于Tent映射改进的DBO1算法、融合莱维飞行的DBO2算法和融合自适应惯性权重的DBO3算法在9个测试函数中作性能比较,进一步研究单个改进策略的有效性,实验结果见表3。
表
3
消融实验测试结果
Table
3
Results of ablation experiment testing
函数
DBO1
DBO2
DBO3
DBO
TDBO
$ {{F}}_{1} $
4.40E-57
0.00E+00
2.56E-84
9.95E-52
0.00E+00
2.08E-56
0.00E+00
1.22E-83
5.45E-51
0.00E+00
$ {{F}}_{2} $
3.15E-62
2.72E-89
2.30E-66
2.35E-59
0.00E+00
1.72E-61
1.49E-88
1.26E-65
1.29E-58
0.00E+00
$ {{F}}_{3} $
6.64E-57
2.56E-73
7.07E-73
1.21E-53
0.00E+00
3.46E-56
1.40E-72
4.82E-72
4.61E-52
0.00E+00
$ {{F}}_{4} $
1.10E-03
8.27E-04
1.34E-03
1.37E-03
1.21E-04
8.19E-04
4.93E-04
1.09E-03
1.10E-03
1.06E-04
$ {{F}}_{5} $
5.16E-111
0.00E+00
3.05E-123
3.93E-105
0.00E+00
2.83E-110
0.00E+00
1.67E-122
2.15E-104
0.00E+00
$ {{F}}_{6} $
1.33E-01
0.00E+00
0.00E+00
0.44E+00
0.00E+00
7.27E-01
0.00E+00
0.00E+00
1.44E+00
0.00E+00
$ {{F}}_{7} $
0.00E+00
0.00E+00
1.15E-03
5.15E-03
0.00E+00
0.00E+00
0.00E+00
6.29E-03
2.82E-02
0.00E+00
$ {{F}}_{8} $
9.39E-03
3.24E-04
9.72E-03
9.72E-03
0.00E+00
1.77E-08
1.78E-03
5.86E-08
1.88E-07
0.00E+00
$ {{F}}_{9} $
6.46E-04
5.19E-04
6.88E-04
7.09E-04
6.45E-04
2.84E-04
2.12E-04
3.04E-04
3.32E-04
1.60E-04
由表3可知,在函数F1~F4 和F8中TDBO算法的性能均优于单一策略改进的DBO算法和基本DBO算法。在函数F5中,TDBO算法寻优精度和DBO2算法相同,在F6中,TDBO算法的精度和DBO2, DBO3算法相同,都达到了理论最优值。在F7中,TDBO,DBO1和DBO2算法均到达最优值。在F9中,DBO2算法展现出了最优的性能。在所有的函数中,单一策略改进的DBO算法和多策略改进的TDBO算法均优于基本DBO算法。由此可知,经过3种改进策略的TDBO算法,寻优精度和鲁棒性明显优于单一策略改进的算法,能够有效弥补单一策略的不足,从而最大限度地提升基本DBO算法的性能。
3.4
Wilcoxon秩和检验
为了验证TDBO算法相较于对比算法的优越性,运用Wilcoxon秩和检验[16]的方法来进行验证,显著性水平$ p $设置为5%。将算法对立运行的30次结果进行统计检验,当$ p $值小于5%的情况下,说明两种算法显著性明显,否则两种算法之间的性能相差不大。当TDBO算法与对比算法得到的实验数据相差不大时,说明两个算法之间性能相当,则Wilcoxon秩和检验的结果表示为NaN。
由表4可知,TDBO算法和GWO算法在F9上性能显著性差异不明显;和SSA算法在测试函数F6~F8上性能相当;和WOA算法在F6和F9上性能没有显著性差异;和NGO算法在函数F6~F7上性能相当,和DBO算法在F6,F7和F9上性能没有显著性差异。除此之外,其余$ p $值均小于5%。总体看来,本文提出的TDBO算法相较于其他对比算法具有显著性差异。
表
4
Wilcoxon秩和检验p值
Table
4
Wilcoxon rank and test p-value
测试函数
TDBO/GWO
TDBO/SSA
TDBO/WOA
TDBO/NGO
TDBO/DBO
$ {{F}}_{1} $
1.73E-06
1.73E-06
1.73E-06
1.73E-06
1.73E-06
$ {{F}}_{2} $
1.73E-06
2.56E-06
1.73E-06
1.73E-06
1.73E-06
$ {{F}}_{3} $
1.73E-06
1.73E-06
1.73E-06
1.73E-06
1.73E-06
$ {{F}}_{4} $
1.73E-06
2.35E-06
1.73E-06
2.13E-06
1.73E-06
$ {{F}}_{5} $
1.73E-06
2.56E-06
1.73E-06
1.73E-06
1.73E-06
$ {{F}}_{6} $
3.60E-06
NaN
1.61E-01
NaN
2.50E-01
$ {{F}}_{7} $
1.56E-02
NaN
1.25E-02
NaN
2.50E-01
$ {{F}}_{8} $
1.73E-06
NaN
5.54E-06
1.73E-06
1.73E-06
$ {{F}}_{9} $
2.37E-01
2.88E-06
1.53E-01
1.73E-06
2.99E-01
4.
工程优化问题应用
4.1
压力容器设计问题描述
压力容器设计问题是在4个约束条件下使得总成本最小。它包括4个变量,分别为壳体厚度$ {x}_{1} $、封头厚度$ {x}_{2} $、壳体半径$ {x}_{3} $以及圆柱形截面长度$ {x}_{4} $,其具体数学模型如下所示。
目标函数:
$$\begin{split}
\mathrm{m}\mathrm{i}\mathrm{n}\;f\left(x\right)=&0.622\;4{x}_{1}{x}_{3}{x}_{4}+1.778\;1{x}_{2}{x}_{3}^{2}+\\&3.166\;1{x}_{1}^{2}{x}_{4}+19.84{x}_{1}^{2}{x}_{3}
\end{split} $$
约束条件:
$$ \left\{\begin{array}{l}{g}_{1}\left(x\right)=-{x}_{1}+0.019\;3{x}_{3}\leqslant 0\\ {g}_{2}\left(x\right)=-{x}_{2}+0.009\;54{x}_{3}\leqslant 0\\ {g}_{3}\left(x\right)=-{\text{π}} {x}_{3}^{2}{x}_{4}-4{\text{π}} {x}_{3}^{3}/3+1\;296\;000\leqslant 0\\ {g}_{4}\left(x\right)={x}_{4}-240\leqslant 0\\ {x}_{1}\geqslant 0,{x}_{2}\leqslant 99,{x}_{3}\geqslant 10,{x}_{4}\leqslant 200\end{array}\right. $$
如表5所示,在压力容器设计问题优化中, TDBO算法求解出的最优值是6种算法之中最小的,说明TDBO算法在求解该工程设计问题时具有较好的性能。
表
5
压力容器设计问题测试结果比较
Table
5
Comparison of test results for pressure vessel design problem
算法$ {\boldsymbol{x}}_{1} $$ {\boldsymbol{x}}_{2} $$ {\boldsymbol{x}}_{3} $$ {\boldsymbol{x}}_{4} $最优值(排序)
GWO0.81250.434542.0891176.75876051.5639(5)SSA0.85440.422344.2742151.41946029.0111(4)WOA1.00570.498252.011983.14346413.7919(6)NGO0.79340.413041.1021189.42755976.5747(3)DBO0.81250.402342.0984176.63675949.1354(2)TDBO0.80190.397641.5449183.63725931.8711(1)
4.2
悬臂梁设计问题描述
悬臂梁设计问题是在满足开口端垂直位移上限的条件下使得悬臂梁的重量最小化。$ {x}_{1} $,$ {x}_{2} $,$ {x}_{3} $,$ {x}_{4} $,$ {x}_{5} $ 分别表示5个空心方块的长度,具体数学模型如下所示。
目标函数:
$$ \mathrm{m}\mathrm{i}\mathrm{n}\;f\left(x\right)=0.06224({x}_{1}+{x}_{2}+{x}_{3}+{x}_{4}+{x}_{5}) $$
约束条件:
$$ \left\{\begin{array}{l}{g}_{1}\left(x\right)=\dfrac{61}{{x}_{1}^{3}}+\dfrac{37}{{x}_{2}^{3}}+\dfrac{19}{{x}_{3}^{3}}+\dfrac{7}{{x}_{4}^{3}}+\dfrac{1}{{x}_{5}^{3}}\leqslant 1\\ 0.01\leqslant {x}_{i}\leqslant 100,\;\;i=\mathrm{1,2},\mathrm{3,4},5\end{array}\right. $$
如表6所示,TDBO算法的最优值以较小的优势达到最小。相较于初始DBO算法,寻优结果得到了较好的改善。
表
6
悬臂梁设计问题测试结果比较
Table
6
Comparison of test results for cantilever beam design problem
算法$ {\boldsymbol{x}}_{1} $$ {\boldsymbol{x}}_{2} $$ {\boldsymbol{x}}_{3} $$ {\boldsymbol{x}}_{4} $$ {\boldsymbol{x}}_{5} $最优值(排序)
GWO5.98065.34604.48863.49122.16901.33662 (4)SSA6.02885.31164.50593.47502.15291.33655 (3)WOA9.68754.07175.55293.10092.94771.57844 (6)NGO6.01225.31944.49813.49172.15251.33653 (2)DBO5.93115.22864.59703.51562.21431.33732 (5)TDBO6.01075.31084.50603.49332.15281.33651 (1)
4.3
工字钢设计问题描述
工字钢结构设计问题是通过调整其长和高以及两个厚度来达到最小的垂直挠度。其具体数学模型如下所示。
目标函数:
$$ \mathrm{m}\mathrm{i}\mathrm{n}\;f\left(x\right)=\dfrac{5\;000}{\dfrac{{x}_{3}{({x}_{1}-2{x}_{4})}^{3}}{12}+\dfrac{{x}_{2}{x}_{4}^{3}}{6}+2{x}_{2}{x}_{4}{\left(\dfrac{{x}_{1}-{x}_{4}}{2}\right)}^{2}} $$
约束条件:
$$ \left\{\begin{array}{l}{g}_{1}\left(x\right)=2{x}_{2}{x}_{4}+{x}_{3}\left({x}_{1}-2{x}_{4}\right)-300\leqslant 0\\ {g}_{2}\left(x\right)=\dfrac{18{x}_{1}\times {10}^{4}}{{x}_{3}{\left({x}_{1}-2{x}_{4}\right)}^{3}+2{x}_{2}{x}_{4}\left(4{x}_{4}^{2}+3{x}_{1}\left({x}_{1}-2{x}_{4}\right)\right)}+\\ \quad\dfrac{15{x}_{2}\times {10}^{3}}{({x}_{1}-2{x}_{4}){x}_{3}^{3}+2{{x}_{4}x}_{2}^{3}}-6\leqslant 0\\ {10\leqslant x}_{1}\leqslant 80,{10\leqslant x}_{2}\leqslant 50,{x}_{3}\geqslant 0.9,{x}_{4}\leqslant 5\end{array}\right. $$
如表7所示,除了GWO算法和WOA算法的最优值稍差之外,其余4个算法达到了相同的最优值。以此得出,改进后的TDBO算法并未降低初始DBO算法的性能。
表
7
工字钢设计问题测试结果比较
Table
7
Comparison of test results for I-beam design problem
算法$ {\boldsymbol{x}}_{1} $$ {\boldsymbol{x}}_{2} $$ {\boldsymbol{x}}_{3} $$ {\boldsymbol{x}}_{4} $最优值(排序)
GWO80500.92.32140.013076(2)SSA80500.92.32170.013074(1)WOA8030.87670.90123.80140.013530(3)NGO80500.92.32170.013074(1)DBO80500.92.32170.013074(1)TDBO80500.92.32170.013074(1)
5.
结 论
根据DBO算法易陷入局部最优,可能存在收敛精度不够的问题。本文依据Tent映射策略、自适应惯性群权重和莱维飞行策略,提出一种混合策略改进的蜣螂优化算法(TDBO),从而有效提高了算法的搜索能力,使算法较容易跳出局部最优,更好地平衡搜索多样性与收敛准确性之间的关系。在9个基准测试函数上进行实验,并与GWO,SSA,WOA,NGO和DBO算法进行对比得出,TDBO算法的收敛速度、精度和鲁棒性都表现较好,且通过秩和检验证明了TDBO算法与其他算法具有差异性。最后,在3个工程优化问题中,TDBO算法也取得了不错的效果。当然,算法的改进策略不局限于本文所提出的几种方法。未来的研究,一方面会尝试更多的改进策略,另一方面也会把TDBO算法用于解决实际问题,如深度神经网络的超参数优化、路径优化等。
Copyright © 2022 北智游戏学院 - 活动攻略与新手教学 All Rights Reserved.