基础麻雀算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108830958
基本 SSA 算法中,在 R 2
X i , j t + 1 = { ( 1 − ω ) ⋅ X i , j t + ω ⋅ sin ( r 1 ) ⋅ ∣ r 2 ⋅ X b e t t − X i , j t ∣ R 2 < S T ( 1 − ω ) ⋅ X i , j t + ω ⋅ cos ( r 1 ) ⋅ ∣ r 2 ⋅ X b e t t − X i , j t ∣ R 2 ⩾ S T (8) X_{i, j}^{t+1}= \begin{cases}(1-\omega) \cdot X_{i, j}^{t}+\omega \cdot \sin \left(r_{1}\right) \cdot\left|r_{2} \cdot X_{b e t t}-X_{i, j}^{t}\right| & R_{2}Xi,jt+1={(1−ω)⋅Xi,jt+ω⋅sin(r1)⋅∣ ∣r2⋅Xbett−Xi,jt∣ ∣(1−ω)⋅Xi,jt+ω⋅cos(r1)⋅∣ ∣r2⋅Xbett−Xi,jt∣ ∣R2<STR2⩾ST(8)
式 (8) 中, r 1 r_{1} r1 为 [ 0 , 2 π ] [0,2 \pi] [0,2π] 内的随机数, r 2 r_{2} r2 是 [ 0 , 2 ] [0,2] [0,2] 内的随机数。
当发现者迭代一定次数且适应度值不变时, 此 时跟随者成了发现者, 为避免算法陷人局部最优, 在跟随者更新公式中引人 Lévy飞行策略, 提高全局 搜索能力。改进后的公式如下:
X i , j t + 1 = { Q ⋅ exp ( X worst t − X i , j t i 2 ) i > n 2 X p t + 1 + X p t + 1 ⊗ Levy ( d ) other (9) X_{i, j}^{t+1}=\left\{\begin{array}{cc} Q \cdot \exp \left(\frac{X_{\text {worst }}^{t}-X_{i, j}^{t}}{i^{2}}\right) & i>\frac{n}{2} \\ X_{p}^{t+1}+X_{p}^{t+1} \otimes \operatorname{Levy}(d) & \text { other } \end{array}\right.\tag{9} Xi,jt+1={Q⋅exp(i2Xworst t−Xi,jt)Xpt+1+Xpt+1⊗Levy(d)i>2n other (9)
式 (9)中, X p t + 1 X_{p}^{t+1} Xpt+1 是当前发现者占领的最佳位置, Lévy飞行机制如下:
Levy ( x ) = 0.01 × r 3 × σ ∣ r 4 ∣ 1 / ξ ) (10) \operatorname{Levy}(x)=0.01 \times \frac{r_{3} \times \sigma}{\left|r_{4}\right|^{1 / \xi)}}\tag{10} Levy(x)=0.01×∣r4∣1/ξ)r3×σ(10)
式 (10) 中 r 3 、 r 4 r_{3} 、 r_{4} r3、r4 均为 [ 0 , 1 ] [0,1] [0,1] 范围内的随机数, ξ \xi ξ 的值可取 1. 5, σ 计算方式如下:
σ = ( Γ ( 1 + ξ ) × sin ( π ξ / 2 ) Γ ( ( 1 + ξ ) / 2 ) × ξ × 2 ( ( ξ − 1 ) / 2 ) ) ( 1 / ξ ) (11) \sigma=\left(\frac{\Gamma(1+\xi) \times \sin (\pi \xi / 2)}{\Gamma((1+\xi) / 2) \times \xi \times 2^{((\xi-1) / 2)}}\right)^{(1 / \xi)} \tag{11} σ=(Γ((1+ξ)/2)×ξ×2((ξ−1)/2)Γ(1+ξ)×sin(πξ/2))(1/ξ)(11)
式 (11) 中 Γ ( x ) = ( x − 1 ) \Gamma(x)=(x-1) Γ(x)=(x−1) !
混合正弦余弦算法和 Lévy 飞行的麻雀算法步骤流程图如下:
[1]毛清华,张强,毛承成,柏嘉旋.混合正弦余弦算法和Lévy飞行的麻雀算法[J/OL].山西大学学报(自然科学版):1-6[2021-04-09].https://doi.org/10.13451/j.sxu.ns.2020135.