蜣螂最佳化算法(Dung Beetle Optimizer, DBO)是一種新型的群智慧型最佳化算法,在2022年底提出,主要是受蜣螂的的滾球、跳舞、覓食、偷竊和繁殖行為的啟發。
基本介紹
- 中文名:蜣螂最佳化算法
- 外文名:Dung Beetle Optimizer
- 所屬學科:算法
- 縮寫:DBO
算法來源,算法描述,實驗效果,套用前景,
算法來源
在自然界中,蜣螂的習性就是把糞便揉成一個球利用天體進行導航,使糞球沿著直線滾動。然而,如果完全沒有光源,蜣螂的路徑就不再是直線。並且許多自然因素(比如崎嶇的地面)同樣會導致蜣螂偏離原來的方向。此外,蜣螂還會通過舞蹈重新確定方向。糞球還可以作為蟲卵的成長場所。此外,同樣存在偷盜的行為,即一些蜣螂爭奪食物占為己有。
算法描述
在 DBO 算法中,負責滾球的蜣螂位置變化如下:
其中,t代表當前疊代數,xi表示第i個蜣螂的位置信息;k代表一個常數,表示為偏轉係數;α∈(0,1)是一個隨機數;a 是一個自然係數,為-1或1;X是全局最差位置。
當遇到障礙物時,蜣螂會跳舞重新定位方向,其位置更新如下:
、
tan(θ)為偏轉系角。
為了模擬雌性蜣螂產卵的區域採用了邊界選擇策略,其定義為
X*為當前最佳位置;Lb表示下界,Ub表示上界。
在疊代過程中,卵球的位置是動態變化的,定義如下:
Bi表示為卵球的位置,b1和b2為1×D 的隨機向量。
另外,我們需要建立最優覓食區域來引導小蜣螂進行覓食進而模擬其覓食行為,其中最優覓食區域定義如下:
X為全局最佳位置。由此,小蜣螂的位置更新如下:
C1是服從常態分配的隨機數;C2∈(0,1)是一個隨機向量。
此外,假定X是爭奪食物的最佳地點,因此具有偷盜行為的蜣螂位置更新描述如下:
g是服從均值為0,方差為1的常態分配的隨機向量;S為一個常數。
實驗效果
為了驗證DBO算法的有效性,使用Sphere函式和Schwefel 2.22函式進行驗證
套用前景
可以將該算法套用到更為廣闊的場景,如無人機路徑規劃,神經網路參數最佳化等各類最佳化問題