一种新颖的仿生群智能优化算法_萤火虫算法

  • 格式:pdf
  • 大小:305.38 KB
  • 文档页数:3

收稿日期:2011-03-16;修回日期:2011-04-29基金项目:国家教育部人文社会科学规划基金项目(10YJA630187);高校博士点专项科研基金项目(20093120110008);上海市重点学科建设资助项目(S30504)作者简介:刘长平(1974-),男,河南洛阳人,讲师,博士研究生,主要研究方向为智能优化、工业工程(lcp_mail@163.com);叶春明(1964-),男,安徽宣城人,副院长,教授,博导,博士,主要研究方向为智能优化、工业工程.

一种新颖的仿生群智能优化算法:萤火虫算法*

刘长平1,2,叶春明1(1.上海理工大学管理学院,上海200093;2.淮阴工学院,江苏淮安223001)

摘要:萤火虫算法是受自然界中的萤火虫通过荧光进行信息交流这种群体行为的启发演变而来。作为一种新颖的仿生群智能优化算法,分析了萤火虫算法的仿生原理,从数学角度对算法实现优化过程进行了定义。通过典型的函数优化和组合优化问题对算法进行了仿真测试,测试结果表明了萤火虫算法在连续空间和离散空间优化的可行性和有效性,具有良好的应用前景。关键词:群智能;萤火虫算法;仿生原理;函数优化;组合优化中图分类号:TP301.6文献标志码:A文章编号:1001-3695(2011)09-3295-03doi:10.3969/j.issn.1001-3695.2011.09.024

Novelbioinspiredswarmintelligenceoptimizationalgorithm:fireflyalgorithm

LIUChang-ping1,2,YEChun-ming1(1.ManagementSchool,UniversityofShanghaiforScience&Technology,Shanghai200093,China;2.HuaiyinInstituteofTechnology,Hua-ianJiangsu223001,China)

Abstract:Inspiredbysocialbehavioroffirefliesandthephenomenonofbioluminescentcommunication,fireflyalgorithm(FA)isdevelopedasanovelbionicswarmintelligenceoptimizationmethod.Thispaperanalyzedthebionicprincipleoffireflyalgorithmanddefinedthemechanismofoptimizationbymathematics.TestedtheFAbybenchmarkfunctionsandcombinatorialoptimizationinstances.Simulationsandresultsindicatethatthenewbioinspiredalgorithmhasbetterfeasibilityandvalidityforcontinuousspaceoptimizationanddiscretespaceoptimization.Keywords:swarmintelligence;fireflyalgorithm;bionics;functionoptimization;combinatorialoptimization

0引言群智能优化算法是近几十年发展起来的仿生模拟进化算法,具有操作简单、宜于并行处理、鲁棒性强等特点,典型算法如蚁群算法、粒子群算法等[1,2]。这类算法将问题的所有可能

解集看做解空间,从代表问题可能解的一个子集开始,通过对该子集施加某种算子操作产生新的解集,并逐渐使种群进化到包含最优解或近似最优解的状态。在进化过程中仅需要目标函数的信息,不受搜索空间连续或可微的限制就可以找到最优解,因此,被广泛应用于模式识别[3]、自动控制[4]、网络路由选

择[5,6]、机器人路径规划[7,8]、组合优化[9,10]以及社会科学[11,12]

等多个领域。萤火虫算法是模拟自然界中萤火虫成虫发光的生物学特性发展而来,也是基于群体搜索的随机优化算法。关于该算法目前文献有两种版本:a)由印度学者Krishnanand等人[13]提出,称为GSO(glowwormswarmoptimization);b)由剑桥学者Yang[14]提出,称为FA(fireflyalgorithm)。两种算法的仿生原

理相同,但在具体实现方面有一定差异。本文分析了萤火虫算

法的仿生原理,并从数学角度对算法实现优化过程进行定义,通过几个典型的函数优化和组合优化问题的测试,对该算法的可行性和有效性进行验证。

1萤火虫算法的优化机理1.1算法仿生原理自然界中约有2000种萤火虫,多数种类的萤火虫会发出短促、有节奏的荧光,不同种类的萤火虫发光目的不同,其真实原因仍在探讨当中。一般认为,萤火虫成虫发光的生物学意义是利用物种特有的闪光信号来定位并吸引异性,借此完成求偶交配及繁殖的使命;少数萤火虫利用闪光信号进行捕食;还有一种作用是作为警戒信号,即当萤火虫受到刺激时会发出亮光。萤火虫优化算法就是模拟自然界中萤火虫的发光行为构造出的随机优化算法,但在算法中舍弃了萤火虫发光的一些生物学意义,只利用其发光特性来根据其搜索区域寻找伙伴,并向邻域结构内位置较优的萤火虫移动,从而实现位置进化。在该算法中,萤火虫彼此吸引的原因取决于两个要素,即自

第28卷第9期2011年9月计算机应用研究ApplicationResearchofComputersVol.28No.9Sep.2011身亮度和吸引度。其中,萤火虫发出荧光的亮度取决于自身所在位置的目标值,亮度越高表示所处的位置越好,即目标值越佳。吸引度与亮度相关,愈亮的萤火虫拥有愈高的吸引力,可以吸引视线范围内亮度比其弱的萤火虫往这个方向移动。如果发光亮度相同,则萤火虫各自随机移动。亮度和吸引度与萤火虫之间的距离成反比,都随着距离的增加而减小,这相当于模拟了荧光在空间传播时被传播媒介吸收而逐渐衰减的特性。萤火虫算法是通过模拟萤火虫的群体行为构造出的一类随机优化算法。其仿生原理是:用搜索空间中的点模拟自然界中的萤火虫个体,将搜索和优化过程模拟成萤火虫个体的吸引和移动过程,将求解问题的目标函数度量成个体所处位置的优劣,将个体的优胜劣汰过程类比为搜索和优化过程中用好的可行解取代较差可行解的迭代过程。

1.2算法的数学描述与分析如上所述,萤火虫算法包含两个要素,即亮度和吸引度。亮度体现了萤火虫所处位置的优劣并决定其移动方向,吸引度决定了萤火虫移动的距离,通过亮度和吸引度的不断更新,从而实现目标优化。从数学角度对萤火虫算法的优化机理进行如下描述[15,16]:

定义1萤火虫的相对荧光亮度为I=I0×e-γrij(1)

其中:I0为萤火虫的最大萤光亮度,即自身(r=0处)荧光亮度,与目标函数值相关,目标函数值越优自身亮度越高;γ为光强吸收系数,因为荧光会随着距离的增加和传播媒介的吸收逐渐减弱,所以设置光强吸收系数以体现此特性,可设为常数;rij

为萤火虫i与j之间的空间距离。

定义2萤火虫的吸引度为

β=β0×e

-γr2ij(2)

其中:β0为最大吸引度,即光源处(r=0处)的吸引度;γ、rij意义同上。定义3萤火虫i被吸引向萤火虫j移动的位置更新由式(3)决定:xi=xi+β×(xj-xi)+α×(rand-1/2)(3)

其中,xi、xj为萤火虫i和j所处的空间位置;α为步长因子,是[0,1]上的常数;rand为[0,1]上服从均匀分布的随机因子。算法实现优化的过程是:先将萤火虫群体随机散布在解空间,每一只萤火虫因为所处位置不同发出的荧光亮度也不同,通过比较(根据式(1)),亮度高的萤火虫可以吸引亮度低的萤火虫向自己移动,移动的距离主要取决于吸引度的大小(根据式(2))。为了加大搜索区域,避免过早陷入局部最优,在位置更新过程中增加了扰动项α×(rand-1/2),根据式(3)来计算更新后的位置。这样通过多次移动后,所有个体都将聚集在亮度最高的萤火虫的位置上,从而实现寻优。

2算法流程综上所述,萤火虫优化算法流程如下:a)初始化算法基本参数。设置萤火虫数目m,最大吸引度β0,光强吸收系数γ,步长因子α,最大迭代次数maxT或搜索精度ε。b)随机初始化萤火虫的位置,计算萤火虫的目标函数值作为各自最大萤光亮度I0。c)由式(1)(2)计算群体中萤火虫的相对亮度I和吸引度β,根据相对亮度决定萤火虫的移动方向。d)根据式(3)更新萤火虫的空间位置,对处在最佳位置的萤火虫进行随机扰动。e)根据更新后萤火虫的位置,重新计算萤火虫的亮度。f)当满足搜索精度或达到最大搜索次数则转g);否则,搜索次数增加1,转c),进行下一次搜索。g)输出全局极值点和最优个体值。算法的时间复杂度为O(m2),m是萤火虫数目。3仿真实验本文选用了几个典型的函数优化和组合优化问题来测试萤火虫算法的性能。3.1函数优化问题仿真测试参数设置:萤火虫算法中,萤火虫数m=100;光强吸收系数γ=1.0;最大吸引度β0=1.0;步长因子α=0.02;迭代次数maxT=200。粒子群算法中,粒子数m=100;采用文献[17]中所提出的线性减少的惯性权重:Wmax=0.9,Wmin=0.2;学习因子:C1=C2=1.4962;迭代次数maxT=200;每种算法独立运行20次,结果如表1所示。PSO表示基本粒子群算法,FA表示基本萤火虫算法。表1函数优化问题测试结果函数维数群体数平均最优值/(寻优率/%)PSOFAf1(x)2100-0.9246(21.5%)-0.9981(87%)f2(x)2100-1.6922e+002(29.5%)-1.7232e+002(39%)f3(x)1010018.8370(0%)15.6553(0%)测试函数如下:a)SchafferF6functionminf1(x)=sin2x21+x槡22-0.5[1+0.001(x21+x22)]2-0.5,xi∈[-100,100]b)Hansenfunctionminf2(x)=∑5i=1i×cos((i-1)×x1+i)×∑5j=1j×cos((j+1)×x2+j)xi∈[-10,10]c)Rastriginfunctionminf3(x)=∑Di=1[x2i-10cos(2πxi)+10],xi∈[-5.12,5.12]SchafferF6函数是具有强烈振荡的多峰函数,理论最优值为-1,算法搜索到的最优解小于-0.9999时认为寻优成功。Hansen函数也是一个多峰函数,局部极值点有760个,理论最优值为-176.5417。Rastrigrin函数为高度多模态函数,在解空间内存在大约10n个(n为解空间维数)局部极小点,理论最优值为0。测试表明,在相同维数和群体数条件下,对于测试函数1、2,FA算法的寻优精度、寻优率和收敛速度均高于PSO算法。对于测试函数3,两种算法均未搜索到最优解,但FA算法寻优精度要高于PSO算法,反映出这两种算法对于高维多峰函数的优化效果还不理想,但考虑到采用的均是基本算法,优