萤火虫算法FA及其应用研究
C
O
N
T
E
N
T
S
目
录
1
2
3
4
5
6
7
算法产生背景
算法原理
算法公式
算法实现流程
Matlab仿真
适用领域
优缺点
1. 算法产生背景
人工萤火虫群优化(Glowworm Swarm Optimization,GSO)算
法是印度学K.N.Krishnanand 和 D. Ghose 于 2005 年提出的一种新
型群智能优化算法。
算法思想源于模拟自然界中萤火虫在晚上群聚活动的自然现
象而提出的,在萤火虫的群聚活动中,各只萤火虫通过散发荧光
素与同伴进行寻觅食物以及求偶等信息交流。一般来说,荧光素
越亮的萤火虫其号召力也就越强,最终会出现很多萤火虫聚集在
一些荧光素较亮的萤火虫周围。人工萤火虫算法就是根据这种现
象而提出的一种新型的仿生群智能优化算法。在人工萤火虫群优
化算法中,每只萤火虫被视为解空间的一个解,萤火虫种群作为
初始解随机的分布在搜索空间中,然后根据自然界萤火虫的移动
方式进行解空间中每只萤火虫的移动。通过每一代的移动,最终
使得萤火虫聚集到较好的萤火虫周围,也即是找到多个极值点,
从而达到种群寻优的目的。
2. 算法原理
在基本人工萤火虫群优化算法中,每一只人工萤火虫都
被随机的分布在目标函数的定义空间内,这些萤火虫拥有
各自的荧光素,并且每一个萤火虫都有自己的视野范围,
我们称之为决策域半径(local-decision range)。每个萤火虫荧
光素的亮度和自己所在位置对应目标函数的适应度值有关。
荧光越亮的萤火虫表示它所在的位置就越好,即它所对应
的目标函数值也更优。萤火虫的移动方式是:每个萤火虫
在各自的视野范围内寻找邻域,在邻域中找到发出荧光较
亮的萤火虫从而向其移动。每次移动的方向会因为挑选的
邻域不同而改变。另外,萤火虫的决策域半径也会根据邻
域中萤火虫数量的不同而受影响,当邻域中萤火虫数目过
少时,萤火虫会加大自己的决策半径以便需找更多的萤火
虫;反之,就会减小自己的决策半径。最终,使得大部分
萤火虫聚集在较优的位置上。
3. FA算法公式
4. 算法实现优化的过程
(1)先将萤火虫群体随机散布在解空间,每一只
萤火虫因为所处位置不 同 发出的荧光度也不同,
通过比较,亮度高的萤火虫可以吸引亮度低的萤火
虫向自己方向移动,移动的距离主要取决于吸引度
的大小。
(2)为了加大搜索区域,避免过早陷入局部最优,
在位置更新过程中增加了扰动项,根据位置更新公
式计算更新后的位置。这样通过多次移动后,所有
个体都将聚集在亮度最高的萤火虫位置上,从而实
现最优。
算法流程图如下:
5. Matlab仿真
测试函数:
上述两个函数中,F1(x)是在 的范围中具有两个峰值函数,
F2(x)是在 的范围中具有四个峰值函数。