萤火虫算法及其应用研究小组分工PPT讲解陈国强PPT制作Matlab仿真徐越吴顺胡福威刘浩肖慧敏王丹娜算法产生背景算法原理算法公式算法实现流程Matlab仿真适用领域优缺点1234567目录CONTENTS1.算法产生背景人工萤火虫群优化(GlowwormSwarmOptimization,GSO)算法是印度学K.N.Krishnanand和D.Ghose于2005年提出的一种新型群智能优化算法。算法思想源于模拟自然界中萤火虫在晚上群聚活动的自然现象而提出的,在萤火虫的群聚活动中,各只萤火虫通过散发荧光素与同伴进行寻觅食物以及求偶等信息交流。一般来说,荧光素越亮的萤火虫其号召力也就越强,最终会出现很多萤火虫聚集在一些荧光素较亮的萤火虫周围。人工萤火虫算法就是根据这种现象而提出的一种新型的仿生群智能优化算法。在人工萤火虫群优化算法中,每只萤火虫被视为解空间的一个解,萤火虫种群作为初始解随机的分布在搜索空间中,然后根据自然界萤火虫的移动方式进行解空间中每只萤火虫的移动。通过每一代的移动,最终使得萤火虫聚集到较好的萤火虫周围,也即是找到多个极值点,从而达到种群寻优的目的。2.算法原理在基本人工萤火虫群优化算法中,每一只人工萤火虫都被随机的分布在目标函数的定义空间内,这些萤火虫拥有各自的荧光素,并且每一个萤火虫都有自己的视野范围,我们称之为决策域半径(local-decisionrange)。每个萤火虫荧光素的亮度和自己所在位置对应目标函数的适应度值有关。荧光越亮的萤火虫表示它所在的位置就越好,即它所对应的目标函数值也更优。萤火虫的移动方式是:每个萤火虫在各自的视野范围内寻找邻域,在邻域中找到发出荧光较亮的萤火虫从而向其移动。每次移动的方向会因为挑选的邻域不同而改变。另外,萤火虫的决策域半径也会根据邻域中萤火虫数量的不同而受影响,当邻域中萤火虫数目过少时,萤火虫会加大自己的决策半径以便需找更多的萤火虫;反之,就会减小自己的决策半径。最终,使得大部分萤火虫聚集在较优的位置上。3.算法公式4.算法实现优化的过程(1)先将萤火虫群体随机散布在解空间,每一只萤火虫因为所处位置不同发出的荧光度也不同,通过比较,亮度高的萤火虫可以吸引亮度低的萤火虫向自己方向移动,移动的距离主要取决于吸引度的大小。(2)为了加大搜索区域,避免过早陷入局部最优,在位置更新过程中增加了扰动项,根据位置更新公式计算更新后的位置。这样通过多次移动后,所有个体都将聚集在亮度最高的萤火虫位置上,从而实现最优。算法流程图如下:5.Matlab仿真测试函数:222212121()exp((3)(5))exp()1010Fxxxxxx22221212222212122()exp((4)(4))exp((4)(4))2*exp((4))2*exp()Fxxxxxxxxx上述两个函数中,F1(x)是在的范围中具有两个峰值函数,F2(x)是在的范围中具有四个峰值函数。•由图1有F1(x)中x1=-0.00305386358606,x2=-0.000797745261189时函数取得最大值。即此时F1(x)=0.999990037569430。•由图2有F2(x)中x1=0.000499802298797,x2=0.001861886962702时函数取得最大值。即此时F2(x)=1.999992788904963。图1F1(x)的寻优结果图2F2(x)的寻优结果图3F1(x)的三维效果图图4萤火虫算法对F1(x)寻优的结果图6F2(x)的三维效果图图8萤火虫算法对F2(x)寻优的结果6.适用领域Krishnanand,K.N.和Ghose,D.已将该算法成功应用于多信号源探测和多模态函数优化领域。2006年,Krishnanand,K.N.等人将萤火虫群优化算法应用于集体机器人、多信号源定位和探测多辐射源领域,并给出了带有动态局部决策范围的萤火虫群优化算法寻找多个源位置的理论推导。2007年,Krishnanand,K.N.等人将萤火虫群优化算法应用于追踪多个移动信号源位置领域和寻找多个气味源位置的网络机器人系统领域。2008年,Krishnanand,K.N.和Ghose,D.给出了萤火虫群优化算法应用于多定位领域的理论基础,并用萤火虫群优化算法捕获多极值函数的多个局部最优值,此外,还将基于多机器人系统的萤火虫群优化算法应用于信号源定位领域。2009年,Krishnanand,K.N.和Ghose,D.用萤火虫群优化算法来优化多极值函数,并捕获多极值函数的多个局部最优值。此Krishnanand,K.N.和Ghose,D.还用基于多种群的萤火虫群优化算法来检测环境中普遍存在的危险之源。但在国内,对人工萤火虫群优化算法的研究还刚起步,可参考文献少。7.算法优缺点优点:萤火虫算法不仅可以优化单峰函数和多峰函数,而且该算法具有较强的局部搜索能力可以在一个娇小的区域内找到该区域的最优解。操作方便、实现简单、参数较少、而且参数对算法的影响较小。缺点:萤火虫算法必须要求感知范围内有优秀个体向其提供信息,否则个体将停止搜索,这种搜索方法对优秀个体的依赖程度太高,从而降低了收敛速度;而且,当个体距离峰值非常近时,由于步长可能大于该距离,将导致个体在峰值附近发生震荡现象。@第五组