一种增强型鲸鱼优化算法-附代码

一种增强型鲸鱼优化算法


摘要:鲸鱼优化算法( whale optimization algorithm,WOA) 具有独特的搜索机制,非常适合解决复杂的优化问题。针对基本鲸鱼优化算法收敛速度慢、容易陷入局部最优的缺点,提出了一种增强型鲸鱼优化算法( enhanced whale optimization algorithm,EWOA ) 。首先通过引入非线性时变的自适应权重,提升了鲸鱼算法在全局探索和局部寻优阶段的性能; 其次在鲸鱼算法的收缩包围阶段引入差分变异微扰因子,避免了算法出现早熟收敛现象; 另外改进了鲸鱼个体的对数螺旋搜索方式,提高了算法遍历求解的能力。

1.鲸鱼优化算法

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

2. 改进鲸鱼优化算法

2.1 非线性时变的自适应权重

在基本 W O A \mathrm{WOA} WOA 算法中, 当 ∣ A ∣ ≥ 1 |\mathrm{A}| \geq 1 A1 时鲸鱼进入搜索受食 阶段, 需要尽可能的扩大搜索范围, 此时较大的 A 值可以使 鲸鱼个体维持较好的探索能力; 在 ∣ A ∣ < 1 |\mathrm{A}|<1 A<1 时, WOA 算法会 根据最优解的位置尽量实现更高的寻优精度, 较小的 A 值会 对应更佳的局部开发能力。也就是说 A \mathrm{A} A 值的变化直接影响 着算法不同阶段的全局探索能力和局部开发能力。
在基本鲸鱼优化算法中, A A A 的大小是由控制参数 a a a 来决 定, 可以引入一个随迭代次数变化的权重因子来控制 a a a 的大 小变化。本文提出了一种非线性时变的自适应权重, 其定义 如下​
KaTeX parse error: Expected 'EOF', got '_' at position 82: … t}{\text { Max_̲iter }}\right)\…
式 (11) 中的 k k k 为调节系数。
本文所提权重因子在迭代开始阶段下降较缓, 算法能维 持较好的全局探索能力; 在经过一定的迭代次数后权值迅速 下降, 使得算法在局部开发阶段能更精细搜索最优解。另外 在 W O A \mathrm{WOA} WOA 算法中因子 D \mathrm{D} D D ′ \mathrm{D}^{\prime} D 控制着当前个体与目标个体之间 的距离, 由文献 [7] 可知改变 D 和 D 变化时的速率和大小也 能调整算法寻优的精度和速度。

因此引入新的非线性时变自适应权重因子 w w w 后的式 (2) 和式 (9) 更新为
X ( t + 1 ) = X rand  ( t ) − w A D (12) X(t+1)=X_{\text {rand }}(t)-w A D \tag{12} X(t+1)=Xrand (t)wAD(12)

X ( t + 1 ) = w D ′ e b l cos ⁡ ( 2 π l ) + X best  ( t ) (13) \begin{gathered} X(t+1)=w D^{\prime} e^{b l} \cos (2 \pi l)+X_{\text {best }}(t) \end{gathered}\tag{13} X(t+1)=wDeblcos(2πl)+Xbest (t)(13)

2.2 差分变异微扰因子

在收缩包围阶段, 鲸鱼个体主要是利用当前最佳鲸鱼个 体的位置信息并向其靠近, 根据式 (6) 和 (7) 来更新自己的 位置。在算法的求解过程中不断在最优解周围产生新的可 行解, 随着迭代过程的不断进行, 种群多样性会不断损失, 算 法也容易出现早熟收玫现象。
针对基本鲸鱼算法的这个缺点, 本文借鉴了差分进化算 法变异算子的思想, 在收缩包围阶段引入了一个差分变异微 扰因子, 其定义如下
λ = F ( X b e s t ( t ) − X ( t ) ) (14) \lambda=F\left(X_{b e s t}(t)-X(t)\right)\tag{14} λ=F(Xbest(t)X(t))(14)
式中 F F F 为变异尺度因子。
引入差分变异微扰因子的 (7) 式更新为
X ( t + 1 ) = X best  ( t ) − A D + λ (15) X(t+1)=X_{\text {best }}(t)-A D+\lambda \tag{15} X(t+1)=Xbest (t)AD+λ(15)
在鲸鱼的收缩包围阶段通过引入差分变异微扰因子, 可 以使得鲸鱼个体更容易跳出局部最优, 增加群体多样性, 提 高局部寻优时的求解精度。

2.3 改进的螺旋更新方式

基本 WOA 算法在螺旋更新位置阶段, 鲸鱼个体在向当 前最佳鲸鱼个体位置前进时采取的是对数螺旋更新方式, 文 献指出对数螺旋搜索方式并不一定是最佳的,如果螺 旋步进间距超过搜索范围,会使得算法不能遍历整个搜索空 间, 从而降低了算法寻优的各态历经性。本文将对数螺旋搜 索方式替换为阿基米德螺旋更新方式, (13) 式进一步改进 为
X ( t + 1 ) = w D ′ ( b l ) cos ⁡ ( 2 π l ) + X b e s t ( t ) (16) X(t+1)=w D^{\prime}(b l) \cos (2 \pi l)+X_{b e s t}(t) \tag{16} X(t+1)=wD(bl)cos(2πl)+Xbest(t)(16)
式中 b b b 是常量系数, l l l [ − 1 , 1 ] [-1,1] [1,1] 之间的随机数。

请添加图片描述

3.实验结果

请添加图片描述

4.参考文献

[1]冯文涛,宋科康.一种增强型鲸鱼优化算法[J].计算机仿真,2020,37(11):275-279+357.

5.Matlab代码

6.Python代码

猜你喜欢

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