这周新学的萤火虫算法,写个笔记加深理解,嘤嘤嘤。
1、自然界中的萤火虫;
2、萤火虫算法简介;
3、基本GSO算法;
4、基本FA算法;
1.自然界中的萤火虫
萤火虫生理结构十分特殊,它腹部的末端内充满了许多含磷的发光质及发光酵素,这些含磷的发光质及发光酵素,会在萤火虫腹的部发出一闪一闪的微弱亮光。萤火虫发出的亮光,主要是为了发送信号,萤火虫在求偶、警戒、诱捕等都是用这种方式。
2.算法简介
遵循原则
1、用待解决问题的目标函数值作为判断解优劣的标准;
2、目标函数值被称为发光亮度,值越大,代表 发光亮度越高,因此此解位置越好;
3、发光亮度决定该解的越高,因此此解位置越好;
3、发光亮度决定该解的 吸引度,亮度越高,吸引度越大,可吸引视线范围内比其亮度弱的萤火虫向其移动;
4、亮度和吸引度与距离成反比,随着距离的增加而减小。
1. 萤火虫优化算法(Glowworm Swarm Optimization, GSO)是一种新型的群智能优化算法。该算法模拟自然界萤火虫的发光特性,通过比较荧光素值的大小达到交流信息的目的,从而实现问题的优化。该算法具有参数较少、操作简单且稳定性较好等优点。是一种新型的群智能优化算法。该算法模拟自然界萤火虫的发光特性,通过比较荧光素值的大小达到交流信息的目的,从而实现问题的优化。该算法具有参数较少、操作简单且稳定性较好等优点。
2. 萤火虫算法(Firefly Algorithm)是一种启发式算法,灵感来自于萤火虫闪烁的行为。萤火虫的闪光,其主要目的是作为一个信号系统,以吸引其他的萤火虫。
算法基本思想
根据上述规则,可见每只萤火虫均在其搜索区域内寻找亮度更高的伙伴,并向伙伴移动,实现位置优化,最后找到最优解。
1、利用待求解问题的目标函数计算出每一个点的函数值,用以代表点的光亮度;
2、每一个点在其视野范围(圆形区域)内选择亮度更高的伙伴,并向其靠近,实现位置进化;
3、优胜劣汰,将位置不好的解淘汰;
4、进行第二步。
3.基本GSO算法
1、GSO算法寻优的简要思想
荧光素值 :根据目标函数计算的值
感知半径:每一个点能搜索到的范围的半径个体只能在自己的感知范围内寻找优秀个体,当个体在自身搜索范围内寻找到了荧光素值更大的个体,则向该个体移动。
2、所需基本变量和常数
设m为种群规模;N表示待求解问题的维数;t表示当前时刻; 表示t时刻萤火虫i的荧光素值,当t=0时,荧光素值相等
=C。对于萤火虫 i,在N维空间中,其位置向量Xi定义为Xi=(xi1,xi2,....xiN).
萤火虫的感知半径:每只萤火虫都发出一定量的荧光素用来吸引周围的萤火虫个体,并且每只萤火虫都有各自的感知域(搜索范围),感知域的大小由感知半径决定。在此萤火虫i的感知半径为 ,感知域范围为:0<=
<=
,萤火虫i在自己的感知域内寻找比自己荧光素值更大的个体。
GSO算法的四个阶段
(1)荧光素值更新
萤火虫i在时刻t的荧光素值计算如下:
其中:荧光素衰减因子;
:荧光素更新率;
:萤火虫i在时刻t所处位置对应的目标函数值(亮度)。
(2)寻找最亮个体
设定萤火虫i的邻域集为 ,定义如下:
dij=萤火虫i和j之间的欧氏距离.
若萤火虫i有多个邻居,它会根据荧光素值的概率比例从邻域集中随机选择一个邻居,i朝j移动的概率为:


GSO算法流程为:



4.FA算法


