智能优化算法有很多是模仿自然界中的生物行为进行的,例如众所周知的粒子群算法、遗传算法等,最近新看到一种算法,萤火虫优化算法(firefly algorithm)。
FA主要是利用萤火虫发光的特点进行随机优化。利用萤火虫个体模拟解空间的可行解,目标函数值表示萤火虫的亮度,较亮的萤火虫会吸引其他个体向这个方向进行位置移动,他们之间的吸引力与距离成反比,如果某个萤火虫周围没有更亮的个体,它选择不移动或者随机变换位置。两只萤火虫之间的吸引力计算公式如下:
贝塔0是指距离为0时的吸引力值,rij表示两只萤火虫之间的欧式距离,拉姆塔一般表示对光的吸收率,通常取1.
萤火虫会飞向更亮的萤火虫位置处,其位置更新公式为:
其中阿尔法是[0,1]之间的随机数,另一个因子是服从均匀分布的随机因子。
算法流程如下
1、初始化各个参数和每只萤火虫的位置
2、计算每对萤火虫之间的吸引力,选取萤火虫移动的方向
3、更新整个种群中萤火虫的位置,更新萤火虫的最优位置
4、判断是否达到终止条件,是就结束算法,否则就返回步骤2继续进行