【智能优化算法】萤火虫优化算法 (Firefly algorithm,FA),2009

前言

萤火虫优化算法(Firefly algorithm,FA)。由英国剑桥大学的 Yang 等人于 2009 年提出,主要模拟了萤火虫根据个体亮度而相互吸引的行为。作为最新的群智能优化算法之一 , 该算法具有更好的收敛速度和收敛精度 , 且易于工程实现等优点。

【智能优化算法】萤火虫优化算法 (Firefly algorithm,FA),2009_第1张图片

截止到 2023 年,算法引用趋势

【智能优化算法】萤火虫优化算法 (Firefly algorithm,FA),2009_第2张图片
1、FA算法和PSO引用量对比,二十分之一
2、FA算法的引用量逐年上升
3、除了PSO,比较多的是蚁群和蜂群算法
【智能优化算法】萤火虫优化算法 (Firefly algorithm,FA),2009_第3张图片

1. 萤火虫相关的生物行为

萤火虫通过下腹的一种化学反应-生物发光(bioluminescence)。这种生物发光是萤火虫求偶仪式的重要组成部分,也是雄性萤火虫和雌性萤火虫交流的主要媒介,发出光也可用来引诱配偶或猎物,同时这种闪光也有助于保护萤火虫的领地,并警告捕食者远离栖息地。

该算法的建立基于两个关键的概念:发出的光的强度两个萤火虫之间产生的吸引力的程度

FA 中 , 萤火虫发出光亮的主要目的是作为一个信号系统 , 以吸引其他的萤火虫个体 , 其假设为:

  1. 萤火虫不分性别 , 它将会被吸引到所有其他比它更亮的萤火虫那去 ;
  2. 萤火虫的吸引力和亮度成正比 , 对于任何两只萤火虫 , 其中一只会向着比它更亮的另一只移动 , 然而 , 亮度是随着距离的增加而减少的 ;
  3. 如果没有找到一个比给定的萤火虫更亮 , 它会随机移动 。

2. 算法仿生设计

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

根据物理规律:在距离光源一定距离处的光强服从平方反比定律:
I ( r ) = I s r 2 (2-1) I(r) = \frac{I_s}{r^2}\tag{2-1} I(r)=r2Is(2-1)

(1) 萤火虫的相对荧光亮度为:

I = I 0 e − γ r i , j (2-2) I = I_0e^{-\gamma r_{i,j}}\tag{2-2} I=I0eγri,j(2-2)
其中, I 0 I_0 I0 为萤火虫的最大荧光亮度,与目标函数值相关,目标函数值越优自身亮度越高; γ \gamma γ 为光强吸收系数(通常取值 0.01), 荧光会随着距离的增加和传播媒介的吸收逐渐减弱; r i , j r_{i,j} ri,j 为萤火虫 i i i j j j 之间的空间距离

(2) 萤火虫的吸引度为:

β = β 0 ∗ e − γ r i , j 2 (2-3) \beta = \beta_0 * e^{-\gamma r_{i,j}^2}\tag{2-3} β=β0eγri,j2(2-3)
其中, β 0 \beta_0 β0 为最大吸引度; γ \gamma γ 为光强吸收系数; r i , j r_{i,j} ri,j 为萤火虫 i i i j j j 之间的空间距离

(3) 萤火虫 i i i 被吸引向萤火虫 j j j 移动的位置更新公式如式 (2-4) 所示 :

x i t + 1 = x 1 t + β ∗ ( x j t − x i t ) + α ∗ ϵ i t (2-4) x_i^{t+1} = x_1^t + \beta * (x_j^t - x_i^t) + \alpha * \epsilon_i^t\tag{2-4} xit+1=x1t+β(xjtxit)+αϵit(2-4)
其中, x i t x_i^t xit, x j t x_j^t xjt 为萤火虫 i , j i, j i,j 所处的空间位置; α ∈ \alpha \in α [0, 1] 为步长因子; ϵ i t = ( rand − 1 / 2 \epsilon_i^t = (\text{rand} -1/2 ϵit=(rand1/2), rand \text{rand} rand 为 [0,1] 上服从均匀分布的随机数。

3. 算法流程

  • (1) 初始化萤火虫算法参数.

  • (2) 计算各萤火虫的亮度并排序得到亮度最大的萤火虫位置.

  • (3)判断迭代是否结束:判断是否达到最大迭代次数 T ,达到则转(4),否则转(5).

  • (4) 输出亮度最大的萤火虫位置及其亮度.

  • (5) 更新萤火虫位置:根据式(2-4)更新萤火虫的位置,对处在最佳位置的萤火虫进行随机扰动,搜索次数增加 1 ,转(2),进行下一次搜索.

4. 算法特点

1、借鉴了萤火虫根据发光强度相互吸引的特点,但是简化了很多东西,比如雌雄、发光的模式如闪烁频率等

2、算法需要调整的参数有点多

3、原文提出时是针对多模态问题,但是文中未对多模态如何有效等进行说明,仅仅是在实验上说明多模态更有效

4、推测原因如下:和PSO更新公式挺像,但是去掉了gBest,相当于只是向一个比自己好的个体学习,极大降低算法整体收敛速度,增大了开发的时间和范围从仿生的角度来讲,萤火虫相互吸引是从个体的角度出发的,而且发光强弱只代表对萤火虫的吸引力(从个体角度出发),而不是最优食物或者最优捕食地点的信息(从群体角度出发),所以觉得该算法从仿生的角度出发,并没有考虑到一个群智能在里面,更多的像是个体智能

5. 算法相关改进

由于跟随的人不多,改进都比较常规
– Firefly representation (Either Binary of real value)
– Scheme of Population (Swarm or Multi-Swarm)
– Best Solution calculation (Elitism or non-Elitism)
– Movement of Fireflies can be Uniform, Levy Flights, Gaussian, chaos distribution)
参数自适应控制
混合算法

【智能优化算法】萤火虫优化算法 (Firefly algorithm,FA),2009_第4张图片

Kumar, V., Kumar, D. A Systematic Review on Firefly Algorithm: Past, Present, and Future. Arch Computat Methods Eng 28, 3269–3291 (2021).

References

[1] Yang X S, Deb S. Eagle strategy using l´ evy walk and firefly algorithms for stochastic optimization. Nature Inspired Cooperative Strategies for Optimization (NICSO 2010), Berlin Heidelberg: Springer, 2010. 101−111

[2] 智能优化算法:萤火虫算法-附代码

你可能感兴趣的:(智能优化算法,算法,机器学习,人工智能)