基于混合优化策略的麻雀搜索算法研究*
2023-03-23易华辉王雨璇黄金香宋文治
易华辉,王雨璇,黄金香,宋文治,李 垒
(西安工业大学兵器科学与技术学院,西安 710021)
0 引言
近年来,优化已经成为一个热门的研究领域,也是一种寻找复杂问题最优解的经济方法[1]。麻雀搜索算法(Sparrow Search Algorithm,SSA)是一种新型智能算法,具有优化能力更强、效率更快的优点[2]。在求解全局优化问题时具有较强的搜索能力和并行性,相比较其他具有代表性的群智能优化算法相比,SSA 在收敛精度和稳定性方面具有明显的优势,但在处理复杂工程问题时会出现局部最优的现象。
针对上述问题,毛清华等[3]提出了一种融合柯西变异和反向学习的新型优化方法,在丰富解多样性的同时,在全局和局部寻优方面都得到提高,加快了解的寻优速度。付华等[4]为增加种群的多样性,采用柯西高斯变异策略。为提高算法的寻优速度,结合鸡群算法的随机跟随策略优化跟随者的位置更新公式,平衡算法的开发性能和搜索能力,提高了寻优精度和收敛速度。张伟康等[5]提出了自适应t 分布与黄金正弦算法改进的麻雀搜索算法,实验结果表明所提算法具有更好的收敛性和求解精度。汤安迪等[6]将正余弦和反向学习策略引入到麻雀搜索算法中,提出了一种混沌麻雀搜索算法,增强了算法的鲁棒性和寻优性。Xiong 等[7]为丰富解的多样性,提升麻雀搜索算法全局搜索的充裕性,采用对立学习策略;为提高原始算法的局部极值的能力,在不同的迭代阶段对最优解位置执行自适应干扰变异,提出自适应t 分布变异,整体来看,寻优精度和速度都优于对比算法。钱敏等[8]利用反向学习和混沌理论提出了一种新型的改进算法,增强了麻雀搜索算法的停滞性。上述文献中,针对SSA 的缺点所提出的改进策略在一定程度上都得到了提升,但仍存在寻优速度慢、收敛精度不高等问题。
针对算法的不足,本文提出混合优化策略来改进麻雀搜索算法(ISSA)。首先,利用Piecewise 混沌映射以提高种群的多样性;其次,引入黄金搜索策略更新生产者的位置,提高算法的搜索能力;然后,引入自适应权重策略来协调搜索的能力;最后,针对麻雀种群陷入局部极值的问题,引入模拟退火思想,解决跳出极值的缺陷;对比12 个基准函数从精度、稳定性和收敛速度3 个方面对其性能进行了评估。结果表明,与原始的SSA 搜索算法相比,ISSA 算法体现出较强的鲁棒性和更快的收敛速度。
1 麻雀搜索算法
麻雀搜索算法(SSA)是新型的智能优化算法,该算法在实际应用中求解全局优化问题时具有很强的搜索能力和并行性。麻雀种群分为生产者和捕食者,生产者负责搜索食物来提供发现食物的地点和方向。捕食者通过跟随生产者来获得食物。生产者和捕食者的身份动态变化,但生产者和捕食者在整个种群中的比例是恒定的。侦察者主要是警戒威胁环境并及时发出警戒信号,警示麻雀向安全区域行进。
n只麻雀数量表示方式如下:
式中:i=1,2,3,…,n为当前迭代次数;tmax为最大迭代次数;α为rand(0,1);变量Q服从高斯分布;L为元 素 大 小 都 为1 的1·d 的 矩 阵;R2(R2∈[0,1))和ST(ST∈[0.5,1))分别为警戒值和安全值,R2<ST表示此时周围外界环境没有危险发生,生产者可以充分执行搜索策略;R2≥ST表示捕食者被麻雀种群中的个体发现,此时需立即向种群中其余麻雀个体发出警戒信息,使麻雀种群能快速躲避到安全区域。
捕食者的位置更新方式如下:
式中:Xbest和Xworst分别为生产者最佳和最差位置;A∈[-1,1]的1·d 的矩阵,A+=AT(AAT)-1;N为种群的大小;i>N/2 表明捕食者i没有得到食物并处于饥饿态,需获取更多能量补充自己。
警戒者的位置更新方式如下:
式中:Xtgbest表示当前全局最佳位置;K的范围为rand(-1,1);β为步长控制参数;fi为麻雀的最优适应值;fg为全局最优适应值;fw为适应度最差的值;ε为最小常数,可避免零除误差;fi>fg表明麻雀种群处在边缘位置极易受到捕食者的攻击;fi=fg表明麻雀感知到危险,在靠近其他麻雀的同时,来减少自身暴露在危险中。
2 麻雀搜索算法的改进
2.1 Piecewise混沌映射
基本SSA 算法以随机的方式初始化种群,这样生成的种群差异性较大,搜索空间的环境信息不能充分加以利用。尽可能提高麻雀初始种群的差异性和多样性,降低局部最优的概率成为改进算法的先验条件之一。目前常 用Logistic 混 沌 映 射[9]、Tent 混 沌 映 射[10]和Piecewise 混沌映射[11]等来解决初始化种群的问题。为了更好地得到初始解的位置,提高最优解的多元性。本文采用Piecewise 混沌映射初始化种群增加种群随机出现的概率,丰富解的位置,Piecewise混沌映射定义如下:
Piecewise 映射相比于随机分布的种群,改进后不仅扩大了种群中解空间的搜索范围,也增加了麻雀种群的位置多样性和均匀性,寻优效率得到了极大的提升。
2.2 黄金搜索策略
黄金搜索优化算法[12](GSO)是一种结合了粒子群优化(PSO)和正余弦算法(SCA)的优化方法。黄金搜索算法主要包含勘探和开发两个阶段,可以很好地平衡这两种相互矛盾的能力。黄金搜索算法的步长评估策略是搜索算法的核心,主要由3 部分组成:第一部分表示步长的先前值,目的是平衡算法的搜索能力;第二部分表示t在当前位置与个体最佳位置之间的距离;第三部分表示t在当前位置与所有最佳位置之间的距离。更新公式如下:
式中:r1和r2为[0,2]之间的随机值;T为一种转移因子,它将搜索从探索转换为利用,以提高搜索性能,T= 100·exp(-20·t/tmax);c1= 2.55- 2.05·t/tmax;c2=1.55-t·t/tmax;tmax为最大迭代次数。
在基本SSA 算法中,R2≥ST表示种群中的麻雀发现了捕食者,应快速躲避到安全区域。为了防止麻雀在搜索时因搜索速度过快而导致算法出现早熟收敛并陷入局部最优。本文引入黄金搜索策略更新生产者的位置更新公式,改进后公式如下:
2.3 自适应权重策略
惯性权重w的大小阐明了算法搜索能力的高低,w愈大全局寻优愈强,w愈小局部寻优能力愈强。本文受文献[13]的启发,引入[-4,4]的负双曲正切函数控制的惯性权重,增强算法的局部寻优能力,更新公式如下:
式中:t为当前迭代次数;tmax为最大迭代次数。
设置参数时wmax= 0.9,wmin= 0.4寻优效果最好。
在SSA 算法中,警戒者代表麻雀预警能力的强弱,原始算法中,警戒者在初始化前设置为种群数量的10%~20%,但是固定不变的警戒者数量并不能最大化在整个过程中的作用。因此本文对警戒者的数量比例进行改进,步长控制参数β和K在平衡全局搜索与局部开发方面起到关键性的作用,但因β和K都是随机数也无法满足算法在解空间的探索性能,导致算法陷入局部最优,于是引入自适应权重对步长控制参数β和K进行优化。改进后位置更新公式如下:
2.4 模拟退火算法
模拟退火(SA)算法[14]是一种贪婪的方法,其思想借鉴于固体退火的原理,特点是从某一较高的温度出发,以一定的概率P来接受劣质解从而跳出局部最优。依照Metropolis 准则,粒子在温度t时趋于平衡的概率为exp(-∇E/Kt),E是温度t时的内能,∇E为内能的改变量,K是玻尔兹曼常数。为减少计算量将劣质解的接受概率设置为:
式中:E(Xj+1)为扰动产生新解时的能量值;t为第j次迭代时的温度,模拟退火算法初始温度为种群初始适应度最大值与最小值之差;当E(Xj+1)<E(Xj)时,接受新的解Xj+1,否则以概率P接受劣质解Xj。
本文将模拟退火思想中的Metropolis准则引入到麻雀搜索算法中来解决SSA 易陷入局部最优的缺陷。以最初麻雀最优位置为依据设置初始温度,每次迭代后计算更新后的适应度值与最优值的差距,判断能否接受较差的解。式(11)中的概率调整如下:
式中:Enew(Xj)为新种群中第j个麻雀个体的适应度值,新旧位置适应度之差的大小是调节接受劣质解概率P的主要方式。
2.5 ISSA算法步骤
ISSA的基本步骤如下:
(1)初始化参数(种群数量和最大迭代次数即M和tmax),生产者比例PD,预警值ST,警戒者比例SD,根据式(6)初始化种群以增加搜索范围的多样性;
(2)计算种群中个体适应和全局最优适应度值,并记录最优位置和个体;
(3)使用式(8)更新麻雀生产者位置;
(4)使用式(4)更新麻雀捕食者位置;
(5)使用式(10)更新警戒者位置;
(6)更新麻雀个体位置和全局最优位置;
(7)进入模拟退火阶段,退火率为t=0.99,根据式(12)计算接受新解的概率P,对比概率P与随机值rand,判断是否接受新解来更换全局最优解并进行模拟退火操作,更新退火温度;
(8)是否到达最大迭代次数,若未达到,t=t+ 1且则返回步骤4;
(9)输出个体最优和全局最优值。
3 仿真实验与分析
3.1 算法性能测试与分析
为了验证本文所提出算法的可行性和寻优性,与ISSA、SSA、PSO、GWO、WOA 在12个基准测试函数下进行30次对比实验(表1),进而客观地反映算法改进的有效性。测试函数中F1~F5表示单峰函数,F6~F12表示多峰函数,见表1。
表1 基准函数优化结果比较
本文实验环境均为Windows 10 系统,16GRAM 和2.49 GHz CPU 环境下进行仿真测试,软件为Matlab2021a,最大迭代次数为500,种群个数为100,基本SSA 算法和改进ISSA 算法的参数设置为ST=0.8,PD=0.2,SD=0.2,见表2。
表2 基准测试函数优化结果对比
F4F7 30F5 30F6 30 30F8 30F9 30F1030F112F122 GWO SSA ISSA PSO WOA GWO SSA ISSA PSO WOA GWO SSA ISSA PSO WOA GWO SSA ISSA PSO WOA GWO SSA ISSA PSO WOA GWO SSA ISSA PSO WOA GWO SSA ISSA PSO WOA GWO SSA ISSA PSO WOA GWO SSA ISSA PSO WOA GWO SSA ISSA 2.54E-16 0.00E+00 0.00E+00 2.83E-01 1.58E-02 1.17E-11 0.00E+00 0.00E+00 3.65E+02 2.57E+01 2.51E+01 1.38E-08 1.30E-10 1.81E-02 2.40E-05 2.16E-04 4.82E-06 1.01E-06-9.96E+03-1.26E+04-8.09E+03-1.00E+04-1.26E+04 3.94E+01 0.00E+00 0.00E+00 0.00E+00 0.00E+00 3.60E-01 8.88E-16 1.87E-14 8.88E-16 8.88E-16 6.38E-01 0.00E+00 0.00E+00 0.00E+00 0.00E+00-1.03E+00-1.03E+00-1.03E+00-1.03E+00-1.03E+00 9.98E-01 9.98E-01 9.98E-01 9.98E-01 9.98E-01 1.14E-12 0.00E+00 0.00E+00 2.00E+00 3.07E+01 1.76E-10 0.00E+00 0.00E+00 1.16E+03 2.67E+01 2.63E+01 7.83E-06 7.16E-06 7.49E-02 1.05E-03 5.93E-04 1.65E-04 7.81E-05-7.90E+03-1.16E+04-6.42E+03-8.72E+03-1.25E+04 7.42E+01 0.00E+00 4.92E-01 0.00E+00 0.00E+00 2.53E+00 4.44E-15 2.73E-14 8.88E-16 8.88E-16 8.87E-01 2.72E-03 2.65E+00 0.00E+00 0.00E+00-1.03E+00-1.03E+00-1.03E+00-1.03E+00-1.03E+00 3.82E+00 1.06E+01 2.18E+00 2.55E+00 9.98E-01 3.10E-12 0.00E+00 0.00E+00 8.89E-01 2.84E+01 1.63E-10 0.00E+00 0.00E+00 6.06E+02 2.88E-01 7.12E-01 1.23E-05 1.132E-05 4.82E-02 1.24E-03 2.94E-04 1.54E-04 7.86E-05 1.10E+03 1.11E+03 7.51E+02 6.07E+02 3.93E+01 2.30E+01 0.00E+00 1.51E+00 0.00E+00 0.00E+00 6.53E-01 2.64E-15 4.14E-15 0.00E+00 0.00E+00 1.17E-01 1.04E-02 5.46E-02 0.00E+00 0.00E+00 2.81E-18 5.90E-18 2.28E-18 3.23E-18 2.07E-18 2.43E+00 3.62E-01 1.90E+00 4.04E+00 0.00E+00
4F136 PSO WOA GWO SSA ISSA PSO WOA GWO SSA ISSA-3.32E+00-3.32E+00-3.32E+00-3.32E+00-3.32E+00-1.05E+01-1.05E+01-1.05E+01-1.05E+01-1.05E+01 7.16E-02 8.03E-02 6.73E-02 6.05E-02 8.35E-02 1.69E+00 2.44E+00 1.48E+00 1.37E+00 1.83E-05F14-3.22E+00-3.24E+00-3.24E+00-3.26E+00-3.21E+00-1.01E+01-9.45E+00-1.05E+01-1.02E+01-1.05E+01
由此可知,ISSA 的平均值、最优值、标准差在整体性能上,相比较PSO、GWO、WOA 和原SSA 算法,ISSA在寻优精度和搜索速度等方面都优于其他算法。
为了能更直观地显示ISSA 算法的优化效果,图1 分别表示上述比较的5 种算法,在12 个基准测试函数上的迭代寻优曲线图。
图1 5种函数在12个基准函数上的迭代寻优图
从图中可以看出,ISSA 算法不管对于单峰还是多峰函数,在短时间内找到或者接近理论最优值的同时,收敛速度也较其他算法均得到了明显的提升。
上述函数中F1~F5为单峰测试函数,主要测试算法全局开发的能力,在F1~F4的迭代曲线中,ISSA 寻优效果最优,均能在提高搜索速度的同时稳定得到全局最优解,收敛速度相较于其他算法较快,能明显的看出ISSA跳出局部极值的特点;对于F5函数,虽然提升精度不高,但最优值和稳定性仍高于其他算法。
在多峰测试函数中,F7和F9这两个测试函数可以看出ISSA 具有较强的寻有能力,收敛速度相较于其他算法比较明显。在F6、F8和F10~F12测试函数中,对于F6和F8这两个测试函数而言,伴随迭代次数的递增,各个算法都出现了不同程度的局部最优解现象,但改进的ISSA 算法在收敛的稳定性和搜索精度均高于其他优化算法。对于F10~F12虽然收敛精度相同,但可以看出每个算法都易找到局部最优点,但ISSA 收敛速度相比较其他算法效果明显,陷入局部最优解的概率较小。
综上所述,本文所提出的ISSA 在单峰和多峰测试函数上都有较强的寻优能力和搜索精度,处理结果更好,进一步说明了改进的算法的有效性和可行性。
3.2 ISSA算法改进比较
为了进一步验证本文所提算法的有效性,将与吕鑫[15]所提出的混沌麻雀搜索算法(Chaos sparrow search algorithm,CSSA)进行比较,实验中的测试函数选用几种典型的基准函数,其余参数相关条件与文献[14]中相同,比较结果如表3 所示。由表可知,对于ISSA 在搜索精度和稳定性方面都得到了提升。对于函数F6~F7其优化效果相当,其余函数在平均值和标准差上都能比CSSA更优。从整体指标来看,ISSA 的值更小,在寻优精度上更能跳出局部最优解,由此证明了ISSA算法相比及CSSA和SSA算法都体现出较强的寻优能力和更优的稳定性。
表3 测试函数仿真结果对比
4 结束语
考虑到SSA 在解决复杂优化问题时寻优速度慢、适应性差的问题,本文提出了一种基于混合优化策略的麻雀搜索算法,采用Piecewise 混沌映射初始化种群的位置,增加个体间多样性的同时。引入黄金搜索策略,对生产者的位置进行更新,提升原算法的寻优速度;为改进算法后期陷入局部最优的缺陷,引入自适应权重策略和模拟退火策略,增强算法寻优精度。在此基础上对12个函数的仿真测试,并和其他文献算法进行对比。结果表明,改进的ISSA 算法在收敛速度和寻优精度上都优于其他对比算法。