APP下载

基于衰减因子和动态学习的改进樽海鞘群算法

2020-09-05康志龙

控制理论与应用 2020年8期
关键词:跟随者测试函数领导者

陈 雷 ,蔺 悦,康志龙

(1.天津大学微电子学院,天津 300072;2.天津商业大学信息工程学院,天津 300134;3.河北工业大学电子信息工程学院,天津300401)

1 引言

樽海鞘群算法(salp swarm algorithm,SSA)[1]是澳大利亚学者Mirjalili在2017年提出的一种新型群智能优化算法,该算法模拟了海洋动物樽海鞘的群体觅食行为,机制简单易懂,操作方便,易于实现,已经成为国内外很多学者的研究热点.目前,该算法已经被应用于光伏系统优化[2-4]、网络系统管理[5]、特征选择[6-7]、图像处理[8-10]和训练神经网络[11]等实际问题中.

SSA相较于其他一些智能优化算法具有一定优势,参数设置简单,收敛速度快,鲁棒性强,处理低维问题优化性能良好.但是SSA也存在迭代后期搜索精度不高,种群多样性较差等缺点,限制了算法的局部开发能力和全局探索能力.为改善其优化性能,许多研究学者提出多种改进算法.从改进参数的角度:Sayed等人[12]将混沌映射引入SSA,用混沌变量代替重要随机参数,加强随机参数的动态特性,提高了SSA的开发和探索能力.Wang等人[13]提出一种基于单纯形法的改进樽海鞘群算法,改变随机策略,增加种群的多样性,加强了算法的局部搜索能力.Qais等人[14]调整领导者趋向食物源的重要参数,并且在跟随者位置更新公式中添加随机参数,帮助领导者更好的趋向最优值,改善了SSA求解精度不足的缺陷.从与其他智能优化算法结合的角度:Ibrahim等人[15]将SSA与粒子群优化算法结合,提高在探索时期的灵活性和多样性,达到了更高的寻优效率.Khamees等人[16]将SSA与模拟退火算法结合,在解决多目标优化问题上表现出色.

以上改进算法均从不同角度增强了SSA算法的寻优性能.但在实际问题中,往往是高维单峰和高维多峰的复杂问题.对于解决这类复杂的优化问题,SSA的求解精度和寻优效率仍需进一步提高.针对上述存在的问题,本文提出一种基于衰减因子和动态学习的改进樽海鞘群算法(salp swarm algorithm based on reduction factor and dynamic learning,RDSSA),在领导者位置更新阶段添加衰减因子,提高算法在迭代后期的局部开发能力;在跟随者位置更新阶段引入动态学习策略,提高算法的全局探索能力,解决了算法在高维多峰优化问题上求解精度不高,寻优效率低的问题.

通过对16个测试函数进行实验,并与其他改进樽海鞘群算法及其他智能优化算法比较,验证RDSSA的优化性能.

2 樽海鞘群算法

SSA建立了一种用于求解优化问题的樽海鞘链模型,将樽海鞘群分为两类:领导者和跟随者,领导者是处在链的前面起带领作用的个体,跟随者直接或间接地相互追随.樽海鞘的位置在D维搜索空间中定义,食物源F作为樽海鞘群的觅食目标.

领导者的位置更新公式如下:

跟随者的位置更新公式如下:

SSA采用优胜劣汰策略,通过计算所有个体的适应值,比较当前迭代次数的适应值与先前最优适应值,不断接近食物源位置.由此可以模拟樽海鞘群的觅食行为,解决最优化问题.

3 基于衰减因子和动态学习的改进樽海鞘群算法

通过研究SSA的原理发现,由于位置更新搜索范围无约束,且精英个体的影响权重小,导致SSA在迭代后期不能进行很精确的搜索,跟随者不能很好的协助个体位置更新.因此,本文的改进思路从两个方面考虑:针对SSA在领导者更新阶段搜索范围不受限的问题,添加衰减因子,增强迭代后期的局部开发能力;针对跟随者位置更新的局限性,引入动态学习策略,提高全局探索能力.

3.1 添加衰减因子的樽海鞘群算法

基本SSA在领导者位置更新阶段,个体在食物源附近移动,搜索范围不受限制,使得收敛后期个体不能在极值点进行精确搜索,还有可能跳出极值点.为了改善这一问题,本文提出将衰减因子引入SSA,得到添加衰减因子的樽海鞘群算法(reduction factor salp swarm algorithm,RSSA),使得领导者位置更新范围随着迭代次数的增加而逐渐减小,收敛前期避免陷入局部极值,收敛后期越来越逼近最优值,达到更高的求解精度.

添加衰减因子的领导者位置更新公式(4)如下:

其中控制搜索范围的衰减因子A(l)是一个非线性递减函数,定义如下:

收敛前期,搜索范围不受限,个体可以充分在全局移动,充分发挥算法的全局搜索能力,避免陷入局部极值;收敛后期,随着个体越来越逼近最优值,搜索范围也逐渐减小,个体在限制范围内进行精确搜索,增强局部搜索能力,以达到更高的求解精度.

3.2 引入动态学习的樽海鞘群算法

基本SSA算法没有参数影响跟随者的位置更新,跟随者的移动由个体自身位置和前一个个体位置综合决定,精英个体的影响权重小,使得跟随者对领导者的协助作用很小.为了增强精英个体的影响权重,本文将动态学习策略引入SSA,得到引入动态学习的樽海鞘群算法(dynamic learning salp swarm algorithm,DSSA),先比较的适应值,在适应值较大的位置(即离最优值距离较远的位置)上添加削弱因子k,以削弱较差位置个体的影响权重,增强较优位置个体的影响权重.

引入动态学习策略的跟随者位置更新公式如下:

在收敛过程中,精英个体能更好的发挥协助作用,帮助领导者做决策,不断向食物源逼近,提高寻优效率.

3.3 RDSSA的实现流程

将RSSA和DSSA结合,同时改变领导者和跟随者的位置更新公式,可以得到新的优化算法RDSSA,提高领导者局部开发能力,增强跟随者的协助作用,以提高收敛速度,获得更好的优化效果.RDSSA的实现流程如下所示.

Step 1设定种群规模N、迭代次数Iteration、维数D和上、下边界;

Step 2初始化樽海鞘群个体的位置,并计算各个体的适应值Fitness,将最小适应值个体的位置确定为食物源位置FoodPosition;

Step 3生成衰减因子A(l),根据式(4)更新领导者位置;

Step 4生成随机数k,根据式(6)更新跟随者位置;

Step 5计算更新位置后的个体适应值,若小于当前FoodPosition,则更新FoodPosition;

Step 6判断当前迭代次数是否达到预设迭代次数,若已达到,结束迭代,否则返回执行Step 3;

Step 7输出FoodPosition位置及该位置上的适应值Fitness.

RDSSA的伪代码如下所示:

4 测试实验分析

4.1 实验设计

为了验证本文提出的RSSA,DSSA和RDSSA的性能,实验选取16个典型全局优化测试函数进行实验.测试函数的形式、搜索范围、理论极值和目标收敛精度如表1所示,其中f1~f8为单峰函数,f9~f16为多峰函数.本文实验分为3个部分:1)与基本SSA比较,固定迭代次数,观察收敛速度和收敛精度;2)与基本SSA比较,固定目标收敛精度,观察达到目标收敛精度所需的迭代次数;3)与其他算法比较,固定迭代次数,观察收敛速度和收敛精度.

实验硬件配置为Intel(R)Core(TM)i5-3210M,CPU 2.50 GHz,RAM 4.00 GB,Windows 64 位操作系统,算法调试运行基于MATLAB 2014a.为了遵循实验公平性原则,实验基本参数保持一致:种群数量N设为50,函数维数D分别设为30,45和60,迭代次数Iteration设为500,每次实验结果为独立运行30次的平均值.

4.2 实验结果及分析

4.2.1 固定迭代次数下的收敛精度

固定迭代次数的实验结果如图1所示,显示了SSA,RSSA,DSSA和RDSSA4种算法对以上16个测试函数的收敛曲线.为了便于观察,将收敛曲线的纵轴刻度设置为以10为底的指数形式.

表1 典型测试函数Table 1 Benchmark test functions

由图1可以看出,在经过500次迭代之后,RSSA,DSSA和RDSSA都能接近测试函数的理论极值,且收敛速度和收敛精度都比传统SSA要高.RSSA在200次迭代之后,收敛速度明显变快,尤其是对于多峰测试函数,在避免陷入局部极值、后期迭代速度方面相较于SSA优势明显.DSSA在前期迭代速度快,后期迭代优化稳定性强,尤其在测试函数f7,f11和f13上,获得明显优于SSA的准确性和高效性.综合来看,RDSSA具有最快的收敛速度和最精确的收敛精度,说明RDSSA具有更好的寻优性能.

表2显示了4种算法对16个测试函数在固定迭代次数下的收敛精度结果比较.计算得到适应值的最大值(Max)、最小值(Min)、平均值(Ave)和标准差(Std),分别表示算法所能达到的求解精确度的最差值、最优值、平均值和求解稳定性.由于本实验所用的计算机能表示的最小浮点数为2.2251E-308,当收敛精度达到E-308量级时,结果显示为数值0.p-value表示SSA分别与RSSA,DSSA和RDSSA的Wilcoxon秩和检验结果,体现算法间的显著性差异,当p-value的值小于0.05时,说明改进算法效果明显优于SSA.

通过分析表2数据,RSSA与DSSA的收敛精度相比较于SSA都有改善,除了f10,RDSSA的优化效果基本与RSSA持平,其余测试函数RDSSA的收敛精度最高.

对于多峰测试函数f9,f11,f13和f14,RDSSA的收敛精度远超SSA.p-value值基本都小于0.05,说明RDSSA比SSA有明显优越性.

表2 固定迭代次数下的收敛精度(30维)Table 2 Convergence accuracy in fixed iteration(30 dimensions)

为了进一步验证RDSSA在解决复杂的高维问题的优化性能,本文增加了45维和60维的测试函数的实验,观察固定迭代次数下的收敛精度.实验结果如表3和表4所示.通过分析表3和表4的数据,RSSA,DSSA 和RDSSA在45 维和60 维的收敛精度均高于SSA,充分验证了RDSSA解决高维问题的优势.

表3 固定迭代次数下的收敛精度(45维)Table 3 Convergence accuracy in fixed iteration(45 dimensions)

表4 固定迭代次数下的收敛精度(60维)Table 4 Convergence accuracy in fixed iteration(60 dimensions)

4.2.2 固定目标精度下的迭代次数

固定目标精度下的实验结果如表5所示.

表5 固定目标精度下的实验结果Table 5 Test results in fixed precision

由于测试函数复杂度不同,设置的目标精度也不同,具体数值设置如表1所示,函数维数D为30.表5中Ave表示算法30次独立运行能够达到目标精度的平均迭代次数,如果某次独立运行500次迭代后仍未达到目标精度,则取该次迭代次数为500.SR表示算法能在500次迭代内达到目标精度的成功率.2 通过表5数据可知,SSA的成功率基本为0,说明其优化能力有待提高.对于测试函数f9~f11和f13~f15,DSSA的成功率均高于70%,说明DSSA对于多峰优化问题的寻优性能更好.RSSA的成功率均为100%,说明RSSA具有较快的收敛速度.RDSSA不仅成功率均为100%,且平均迭代次数远远小于RSSA,均未超过250,说明RDSSA具有更快的收敛速度和更好的优化效果.

4.2.3 与其他算法比较

为了进一步验证RDSSA 的优化性能,将其与增强的樽海鞘群算法(enhanced salp swarm algorithm,ESSA)[14]、混沌的樽海鞘群算法(chaotic salp swarm algorithm,CSSA)[12]、飞蛾火焰算法(moth-flame optimization algorithm,MFO)[17]、多重宇宙优化(multiverse optimizer,MVO)[18]算法、神经网络算法(neural network algorithm,NNA)[19]、粒子群优化(particle swarm optimization,PSO)[20]算法、人工蜂群(artificial bee colony,ABC)[21]算法和差分进化(differential evolution,DE)[22]算法进行比较.其中,ESSA 和CSSA是SSA的改进算法,MFO,MVO和NNA是近3年被提出的新颖的全局优化算法,PSO,ABC和DE是效果较好的经典智能优化算法.为了遵循实验的公平性原则,种群数量、函数维数、迭代次数和独立运行次数等基本实验参数与文献[12]保持一致,文献[22]中的参数F设置为[0.2,0.9]的随机数,CR设置为0.2,其余文献中的参数均与原文献保持一致.表6中CSSA数据来自文献[12].实验结果如表6和图2所示.

表6中Ave和Std分别代表计算得到的适应值的平均值和方差,是评判算法收敛精度和稳定性的指标.由表6 可以看出,除了f9~f11和f13,RDSSA 和ESSA的收敛精度和收敛稳定性相当,在其余测试函数上,RDSSA都表现出了比其他算法更优秀的收敛能力,特别是f7和f14,RDSSA的收敛精度和收敛稳定性远超于其他算法.

表6 与其他算法的收敛精度比较Table 6 Comparison of convergence accuracy with other algorithms

图2 与其他算法收敛曲线比较Fig.2 Comparison of convergence curves with other algorithms

图2显示了几种算法的收敛曲线比较,可以看出对于单峰函数,RDSSA在100次迭代前速度很快,之后以既快又稳定的速度收敛,最终达到最好的优化效果,ESSA其次,也能得到较好的收敛精度,其余算法收敛速度较慢,优化效果不佳.对于多峰函数,特别是f9,f11,f13和f14,RDSSA和ESSA的收敛速度优势明显,RDSSA的优化效果最好.综合来看,RDSSA相比于其他智能优化算法,具有较快的寻优速度和较好的寻优性能.

5 结论

本文提出了一种基于衰减因子和动态学习的改进樽海鞘群算法,通过添加衰减因子,灵活的控制搜索范围大小,加快了算法收敛速度,通过引入动态学习策略,加强了跟随者对于寻优的协助作用,达到了更高的收敛精度,改善了SSA的优化性能.实验结果表明,RDSSA相较于基本SSA、其他改进SSA和其他智能优化算法,在收敛精度和收敛速度方面都有较大提升,在最优化问题领域有着广泛的应用前景.

猜你喜欢

跟随者测试函数领导者
解信赖域子问题的多折线算法
一种基于精英选择和反向学习的分布估计算法
基于自适应调整权重和搜索策略的鲸鱼优化算法
你是哪一流的领导者
由城市台的“跟随者”到县域“三农”媒体的 “领导者”
从“跟随者”到“引领者”的跨越
从“跟随者”到“引领者”
—— 瓮福集团PPA项目成为搅动市场的“鲶鱼”
具有收缩因子的自适应鸽群算法用于函数优化问题
跟随者
海汇村布行业中的真正领导者