龙源期刊网 http://www.qikan.com.cn
几种改进的萤火虫算法性能比较及应用
作者:马良玉 曹鹏蕊
来源:《软件导刊》2017年第01期
摘要摘要:萤火虫算法(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),该算法将萤火虫种群平均分为参数不同的多个子种群。为了防止算法陷入局部最优解,利用模拟退火机制大概率接受
龙源期刊网 http://www.qikan.com.cn
较好的解,小概率接受较差的解。同时,在种群寻优的过程中引入可变的距离权重,通过萤火虫算法的迭代次数动态调整萤火虫的“视野”范围。
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改进萤火虫算法
龙源期刊网 http://www.qikan.com.cn
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分别为当前和最大迭代步数。