基于混沌的正余弦鲸鱼优化算法
文章目录
摘要: 为了改善鲸鱼优化算法( WOA) 的不足,如容易陷入局部最优,收敛速度慢等问题,本文提出了改进鲸鱼优化算法。首先,通过混沌 Tent 映射随机生成算法的初始种群位置,让种群分布更均匀,加快算法的收敛速度; 其次,将正余弦算法与鲸鱼优化算法融合,对领导者位置进行筛选,一定程度上避免了算法容易早熟的缺陷; 最后,提出自适应策略,保留了鲸鱼优化算法优越性的同时,加入惯性权重,以平衡算法全局探测和局部寻优的能力。
1.鲸鱼优化算法
基础鲸鱼算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107559167
2. 改进鲸鱼优化算法
2.1 混沌初始化种群和参数优化
Tent 映射初始化种群位置的时候, 算法寻到的 最优解和收敛速度明显比其他混沌映射要好, 同时 也证明了鱼京鱼优化算法对 Tent 映射的每感度更 高 [7]。因此, 本文通过式(9), 采用 Tent 映射的方式 来生成分布更加均匀的混沌序列, 提高了算法的寻优性能。
x
i
+
1
=
{
2
x
i
,
x
i
<
0.5
2
(
1
−
x
i
)
.
x
i
⩾
0.5
(9)
x_{i+1}=\left\{\begin{array}{cc} 2 x_{i}, & x_{i}<0.5 \\ 2\left(1-x_{i}\right) . & x_{i} \geqslant 0.5 \end{array}\right. \tag{9}
xi+1={2xi,2(1−xi).xi<0.5xi⩾0.5(9)
2.2 正余弦鲸鱼优化算法
正余弦算法( Sine cosine algorithm, SCA) 是近 年来提出的一种新的全局优化算法, 有别于其他受 生物启发机理的群体智能优化算法, 其结简单、鲁棒 性好、容易实现, 主要利用正弦函数和余弦函数的数 学性质, 通过迭代达到寻找最优解的目的。在 SCA 中, 假设第
t
t
t 代种群中个体
X
i
t
=
(
x
i
1
t
,
x
i
2
t
,
⋯
,
x
i
D
t
)
X_{i}^{t}=\left(x_{i 1}^{t}, x_{i 2}^{t}, \cdots, x_{i D}^{t}\right)
Xit=(xi1t,xi2t,⋯,xiDt), 其 中,
i
=
1
,
2
,
⋯
,
N
,
N
i=1,2, \cdots, N, N
i=1,2,⋯,N,N 为种群大小,
D
D
D 为个体维度。算 法在空间中随机生成
N
N
N 个种群的位置, 计算每个个 体的适应度值, 通过对适应度值排序存优, 保存最优 位置及其对应的适应度值, 个体更新位置方式为 ( 10
)
)
) :
X
d
i
(
t
+
1
)
=
{
X
d
i
(
t
)
+
a
×
sin
(
r
3
)
×
∣
r
4
X
∗
−
X
d
i
(
t
)
∣
,
r
5
<
0.5
X
d
i
(
t
)
+
a
×
cos
(
r
3
)
×
∣
r
4
X
∗
−
X
d
i
(
t
)
∣
.
r
5
⩾
0.5
(10)
\begin{aligned} &X_{d}^{i}(t+1)= &\left\{\begin{array}{l} X_{d}^{i}(t)+a \times \sin \left(r_{3}\right) \times\left|r_{4} X^{*}-X_{d}^{i}(t)\right|, r_{5}<0.5 \\ X_{d}^{i}(t)+a \times \cos \left(r_{3}\right) \times\left|r_{4} X^{*}-X_{d}^{i}(t)\right| . r_{5} \geqslant 0.5 \end{array}\right. \end{aligned} \tag{10}
Xdi(t+1)={Xdi(t)+a×sin(r3)×∣
∣r4X∗−Xdi(t)∣
∣,r5<0.5Xdi(t)+a×cos(r3)×∣
∣r4X∗−Xdi(t)∣
∣.r5⩾0.5(10)
其中,
X
d
i
X_{d}{ }^{i}
Xdi 是第
i
i
i 个个体第
t
t
t 代第
d
d
d 维的位置分 量;
X
∗
X^{*}
X∗ 是当前最优位置; 参数
a
a
a 控制搜索方向, 变化 方式同式 (4),
r
3
r_{3}
r3 为
[
0
,
2
π
]
[0,2 \pi]
[0,2π] 上的随机数, 用来控制 算法的搜索距离;
r
4
r_{4}
r4 为
[
0
,
2
]
[0,2]
[0,2] 上的随机数;
r
5
r_{5}
r5 为
[
0
[0
[0, 1] 上的随机数, 决定第
t
+
1
t+1
t+1 代的位置更新方式是正 弦方式还是余弦方式。
考虑到在鲸鱼优化算法中,每次迭代时将适应度值最好的位置赋值给鲸鱼群领导者,这样的方式导致算法容易陷入局部最优区域,往往导致寻优精度较低。而在 SCA 中,算法可以随机选取正余弦交叉寻优,使得二者位置更新方式相互补充,更好的协调全局探索和局部开发,使 SCA 逐步收缩并徘徊在目标解附近。因此,在本文所提的正余弦鲸鱼优化算法中,经过排序存优的领导者不是直接进行下一次迭代过程,而是记录当前领导者位置,同时对种群中每个个体的位置根据式( 10) 进行正弦( 余弦) 位置更新,再计算每个个体的适应度值,通过比较适应度䇞选出一个新的领导者位置, 最后引入贪婪机制, 比较正余弦操作之前的领导者和新的领导者之间的 适应度值大小, 更新全局最优位置, 再进入到下一次 的迭代过程。值得注意的是, 对于在 SCA 中出现的 随机参数 r 3 、 r 4 、 r 5 r_{3} 、 r_{4} 、 r_{5} r3、r4、r5, 本文都通过 Tent 混沌映射产生, 一定程度上加快了算法的收敛速度。
2.3 混沌自适应的惯性权重
在当前大多数群智能优化算法中,权重对算法的全局探索和局部开发能力的平衡扮演着重要的角色。重反映的是后一个追随者摆脱前一个位置束缚的能力,通常较大的惯性权重能够让算法具有较好的全局探索能力,而较小的惯性权重会使算法具有较好的局部开发能力。在算法迭代早期应使用较大的权重,让算法以较大步伐快速到达目标值附近; 而在迭代后期,应使用较小的权重,让鲸鱼较小的步伐移动,以便在目标解的附近精确搜索,更好的局部寻优。标准 WOA 算法在搜索包围和位置更新时,权重是定值,受 PSO 的启发,本文提出一种基于混沌自适应的惯性权重为式( 11) :
ω
=
ω
s
+
(
ω
e
−
ω
s
)
×
log
10
(
1
+
10
t
T
max
)
.
\omega=\omega_{s}+\left(\omega_{e}-\omega_{s}\right) \times \log _{10}\left(1+\frac{10 t}{T_{\max }}\right) .
ω=ωs+(ωe−ωs)×log10(1+Tmax10t).
其中,
T
max
T_{\max }
Tmax 表示最大迭代次数;
ω
s
\omega_{\mathrm{s}}
ωs 表示惯性权 重初始值;
ω
e
\omega_{e}
ωe 是最大迭代次数的惯性权重。实验表 明, 当
ω
\omega
ω 在
[
0.4
,
0.9
]
[0.4,0.9]
[0.4,0.9] 之间变化时, 算法具有较好的 寻优性能。随着迭代的变化, 将惯性权重从
0.9
0.9
0.9 非 线性递减至
0.4
0.4
0.4, 实现了权重的动态变化, 使算法的 全局搜索和局部开发得到较好的平衡, 一定程度上 也增加了算法跳出局部最优区域的概率。考虑到搜 索猎物阶段选取的随机鲸鱼位置向量, 本文 EWOA 位置更新为公式
(
12
)
∼
(
14
)
(12) \sim(14)
(12)∼(14) :
X
(
t
+
1
)
=
ω
⋅
X
∗
(
t
)
−
A
⋅
D
,
∣
A
∣
<
1
,
p
Tent
<
0.5
(12)
X(t+1)=\omega \cdot X^{*}(t)-A \cdot D,|A|<1, p^{\text {Tent }}<0.5 \tag{12}
X(t+1)=ω⋅X∗(t)−A⋅D,∣A∣<1,pTent <0.5(12)
X ( t + 1 ) = ω ⋅ X rand − A ⋅ D rand , ∣ A ∣ ⩾ 1 , p Tent < 0.5 (13) X(t+1)=\omega \cdot X_{\text {rand }}-A \cdot D_{\text {rand }},|A| \geqslant 1, p^{\text {Tent }}<0.5 \tag{13} X(t+1)=ω⋅Xrand −A⋅Drand ,∣A∣⩾1,pTent <0.5(13)
X ( t + 1 ) = D ′ ⋅ e b l ⋅ cos ( 2 π l ) + ω X ∗ ( t ) ⋅ p Tent ⩾ 0.5 (14) X(t+1)=D^{\prime} \cdot e^{b l} \cdot \cos (2 \pi l)+\omega X^{*}(t) \cdot p^{\text {Tent }} \geqslant 0.5 \tag{14} X(t+1)=D′⋅ebl⋅cos(2πl)+ωX∗(t)⋅pTent ⩾0.5(14)
3.实验结果
4.参考文献
[1]林杰,何庆,王茜,杨荣莹,宁杰琼.基于混沌的正余弦鲸鱼优化算法[J].智能计算机与应用,2020,10(09):43-48+52.