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。

  • 相关阅读:
    python爬虫(二)_HTTP的请求和响应
    python迭代器
    矩阵快速幂
    hdu 2256 Problem of Precision
    牛客练习赛17 ABD
    hdu 1575 Tr A
    hdu 1757 矩阵快速幂
    51nod 1402最大值
    51nod 1393 0和1相等串
    勤奋的杨老师
  • 原文地址:https://www.cnblogs.com/fd-682012/p/11935772.html
Copyright © 2011-2022 走看看