張 帥,王俊杰,李愛蓮,全凌翔,崔桂梅
(內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,內(nèi)蒙古 包頭 014010)
元啟發(fā)式算法是近年來興起的一種智能優(yōu)化技術(shù),靈感源自生物行為、物理現(xiàn)象及數(shù)學(xué)概念等,用來解決實際工程中的復(fù)雜問題.常見的優(yōu)化算法包括引力搜索算法(Gravitational Search Algorithm,GSA)[1],正弦余弦優(yōu)化算法(Sine Cosine Algorithm,SCA)[2],灰狼優(yōu)化算法(Grey Wolf Optimizer,GWO)[3],鯨魚優(yōu)化算法(Whale Optimization Algorithm,WOA)[4]等.哈里斯鷹算法(Harris Hawk Optimization,HHO)[5]是Heidari等人通過模擬哈里斯鷹捕食行為提出的一種新式優(yōu)化算法,該算法由于結(jié)構(gòu)簡單,調(diào)節(jié)參數(shù)少和收斂精度高等特點,已被廣泛應(yīng)用于多個技術(shù)領(lǐng)域.文獻(xiàn)[6]將HHO算法應(yīng)用于衛(wèi)星圖像分割,實驗結(jié)果表明,提出的融合變異機制的HHO閾值分割技術(shù)優(yōu)于傳統(tǒng)技術(shù).文獻(xiàn)[7]將HHO算法應(yīng)用于到達(dá)時差定位問題,通過仿真對比其它算法得到更高的定位精度.
然而,與其它智能優(yōu)化算法相同,HHO算法同樣存在收斂速度慢,易陷入局部尋優(yōu)等問題.針對這個問題,不少專家學(xué)者對HHO算法進(jìn)行了改進(jìn).例如:文獻(xiàn)[8]將信息交換改進(jìn)機制和混沌擾動非線性逃逸因子引入基本HHO算法,增強了算法的收斂精度和魯棒性.文獻(xiàn)[9]提出了一種多子群個體交換的方法來改進(jìn)HHO算法,有效提高了算法的尋優(yōu)能力和收斂精度.文獻(xiàn)[10]在基本HHO算法中引入柯西函數(shù)變異,用來提高種群多樣性,同時用隨機收縮指數(shù)函數(shù)修正獵物能量E.最后,引入自適應(yīng)權(quán)重因子提高局部開發(fā)能力.文獻(xiàn)[11]在基本HHO算法中引入了精英反向?qū)W習(xí)機制,用來提高種群多樣性,同時利用黃金正弦算法改進(jìn)哈里斯鷹捕食方式,增強了算法的局部開發(fā)能力.
針對基本HHO算法不足之處,本文提出集成正態(tài)云模型和動態(tài)擾動策略的改進(jìn)哈里斯鷹算法(Improved Harris Hawks Optimization,IHHO).首先通過正態(tài)云模型和反向?qū)W習(xí)思想,在算法全局搜索階段對哈里斯鷹位置進(jìn)行更新,提高算法全局搜索能力.其次,在算法局部開發(fā)階段加入動態(tài)擾動策略,以增強算法局部尋優(yōu)能力.
HHO是近年來新提出的一種元啟發(fā)式智能算法,源自大自然中哈里斯鷹的捕食行為.哈里斯鷹首先棲息在獵物的潛在位置,然后通過獵物能量來采取不同策略進(jìn)行捕食.HHO主要包括全局探索階段、轉(zhuǎn)換階段和局部開發(fā)階段.圖1為HHO算法在不同階段的示意圖.
圖1 HHO不同階段示意圖
在此階段,哈里斯鷹隨機分布在空間中,通過兩種不同的策略去搜探空間中的獵物,且在迭代時通過q進(jìn)行位置更新,公式如下所示:
(1)
(2)
其中:Xt+1和Xt分別表示哈里斯鷹在第t+1次和第t次迭代時的位置,Xrant和Xrabbit分別表示第t次迭代時哈里斯鷹的隨機位置和獵物位置,Xm,t表示第t次迭代時哈里斯鷹的平均位置,r1,r2,r3,r4和q均是[0,1]中的隨機數(shù),ub和lb分別為維度空間的上下界.
哈里斯鷹算法通過獵物能量E來切換探索和開發(fā),公式如下所示:
(3)
E0=2*rand-1
(4)
其中:T為最大迭代次數(shù),E0為[-1,1]的隨機數(shù).
在此階段,為了更好模擬哈里斯鷹實際捕食行為,算法根據(jù)哈里斯鷹的不同捕食方法提出了4種策略對開發(fā)階段進(jìn)行更新,并通過獵物能量和逃逸因子來選擇具體策略.
2.3.1 軟圍獵
當(dāng)|E|≥0.5且η≥0.5時,獵物能量E充足,能通過跳躍方式來躲避圍獵,哈里斯鷹通過消耗E,最終成功捕獲獵物,位置更新公式如下所示:
Xt+1=△Xi-E|JXrabbit,t-Xi|
(5)
△Xt=Xrabbit,t-Xt
(6)
J=2(1-r5)
(7)
其中:J為獵物跳躍強度,r5為[0,1]中的隨機數(shù).
2.3.2 硬圍獵
當(dāng)|E|<0.5且η≥0.5時,獵物因為能量E不足而被哈里斯鷹捕獲,位置更新公式如下所示:
Xt+1=Xrabbit,t-E|△Xt|
(8)
2.3.3 累速俯沖式軟圍獵
當(dāng)|E|≥0.5且η<0.5時,獵物能量E充足,有機會躲避圍獵,首先哈里斯鷹對獵物進(jìn)行俯沖式突襲,若突襲失敗,則執(zhí)行隨機游走策略.
(9)
其中:D和S分別為問題維度和1×D維隨機向量.LF定義如下所示:
(10)
其中:LF(x)為Levy飛行函數(shù).
2.3.4 累速俯沖式硬圍獵
當(dāng)|E|<0.5且η<0.5時,獵物能量E不足,哈里斯鷹在突襲獵物之前會組織硬包圍來進(jìn)行捕食,若突襲失敗,則執(zhí)行隨機游走策略.
(11)
相對其它元啟發(fā)算法,HHO算法也存在種群多樣性下降、易陷入局部尋優(yōu)等問題,本文從3方面對基本HHO算法進(jìn)行改進(jìn).首先引入正態(tài)云模型來提高算法的種群多樣性,其次為了提高全局搜索能力,對全局最差值進(jìn)行反向?qū)W習(xí),最后引入動態(tài)擾動策略,進(jìn)而提高算法的局部開發(fā)能力.
云模型由期望Ex、熵En和超熵He3個參數(shù)進(jìn)行描述,正態(tài)云模型中云滴的分布情況與數(shù)字參數(shù)的關(guān)系如圖2所示,可以看出當(dāng)En增大時,云滴分布范圍隨之變大,當(dāng)He增大時,云滴的離散程度同步增大,側(cè)面反映云滴分布的隨機性和模糊性.正向正態(tài)云發(fā)生器是產(chǎn)生基本服從正態(tài)分布云滴的一種算法,通過設(shè)定的參數(shù)來產(chǎn)生云滴,直到生成期望的云滴數(shù)量.正態(tài)云滴生成過程可定義為如下所示[12]:
圖2 云滴正態(tài)分布模型圖
X[x1,x2,…,xNd]=Gnc(Ex,En,He,Nd)
(12)
其中:Nd為期望云滴個數(shù).
本文引入正態(tài)云模型作為哈里斯鷹位置新的更新機制.通過正態(tài)云模型的期望值Ex對最優(yōu)位置解進(jìn)行開發(fā),通過En調(diào)控其余位置解,利用He調(diào)整哈里斯鷹位置離散程度,公式如下所示[13]:
(13)
(14)
He=En×10-ξ
(15)
反向?qū)W習(xí)思想自被提出以來,就成為優(yōu)化算法常用的一種改進(jìn)策略,主要是通過對算法可行解進(jìn)行反向?qū)W習(xí),通過評估原始解和反向解,選取更優(yōu)解加入算法迭代.為此,本文引入隨機反向?qū)W習(xí)思想對最差哈里斯鷹位置進(jìn)行更新[14],公式如下所示:
Xworst,t+1=ub1+rand×(lb1-Xworst,t)
(16)
其中:Xworst表示最差哈里斯鷹位置,ub1和lb1分別為動態(tài)邊界的上下界.
隨著算法迭代,通過式(16)對位置最差值進(jìn)行更新,得到反向隨機解,從而提高哈里斯鷹種群多樣性和尋得全局最優(yōu)解幾率.同時隨機反向?qū)W習(xí)采用動態(tài)邊界ub1和lb1,降低了傳統(tǒng)的固定邊界ub和lb易丟失搜索信息的問題,也降低了改進(jìn)算法的計算復(fù)雜度.
當(dāng)獵物能量|E|<0時,算法進(jìn)入開發(fā)階段,但無法保證此時種群都接近全局最優(yōu),可能會導(dǎo)致收斂太早以及陷入局部尋優(yōu).因此,本文受到文獻(xiàn)[15]啟發(fā),在4種捕食策略中引入了一種動態(tài)擾動策略,在保證算法尋優(yōu)精度的基礎(chǔ)上能迅速跳出局部尋優(yōu).
(17)
Xψ,rabbit=ψ×Xrabbit
(18)
其中:ψ為擾動系數(shù);Xψ,rabbit為加入擾動后的獵物位置.
改進(jìn)哈里斯鷹算法(IHHO)的算法流程圖如圖3所示.
圖3 IHHO流程圖
為了驗證本文提出的IHHO改進(jìn)策略有效性,將IHHO與GSA[1]、SCA[2]、GWO[3]、WOA[4]和HHO[5]在15個標(biāo)準(zhǔn)測試函數(shù)中通過均值(Avg)和標(biāo)準(zhǔn)差(Std)進(jìn)行對比分析.本次仿真環(huán)境為:Windows10,Intel core i5-6300HQ,編程語言為MATLAB R2018a.算法主要參數(shù)設(shè)置如表1所示.為了仿真公平性,所有算法種群數(shù)設(shè)置為30,最大迭代數(shù)為500,各算法對每個測試函數(shù)均獨立運行30次.
表1 算法參數(shù)設(shè)置
在15個標(biāo)準(zhǔn)測試函數(shù)中,其中:F1~F6為單峰函數(shù),主要用來檢驗算法的局部開發(fā)能力;F7~F12為多峰函數(shù),用來測試算法的全局尋優(yōu)能力;F13~F15為固定維度函數(shù),側(cè)重于測驗算法全局搜索與局部開發(fā)的平衡能力.表2為測試函數(shù)基本信息[16].
表3為IHHO算法和對比算法在dim=30下的測試結(jié)果對比.從表3可以看出,IHHO在求解單峰函數(shù)F1~F6時,IHHO測試結(jié)果均優(yōu)于對比算法,且在F1上取得了理論最優(yōu)值,而且在F2~F4上均值和標(biāo)準(zhǔn)差相對于對比算法提高了上百個數(shù)量級.在求解多峰函數(shù)F7~F12時,IHHO和HHO在F9和F10均達(dá)到了最優(yōu)值,且優(yōu)于剩余4種對比算法,但I(xiàn)HHO在F11和F12上優(yōu)于HHO和其它對比算法.在固定維度函數(shù)F13~F15求解時,IHHO在F13和F13上均優(yōu)于對比算法,在F15上與5種對比算法尋優(yōu)效果相當(dāng).經(jīng)過上述測試結(jié)果分析,本文提出的改進(jìn)算法具有更快的尋優(yōu)速度和更優(yōu)的收斂精度.
表4為IHHO算法和對比算法在下的測試結(jié)果.可以看出,IHHO在100維度下取得了與30維度下類似的結(jié)果.在單峰函數(shù)求解上,IHHO在F1上得到了理論最優(yōu)值0,在F2~F4上雖未達(dá)到最優(yōu)值0,尋優(yōu)精度相對基本HHO分別提高了150個、250個和100個數(shù)量級.在F5和F6上尋優(yōu)精度雖然與其它對比算法相似,但I(xiàn)HHO的均值和標(biāo)準(zhǔn)差均最小.在多峰函數(shù)求解上,IHHO和HHO在F7~F10上取得了相同的尋優(yōu)結(jié)果,且在F8和F10上取得0解,除了WOA在F8上同樣取得最優(yōu)解外,IHHO在其它測試函數(shù)上均好于對比算法.
表4 不同算法測試函數(shù)結(jié)果對比(dim=100)
表5為IHHO算法和對比算法在dim=300下的測試結(jié)果.隨著測試函數(shù)維度的增加,算法求解難度也大幅度提升,算法的收斂精度相對于低維度均不同程度下降.在F1~F4上,IHHO均大幅度優(yōu)于5種對比算法,在F8和F10同WOA和HHO均取得了最優(yōu)值,在其余測試函數(shù)上均好于對比算法,綜上所述,IHHO在面對高維函數(shù)的優(yōu)化問題上,改進(jìn)策略仍具有可行性.
表5 不同算法測試函數(shù)結(jié)果對比(dim=300)
為了更加直觀反應(yīng)算法的收斂性能,采用適應(yīng)度值迭代曲線來進(jìn)行算法性能比較.測試函數(shù)維度為30,迭代次數(shù)為500次,各智能優(yōu)化算法參數(shù)設(shè)置同表1所示,各函數(shù)收斂曲線如圖4所示,其中橫坐標(biāo)為算法迭代次數(shù),縱坐標(biāo)為函數(shù)適應(yīng)度值.
圖4 測試函數(shù)收斂曲線圖
從圖4(a)~圖4(d)看出IHHO在收斂精度上,相對對比算法顯著提高.在圖4(e)和圖4(f)上略優(yōu)于HHO算法,但對其余4種算法來說,尋優(yōu)速度和收斂精度均有一定提高.驗證加入動態(tài)擾動策略后,IHHO的局部開發(fā)能力有提升.在圖4(h)和圖4(j)上IHHO和HHO取得理論最優(yōu)解,在多維函數(shù)求解上,由圖4(m)和圖4(n)看出,IHHO更具競爭力,說明IHHO在全局和開發(fā)上的平衡力領(lǐng)先其它算法.
一般來說,單純憑借均值和標(biāo)準(zhǔn)差來評判算法的性能往往不夠精確,為了增加測試結(jié)果的說服力,引入Wilcoxon秩和檢驗[17]來評估IHHO在p=0.05顯著性水平下與對比算法的顯著性差異.當(dāng)p<0.05時認(rèn)為H0假設(shè)被拒絕,即算法之間存在顯著性差異;當(dāng)p>0.05時,認(rèn)為同意H0假設(shè),即算法之間差異性小,算法尋優(yōu)性能相當(dāng).
表6為IHHO與GSA、SCA、GWO、WOA和HHO在dim=30和顯著性水平p=0.05下的比較結(jié)果.其中:“NaN”表示無法進(jìn)行顯著性差異判斷,“r”表示算法顯著性差異判別,“+/=/-”表示IHHO算法和對比算法之間性能的“優(yōu)于/相當(dāng)/劣于”.由表6可得,絕大多數(shù)的p都小于0.05,可以證明,IHHO改進(jìn)策略的有效性及與對比算法之間存在顯著性差異的統(tǒng)計學(xué)意義.
表6 Wilcoxon秩和檢驗結(jié)果
同時利用Friedman檢驗[18]通過比較秩來對算法進(jìn)行比較,表7為算法Friedman排名,根據(jù)秩均值來看,在下的15個測試函數(shù)中,算法的平均排名為IHHO>HHO>WOA>GWO>GSA>SCA,表明了IHHO相對其它算法,性能方面更具有整體優(yōu)越性.
表7 算法Friedman排名
為了進(jìn)一步驗證IHHO改進(jìn)策略的有效性,將本文提出的IHHO與文獻(xiàn)[19]中的hHHO-SCA,記作HHHO,文獻(xiàn)[20]中的LHHO和文獻(xiàn)[10]中的MHHO進(jìn)行對比分析,為了仿真一致性,設(shè)置測試函數(shù)維度為30,種群數(shù)為30,最大迭代次數(shù)為500,選取各改進(jìn)算法在每個測試函數(shù)上獨立運行30次的平均值(Avg)和標(biāo)準(zhǔn)差(Std)進(jìn)行分析.表8為不同改進(jìn)策略哈里斯鷹算法對比,其中HHHO數(shù)據(jù)取自文獻(xiàn)[19].通過表8可以看出,本文提出的IHHO僅在F5、F11和F12上略遜于MHHO,但基本處于一個數(shù)量級,尋優(yōu)精度相差不大,其余測試函數(shù)上均好于對比的改進(jìn)HHO算法,證明了本文提出的改進(jìn)策略同其它改進(jìn)策略相比,仍然具有優(yōu)越性.
表8 不同改進(jìn)HHO算法對比
三桿桁架設(shè)計問題[5]是一種常用的用來檢驗改進(jìn)算法性能的實際工程問題,設(shè)計目的是在滿足要求的前提下最小化桁架的重量.結(jié)構(gòu)示意圖如圖5所示,測試結(jié)果如表9所示,優(yōu)化模型主要由一個適應(yīng)度函數(shù),3個不等式約束條件和2個決策優(yōu)化變量組成,數(shù)學(xué)描述如下各式所示:
圖5 三桿桁架設(shè)計結(jié)構(gòu)圖
表9 不同算法求解三桿桁架設(shè)計問題的對比結(jié)果
(19)
(20)
(21)
0≤xi≤1,i=1,2
(22)
l=100cm,P=2KN/cm2,σ=2KN/cm2
(23)
其中:l為撓度,P為屈曲,σ為應(yīng)力.
根據(jù)表9結(jié)果,可以看出,IHHO與GSA、SCA、GWO、WOA和HHO等算法相比,在三桿桁架設(shè)計問題中尋優(yōu)效果更好,進(jìn)一步驗證了IHHO在實際應(yīng)用中的可行性.
本文針對基本哈里斯鷹算法尋優(yōu)精度不高和收斂速度慢等問題,提出了一種集成多策略的改進(jìn)哈里斯鷹算法.在全局搜索階段,利用正態(tài)云模型和隨機反向?qū)W習(xí)思想新全局哈里斯鷹位置,提高算法的全局搜索能力.在局部開發(fā)階段,加入動態(tài)擾動策略,優(yōu)化哈里斯鷹的捕食策略,從而提高算法的局部開發(fā)能力.通過15個測試函數(shù)進(jìn)行仿真實驗,并引入Wilcoxon秩和檢驗、Friedman檢驗,可以得出IHHO相較于其它5種優(yōu)化算法和3種改進(jìn)哈里斯鷹算法來說,尋優(yōu)性能更為出色,最后通過三桿桁架設(shè)計問題,進(jìn)一步證明了改進(jìn)算法在實際應(yīng)用中的可行性.在后續(xù)研究中,計劃將改進(jìn)算法用于熱軋帶鋼層流冷卻過程中,用更加復(fù)雜的實際問題來驗證算法性能.