文章目录
一、理论基础
1、鲸鱼优化算法
请参考这里。
2、基于混沌搜索策略的鲸鱼优化算法
(1)混沌反向学习初始化策略
为了增强种群的多样性并提高求解效率,为算法进行全局搜索奠定多样性基础,CWOA算法采用混沌反向学习初始化策略。首先,利用混沌变量的随机性、遍历性和规律性特征,产生具有较好多样性的混沌初始种群;其次,通过对混沌初始种群及其反向种群进行排序选择,将适应度值较优的解作为初始种群,提高求解效率。
假设种群规模为
N
N
N,采用具有较好遍历均匀性和较快迭代速度的Tent混沌映射在
D
D
D维欧氏空间中生成混沌序列
y
=
{
y
d
,
d
=
1
,
2
,
⋯
,
D
}
,
y
d
=
{
y
i
d
,
i
=
1
,
2
,
⋯
,
N
}
y =\{y_d, d = 1, 2, \cdots, D\}, y_d =\{y_{id}, i =1, 2, \cdots, N\}
y={yd,d=1,2,⋯,D},yd={yid,i=1,2,⋯,N},Tent混沌映射函数表达式为
y
i
+
1
,
d
=
{
2
y
i
d
,
y
i
d
<
0.5
2
(
1
−
y
i
d
)
,
y
i
d
≥
0.5
(1)
y_{i+1,d}=\begin{dcases}2y_{id},\quad\quad\quad\,\,\, y_{id}<0.5\\2(1-y_{id}),\quad y_{id}\geq0.5\end{dcases}\tag{1}
yi+1,d={2yid,yid<0.52(1−yid),yid≥0.5(1)将混沌序列映射到解空间中,得到种群
X
=
{
X
i
,
i
=
1
,
2
,
⋯
,
N
}
,
X
i
=
{
X
i
d
,
d
=
1
,
2
,
⋯
,
D
}
X=\{X_i, i = 1, 2, \cdots, N\}, X_i = \{X_{id}, d = 1, 2,\cdots,D\}
X={Xi,i=1,2,⋯,N},Xi={Xid,d=1,2,⋯,D},种群个体
X
i
d
X_{id}
Xid表示为
X
i
d
=
X
min
d
+
y
i
d
⋅
(
X
max
d
−
X
min
d
)
(2)
X_{id}=X_{\min d}+y_{id}\cdot(X_{\max d}-X_{\min d})\tag{2}
Xid=Xmind+yid⋅(Xmaxd−Xmind)(2)其中,
X
i
d
X_{id}
Xid为第
i
i
i个种群个体的第
d
d
d维值,
X
min
d
X_{\min d}
Xmind和
X
max
d
X_{\max d}
Xmaxd为
X
i
d
X_{id}
Xid的搜索上下界。
由种群
X
X
X计算反向种群
O
X
=
{
O
X
i
,
i
=
1
,
2
,
⋯
,
N
}
,
O
X
i
=
{
O
X
i
d
,
d
=
1
,
2
,
⋯
,
D
}
{\rm{OX}}=\{{\rm{OX}}_i,i=1,2,\cdots,N\},{\rm{OX}}_i=\{{\rm{OX}}_{id},d=1,2,\cdots,D\}
OX={OXi,i=1,2,⋯,N},OXi={OXid,d=1,2,⋯,D},反向种群个体
O
X
i
d
{\rm{OX}}_{id}
OXid表示为
O
X
i
d
=
X
min
d
+
X
max
d
−
X
i
d
(3)
{\rm{OX}}_{id}=X_{\min d}+X_{\max d}-X_{id}\tag{3}
OXid=Xmind+Xmaxd−Xid(3)种群
X
X
X与反向种群
O
X
{\rm{OX}}
OX合并,得到新种群
{
X
⋃
O
X
}
\{X\bigcup\rm{OX}\}
{X⋃OX}。计算新种群的目标函数值并排序,选取其中适应度值最好的
N
N
N个个体作为初始种群。
(2)收敛因子和惯性权重混沌扰动协同更新策略
本文采用具有较好遍历性的逻辑自映射函数产生混沌序列,进而对收敛因子进行混沌
扰动,提出一种带混沌扰动的收敛因子非线性时变更新策略,收敛因子更新公式为
a
=
a
i
n
i
t
i
a
l
⋅
∣
y
t
∣
−
(
a
i
n
i
t
i
a
l
−
a
f
i
n
a
l
)
⋅
tan
(
0.875
⋅
t
t
max
)
(4)
a=a_{\rm{initial}}\cdot|y^t|-(a_{\rm{initial}}-a_{\rm{final}})\cdot\tan\left(0.875\cdot\frac{t}{t_{\max}}\right)\tag{4}
a=ainitial⋅∣yt∣−(ainitial−afinal)⋅tan(0.875⋅tmaxt)(4)其中,
a
i
n
i
t
i
a
l
a_{\rm{initial}}
ainitial和
a
f
i
n
a
l
a_{\rm{final}}
afinal分别为收敛因子
a
a
a的初值和终值;
y
t
=
1
−
2
(
y
t
−
1
)
2
,
y
t
∈
(
−
1
,
1
)
y^t = 1− 2(y^{t−1})^2, y^t\in(−1, 1)
yt=1−2(yt−1)2,yt∈(−1,1)为自逻辑映射函数产生的混沌序列。带混沌扰动的收敛因子随迭代次数的变化如图1所示。
通过施加带混沌扰动的收敛因子非线性时变更新策略,在一定程度上提升了算法性能.然而,当涉及到时变更新策略时,单独依靠收敛因子并不能在种群全局探索能力与局部开发能力之间进行有效平衡。因此,CWOA算法借鉴PSO算法,引入惯性权重配合收敛因子共同调节种群全局探索能力和局部开发能力,惯性权重更新策略同样选择带混沌扰动的非线性时变更新策略。惯性权重更新公式为
ω
=
ω
f
i
n
a
l
⋅
∣
y
t
∣
+
(
ω
i
n
i
t
i
a
l
−
ω
f
i
n
a
l
)
⋅
(
t
max
−
t
t
max
)
2
(5)
\omega=\omega_{\rm{final}}\cdot|y^t|+(\omega_{\rm{initial}}-\omega_{\rm{final}})\cdot\left(\frac{t_{\max}-t}{t_{\max}}\right)^2\tag{5}
ω=ωfinal⋅∣yt∣+(ωinitial−ωfinal)⋅(tmaxtmax−t)2(5)其中,
ω
i
n
i
t
i
a
l
\omega_{\rm{initial}}
ωinitial和
ω
f
i
n
a
l
\omega_{\rm{final}}
ωfinal分别为惯性权重
ω
\omega
ω的初值和终值。带混沌扰动的惯性权重随迭代次数的变化如图2所示。
通过收敛因子和惯性权重混沌扰动协同更新,当前个体的位置更新和螺旋更新位置公式分别为 X t + 1 = ω ⋅ X g b e s t t − A ⋅ ∣ C ⋅ X g b e s t t − X t ∣ (6) X^{t+1}=\omega\cdot X_{\rm{gbest}}^t-A\cdot|C\cdot X_{\rm{gbest}}^t-X^t|\tag{6} Xt+1=ω⋅Xgbestt−A⋅∣C⋅Xgbestt−Xt∣(6) X t + 1 = ω ⋅ X g b e s t t + D ⋅ e b l ⋅ cos ( 2 π l ) (7) X^{t+1}=\omega\cdot X_{\rm{gbest}}^t+D\cdot e^{bl}\cdot\cos(2\pi l)\tag{7} Xt+1=ω⋅Xgbestt+D⋅ebl⋅cos(2πl)(7)
(3)最优个体混沌搜索策略
为了减少WOA算法出现早熟收敛现象的概率,CWOA算法通过对当前最优鲸鱼个体施加混沌搜索策略,以当前搜索到最优个体位置向量
X
g
b
e
s
t
t
=
(
X
g
b
e
s
t
1
t
,
X
g
b
e
s
t
2
t
,
⋯
,
X
g
b
e
s
t
D
t
)
X_{\rm{gbest}}^t=(X_{\rm{gbest1}}^t,X_{\rm{gbest2}}^t,\cdots,X_{\rm{gbestD}}^t)
Xgbestt=(Xgbest1t,Xgbest2t,⋯,XgbestDt)为基础,将当前最优个体位置向量线性映射到混沌变量的取值区间,利用混沌变量的随机性、遍历性和规律性等内在特性进行混沌优化搜索,最终将获得的混沌优化解线性转换到优化空间,此时的混沌优化本质上是一种深度局部搜索方法。混沌搜索主要步骤如下:
Step 1:按照
y
g
b
e
s
t
d
=
2
(
X
g
b
e
s
t
d
−
X
min
d
)
X
max
d
−
X
min
d
−
1
y_{{\rm{gbest}}\,d}=\frac{2(X_{{\rm{gbest}}\,d}-X_{\min d})}{X_{\max d}-X_{\min d}}-1
ygbestd=Xmaxd−Xmind2(Xgbestd−Xmind)−1将当前最优个体位置向量的每一维映射到区间
(
−
1
,
1
)
(-1,1)
(−1,1)。
Step 2:将混沌变量加载于待搜索的个体变量
y
g
b
e
s
t
d
y_{{\rm{gbest}}\,d}
ygbestd,即将
y
g
b
e
s
t
d
y_{{\rm{gbest}}\,d}
ygbestd代入逻辑自映射函数
y
g
b
e
s
t
d
t
c
=
1
−
2
(
y
g
b
e
s
t
d
t
c
−
1
)
2
y_{{\rm{gbest}}\,d}^{t_c}=1-2(y_{{\rm{gbest}}\,d}^{t_c-1})^2
ygbestdtc=1−2(ygbestdtc−1)2进行迭代,产生混沌序列
y
g
b
e
s
t
d
t
c
(
t
c
=
1
,
2
,
⋯
,
t
c
max
)
y_{{\rm{gbest}}\,d}^{t_c}(t_c=1,2,\cdots,t_{c\max})
ygbestdtc(tc=1,2,⋯,tcmax)。其中:
t
c
max
t_{c\max}
tcmax为混沌搜索的最大迭代次数,
y
g
b
e
s
t
d
t
c
∈
(
−
1
,
1
)
y_{{\rm{gbest}}\,d}^{t_c}\in(-1,1)
ygbestdtc∈(−1,1)。
Step 3:利用式
X
g
b
e
s
t
d
′
=
1
2
(
X
max
d
−
X
min
d
)
×
y
g
b
e
s
t
d
+
1
2
(
X
max
d
−
X
min
d
)
X_{{\rm{gbest}}\,d}'=\frac12(X_{\max d}-X_{\min d})\times y_{{\rm{gbest}}\,d}+\frac12(X_{\max d}-X_{\min d})
Xgbestd′=21(Xmaxd−Xmind)×ygbestd+21(Xmaxd−Xmind)将
y
g
b
e
s
t
d
y_{{\rm{gbest}}\,d}
ygbestd载波到原搜索空间邻域内以产生新最优个体位置向量
X
g
b
e
s
t
′
X_{\rm{gbest}}'
Xgbest′。
Step 4:对
X
g
b
e
s
t
X_{\rm{gbest}}
Xgbest和
X
g
b
e
s
t
′
X_{\rm{gbest}}'
Xgbest′进行适应度函数值评价,更新当前最优个体位置。
Step 5:判断是否达到最大混沌搜索次数,如果是,则终止混沌搜索,否则转入Step 2。
二、数值实验及比较
为了测试CWOA算法性能,将其与基本WOA和IWOA算法进行对比,实验设置种群规模
N
=
30
N=30
N=30,最大迭代次数
t
max
=
500
t_{\max}=500
tmax=500,每种算法均独立运行30次,以文献[1]中表1所示的200维的基准测试函数为例,结果显示如下:
函数:F1
IWOA:最差值: 6.1711e-111, 最优值: 1.3099e-124, 平均值: 2.2263e-112, 标准差: 1.1248e-111, 秩和检验: 1.2118e-12
WOA:最差值: 6.7221e-65, 最优值: 4.2044e-86, 平均值: 2.2408e-66, 标准差: 1.2273e-65, 秩和检验: 1.2118e-12
CWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F2
IWOA:最差值: 1.7276e-65, 最优值: 4.2003e-73, 平均值: 1.0023e-66, 标准差: 3.3446e-66, 秩和检验: 1.2118e-12
WOA:最差值: 1.1748e-48, 最优值: 6.2355e-57, 平均值: 6.3411e-50, 标准差: 2.384e-49, 秩和检验: 1.2118e-12
CWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F3
IWOA:最差值: 97.192, 最优值: 0.16104, 平均值: 62.987, 标准差: 28.5035, 秩和检验: 1.2118e-12
WOA:最差值: 97.8221, 最优值: 13.5497, 平均值: 72.5433, 标准差: 27.8119, 秩和检验: 1.2118e-12
CWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F4
IWOA:最差值: 198.337, 最优值: 197.4125, 平均值: 197.7512, 标准差: 0.22661, 秩和检验: 3.0199e-11
WOA:最差值: 197.7801, 最优值: 197.057, 平均值: 197.4586, 标准差: 0.19964, 秩和检验: 3.0199e-11
CWOA:最差值: 2.6341, 最优值: 1.6302e-07, 平均值: 0.20422, 标准差: 0.60223, 秩和检验: 1
函数:F5
IWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
WOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
CWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F6
IWOA:最差值: 0.0062306, 最优值: 8.3145e-05, 平均值: 0.001682, 标准差: 0.0016324, 秩和检验: 3.4742e-10
WOA:最差值: 0.029679, 最优值: 0.00017025, 平均值: 0.0049583, 标准差: 0.0069267, 秩和检验: 8.9934e-11
CWOA:最差值: 0.00030323, 最优值: 2.3623e-06, 平均值: 0.00011608, 标准差: 8.4097e-05, 秩和检验: 1
函数:F7
IWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
WOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
CWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F8
IWOA:最差值: 7.9936e-15, 最优值: 8.8818e-16, 平均值: 4.0856e-15, 标准差: 2.3511e-15, 秩和检验: 1.0055e-08
WOA:最差值: 7.9936e-15, 最优值: 8.8818e-16, 平均值: 4.4409e-15, 标准差: 2.799e-15, 秩和检验: 3.7564e-08
CWOA:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
函数:F9
IWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
WOA:最差值: 1.1102e-16, 最优值: 0, 平均值: 3.7007e-18, 标准差: 2.027e-17, 秩和检验: 0.33371
CWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F10
IWOA:最差值: 0.37912, 最优值: 0.021824, 平均值: 0.18355, 标准差: 0.087139, 秩和检验: 3.3384e-11
WOA:最差值: 0.17644, 最优值: 0.031639, 平均值: 0.069084, 标准差: 0.032246, 秩和检验: 3.6897e-11
CWOA:最差值: 0.036366, 最优值: 1.4413e-10, 平均值: 0.0014288, 标准差: 0.006701, 秩和检验: 1
实验结果表明,CWOA在收敛速度、收敛精度、鲁棒性方面均较对比算法有较大提升。
三、参考文献
[1] 王坚浩, 张亮, 史超, 等. 基于混沌搜索策略的鲸鱼优化算法[J]. 控制与决策, 2019, 34(9): 1893-1900.