果蝇优化算法MATLAB实现

果蝇优化算法--Matlab实现

1果蝇优化算法原理介绍

果蝇是一种广泛存在于温带和热带地区的昆虫,具有优于其他物种的嗅觉和视觉能力. 在寻找食物时,果蝇个体先利用自身嗅觉器官嗅到食物的气味,并向周围的果蝇发送气味信息,或者从周围的果蝇接收气味信息;之后果蝇利用其视觉器官,通过比较得出当前群体中收集到最好气味信息的果蝇位置,群体中的其他果蝇均飞向该位置,并继续展开搜索. 图 1展示了果蝇群体搜索食物的简要过程.
果蝇优化算法图

1.1步骤分析

根据果蝇群体觅食的行为特点,标准 FOA寻优
大致分为以下几个步骤.
Step 1:初始化.
设置种群规模(popsize),最大迭代次数(maxgen),果蝇群体位置范围(LR)和果蝇的单次飞行范围(FR)等相关参数值. 果蝇群体中每个个体的位置信息由其对应的(X; Y )二维坐标给出,其初始位置由下面的公式定义:

\left \ X_a_x_i_s=rand(LR) \right.
Y_a_x_i_s=rand(LR)

Step 2:嗅觉搜索过程.
Step 2.1:当群体中的每一只果蝇利用其嗅觉搜索时,赋予它一个随机的飞行方向和距离. 果蝇个体 新的位置由下式给出:
X_i=X_a_x_i_s+rand(FR)

Y_i=Y_a_x_i_s+rand(FR)

Step 2.2:因为食物味道的来源位置是未知的,因此先利用下式计算果蝇个体距离原点的距离DISTi:
Dist_i=\sqrt{X_i^{2}+Y_i^{2}}

然后通过下式计算其味道浓度判定值Si:
S_i=1/Dist_i

Step 2.3:通过下式计算当前群体中每个果蝇个体的味道浓度值Smelli:

  • 21
    点赞
  • 171
    收藏
    觉得还不错? 一键收藏
  • 24
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值