萤火虫算法

Posted 编码雪人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了萤火虫算法相关的知识,希望对你有一定的参考价值。

1. 萤火虫优化算法背景

image
受萤火虫发光强度的启发,2008年,英国剑桥大学学者Xin-She Yang提出萤火虫算法(Firefly Algorithm, FA)。自然界中,萤火虫可以发出短促、有节奏的闪光。通常这种闪光仅在一定范围内可见。萤火虫通过闪光可以吸引异性和猎取食物。为了使算法更加简单,该算法只考虑了萤火虫强度的变化和吸引力这两个因素。

2. 萤火虫优化算法理想化数学模型

依照萤火虫发光的特性,给出以下理想化规则:
(1) 萤火虫不分雌雄,每个萤火虫都会被比它发光更亮的萤火虫吸引;
(2) 吸引力与发光强度成正比;
(3) 萤火虫的亮度由目标函数值决定。

3. 萤火虫优化算法的更新过程

3.1 绝对亮度的定义

为了表示萤火虫\\(i\\)的亮度随距离\\(r\\)的变化,定义如下绝对亮度:
萤火虫\\(i\\)绝对亮度为距离\\(r=0\\)时的亮度,记为\\(I_i\\).
注意:为了降低算法的复杂度,假定萤火虫\\(i\\)的绝对亮度\\(I_i\\)\\(x_i\\)的目标函数值相等。

3.2 相对亮度的定义

为了表示萤火虫\\(i\\)对萤火虫\\(j\\)的吸引大小,定义如下相对亮度:
萤火虫\\(i\\)在萤火虫\\(j\\)位置的光强度,记为\\(I_{ij}\\)

\\[I_{ij}(r_{ij}) = I_ie^{-\\gamma{r_{ij}^2}} \\]

其中,\\(\\gamma\\)为光吸收系数,\\(r_{ij}\\)为萤火虫\\(i\\)到萤火虫\\(j\\)的距离.

3.3 吸引力的定义

假设萤火虫\\(i\\)对萤火虫\\(j\\)的吸引力和萤火虫\\(i\\)对萤火虫\\(j\\)的相对亮度成比例,所以萤火虫\\(i\\)对萤火虫\\(j\\)的吸引力可表示为:

\\[\\beta_{ij}(r_{ij}) = \\beta_0e^{-\\gamma{r_{ij}^2}} \\]

其中,\\(\\beta_0\\)为最大吸引力,当距离\\(r=0\\)时,吸引力最大。通常\\(\\beta_0=1\\),\\(\\gamma\\in{[0.01,100]}\\).

3.4 萤火虫位置更新公式

萤火虫\\(i\\)吸引着萤火虫\\(j\\),因此萤火虫\\(j\\)的位置更新公式:

\\[x_j(t+1) = x_j(t) + \\beta_{ij}(r_{ij})(x_i(t) - x_j(t)) + \\alpha\\varepsilon_j \\]

其中,\\(t\\)为算法的迭代次数;\\(x_i\\)\\(x_j\\)分别为萤火虫\\(i\\)和萤火虫\\(j\\)所处的空间位置;\\(\\alpha\\in{[0,1]}\\), \\(\\varepsilon\\)是高斯分布得到的随机向量。

4. Matlab代码实现

以上是关于萤火虫算法的主要内容,如果未能解决你的问题,请参考以下文章

优化算法萤火虫算法matlab

智能优化算法-麻雀搜索算法基于萤火虫结合麻雀搜索算法求解单目标优化问题附matlab代码

机器学习实战应用案例100篇(十五)-萤火虫算法从原理到实战应用案例

SVM预测基于萤火虫算法改进SVM算法实现数据分类matlab源码

图像分割基于matlab萤火虫算法图像聚类分割含Matlab源码 2106期

图像分割基于matlab萤火虫算法图像聚类分割含Matlab源码 2106期