您的位置:首页 > 评论 >

期货量化软件赫兹量化_细菌觅食优化

2023-08-11 18:21:46 来源:哔哩哔哩

评论

细菌觅食优化(BFO)算法是一种引人入胜的优化技术,可在极其复杂或不可能的数值函数里找到最大化/最小化问题得近似解。 该算法被广泛认为应对分布式优化和控制的全局优化算法。 BFO 的灵感来自大肠杆菌的社会觅食行为。 BFO 已经引起了研究人员的注意,因为它已表现出在多个应用领域中解决实际优化问题方面的有效性。 大肠杆菌觅食策略背后的生物学,是以原始方式模拟,并作为一种简单的优化算法。

细菌,如大肠杆菌或沙门氏菌,是地球上最成功的生物之一。 这些灵动的细菌具有称为鞭毛的半刚性附属物,它们通过扭曲运动推动自己。 当所有的鞭毛逆时针旋转时,会产生螺旋桨效应,推动细菌或多或少地沿直线方向移动。 在这种情况下,细菌执行称为游泳的运动。 所有鞭毛都顺同一方向旋转。

鞭毛帮助大肠杆菌翻滚或游泳,这是细菌在觅食期间执行的两项主要操作。 当它们顺时针旋转鞭毛时,每个鞭毛都会反向推动细胞。 当鞭毛向不同方向旋转时,细菌就会翻滚。 细菌在有利的环境中移动时翻滚较少,而在有害的环境中,它经常翻滚,从而感知营养梯度。 鞭毛的逆时针运动有助于细菌以非常高的速度游泳。


【资料图】

在上述算法中,细菌的行为是由一种称为细菌趋化性的机制决定的,该机制是这些微生物对环境中化学刺激的运动反应。 这种机制允许细菌向引诱剂(最常见的营养物质)移动,并远离驱虫剂(对细菌有潜在危害的物质)。 检测引诱剂和驱虫剂的受体位于细菌的两极。

由于细菌体积小,它无法捕捉两极之间有用和有害物质浓度的差异。 细菌通过测量运动过程中浓度的变化来判定这些物质的梯度。 这种运动的速度可以达到每秒几十个细菌长度。 例如,大肠杆菌通常以每秒 10-20 倍其体长的速度移动。

编辑切换为居中

图例 1. 复制:分为原始(保持运动向量)和克隆(运动向量变化)细菌。翻滚 - 细菌运动向量的变化

如果细菌选择的运动方向对应于引诱剂浓度的增加(驱虫剂浓度的降低),则至下一次翻滚之前的时间增加。 由于细菌体形小,其运动受到布朗运动的强烈影响。 结果就是,细菌只平均朝着有益物质的方向移动,远离有害物质。

所研究的细菌运动机制并不是唯一的。 有些细菌有一个鞭毛。 在这种情况下,细菌运动的变体提供了不同的旋转和停止模式。 然而,在所有情况下,如果细菌朝正确的方向移动,那么这种运动的持续时间就会增加。 因此,一般来说,细菌趋化性可以定义为游泳和翻滚的复杂组合,它允许细菌停留在营养物质浓度高的地方,躲避不可接受的有害物质浓度。

在搜索引擎优化问题的背景下,细菌趋化性也可以解释为一种机制,用于优化细菌对已知食物资源的利用,并寻找新的、潜在的、更有价值的区域。足够丰度的细菌种群可以形成复杂的时空结构 — 在细菌种群中形成的结构影响。 这种影响可能是由趋化性和许多其它原因引起的。

对于一些细菌,这种结构的形成可以通过其代谢产物的调节特性来解释。 基于磁性(对磁场的敏感性)、生物对流、负地质趋向性(微生物对重力方向的优先运动)、和其它现象,类似的效果是可能的。 常规下,细菌在友好的环境中能传播更远的距离。 当它们获得足够的食物时,它们的长度会更长,并在适当的温度下从中间断裂,变成自己的精确复制品。

这种现象激发了帕西诺(Passino)将繁衍事件引入BFO。 由于环境的突然变化或攻击,趋化过程可能会被破坏,那么细菌群落可以移动到其它地方。 这代表了真实细菌种群中的消除和扩散事件,当该区域中的所有细菌死亡、或一组细菌扩散到环境的新部分时。 此外,所研究的趋化性和繁衍过程通常不足以找到多极值目标函数的全局最大值,因为这些过程不允许细菌离开它们发现的该函数的局部最大值。 消除和扩散过程旨在克服这一缺点。 根据自然选择(适者生存),适应性差的细菌将会消亡,适应性较高的细菌会自我繁衍。

2. 算法说明

BFO 的规范版本包括以下主要步骤:

初始化细菌群落。

趋化性。

聚集。

繁衍。

流动和分群。

1. 初始化细菌群落。细菌可以在一些半固体营养物质中形成复杂、稳定的时空模式,如果最初一同安置在中心,它们就可以在环境中生存。 甚至,在某些条件下,它们会分泌细胞间引诱信号,以便它们相互聚集和保护。2. 趋化性。细菌寻找食物的运动特征可以通过两种方式判定,即一同游动和翻滚被称为趋化性。 据说细菌如果朝正确的方向移动,就会“游动”,如果它向环境恶化的方向移动,就会“翻滚”。

3. 聚集。细菌为了到达食物最丰富的地方,希望在搜索期间最佳细菌于某个时间点尝试吸引其它细菌,如此它们就能更快地在所需位置聚合在一起。 为此,根据每个细菌从适者菌落到此搜索持续时间的相对距离,在原始成本函数中添加一个惩罚函数。 最后,当所有细菌融合到决策点时,这个惩罚函数变为零。 聚集的效果是细菌成群聚拢,并以同心模式移动,细菌密度高。

4. 繁衍。最初的一组细菌经过几个趋化阶段,达到繁衍阶段。 此刻,最好的一组细菌分为两组。 更健康的一半被另一半细菌所取代,寻找食物能力较低的则消亡。 这令细菌的数量在进化过程中保持不变。

5. 消除和扩散。在进化过程中,可能会发生突然的不可预见的事件,该事件可以极大地改变进化过程的顺畅,并导致许多细菌的消除和/或它们扩散到新的环境中。 具有讽刺意味的是,这种未知事件并不会破坏一组细菌的正常趋化性生长,反而可能会令较新的一组细菌更接近食物的位置。 从广义上讲,消除和扩散是种群长距离行为的一部分。 当应用于优化时,这有助于减少此类并行搜索算法中常见的停滞。

我实现的 BFO 与规范版本略有不同。 在研究代码的特定部分时,除了需要这些更改的理由外,我还将详细介绍差异。 一般来讲,实现中的修改不能被认为是重要的,因此我不会将 “m”(修改版本)标记分配给算法名称。 我只想提示,已实现的修改改善了结果。

接下来,研究我实现的算法和代码。

算法步骤:

1. 细菌菌落初始化。2. 测量细菌健康(适应度)。3. 繁衍?. 是的。 执行繁衍。. 不。 第四步。4. 老化 (达到生命极限)?. 是的。 执行翻滚(更改移动矢量)。. 不。 第五步。5. 移至正确方向?. 是的。 按相同矢量继续移动。. 不。 执行翻滚 (改变运动矢量)。6. 测量细菌健康(适应度)。7. 从地三步继续,直到满足停止条件。

[责任编辑:]

相关阅读

参与评论

关于我们| 广告服务| 隐私政策| 服务条款| 备案号:琼ICP备2022009675号-29 联系QQ:5 0 8 0 6 3 3 5 9

Copyright @ 2008-2015 www.ccnf.cn All Rights Reserved 中国经营网 版权所有