果蝇优化算法--Matlab实现
1果蝇优化算法原理介绍
果蝇是一种广泛存在于温带和热带地区的昆虫,具有优于其他物种的嗅觉和视觉能力. 在寻找食物时,果蝇个体先利用自身嗅觉器官嗅到食物的气味,并向周围的果蝇发送气味信息,或者从周围的果蝇接收气味信息;之后果蝇利用其视觉器官,通过比较得出当前群体中收集到最好气味信息的果蝇位置,群体中的其他果蝇均飞向该位置,并继续展开搜索. 图 1展示了果蝇群体搜索食物的简要过程.
1.1步骤分析
根据果蝇群体觅食的行为特点,标准 FOA寻优
大致分为以下几个步骤.
Step 1:初始化.
设置种群规模(popsize),最大迭代次数(maxgen),果蝇群体位置范围(LR)和果蝇的单次飞行范围(FR)等相关参数值. 果蝇群体中每个个体的位置信息由其对应的(X; Y )二维坐标给出,其初始位置由下面的公式定义:
Step 2:嗅觉搜索过程.
Step 2.1:当群体中的每一只果蝇利用其嗅觉搜索时,赋予它一个随机的飞行方向和距离. 果蝇个体 i 新的位置由下式给出:
Step 2.2:因为食物味道的来源位置是未知的,因此先利用下式计算果蝇个体距离原点的距离DISTi:
然后通过下式计算其味道浓度判定值Si:
Step 2.3:通过下式计算当前群体中每个果蝇个体的味道浓度值Smelli: