1.算法原理
萤火虫之间通过闪光来进行信息的交互,同时也能起到危险预警的作用。而闪光遵循两个物理定律:
-
光强(I)与距离(r)成反比,形式为光强随距离的增加而降低;
-
空气会吸收部分光线,导致光强度呈指数下降。
为了方便算法的描述,萤火虫算法可基于以下三个规则来制定:
-
假定所有萤火虫都是雌雄同体的,因此任何萤火虫都可以被其他性别如何交配;
-
吸引力与萤火虫的光强成正比;
-
萤火虫的光强要由优化的成本函数决定。
2.光强和吸引力
从三个规则可看出,萤火虫算法的设计考虑了两个问题:光强的变化和与距离成反比的吸引力的形成。因此,萤火虫的吸引力可以通过其闪光强度来确定,而闪光强度又与目标函数相关。
对于最大优化问题,萤火虫在某一位置 x 的亮度 I 可以设定与目标函数 f(x)成正比,即 I(x)∝f(x)。但吸引力是相对的,它应该是由其他萤火虫所感受或断定的,因此该值会因萤火虫 i 和萤火虫 j 之间的距离 不同而不同,同光强一样,也会受到空气吸收程度的影响。光强 I(r)的的变化遵循平方反比律