1. 萤火虫算法简介
(以下描述,均不是学术用语,仅供大家快乐的阅读)
萤火虫算法(Firefly Algorithm,FA)是一种模仿萤火虫之间信息交流,相互吸引集合,警戒危险。算法的原理简单,但实现过程较为复杂,而且算法的提出时间不长,算法的改进、优化处于初级阶段,国内外相应的应用研究已经有了一定的成果。
萤火虫算法中,每个萤火虫的位置代表了一个待求问题的可行解,而萤火虫的亮度表示该萤火虫位置的适应度,亮度越高的萤火虫个体在解空间内的位置越好。萤火虫个体之间,高亮度的萤火虫会吸引低亮度的萤火虫。在解空间内,每个萤火虫会像着亮度比自己高萤火虫飞行来搜寻更优的位置。亮度越大对其他的萤火虫的吸引度越大。同时,萤火虫之间光的传播介质会吸收光,降低光的亮度,影响光的传播,所以萤火虫之间的吸引度会随着空间距离成反比,即两只萤火虫之间的吸引度会随着这两只萤火虫之间距离的增大而减小
2. 算法流程
这次我们的主角就是它了。(顺便吐槽一下,萤火虫发光原理是荧光素氧化发光,那为什么萤火虫的位置会影响它的亮度呢,难道是不同位置的氧气浓度不一样?假装就是这样吧)。
一句话简述萤火虫算法流程:每只萤火虫都向着看上去比自己更亮的萤火虫飞行。
在D维解空间内每个萤火虫的位置为