基于混沌权重和精英引导的鲸鱼优化算法-附代码

基于混沌权重和精英引导的鲸鱼优化算法


摘要: 针对鲸鱼优化算法( WOA) 存在收敛精度低和收敛速度慢的问题,提出基于混沌权重和精英引导的先进鲸鱼优化算法( AWOA) 。考虑算法前期搜索的随机性对收敛速度的影响,引入精英个体引导机制,利用精英个体的进化反馈信息及时调整种群的搜索方向,加强算法的全局搜索能力。在算法后期引入混沌动态权重因子加强算法的局部搜索能力,提高算法的收敛精度。

1.鲸鱼优化算法

基础鲸鱼算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107559167

2. 改进鲸鱼优化算法

2.1 精英个体引导机制

在基本的 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)dirAD(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)) (t1)), 若 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(t1)), 则 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\{\begin{array}{l} -1, \boldsymbol{A}_{j} \cdot\left[\boldsymbol{X}_{p}^{j}(t)-X_{p}^{j}(t-1)\right]>0 \\ 1, \text { 其他 } \end{array}\right. \tag{8} dirj={ 1,Aj[Xpj(t)Xpj(t1)]>01, 其他 (8)
由式 (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(XmaxXmin),Xpk=Xmax+XminXp(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,Xpk 替换种群中适应度最 差的两个个体, 并更新当前种群最优个体 X p X_{p} Xp

2.2 混沌动态权重因子

鲸鱼算法在进入气泡网攻击阶段后, 为了加快对全局 最优值的搜索采取收缩包围机制, 然而这种机制末充分利 用全局最优解的位置信息, 只能使鲸鱼个体缓慢靠近局部 最优解, 无法在猎物附近进行快速精细搜索, 导致算法收玫 速度较慢、收敛精度较低。文献 提出非线性自适 应权重策略, 提高了 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 AD,λ=(tmaxt)/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<t_{\max }\right) (t<tmax) do
计算每一个鲸鱼个体的适应度值 { 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,Xpk 并替换当前种群最差与次差 的两个个体, 选出当前种群最优个体 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) (A1) do
根据式 (7)、式 (8) 更新当前个体位置;
else if ( ∣ A ∣ < 1 ) (|A|<1) (A<1) do
if ( p ⩾ 0.5 ) d o (p \geqslant 0.5) \mathrm{do} (p0.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

3.实验结果

请添加图片描述

4.参考文献

[1]黄辉先,张广炎,陈思溢,胡拚.基于混沌权重和精英引导的鲸鱼优化算法[J].传感器与微系统,2020,39(05):113-116.

5.Matlab代码

6.Python代码

猜你喜欢

转载自blog.csdn.net/u011835903/article/details/125964937
今日推荐