融合多策略的黄金正弦黑猩猩优化算法
文章目錄
- 一、理論基礎
- 1、基本黑猩猩優化算法
- 2、改進的黑猩猩優化算法
- 2.1 Halton序列初始化種群
- 2.2 非線性收斂因子和自適應權重
- 2.2.1 非線性收斂因子
- 2.2.2 自適應權重因子
- 2.3 黃金正弦策略更新位置
- 2.4 IChOA實現偽代碼
- 二、實驗仿真與結果分析
- 三、參考文獻
一、理論基礎
1、基本黑猩猩優化算法
黑猩猩優化算法(Chimp optimization algorithm, ChOA)是根據黑猩猩種群的捕獵行為提出的一種群智能優化算法,一般來說,黑猩猩的狩獵過程分為兩個主要階段:探索階段,即驅動、阻擋和追逐獵物;開發階段,即攻擊獵物。黑猩猩捕獵行為的仿生學原理描述如下:
為了用數學模型模擬黑猩猩的行為,假設第一個攻擊者(最佳解決方案)、驅趕者、阻礙者和追趕者能發現潛在獵物的位置,其他黑猩猩被迫根據最佳黑猩猩的位置更新自己的位置。黑猩猩驅趕和追逐獵物的數學模型描述如式(1)和(2)所示:d(t)=∣cXP(t)?mXC(t)∣(1)d(t)=|cX_P(t)-mX_C(t)|\tag{1}d(t)=∣cXP?(t)?mXC?(t)∣(1)XC(t+1)=XP(t)?a?d(2)X_C(t+1)=X_P(t)-a\cdot d\tag{2}XC?(t+1)=XP?(t)?a?d(2)其中,d(t)d(t)d(t)為獵物與黑猩猩之間的距離,ttt為當前迭代次數,aaa、ccc為系數向量,mmm是由混沌映射產生的混沌向量,XPX_PXP?為獵物的位置向量,XCX_CXC?為黑猩猩的位置向量。aaa和ccc向量由式(3)和(4)分別表示:a=2?f?r1?f(3)a=2\cdot f\cdot r_1-f\tag{3}a=2?f?r1??f(3)c=2?r2(4)c=2\cdot r_2\tag{4}c=2?r2?(4)其中,fff為線性衰減因子,隨著迭代次數的增加fff值由2.5線性衰減到0,r1r_1r1?和r2r_2r2?是取值為[0,1][0, 1][0,1]的隨機數。
參數aaa為[?2f,2f][?2f, 2f][?2f,2f]之間的隨機變量,假設aaa的值為[?1,1][?1, 1][?1,1]時獵物停止移動,此時黑猩猩必須攻擊獵物結束捕獵,因此采取降低f值的方式迫使黑猩猩結束捕獵,黑猩猩的下一個位置可以在當前位置與獵物位置之間的任意位置。
黑猩猩攻擊獵物數學模型描述如式(5)-(7)所示:{dA=∣c1XA?m1X∣dB=∣c2XB?m2X∣dC=∣c3XC?m3X∣dD=∣c4XD?m4X∣(5)\begin{dcases}d_A=|c_1X_A-m_1X|\\d_B=|c_2X_B-m_2X|\\d_C=|c_3X_C-m_3X|\\d_D=|c_4X_D-m_4X|\end{dcases}\tag{5}??????????dA?=∣c1?XA??m1?X∣dB?=∣c2?XB??m2?X∣dC?=∣c3?XC??m3?X∣dD?=∣c4?XD??m4?X∣?(5){X1=XA?a1?dAX2=XB?a2?dBX3=XC?a3?dCX4=XD?a4?dD(6)\begin{dcases}X_1=X_A-a_1\cdot d_A\\X_2=X_B-a_2\cdot d_B\\X_3=X_C-a_3\cdot d_C\\X_4=X_D-a_4\cdot d_D\end{dcases}\tag{6}??????????X1?=XA??a1??dA?X2?=XB??a2??dB?X3?=XC??a3??dC?X4?=XD??a4??dD??(6)X(t+1)=(X1+X2+X3+X4)/4(7)X(t+1)=(X_1+X_2+X_3+X_4)/4\tag{7}X(t+1)=(X1?+X2?+X3?+X4?)/4(7)由式(5)-(7)可知,黑猩猩個體最終的位置是隨機分布在一個由攻擊者、阻礙者、追逐者和驅趕者黑猩猩的位置所確定的圓圈中。換句話說,獵物的位置是由四個最好的個體來估計的,而其他黑猩猩則隨機更新它們在附近的位置。
種群在捕獵的最后階段個體獲得食物滿足,隨后的社會動機會使黑猩猩釋放它們的天性,此時,黑猩猩個體試圖強行混亂地獲得食物。黑猩猩在最后階段的混亂行為有助于進一步緩解解決高維問題時的局部最優陷阱和收斂速度慢這兩個問題。原始黑猩猩算法使用了六種具有隨機行為的確定性混沌過程映射,為了模擬這種社會行為,假設有50%的概率在正常的更新位置機制或混沌模型中選擇其一更新黑猩猩的位置,社會性刺激行為數學模型如式(8)所示:XC(t+1)={XP(t)?a?d,ifμ<0.5Chaotic,ifμ≥0.5(8)X_C(t+1)=\begin{dcases}X_P(t)-a\cdot d,\quad \text{if}\,\,\mu<0.5\\Chaotic,\quad\quad\quad\, \text{if}\,\,\mu≥0.5\end{dcases}\tag{8}XC?(t+1)={XP?(t)?a?d,ifμ<0.5Chaotic,ifμ≥0.5?(8)其中,μ\muμ是取值[0,1][0, 1][0,1]的隨機數,ChaoticChaoticChaotic是混沌映射,用來更新解的位置。
2、改進的黑猩猩優化算法
2.1 Halton序列初始化種群
原始黑猩猩優化算法采用rand函數隨機初始化種群,所得到的種群隨機性高,但是不一定均勻地分布在整個解空間,導致種群搜索速度慢,算法多樣性不足。針對上述問題,本文引入Halton序列產生偽隨機數來初始化種群,偽隨機數的遍歷性使個體更加均勻地分布在整個解空間,提高初始化時算法的多樣性,個體能快速發現優質解的位置,從而加快算法收斂,提高算法收斂精度。
對于二維的Halton序列,其實現過程為:選取兩個質數作為基礎量,通過對兩個基礎量不斷切分,從而組合成一系列均勻分布且不重復的點,其切分過程數學模型描述如式(9)-(11)所示:n=∑i=0mbi?pi=bm?pm+?+b1?p1+b0(9)n=\sum_{i=0}^mb_i\cdot p^i=b_m\cdot p^m+\cdots+b_1\cdot p^1+b_0\tag{9}n=i=0∑m?bi??pi=bm??pm+?+b1??p1+b0?(9)θ(n)=b0p?1+b1p?2+?+bmp?m?1(10)\theta(n)=b_0p^{-1}+b_1p^{-2}+\cdots+b_mp^{-m-1}\tag{10}θ(n)=b0?p?1+b1?p?2+?+bm?p?m?1(10)H(n)=[θ1(n),θ2(n)](11)H(n)=[\theta_1(n),\theta_2(n)]\tag{11}H(n)=[θ1?(n),θ2?(n)](11)其中,n∈[1,N]n\in[1,N]n∈[1,N]為任意整數,ppp是大于等于2的質數,bi∈{0,1,2,?,p?1}b_i\in\{0,1,2,\cdots,p-1\}bi?∈{0,1,2,?,p?1}為常數,ppp表示Halton序列基礎量,θ(n)\theta(n)θ(n)是定義的序列函數,H(n)H(n)H(n)為最后得到的二維均勻Halton序列。
如圖1為基本黑猩猩算法產生的隨機種群初始化個體分布圖,圖2為使用Halton序列產生的初始種群分布圖,其中Halton序列基礎量為base1=2base1=2base1=2和base2=3base2=3base2=3。
圖2 種群Halton分布圖 由圖1和圖2的對比分析可知,Halton序列產生的種群分布雖然隨機性并不高,但是分布更為均勻,并沒有出現個體重疊現象,由此可知Halton序列產生的種群質量更高,算法多樣性更好。
2.2 非線性收斂因子和自適應權重
2.2.1 非線性收斂因子
基本ChOA算法的收斂因子fff由2.5線性下降到0,這種線性變化并不能適應算法對于復雜多峰函數的尋優,導致算法尋優速度緩慢,甚至陷入局部最優值。因此,本文引入一種非線性變化的收斂因子,在算法迭代前期種群大范圍搜索時緩慢衰減的收斂因子能讓種群更好地搜索全局最優解;算法迭代后期種群收斂,此時快速衰減的收斂因子有利于算法局部尋找最優解。同時,加入控制因子kkk,能控制衰減的幅度,非線性收斂因子的數學模型描述如式(12)所示:f=fm?[1?(et/Max_iter?1e?1)k](12)f=f_m\cdot\left[1-\left(\frac{e^{t/Max\_iter}-1}{e-1}\right)^k\right]\tag{12}f=fm??[1?(e?1et/Max_iter?1?)k](12)其中,ttt為當前迭代次數,Max_iterMax\_iterMax_iter為最大迭代次數,fmf_mfm?為收斂因子的初始值,k∈[1,10]k∈[1, 10]k∈[1,10]為控制因子,kkk能控制fff衰減幅度,kkk越大時收斂因子衰減越慢,反之越快。線性收斂因子f和控制因子kkk取k=1k = 1k=1、k=5k = 5k=5和k=10k = 10k=10的非線性收斂因子對比如圖3所示:
2.2.2 自適應權重因子
權重因子在目標函數優化中起著很重要的作用,合適的權重能夠加快算法收斂,提高算法收斂精度。針對ChOA算法尋優過程中收斂速度慢、精度不高的問題,引入一種自適應調整的權重因子ω\omegaω:在算法迭代初期,給予一個較大的權重使種群以大步長遍歷整個搜索空間,有利于算法快速搜尋全局最優位置,加快算法收斂;在算法迭代中后期,算法逐漸收斂,個體局部搜尋最優解,此時給予一個較小的權重有利于算法以小步長精細探索最優位置,提高算法收斂精度;最后,在算法迭代末期,針對ChOA算法易陷入局部最優的問題,給予個體位置一個相對較大的擾動,有利于算法跳出局部最優解。自適應權重因子ω\omegaω數學模型如式(13)所示:ω={δ1?(cos?(t?π/δ2)+δ3),t≤ερ1?sin?(ρ2?t?π)+ρ3,t>ε(13)\omega=\begin{dcases}\delta_1\cdot (\cos(t\cdot\pi/\delta_2)+\delta_3),\quad t≤\varepsilon\\\rho_1\cdot\sin(\rho_2\cdot t\cdot\pi)+\rho_3,\quad t>\varepsilon\end{dcases}\tag{13}ω={δ1??(cos(t?π/δ2?)+δ3?),t≤ερ1??sin(ρ2??t?π)+ρ3?,t>ε?(13)其中,δ1\delta_1δ1?、δ2\delta_2δ2?、δ3\delta_3δ3?、ρ1\rho_1ρ1?、ρ2\rho_2ρ2?、ρ3\rho_3ρ3?為常數系數,ttt為當前迭代次數,t=(1,2,???,Max_iter)t = (1, 2, ···, Max\_iter)t=(1,2,???,Max_iter),ε\varepsilonε為指定迭代次數。ω\omegaω隨迭代次數變化圖如圖4所示:
2.3 黃金正弦策略更新位置
黃金正弦算法(Golden sine algorithm, Golden-SA)是Tanyildizi等人于2017年根據正弦函數相關思想提出的新型智能算法,該算法具有尋優速度快、調參簡單、魯棒性好等優點。Golden-SA算法使用正弦函數與單位圓的特殊關系結合黃金分割系數進行迭代搜索,通過正弦函數掃描單位圓模擬算法探索搜索空間的過程。其數學模型描述請參考這里。
2.4 IChOA實現偽代碼
IChOA算法的具體實現偽代碼如下所示:
Halton序列初始化種群并設置相關參數 計算當前種群的搜索空間, 返回超出搜索空間的個體 While l<Max_iter計算個體適應度并排序記錄最優和最差個體位置及適應度更新四個領導者位置for i = 1:Nif i ≤ 10按公式(12)更新個體位置else按照公式(5)-(7)更新個體位置m = chaos (3, 1, 1)endend end 算法結束, 返回最優位置及適應度二、實驗仿真與結果分析
本文選取基本黑猩猩算法(ChOA)、粒子群優化算法(PSO)、灰狼優化算法(GWO)和鯨魚優化算法(WOA)與IChOA算法進行對比,基本參數統一設置為:種群規模N=30N=30N=30,最大迭代次數Max_iter=500Max\_iter=500Max_iter=500,維度為d=30d=30d=30。各算法內部參數設置文獻[2]中如表1所示。以文獻[2]中表2的F1、F3(單峰函數/30維)、F9、F10(多峰函數/30維)、F17、F18(固定維度多峰函數/2維、2維)為例,各算法分別運行50次取平均值,結果顯示如下:
實驗結果表明,改進的算法具有更好的魯棒性。
三、參考文獻
[1] Khishe M, Mosavi M R. Chimp optimization algorithm[J]. Expert Systems with Applications, 2020, 149: 113338.
[2] 劉成漢, 何慶. 融合多策略的黃金正弦黑猩猩優化算法[J]. 自動化學報, 2021, 47(x): 1?14.
總結
以上是生活随笔為你收集整理的融合多策略的黄金正弦黑猩猩优化算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视频教程-MVC5+EF6之巧租房系统-
- 下一篇: OCP考试