基于随机差分变异的改进鲸鱼优化算法-附代码

基于随机差分变异的改进鲸鱼优化算法


摘要:针对基本鲸鱼优化算法(whale optimization algorithm,WOA)求解复杂问题时存在解精度低、收敛速度慢和易陷入局部最优的缺点,提出了一种基于非线性调整控制参数和随机差分变异策略的改进鲸鱼优化算法(IWOA),设计了基于余弦函数非线性调整控制参数的策略,以协调算法的探索和开发能力;随机选择个体与当前个体进行差分变异产生新个体以增强群体的多样性,减小陷入局部最优的概率。

1.鲸鱼优化算法

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

2. 改进鲸鱼优化算法

2.1 基于余弦函数的非线性控制参数策略

与其他群体智能优化算法相似,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)=(ainitialafinal )×cos(μMaxitertπ)(7)
式中: t t t 为当前迭代次数; Maxiter 为最大迭代次数; a initial  a_{\text {initial }} ainitial  a final  a_{\text {final }} afinal  分别为控制参数 a a a 的初始值和终止值; μ \mu μ 为非线性调节系数。

2.2 随机差分变异策略

由式 (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×(XX(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)表示的随机 差分变异策略对群体进行扰动操作, 产生具有较好 多样性的个体, 帮助算法避免陷入局部最优, 防止早 熟现象的发生。

请添加图片描述

3.实验结果

请添加图片描述

4.参考文献

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

5.Matlab代码

6.Python代码

猜你喜欢

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