基础鲸鱼算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107559167
在基本的 WOA 中,鲸鱼游走阶段的个体位置是通过选取随机个体来引导更新, 虽然能增加种群的搜索范围, 但 完全依靠随机性, 增加了种群无效搜索的次数, 影响收玫速 度。为了加快对猎物搜索的速度, 提出一种精英个体引导 机制。选取当前种群最优个体作为精英个体引导种群位置 更新,位置更新公式变为
X
(
t
+
1
)
=
X
p
(
t
)
−
d
i
r
⋅
A
⋅
D
(7)
\boldsymbol{X}(t+1)=\boldsymbol{X}_{p}(t)-\boldsymbol{d i r} \cdot \boldsymbol{A} \cdot \boldsymbol{D} \tag{7}
X(t+1)=Xp(t)−dir⋅A⋅D(7)
式中
X
p
(
t
)
X_{\mathrm{p}}(t)
Xp(t) 为第
t
t
t 次迭代时,种群适应度最优的个体位 置。dir 为种群搜索方向因子, 比较当前种群最优个体的适 应度值 fit
(
X
p
(
t
)
)
\left(\boldsymbol{X}_{\mathrm{p}}(t)\right)
(Xp(t)) 与上一代种群最优个体适应度
f
i
t
(
X
p
f i t\left(\boldsymbol{X}_{\mathrm{p}}\right.
fit(Xp
(
t
−
1
)
)
(t-1))
(t−1)), 若
f
i
t
(
X
p
(
t
)
)
>
f
i
t
(
X
p
(
t
−
1
)
)
f i t\left(\boldsymbol{X}_{\mathrm{p}}(t)\right)>f i t\left(\boldsymbol{X}_{\mathrm{p}}(t-1)\right)
fit(Xp(t))>fit(Xp(t−1)), 则
dir
\operatorname{dir}
dir 为单位向 量, 否则
dir
\operatorname{dir}
dir 向量的每一维通过下式得到
d
i
r
j
=
{
−
1
,
A
j
⋅
[
X
p
j
(
t
)
−
X
p
j
(
t
−
1
)
]
>
0
1
,
其他
(8)
d i r_{j}=\left\{
由式 (7)、式 (8) 可知, 精英个体使种群朝靠近最优解 位置进行搜索, 搜索方向因子则利用最优个体的进化反馈 信息对种群的搜索方向进行调整, 两者的加入使种群搜索 更具有目的性, 避免了因随机个体与搜索矢量
A
A
A 的随机性 而导致收玫速度较慢的问题。值得注意的是, 精英个体的 引入使得最优鲸鱼个体在鲸鱼种群搜索中扮演着领导者的 角色, 所以, 其位置的好坏决定了种群的搜索效率, 为了提 高领导者的质量, 在每次迭代中, 对精英个体进行一次随机 扰动与反向搜索操作
[
15
]
{ }^{[15]}
[15], 得到两个新的个体
X
p
∗
,
X
p
∗
∗
X_{\mathrm{p}}^{*}, X_{\mathrm{p}}^{* *}
Xp∗,Xp∗∗, 其 求解公式如下
X
p
∗
=
X
min
+
r
⋅
(
X
max
−
X
min
)
,
X
p
∗
k
=
X
max
+
X
min
−
X
p
∗
(9)
\boldsymbol{X}_{\mathrm{p}}^{*}=\boldsymbol{X}_{\min }+\boldsymbol{r} \cdot\left(\boldsymbol{X}_{\max }-\mathrm{X}_{\min }\right), \boldsymbol{X}_{p}^{* k}=\boldsymbol{X}_{\max }+\boldsymbol{X}_{\min }-\boldsymbol{X}_{\mathrm{p}}^{*} \tag{9}
Xp∗=Xmin+r⋅(Xmax−Xmin),Xp∗k=Xmax+Xmin−Xp∗(9)
式中
X
min
,
X
max
X_{\text {min }}, X_{\text {max }}
Xmin ,Xmax 分别为搜索空间的上界和下界,
r
r
r 为
[
0
,
1
]
[0,1]
[0,1] 区间的随机向量。将得到的
X
p
∗
,
X
p
∗
k
X_{\mathrm{p}}^{*}, \boldsymbol{X}_{\mathrm{p}}^{* k}
Xp∗,Xp∗k 替换种群中适应度最 差的两个个体, 并更新当前种群最优个体
X
p
X_{p}
Xp 。
鲸鱼算法在进入气泡网攻击阶段后, 为了加快对全局 最优值的搜索采取收缩包围机制, 然而这种机制末充分利 用全局最优解的位置信息, 只能使鲸鱼个体缓慢靠近局部 最优解, 无法在猎物附近进行快速精细搜索, 导致算法收玫 速度较慢、收敛精度较低。文献 提出非线性自适 应权重策略, 提高了 WOA 的局部寻优能力, 算法寻优速度 得到了提高, 但同时也增加了算法的计算复杂度。本文引 入一种计算简单的动态混沌权重因子, 其表达式如下
ω
(
t
+
1
)
=
4
ω
(
t
)
⋅
(
1
−
ω
(
t
)
)
,
t
=
1
,
⋯
,
t
max
(10)
\omega(t+1)=4 \omega(t) \cdot(1-\omega(t)), t=1, \cdots, t_{\max }\tag{10}
ω(t+1)=4ω(t)⋅(1−ω(t)),t=1,⋯,tmax(10)
式中
ω
(
1
)
\omega(1)
ω(1) 取
[
0
,
1
]
[0,1]
[0,1] 区间的随机数, 将式 (10) 代入式 (6), 并引入一个随迭代次数变化的收㪉因子
λ
\lambda
λ, 改进后的位置 更新
X
(
t
+
1
)
=
ω
(
t
)
⋅
λ
⋅
X
best
−
A
⋅
D
,
λ
=
(
t
max
−
t
)
/
t
max
(11)
\boldsymbol{X}(t+1)=\omega(t) \cdot \lambda \cdot \boldsymbol{X}_{\text {best }}-\boldsymbol{A} \cdot \boldsymbol{D}, \lambda=\left(t_{\max }-t\right) / t_{\max }\tag{11}
X(t+1)=ω(t)⋅λ⋅Xbest −A⋅D,λ=(tmax−t)/tmax(11)
从式 (10) 中可知, 本文选取 Logistic 混沌映射, 利用其随机性、遍历性等优点动态调整惯性权重,使鲸鱼个体能在猎物周围进行更加精细、彻底地搜索,加快了算法的收敛速度,同时也降低了算法陷入局部最优的概率。其次,参数 λ随着迭代次数的增加而自适应的减小,能有效控制权重因子混沌变化的范围,缩小鲸鱼种群的寻优区域,使算法迅速收敛于全局最优解,保证了算法的收敛性。
改进算法步骤:
初始化参数。设置种群规模大小为
N
N
N, 解空间维度为
d
d
d, 最大迭代次数为
t
max
t_{\max }
tmax, 产生初始化鲸鱼种群
{
X
i
,
i
=
1
,
2
\left\{\boldsymbol{X}_{i}, i=1,2\right.
{Xi,i=1,2,
⋯
,
N
}
\cdots, N\}
⋯,N};
while
(
t
<
t
max
)
\left(t
计算每一个鲸鱼个体的适应度值
{
f
(
X
i
)
,
i
=
1
,
2
,
⋯
\left\{f\left(X_{i}\right), i=1,2, \cdots\right.
{f(Xi),i=1,2,⋯,
N
}
N\}
N}, 根据式 (9) 得到
X
p
∗
,
X
p
∗
k
\boldsymbol{X}_{\mathrm{p}}^{*}, \boldsymbol{X}_{\mathrm{p}}^{* k}
Xp∗,Xp∗k 并替换当前种群最差与次差 的两个个体, 选出当前种群最优个体
X
p
X_{\mathrm{p}}
Xp, 更新迄今为止找 到的最优个体
X
best
X_{\text {best }}
Xbest ;
for
i
=
1
i=1
i=1 to
N
N
N do
按式 (3) 更新
a
a
a 的值, 更新其他参数
A
,
C
,
l
A, C, l
A,C,l 和
p
p
p;
if
(
∣
A
∣
⩾
1
)
(|A| \geqslant 1)
(∣A∣⩾1) do
根据式 (7)、式 (8) 更新当前个体位置;
else if
(
∣
A
∣
<
1
)
(|A|<1)
(∣A∣<1) do
if
(
p
⩾
0.5
)
d
o
(p \geqslant 0.5) \mathrm{do}
(p⩾0.5)do
根据式 (11) 更新当前个体位置;
else if
(
p
<
0.5
)
(p<0.5)
(p<0.5) do
根据式 (5) 更新当前个体的位置;
end if
end if
end for
t
=
t
+
1
t=t+1
t=t+1
ω
(
t
+
1
)
=
4
ω
(
t
)
⋅
(
1
−
ω
(
t
)
)
;
\omega(t+1)=4 \omega(t) \cdot(1-\omega(t)) ;
ω(t+1)=4ω(t)⋅(1−ω(t));
end while
[1]黄辉先,张广炎,陈思溢,胡拚.基于混沌权重和精英引导的鲸鱼优化算法[J].传感器与微系统,2020,39(05):113-116.