一、理论基础
1、基本鲸鱼优化算法
请参考这里。
2、改进鲸鱼优化算法
(1)自适应非线性位置更新
本文将自适应策略引入WOA算法的位置更新公式中,加快算法收敛速度、提高算法的寻优精度。具体公式如下:
X
→
(
t
+
1
)
=
S
1
⋅
X
→
∗
(
t
)
−
S
2
⋅
A
→
⋅
D
→
,
∣
A
∣
<
1
p
<
0.5
(1)
\overrightarrow X(t+1)=S_1\cdot\overrightarrow X^*(t)-S_2\cdot\overrightarrow A\cdot\overrightarrow D,\quad |A|<1\,\,\, p<0.5\tag{1}
X(t+1)=S1⋅X∗(t)−S2⋅A⋅D,∣A∣<1p<0.5(1)
X
→
(
t
+
1
)
=
S
1
⋅
X
→
r
a
n
d
(
t
)
−
S
2
⋅
A
→
⋅
D
→
,
∣
A
∣
≥
1
p
<
0.5
(2)
\overrightarrow X(t+1)=S_1\cdot\overrightarrow X_{rand}(t)-S_2\cdot\overrightarrow A\cdot\overrightarrow D,\quad |A|≥1\,\,\, p<0.5\tag{2}
X(t+1)=S1⋅Xrand(t)−S2⋅A⋅D,∣A∣≥1p<0.5(2)
X
→
(
t
+
1
)
=
S
1
⋅
X
→
∗
(
t
)
+
D
→
′
⋅
e
b
l
⋅
c
o
s
(
2
π
l
)
,
p
≥
0.5
(3)
\overrightarrow X(t+1)=S_1\cdot\overrightarrow X^*(t)+\overrightarrow D'\cdot e^{bl}\cdot cos(2\pi l),\quad p≥0.5\tag{3}
X(t+1)=S1⋅X∗(t)+D′⋅ebl⋅cos(2πl),p≥0.5(3)其中,
S
1
S_1
S1和
S
2
S_2
S2分别为当前最优位置和包围步长的自适应调整系数,具体公式表示为:
S
1
=
−
γ
⋅
[
c
o
s
(
π
⋅
t
T
)
−
λ
]
(4)
S_1=-\gamma\cdot[cos(\pi\cdot \frac tT)-\lambda]\tag{4}
S1=−γ⋅[cos(π⋅Tt)−λ](4)
S
2
=
γ
⋅
[
c
o
s
(
π
⋅
t
T
)
+
λ
]
(5)
S_2=\gamma\cdot[cos(\pi\cdot\frac tT)+\lambda]\tag{5}
S2=γ⋅[cos(π⋅Tt)+λ](5)其中,
γ
\gamma
γ表示
S
1
S_1
S1和
S
2
S_2
S2变化取值范围;
λ
\lambda
λ表示
S
1
S_1
S1和
S
2
S_2
S2取值步长,其取值分别为0.5和1。
从式(4)和式(5)不难看出,自适应调整系数
S
1
S_1
S1随着算法迭代进化呈非线性增大趋势,使种群能够充分朝向精英猎物位置移动;而
S
2
S_2
S2随着算法迭代进化而不断减小,使种群在进化后期具有较小的包围步长而加快收敛速度,从而实现算法全局探索与局部搜索能力的平衡,同时加快算法收敛速度,提高算法的寻优精度。
(2)引入差分变异操作
本文针对WOA算法容易陷入局部最优这一问题,引入差分变异思想,改善算法易陷入局部最优及出现早熟收敛现象。
差分变异思想具体描述如下:
(1)变异操作
选取当前种群中较优的鲸鱼个体进行变异,能够有效扩大算法的搜索域,避免算法陷入局部最优。具体操作如下:
V
→
i
(
t
+
1
)
=
X
→
i
(
t
)
+
F
(
X
→
r
1
(
t
)
−
X
→
r
2
(
t
)
)
(6)
\overrightarrow V_i(t+1)=\overrightarrow X_i(t)+F(\overrightarrow X_{r_1}(t)-\overrightarrow X_{r_2}(t))\tag{6}
Vi(t+1)=Xi(t)+F(Xr1(t)−Xr2(t))(6)其中,
V
→
i
(
t
+
1
)
\overrightarrow V_i(t+1)
Vi(t+1)表示变异后的第
i
i
i只鲸鱼的位置;
F
F
F表示缩放比例因子;
X
→
r
1
(
t
)
−
X
→
r
2
(
t
)
\overrightarrow X_{r_1}(t)-\overrightarrow X_{r_2}(t)
Xr1(t)−Xr2(t)表示当前迭代次数下鲸鱼位置的差异向量。
(2)选择操作
选择操作是将变异后的新个体与原始个体进行比较,判断其适应度值是否较优,如果较优,则保留,否则舍弃。差分进化算法中通常采用贪婪选择,具体公式如下:
X
→
i
(
t
+
1
)
=
{
V
→
i
(
t
+
1
)
,
f
i
t
(
V
→
i
(
t
+
1
)
)
<
f
i
t
(
X
→
i
(
t
)
)
X
→
i
(
t
+
1
)
,
f
i
t
(
V
→
i
(
t
+
1
)
)
≥
f
i
t
(
X
→
i
(
t
)
)
(7)
\overrightarrow X_i(t+1)=\begin{dcases}\overrightarrow V_i(t+1),\quad fit(\overrightarrow V_i(t+1))<fit(\overrightarrow X_i(t))\\\overrightarrow X_i(t+1),\quad fit(\overrightarrow V_i(t+1))≥fit(\overrightarrow X_i(t))\end{dcases}\tag{7}
Xi(t+1)={Vi(t+1),fit(Vi(t+1))<fit(Xi(t))Xi(t+1),fit(Vi(t+1))≥fit(Xi(t))(7)
二、EWOA算法流程图
三、仿真实验与结果分析
实验中,设置算法的种群规模为
N
=
30
N=30
N=30,最大迭代次数为
T
=
500
T=500
T=500。以F1、F2、F3为例。
实验结果表明,本文算法具有较好的有效性和优越性。
四、参考文献
[1] 何庆, 魏康园, 徐钦帅. 求解函数优化问题的改进鲸鱼优化算法[J]. 微电子学与计算机, 2019, 36(4): 72-77+83.