智能优化算法(源码)—蜣螂优化算法(Dung beetle optimizer,DBO)
创始人
2024-03-15 02:23:13

在这里插入图片描述

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

文章目录

  • 启发
  • 数学模型
    • 滚球
    • 跳舞
    • 繁殖
    • 觅食
    • 偷窃
    • 伪代码

2022年11月27日,东华大学沈波教授团队,继麻雀搜索算法之后,又提出了一种全新的群体智能优化算法——蜣螂优化(Dung beetle optimizer,DBO),主要模拟了蜣螂的的滚球、跳舞、觅食、偷窃和繁殖行为。关注公众号后回复“蜣螂”获取MATLAB源码

启发

  蜣螂,又称屎壳郎,以动物的粪便为食(口味很独特啊)。众所周知,屎壳郎有一个有趣的习惯,就是把粪便揉成球,滚动到可靠的地方藏起来(挺护食),然后再慢慢吃掉。

  蜣螂可以滚一个比自身大得多的粪球,并且可以利用天体的线索(特别是太阳、月亮和偏振光)来导航,使粪球沿直线滚动;然而,如果完全没有光源(也就是说,完全黑暗),蜣螂的路径就不再是直线,而是弯曲的,有时甚至略圆。许多自然因素(如风和不平坦的地面)会导致蜣螂偏离原来的方向。此外,蜣螂在滚动过程中很可能会遇到障碍物,无法前进。为此,蜣螂通常会爬到粪球上面跳舞(包括一系列的旋转和停顿),这决定了它们的运动方向。

  从蜣螂的生活方式中可以观察到获得粪球有以下两个主要目的:(1)有些粪球是用来产卵和养育下一代的;(2)其余的则用作食物。具体来说,蜣螂把粪球埋起来,雌性蜣螂在粪球里产卵。需要注意的是,粪球不仅是幼虫的生长场所,而且为幼虫提供了生存所必需的食物。因此,粪球对蜣螂的生存起着不可替代的作用。

  研究学者主要就是基于蜣螂以上生活习性,受其滚球、跳舞、觅食、偷窃和繁殖行为的启发,而提出了蜣螂优化算法,进行全局搜索和局部利用。

数学模型

滚球

  根据上面的描述,我们知道蜣螂在滚动过程中需要通过天体线索来导航,以保持粪球在直线上滚动。为了模拟滚动球的行为,需要蜣螂在整个搜索空间中沿着给定的方向移动。如下图所示,可以看出,蜣螂利用太阳导航,红色箭头表示滚动方向。

  文章中,作者假定光源强度也会影响蜣螂路径。在滚动过程中,按照如下对滚球屎壳郎的位置进行更新:

xi(t+1)=xi(t)+α×k×xi(t−1)+b×Δx,Δx=∣xi(t)−Xw∣(1)\begin{aligned} x_i(t+1) & =x_i(t)+\alpha \times k \times x_i(t-1)+b \times \Delta x, \\ \Delta x & =\left|x_i(t)-X^w\right| \end{aligned} \tag{1} xi​(t+1)Δx​=xi​(t)+α×k×xi​(t−1)+b×Δx,=∣xi​(t)−Xw∣​(1)

其中ttt表示当前迭代次数,xi(t)x_i(t)xi​(t)表示第ttt次迭代时第iii只蜣螂的位置信息,k∈(0,0.2]k\in(0,0.2]k∈(0,0.2]是一个常量表示偏转系数,b∈(0,1)b\in(0,1)b∈(0,1),α\alphaα是自然系数取1或-1,XwX^wXw是全局最差位置,Δx\Delta xΔx模拟光强的变化。

在式(1)中,为参数kkk和bbb选择合适的值是至关重要的。α\alphaα模拟了自然因素(如风和不平坦的地面)可以使蜣螂偏离它们原来的方向,具体来说,α=1\alpha=1α=1代表没有偏离,α=−1\alpha=-1α=−1代表偏离原来方向。α\alphaα的取值根据概率方法确定的以模拟复杂的环境,见下面的算法。类似的,Δx\Delta xΔx越大表示光源越弱,其能带来两个好处:1)在优化过程中,尽可能彻底地探索整个问题空间;2)执行更强的搜索性能,降低陷入局部最优的可能性。

跳舞

  当蜣螂遇到障碍物而无法前进时,它会通过跳舞来重新定向自己,以获得新的路线。

  为了模拟舞蹈行为,作者使用正切函数(只考虑[0,π]区间内的值[0,\pi]区间内的值[0,π]区间内的值)得到新的滚动方向。 一旦蜣螂成功地确定了一个新的方向,它应该继续向后滚动球。因此,蜣螂的位置按如下更新:

xi(t+1)=xi(t)+tan⁡(θ)∣xi(t)−xi(t−1)∣(2)x_i(t+1)=x_i(t)+\tan (\theta)\left|x_i(t)-x_i(t-1)\right|\tag{2} xi​(t+1)=xi​(t)+tan(θ)∣xi​(t)−xi​(t−1)∣(2)
其中θ\thetaθ是偏转角∈[0,π]\in[0,\pi]∈[0,π]。

在式(2)中,∣xi(t)−xi(t−1)∣|x_i(t)-x_i(t-1)|∣xi​(t)−xi​(t−1)∣是第iii只蜣螂第ttt和t−1t-1t−1次迭代之间的差异,因此蜣螂位置的更新与当前和历史信息密切相关。

繁殖

  在自然界中,粪球被蜣螂滚到安全的地方并藏起来(见图4)。

  为了给它们的后代提供一个安全的环境,选择合适的产卵地点对蜣螂来说至关重要。受上述讨论的启发,作者提出了一种边界选择策略来模拟雌性蜣螂产卵的区域,定义如下:
Lb∗=max⁡(X∗×(1−R),Lb),Ub∗=min⁡(X∗×(1+R),Ub)(3)\begin{aligned} & L b^*=\max \left(X^* \times(1-R), L b\right), \\ & U b^*=\min \left(X^* \times(1+R), U b\right) \end{aligned}\tag{3} ​Lb∗=max(X∗×(1−R),Lb),Ub∗=min(X∗×(1+R),Ub)​(3)
其中X∗X^*X∗表示当前局部最优位置,Lb∗L b^*Lb∗和Ub∗U b^*Ub∗分别表示产卵区域的下界和上界,R=1−t/Tmax⁡R=1-t / T_{\max }R=1−t/Tmax​,Tmax⁡T_{\max }Tmax​表示最大迭代次数,LbL bLb和UbU bUb分别表示优化问题的下界和上界。

  如下图所示,当前最优位置X∗X^*X∗通过棕色圆表示,其周围的黑色小圆表示卵球,每个卵球里都包含蜣螂的卵。

  一旦确定了产卵区域,雌性蜣螂就会选择这个区域的卵球产卵,在算法中,假设每个雌蜣螂在每次迭代中只会下一个卵。并且从式(3中)可以清楚地看到,产卵区域的边界范围是随RRR值动态变化的,因此卵球的位置在迭代过程中也是动态变化的,定义如下:

Bi(t+1)=X∗+b1×(Bi(t)−Lb∗)+b2×(Bi(t)−Ub∗)(4)B_i(t+1)=X^*+b_1 \times\left(B_i(t)-L b^*\right)+b_2 \times\left(B_i(t)-U b^*\right)\tag{4} Bi​(t+1)=X∗+b1​×(Bi​(t)−Lb∗)+b2​×(Bi​(t)−Ub∗)(4)
其中Bi(t)B_i(t)Bi​(t)是第iii个卵球在第ttt次迭代的位置信息,b1b_1b1​和b2b_2b2​是两个独立的大小为1×D1 \times D1×D的随机向量,DDD是优化问题的维度。注意,卵球是严格限制在产卵区域的。

觅食

  一些成年屎壳郎会从地下钻出来寻找食物,如下图。

  作者将其称为小蜣螂,并模拟了蜣螂的觅食过程,最优觅食区域的边界如下:

Lbb=max⁡(Xb×(1−R),Lb)Ubb=min⁡(Xb×(1+R),Ub)(5)\begin{aligned} & L b^b=\max \left(X^b \times(1-R), L b\right) \\ & U b^b=\min \left(X^b \times(1+R), U b\right) \end{aligned}\tag{5} ​Lbb=max(Xb×(1−R),Lb)Ubb=min(Xb×(1+R),Ub)​(5)

其中XbX^bXb表示全局最优位置,LbbL b^bLbb和$ U b^b$分别表示最佳觅食区域的下界和上界。因此,小蜣螂的位置更新如下:
xi(t+1)=xi(t)+C1×(xi(t)−Lbb)+C2×(xi(t)−Ubb)(6)x_i(t+1)=x_i(t)+C_1 \times\left(x_i(t)-L b^b\right)+C_2 \times\left(x_i(t)-U b^b\right)\tag{6} xi​(t+1)=xi​(t)+C1​×(xi​(t)−Lbb)+C2​×(xi​(t)−Ubb)(6)

其中xi(t)x_i(t)xi​(t)表示第iii个小蜣螂第ttt次迭代的位置信息,C1C_1C1​表示服从正态分布的随机数,C2C_2C2​是(0,1)(0,1)(0,1)范围内的随机向量。

偷窃

  有一些蜣螂,被称为小偷,会从其他蜣螂那里偷粪球,如下图。

  从式(5)中可以看出XbX^bXb是最优食物源,因此可以假设XbX^bXb周围是竞争食物的最优位置。迭代过程中,小偷的位置信息按如下更新:
xi(t+1)=Xb+S×g×(∣xi(t)−X∗∣+∣xi(t)−Xb∣)x_i(t+1)=X^b+S \times g \times\left(\left|x_i(t)-X^*\right|+\left|x_i(t)-X^b\right|\right) xi​(t+1)=Xb+S×g×(∣xi​(t)−X∗∣+∣∣​xi​(t)−Xb∣∣​)
  其中xi(t)x_i(t)xi​(t)表示第iii个小偷第ttt次迭代的位置信息,ggg是大小为1×D1 \times D1×D的服从正态分布的随机向量,SSS是常量。

伪代码

  基于以上讨论,蜣螂优化算法伪代码如下:

  首先,令TmaxT_{max}Tmax​为最大迭代次数,NNN为种群大小。

  然后,随机初始化所有代理,按照下图所示的方式分布设置。

  之后,根据不同类型的代理,选择合适的方式更新滚球蜣螂、卵球、小蜣螂和小偷的位置。

  最后,输出最优位置XbX^bXb及其适应度值。

相关内容

热门资讯

应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...