细菌觅食算法(Bacterial foraging Optimization algorithm,BFOA)是模拟大肠杆菌在人体肠道内觅食时所表现出来的智能行为而提出的一类智能优化算法,由K.M.Passino于2002年提出。细菌觅食算法追寻最优解以种群为单位,有很高的搜索效率且具备概率性、随机性,搜索幅度广,具有较强的延展性,进化空间较大。它具有三个典型的行为模式,即趋化行为、复制行为和驱散行为。
趋化操作
趋化行为指细菌向食物丰富的区域聚集的行为,包括翻转和游动两种模式。前者指细菌朝任意的方向移动一定距离;后者通过判断翻转后细菌的适应度函数值是否得到改善,来决定细菌是否要沿当前方向继续移动。细菌沿着上一步的运动放向移动单位步长称为游动运动。通过这一行为,细菌可获得连续局部寻优的能力。
群集操作
实际上每个细菌个体除按照自己的方式搜索食物外,还收到种群中其他个体发出的吸引力信号,即个体会游向种群中心。
复制操作
复制行为是根据细菌的适应度函数值,选择让较差的细菌继承较好细菌的位置及步长。经过复制操作后算法的种群大小不变。设淘汰掉的细菌个数为Sr=S/2,计算细菌个体的适应度值,首先按照细菌适应度的优劣排序,然后把排在后面的Sr个细菌淘汰掉,剩余的Sr个细菌进行自我复制,各自生成一个与自己完全相同的新个体通过该行为可加快细菌的寻优速度。
消除-扩散操作
细菌个体生活的局部区域可能会突然发生变化这样可能会导致生活在这个局部区域的细菌种群集体死亡,或者集体迁徙到一个新的局部区域。在细菌觅食优化算法中将这种现象称为迁徙(驱散)行为。
驱散行为是让细菌以一定概率被驱散到搜索空间中的任意位置,通过该行为可以避免细菌陷人局部极值。迁徙操作以一定概率发生,给定概率ped,如果种群中的某个细菌个体满足迁徙发生的概率,则这个细菌个体灭亡,并随机地在解空间的任意位置生成一个新个体,这个新个体与灭亡的个体可能具有不同的位置,即不同的觅食能力。这样更有利于趋向性操作跳出局部最优解和寻找全局最优解。
初始时设i=0,rand()是[0,1]区间上均匀分布的随机数,迁徙操作流程如图3所示。
改进BFOA-基于激素调节机制的情绪化细菌觅食
基于韦伯-费克纳情绪化突变操作
当细菌个体完成趋化操作,细菌个体会对比历史感知及全局感知进行基于韦伯费克纳情绪化突变操作。
激素调节(Hill函数)
在细菌个体运行速度更新过程中采用激素调节细菌个体的情绪,并以此实现对惯性因子的调节;
————————————————
版权声明:本文为CSDN博主「松间沙路hba」的原创文章,原文链接:https://blog.csdn.net/hba646333407/article/details/103086793