一种随机调整控制参数的鲸鱼优化算法

一种随机调整控制参数的鲸鱼优化算法


摘要:针对标准鲸鱼优化算法在处理复杂优化问题时出现搜索精度低和易出现早熟收敛等缺点,提出一种随机调整控制参数的改进鲸鱼优化算法(EWOA)。受粒子群优化算法中惯性权重的启发,利用随机分布的方式调整控制参数,以平衡鲸鱼优化算法的全局搜索和局部搜索能力。对当前最优个体执行服从正态分布的变异扰动,以避免算法出现早熟收敛现象。此外,采取佳点集方法替代随机方法产生初始个体以提高算法的全局收敛速度。

1.鲸鱼优化算法

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

2. 改进鲸鱼优化算法

2.1 佳点集方法初始化

文献 [13] 指出, 种群初始化在群体智能优化算 法中显得尤为重要, 原因在于它影响着算法的解精 度和收玫速度。由于对问题的全局最优解没有任何 先验知识的前提下, 一般采用随机方法生成初始种 群, 然而, 随机方法生成的初始群体不能保证能有效 地提取解空间的有用信息, 从而在一定程度上会影 响算法的求解效率。
佳点集是一种能均匀取点的、有效的实验方法, 与随机方法相比, 利用佳点集方法所选取的点能均 匀地分布在该对象中。为了使初始种群个体尽可能 表征解空间的信息, 本文采用佳点集方法进行种群 初始化, 其具体步骤如算法 1 所示。
 for  i = 1  to  N  do   for  j = 1  to  d  do  p = 2 d + 3 r ( j ) = 2 cos ⁡ ( 2 π j / p ) X i j = l i j +   m o d   ( r ( j ) i , 1 ) ( u i j − l i j )  end for   end for  \begin{aligned} &\text { for } i=1 \text { to } N \text { do }\\ &\text { for } j=1 \text { to } d \text { do }\\ &p=2 d+3\\ &r(j)=2 \cos (2 \pi j / p)\\ &X_{i}^{j}=l_{i}^{j}+\bmod (r(j) i, 1)\left(u_{i}^{j}-l_{i}^{j}\right)\\ &\text { end for }\\ &\text { end for } \end{aligned}  for i=1 to N do  for j=1 to d do p=2d+3r(j)=2cos(2πj/p)Xij=lij+mod(r(j)i,1)(uijlij) end for  end for 

2.2 随机调整控制参数策略

控制参数 a \boldsymbol{a} a 若设定为服从某种分布的随机数, 利用随机变量的特性调整控制参数, 有利于算法跳 出局部最优 ; 若在最优个体附近, 则随机分布控制参 数能产生相对较小的值, 这样有利于加快算法的收 玫速度。原因在于随机性使得控制参数既能在进化 初期有机会取得较大或较小的值, 又能在进化后期 取得较小或较大的值。基于上述分析, 本文提出一 种随机分布调整控制参数策略, 即
a ( t ) = ( a max ⁡ − a min  )  rand  ( ) + σrandn ⁡ ( ) (7) \boldsymbol{a}(t)=\left(\boldsymbol{a}_{\max }-\boldsymbol{a}_{\text {min }}\right) \text { rand }()+\operatorname{\sigma randn}()\tag{7} a(t)=(amaxamin ) rand ()+σrandn()(7)
式 (7) 中, a max  \boldsymbol{a}_{\text {max }} amax  a min  \boldsymbol{a}_{\text {min }} amin  分别为控制参数 a \boldsymbol{a} a 的最大值和 最小值, rand ⁡ ( ) \operatorname{rand}(\mathrm{)} rand() [ 0 , 1 ] [0,1] [0,1] 均匀分布的随机数, randn ⁡ ( ) \operatorname{randn}() randn() 为正态分布的随机数, σ \sigma σ (方差) 用来度量 随机变量收玫因子 a a a 与其数学期望(即均值)之间 的偏离程度, 是为了控制取值中的控制参数误差, 使 控制参数有利于向期望控制参数方向进化。由 式 (7) 可知, 控制参数 a a a 在进化过程中随机变化, 从 而协调 WOA 算法的探索和开发能力。

2.3正态变异算子

在 WOA 算法进化后期, 群体中所有个体均向 最优个体区域靠拢, 导致群体多样性下降, 易陷入早 熟收敛, 这也是群体智能优化算法的固有特点。为 了有效地避免算法陷入局部最优, 引入变异算子是 一种常见的方式。
正态变异来源于正态分布(也称高斯分布)。 若随机变量 σ \sigma σ 服从一个数学期望为 μ \mu μ 、方差为 σ 2 \sigma^{2} σ2 的 正态分布, 记为 N ( μ , σ 2 ) N\left(\mu, \sigma^{2}\right) N(μ,σ2) 。当 σ = 1 、 μ = 0 \sigma=1 、 \mu=0 σ=1μ=0 时为标 准正态分布。其概率密度函数为
f ( x ) = 1 2 π σ exp ⁡ [ − ( x − μ ) / 2 σ 2 ] (8) f(x)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left[-(x-\mu) / 2 \sigma^{2}\right] \tag{8} f(x)=2π σ1exp[(xμ)/2σ2](8)
文献 [14]已经证明正态分布具有较好的局部 搜索能力。因此, 本文引入一个服从正态分布的随 机扰动项, 对当前最优个体产生扰动变异, 就可以使 得鲸鱼个体进入解空间的其他区域进行搜索, 扩大 搜索范围, 提高群体多样性, 从而避免算法陷入局部 最优,其定义为
X best  j = X best  j + N ( 0 , 1 ) X best  j (9) X_{\text {best }}^{j}=X_{\text {best }}^{j}+N(0,1) X_{\text {best }}^{j} \tag{9} Xbest j=Xbest j+N(0,1)Xbest j(9)
式 (9) 中, X best  j X_{\text {best }}^{j} Xbest j 为当前最优个体的第 j j j 维, N ( 0 , 1 ) N(0,1) N(0,1) 为服从均值为 0 , 方差为 1 的标准正态分布。

请添加图片描述

3.实验结果

请添加图片描述

4.参考文献

[1]钟明辉,龙文.一种随机调整控制参数的鲸鱼优化算法[J].科学技术与工程,2017,17(12):68-73.

5.Matlab代码

6.Python代码

猜你喜欢

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