赞
踩
基础乌鸦搜索算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108800505
在乌鸦算法中,乌鸦 (
i
i
i) 以随机方式跟踪某一乌鸦 (
j
j
j) 进行位置更新,这样的更新方式可以在迭代的前期 保持种群较好的多样性,但是也会使算法的盲目性较 大,收敛速度变缓,无法在较短时间收敛到最优值。 1995 年 Kennedy 学者提出了粒子群算法(PSO), 通过群体内个体之间的信息共享来对问题的解进行协 同搜索,即粒子的飞行速度不仅参考自身历史最优位 置,也会参考群体中最优粒子的位置进行动态调整,这 使算法具有收敛速度快的特点。因此为了增强算法的 领导能力,在乌鸦搜索算法的位置更新部分引入粒子群 算法中向最优粒子学习的思想,使乌鸦种群共享出环境 中最优的藏食位置,即在随机跟随某一个体的同时也参 考种群中最优藏食位置来进行自身更新。乌鸦种群在 最优藏食位置的领导下,算法大大地提高了收敛速度。 新的位置更新公式如下:
s
m
=
r
i
×
s
×
(
m
gbest
,
iter
−
x
i
,
iter
)
s m=r_{i} \times s \times\left(m^{\text {gbest }, \text { iter }}-x^{i, \text { iter }}\right)
sm=ri×s×(mgbest , iter −xi, iter )
x i , iter + 1 = x i , iter + r i × f l × ( m j , iter − x i , iter ) + s m x^{i, \text { iter }+1}=x^{i, \text { iter }}+r_{i} \times f l \times\left(m^{j, \text { iter }}-x^{i, \text { iter }}\right)+s m xi, iter +1=xi, iter +ri×fl×(mj, iter −xi, iter )+sm
其中, s m sm sm 表示共享机制的公式, m g b e s t , i t e r m^{gbest,iter} mgbest,iter 表示全局最优 藏食位置; s s s 表示共享因子,决定了最优藏食位置对当 前乌鸦位置影响程度。改进后,乌鸦 i i i每一次移动都会 离最优位置进一步,有效提高算法的收敛速度。
CSA是一种非贪婪型算法,即当前解如果不优于上 一代则不会被保留。因此,乌鸦搜索算法到了迭代后期 极易陷入局部最优。特别是在应用于较复杂的多峰函 数中时,收敛过早且精度低下的缺点更为明显。对此本文引入赵新超等提出的多段扰动策略用于更新最优藏食位置
m
g
b
e
s
t
,
i
t
e
r
m^{gbest,iter}
mgbest,iter, 即对全局最优藏食位置根据方差可调的正态随机分布 进行扰动得到新的全局最优藏食位置
m
g
b
e
s
t
′
,
i
t
e
r
m^{gbest',iter}
mgbest′,iter ,速度更 新公式如下:
m
gbest’, iter
=
N
(
m
gbest
,
iter
,
δ
)
m^{\text {gbest', iter }}=N\left(m^{\text {gbest }, \text { iter }}, \delta\right)
mgbest’, iter =N(mgbest , iter ,δ)
其中 δ 表示正态随机分布的方差, δ 的更新方式如下:
δ
=
{
δ
1
,
α
1
T
<
t
<
α
2
T
δ
2
,
t
>
α
2
T
\delta=\left\{
其中,
δ
δ
δ 表示正态扰动的半径参数且
δ
1
>
δ
2
δ_1 >δ _2
δ1>δ2 ;
α
1
,
α
2
α_1 ,α_2
α1,α2 是半径变化的控制参数,且
α
1
<
α
2
α_1 <α_2
α1<α2 ;
t
t
t 是当前函数值计算次数,
T
T
T是最大函数计算次数。在迭代早期
δ
1
δ_1
δ1 取值较大,群体会向全局最优藏食位置较大的邻域内搜索;在迭代后期干扰半径
δ
2
δ_2
δ2 取值较小,则在全局最优藏食位置较小的邻域进行搜索,使得当前解几乎不再从较优区域跳出保证算法群体仅向全局最优解学习,从而保证算法具有较好的收敛性。
[1]辛梓芸,张达敏,陈忠云,张绘娟,闫威.多段扰动的共享型乌鸦算法[J].计算机工程与应用,2020,56(02):55-61.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。