智慧優化演演算法:野狗優化演演算法 - 附程式碼

2022-01-08 23:00:10

智慧優化演演算法:野狗優化演演算法


摘要:野狗優化演演算法(Dingo Optimization Algorithm,DOA)是於2021年提出的一種新型智慧優化演演算法,該演演算法是根據澳大利亞野狗的社交行為設計的,具有尋優能力強,收斂速度快等特點。

1.演演算法原理

DOA演演算法的靈感來源於野狗的狩獵策略,即迫害攻擊、分組策略和清掃行為。

1.1 種群初始化

野狗種群在搜尋邊界內隨機初始化:
x i ⃗ = l b i + r a n d i ( u b i − l b i ) (1) \vec{x_i}=lb_i+rand_i(ub_i-lb_i)\tag{1} xi =lbi+randi(ubilbi)(1)
其中, l b i lb_i lbi u b i ub_i ubi分別表示個體的上下邊界, r a n d i rand_i randi是[0,1]之間的亂數。

1.2 策略一:群體攻擊

捕食者通常使用高度智慧的狩獵技術,野狗通常單獨捕食小獵物,如兔子,但當捕食大獵物,如袋鼠時,它們會成群結隊。野狗能找到獵物的位置並將其包圍,其行為如式(2)所示:
x i ⃗ ( t + 1 ) = β i ∑ k = 1 n a [ φ k ( t ) − x i ( t ) ⃗ ⃗ ] n a − x ∗ ( t ) ⃗ (2) \vec{x_i}(t+1)=\beta_i\sum_{k=1}^{na}\frac{[\vec{\varphi_k(t)-\vec{x_i(t)}}]}{na}-\vec{x_*(t)}\tag{2} xi (t+1)=βik=1nana[φk(t)xi(t) ]x(t) (2)
其中, t t t代表當前的迭代次數, x i ⃗ ( t + 1 ) \vec{x_i}(t+1) xi (t+1)是野狗新位置; n a na na是在 [ 2 , S i z e P o p / 2 ] [2,SizePop/2] [2,SizePop/2]的逆序中生成的隨機整數,其中 S i z e P o p SizePop SizePop是野狗種群的規模; φ k ( t ) ⃗ \vec{\varphi_k(t)} φk(t) 是將攻擊的野狗的子集,其中 φ ∈ X \varphi\in X φX,是隨機生成的野狗種群; x i ⃗ ( t ) \vec{x_i}(t) xi (t)是當前野狗的位置; x ∗ ⃗ ( t ) \vec{x_*}(t) x (t)是上一次迭代中發現的最佳野狗; β 1 \beta_1 β1是在[-2,2]內均勻生成的亂數,它是一個比例因子,可改變野狗軌跡的大小。

1.3 策略二:迫害攻擊

野狗通常捕獵小獵物,直到單獨捕獲為止。式(3)模擬了這種行為:
x i ⃗ ( t + 1 ) = x ∗ ⃗ ( t ) + β 1 ∗ e β 2 ∗ ( x r 1 ⃗ ( t ) − x i ( t ) ⃗ ) (3) \vec{x_i}(t+1)=\vec{x_*}(t)+\beta_1*e^{\beta_2}*(\vec{x_{r1}}(t)-\vec{x_i(t)})\tag{3} xi (t+1)=x (t)+β1eβ2(xr1 (t)xi(t) )(3)
其中, x i ⃗ ( t + 1 ) \vec{x_i}(t+1) xi (t+1)是野狗新位置, x ∗ ⃗ ( t ) \vec{x_*}(t) x (t)是上一次迭代中發現的最佳野狗, β 1 \beta_1 β1的值與式(2)中的值相同, β 2 \beta_2 β2是在[-1,1]區間內均勻生成的亂數, r 1 r_1 r1是在從1到最大搜尋代理(野狗)大小的區間內生成的亂數, x r 1 ⃗ ( t ) \vec{x_{r1}}(t) xr1 (t)是隨機選擇的第 r 1 r_1 r1個野狗,其中 i ≠ r 1 i\neq r_1 i=r1

1.4 策略三:清掃

清掃行為為被定義為當野狗在它們的棲息地隨意行走時找到腐肉吃的行為。式(4)用於模擬這種行為:
x i ⃗ ( t + 1 ) = 1 2 [ e β 2 ∗ x r 1 ⃗ ( t ) − ( − 1 ) σ ∗ x i ⃗ ( t ) ] (4) \vec{x_i}(t+1)=\frac{1}{2}[e^{\beta_2}*\vec{x_{r_1}}(t)-(-1)^{\sigma}*\vec{x_i}(t)]\tag{4} xi (t+1)=21[eβ2xr1 (t)(1)σxi (t)](4)
其中, x i ⃗ ( t + 1 ) \vec{x_i}(t+1) xi (t+1)是野狗新位置, β 2 \beta_2 β2的值與式(3)中的值相同, r 1 r_1 r1是在從1到最大搜尋代理(野狗)大小的區間內生成的亂數, x r 1 ⃗ ( t ) \vec{x_{r1}}(t) xr1 (t)是隨機選擇的第 r 1 r_1 r1個野狗,其中 i ≠ r 1 i\neq r_1 i=r1 σ \sigma σ是演演算法隨機生成的二進位制數, σ ∈ { 0 , 1 } \sigma \in\{0,1\} σ{0,1}

1.5 策略四:野狗的存活率

在DOA中,野狗的存活率值由式(5)給出:
s u r v i a l ( i ) = f i t n e s s m a x − f i t n e s s ( i ) f i t n e s s m a x − f i t n e s s m i n (5) survial(i)=\frac{fitness_{max}-fitness(i)}{fitness_{max}-fitness_{min}}\tag{5} survial(i)=fitnessmaxfitnessminfitnessmaxfitness(i)(5)
其中, f i t n e s s m a x fitness_{max} fitnessmax f i t n e s s m i n fitness_{min} fitnessmin分別是當前一代中最差和最佳的適應度值,而 f i t n e s s ( i ) fitness(i) fitness(i)是第 i i i個野狗的當前適應度值。式(5)中的生存向量包含[0,1]區間內的歸一化適應度。式(6)通過策略三應用於低生存率,例如,生存率值等於或小於0.3。
x i ⃗ ( t + 1 ) = x ∗ ⃗ ( t ) + 1 2 [ x r 1 ⃗ ( t ) − ( − 1 ) σ ∗ x r 2 ⃗ ( t ) ] (6) \vec{x_i}(t+1)=\vec{x_*}(t)+\frac{1}{2}[{\vec{x_{r_1}}(t)-(-1)^{\sigma}*\vec{x_{r2}}(t)]}\tag{6} xi (t+1)=x (t)+21[xr1 (t)(1)σxr2 (t)](6)
其中, x i ⃗ ( t ) \vec{x_i}(t) xi (t)是將被更新的生存率較低的野狗, r 1 r_1 r1 r 2 r_2 r2是在從1到搜尋代理(野狗種群)的最大大小的區間內生成的亂數, r 1 ≠ r 2 r_1\neq r_2 r1=r2, x r 1 ⃗ \vec{x_{r1}} xr1 x r 2 ⃗ \vec{x_{r2}} xr2 是隨機選擇的第 r 1 , r 2 r1,r2 r1,r2個野狗, x ∗ ⃗ ( t ) \vec{x_*}(t) x (t)是上一次迭代中發現的最佳野狗; σ \sigma σ是演演算法隨機生成的二進位制數, σ ∈ { 0 , 1 } \sigma \in\{0,1\} σ{0,1}

演演算法虛擬碼

procedure DOA
(2) Initialization of parameters
(3) P = 0.5, probability of hunting or scavenger strategy
(4) Q = 0.7, probability of Strategy 1 (group attack) or Strategy 2 (persecution attack)
(5) Generate the initial population
(6) while iteration < Max Number of Iterations do
(7) if random<P then
(8) if random<Q then
(9) Strategy 1: Group Attack Procedure, Algorithm 1, equation (2).
(10) else
(11) : Strategy 2: Persecution, (3).
(12) end if
(13) else
(14) Strategy 3: Scavenger, (4).
(15) end if
(16) Update search agents that have low survival value, Algorithm 3, equation (6)
(17) Calculate x new , the fitness value of the new search agents
(18) if x new <x ∗ then
(19) x ∗ = x new
(20) end if
(21) iteration = iteration + 1
(22) end while
(23) Display x ∗ , the best optimal solution

2.實驗結果

請新增圖片描述

3.參考文獻

[1] Hernán Peraza-Vázquez, Adrián F. Peña-Delgado, Gustavo Echavarría-Castillo, et al. A Bio-Inspired Method for Engineering Design Optimization Inspired by Dingoes Hunting Strategies[J]. Mathematical Problems in Engineering, vol. 2021, Article ID 9107547, 19 pages, 2021.

4.Matlab程式碼