几种改进的萤火虫算法性能比较及应用
2017-03-06马良玉曹鹏蕊
马良玉+曹鹏蕊
摘要摘要:萤火虫算法(FA)是继粒子群算法、遗传算法、模拟退火算法等经典智能算法之后,由剑桥学者Yang Xin-she提出的一种模仿自然界萤火虫捕食、求偶行为的新颖的群体智能随机优化算法。该算法近年来逐渐在不同优化领域得以成功应用,但也存在易陷入局部最优、算法过早收敛等问题,为此许多学者对萤火虫算法进行了改进。针对基于惯性权重的萤火虫算法、基于混沌算法的萤火虫算法这两种改进算法,通过几种标准检验函数对各算法的性能进行详细的仿真、比较,得出具体试验结果。在控制系统PID参数优化中应用改进后的萤火虫算法,仿真结果表明改进后的萤火虫算法寻优精度和搜索速度均优于基本粒子群算法。
关键词关键词:萤火虫算法;惯性权重;混沌算法;函数优化;比较研究;PID;粒子群算法
DOIDOI:10.11907/rjdk.162200
中图分类号:TP312文献标识码:A文章编号文章编号:16727800(2017)001002105
引言
2008 年,Yang[1]通过对萤火虫个体相互吸引和移动过程的研究,提出了一种新型群体智能优化算法,即萤火虫算法(Firefly Algorithm,FA)。虽然目前萤火虫算法还缺乏完备的数学理论基础,但已有研究结果表明,萤火虫算法具有较高的寻优精度和收敛速度,是一种可行有效的优化方法,为智能优化提供了新思路[2],已经在诸多领域得以应用[37]。但萤火虫算法作为一种新的群体智能仿生优化算法,发展时间尚短,算法本身存在着对于初始解分布的依赖性、后期收敛速度慢、易于停滞、早熟和求解精度低等缺陷。近几年,相关学者对其进行了多角度的改进。
Lukasik等[8]于2009 年对FA 进行了改进,并对算法的参数进行研究,改进后的FA 提高了求解精度,但求解速度较慢。冯艳红等[9]提出了基于混沌理论的动态种群萤火虫优化算法(CDPFA),该算法运用立方映射混沌初始化萤火虫初始位置,取得了较好的效果,进一步提高了算法的寻优精度和求解速度。王翔等[10]提出了一种新颖的改进混沌萤火虫算法。算法利用逻辑映射混沌序列设计了一种混沌局部搜索算子,试图提升算法的收敛速度;算法利用立方映射混沌序列设计了一种混沌替换算子,试图避免算法的早熟收敛。徐华丽等[11]针对基本萤火虫算法存在的早熟现象,提出了一种变尺度混沌光强吸收系数调整策略的混沌萤火虫优化算法。王铭波等[12]针对传统萤火虫算法(FA)中存在的过早收敛和易陷入局部最优解等问题,提出了一种基于模拟退火机制的多种群萤火虫算法(MFA_SA),该算法将萤火虫种群平均分为参数不同的多个子种群。为了防止算法陷入局部最优解,利用模拟退火机制大概率接受较好的解,小概率接受较差的解。同时,在种群寻优的过程中引入可变的距离权重,通过萤火虫算法的迭代次数动态调整萤火虫的“视野”范围。
PID控制器具有结构简单、鲁棒性好、需要的参数少、易于操作与控制等优点,因此被广泛应用在化工、电力、冶金等等工业过程控制中。
本文对萤火虫算法的几种改进算法进行比较研究,这三种算法分别为:基本的萤火虫算法、基于惯性权重的萤火虫算法和基于混沌算法的萤火虫算法。结合几种典型的标准校验函数求解寻优的仿真试验,对各算法的性能进行检验和评判。将改进的萤火虫算法应用于控制系统的阶跃响应的PID参数优化中,将优化结果与粒子群算法进行对比。
1标准萤火虫算法
1.1萤火虫算法概念
FA是一种启发式算法,这种算法启发于萤火虫晚上发光的行为。萤火虫的闪光,其主要目的是作为一个信号系统,以吸引其它萤火虫。
萤火虫移动的3个基本原则为:①萤火虫不分性别,它将会被其它更亮的萤火蟲吸引过去;②萤火虫的吸引力和亮度成正比,对于任何两只萤火虫,其中一只会向着比它更亮的一只移动,然而亮度是随着距离的增加而降低的;③如果没有找到一个比给定的萤火虫更亮,那么它会随机移动。
1.2FA的数学描述与分析
萤火虫算法包含两个要素即亮度和吸引度。亮度体现了萤火虫所处位置的优劣并决定其移动方向,吸引度决定了萤火虫移动的距离,通过亮度和吸引度的不断更新,从而实现目标优化。
定义1:相对荧光亮度I=I0×e-γr2ij(1)其中,I0为萤火虫的最大荧光亮度,即自身(r=0处)荧光亮度,与目标函数值相关,目标函数值越优自身亮度越高;γ为光强吸收系数,因为荧光亮度会随着距离的增加和传播媒介的吸收逐渐减弱,所以设置光强吸收系数以体现此特性;rij为萤火虫i和j之间的空间距离。
定义2: 吸引度β=β0×e-γr2ij(2)其中,β0为最大吸引度,即光源处的吸引度。
定义 3:位置更新xi=xi+β×(xi-xj)+α×(rand-12)(3)其中,xi,xj为萤火虫i和j所处的空间位置;α为步长因子,是[0,1]上的常数;rand为[0,1]上服从均匀分布的随机因子。
2改进萤火虫算法
2.1基于惯性权重的萤火虫算法
标准的萤火虫算法在迭代后期,由于萤火虫已经逐渐移动至局部或者全局极值点附近,此时萤火虫之间的距离逐渐缩小,根据位置更新公式(3)可以得到:萤火虫之间的吸引度逐渐增大,将会使萤火虫个体的移动距离过大因而无法到达或者错过最优位置,造成在极值点附近震荡的问题。
基于惯性权重的萤火虫算法(IWFA)在标准萤火虫算法的基础上,引入了线性递减权重函数[13],此时位置更新公式变为:xi=wtxi+βxj-xi+αrand-1/2(4)
wt=wmax-wmax-wmin×tMaxGeneration(5)其中,wmax,wmin分别为最大、最小权重;t,MaxGeneration分别为当前和最大迭代步数。
通过惯性权重可以控制萤火虫以前位置信息对当前位置的影响,权重的大小决定了萤火虫移动的距离的大小,并加强了萤火虫算法的全局寻优和局部搜索能力。当权值取值较大时,萤火虫当前的位置会对下一步要移动的位置有较大的影响,萤火虫间的吸引度影响相对较小,全局寻优能力增强,局部搜索能力相对减弱。反之,萤火虫当前的位置会对下一步要移动的位置影响较小,萤火虫间的吸引度影响相对较大,全局寻优能力减弱,局部搜索能力相对增强。因此通过调整惯性权重w(t)的取值,可以使萤火虫算法在搜索前期具有较强的全局搜索能力,有助于加快全局的收敛速度,随着迭代次数的增加,权重逐渐减小,到搜索后期,局部搜索能力增强,萤火虫个体的搜索区域也变小,萤火虫在极值点附近的搜索能力增强,避免因移动距离过大,致使萤火虫在极值点附近反复振荡。
2.2基于混沌序列的变尺度萤火虫算法
2.2.1混沌序列
混沌是非线性系统特有的一种非周期运动的现象,其行为复杂,类似随机运动,存在精致的内在规律性,并且其具有内随机性、初值敏感性和遍历性等特点。混沌优化算法正是利用了混沌的这些特点,提高了随机优化算法的效率,很好地解决复杂函数的优化问题,具有很高的寻优效率[14]。本文介绍的优化算法将混沌思想引入萤火虫优化算法亮度参数设置中,利用混沌搜索的随机性和遍历性改变算法亮度参数,能够较好地弥补基本萤火虫优化算法随着迭代次数增加参数不变的缺陷,实现全局最优[11]。
2.2.2变尺度混沌策略
针对标准萤火虫算法进化到后期容易停滞,本优化算法将对光强吸收系数进行混沌变异。选取Sinusoidal映射,其具体过程如下:uk+1=au2ksinπuk(6)当a=2.3,u0=0.7时,简化为:uk+1=sinπuk(7)当搜索空间越来越大时,普通的混沌算法效果越来越差,甚至出现失效情况。因此本优化方法采用变尺度混沌思想,对混沌变量进行尺度变换,此时式(7)变为:uk+1=τsinπuk(8)其中,τ=tMaxGenration;t,MaxGeneration分别为当前和最大迭代步数。
引入尺度变换后的光强吸收系数r可表示为:γnew=τ×uk+1(9)将新的光强吸收系数(9)代入式(1)、(2),得到新的亮度Inew和吸引度βnem。萤火虫算法的位置更新公式变为:xi=xi+βinewxj-xi+αrand-1/2(10)引入变尺度混沌扰动后,rnem值随着迭代次数的增加而增加,迭代前期收敛速度加快,有利于全局搜索;迭代后期收敛速度变慢,有利于在最优点附近局部搜索。
2.2.3多种群策略
本优化算法为了避免算法过早陷入局部最优,提高算法的收敛速度和寻优精度,采用多种群策略,将种群分为3个子种群。各个子种群在可行解空间内进行寻优,每次迭代后找到最优值,如果最优值连续三次没有更新,此时可能陷入局部最优,则在3个子种群中找出比当前自身更优的种群进行替代;如果找不到,则对最优萤火虫的位置进行随机扰动,加入一个服从高斯分布的随机扰动,可以使算法跳出局部最优。如式(11)所示:x′best = xbest + xbest ×μ×N(0,1)(11)其中,x′best为变异后的个体的位置;xbest为当前最优萤火虫位置;μ是变异控制因子;N(0,1)是均值为0、方差为1 的高斯分布随机变量。
3标准函数检验比较
3.1标准测试函数
为了测试各改进萤火虫算法的性能,采用5个常用的标准测试函数进行比较,其中,f1,f2是单峰函数,f3、f4和f5是多峰函数。各函数的具体形式如下:
表1标准测试函数函数维数范围全局极值f12[-5,5]0f22[-2,2]3.309 9f330[-100,100]0f430[-30,30]0f530[-10 10]03.2仿真實验结果分析
为比较标准萤火虫算法(FA)、基于惯性权重的萤火虫算法(IWFA)和基于混沌序列的变尺度萤火虫算法(CSFA)的性能,基于Matlab R2013a软件编写各算法,并针对上述标准测试函数进行详细的仿真试验。相关参数设置为:萤火虫数目n=90,β0=1.0,r=1.0,α=0.2,Tmax=50,惯性权重wmax=1.1,wmin=0.2,混沌算法初始化参数a=2.3,u0=0.7。
3.2.1仿真结果分析
将每个测试函数在每种算法下运行100次,得到各函数的平均值、最优解、最差解、平均运行时间等测量结果,通过对比这些结果得到算法的寻优精度。计算结果如表2所示。通过数据对比可看出:标准萤火虫算法和基于惯性权重的萤火虫算法对二维函数f1和f2的寻优能力良好,当对多维函数进行寻优时,效果不是很理想,甚至无法收敛找不到最优解。基于混沌序列的变尺度萤火虫算法,不论低维还是多维函数,其寻优能力最好,并且时间最短。因此CSFA的寻优精度是最好的。
使控制系统的性能指标最优。选取适应度函数为误差绝对值与时间的积分,利用优化算法使适应值最小,得到最优的PID参数。适应度函数的表达式为:f(x)=∫∞0e(t)tdt(17)其中,e(t)为系统误差。
被控对象选择为一个典型的四阶系统,如式(18)所示:G(s)=s+2s4+8s3+4s2-s+0.4(18)4.2优化过程
根据控制系统的结构图搭建Simulink模型,如图3所示。
控制系统Simulink模型的流程为由优化算法赋值给PID参数KP、KI、KD,运行控制系统,得到系统的性能指标,送入优化算法,看是否已经达到优化要求。优化流程如图4所示。
4.3优化结果比较
经过以上萤火虫算法的比较,得到CSFA算法性能最优,在此用CSFA算法和PSO算法优化控制系统阶跃响应的PID控制器参数。
5结语
本文针对萤火虫算法及近年来提出的两种改进算法,对各算法的原理进行了分析,并运用若干典型的二维和多维标准测试函数,对算法的优化性能进行了仿真对比实验。研究结果表明:基于混沌序列的变尺度萤火虫算法,寻优精度最高,稳定性最好。该算法可很好地平衡全局和局部搜索能力,克服基本萤火虫算法易陷入局部极值点和易早熟等缺点。当陷入局部极值点时,该算法采取变尺度混沌优化和高斯扰动进行精细搜索,避免了陷入局部最优和在最优点附近反复振荡的问题。通过萤火虫算法对控制系统阶跃响应的PID控制参数优化的仿真结果,可以表明萤火虫算法作为一个新颖的智能算法比现有的传统优化算法优化效果好,响应时间短,并且基本没有超调,跟踪过程平稳。因此将萤火虫算法应用在PID参数优化中是可行的。
后续研究将进一步分析萤火虫算法参数对其收敛速度和寻优精度的影响,探索其它智能算法和萤火虫算法的有效结合,进一步改善算法性能。并进一步将算法应用到复杂工业过程实时优化中,以解决实际生产中面临的多维复杂函数实时求解问题。
参考文献参考文献:
[1]YANG XS.Natureinspired meta heuristic algorithm[M].Luniver Press,2008:8196.
[2]趙玉新.XIN-SHE YANG,刘利强.新兴元启发式优化方法[M].北京:科学出版社,2013:148170.
[3]陈恺,陈芳,戴敏,等.基于萤火虫算法的二维熵多阈值快速图像分割[J].光学精密工程,2014,22(2):517522.
[4]李永林,叶春明.基于萤火虫算法的零等待流水线调度优化[J].机械设计与研究,2013,29(6):5054.
[5]彭伟.汪镭 基于萤火虫算法的神经网络CPI预测模型[J].微型电脑应用,2012,28(3):4655.
[6]K NAIDU,H MOKHLIS,AHA BAKAR,et al.Application of firefly algorithm with online wavelet filter in automatic generation control of an interconnected reheat thermal power system[J].Electrical Power and Energy Systems,2014.
[7]LALIT CHANDRA SAIKIA,SHASHI KANT SAHU.Automatic generation control of a combined cycle gas turbine plant with classical controllers using Firefly Algorithm[J].Electrical Power and Energy Systems,2013.
[8]LUCKASIK S,AK S.Firefly algorithm for continuous constrained optimization tasks[C].ICCCI 2009:Proceedings of the First International Conference on Computational Collective Intelligence,Semantic Web,Social Networks and Multiagent Systems,LNCS 5796.Berlin:Springer,2009:97100.
[9]冯艳红,刘建芹,贺毅朝.基于混沌理论的动态种群萤火虫算法[J].计算机应用,2013,33(3):796799.
[10]王翔,于浩杰,颜敏,等.一种新颖的改进萤火虫算法[J].计算机与应用化学,2014,31(8):987992.
[11]徐华丽,苏守宝,陈家俊,等.变尺度混沌光强吸收系数的萤火虫优化算法[J].计算机应用研究,2015,32(2):368371.
[12]王铭波,符强,童楠,等.基于模拟退火机制的多种群萤火虫算法[J].计算机应用,2015,35(3):691695.
[13]高伟明.萤火虫算法的研究与应用[D].兰州:兰州大学,2013.
[14]周茜.混沌理论及应用若干问题的研究[D].天津:南开大学,2010:1422
[15]陈路伟.基于萤火虫算法的PID参数优化方法研究[J].现代电子技术,2015,38 (18):57.