文章目錄
- 一、理論基礎
-
- 1、蜜獾算法
-
- 1.1 初始化階段
- 1.2 定義強度 I I I
- 1.3 更新密度因子
- 1.4 跳出局部最優
- 1.5 更新個體位置
-
- 1.5.1 挖掘階段
- 1.5.2 采蜜階段
- 2、算法僞代碼
- 二、仿真實驗與分析
- 三、參考文獻
一、理論基礎
蜜獾算法(HBA)模拟了蜜獾的覓食行為。為了找到食物源,蜜獾要麼嗅、挖,要麼跟随蜜獾。第一種行為為挖掘模式,而第二種行為為采蜜模式。在挖掘模式中,它利用自己的嗅覺來确定獵物的大緻位置;當到達那裡時,它會繞着獵物移動,以選擇合适的位置來挖掘和捕捉獵物。在采蜜模式中,蜜獾利用引導獾的位置直接定位蜂巢。
1、蜜獾算法
1.1 初始化階段
根據式(1)初始化蜜獾的數量(種群規模)和個體的位置: x i = l b i + r 1 × ( u b i − l b i ) (1) x_i=lb_i+r_1×(ub_i-lb_i)\tag{1} xi=lbi+r1×(ubi−lbi)(1)其中, r 1 r_1 r1為 ( 0 , 1 ) (0,1) (0,1)内的随機數; x i x_i xi為 N N N個候選個體的第 i i i個個體的位置; l b i lb_i lbi和 u b i ub_i ubi分别為搜尋空間的上界和下界。
1.2 定義強度 I I I
強度和獵物的集中力以及和蜜獾之間的距離有關。 I i I_i Ii是獵物的氣味強度;如果氣味高,則運動速度快,反之亦然。如式(2)計算所示: { I i = r 2 × S 4 π d i 2 S = ( x i − x i + 1 ) 2 d i = x p r e y − x i (2) \begin{dcases}I_i=r_2×\frac{S}{4\pi d_i^2}\\{S=(x_i-x_{i+1})^2}\\d_i=x_{prey}-x_i\end{dcases}\tag{2} ⎩⎪⎪⎨⎪⎪⎧Ii=r2×4πdi2SS=(xi−xi+1)2di=xprey−xi(2)其中, S S S是源強度或集中強度; d i d_i di表示獵物與目前蜜獾個體的距離。
1.3 更新密度因子
密度因子 α \alpha α控制時變随機化,以確定從勘探到開采的平穩過渡。使用式(3)更新随疊代次數減少的遞減因子 α \alpha α,以随時間減少随機化。 α = C × exp ( − t t max ) (3) \alpha=C×\exp\left(\frac{-t}{t_{\max}}\right)\tag{3} α=C×exp(tmax−t)(3)其中, t max t_{\max} tmax為最大疊代次數; C C C是一個大于等于1的常數(預設為2)。
1.4 跳出局部最優
這一步和接下來的兩步用于跳出局部最優區域。在這種情況下,所提出的算法使用了一個改變搜尋方向的标志 F F F,以利用大量機會讓搜尋個體嚴格掃描搜尋空間。
1.5 更新個體位置
如前所述,HBA位置更新過程( x n e w x_{new} xnew)分為兩個部分,即“挖掘階段”和“采蜜階段”。下面給出解釋:
1.5.1 挖掘階段
在挖掘階段,蜜獾執行類似于心髒線形狀的動作。心形運動可通過式(4)進行模拟: x n e w = x p r e y + F × β × I × x p r e y + F × r 3 × α × d i × ∣ cos ( 2 π r 4 ) × [ 1 − cos ( 2 π r 5 ) ] ∣ (4) x_{new}=x_{prey}+F×\beta×I×x_{prey}+F×r_3×\alpha×d_i×|\cos(2\pi r_4)×[1-\cos(2\pi r_5)]|\tag{4} xnew=xprey+F×β×I×xprey+F×r3×α×di×∣cos(2πr4)×[1−cos(2πr5)]∣(4)其中, x p r e y x_{prey} xprey是到目前為止全局最優位置; β ≥ 1 \beta≥1 β≥1(預設為6)是蜜獾擷取食物的能力; d i d_i di為獵物與目前蜜獾個體的距離,見式(2); r 3 r_3 r3、 r 4 r_4 r4和 r 5 r_5 r5是 ( 0 , 1 ) (0,1) (0,1)之間的三個不同的随機數; F F F為改變搜尋方向的标志,使用式(5)确定: F = { 1 if r 6 ≤ 0.5 − 1 else (5) F=\begin{dcases}1\quad\,\,\,\,\, \text{if}\,\, r_6≤0.5\\-1\quad\text{else}\end{dcases}\tag{5} F={1ifr6≤0.5−1else(5)在挖掘階段,蜜獾嚴重依賴于獵物的氣味強度、與獵物之間的距離以及時變搜尋影響因子 α \alpha α。此外,在挖掘活動中,獾可能會受到任何幹擾,進而使其無法找到更好的獵物位置。
1.5.2 采蜜階段
蜂蜜獾跟随蜂蜜向導獾到達蜂巢的情況可模拟為式(6): x n e w = x p r e y + F × r 7 × α × d i (6) x_{new}=x_{prey}+F×r_7×\alpha×d_i\tag{6} xnew=xprey+F×r7×α×di(6)其中, x n e w x_{new} xnew為更新後的蜜獾個體位置; x p r e y x_{prey} xprey為獵物位置; F F F和 α \alpha α分别由式(5)和式(3)确定; r 7 r_7 r7為 ( 0 , 1 ) (0,1) (0,1)之間的随機數。從式(6)可以觀察到,根據距離資訊 d i d_i di,蜜獾在獵物位置 x p r e y x_{prey} xprey附近進行搜尋。在這一階段,搜尋受到随疊代變化的搜尋行為 α \alpha α的影響。此外,一隻蜜獾可能會受到 F F F幹擾。
2、算法僞代碼
HBA算法僞代碼如圖1所示。

圖1 HBA算法僞代碼
二、仿真實驗與分析
以文獻[2]中的F1、F2(單峰函數/30維)、F9、F10(多峰函數/30維)、F16、F17(固定次元的多峰函數/2維)為例,将HBA算法分别與花授粉算法(FPA)、鲸魚優化算法(WOA)、飛蛾火焰優化算法(MFO)、正弦餘弦算法(SCA)以及灰狼優化算法(GWO)進行對比,設定種群規模為30,最大疊代次數為1000,每個算法獨立運作30次。
結果顯示如下:
函數:F1
FPA:最內插補點: 0.45312,最優值:0.059663,平均值:0.1572,标準差:0.078226
WOA:最內插補點: 3.8468e-153,最優值:1.787e-166,平均值:1.586e-154,标準差:7.0824e-154
MFO:最內插補點: 20000,最優值:2.7671e-05,平均值:2000.0023,标準差:4842.341
SCA:最內插補點: 0.083351,最優值:6.3116e-09,平均值:0.0063474,标準差:0.015506
GWO:最內插補點: 1.1638e-57,最優值:1.9593e-62,平均值:6.8682e-59,标準差:2.1017e-58
HBA:最內插補點: 4.9384e-276,最優值:1.0454e-286,平均值:2.4754e-277,标準差:0
函數:F2
FPA:最內插補點: 1.1249,最優值:0.2083,平均值:0.50268,标準差:0.18398
WOA:最內插補點: 2.6492e-103,最優值:1.9096e-112,平均值:1.0355e-104,标準差:4.8313e-104
MFO:最內插補點: 90,最優值:0.00069882,平均值:37.3337,标準差:23.9151
SCA:最內插補點: 0.002434,最優值:3.5521e-08,平均值:9.9781e-05,标準差:0.00044213
GWO:最內插補點: 3.9706e-34,最優值:2.1175e-35,平均值:1.1445e-34,标準差:1.0969e-34
HBA:最內插補點: 2.715e-142,最優值:4.052e-151,平均值:9.0628e-144,标準差:4.9566e-143
函數:F9
FPA:最內插補點: 139.1564,最優值:91.7519,平均值:115.611,标準差:11.7281
WOA:最內插補點: 0,最優值:0,平均值:0,标準差:0
MFO:最內插補點: 236.1595,最優值:85.5661,平均值:162.5257,标準差:35.7019
SCA:最內插補點: 128.5608,最優值:4.0412e-05,平均值:26.6363,标準差:35.3467
GWO:最內插補點: 6.3307,最優值:0,平均值:0.4363,标準差:1.4463
HBA:最內插補點: 0,最優值:0,平均值:0,标準差:0
函數:F10
FPA:最內插補點: 13.6963,最優值:0.36228,平均值:5.4049,标準差:3.7088
WOA:最內插補點: 7.9936e-15,最優值:8.8818e-16,平均值:3.7303e-15,标準差:1.9571e-15
MFO:最內插補點: 19.964,最優值:1.5018,平均值:16.9922,标準差:5.3634
SCA:最內插補點: 20.3051,最優值:0.00051109,平均值:17.0372,标準差:6.5228
GWO:最內插補點: 2.2204e-14,最優值:1.1546e-14,平均值:1.6165e-14,标準差:2.9724e-15
HBA:最內插補點: 19.9418,最優值:8.8818e-16,平均值:0.66473,标準差:3.6409
函數:F16
FPA:最內插補點: -1.0316,最優值:-1.0316,平均值:-1.0316,标準差:6.2532e-16
WOA:最內插補點: -1.0316,最優值:-1.0316,平均值:-1.0316,标準差:1.7865e-11
MFO:最內插補點: -1.0316,最優值:-1.0316,平均值:-1.0316,标準差:6.7752e-16
SCA:最內插補點: -1.0316,最優值:-1.0316,平均值:-1.0316,标準差:1.9964e-05
GWO:最內插補點: -1.0316,最優值:-1.0316,平均值:-1.0316,标準差:6.8281e-09
HBA:最內插補點: -1.0316,最優值:-1.0316,平均值:-1.0316,标準差:6.2532e-16
函數:F17
FPA:最內插補點: 0.39789,最優值:0.39789,平均值:0.39789,标準差:0
WOA:最內插補點: 0.3979,最優值:0.39789,平均值:0.39789,标準差:2.0598e-06
MFO:最內插補點: 0.39789,最優值:0.39789,平均值:0.39789,标準差:0
SCA:最內插補點: 0.40065,最優值:0.39791,平均值:0.39864,标準差:0.00065531
GWO:最內插補點: 0.39789,最優值:0.39789,平均值:0.39789,标準差:1.9543e-07
HBA:最內插補點: 0.39789,最優值:0.39789,平均值:0.39789,标準差:0
結果表明,HBA算法具有更快的收斂速度、更高的收斂精度以及更好的尋優能力。
三、參考文獻
[1] Fatma A. Hashim, Essam H. Houssein, Kashif Hussain, Mai S. Mabrouk, Walid Al-Atabany. Honey Badger Algorithm: New metaheuristic algorithm for solving optimization problems[J]. Mathematics and Computers in Simulation, 2021: 84-110.
[2] Yang, Y., Chen, H., Asghar Heidari, A., Gandomi, A.H., Hunger Games Search: Visions, Conception, Implementation, Deep Analysis, Perspectives, and Towards Performance Shifts, Expert Systems with Applications (2021).