位置: IT常识 - 正文
推荐整理分享单目标优化:蜣螂优化算法(Dung beetle optimizer,DBO)(单目标优化函数),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:单目标优化模型是啥,单目标优化和多目标优化,多目标优化转化为单目标优化,单目标优化函数,单目标优化和多目标优化,单目标优化方法,单目标优化方法,单目标优化和多目标优化,内容如对您有帮助,希望把文章链接给更多的朋友!
蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为的启发所得。
一、蜣螂优化算法1.1蜣螂滚球(1)当蜣螂前行无障碍时,蜣螂在滚粪球过程中会利用太阳进行导航,下图中红色箭头表示滚动方向 本文假设光源的强度会影响蜣螂的位置,蜣螂在滚粪球过程中位置更新如下:
xi(t+1)=xi(t)+α×k×xi(t−1)+b×Δx,Δx=∣xi(t)−Xw∣\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}xi(t+1)Δx=xi(t)+α×k×xi(t−1)+b×Δx,=∣xi(t)−Xw∣ 其中,ttt表示当前迭代次数,xi(t)x_{i}(t)xi(t)表示第iii次蜣螂在第t次迭代中的位置信息,k∈(,0.2]k∈(0,0.2]k∈(0,0.2]为扰动系数,bbb为 (,1)(0,1)(0,1) 之间的随机数,α\alphaα取 -1 或 1 ,XwX^{w}Xw表示全局最差位置,Δx\Delta xΔx用于模拟光的强度变化。 其中,α\alphaα的取值采用算法1:
(2)当蜣螂遇到障碍物无法前进时,它需要通过跳舞来重新调整自己,以获得新的路线。本文使用切线函数来模仿跳舞行为,以此获得新的滚动方向,滚动方向仅考虑为[,π][0,π][0,π]之间。 蜣螂一旦成功确定新的方向,它应该继续向后滚动球。蜣螂的位置更新如下: xi(t+1)=xi(t)+tan(θ)∣xi(t)−xi(t−1)∣x_{i}(t+1)=x_{i}(t)+\tan (\theta)\left|x_{i}(t)-x_{i}(t-1)\right|xi(t+1)=xi(t)+tan(θ)∣xi(t)−xi(t−1)∣ 其中,θ\thetaθ为偏转角,其取值为[,π][0,π][0,π],采用算法2:
1.2蜣螂繁殖在自然界中,雌性蜣螂将粪球被滚到适合产卵的安全地方并将其隐藏起来,以此为后代提供一个安全的环境。受此启发,因而提出了一种边界选择策略以此模拟雌性蜣螂产卵的区域: Lb∗=max(X∗×(1−R),Lb)Ub∗=min(X∗×(1+R),Ub)\begin{array}{l} L b^{*}=\max \left(X^{*} \times(1-R), L b\right) \\ U b^{*}=\min \left(X^{*} \times(1+R), U b\right) \end{array}Lb∗=max(X∗×(1−R),Lb)Ub∗=min(X∗×(1+R),Ub) 其中,X∗X^{*}X∗表示当前最优位置,Lb∗L b^{*}Lb∗和Ub∗U b^{*}Ub∗分别表示产卵区的下限和上限,R=1−t/TmaxR=1−t/T_{max}R=1−t/Tmax,TmaxT_{max}Tmax表示最大迭代次数,LbLbLb和UbUbUb分别表示优化问题的下限和上限。 雌性蜣螂一旦确定了产卵区,就会选择在该区域育雏球产卵。每只雌性蜣螂在每次迭代中只产生一个卵,可以看出,产卵区的边界范围是动态变化的,主要由R值决定。因此,育雏球的位置在迭代过程中也是动态的,其定义如下: Bi(t+1)=X∗+b1×(Bi(t)−Lb∗)+b2×(Bi(t)−Ub∗)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)Bi(t+1)=X∗+b1×(Bi(t)−Lb∗)+b2×(Bi(t)−Ub∗) 其中,Bi(t)B_{i}(t)Bi(t)表示第t次迭代中第 i个育雏球的位置信息,b1b_{1}b1和b2b_{2}b2均为1×D的随机向量,D表示优化问题的维度。 产卵区的选择如算法3所示:
1.3蜣螂觅食雌性蜣螂所产的卵会逐渐长大,一些已经成熟的小蜣螂会从地下出来寻找食物,小蜣螂的最佳觅食区建模如下: Lbb=max(Xb×(1−R),Lb)Ubb=min(Xb×(1+R),Ub)\begin{array}{l} 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{array}Lbb=max(Xb×(1−R),Lb)Ubb=min(Xb×(1+R),Ub) 其中,XbX^{b}Xb表示全局最优位置,LbbL b^{b}Lbb和UbbU b^{b}Ubb分别表示最佳觅食区的下限和上限。
小蜣螂的位置更新如下: xi(t+1)=xi(t)+C1×(xi(t)−Lbb)+C2×(xi(t)−Ubb)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)xi(t+1)=xi(t)+C1×(xi(t)−Lbb)+C2×(xi(t)−Ubb) 其中,xi(t)x_{i}(t)xi(t)表示第t次迭代中第i只小蜣螂在的位置,C1C_{1}C1是服从正态分布的随机数,C2C_{2}C2为(0,1)的随机向量。
1.4蜣螂偷窃另一方面,一些蜣螂从其他蜣螂那里偷粪球,盗贼蜣螂的位置更新如下:
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)表示在第t次迭代中第i个盗贼蜣螂的位置,g为服从正态分布的1×D随机向量,S为常数。
二、蜣螂优化算法描述滚球蜣螂、繁殖蜣螂、觅食蜣螂和偷窃蜣螂的比例分布如下: DBO算法描述如下: 参考文献: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
上一篇:Win7系统添加桌面小工具的方法(windows7增加桌面)
下一篇:Win7系统《战地3》打不开的解决方法(战地3 win10)
友情链接: 武汉网站建设