萤火虫算法
Posted 编码雪人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了萤火虫算法相关的知识,希望对你有一定的参考价值。
1. 萤火虫优化算法背景
受萤火虫发光强度的启发,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}\\)
其中,\\(\\gamma\\)为光吸收系数,\\(r_{ij}\\)为萤火虫\\(i\\)到萤火虫\\(j\\)的距离.
3.3 吸引力的定义
假设萤火虫\\(i\\)对萤火虫\\(j\\)的吸引力和萤火虫\\(i\\)对萤火虫\\(j\\)的相对亮度成比例,所以萤火虫\\(i\\)对萤火虫\\(j\\)的吸引力可表示为:
其中,\\(\\beta_0\\)为最大吸引力,当距离\\(r=0\\)时,吸引力最大。通常\\(\\beta_0=1\\),\\(\\gamma\\in{[0.01,100]}\\).
3.4 萤火虫位置更新公式
萤火虫\\(i\\)吸引着萤火虫\\(j\\),因此萤火虫\\(j\\)的位置更新公式:
其中,\\(t\\)为算法的迭代次数;\\(x_i\\)、\\(x_j\\)分别为萤火虫\\(i\\)和萤火虫\\(j\\)所处的空间位置;\\(\\alpha\\in{[0,1]}\\), \\(\\varepsilon\\)是高斯分布得到的随机向量。
4. Matlab代码实现
以上是关于萤火虫算法的主要内容,如果未能解决你的问题,请参考以下文章
智能优化算法-麻雀搜索算法基于萤火虫结合麻雀搜索算法求解单目标优化问题附matlab代码
机器学习实战应用案例100篇(十五)-萤火虫算法从原理到实战应用案例
SVM预测基于萤火虫算法改进SVM算法实现数据分类matlab源码