6.2.1 萤火虫算法

更新于 2026年10月10日 版权声明
6.2.1 萤火虫算法

萤火虫算法(Firefly Algorithm,FA)是模拟自然界中成虫发光的生物学特性发展而来的,也是基于群体的随机优化算法。2008年,Yang等人研究了萤火虫个体间相互吸引度与发光强度之间的关系和萤火虫的移动特性,提出了一种新型群智能优化算法,即萤火虫算法[11]。

通过对自然界中萤火虫生活习性的观察,发现萤火虫有一种特征,萤火虫之间会受到彼此发出的光吸引,其中发光强的个体会吸引发光弱的个体。受到这种特征的启发,萤火虫算法的基本思想是将空间中的各个点当作萤火虫,将适应度当作萤火虫的发光强度,发光强度越大代表适应度越高,其所在的空间位置也就越好,适应度低的空间点会向适应度高的空间点移动,通过这种吸引,完成空间点在空间中的位置迭代,并最终找到适应度最大的最优位置,这个过程就是萤火虫算法的寻优过程。

萤火虫算法有以下条件。

①萤火虫算法中的萤火虫是无性别的,因此所有萤火虫之间都可以相互吸引。

②萤火虫算法中影响萤火虫之间相互吸引度的条件只有发光强度和距离,与前者成正比,与后者成反比。

③萤火虫的发光强度就是适应度,其计算方式是由目标函数决定的,一般是在指定的范围内与指定的函数成比例关系。

萤火虫算法的数学描述和主要参数如下。

①萤火虫相对发光强度,如式(6-3)所示:(https://www.daowen.com)

图示

式中:I 0表示萤火虫的最大亮度,由目标函数决定,位置越好,亮度越大;γ表示光吸收系数,其表示的是光的强度会受到距离大小和传播介质吸收的影响而减弱;rij表示空间点i和空间点j之间的欧氏距离。

②相互吸引度β,如式(6-4)所示:

图示

式中,β0代表最大吸引度,其意义是两个空间点距离为0时的吸引度。

③最优目标迭代,如式(6-5)所示:

图示

式中:t表示算法迭代的时刻;α表示步长因子;rand表示一个随机扰动项,其主要功能是产生振荡,一般为在区间[0,1]上的均匀分布。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)