融合多策略的改进麻雀搜索算法-附代码

融合多策略的改进麻雀搜索算法


摘要:针对麻雀搜索算法收敛速度缓慢、寻优精度不足和容易陷入局部最优等缺点,提出了一种融合正弦搜索策略和多样性变异处理策略的改进麻雀搜索算法。通过引入正弦搜索策略,自适应调整个体权重提高算法收敛速度。针对个体聚集程度过高问题,采用多样性变异处理,引入生物学中种群聚集度的概念和柯西变异对最优解进行扰动,提高算法逃离局部最优的可能。

1.麻雀优化算法

基础麻雀算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108830958

2. 改进麻雀算法

2.1 正弦搜索策略

考虑到基本 SSA 算法中仅区分为探索者或追随者两种 个体类型, 在两种类型中无论个体位置的优劣, 所有个体均 按照相同的位置更新公式进行更新, 无法根据其自身位置给 予合适的更新策略。针对这一问题, 本文引入正弦搜索策略。
正弦搜索策略可以根据个体不同位置赋予权重不同的值。在 麻雀搜索算法中引入正弦搜索策略, 可使得原本种群中适应 度较好的个体能够在原来的位置附近进行搜索, 增强算法的 局部搜索能力; 原本种群中适应度较差的个体能够远离其自 身位置进行探索, 增强算法的全局搜索能力。正弦搜索策略 公式如下。
w = w min ⁡ + ( w max ⁡ − w min ⁡ ) × ( sin ⁡ ( ( f i t − f best  t f nomst  t − f teot  t + 1 ) × π 2 + π ) + 1 ) (6) \begin{aligned} w=& w \min +(w \max -w \min ) \\ & \times\left(\sin \left(\left(\frac{f_i^t-f_{\text {best }}^t}{f_{\text {nomst }}^t-f_{\text {teot }}^t}+1\right) \times \frac{\pi}{2}+\pi\right)+1\right) \end{aligned}\tag{6} w=wmin+(wmaxwmin)×(sin((fnomst tfteot tfitfbest t+1)×2π+π)+1)(6)
其中, wmin、wmax 分别是权重变化范围的最小值和最大值, f i ′ f_i^{\prime} fi 是第 t t t 次迭代种群中第 i \mathrm{i} i 个麻雀的适应度值。 f beet  ′ f_{\text {beet }}^{\prime} fbeet  是第 t t t 次 迭代种群的最优适应度值, f norst  ′ f_{\text {norst }}^{\prime} fnorst  是第 t t t 次迭代种群的最差适应 度值。将正弦搜索策略中 w 的值应用于 SSA 算法中,ISSA 算法的探索者和追随者的更新公式可做如下描述。
X i , j t + 1 = { X i , j t ⋅ exp ⁡ ( − 1 α ⋅ i t )  if  R 2 < S T X i , j t + w ⋅ Q ⋅ L  if  R 2 ≥ S T (7) \begin{aligned} &X_{i, j}^{t+1}=\left\{\begin{array}{lll} X_{i, j}^t \cdot \exp \left(-\frac{1}{\alpha \cdot i t}\right) & \text { if } & R_2<S T \\ X_{i, j}^t+w \cdot Q \cdot L & \text { if } & R_2 \geq S T \end{array}\right.\\ \end{aligned}\tag{7} Xi,jt+1={ Xi,jtexp(αit1)Xi,jt+wQL if  if R2<STR2ST(7)

X i , j t + 1 = { Q ⋅ exp ⁡ ( X wort  − X i , j t i 2 )  if  i > n 2 X p t + 1 + w ⋅ ∣ X i , j t − X p t + 1 ∣ ⋅ A + ⋅ L  if  i ≤ n 2 A + = A T ( A A T ) − 1 (8) \begin{aligned} &X_{i, j}^{t+1}=\left\{\begin{array}{cc} Q \cdot \exp \left(\frac{X_{\text {wort }}-X_{i, j}^t}{i^2}\right) & \text { if } i>\frac{n}{2} \\ X_p^{t+1}+w \cdot\left|X_{i, j}^t-X_p^{t+1}\right| \cdot A^{+} \cdot L & \text { if } i \leq \frac{n}{2} \\ A^{+}=A^T\left(A A^T\right)^{-1} \end{array}\right.\\ \end{aligned}\tag{8} Xi,jt+1= Qexp(i2Xwort Xi,jt)Xpt+1+w Xi,jtXpt+1 A+LA+=AT(AAT)1 if i>2n if i2n(8)

X i , j t + 1 = { X best  t + w ⋅ β ∣ X i , j t − X best  t ∣  if  f i > f g X i , j t + w ⋅ K ∣ X i , j t − X best  t ∣ ( f i − f w ) + ε  if  f i = f g (9) \begin{aligned} &X_{i, j}^{t+1}= \begin{cases}X_{\text {best }}^t+w \cdot \beta\left|X_{i, j}^t-X_{\text {best }}^t\right| & \text { if } f_i>f_g \\ X_{i, j}^t+w \cdot K \frac{\left|X_{i, j}^t-X_{\text {best }}^t\right|}{\left(f_i-f_w\right)+\varepsilon} & \text { if } f_i=f_g\end{cases} \end{aligned}\tag{9} Xi,jt+1={ Xbest t+wβ Xi,jtXbest t Xi,jt+wK(fifw)+εXi,jtXbest t if fi>fg if fi=fg(9)

2.2 多样性变异处理

算法在迭代收敛过程中, 个体极易大规模聚集于某一位 置, 造成算法的种群多样性降低并陷入局部最优。为了克服 这一问题, 引入了生物学中表示种群聚集度的指标 A [ 15 ] A^{[15]} A[15],
A = δ − x ˉ x ˉ 2 (10) A=\frac{\delta-\bar{x}}{\bar{x}^2} \tag{10} A=xˉ2δxˉ(10)
其中, δ \delta δ 表示麻雀种群适应度的方差, x ˉ \bar{x} xˉ 表示麻雀种群适应度 的均值。当 A ≫ > 0 \mathrm{A} \gg>0 A≫>0 时, 种群表现出聚集状态; 当 A \mathrm{A} A 趋近于 0 时, 种群表现出随机状态。为了避免聚集状态在迭代的初期出现, 采用柯西变异对种群进行处理。
t ≤ i t 2 t \leq \frac{i t}{2} t2it 时, 且当 A A A 值大于预设阈值时, 使用式(11)对全局 最优解进行变异处理。
X = X best  + X best  ⋅ Cauchy ⁡ ( 0 , 0.5 ) (11) X=X_{\text {best }}+X_{\text {best }} \cdot \operatorname{Cauchy}(0,0.5) \tag{11} X=Xbest +Xbest Cauchy(0,0.5)(11)

请添加图片描述

3.实验结果

请添加图片描述

4.参考文献

[1]张晓萌,张艳珠,刘禄,张硕,熊夫睿.融合多策略的改进麻雀搜索算法[J/OL].计算机应用研究:1-8[2021-12-17].https://doi.org/10.19734/j.issn.1001-3695.2021.09.0412.

5.Matlab代码

6.Python代码

猜你喜欢

转载自blog.csdn.net/u011835903/article/details/127291563
今日推荐