获取更多资讯,赶快关注上面的公众号吧!

文章目录

  • 第十四章 细菌觅食优化算法
    • 14.1 介绍
    • 14.2 BFOA的基本原理与流程
      • 14.2.1 趋向性操作
      • 14.2.2 复制操作
      • 14.2.3 迁徙操作
    • 14.3 BOFA算法
    • 参考文献

第十四章 细菌觅食优化算法

14.1 介绍

Passino等人[1]于2002年通过模拟人体内大肠杆菌的觅食行为,提出了一种新型智能优化算法:细菌觅食优化算法(Bacterial Foraging Optimization Algorithm,BFOA)。细菌觅食优化算法通过细菌群体之间的竞争与协作实现优化,是一种基于细菌群体的搜索技术。在群智能算法中,GA、ACO、PSO、AFSA都是基于高等生物作为启发对象,而BFOA算法则是模拟微生物的行为而形成的一种较新的优化方法。

14.2 BFOA的基本原理与流程

BFOA算法是一种全局随机搜索的算法,其具有简单、收敛速度快,并且在优化过程中无需优化对象的梯度信息的特点。BFOA模拟细菌群体的过程包括趋向性(Chemotaxis)、复制(Reproduction)、迁徙(Elimination dispersal).三个步骤。

14.2.1 趋向性操作

细菌向有利于自身环境的区域移动称为趋向运动,其中,一次趋向性操作包括翻转运动和游动运动。细菌向任意方向移动单位步长称为旋转运动;细菌沿着上一步的运动放向移动单位步长称为游动运动。通常,细菌在环境差的区域(如:有毒区域)会较频繁地旋转,在环境好的区域(如:食物丰富的区域)会较多地游动。大肠杆菌的整个生命周期就是在游动和旋转这两种基本运动之间进行变换,游动和旋转的目的是寻找食物并避开有毒物质。

设细菌种群大小为S,细菌所在的位置标示问题的一个候选解,细菌i的信息用D维向量标示为θi=[θ1i,θ2i,⋯,θDi]{\theta ^i} = \left[ {\theta _1^i,\theta _2^i, \cdots ,\theta _D^i} \right]θi=[θ1i​,θ2i​,⋯,θDi​],i=1,2,…,S,θi(j,k,l)表示细菌i在第j次趋向性操作、第k次复制操作和第l次迁徙操作后的位置。细菌i通过式(1)更新其每一步趋向性操作后的位置。
θi(j+1,k,l)=θi(j,k,l)+C(i)Φ(j)(1){\theta ^i}(j + 1,k,l) = {\theta ^i}(j,k,l) + C(i)\Phi (j)\tag 1 θi(j+1,k,l)=θi(j,k,l)+C(i)Φ(j)(1)

其中C(i)>0表示向前游动的步长,Φ(j)表示旋转后随机选择的单位方向向量。如果在θi(j+1,k,l)处的适应度优于θi(j+1,k,l)处,则保持Φ不变继续在该方向游动,直至找到适应度最佳的位置或达到设定的趋向性次数;否则产生新的Φ,进行下一次旋转运动。
设Ns是趋向性操作中在一个方向上前进的最大步数(用m进行索引),初始时该值为0,BFOA趋向性操作的流程图如图1所示。

图1 趋向性操作流程图

目前的讨论主要是针对不考虑细菌间相互吸引的情况,实际上每个细菌个体除按照自己的方式搜索食物外,还收到种群中其他个体发出的吸引力信号,即个体会游向种群中心。

第ith个细菌的细菌间吸引力用Jcci(θ,θi(j,k,l)),i=1,2,…,SJ_{cc}^i\left( {\theta ,{\theta ^i}(j,k,l)} \right),i = 1,2, \ldots ,SJcci​(θ,θi(j,k,l)),i=1,2,…,S表示,dattract=0.1表示细菌释放的吸引量多少(深度),wattract=0.2用于度量吸引信号的宽度(量化化学物质的扩散率)。

同时也会收到附近个体发出的排斥力信号,以保持个体与个体之间的安全距离,因为细菌消耗附近的营养物质,在物理上不可能在同一位置有两个细菌,对此,令hrepellant=dattract表示排斥力的高度(排斥影响程度),wrepellant=10度量了排斥力的宽度。
令Jcc(θ,P(j,k,l))表示同时考虑了细菌间吸引力和排斥力的综合影响,其计算公式如(2)。

Jcc(θ,P(j,k,l))=∑i=1SJcεi(θ,θi(j,k,l))=∑i=1s[−datact exp⁡(−wattact ∑m=1p(θm−θmi)2)]+∑i=1s[hrepenatint exp⁡(−wrepelinat ∑m=1p(θm−θmi)2)](2)\begin{aligned} J_{c c}(\theta, P(j, k, l))=& \sum_{i=1}^{S} J_{c \varepsilon}^{i}\left(\theta, \theta^{i}(j, k, l)\right) \\=& \sum_{i=1}^{s}\left[-d_{\text {atact }} \exp \left(-w_{\text {attact }} \sum_{m=1}^{p}\left(\theta_{m}-\theta_{m}^{i}\right)^{2}\right)\right] \\ &+\sum_{i=1}^{s}\left[h_{\text {repenatint }} \exp \left(-w_{\text {repelinat }} \sum_{m=1}^{p}\left(\theta_{m}-\theta_{m}^{i}\right)^{2}\right)\right] \end{aligned}\tag 2 Jcc​(θ,P(j,k,l))==​i=1∑S​Jcεi​(θ,θi(j,k,l))i=1∑s​[−datact ​exp(−wattact ​m=1∑p​(θm​−θmi​)2)]+i=1∑s​[hrepenatint ​exp(−wrepelinat ​m=1∑p​(θm​−θmi​)2)]​(2)

其中P(j,k,l)表示在第j次趋向性操作、第k次复制操作和第l次迁徙操作后,种群S中每个细菌的位置,θ=[θ1,…,θD]T是优化域上的一个点,θim是第i个细菌位置θi的第m个元素。
P(j,k,l)={θi(j,k,l)∣i=1,2,…,S}(3)P(j,k,l) = \left\{ {{\theta ^i}(j,k,l)|i = 1,2, \ldots ,S} \right\}\tag 3 P(j,k,l)={θi(j,k,l)∣i=1,2,…,S}(3)

因此考虑上述两个因素对细菌行为的影响,执行一次趋向性操作后细菌i的新适应度函数值为:

J(i,j+1,k,l)=J(i,j,k,l)+Jcc(θi(j+1,k,l),P(j+1,k,l))(4)J(i,j + 1,k,l) = J(i,j,k,l) + {J_{cc}}\left( {{\theta ^i}(j + 1,k,l),P(j + 1,k,l)} \right)\tag 4 J(i,j+1,k,l)=J(i,j,k,l)+Jcc​(θi(j+1,k,l),P(j+1,k,l))(4)

这样这些细胞会试图寻找营养物质,避免有毒物质,同时试图向其他细胞移动,但又不会靠得太近。

14.2.2 复制操作

生物进化过程的规律是优胜劣汰。经过一段时间的食物搜索过程后,部分寻找食物能力弱的细菌会被自然淘汰掉,为了维持种群规模,剩余的细菌会进行繁殖。在细菌觅食优化算法中将这种现象称为复制行为(Reproduction)。

在BFOA中,经过复制操作后算法的种群大小不变。设淘汰掉的细菌个数为Sr=S/2,首先按照细菌位置的优劣排序,然后把排在后面的Sr个细菌淘汰掉,剩余的Sr个细菌进行自我复制,各自生成一个与自己完全相同的新个体,即生成的新个体与原个体有相同的位置,或者说具有相同的觅食能力。初始时设i=0,复制操作流程图如图2所示。

图2 复制操作流程图

14.2.3 迁徙操作

细菌个体生活的局部区域可能会突然发生变化(如:温度的突然升高)或者逐渐变化(如:食物的消耗),这样可能会导致生活在这个局部区域的细菌种群集体死亡,或者集体迁徙到一个新的局部区域。在细菌觅食优化算法中将这种现象称为迁徙行为(Elimination-dispersal)。

迁徙操作以一定概率发生,给定概率ped,如果种群中的某个细菌个体满足迁徙发生的概率,则这个细菌个体灭亡,并随机地在解空间的任意位置生成一个新个体,这个新个体与灭亡的个体可能具有不同的位置,即不同的觅食能力。迁徙操作随机生成的这个新个体可能更靠近全局最优解,这样更有利于趋向性操作跳出局部最优解和寻找全局最优解。
初始时设i=0,rand()是[0,1]区间上均匀分布的随机数,迁徙操作流程如图3所示。

图3 迁徙操作流程图

14.3 BOFA算法

参考文献

  1. Passino, K.M., Biomimicry of bacterial foraging for distributed optimization and control. IEEE Control Systems Magazine, 2002. 22(3): p. 52-67.

群体智能优化算法之细菌觅食优化算法(Bacterial Foraging Optimization Algorithm,BFOA)相关推荐

  1. 种群优化算法:细菌觅食优化

    细菌觅食优化(BFO)算法是一种引人入胜的优化技术,可在极其复杂或不可能的数值函数里找到最大化/最小化问题得近似解. 该算法被广泛认为应对分布式优化和控制的全局优化算法. BFO 的灵感来自大肠杆菌的 ...

  2. MATLAB算法实战应用案例精讲-【智能优化算法】细菌觅食优化-BFO(附MATLAB源码)

    目录 前言 算法原理 算法步骤 算法流程​编辑 趋向性操作( Chemotaxis) <

  3. 细菌觅食算法(Bacterial Foraging Optimization)

    文章目录 细菌觅食算法 1.简介 2.思想 总结 细菌觅食算法 1.简介 细菌觅食算法(Bacterial Foraging Optimization,BFO)在2002年,被K.M.Passino在 ...

  4. 在SIMULINK实现各类优化类算法的仿真——粒子群算法、细菌觅食、

    粒子群优化算法,这里采用MPPT智能优化模型为例进行仿真 其中,通过PSO粒子群优化算法实现PWM最优输出,PSO则采用S函数实现,S函数的核心代码如下: function [sys,x0,str,t ...

  5. Java实现细菌觅食算法_细菌觅食算法-python实现

    1 importnumpy as np2 from BFOIndividual importBFOIndividual3 importrandom4 importcopy5 importmatplot ...

  6. 细菌觅食算法BFOA

    细菌觅食算法(Bacterial foraging Optimization algorithm,BFOA)是模拟大肠杆菌在人体肠道内觅食时所表现出来的智能行为而提出的一类智能优化算法,由K.M.Pa ...

  7. 萤火虫算法_40多种智能优化算法原理和代码分享

    40多种智能优化算法原理和代码分享 <智能优化算法讲解>PDF下载地址: <智能优化算法原理讲解>PDF​mianbaoduo.com 包括: 1.海鸥算法SOA 智能优化算法 ...

  8. 基于matlab的捕食算法,【优化求解】基于matlab细菌觅食算法的函数优化分析【含Matlab源码 217期】...

    一.简介 实际生活需求促进了最优化方法的发展.近半个多世纪以来,由于传统优化方法的不足,一些具有全局优化性能且通用性强的进化算法,因其高效的优化性能.无需问题精确描述信息等优点,受到各领域广泛的关注和 ...

  9. 【优化求解】基于柯西变异和自适应权重优化的蝴蝶算法求解单目标优化问题matlab代码

    1 简介 针对基本蝴蝶优化算法(Butterfly Optimization Algorithm,BOA)存在的收敛精度较低.容易陷入局部最优解的问题,提出柯西变异和自适应权重优化的蝴蝶算法(Cauc ...

最新文章

  1. 日访问量百亿级的应用如何做缓存架构设计
  2. 【FPGA】SRIO例子程序仿真分析实践
  3. 算法------长度最小的子数组
  4. 这就是华为速度:2.69分钟完成BERT训练!新发CANN 5.0加持,还公开了背后技术
  5. [ASP.net]TreeView(1)(一次性递归所有节点)
  6. 2017 《Java技术预备作业》
  7. 按键控制LED实现启动、停止按钮
  8. Java黑皮书课后题第2章:*2.19(几何:三角形面积)编写程序,提示用户输入三角形的三个点(x1, y1)(x2, y2)(x3, y3),然后显示它的面积
  9. 站长工具箱浏览器插件-SEO分析效率工具插件
  10. dj鲜生-10200818-商品首页展示-静态页下载资源
  11. python画简便的图-特征锦囊:常用的统计图在Python里怎么画?
  12. 自动化接口用例从 1 到 1000 过程中的实践和思考
  13. Playmaker与iTween
  14. 自己写了一个小小的双色球号码随机生成器
  15. Python里对于shape()的理解
  16. 联想g510拆键盘的简单方法_笔记本键盘怎么拆 教你如何正确拆笔记本键盘 (全文)...
  17. FileZilla的下载与安装以及简单使用(有图解超简单)
  18. Visualforce 标签(一)
  19. EVE-NG模拟器教程(三)——Lab平台初探
  20. 防止信息泄露的新方法

热门文章

  1. 安卓镜像刻录软件_安卓8.0开发者预览版镜像系统下载-Android O开发者预览版镜像官方正式版-东坡下载...
  2. 锐捷睿易RAP100全新上市 WALL AP也有超高性能
  3. TXT迷你小说阅读器
  4. mongodb的id查询
  5. Oracle AWR报告详细分析
  6. 不对窗体进行边框装饰后,实现对鼠标事件的监控
  7. Vue数据可视化组件库,类阿里DataV,提供SVG的边框及装饰,图表,飞线图等组件,简单易用,持续更新...
  8. NBA篮球英语专业术语
  9. uos系统虚拟机_uos统一操作系统官方正式版下载
  10. 计算机辅助工业设计应用软件,计算机辅助工业设计(CAID)