一、理论基础
1、鲸鱼优化算法
请参考这里。
2、改进算法
(1)混沌反向学习初始化种群
本文利用反向学习和混沌化2个初始化方法的优点,采用Tent混沌映射初始化种群,然后对已混沌化的种群进行反向学习,最后进行合并选优。Tent映射公式为
Y
t
+
1
=
{
2
Y
t
,
0
≤
Y
t
≤
1
2
2
(
1
−
Y
t
)
,
1
2
<
Y
t
≤
1
(1)
Y_{t+1}=\begin{dcases}2Y_t,\quad\quad\quad\,\,\, 0\leq Y_t\leq\frac12\\2(1-Y_t),\quad \frac12<Y_t\leq1\end{dcases}\tag{1}
Yt+1=⎩⎪⎨⎪⎧2Yt,0≤Yt≤212(1−Yt),21<Yt≤1(1)将混沌序列映射到原来的解空间得到混沌初始化种群,对其进行反向学习,模型为
O
Y
t
=
Y
min
(
t
)
+
Y
max
(
t
)
−
Y
t
(2)
O_{Y_t}=Y_{\min(t)}+Y_{\max(t)}-Y_t\tag{2}
OYt=Ymin(t)+Ymax(t)−Yt(2)其中,
Y
min
(
t
)
Y_{\min(t)}
Ymin(t)和
Y
max
(
t
)
Y_{\max(t)}
Ymax(t)分别为个体的下界和上界。
将混沌种群和混沌反向学习种群合并,计算各自的目标函数值,选择其中最优的
N
N
N个个体作为新的初始种群。
(2)非线性收敛因子和自适应权重策略
在维持收敛因子递减趋势的情况下,本文提出了一种收敛因子非线性变化策略,表达式为
a
=
2
1
+
u
e
T
/
T
max
−
1
(3)
a=\frac{2}{1+ue^{T/T_{\max}-1}}\tag{3}
a=1+ueT/Tmax−12(3)其中,
T
T
T为当前迭代次数;
u
u
u为控制常数,本文取值为2;
T
max
T_{\max}
Tmax为最大迭代次数。在搜索前期,收敛因子以较慢的速率递减;而在搜索后期,收敛因子以较快的速率递减,加速收敛。
虽然非线性收敛因子在一定程度上可提升算法性能,但当涉及全局寻优和局部探索性能时,该策略却无法平衡两者。因此,本文引入一种自适应权重策略协调收敛因子进行全局寻优和局部探索性能平衡,权重公式为
W
(
t
)
=
e
T
/
T
max
−
1
(4)
W(t)=e^{T/T_{\max}-1}\tag{4}
W(t)=eT/Tmax−1(4)当前个体的位置更新和螺旋位置更新公式分别为
X
(
t
+
1
)
=
W
(
t
)
X
∗
(
t
)
−
A
D
(5)
X(t+1)=W(t)X^*(t)-AD\tag{5}
X(t+1)=W(t)X∗(t)−AD(5)
X
(
t
+
1
)
=
D
e
b
l
cos
(
2
π
l
)
+
(
1
−
W
(
t
)
)
X
∗
(
t
)
(6)
X(t+1)=De^{bl}\cos(2\pi l)+(1-W(t))X^*(t)\tag{6}
X(t+1)=Deblcos(2πl)+(1−W(t))X∗(t)(6)
X
(
t
+
1
)
=
W
(
t
)
X
r
a
n
d
(
t
)
−
A
D
(7)
X(t+1)=W(t)X_{rand}(t)-AD\tag{7}
X(t+1)=W(t)Xrand(t)−AD(7)
(3)单纯形法
单纯形法是代数拓扑中的概念,通过反射、扩张、收缩等几何变换寻求问题的最优解。每一次操作,都会用一个更好的解替换当前的最差解。单纯形法的搜索点如图1所示。
单纯形法步骤如下:
以最优化问题
min
X
∈
R
f
(
X
)
\min_{\boldsymbol X\in\bf R}f(\boldsymbol X)
minX∈Rf(X)为例,计算最优点
g
g
g、最差点
w
w
w、次优点
b
b
b的函数值,根据最优点和最差点计算中点位置
c
c
c,基本操作如下。
1)反射操作
计算反射点
r
=
c
+
α
(
c
−
w
)
r=c+\alpha(c-w)
r=c+α(c−w),其中
α
\alpha
α为反射系数,本文取1。
2)扩展操作
如果
w
>
c
w>c
w>c,则计算扩张点
e
=
c
+
γ
(
r
−
c
)
e=c+\gamma(r-c)
e=c+γ(r−c),其中
γ
\gamma
γ为扩展系数,本文取2。如果
e
<
g
e<g
e<g,则用扩张点代替最差点,否则用反射点替代最差点。
3)压缩操作
如果
g
>
r
g>r
g>r,说明反射方向有误,进行向内压缩操作
t
=
c
+
β
(
w
−
c
)
t=c+\beta(w-c)
t=c+β(w−c),其中
β
\beta
β为压缩系数,本文取0.5。如果
t
<
w
t<w
t<w,则用压缩点替代最差点。如果
w
<
r
<
g
w<r<g
w<r<g,则进行向外收缩操作
s
=
c
−
β
(
w
−
c
)
s=c-\beta(w-c)
s=c−β(w−c)。如果还有
s
<
w
s<w
s<w,则用收缩点
s
s
s替代最差点
w
w
w,否则用反射点替代最差点。
因此,反射操作能使最差点搜索所有可行解;扩展操作能使最优值点向距最差点更远的反方向搜索。如果当前最优值点为极值点,扩展操作能使该点跳出局部极小值处;收缩操作则能使较差点收缩到更好的位置,提高算法的局部搜索能力和寻优能力。
(4)CSWOA的执行步骤
对标准WOA进行以上策略改进后,得到的CSWOA伪代码如下:
设置种群规模N, 利用所描述的混沌反向学习方法产生初始化鲸鱼种群;
计算每个个体的适应度值, 并记录当前最优个体及位置;
while (t < tmax) do
for i = 1 to N do
根据式(3)计算控制参数a的值;
更新其他参数A、C、l和p的值;
if (p < 0.5) do
if (|A| < 1) do
根据式(5)更新当前个体的位置;
else if (|A| ≥ 1) do
在群体中随机选择一个个体(Xrand);
根据式(7)更新当前个体的位置;
end if
else
根据式(6)更新当前个体的位置;
end if
end for
根据单纯形法优化较差解;
计算群体中个体的适应度值;
更新当前最优个体及位置;
t = t + 1;
end while
二、仿真实验与分析
将CSWOA与WOA、PSO、GSA和GWO进行对比分析,每个算法独立运行30次,记录算法求得的最优函数的最差值、最优值、平均值和标准差。为了验证与上述算法的显著性差异,采用Wilcoxon秩和检验法进行非参数估计检验。设置种群规模为30,最大迭代次数为500,以文献[1]中表1的8个测试函数为例,其中F1~F7为30维,F8为2维,结果显示如下:
函数:F1
CSWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
WOA:最差值: 6.2508e-73, 最优值: 6.4773e-85, 平均值: 5.6369e-74, 标准差: 1.6822e-73, 秩和检验: 1.2118e-12
GWO:最差值: 7.3197e-27, 最优值: 2.2973e-29, 平均值: 1.1432e-27, 标准差: 1.5358e-27, 秩和检验: 1.2118e-12
PSO:最差值: 1532.6089, 最优值: 308.9217, 平均值: 982.6878, 标准差: 343.8633, 秩和检验: 1.2118e-12
WOA:最差值: 0.66754, 最优值: 1.2802e-16, 平均值: 0.022251, 标准差: 0.12188, 秩和检验: 1.2118e-12
函数:F2
CSWOA:最差值: 6.3991e-218, 最优值: 1.1682e-235, 平均值: 5.0556e-219, 标准差: 0, 秩和检验: 1
WOA:最差值: 9.6017e-50, 最优值: 2.3878e-58, 平均值: 6.3568e-51, 标准差: 2.2622e-50, 秩和检验: 3.0199e-11
GWO:最差值: 3.116e-16, 最优值: 1.3088e-17, 平均值: 1.0572e-16, 标准差: 6.8251e-17, 秩和检验: 3.0199e-11
PSO:最差值: 32.0605, 最优值: 13.1395, 平均值: 24.0827, 标准差: 4.5254, 秩和检验: 3.0199e-11
WOA:最差值: 4.891, 最优值: 4.8584e-08, 平均值: 0.61749, 标准差: 1.2047, 秩和检验: 3.0199e-11
函数:F3
CSWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
WOA:最差值: 3.486e-27, 最优值: 6.7346e-33, 平均值: 2.7332e-28, 标准差: 7.4183e-28, 秩和检验: 1.2118e-12
GWO:最差值: 8.0046e-06, 最优值: 6.4483e-07, 平均值: 2.6089e-06, 标准差: 1.5264e-06, 秩和检验: 1.2118e-12
PSO:最差值: 143.3133, 最优值: 92.4093, 平均值: 110.688, 标准差: 11.5381, 秩和检验: 1.2118e-12
WOA:最差值: 95.3561, 最优值: 27.6964, 平均值: 64.0541, 标准差: 16.9344, 秩和检验: 1.2118e-12
函数:F4
CSWOA:最差值: 0.78885, 最优值: 0.227, 平均值: 0.48499, 标准差: 0.15161, 秩和检验: 1
WOA:最差值: 0.78937, 最优值: 0.10128, 平均值: 0.43118, 标准差: 0.19184, 秩和检验: 0.37108
GWO:最差值: 1.522, 最优值: 0.24403, 平均值: 0.75099, 标准差: 0.26292, 秩和检验: 1.8682e-05
PSO:最差值: 2220.18, 最优值: 357.9902, 平均值: 983.8084, 标准差: 535.9166, 秩和检验: 3.0199e-11
WOA:最差值: 0.066061, 最优值: 8.0618e-17, 平均值: 0.002202, 标准差: 0.012061, 秩和检验: 3.0199e-11
函数:F5
CSWOA:最差值: -43065.777, 最优值: -62305.0459, 平均值: -58779.2648, 标准差: 4943.0611, 秩和检验: 1
WOA:最差值: -7076.4994, 最优值: -12568.2059, 平均值: -10556.134, 标准差: 1856.7122, 秩和检验: 3.0199e-11
GWO:最差值: -3574.6146, 最优值: -7664.0139, 平均值: -6200.9757, 标准差: 835.3618, 秩和检验: 3.0199e-11
PSO:最差值: -2344.0374, 最优值: -4498.4454, 平均值: -2957.8772, 标准差: 486.166, 秩和检验: 3.0199e-11
WOA:最差值: -1796.1162, 最优值: -4057.1494, 平均值: -2682.8696, 标准差: 521.6159, 秩和检验: 3.0199e-11
函数:F6
CSWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
WOA:最差值: 1.1369e-13, 最优值: 0, 平均值: 7.5791e-15, 标准差: 2.8843e-14, 秩和检验: 0.16074
GWO:最差值: 20.8391, 最优值: 5.6843e-14, 平均值: 4.7318, 标准差: 5.7285, 秩和检验: 1.2009e-12
PSO:最差值: 194.1246, 最优值: 85.3312, 平均值: 137.6085, 标准差: 23.5558, 秩和检验: 1.2118e-12
WOA:最差值: 71.6368, 最优值: 23.879, 平均值: 39.8978, 标准差: 11.7619, 秩和检验: 1.2108e-12
函数:F7
CSWOA:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
WOA:最差值: 7.9936e-15, 最优值: 8.8818e-16, 平均值: 4.0856e-15, 标准差: 2.696e-15, 秩和检验: 1.0242e-07
GWO:最差值: 1.4655e-13, 最优值: 6.4837e-14, 平均值: 9.8943e-14, 标准差: 1.918e-14, 秩和检验: 1.1585e-12
PSO:最差值: 10.3645, 最优值: 6.331, 平均值: 8.1272, 标准差: 1.1018, 秩和检验: 1.2118e-12
WOA:最差值: 1.9871e-08, 最优值: 7.0209e-09, 平均值: 1.1917e-08, 标准差: 2.9064e-09, 秩和检验: 1.2118e-12
函数:F8
CSWOA:最差值: 12.6705, 最优值: 0.998, 平均值: 4.7849, 标准差: 4.6396, 秩和检验: 1
WOA:最差值: 10.7632, 最优值: 0.998, 平均值: 2.4697, 标准差: 3.0122, 秩和检验: 0.00016813
GWO:最差值: 12.6705, 最优值: 0.998, 平均值: 4.52, 标准差: 4.3966, 秩和检验: 0.079782
PSO:最差值: 6.9033, 最优值: 0.998, 平均值: 1.6242, 标准差: 1.4055, 秩和检验: 4.3828e-07
WOA:最差值: 14.8582, 最优值: 0.99891, 平均值: 5.851, 标准差: 4.0653, 秩和检验: 0.099258
仿真分析表明,CSWOA的收敛速度和寻优精度均有一定的提高。
三、参考文献
[1] 张潮, 冯锋. 混沌策略和单纯形法改进的鲸鱼优化算法[J]. 中国科技论文, 2020, 15(3): 293-299.