细菌觅食算法(Bacterial Foraging Optimization)

细菌觅食算法

1、简介

细菌觅食算法(Bacterial Foraging Optimization,BFO)在2002年,被K.M.Passino在论文“Biomimicry of bacterial foraging for distributed optimization and control”中被提出。.BFO算法是模仿Eeoli大肠杆菌在人体肠道内吞噬食物的行为而提出一种新型仿生类算法。.在BFO算法中,一个细菌代表一个解,它在寻找最优解时只依靠自己。BFO由于其简单、高效的特点,在许多工程和科学领域得到了广泛的应用。然而,在处理更复杂的优化问题,特别是高维多模态问题时,与其他群体智能优化算法相比,BFO算法的收敛性较差 。

2、思想

细菌觅食算法是基于细菌觅食行为过程而提出的一种仿生随机搜索算法.该算法模拟细菌群体的行为,包括趋化,繁殖,驱散等三个个步骤。
细菌觅食算法主要包括三层循环,外层是驱散操作,中间层是繁殖操作,内层是趋化操作.算法的核心是内层的趋化性操作,它对应着细菌在寻找食物过程中所采取的方向选择策略,对算法的收敛性有着极其重要的影响.通常在趋化过程中,细菌运动模式包括翻转和前进。
细菌觅食算法更新公式:在这里插入图片描述
该算法主要是三个循环:如下所示
在这里插入图片描述
其中的重点为三个循环中的内层循环。
第一个循环:驱散
该操作是为了提高算法的全局搜索能力,因为当一个问题的解空间存在多个极值点时,细菌的群聚性就会使得算法容易陷入局部极值。这个过程是用新的个体来代替原有的个体,不同于复制操作,驱散操作是按照一定的概率P而发生的,当某个细菌符合迁移的条件时,该细菌将被随机分配到解空间中去。
第二个循环:繁殖
该操作主要模拟了细菌个体优胜劣汰的繁殖过程,该操作具体为按照适应度值对所有细菌进行排序,将较差的一半细菌清除,用较好的一半细菌代替,保证细菌总量不变。
第三个循环:驱化
该操作主要模拟了细菌的运动过程,包括向前移动和转向移动两个过程,每当细菌完成一次翻转后,检查适应度值是否改变,若适应度得到改善,细菌将沿同一方向继续移动若干步,如此循环直至适应度不再改善,或达到设定的移动步数临界值,此过程定义为前进.

总结

该算法算是相对比较新的群体智能优化算法了,目前,也被广泛的应用到了各种方面,通常与其他算法进行结合使用。

猜你喜欢

转载自blog.csdn.net/xiaobiyin9140/article/details/88085607