果蝇优化算法(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。

果蝇优化算法(FOA)的更多相关文章

  1. 果蝇优化算法_Fruit Fly Optimization

    1. 果蝇优化算法背景 在夏天,果蝇是一种随处可见的昆虫.果蝇在嗅觉和视觉特别突出.腐烂的食物发出一种刺鼻的味道,温度越高这种气味的扩散速度较快,果蝇对这种味道非常敏感.腐烂的味道和食物的位置有关.一 ...

  2. [Algorithm] 群体智能优化算法之粒子群优化算法

    同进化算法(见博客<[Evolutionary Algorithm] 进化算法简介>,进化算法是受生物进化机制启发而产生的一系列算法)和人工神经网络算法(Neural Networks,简 ...

  3. 基于网格的分割线优化算法(Level Set)

    本文介绍一种网格分割线的优化算法,该方法能够找到网格上更精确.更光滑的分割位置,并且分割线能够自由地合并和分裂,下面介绍算法的具体原理和过程. 曲面上的曲线可以由水平集(level set)形式表示, ...

  4. paper 8:支持向量机系列五:Numerical Optimization —— 简要介绍求解求解 SVM 的数值优化算法。

    作为支持向量机系列的基本篇的最后一篇文章,我在这里打算简单地介绍一下用于优化 dual 问题的 Sequential Minimal Optimization (SMO) 方法.确确实实只是简单介绍一 ...

  5. MOPSO 多目标例子群优化算法

    近年来,基于启发式的多目标优化技术得到了很大的发展,研究表明该技术比经典方法更实用和高效.有代表性的多目标优化算法主要有NSGA.NSGA-II.SPEA.SPEA2.PAES和PESA等.粒子群优化 ...

  6. SMO优化算法(Sequential minimal optimization)

    原文:http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988419.html SMO算法由Microsoft Research的John C. ...

  7. 优化算法-BFGS

    优化算法-BFGS BGFS是一种准牛顿算法, 所谓的"准"是指牛顿算法会使用Hessian矩阵来进行优化, 但是直接计算Hessian矩阵比较麻烦, 所以很多算法会使用近似的He ...

  8. NYOJ-63 小猴子下落(二叉树及优化算法详解)

      小猴子下落 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 有一颗二叉树,最大深度为D,且所有叶子的深度都相同.所有结点从左到右从上到下的编号为1,2,3,··· ...

  9. DeepLearning.ai学习笔记(二)改善深层神经网络:超参数调试、正则化以及优化--Week2优化算法

    1. Mini-batch梯度下降法 介绍 假设我们的数据量非常多,达到了500万以上,那么此时如果按照传统的梯度下降算法,那么训练模型所花费的时间将非常巨大,所以我们对数据做如下处理: 如图所示,我 ...

随机推荐

  1. 【Linux开发】Ubuntu图形界面切换与磁盘扩展分区

    Ubuntu14.04设置字符界面快捷键:ctrl-alt-f1 切换回图形界面:ctrl-alt-f7 为虚拟机拓展了30G的空间,挂在了/mnt/sda3这个目录下: 说明一下Ubuntu14.0 ...

  2. win10远程桌面报出现身份验证错误,要求的函数不受支持

    win10远程桌面报出现身份验证错误,要求的函数不受支持 编写人:左丘文 2019-6-6 公司换了一台新笔记本电脑,是win10操作系统,刚想远程连接一下服务器,发现以前很正常的功能,发现不行了.网 ...

  3. Luogu P1084 [NOIP2012]疫情控制

    题目 首先我们二分一下答案. 然后我们用倍增让军队往上跳,最多先跳到根的子节点. 如果当前军队可以到达根节点,那么记录一下它的编号和它到达根节点后还可以走的时间. 并且我们记录根节点的叶子节点上到根节 ...

  4. 同一台电脑管理多个SSH KEY

    同一台电脑关于多个SSH KEY管理 笔者之前为电脑中的homestead虚拟机配置过id_rsa,但现在因为想在github上搭建基于hexo的博客,所以需要配置github的ssh key,因此产 ...

  5. mysql 修改表字段默认值

    alter table 表名 alter column 字段名 drop default; (若本身存在默认值,则先删除) alter table 表名 alter column 字段名 set de ...

  6. OI那些事——AFO

    \(OI\)那些事--\(AFO\) 世界上从此少了一个\(Oier\)也不会有人知道,也许只有某个人在某年某月某日翻到了Eternal 风度的博客才会发现:哇,这哥们怎么\(Noip\)就退役了 两 ...

  7. python 发送kafka

    python 发送kafka大体有三种方式 1 发送并忘记(不关注是否正常到达,不对返回结果做处理) 1 import pickle 2 import time 3 from kafka import ...

  8. HNUSTOJ 1444:树的最长路径

    1444: 树的最长路径 时间限制: 1 Sec  内存限制: 128 MB 提交: 18  解决: 7 [提交][状态][讨论版] 题目描述 定义:无向树中结点的路径为该结点所能到达的最远距离:无向 ...

  9. 打印Java main参数

    public class Main { public static void main(String args[]){ System.out.println("打印main方法中的输入参数, ...

  10. JS 的JSON对象

    知识点一: 循环对象 for(x in Obj)  x表示属性,Obj.x表示属性的值. 修改值 Obj.x = "  "//直接修改 删除对象属性 delete Obj.x va ...