融合自适应惯性权重和柯西变异的秃鹰搜索算法(CBES) - 附代码

融合自适应惯性权重和柯西变异的秃鹰搜索算法(CBES)


摘要:针对基本秃鹰搜索算法存在收敛速度慢、易陷入局部最优的缺点,提出了一种融合自适应惯性权重和柯西变异的秃鹰搜索算法(CBES).首先使用Tent混沌映射初始化种群,保留了种群的多样性;其次,引入自适应惯性权重,加快算法的收敛速度,增强算法的局部开发能力;最后将柯西变异算子整合到当前全局最优位置进行变异更新,提高算法陷入局部最优的能力.

1.秃鹰优化算法

基础秃鹰优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/113775430

2.改进秃鹰优化算法

2.1 Tent 映射

文章使用 Tent 映射来初始化种群, Tent 映射的表达式 如下所示:
x i + 1 = { 2 x i , 0 ≤ x ≤ 1 2 2 ( 1 − x i ) , 1 2 ≤ x ≤ 1 (17) x_{i+1}=\left\{\begin{array}{rc} 2 x_i, & 0 \leq x \leq \frac{1}{2} \\ 2\left(1-x_i\right), & \frac{1}{2} \leq x \leq 1 \end{array}\right.\tag{17} xi+1={ 2xi,2(1xi),0x2121x1(17)
即经过贝努利移位变换后表达式如下:
x i + 1 = ( 2 x i )   m o d   1 (18) x_{i+1}=\left(2 x_i\right) \bmod 1 \tag{18} xi+1=(2xi)mod1(18)
Tent 混沌映射初始化种群产生序列的具体步骤如下:
Step1: 在区间 ( 0 , 1 ) (0,1) (0,1) 内随机产生初始值 x 0 x_0 x0, 记作 i = i= i= 0 ;

Step2: 根据式 (17) 进行迭代运算产生一个新的 x x x 序 列, 且 i = i + 1 i=i+1 i=i+1;

Step3: 当 i i i 达到最大迭代次数时, 则停止迭代, 且将 迭代产生的 x x x 序列保存下来。

2.2 自适应惯性权重

本文提出了新的自适应权重 的方法, 自适应惯性权重公式如下:
w = sin ⁡ ( π + t 2 t max ⁡ × π ) + ( w max ⁡ + w min ⁡ ) 2 (19) w=\sin \left(\pi+\frac{t}{2 t_{\max }} \times \pi\right)+\frac{\left(w_{\max }+w_{\min }\right)}{2} \tag{19} w=sin(π+2tmaxt×π)+2(wmax+wmin)(19)
其中, t t t 表示当前迭代数; t max  t_{\text {max }} tmax  是设置的种群最大 迭代次数; w max  w_{\text {max }} wmax  是初始惯性权重, 在文中取值为 0.92 ; ; w min  w_{\text {min }} wmin  是秃鹰种群最大迭代次数时的惯性权重, 在文中取 值为 0.4 。将惯性权重因子引入秃鹰搜索优化算法中, 在探 索阶段, 秃鹰的位置更新的表达式如下:
P i ,  new  = w × P i + x ( i ) × ( w × P i − P mean  ) + y ( i ) × ( w × P i − P i + 1 ) (20) \begin{aligned} & \boldsymbol{P}_{i, \text { new }}=\boldsymbol{w} \times \boldsymbol{P}_{\boldsymbol{i}}+\boldsymbol{x}(\boldsymbol{i}) \times\left(\boldsymbol{w} \times \boldsymbol{P}_{\boldsymbol{i}}-\boldsymbol{P}_{\text {mean }}\right)+\boldsymbol{y}(\boldsymbol{i}) \times(\boldsymbol{w} \times \\ & \left.\boldsymbol{P}_{\boldsymbol{i}}-\boldsymbol{P}_{i+1}\right) \end{aligned} \tag{20} Pi, new =w×Pi+x(i)×(w×PiPmean )+y(i)×(w×PiPi+1)(20)

2.3 柯西变异

针对秃鹰算法易陷入局部极值的缺点, 本文在原有的算 法中融入柯西变异算子, 改善算法的全局搜索能力, 扩大搜 索空间。柯西分布是一种在概率论中常见的连续型概率分布, 柯西分布在原点处的概率密度较大, 两端处的密度较小; 两 端的形状又长又扁。正因此特点可以通过融入柯西变异对秃 鹰个体产生较大的扰动, 使得算法更容易跳出局部最优值 [ 2 ] ] { }^{[2]]} [2]] 。 标准的柯西分布概率密度函数公式如下:
f ( x ) = 1 π × 1 ( x 2 + 1 ) , − ∞ < x < + ∞ (21) f(x)=\frac{1}{\pi} \times \frac{1}{\left(x^2+1\right)},-\infty<x<+\infty \tag{21} f(x)=π1×(x2+1)1,<x<+(21)
柯西分布从峰值下降至两侧时相对平缓, 且峰值相对较 小, 在变异后秃鹰种群会在搜索相邻空间时使用较少的时间, 将主要精力花费在寻找全局最优值上。使用式 (22) 对搜索空 间猎物阶段获得的全局最优值进行变异处理:
P new  ,  best  = P best  + P best  × Cauchy ⁡ ( 0 , 1 ) (22) P_{\text {new }, \text { best }}=P_{\text {best }}+P_{\text {best }} \times \operatorname{Cauchy}(\mathbf{0}, \mathbf{1})\tag{22} Pnew , best =Pbest +Pbest ×Cauchy(0,1)(22)
CBES 算法具 体实现流程如下所示:

Step1:设置并初始化算法参数, 其中包含种群的规模 N \mathrm{N} N, 最大迭代次数 t max  t_{\text {max }} tmax , 目标函数的维度以及初始值的边界 条件。

Step2: 使用 2.1 节中的 Tent 混沌映射对种群进行初始 化, 按照适应度函数求出每只秃鹰的适应度值, 对所有秃鹰 的适应度值排序, 找出当前种群的全局最优位置。

Step3:在秃鹰选择搜索阶段, 按照公式 (1) 进行位置 跟新。

Step4: 在秃鹰搜索空间猎物阶段, 按照公式 (20) 进 行位置更新。

Step5: 在俯冲阶段, 按照公式 (22) 对上一个步骤得 到的全局最优解进行柯西变异处理, 再将得到的结果按照公 式(16)进行秃鹰的位置更新。

Step6: 更新秃鹰种群的最优个体位置与适应度值, 更 新算法的迭代次数。判断算法是否满足设置的最大迭代次数 或者精度要求, 若满足, 则终止算法, 输出适应度最优值及 最优解; 若没有, 则返回 Step3 进行循环。

3.实验结果

在这里插入图片描述

4.参考文献

[1]丁容,高建瓴,张倩.融合自适应惯性权重和柯西变异的秃鹰搜索算法[J].小型微型计算机系统,2023,44(05):910-915.DOI:10.20009/j.cnki.21-1106/TP.2021-0748.

5.Matlab代码

6.python代码

猜你喜欢

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