2024年TETCI SCI2区:增强差分进化麻雀搜索算法DSSADE,深度解析+性能实测
目录
- 1.摘要
- 2.麻雀搜索算法SSA原理
- 3.改进策略
- 4.结果展示
- 5.参考文献
- 6.代码获取
1.摘要
麻雀搜索算法(SSA)是近年来提出的一种新型群体智能优化方法,因其控制参数少且实现简便,迅速成为一种高效且受欢迎的优化方法。尽管SSA在解决问题时准确性较高且收敛速度快,但其在应对复杂优化问题时表现不佳,且在探索与开发能力之间存在不平衡。本文提出了一种改进差分进化算子的动态双因子麻雀搜索算法(DSSADE),DSSADE算法通过引入动态双因子模式,平衡了全局与局部搜索能力,并加速了收敛过程。此外,设计了一种容忍机制来评估算法趋向局部最优解的风险,并嵌入了改进的差分进化算子(EDE),增强了SSA逃脱局部最优解的能力。
2.麻雀搜索算法SSA原理
【智能算法】麻雀搜索算法(SSA)原理及实现
3.改进策略
Dynamic Two-Factor Mode
惯性权重因子:当生产者附近没有邻近的麻雀时,它们会采取随机搜索策略。这种策略不仅降低了收敛速度,还严重影响了平衡能力。为进一步提升生产者的性能,本文引入了自适应惯性权重:
ω 1 = 0.5 ∗ r a n d ∗ ( 1 + c o s ( π ⋅ t T max ) ) \omega_1=0.5*rand*\left(1+cos(\pi\cdot\frac{t}{T_{\max}})\right) ω1=0.5∗rand∗(1+cos(π⋅Tmaxt))
X i , j t + 1 = { X i , j t ⋅ exp ( − i ω 1 ⋅ I t e r m a x ) if R 2 < S T X i , j t + Q ⋅ L if R 2 ≥ S T X^{t+1}_{i,j} = \begin{cases} X^{t}_{i,j} \cdot \exp\left(\frac{-i}{\omega_1 \cdot Iter_{max}}\right) & \text{if } R_2 < ST \\ X^{t}_{i,j} + Q \cdot L & \text{if } R_2 \geq ST \end{cases} Xi,jt+1={Xi,jt⋅exp(ω1⋅Itermax−i)Xi,jt+Q⋅Lif R2<STif R2≥ST
外部扰动因子:在觅食过程中,跟随者通常会在生产者周围活动。然而,当生产者陷入局部最优解时,跟随者往往会大范围地跟随它。为了避免跟随者陷入相同困境,本文引入了外部扰动因子,用于适当调整跟随者的更新位置:
ω 2 = { Cauchy ( 0 , 1 ) = tan [ ( δ − 1 2 ) ⋅ π ] t < 0.9 ⋅ T m a x Gaussian ( 0 , 1 ) + 1 other \omega_2 = \begin{cases} \text{Cauchy}(0,1) = \tan\left[\left(\delta - \frac{1}{2}\right) \cdot \pi\right] & t < 0.9 \cdot T_{max} \\ \text{Gaussian}(0,1) + 1 & \text{other} \end{cases} ω2={Cauchy(0,1)=tan[(δ−21)⋅π]Gaussian(0,1)+1t<0.9⋅Tmaxother
X i , j t + 1 = { Q ⋅ exp ( X w o r s t t − X i , j t i 2 ) ⋅ ∣ ∣ X i , j t − X p t + 1 ∣ ⋅ A + ⋅ L if i > n 2 other otherwise X^{t+1}_{i,j} = \begin{cases} Q \cdot \exp\left(\frac{X^{t}_{worst} - X^{t}_{i,j}}{i^2}\right) \cdot |\left|X^{t}_{i,j} - X^{t+1}_{p}\right| \cdot A^+ \cdot L & \text{if } i > \frac{n}{2} \\ \text{other} & \text{otherwise} \end{cases} Xi,jt+1={Q⋅exp(i2Xworstt−Xi,jt)⋅∣ Xi,jt−Xpt+1 ⋅A+⋅Lotherif i>2notherwise
Tolerance Mechanism
如果最优个体的位置在几次迭代中保持不变,那么算法就有可能达到局部最优,我们通过引入参数r作为容限水平来评估这个概率。
r = { r if X b e s t , t ≠ X b e s t , t + 1 r + 1 if X b e s t , t = X b e s t , t + 1 r = \begin{cases} r & \text{if } X_{best,t} \neq X_{best,t+1} \\ r + 1 & \text{if } X_{best,t} = X_{best,t+1} \end{cases} r={rr+1if Xbest,t=Xbest,t+1if Xbest,t=Xbest,t+1
EDE Operator
EDE采用的变异策略current-to-pbest:
V i , t = X i , t + F i ⋅ ( X p b e s t . t − X i . t ) + F i ⋅ ( X r 1 , t − X r 2 , t ) V_{i,t}=X_{i,t}+F_{i}\cdot(X_{pbest.t}-X_{i.t})+F_{i}\cdot(X_{r_{1},t}-X_{r_{2},t}) Vi,t=Xi,t+Fi⋅(Xpbest.t−Xi.t)+Fi⋅(Xr1,t−Xr2,t)
边界约束:
$$
v_{i,j,t} =
\begin{cases}
\frac{x^{min}j + x{i,j,t}}{2} & \text{if } v_{i,j,t} < x^{min}j \
\frac{x^{max}j + x{i,j,t}}{2} & \text{if } v{i,j,t} > x^{max}_j
\end{cases}
$$
参数自适应:每个 X i X_i Xi与其各自的 C R i CR_i CRi和 F i F_i Fi相关联,用于产生试验向量:
F i = r a n d n i ( μ F , 0.1 ) C R i = r a n d c i ( μ C R , 0.1 ) \begin{array} {cc}F_i=randn_i(\mu_F,0.1) & CR_i=randc_i(\mu_{CR},0.1) \end{array} Fi=randni(μF,0.1)CRi=randci(μCR,0.1)
在搜索过程中进行更新:
μ F = ( 1 − c ) ⋅ μ F + m e a n L ( S F ) \mu_F=(1-c)\cdot\mu_F+mean_L(S_F) μF=(1−c)⋅μF+meanL(SF)
μ C R = ( 1 − c ) ⋅ μ C R + m e a n A ( S C R ) \mu_{CR}=(1-c)\cdot\mu_{CR}+mean_{A}(S_{CR}) μCR=(1−c)⋅μCR+meanA(SCR)
伪代码
4.结果展示
5.参考文献
[1] Liu Z, Hu C, Xiang T, et al. A Novel Sparrow Search Scheme Based on Enhanced Differential Evolution Operator[J]. IEEE Transactions on Emerging Topics in Computational Intelligence, 2024.