混合改进策略的黑猩猩优化算法
文章目錄
- 一、理論基礎
- 1、黑猩猩優化算法
- 2、改進的黑猩猩優化算法
- (1)Sobol序列初始化種群
- (2)基于凸透鏡成像的反向學習策略
- (3)水波動態自適應因子
- (4)SLWChOA實現步驟
- 二、仿真實驗與結果分析
- 三、參考文獻
一、理論基礎
1、黑猩猩優化算法
請參考這里。
2、改進的黑猩猩優化算法
(1)Sobol序列初始化種群
初始解在解空間的分布情況很大程度上影響元啟發式算法的收斂速度和尋優精度。均勻分布的種群初始解可以有效提高算法的搜索效率。標準ChOA采用隨機方式初始化種群,這種方法遍歷性低且種群分布不均勻。本文采用Sobol序列初始化種群,Sobol序列是一種低差異序列,使用確定性擬隨機數序列代替偽隨機數序列的方法,將盡可能均勻的點填充至多維超立方體。因此,Sobol序列在解決概率問題時,計算效率更高,采樣點覆蓋率更廣。
設全局解的取值范圍為[lb,ub][lb,ub][lb,ub],有Sobol序列產生的第iii個隨機數為Si∈[0,1]S_i\in[0,1]Si?∈[0,1],則種群初始位置表示如式(1)所示:Xn=lb+Si?(ub?lb)(1)X_n=lb+S_i\cdot(ub-lb)\tag{1}Xn?=lb+Si??(ub?lb)(1)假設搜索空間為二維,上下界分別為0和1,種群規模為100,對比隨機初始化種群空間分布和Sobol序列初始化種群空間分布如圖1所示。
(b)Sobol序列種群初始化分布 圖1 不同方法產生的初始化種群分布圖
(2)基于凸透鏡成像的反向學習策略
凸透鏡成像的反向學習的數學模型請參考這里。本文在此基礎上提出一種基于非線性動態遞減的伸縮因子策略,在算法迭代前期可以獲得較大值,使算法可以在不同維度區域進行更大范圍的搜索,提高群體的多樣性;在算法迭代后期獲得較小值,在最優個體附近進行精細搜索,提高局部尋優能力。非線性動態伸縮因子計算公式如式(2)所示:η=ηmax??(ηmax??ηmin?)?(t/tmax?)2(2)\eta=\eta_{\max}-(\eta_{\max}-\eta_{\min})\cdot(t/t_{\max})^2\tag{2}η=ηmax??(ηmax??ηmin?)?(t/tmax?)2(2)其中,ηmax?\eta_{\max}ηmax?和ηmin?\eta_{\min}ηmin?分別為最大伸縮因子和最小伸縮因子;tmax?t_{\max}tmax?為最大迭代次數。
將凸透鏡成像的反向學習的數學公式推廣至DDD維搜索空間可得:Xj?=ubj+lbj2+ubj+lbj2?η?Xjη(3)X_j^*=\frac{ub_j+lb_j}{2}+\frac{ub_j+lb_j}{2\cdot\eta}-\frac{X_j}{\eta}\tag{3}Xj??=2ubj?+lbj??+2?ηubj?+lbj???ηXj??(3)其中,XjX_jXj?和Xj?X_j^*Xj??分別為XXX和X?X^*X?的第jjj維向量,ubjub_jubj?和lbjlb_jlbj?分別為決策變量的第jjj維向量的上下界。通過對算法中全局最優個體進行凸透鏡成像反向學習,將各維度的值映射到空間中得到反向解,不僅避免各維度之間的干擾,而且擴大算法的搜索范圍。雖然凸透鏡的反向學習策略極大程度地提高算法的求解精度,在一定程度上幫助種群跳出局部最優,但是無法直接判斷產生新的反向個體是否優于原始個體。因此,采用貪婪機制比較新舊個體適應度值,進而篩選出最優個體,通過這種方式不斷獲得更優解,提高算法的尋優能力。其中貪婪機制的數學模型描述如式(4)所示:Xnew(t)={X?f(X)≥f(X?)Xf(X)<f(X?)(4)X_{\text{new}}(t)=\begin{dcases}X^*\quad f(X)≥f(X^*)\\X\quad\,\, f(X)<f(X^*)\end{dcases}\tag{4}Xnew?(t)={X?f(X)≥f(X?)Xf(X)<f(X?)?(4)
(3)水波動態自適應因子
本文在攻擊者位置更新公式中加入水波動態自適應因子,利用水波的動態變化的不確定性使得攻擊者能在更廣泛的區域搜索,降低其他個體跟隨的盲目性,增強群體間的信息交流和學習,保持種群多樣性,有效避免了趨同性,進而提高算法跳出局部最優的能力。
水波動態自適應因子的數學模型如式(5)所示:λ=1?sin?(π?t2?tmax?+2?π)(5)\lambda=1-\sin\left(\frac{\pi\cdot t}{2\cdot t_{\max}}+2\cdot\pi\right)\tag{5}λ=1?sin(2?tmax?π?t?+2?π)(5)ChOA引入水波動態自適應因子后攻擊者位置更新公式為:X1=λ?Xattacker?a1?∣C1?Xattacker?m1?X∣(6)X_1=\lambda\cdot X_{attacker}-a_1\cdot|C_1\cdot X_{attacker}-m_1\cdot X|\tag{6}X1?=λ?Xattacker??a1??∣C1??Xattacker??m1??X∣(6)
(4)SLWChOA實現步驟
綜合上述改進方法,本文所提SLWChOA實現步驟如下所示:
step 1:初始化算法相關參數:種群規模NNN、空間維度dimdimdim、搜索空間[ub,lb][ub, lb][ub,lb]、最大迭代次數tmax?t_{\max}tmax?;
step 2:按照式(1)利用Sobol序列初始化種群;
step 3:計算每個黑猩猩個體的適應度值,并選擇適應度最小的前四個個體位置,分別記錄為XattackerX_{attacker}Xattacker?、XbarrierX_{barrier}Xbarrier?、XchaserX_{chaser}Xchaser?和XdriverX_{driver}Xdriver?;
step 4:按照ChOA的相應公式計算參數a,m,Ca, m, Ca,m,C的值;
step 5:按照式(3)對XattackerX_{attacker}Xattacker?進行凸透鏡成像反向學習,產生反向解Xattacker?X_{attacker}^*Xattacker??,根據式(4)的貪婪機制選擇適應度值低的解;
step 6:按照ChOA的相應公式更新XbarrierX_{barrier}Xbarrier?、XchaserX_{chaser}Xchaser?、XdriverX_{driver}Xdriver?,按照式(6)更新XattackerX_{attacker}Xattacker?,并進一步更新黑猩猩種群位置;
step 7:判斷是否滿足迭代終止條件,滿足則輸出全局最優黑猩猩位置XattackerX_{attacker}Xattacker?,否則進入step 3繼續執行。
二、仿真實驗與結果分析
為充分驗證SLWChOA的有效性和優越性,將基本ChOA與本文加入Sobol序列初始化的黑猩猩算法(SChOA)、加入凸透鏡成像反向學習策略的黑猩猩算法(LChOA)、加入水波動態自適應因子的黑猩猩算法(WChOA)在文獻[1]中表1的函數F1、F2、F6、F7、F9、F10進行仿真實驗對比。算法通用條件設置為相同,種群大小N=30N=30N=30,空間維度dim=30dim=30dim=30,最大迭代次數tmax?=1000t_{\max}=1000tmax?=1000。每個算法運行20次,結果顯示如下:
實驗結果表明,所提算法在尋優精度、收斂速度和魯棒性上均較對比算法有較大提升。
三、參考文獻
[1] 何慶, 羅仕杭. 混合改進策略的黑猩猩優化算法及其機械應用[J/OL]. 控制與決策: 1-11 [2021-12-04].
總結
以上是生活随笔為你收集整理的混合改进策略的黑猩猩优化算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML5会砸掉iOS和Android的
- 下一篇: hive删除表语句