文章目录
一、理论基础
1、蝴蝶优化算法
蝴蝶优化算法[1]是模拟蝴蝶食物搜索和交配行为(蝴蝶利用嗅觉来确定花蜜或交配对象的位置)而衍生出的一种新型智能优化算法。
在BOA算法中,每只蝴蝶都会产生一定强度的香味,香味大小与刺激的物理强度有关。香味大小的具体计算公式如下:
f
=
c
I
a
(1)
f=cI^a\tag{1}
f=cIa(1)其中,
f
f
f为香味大小,即其他蝴蝶能够感知到的香味强度;
c
c
c为感官模态,在
[
0
,
1
]
[0,1]
[0,1]间取值;
I
I
I为刺激强度;
a
a
a为幂指数,在
[
0
,
1
]
[0,1]
[0,1]间取值。
全局搜索阶段的位置更新公式如下:
x
i
t
+
1
=
x
i
t
+
(
r
2
×
g
∗
−
x
i
t
)
×
f
i
(2)
x_i^{t+1}=x_i^t+(r^2×g^*-x_i^t)×f_i\tag{2}
xit+1=xit+(r2×g∗−xit)×fi(2)其中,
x
i
t
x_i^t
xit、
x
i
t
+
1
x_i^{t+1}
xit+1分别表示第
i
i
i只蝴蝶在第
t
t
t次迭代、第
t
+
1
t+1
t+1次迭代中的位置向量;
r
r
r是
[
0
,
1
]
[0,1]
[0,1]之间的随机数;
g
∗
g^*
g∗为当前迭代中的最优解;
f
i
f_i
fi为第
i
i
i只蝴蝶的香味。
局部搜索阶段的位置更新公式如下:
x
i
t
+
1
=
x
i
t
+
(
r
2
×
(
x
j
t
−
x
k
t
)
)
×
f
i
(3)
x_i^{t+1}=x_i^t+(r^2×(x_j^t-x_k^t))×f_i\tag{3}
xit+1=xit+(r2×(xjt−xkt))×fi(3)其中,
x
j
t
x_j^t
xjt、
x
k
t
x_k^t
xkt表示在第
t
t
t次迭代中从种群内部随机选择的第
j
j
j个、第
k
k
k个个体的位置向量;
r
r
r为
[
0
,
1
]
[0,1]
[0,1]间的随机数。
2、正弦余弦算法
请参考这里。
3、MSBOA算法(混合策略改进的蝴蝶优化算法)
(1)融合改进正弦余弦算法的局部搜索
利用一个随迭代次数自适应变化、函数范围变化较小、前期变化较慢后期变化较快的切换概率来控制在局部搜索阶段使用哪种位置更新方式,在算法局部寻优的前期能够充分利用局部范围内的个体,在局部寻优的后期能够快速地收敛到最优个体,切换概率
P
s
P_s
Ps的计算公式如下:
P
s
=
0.01
×
(
t
N
_
i
t
e
r
)
3
+
1
(4)
P_s=0.01×(\frac{t}{N\_iter})^3+1\tag{4}
Ps=0.01×(N_itert)3+1(4)其中,
t
,
N
_
i
t
e
r
t,N\_iter
t,N_iter分别为当前迭代次数和最大迭代次数。当
r
a
n
d
<
P
s
rand<P_s
rand<Ps时,算法采用正弦余弦算法进行位置更新操作,反之,算法采用BOA算法原来的局部搜索位置更新公式,这里的
r
a
n
d
∈
[
1
,
1.01
]
rand∈[1,1.01]
rand∈[1,1.01]。
提出一种非线性单调递减的凸函数作为转换参数来更好地平衡全局搜索和局部开发。改进后的转换参数公式如下:
R
1
=
δ
+
b
e
x
p
(
4
×
(
t
N
_
i
t
e
r
)
4
)
+
1
(5)
R_1=\delta+\frac{b}{exp(4×\left(\frac{t}{N\_iter}\right)^4)+1}\tag{5}
R1=δ+exp(4×(N_itert)4)+1b(5)其中,
b
=
0.1
b=0.1
b=0.1为常数;
δ
\delta
δ为调节因子,经多次实验验证,
δ
=
0.95
\delta=0.95
δ=0.95时实验结果为最优。算法迭代前期
R
1
R_1
R1下降缓慢,可以更好地利用BOA算法局部搜索阶段的蝴蝶个体;迭代后期
R
1
R_1
R1下降快速,可以指引蝴蝶个体尽快向目标值移动。改进后的正弦余弦算法位置更新公式如下:
X
i
d
(
t
+
1
)
=
{
X
i
d
(
t
)
+
R
1
×
s
i
n
(
R
2
)
×
∣
R
3
P
∗
d
(
t
)
−
X
j
d
(
t
)
∣
,
R
4
<
0.5
X
i
d
(
t
)
+
R
1
×
c
o
s
(
R
2
)
×
∣
R
3
P
∗
d
(
t
)
−
X
j
d
(
t
)
∣
,
R
4
≥
0.5
(6)
X_i^d(t+1)=\begin{dcases}X_i^d(t)+R_1×sin(R_2)×|R_3P_*^d(t)-X_j^d(t)|,\quad R_4<0.5\\X_i^d(t)+R_1×cos(R_2)×|R_3P_*^d(t)-X_j^d(t)|,\quad R_4≥0.5\end{dcases}\tag{6}
Xid(t+1)={Xid(t)+R1×sin(R2)×∣R3P∗d(t)−Xjd(t)∣,R4<0.5Xid(t)+R1×cos(R2)×∣R3P∗d(t)−Xjd(t)∣,R4≥0.5(6)其中,
X
j
d
(
t
)
X_j^d(t)
Xjd(t)表示在第
t
t
t次迭代中在种群内部随机选择的第
j
j
j个个体在第
d
d
d维的解。
(2)自适应权重系数
本文在BOA算法的全局搜索和局部搜索阶段共同引入一种随迭代次数变化的自适应权重 w ( t ) w(t) w(t),使三种个体位置信息都能够得到充分地利用,同时控制当前蝴蝶个体的移动方向和移动距离,从而提高算法寻优精度和收敛速度。自适应权重 w ( t ) w(t) w(t)的数学表达式如下: w ( t ) = α [ c o s h ( 2 × ( 1 − 10 t N _ i t e r ) 4 ) − 1 ] (7) w(t)=\alpha[cosh(2×(1-\frac{10t}{N\_iter})^4)-1]\tag{7} w(t)=α[cosh(2×(1−N_iter10t)4)−1](7)其中, α ∈ [ 0 , 1 ] \alpha∈[0,1] α∈[0,1]。因此,BOA算法引入自适应权重系数后全局搜索阶段的位置更新公式为 x i t + 1 = w ( t ) × ( x i t + ( r 2 × g ∗ − x i t ) × f i ) (8) x_i^{t+1}=w(t)×(x_i^t+(r^2×g^*-x_i^t)×f_i)\tag{8} xit+1=w(t)×(xit+(r2×g∗−xit)×fi)(8)局部搜索阶段的位置更新公式为 x i t + 1 = w ( t ) × ( x i t + ( r 2 × ( x j t − x k t ) ) × f i ) (9) x_i^{t+1}=w(t)×(x_i^t+(r^2×(x_j^t-x_k^t))×f_i)\tag{9} xit+1=w(t)×(xit+(r2×(xjt−xkt))×fi)(9)
(3)逐维变异策略
引入了文献[2]中张超提出的t-分布变异算子对最优个体位置进行扰动,该t-分布变异算子的自由度参数会跟随迭代次数的变化而变化,逐维变异策略具体定义如下。
设搜索空间为
d
d
d维,当前最优解
g
b
e
s
t
=
(
g
b
e
s
t
1
,
g
b
e
s
t
2
,
⋯
,
g
b
e
s
t
d
)
g_{best}=(g_{best}^1,g_{best}^2,\cdots,g_{best}^d)
gbest=(gbest1,gbest2,⋯,gbestd),那么当前最优解逐维变异得到的新解
g
n
e
w
=
(
g
n
e
w
1
,
g
n
e
w
2
,
⋯
,
g
n
e
w
d
)
g_{new}=(g_{new}^1,g_{new}^2,\cdots,g_{new}^d)
gnew=(gnew1,gnew2,⋯,gnewd)计算方式如下:
g
n
e
w
d
=
g
b
e
s
t
d
+
T
D
(
t
)
d
×
g
b
e
s
t
d
(10)
g_{new}^d=g_{best}^d+TD(t)^d×g_{best}^d\tag{10}
gnewd=gbestd+TD(t)d×gbestd(10)其中,
t
t
t为当前迭代次数,
T
D
(
t
)
TD(t)
TD(t)是自由度参数为
t
t
t的t-分布,
T
D
(
t
)
d
TD(t)^d
TD(t)d为t-分布在第
d
d
d维生成的随机数。
因为无法直接判断变异后得到的新位置是否优于原位置,所以本文利用了贪婪原则来判断是否接受新位置代替原最优位置。通过使用贪婪原则,引导种群更好地向最优个体位置进化,更好地提高算法的收敛速度。
二、MSBOA算法实现流程
三、仿真实验与结果分析
为验证本文改进算法的有效性, 将MSBOA与原始BOA、SCA、SSA 进行对比,实验过程中种群规模设为40,最大迭代次数为1000,维度为30。各种算法参数设置:MSBO算法参数:
c
=
0.001
,
a
=
0.1
,
p
=
0.8
,
α
=
0.5
c=0.001,a=0.1,p=0.8,\alpha=0.5
c=0.001,a=0.1,p=0.8,α=0.5;其他算法的参数设置与提出论文一致。
结果表明,本文MSBOA算法的寻优能力有大幅度提高,与其他算法相比仍然具有明显的竞争优势。
四、参考文献
[1] Arora, S., Singh, S. Butterfly optimization algorithm: a novel approach for global optimization[J]. Soft Computing, 2019, 25: 715-734.
[2] 张超. 基于t-分布精英保留机制的花朵授粉算法[J]. 安徽理工大学学报(自然科学版), 2018, 38(3): 50-58.
[3] 宁杰琼, 何庆. 混合策略改进的蝴蝶优化算法[J]. 计算机应用研究, 2021, 38(6): 1718-1723+1738.