一、理论基础
1、基本鲸鱼优化算法
请参考这里。
2、改进鲸鱼优化算法
基本鲸鱼优化算法存在收敛速度慢、求解精度低、容易陷入局部最优等缺点,本文从基本WOA算法的搜索觅食、收缩包围和螺旋更新位置三个阶段分别对其进行了改进。
(1)非线性时变的自适应权重
本文提出了一种非线性时变的自适应权重,其定义如下
w
=
{
1
2
[
1
+
cos
(
π
t
M
a
x
_
i
t
e
r
)
]
1
k
,
t
≤
M
a
x
_
i
t
e
r
2
1
2
[
1
−
cos
(
π
+
π
t
M
a
x
_
i
t
e
r
)
]
1
k
,
t
>
M
a
x
_
i
t
e
r
2
(1)
w=\begin{dcases}\frac12\left[1+\cos\left(\frac{\pi t}{Max\_iter}\right)\right]^{\frac1k},\quad\,\,\,\, t≤\frac{Max\_iter}{2}\\\frac12\left[1-\cos\left(\pi+\frac{\pi t}{Max\_iter}\right)\right]^{\frac1k},t>\frac{Max\_iter}2\end{dcases}\tag{1}
w=⎩⎪⎪⎪⎨⎪⎪⎪⎧21[1+cos(Max_iterπt)]k1,t≤2Max_iter21[1−cos(π+Max_iterπt)]k1,t>2Max_iter(1)其中,
k
k
k为调节系数。
本文所提权重因子在迭代开始阶段下降较缓,算法能维持较好的全局探索能力;在经过一定的迭代次数后权值迅速下降,使得算法在局部开发阶段能更精细搜索最优解。
因此引入新的非线性时变自适应权重因子
w
w
w后的位置更新公式更新为
X
(
t
+
1
)
=
X
r
a
n
d
(
t
)
−
w
⋅
A
⋅
D
(2)
X(t+1)=X_{rand}(t)-w\cdot A\cdot D\tag{2}
X(t+1)=Xrand(t)−w⋅A⋅D(2)
X
(
t
+
1
)
=
w
⋅
D
′
⋅
e
b
l
cos
(
2
π
l
)
+
X
b
e
s
t
(
t
)
(3)
X(t+1)=w\cdot D'\cdot e^{bl}\cos(2\pi l)+X_{best}(t)\tag{3}
X(t+1)=w⋅D′⋅eblcos(2πl)+Xbest(t)(3)
(2)差分变异微扰因子
本文借鉴了差分进化算法变异算子的思想,在收缩包围阶段引入了一个差分变异微扰因子,其定义如下
λ
=
F
(
X
b
e
s
t
(
t
)
−
X
(
t
)
)
(4)
\lambda=F(X_{best}(t)-X(t))\tag{4}
λ=F(Xbest(t)−X(t))(4)其中,
F
F
F为变异尺度因子。
引入差分变异微扰因子的公式更新为
X
(
t
+
1
)
=
X
b
e
s
t
(
t
)
−
A
⋅
D
+
λ
(5)
X(t+1)=X_{best}(t)-A\cdot D+\lambda\tag{5}
X(t+1)=Xbest(t)−A⋅D+λ(5)在鲸鱼的收缩包围阶段通过引入差分变异微扰因子,可以使得鲸鱼个体更容易跳出局部最优,增加群体多样性,提高局部寻优时的求解精度。
(3)改进的螺旋更新方式
基本WOA算法在螺旋更新位置阶段,鲸鱼个体在向当前最佳鲸鱼个体位置前进时采取的是对数螺旋更新方式,对数螺旋搜索方式并不一定是最佳的,如果螺旋步进间距超过搜索范围,会使得算法不能遍历整个搜索空间,从而降低了算法寻优的各态历经性。本文将对数螺旋搜索方式替换为阿基米德螺旋更新方式,进一步改进为 X ( t + 1 ) = w ⋅ D ′ ⋅ ( b l ) ⋅ cos ( 2 π l ) + X b e s t ( t ) (6) X(t+1)=w\cdot D'\cdot(bl)\cdot\cos(2\pi l)+X_{best}(t)\tag{6} X(t+1)=w⋅D′⋅(bl)⋅cos(2πl)+Xbest(t)(6)其中, b b b是常量系数, l l l是 [ − 1 , 1 ] [-1,1] [−1,1]之间的随机数。
(4)EWOA算法的流程图
综上所述,EWOA算法的流程图如图1所示。
二、实验分析
算法种群规模为30,迭代次数为500,基本鲸鱼优化算法和改进鲸鱼优化算法均独立运行30次。EWOA中的其它参数如下:常量系数
b
=
1
b=1
b=1,权重因子的调节系数
k
=
2
k=2
k=2,变异尺度因子
F
=
0.6
F=0.6
F=0.6,其它参数均采用基本鲸鱼优化算法的默认设置。
本文选取了8个国际上通用的标准测试函数,如表1所示。其中,
f
1
(
x
)
∼
f
5
(
x
)
f_1(x)\sim f_5(x)
f1(x)∼f5(x)为高维的单峰函数,
f
6
(
x
)
∼
f
8
(
x
)
f_6(x)\sim f_8(x)
f6(x)∼f8(x)为高维的多峰函数,所有测试函数的维度均为30维,理论最小值均为0。
结果显示如下:
函数:F1
WOA:最差值: 1.308e-70,最优值:7.762e-85,平均值:4.4875e-72,标准差:2.3866e-71
EWOA:最差值: 1.9278e-142,最优值:1.7531e-166,平均值:6.4775e-144,标准差:3.5188e-143
函数:F2
WOA:最差值: 3.4102e-48,最优值:2.325e-56,平均值:1.1585e-49,标准差:6.2224e-49
EWOA:最差值: 2.9461e-80,最优值:9.6056e-92,平均值:1.5849e-81,标准差:5.9247e-81
函数:F3
WOA:最差值: 70726.9722,最优值:20913.696,平均值:42508.2225,标准差:11099.6634
EWOA:最差值: 3.9119e-06,最优值:1.4299e-68,平均值:2.1779e-07,标准差:7.594e-07
函数:F4
WOA:最差值: 90.6781,最优值:0.37975,平均值:45.5635,标准差:30.1831
EWOA:最差值: 1.3155e-48,最优值:1.3326e-62,平均值:1.2567e-49,标准差:3.3199e-49
函数:F5
WOA:最差值: 28.7679,最优值:26.9872,平均值:28.0186,标准差:0.52357
EWOA:最差值: 28.7771,最优值:26.9133,平均值:27.731,标准差:0.63021
函数:F6
WOA:最差值: 6.67e-14,最优值:0,平均值:2.76e-15,标准差:2.41e-14
EWOA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F7
WOA:最差值: 0.15201,最优值:0,平均值:0.0050671,标准差:0.027754
EWOA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F8
WOA:最差值: 0.13809,最优值:0.0039017,平均值:0.024288,标准差:0.028474
EWOA:最差值: 0.17425,最优值:0.0063616,平均值:0.053629,标准差:0.037977
从实验结果来看,EWOA算法的求解精度和收敛速度相比基本WOA算法均有提高,表明本文所提的改进策略是切实有效的。
三、参考文献
[1] 冯文涛, 宋科康. 一种增强型鲸鱼优化算法[J]. 计算机仿真, 2020, 37(11): 275-279+357.