论文全题:
Multi-strategy firefly algorithm with selective ensemble for complex
engineering optimization problems
Hu Peng ,∗ Wenhui Xiao,Yupeng Han,Aiwen Jiang, Zhenzhen Xu,Mengmeng Li,Zhijian Wu School of Computer and Big Data Science, Jiujiang University, Jiujiang 332005, PR China School of Information Management, Jiangxi University of Finance and Economics, Nanchang 330013, PR China School of Computer and Information Engineering, Jiangxi Normal University, Nanchang 330022, PR China School of Computer Science, Wuhan University, Wuhan 430072, PR China
摘要:![](https://i-blog.csdnimg.cn/direct/94614a1b5a0d459bac9dd6d1abd34323.png)
![](https://i-blog.csdnimg.cn/direct/aaaa7de6f49844aaab6d4193793bfb43.png)
从上述摘要描述可知,该算法(MSEFA)的目的是为了解决FA算法的exploration和exploitation不平衡的问题,因此采取三种策略来对这个问题进行平衡:广义学习策略(broading learning strategy),精英学习策略(elite learning strategy),协调学习策略(coordinated learning strategy)。并通过优先轮盘选择法,来对策略的选择进行调整。并在解决FA参数不改变则导致搜索无效的情况采取了参数自适应变化的方法。
算法分析:
原始的FA算法(萤火虫)
MSEFA(本论文介绍的算法):
算法框架(MSEFA):
在这里算法的位置更新采取了三种不同的新颖策略
Broading learning strategy(广义学习策略):
与原始FA不同的是,该算法采取了随机取数,即X(t)r,来实现exploration进行大范围学习。
为后续精英学习时的收敛性,有一定的促进作用。
matlab的代码解释:
Elite learning stratrgy(精英学习策略):
该策略通过取一代萤火虫种群中最优值,来减去随机种群,加快了向最优解收敛的速度
matlab的代码解释:
Coordinated learning strategy(协调学习策略) :
该策略则是从该代萤火虫中取最优的三个,并随机取对整个种群的随机个体进行处理,来减缓收敛的速率。
三种学习策略的图表展示:
后文会对学习策略的选择机制进行介绍。
在这里可以看出前期bls策略的优先级较高,后期els的优先级较高。cls策略通过前期干涉,使得bls策略的优先级下降,els策略优先级上升,策略优先级的改变,算法的收敛性开始下降,cls策略的优先级下降,减少对算法的影响。
优先轮盘选择法:
在初始时,将三种策略的优先级都设置为1,由算法整个框架可知,在进行萤火虫位置更新之后,在对相对亮度(吸引力)进行计算,如果本代最优值效果比上一代的最优值效果高效,则该策略的优先级增加。如果不符合条件,优先级不变。
matlab代码:
参数的自适应更新:
通过对这只一个中间数Flag来对算法状态进行判断,并根据情况对k进行更改 ,在算法(matlab)中,k的值影响着参数阿尔法的取值。
该步骤的设计思路是解决FA算法因为固定参数和步长导致的搜索无效等功能,以及参数在固定变化的情况下所导致的算法之间exploration和exploitation之间不平衡的问题。
实验设计:
实验背景:
CEC2013和CEC2019在matlab2016中进行
实验图表(比较部分)
与FA的变体算法进行比较
与非FA算法进行比较:
有上方两次实验图可知,该算法在前期收敛速度和后期的平稳性上都有着较高的优越性。表明了该算法在优化问题上的高效性