智能优化算法:果蝇优化算法
摘要:Pan 于 2011 年受果蝇觅食行为启发,提出了果蝇优化算法 (FOA)。虽然其出现时间不长,但因其具有清晰的生物机制、可塑性强、易编程、较快的搜索速度等优点,所以已经越来越受到人们的重视。
1.算法原理
果蝇优化算法(FOA)是基于群体的演化算法,其基本思想来源于果蝇觅食行为。果蝇在嗅觉和视觉能力上优于其他物种。果蝇首先通过嗅觉搜索食物(可达 40 km 远),当离食物较近时,通过敏锐的视觉继续进行搜索,并最终找到食物源。图 1 为果蝇觅食过程。

图1. 果蝇觅食过程
根据果蝇群体觅食行为特点,可将标准果蝇优化算法分为以下几个步骤。
(1) 初始化果蝇群体位置:
{intX_axisintY_axis(1)
(2) 给出果蝇个体利用嗅觉搜寻食物的随机方向与距离:
{Xi=X_axis+RandomValueYi=Y_axis+RandomValue(2)
(3) 由于开始无法获知食物的具体位置,所以先计算果蝇个体与原点之间的距离 Disti ,再计算味道浓度判定值 Si :
Disti=Xi2+Yi2(3)
Si=1/Disti(4)
(4) 味道浓度判定值(Si )代入味道浓度判定函数(或称为 Fitness function)以求出该果蝇个体位置的味道浓度Smelli :
Smelli=Fitness(Si)(5)
(5) 找出此果蝇群体中味道浓度最高的果蝇(求极大值):
[bestSmell,bestIndex]=min(Smell)(6)
(6) 保留最佳味道浓度值与 x、$y4 坐标,此时果蝇群体利用视觉往该位置飞去:
SmellBest=bestSmell(7)
{X_axis=X(bestIndex)Y_axis=Y(bestIndex)(8)
(7) 进入迭代寻优,重复执行步骤(2) ~ 步骤(5),并判断味道浓度是否优于前一迭代味道浓度,若是则执行步骤(6)。
2.算法结果

4.参考文献
[1]李少波,赵辉,张成龙,郑凯.果蝇优化算法研究综述[J].科学技术与工程,2018,18(01):163-171.
5.Matlab代码
https://mianbaoduo.com/o/bread/aJWcm58=