基础鲸鱼算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107559167
与其他群体智能优化算法相似,WOA 在寻优过程中同样需要平衡其探索和开发能力,以获得较好的寻优结果。当|A|>1时,WOA 算法进行随机搜索,扩大搜索范围,以达到全局寻优的目的;当|A|<1时,WOA 算法进行收缩 包围 猎物 或 螺 旋 更 新 位置,以达到局部寻优的目的。也就是说,WOA 算法的全局探索和局部开发能力的转换依赖于参数A 的变化。但是,由式(2)可知,参数 A 的值是随着控制参数a 的变化而不断变化 的,即寻优 过 程中,WOA算法的全局探索和局部开发能力的转换实际上是依赖于控制参数a。
然而,由式(4)可知,在基本 WOA 算法中,控制参数
a
\boldsymbol{a}
a 的值随迭代次数增加从 2 线性递减到 0 。事 实上, WOA 算法的寻优过程极为复杂, 控制参数
a
a
a 线性递减策略不能适应寻优过程的实际情况, 可能 会导致收敛精度不高或易陷入局部最优。文献 [1] 的结论表明, 基本
W
O
A
\mathrm{WOA}
WOA 算法在求解高维多峰函数 优化问题时易陷入局部最优。基于上述考虑, 本文 提出一种了基于余弦函数描述控制参数
a
a
a 的非线性 动态变化策略, 其具体表达式为
a
(
t
)
=
(
a
i
n
i
t
i
a
l
−
a
final
)
×
cos
(
μ
t
M
a
x
i
t
e
r
π
)
(7)
\boldsymbol{a}(t)=\left(\boldsymbol{a}_{{initial }}-\boldsymbol{a}_{\text {final }}\right) \times \cos \left(\mu \frac{t}{ { Maxiter }} \pi\right) \tag{7}
a(t)=(ainitial−afinal )×cos(μMaxitertπ)(7)
式中:
t
t
t 为当前迭代次数; Maxiter 为最大迭代次数;
a
initial
a_{\text {initial }}
ainitial 和
a
final
a_{\text {final }}
afinal 分别为控制参数
a
a
a 的初始值和终止值;
μ
\mu
μ 为非线性调节系数。
由式 (1) 和式 (5) 可以看出, 在基本 WOA 算法 中, 群体中其他鲸鱼个体的位置更新方式是在当前 个体和当前最优个体
X
p
\boldsymbol{X}_{p}
Xp 附近产生新个体, 换句话 说, 群体中其他个体由
X
p
\boldsymbol{X}_{p}
Xp 引导向最优区域靠近。如 果
X
p
\boldsymbol{X}_{p}
Xp 是局部最优解, 随着迭代搜索的不断进行, 群 体均聚集在局部最优解
X
p
\boldsymbol{X}_{p}
Xp 的周围, 导致群体多样性 损失, 使得算法出现早熟收玫现象, 收玫精度低。另 外, 群体智能算法在每一次迭代后都采用最优保存 策略以保证收敛。解决这一问题的一般方法是引入 变异操作, 以增强群体的多样性和跳出局部最优。 常用的变异操作有均匀变异、多样性变异、高斯变异 和柯西变异等。
本文采用一种新的变异策略, 即随机差分变异 策略。受差分进化算法变异策略的启发, 利用当前 鲸鱼个体、当前最优个体和在群体中随机选择的鲸 鱼个体进行随机差分, 以产生新的个体, 其具体表达 式为
X
(
t
+
1
)
=
r
×
(
X
∗
−
X
(
t
)
)
+
r
×
(
X
′
(
t
)
−
X
(
t
)
)
(8)
\boldsymbol{X}(t+1)=r \times\left(\boldsymbol{X}^{*}-\boldsymbol{X}(t)\right)+r \times\left(\boldsymbol{X}^{\prime}(t)-\boldsymbol{X}(t)\right) \tag{8}
X(t+1)=r×(X∗−X(t))+r×(X′(t)−X(t))(8)
式中:
t
t
t 为当前迭代次数;
r
r
r 为
[
0
,
1
]
[0,1]
[0,1] 之间的随机数;
X
∗
\boldsymbol{X}^{*}
X∗ 为当前最优个体位置,
X
′
\boldsymbol{X}^{\prime}
X′ 为群体中随机选取的个体。
在 WOA 的每次迭代中,采用式 (8)表示的随机 差分变异策略对群体进行扰动操作, 产生具有较好 多样性的个体, 帮助算法避免陷入局部最优, 防止早 熟现象的发生。


[1]覃溪,龙文.基于随机差分变异的改进鲸鱼优化算法[J].中国科技论文,2018,13(08):937-942.