文章目录
- 一、理论基础
- 1、麻雀搜索算法
- 2、改进麻雀搜索算法
- 2.1 猫映射混沌初始化种群
- 2.2 Tent混沌和柯西变异扰动策略
- 2.2.1 Tent混沌扰动
- 2.2.2 柯西变异
- 2.3 改进探索者位置更新公式
- 2.4 探索者-跟随者自适应调整策略
- 2.5 改进后麻雀搜索算法
- 二、仿真实验与分析
- 三、参考文献
一、理论基础
1、麻雀搜索算法
请参考这里。
2、改进麻雀搜索算法
2.1 猫映射混沌初始化种群
针对Logistic映射和Tent映射的缺点,本文通过猫映射来生成改进算法的初始种群。猫映射表达式为: [ y i + 1 w i + 1 ] = [ 1 a 1 b 1 a 1 b 1 + 1 ] [ y i w i ] mod 1 (1) \begin{bmatrix}y_{i+1}\\w_{i+1}\end{bmatrix}=\begin{bmatrix}1&a_1\\b_1&a_1b_1+1\end{bmatrix}\begin{bmatrix}y_i\\w_i\end{bmatrix}\text{mod}\,\,1\tag{1} [yi+1wi+1]=[1b1a1a1b1+1][yiwi]mod1(1)其中, a 1 = b 1 = 1 a_1=b_1=1 a1=b1=1; mod 1 \text{mod}\,\,1 mod1表示求 a 1 a_1 a1小数部分。由于猫映射结构简单,不易陷入小循环周期和不动点,通过该映射产生初始种群具有更好的遍历均匀性。
2.2 Tent混沌和柯西变异扰动策略
2.2.1 Tent混沌扰动
Tent混沌映射存在小周期和不稳定周期点,为避免落入小周期点和不稳定周期点,在原有的Tent映射表达式上引入随机变量 rand ( 0 , 1 ) × 1 N \text{rand}(0,1)×\frac1N rand(0,1)×N1,改进后的Tent混沌映射表达式如下: z i + 1 = { 2 z i + rand ( 0 , 1 ) × 1 N , 0 ≤ z i ≤ 1 2 2 ( 1 − z i ) + rand ( 0 , 1 ) × 1 N , 1 2 < z i ≤ 1 (2) z_{i+1}=\begin{dcases}2z_i+\text{rand}(0,1)×\frac1N,\quad\quad\quad\,\,\,\, 0≤z_i≤\frac12\\2(1-z_i)+\text{rand}(0,1)×\frac1N,\quad\, \frac12<z_i≤1\end{dcases}\tag{2} zi+1=⎩ ⎨ ⎧2zi+rand(0,1)×N1,0≤zi≤212(1−zi)+rand(0,1)×N1,21<zi≤1(2)贝努利移位变换后的表达式为: z i + 1 = ( 2 z i ) mod 1 + rand ( 0 , 1 ) × 1 N (3) z_{i+1}=(2z_i)\text{mod}\,1+\text{rand}(0,1)×\frac1N\tag{3} zi+1=(2zi)mod1+rand(0,1)×N1(3)其中, N N N为序列内粒子个数。
2.2.2 柯西变异
柯西变异来源于连续型概率分布的柯西分布,主要特点为零处峰值较小,从峰值到零值下降缓慢,使变异范围更均匀。变异公式为: m u t a t i o n ( x ) = x ( 1 + tan ( π ( u − 0.5 ) ) ) (4) mutation(x)=x(1+\tan(\pi(u-0.5)))\tag{4} mutation(x)=x(1+tan(π(u−0.5)))(4)其中, x x x为原来个体位置, m u t a t i o n ( x ) mutation(x) mutation(x)为经过柯西变异后的个体位置, u u u为 ( 0 , 1 ) (0,1) (0,1)区间内的随机数。
2.3 改进探索者位置更新公式
由于 exp ( − i α ⋅ i t e r max ) \exp\left(\frac{-i}{\alpha\cdot iter_{\max}}\right) exp(α⋅itermax−i)值的微小改变对探索者的影响较大,因此本文在此基础上,将探索者更新公式改为: x i , d t + 1 = { x i , d t ⋅ 2 exp ( 4 i α ⋅ i t e r max ) m , R 2 < S T x i , d t + Q × L , R 2 ≥ S T (5) x_{i,d}^{t+1}=\begin{dcases}x_{i,d}^t\cdot\frac{2}{\exp\left(\frac{4i}{\alpha\cdot iter_{\max}}\right)^m},\quad R_2<ST\\x_{i,d}^t+\boldsymbol Q×\boldsymbol L,\quad\quad\quad\quad\,\,\, R_2≥ST\end{dcases}\tag{5} xi,dt+1=⎩ ⎨ ⎧xi,dt⋅exp(α⋅itermax4i)m2,R2<STxi,dt+Q×L,R2≥ST(5)令 c = 2 exp ( 4 i α ⋅ i t e r max ) m c=\frac{2}{\exp\left(\frac{4i}{\alpha\cdot iter_{\max}}\right)^m} c=exp(α⋅itermax4i)m2,选取 m m m从1到4之间分析参数 m m m对探索者性能的影响,如图1所示。
m m m值的选取影响着麻雀探索者对于全局和局部搜索之间的平衡关系。从图1可以看出,每条曲线都是前期收敛速度快,后期收敛速度慢,由文献[1]的分析可知,取 m = 2 m=2 m=2,参数 c c c可以使改进算法的探索能力和觅食能力达到较好的平衡,此时探索者可在前期充分广泛搜索目标,后期着重对最优位置进行挖掘。
2.4 探索者-跟随者自适应调整策略
本文提出探索者-跟随者自适应调整策略,该策略在迭代前期,探索者可以占种群数目的多数,随着迭代次数的增加,探索者的数目自适应减少,跟随者的数目自适应增加,逐步从全局搜索转为局部精确搜索,从整体上提高算法的收敛精度。探索者和跟随者数目调整公式为: r = b ( tan ( − π t 4 ⋅ i t e r max + π 4 ) − k ⋅ rand ( 0 , 1 ) ) (6) r=b(\tan(-\frac{\pi t}{4\cdot iter_{\max}}+\frac\pi4)-k\cdot\text{rand}(0,1))\tag{6} r=b(tan(−4⋅itermaxπt+4π)−k⋅rand(0,1))(6) p N u m = r ⋅ N (7) pNum=r\cdot N\tag{7} pNum=r⋅N(7) s N u m = ( 1 − r ) ⋅ N (8) sNum=(1-r)\cdot N\tag{8} sNum=(1−r)⋅N(8)其中, p N u m pNum pNum为探索者数目, s N u m sNum sNum为跟随者数目; b b b为比例系数,用于控制探索者和跟随者之间的数目,本文取值为1; k k k为扰动偏离因子,对非线性递减的 r r r值进行扰动,本文取值为0.2。
2.5 改进后麻雀搜索算法
AMSSA算法流程图如下:
二、仿真实验与分析
为验证本文所改进算法的寻优能力及可行性,将AMSSA与PSO、GWO、WOA、SSA算法同时在部分基准函数上进行对比测试,以文献[1]中表2的f1、f2(单峰函数/30维)、f9、f10(多峰函数/30维)、f13、f14(固定维度多峰函数/6维、4维)为例。为了避免偶然误差过大,在实验中选取各基准函数独立运行40次,取最佳值、平均值和标准差作为评价指标,实验中设定种群规模为30,最大迭代次数为500。
结果显示如下:
函数:F1
PSO:最大值: 2394.9371,最小值:761.4281,平均值:1436.7306,标准差:395.3435
GWO:最大值: 3.186e-27,最小值:1.9119e-29,平均值:8.3043e-28,标准差:7.8847e-28
WOA:最大值: 4.7117e-70,最小值:5.666e-85,平均值:1.1785e-71,标准差:7.4498e-71
SSA:最大值: 1.0801e-53,最小值:0,平均值:2.7002e-55,标准差:1.7078e-54
AMSSA:最大值: 0,最小值:0,平均值:0,标准差:0
函数:F2
PSO:最大值: 35.2167,最小值:17.1769,平均值:26.9807,标准差:4.2543
GWO:最大值: 2.8915e-16,最小值:2.6267e-17,平均值:1.1027e-16,标准差:6.7414e-17
WOA:最大值: 7.6953e-49,最小值:7.0577e-57,平均值:3.5303e-50,标准差:1.3891e-49
SSA:最大值: 6.2909e-37,最小值:1.4022e-161,平均值:2.3898e-38,标准差:1.0325e-37
AMSSA:最大值: 0,最小值:0,平均值:0,标准差:0
函数:F9
PSO:最大值: 11.9577,最小值:7.3331,平均值:8.9889,标准差:0.83767
GWO:最大值: 1.5721e-13,最小值:6.4837e-14,平均值:1.0543e-13,标准差:1.949e-14
WOA:最大值: 7.9936e-15,最小值:8.8818e-16,平均值:4.5297e-15,标准差:2.4781e-15
SSA:最大值: 8.8818e-16,最小值:8.8818e-16,平均值:8.8818e-16,标准差:0
AMSSA:最大值: 8.8818e-16,最小值:8.8818e-16,平均值:8.8818e-16,标准差:0
函数:F10
PSO:最大值: 28.3564,最小值:6.7043,平均值:16.3545,标准差:5.2621
GWO:最大值: 0.030659,最小值:0,平均值:0.003812,标准差:0.007937
WOA:最大值: 0.18347,最小值:0,平均值:0.006929,标准差:0.032232
SSA:最大值: 0,最小值:0,平均值:0,标准差:0
AMSSA:最大值: 0,最小值:0,平均值:0,标准差:0
函数:F13
PSO:最大值: -2.8735,最小值:-3.3218,平均值:-3.1643,标准差:0.10617
GWO:最大值: -3.0406,最小值:-3.322,平均值:-3.2367,标准差:0.089385
WOA:最大值: -2.8335,最小值:-3.3218,平均值:-3.2046,标准差:0.13641
SSA:最大值: -3.2031,最小值:-3.322,平均值:-3.2655,标准差:0.060129
AMSSA:最大值: -3.2031,最小值:-3.322,平均值:-3.2477,标准差:0.058292
函数:F14
PSO:最大值: -2.625,最小值:-10.1532,平均值:-5.3019,标准差:3.4499
GWO:最大值: -4.8746,最小值:-10.1527,平均值:-9.512,标准差:1.7133
WOA:最大值: -2.6261,最小值:-10.1531,平均值:-8.3547,标准差:2.6306
SSA:最大值: -5.0552,最小值:-10.1532,平均值:-9.3867,标准差:1.8428
AMSSA:最大值: -5.0552,最小值:-10.1532,平均值:-9.5159,标准差:1.7075
实验表明,AMSSA寻优性能提升较明显,具有良好的开拓能力,鲁棒性强,表现出良好的实时能力。
三、参考文献
[1] 唐延强, 李成海, 宋亚飞, 等. 自适应变异麻雀搜索优化算法[J]. 北京航空航天大学学报, 2023, 49(3): 681-692.