基于Circle映射和逐维交叉变异的自适应麻雀算法

一、理论基础

1、原始麻雀算法(SSA)

请参考这里

2、改进麻雀算法(ACLSSA)

(1)Circle映射对麻雀种群进行初始化

请参考这里
将随机方式和Circle映射归一化处理,在 [ 0 , 1 ] [0,1] [0,1]区间内生成粒子如图1所示。从图1可以看出(b)中利用Circle映射粒子分布比(a)中随机分布更加均匀,避免出现在最优解附近麻雀种群较少的情况。
在这里插入图片描述

(a)随机方式

在这里插入图片描述

(b)Circle映射
图1 初始化粒子图

(2)基于余弦变化的自适应学习策略

为了更好的平衡局部开发和全局搜索之间的关系,本文引入基于余弦变化的惯性权重因子来更新麻雀的位置,表达式为: ω ( t ) = ( ω min ⁡ + ω max ⁡ ) / 2 + ( ω max ⁡ − ω min ⁡ ) ⋅ cos ⁡ ( π ⋅ t T ) / 2 (1) \omega(t)=(\omega_{\min}+\omega_{\max})/2+(\omega_{\max}-\omega_{\min})\cdot\cos(\pi\cdot\frac{t}{T})/2\tag{1} ω(t)=(ωmin+ωmax)/2+(ωmaxωmin)cos(πTt)/2(1)其中, ω max ⁡ \omega_{\max} ωmax为初始时惯性权重; ω min ⁡ \omega_{\min} ωmin为结束时的惯性权重; t t t T T T分别为当前和最大迭代次数。
对发现者和加入者引入惯性因子自学习策略: X i , j t + 1 = { X i , j t ⋅ exp ⁡ ( − i ∂ ⋅ C i t e r max ⁡ ) R 2 < S T ω ⋅ X i , j t + C Q L R 2 ≥ S T (2) X_{i,j}^{t+1}=\begin{dcases}X_{i,j}^t\cdot\exp\left(-\frac{i}{\partial\cdot C_{iter}^{\max}}\right)\quad R_2<ST\\\omega\cdot X_{i,j}^t+C_Q\boldsymbol L\quad\quad\quad\quad\quad R_2≥ST\end{dcases}\tag{2} Xi,jt+1=Xi,jtexp(Citermaxi)R2<STωXi,jt+CQLR2ST(2) X i , j t + 1 = { C Q ⋅ exp ⁡ ( X worst − X i , j t i 2 )      i > n / 2 ω X p t + 1 + ∣ X i , j t − X p t + 1 ∣ A T ( A A T ) L i ≤ n / 2 (3) X_{i,j}^{t+1}=\begin{dcases}C_Q\cdot\exp\left(\frac{X_{\text{worst}}-X_{i,j}^t}{i^2}\right)\quad\quad\quad\quad\,\,\,\, i>n/2\\\omega X_p^{t+1}+|X_{i,j}^{t}-X_p^{t+1}|\boldsymbol A^T(\boldsymbol {AA}^T)\boldsymbol L\quad i≤n/2\end{dcases}\tag{3} Xi,jt+1=CQexp(i2XworstXi,jt)i>n/2ωXpt+1+Xi,jtXpt+1AT(AAT)Lin/2(3)其中, C i t e r max ⁡ C_{iter}^{\max} Citermax为常数,表示最大迭代次数; R 2 R_2 R2为预警值; S T ST ST为安全值; C Q C_Q CQ为服从正态分布的随机数; L \boldsymbol L L 1 × d 1×d 1×d矩阵,且元素全为1; A \boldsymbol A A 1 × d 1×d 1×d矩阵,其中元素随机赋值1或-1。

(3)Levy飞行改进

通过Levy飞行路径对发现者位置更新公式再次改进,表达式如下: X i , j t + 1 = { X i , j t ⋅ exp ⁡ ( − i ∂ ⋅ C i t e r max ⁡ )     R 2 < S T ω ⋅ X i , j t + L e v y ( d ) ⊕ ( X i , j t − X best t ) R 2 ≥ S T (4) X_{i,j}^{t+1}=\begin{dcases}X_{i,j}^t\cdot\exp\left(-\frac{i}{\partial\cdot C_{iter}^{\max}}\right)\quad\quad\quad\quad\quad\,\,\, R_2<ST\\\omega\cdot X_{i,j}^t+Levy(d)\oplus (X_{i,j}^t-X_{\text{best}}^t)\quad R_2≥ST\end{dcases}\tag{4} Xi,jt+1=Xi,jtexp(Citermaxi)R2<STωXi,jt+Levy(d)(Xi,jtXbestt)R2ST(4)

(4)对最优麻雀进行逐维交叉变异

在最优麻雀处实行逐维交叉变异,变异方式如下: X best evo = { X best ori + X r 1 − X r 2 2 + X r 3 − X r 4 2 r a n d ≥ 0.5 X best ori      r a n d < 0.5 (5) X_{\text{best}}^{\text{evo}}=\begin{dcases}X_{\text{best}}^{\text{ori}}+\frac{X_{r_1}-X_{r_2}}{2}+\frac{X_{r_3}-X_{r_4}}{2}\quad rand≥0.5\\X_{\text{best}}^{\text{ori}}\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\,\,\,\, rand<0.5\end{dcases}\tag{5} Xbestevo=Xbestori+2Xr1Xr2+2Xr3Xr4rand0.5Xbestorirand<0.5(5)其中, X best evo X_{\text{best}}^{\text{evo}} Xbestevo X best ori X_{\text{best}}^{\text{ori}} Xbestori分别为变异后和原始最优麻雀; X r 1 X_{r_1} Xr1 X r 2 X_{r_2} Xr2 X r 3 X_{r_3} Xr3 X r 4 X_{r_4} Xr4均为 [ l b , u b ] [lb,ub] [lb,ub]区间内随机值。变异后如果结果更好则替换最优麻雀,否则保留原始最优麻雀。
改进麻雀算法流程见图2。
在这里插入图片描述

图2 改进麻雀算法流程图

二、仿真实验与结果分析

以Sphere、Schwefel’s 2.22、Schwefel’s 1.2、Rosenbrock’s、Rastrigin、Ackley、Griewank为例,自变量取值范围分别为 [ − 100 , 100 ] [-100,100] [100,100] [ − 10 , 10 ] [-10,10] [10,10] [ − 100 , 100 ] [-100,100] [100,100] [ − 100 , 100 ] [-100,100] [100,100] [ − 5.12 , 5.12 ] [-5.12,5.12] [5.12,5.12] [ − 32 , 32 ] [-32,32] [32,32] [ − 600 , 600 ] [-600,600] [600,600],维度均为30维,分别命名为F1~F7。比较ACLSSA(本文改进麻雀算法)与3种基本算法SSA、GWO和MFO,种群规模为30,最大迭代次数为500,每个算法独立运行30次。
结果显示如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数:F1
GWO:最优值: 8.6927e-30,最差值:8.0974e-27,平均值:9.538e-28,标准差:1.5669e-27
MFO:最优值: 0.32661,最差值:20001.8149,平均值:2014.1977,标准差:4837.5395
SSA:最优值: 0,最差值:7.7283e-75,平均值:2.5765e-76,标准差:1.411e-75
ACLSSA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F2
GWO:最优值: 1.1392e-17,最差值:2.1189e-16,平均值:8.4799e-17,标准差:5.5989e-17
MFO:最优值: 0.75428,最差值:80.0063,平均值:32.1467,标准差:17.4051
SSA:最优值: 0,最差值:3.1761e-35,平均值:1.1048e-36,标准差:5.7925e-36
ACLSSA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F3
GWO:最优值: 1.3822e-08,最差值:4.6416e-05,平均值:5.497e-06,标准差:1.0786e-05
MFO:最优值: 9271.5407,最差值:43793.6115,平均值:22587.8834,标准差:9746.1805
SSA:最优值: 0,最差值:5.1279e-55,平均值:1.7106e-56,标准差:9.362e-56
ACLSSA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F4
GWO:最优值: 26.0306,最差值:28.5653,平均值:27.1899,标准差:0.60176
MFO:最优值: 2381.7061,最差值:2478403.8834,平均值:256351.704,标准差:545579.6209
SSA:最优值: 2.4415e-09,最差值:0.0010219,平均值:0.0001532,标准差:0.00024191
ACLSSA:最优值: 1.6713e-07,最差值:0.002004,平均值:0.00030304,标准差:0.00049097
函数:F5
GWO:最优值: 0,最差值:12.8933,平均值:2.5737,标准差:3.5155
MFO:最优值: 49.8051,最差值:231.9736,平均值:152.7144,标准差:43.2597
SSA:最优值: 0,最差值:0,平均值:0,标准差:0
ACLSSA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F6
GWO:最优值: 7.1942e-14,最差值:1.4655e-13,平均值:1.0948e-13,标准差:1.7017e-14
MFO:最优值: 1.4072,最差值:19.9615,平均值:14.3764,标准差:7.1435
SSA:最优值: 8.8818e-16,最差值:8.8818e-16,平均值:8.8818e-16,标准差:0
ACLSSA:最优值: 8.8818e-16,最差值:8.8818e-16,平均值:8.8818e-16,标准差:0
函数:F7
GWO:最优值: 0,最差值:0.03643,平均值:0.0070352,标准差:0.010732
MFO:最优值: 0.54153,最差值:91.0252,平均值:6.9758,标准差:22.8265
SSA:最优值: 0,最差值:0,平均值:0,标准差:0
ACLSSA:最优值: 0,最差值:0,平均值:0,标准差:0

结果表明,ACLSSA与其余3种算法相比,收敛速度更快,并且精度更高,从而全局寻优能力得到较大提升。

三、参考文献

[1] 刘翕铭, 于永进, 杨洋. 基于改进麻雀算法的园区综合能源系统优化研究[J]. 智慧电力, 2021, 49(6): 9-16.

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心️升明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值