APP下载

基于粒子群算法策略改进的飞鼠优化算法

2020-03-25朱群锋

关键词:单峰测试函数计算结果

朱群锋,王 璐,汪 超

(安徽工业大学 机械工程学院,安徽 马鞍山 243002)

优化问题是指在满足一定条件下,在众多方案或参数值中寻找最优方案或参数值,以使得某个或多个功能指标达到最优,或使系统的某些性能指标达到最大值或最小值[1]。

受到人类智能、生物群体社会性或自然现象规律的启发,人们发明了很多用于处理优化问题的智能优化算法,其中模仿自然界生物进化机制的遗传算法(GA)[2],通过群体内个体间的合作和竞争来优化搜索的差分进化算法(DE)[3],模拟生物免疫系统学习和认知功能的免疫算法(IA)[4],模拟蚁群集体寻径行为的蚁群算法(ACO)[5],源于固体物质退火过程的模拟退火算法(SA)[6]等。

2019年,Jain等[7]从飞鼠觅食搜寻过程的基本特征中得到启发,提出飞鼠搜索方法(Squirrel Search Algorithm,简称SSA)。算法的基本思想是将飞鼠的位置看作是求解空间中的候选解,飞鼠的位置主要分布在正常树、橡子树和山核桃树,分别代表一般解、次优解和最优解。假定森林中一般解的数量最多,只有唯一的最优解和3个次优解。森林中的飞鼠种群存在信息交互,最优解引导次优解和一般解,次优解引导一般解。同时算法中引入了猎人和季节检测的机制。当飞鼠在森林树木搜索过程中觉察到周围有猎人出没,则会随机转移到附近一个安全的位置。此外通过季节监测常数检测季节的变化,当冬季结束时,位于普通树的飞鼠即一般解会更活跃,为了更好地找寻食物,会基于飞行进行重新定位。这个过程一直循环往复,直到满足迭代停止条件。SSA在多区域太阳能、风能综合的热电联产经济调度问题方面获得了应用[8]。在SSA算法中,飞鼠在觅食搜寻过程中采取固定模式,使得全局搜索、局部搜索的能力和收敛速度及精度仍然有提升的空间。

粒子群算法具有算法早期收敛数度快的特点,但也存在着精度较低、易发散等缺点。优化数学模型由惯性部分、认知部分和社会部分3部分组成[9]。其中,惯性部分中加入合适的惯性权重能有效兼顾算法的全局搜索和局部搜索能力;认知部分和社会部分中引入合适的学习因子可有效提高算法收敛速度和跳出局部最优的能力。

为了有效避免基本SSA算法陷入局部最优解的困境,本文提出了一种基于粒子群算法策略改进的飞鼠优化算法,所提的算法在以下两个方面作了改进:

(1)受粒子群算法策略的启发,基于社会部分设计了一种新的飞鼠个体位置更新公式,在更新公式中加入了惯性权重和学习因子,可平衡SSA算法的全局探索和局部开发能力,同时加快了算法的收敛速度。

(2)加入概率判断函数,抑制算法的过早收敛,提高算法的密集搜索能力,进一步平衡SSA算法的全局探索和局部开发能力。

通过12个基准函数测试,比较了本文算法与其他5个常用智能优化算法的计算结果,验证了本文算法的有效性。

1 改进的SSA算法

基于粒子群算法策略改进的飞鼠优化算法有以下6个步骤:

(1)假设飞鼠个体数目为N和最大进化代数为Tmax。N个个体随机更新他们的位置,具体计算如下:

SFi=SFL+rand(1,D)×(SFU-SFL)(i=1,2,···,N)

(1)

式中:SFi表示第i个体更新的位置;D表示该飞鼠所在空间的维数;SFU表示搜索空间的上界;SFL表示搜索空间的下界。

(2)计算各个飞鼠位置对应的适应度,并根据适应度大小对飞鼠所在的位置进行排序,最优的为山核桃树,次于最优的3个飞鼠的位置为橡子树,剩下的飞鼠位置位于正常树。

(3)飞鼠进行觅食搜寻阶段,该觅食的过程可能出现3种情况。

第一种情况为橡子树上的飞鼠向山核桃树移动。

(2)

如果r1>Pdp,表示没有猎人出现,飞鼠随机转移到附近一个安全的位置;如果r1≤Pdp,表示猎人出现,飞鼠被迫缩小范围,它们的位置重新随机定位。

第二种情况为正常树上的飞鼠向山核桃树移动。

(3)

第三种情况为正常树上的飞鼠向橡子树移动。

(4)

式中:r3为0到1之间的随机数;r4为0到1之间的随机数,其中w为0.8,c1=c2=1.494 45。

R=Nh/(N-4)

(5)

式中:Nh表示正常树上的飞鼠飞往山核桃树上的数量;N-4表示正常树上飞鼠的数量;经过多次算法测试,R=0.45时算法性能较好。

(4)与第2个步骤相同。

(6)

(7)

当季节转换为非冬季时,位于正常树上的飞鼠即一般解会更活跃,为了更好地找寻食物,会基于Le′υy飞行进行重新定位,依照公式(8)更新自己的位置。

(8)

Le′υy是一种随机分布,如公式(9)。

(9)

式中:β是常数,取1.5;σ通过公式(10)计算。

(10)

式中:Γ(x)=(x-1)!.

(6)重复上述步骤直至进化代数大于Tmax。

2 算法测试

本文选取12个国际常用优化测试函数作为测试集,包含4个单峰测试函数F1、F2、F3和F4,4个多峰函F5、F6、F7和F8以及4个固定维度下的复杂多峰函数F9、F10、F11和F12。单峰测试函数如表1所示。优化算法对比方面,本文选取了原始的飞鼠搜索算法(SSA)、标准的粒子群算法(PSO)、离子运动算法(IMO)、蝗虫优化算法(GOA)和差分进化算法(DE)进行比较。

2.1 算法参数设置

为了体现公正性,每一种算法均在同一个实验环境中测试;本文所用编程软件为MATLAB R2017 a,其计算机配置为Windows 10系统,CPU为Intel(R) Core(TM)i5-4258U CPU@2.4 GHz,优化算法中的共同参数为:种群规模N均为50,此外,每个优化算法均对测试函数做30次独立运行。

2.2 算法性能评价指标

传统的性能评价对比中,优化算法最后的收敛平均值和相应的方差是衡量优化算法性能的一个基本指标,前者表示算法的收敛精度值,后者表示算法的稳定性,二者数值越小,算法性能越好。

在高维度50的情况下,单峰测试函数的平均收敛值(最优结果的30次平均值减去理论最优值)和方差,如表2所示。从表2可以看出,单峰函数F1、F2、F3、F4的平均收敛值和方差都优于其他5个优化算法。

表1 单峰测试函数

表2 单峰测试函数计算结果统计表

图1 50维单峰测试函数的迭代曲线

为分析各个算法的收敛情况,50维度下优化算法的计算迭代曲线图如图1所示。其中横坐标代表迭代次数,纵坐标代表函优差(目标函数值与理论最优值之差)。从图1可以看出,本文算法的收敛速度、收敛精度和收敛稳定性优于其它算法,尤其在测试函数F1、F3和F4上较为明显,验证了本文算法的有效性。

为了进一步考察本文算法的性能,4个50维度和4个固定维度的复杂多峰测试函数如表3所示。4个固定维度函数F9、F10、F11和F12的维度分别为3维、4维、4维和4维。多峰测试函数的平均收敛值和方差的计算结果如表4所示。从表4可以看出,8个测试函数的平均收敛值除F5外,本文算法都优于其它算法;方差除F5、F9、F11和F12外,本文算法都优于其它算法。

表3 复杂多峰测试函数

表4 复杂多峰测试函数计算结果统计表

图2 复杂多峰测试函数的迭代曲线

8个复杂多峰测试函数的计算迭代曲线图如图2所示。从图2可以看出,本文算法的计算结果从整体性能上优于其它算法。相较于之前的飞鼠优化算法,本文改进算法在收敛速度、收敛精度和收敛稳定性方面都有明显的提升,验证了本文改进算法的有效性。

3 结 语

针对飞鼠优化算法的不足,本文提出一种基于粒子群算法策略改进的飞鼠优化算法。基于12个基准测试函数,计算结果显示了该改进算法在收敛速度、收敛精度和收敛稳定性方面均有提升。此外,本文也存在不足之处,只是简单的引入了粒子群算法策略的思想,没有对权重和学习因子的取值对算法优化性能的影响进行深入的讨论。

猜你喜欢

单峰测试函数计算结果
解信赖域子问题的多折线算法
一种基于精英选择和反向学习的分布估计算法
Kirchhoff方程单峰解的局部唯一性
基于博弈机制的多目标粒子群优化算法
存放水泥
趣味选路
具有收缩因子的自适应鸽群算法用于函数优化问题
超压测试方法对炸药TNT当量计算结果的影响
基于HCSR的热点应力插值方法研究
血簪