智能优化算法 — 蜣螂优化算法(Dung beetle optimizer,DBO)
小时候,蜣螂还是比较多见的,还顽皮地将粪球给它弄走,或者给它来点障碍。现在放牛的几乎看不到了,蜣螂没东西可推了,也慢慢从我们的视线中消失了。2022年11月27日,东华大学沈波教授团队,继麻雀搜索算法(Sparrow Search Algorithm,SSA)之后,又提出了一种全新的群体智能优化算法——蜣螂优化(Dung beetle optimizer,DBO),主要模拟了蜣螂的「滚球、跳舞、觅
引言
小时候,蜣螂还是比较多见的,还顽皮地将粪球给它弄走,或者给它来点障碍。现在放牛的几乎看不到了,蜣螂没东西可推了,也慢慢从我们的视线中消失了。
DBO介绍
2022年11月27日,东华大学沈波教授团队,继麻雀搜索算法(Sparrow Search Algorithm,SSA)之后,又提出了一种全新的群体智能优化算法——蜣螂优化(Dung beetle optimizer,DBO),主要模拟了蜣螂的「滚球、跳舞、觅食、偷窃和繁殖行为」。
1 启发(Inspiration 灵感)
蜣螂,又称屎壳郎,以动物的粪便为食(口味很独特啊)。众所周知,屎壳郎有一个有趣的习惯,就是把粪便揉成球,滚动到可靠的地方藏起来(挺护食),然后再慢慢吃掉。
蜣螂可以滚一个比自身大得多的粪球,并且可以利用天体的线索(特别是太阳、月亮和偏振光)来导航,使粪球沿直线滚动;然而,如果完全没有光源(也就是说,完全黑暗),蜣螂的路径就不再是直线,而是弯曲的,有时甚至略圆。许多自然因素(如风和不平坦的地面)会导致蜣螂偏离原来的方向。此外,蜣螂在滚动过程中很可能会遇到障碍物,无法前进。为此,蜣螂通常会爬到粪球上面跳舞(包括一系列的旋转和停顿),这决定了它们的运动方向。
从蜣螂的生活方式中可以观察到获得粪球有以下两个主要目的:(1)有些粪球是用来产卵和养育下一代的;(2)其余的则用作食物。具体来说,蜣螂把粪球埋起来,雌性蜣螂在粪球里产卵。需要注意的是,粪球不仅是幼虫的生长场所,而且为幼虫提供了生存所必需的食物。因此,粪球对蜣螂的生存起着不可替代的作用。
研究学者主要就是基于蜣螂以上生活习性,受其滚球、跳舞、觅食、偷窃和繁殖行为的启发,而提出了蜣螂优化算法,进行全局搜索和局部利用。
2 数学模型(The structure and the algorithm)
2.1 滚球
根据上面的描述,我们知道蜣螂在滚动过程中需要通过天体线索来导航,以保持粪球在直线上滚动。为了模拟滚动球的行为,需要蜣螂在整个搜索空间中沿着给定的方向移动。如下图所示,可以看出,蜣螂利用太阳导航,红色箭头表示滚动方向。
文章中,作者假定光源强度也会影响蜣螂路径。在滚动过程中,按照如下对滚球屎壳郎的位置进行更新:
2.2 跳舞
当蜣螂遇到障碍物而无法前进时,它会通过跳舞来重新定向自己,以获得新的路线。
为了模拟舞蹈行为,作者使用「正切函数」(只考虑 [0, pi] 区间内的值)得到新的滚动方向。一旦蜣螂成功地确定了一个新的方向,它应该继续向后滚动球。因此,蜣螂的位置按如下更新:
2.3 繁殖
在自然界中,粪球被蜣螂滚到安全的地方并藏起来(见图4)。
2.4 觅食
一些成年屎壳郎会从地下钻出来寻找食物,如下图。
2.4 偷窃
有一些蜣螂,被称为小偷,会从其他蜣螂那里偷粪球,如下图。
3 算法流程
基于以上讨论,蜣螂优化算法伪代码如下:
之后,根据不同类型的代理,选择合适的方式更新滚球蜣螂、卵球、小蜣螂和小偷的位置。
参考文献与链接(References)
- Xue, J., Shen, B. Dung beetle optimizer: a new meta-heuristic algorithm for global optimization. J Supercomput (2022). https://doi.org/10.1007/s11227-022-04959-6
- 智能优化算法(源码)—蜣螂优化算法(Dung beetle optimizer,DBO)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)