基于自适应调整权重和搜索策略的鲸鱼优化算法-附代码

基于自适应调整权重和搜索策略的鲸鱼优化算法


摘要:针对鲸鱼优化算法( WOA) 收敛速度慢、收敛精度低、易陷入局部最优的问题,提出一种基于自适应调整权重和搜索策略的鲸鱼优化算法( AWOA) . 设计一种随着鲸鱼种群变化情况而自适应调整权重的方法,提高了算法的收敛速度; 设计一种自适应调整搜索策略,提高了算法跳出局部最优的能力。

1.鲸鱼优化算法

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

2. 改进鲸鱼优化算法

2.1 自适应调整权重

惯性权重作为鲸鱼优化算法中一个重要的参 数, 对目标函数的优化求解起到了很大的作用. 合 适的权重值对算法寻优能力的提升有很大帮助. 由于 W O A \mathrm{WOA} WOA 在优化求解的过程中, 线性的惯性权 重调整策略若选择不合适, 将影响算法的收敛速 度. 因此, 本文提出了一种根据当前鲸鱼种群分布 情况来自适应改变权值的大小, 公式如下:
w = d 1 ⋅ ( P i  worst  − P i  ibest  ) + d 2 ⋅ ( x i upper  − x i lower  ) / n g ⋅ (5) w=d_{1} \cdot\left(\boldsymbol{P}_{i \text { worst }}-\boldsymbol{P}_{i \text { ibest }}\right)+d_{2} \cdot\left(x_{i}^{\text {upper }}-x_{i}^{\text {lower }}\right) / n_{\mathrm{g}} \cdot \tag{5} w=d1(Pi worst Pi ibest )+d2(xiupper xilower )/ng(5)
(5) 式中: n g n_{\mathrm{g}} ng 表示当前种群的迭代次数; x i upper  x_{\mathrm{i}}^{\text {upper }} xiupper  x i lower  x_{\mathrm{i}}^{\text {lower }} xilower  分别为变量 x i x_{i} xi 的上界和下界; P iwort  \boldsymbol{P}_{\text {iwort }} Piwort  P ibest  \boldsymbol{P}_{\text {ibest }} Pibest  分别为 当前鲸鱼种群中最差鲸鱼的位置向量和最优鲸鱼 的位置向量; d 1 d_{1} d1 d 2 d_{2} d2 是两个常数. 因此, 当前鲸鱼 个体自适应调整权重收缩包围更新位置和自适应 调整权重螺旋更新位置公式如下:
X ( t + 1 ) = w ⋅ X ∗ ( t ) − A ⋅ D (6) \boldsymbol{X}(t+1)=w \cdot \boldsymbol{X}^{*}(t)-A \cdot \boldsymbol{D} \tag{6} X(t+1)=wX(t)AD(6)

X ( t + 1 ) = w ⋅ X ∗ ( t ) + D p ′ ⋅ e b ⋅ ⋅ cos ⁡ ( 2 π l ) (7) \boldsymbol{X}(t+1)=w \cdot \boldsymbol{X}^{*}(t)+\boldsymbol{D}_{p}^{\prime} \cdot \mathrm{e}^{b \cdot} \cdot \cos (2 \pi l) \tag{7} X(t+1)=wX(t)+Dpebcos(2πl)(7)

在引人自适应调整权重搜索策略后, 算法可 以根据当前鲸鱼种群的分布情况自适应地改变权 值的大小. 在算法迭代初期, 若鲸鱼种群陷人局部 最优解, 并且最优解和最差解差别不大时, d 2 ⋅ ( x i upper  − x i lower  ) / n g d_{2} \cdot\left(x_{i}^{\text {upper }}-x_{i}^{\text {lower }}\right) / n_{\mathrm{g}} d2(xiupper xilower )/ng 的值并不受种群分布情况的 影响, 这部分的设计依然可以得到较大的权重值 w w w, 避免了算法在迭代初期就陷人小范围搜索的 缺陷; 随着鲸鱼种群迭代次数的增加, d 2 ⋅ ( x i upper  − d_{2} \cdot\left(x_{i}^{\text {upper }}-\right. d2(xiupper  x i lower  ) / n g \left.x_{i}^{\text {lower }}\right) / n_{\mathrm{g}} xilower )/ng 的值会逐渐变小, 其对权重 w w w 的影响减 小,若此时算法并末得到最优解, d 1 ⋅ ( P iworst  − d_{1} \cdot\left(\boldsymbol{P}_{\text {iworst }}-\right. d1(Piworst  P ibest  ) \left.\boldsymbol{P}_{\text {ibest }}\right) Pibest ) 的设计就可以对权重值 w w w 起到主导作用, 可以使算法以较大的步长寻优. 这样设计自适应 调整权重 w w w 的好处在于, 其值由两部分决定, 前 半部分对种群迭代次数过大时起主要调节作用, 后半部分对种群陷人局部最优时起主要调节作 用. 权重 w w w 前后两部分会根据当前种群位置的变 化情况而发生变化, 不拘于某种固定的形式, 具 有很强的自适应性.

2.2 自适应调整搜索策略

为防止算法陷入局部最优,随机搜索阶段,个体根据概率阈值 Q 来选取随机搜索的更新方式概率阈值定义为
Q = ∣ f ˉ − f min ⁡ ∣ ∣ f max ⁡ − f min ⁡ ∣ (8) Q=\frac{\left|\bar{f}-f_{\min }\right|}{\left|f_{\max }-f_{\min }\right|} \tag{8} Q=fmaxfmin fˉfmin (8)
式中: f ˉ \bar{f} fˉ 表示当前鲸鱼种群的平均适应度值; f min  f_{\text {min }} fmin  为当前鲸鱼种群中最好的适应度值; f max ⁡ f_{\max } fmax 为当前鲸 鱼种群中最差的适应度值. 对于每个鲸鱼个体, 以 一个 [ 0 , 1 ] [0,1] [0,1] 之间的随机数 q q q 与计算出的概率阈值 Q Q Q 进行数值比较. 若 q < Q q<Q q<Q, 随机选取的鲸鱼个体 X rand  \boldsymbol{X}_{\text {rand }} Xrand  根据式( 9) 更新其位置, 其他鲸鱼个体位置不 变; 否则, 其他鲸鱼个体根据式 (4) 更新其位置. 这样设计使得算法在迭代前期能以较大的概率在 全局范围内随机产生一组解, 避免鲸鱼因聚集在 一起而导致种群多样性的缺失, 增强了算法的全 局搜索能力.
X rand  = X j  min  + r ⋅ ( X j  max  − X j  min  ) (9) \boldsymbol{X}_{\text {rand }}=\boldsymbol{X}_{j \text { min }}+r \cdot\left(\boldsymbol{X}_{\boldsymbol{j} \text { max }}-\boldsymbol{X}_{\boldsymbol{j} \text { min }}\right) \tag{9} Xrand =Xj min +r(Xj max Xj min )(9)
式中: r r r [ 0 , 1 ] [0,1] [0,1] 之间的随机数; X min  , X max  \boldsymbol{X}_{\text {min }}, \boldsymbol{X}_{\text {max }} Xmin ,Xmax  分别为 变量 X rand  \boldsymbol{X}_{\text {rand }} Xrand  取值的最小值和最大值.

请添加图片描述

3.实验结果

请添加图片描述

4.参考文献

[1]孔芝,杨青峰,赵杰,熊浚钧.基于自适应调整权重和搜索策略的鲸鱼优化算法[J].东北大学学报(自然科学版),2020,41(01):35-43.

5.Matlab代码

6.Python代码

猜你喜欢

转载自blog.csdn.net/u011835903/article/details/125984813