zoukankan      html  css  js  c++  java
  • 果蝇优化算法(FOA)

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

  • 相关阅读:
    ubuntu搭建php开发环境记录
    zz-什么是网关,路由,dns,通俗讲解
    如何设置root用户密码
    zz三台centos7虚拟机设置相互免密码登录
    go之闭包及其应用
    网络是怎样连接的
    进程间通信方式探索
    现代操作系统——操作系统概念
    现代操作系统——硬件_IO设备——设备控制器和设备本身
    simotion byte/word ASCII码转换为字符、字符串
  • 原文地址:https://www.cnblogs.com/fd-682012/p/11935772.html
Copyright © 2011-2022 走看看