果蝇优化算法(FOA)

果蝇优化算法(Fruit Fly Optimization Algorithm, FOA)是基于果蝇觅食行为的仿生学原理而提出的一种新兴群体智能优化算法。

果蝇优化算法(FOA)通过模拟果蝇利用敏锐的嗅觉和视觉进行捕食的过程,FOA实现对解空间的群体迭代搜索。FOA原理易懂、操作简单、易于实现,具有较强的局部搜索能力。

果蝇算法可应用于求解最优解:

果蝇群体迭代搜寻食物的步骤如下:

(1)随机初始化果蝇群体位置。

Init X_axis

Init Y_axis

(2)赋予果蝇个体利用嗅觉搜寻食物的随机距离与方向。

Xi = X_axis + Random Value

Yi = Y_axis + Random Value

(3)由于无法得知食物的位置,因此先估计与原点的距离(Dist),再计算味道浓度判定值(S),此值为距离的倒数。

Disti = sqrt(Xi^2 + Yi^2)

Si = 1 / Disti

(4)味道浓度判定值(S)代入味道浓度判定函数(或称为Fitness function)以求出该果蝇个体位置的味道浓度(Smelli)。

Smelli = Function(Si)

(5)找出该果蝇群体中味道浓度最高的果蝇(求极大值)。

[bestSmell bestIndex] = max(Smell)

(6)保留最佳味道浓度值与x、y的坐标,此时果蝇群体利用视觉往该位置飞去。

Smellbest = bestSmell

X_axis = X(bestIndex)

Y_axis = Y(bestIndex)

(7)进入迭代寻优,重复执行步骤2-5,并判断味道浓度是否优于前一迭代味道浓度,若是则实行步骤6。

最新文章

  1. ubuntu环境下vmware取消自动启动服务
  2. Android实战技巧:ViewStub的应用
  3. (转)提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
  4. java基础九[网络与线程](阅读Head First Java记录)
  5. oracle-1
  6. 3036: 绿豆蛙的归宿 - BZOJ
  7. CSU-ACM2016暑假集训训练1-二分搜索 A - Can you find it?
  8. poj 2488A Knight's Journey
  9. Git 分支管理详解
  10. PostMessage 向Windows窗口发送Alt组合键
  11. Unix代码段和数据段
  12. linux下怎么清理缓存
  13. C# 7.1中default关键字的新用法
  14. GCC编译器原理(一)------交叉编译器制作和GCC组件及命令
  15. canvas-star1.html
  16. INSERT INTO IF EXISTS
  17. Cannot assign to read only property 'exports' of object '#<Object>'
  18. _cs, _ci, or _bin,
  19. css 中 stick footer 布局实现
  20. JavaWeb-Servlet开发2

热门文章

  1. mysql 恢复数据时中文乱码
  2. NOIP提高组初赛难题总结
  3. docker容器配置hosts
  4. ArcGIS Server导出shp文件
  5. Consul服务发现在windows下简单使用
  6. django的模板的继承与导入
  7. 在cmd下用cd怎么进不了其他的盘
  8. JSP中九大内置对象及其作用
  9. 我国三大常用坐标系:北京54、西安80和WGS-84
  10. React全家桶入门