融合自适应惯性权重和柯西变异的秃鹰搜索算法(CBES)
文章目录
- 融合自适应惯性权重和柯西变异的秃鹰搜索算法(CBES)
- 1.秃鹰优化算法
- 2.改进秃鹰优化算法
- 2.1 Tent 映射
- 2.2 自适应惯性权重
- 2.3 柯西变异
- 3.实验结果
- 4.参考文献
- 5.Matlab代码
- 6.python代码
摘要:针对基本秃鹰搜索算法存在收敛速度慢、易陷入局部最优的缺点,提出了一种融合自适应惯性权重和柯西变异的秃鹰搜索算法(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(1−xi),0≤x≤2121≤x≤1(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×Pi−Pmean )+y(i)×(w×Pi−Pi+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.