王梓辰,竇震海+,董 軍,司書千,王 晨,2
(1.山東理工大學(xué) 電氣與電子工程學(xué)院,山東 淄博 255000;2.國家電網(wǎng)聊城市供電公司 營銷部,山東 聊城 252000)
群體智能算法[1-3]因其獨有的搜索機制在求解優(yōu)化問題方面展現(xiàn)出其高效性,已成為該領(lǐng)域的一種常用方法,鯨魚優(yōu)化算法[4](whale optimization algorithm,WOA)因獨特搜索機制和簡單結(jié)構(gòu)在解決問題時有突出優(yōu)勢,已應(yīng)用于電網(wǎng)優(yōu)化[5,6]等領(lǐng)域,但算法依舊難以逃離收斂精度低、全局搜索能力差、易于陷入局部最優(yōu)等缺陷,自算法提出以來學(xué)者就其缺陷做出以下幾類改進。
一類通過改進初始化與收斂因子優(yōu)化算法,HUI Chen等[7]利用Logistic混沌初始化提高算法收斂速度,基于對立學(xué)習(xí)方法平衡全局和局部開發(fā);王濤等[8]采用Logistic映射初始化并對收斂因子非線性改進提高收斂精度;劉琨等[9]采用精英反向?qū)W習(xí)初始化并用Γ函數(shù)改進收斂因子。
僅采用第一類改進效果較差,文獻中出現(xiàn)位置公式和慣性權(quán)重的改進,馮文濤等[10]在慣性權(quán)重基礎(chǔ)上,采用阿基米德螺線替代對數(shù)螺旋增強全局搜索;劉磊等[11]采用變螺旋機制和慣性權(quán)重平衡全局和局部搜索;于俊洋等[12]改進收斂因子和局部擾動提升了收斂性。
部分文獻在上述基礎(chǔ)上引入其它策略,劉亮等[13]采用自適應(yīng)概率閾值和小生境尋優(yōu)平衡全局和局部搜索;徐航等[14]引入自適應(yīng)概率閾值和混合反向?qū)W習(xí)提升收斂效果;郭振洲等[15]引入柯西變異提高全局搜索能力。
以上改進對收斂性雖有一定提升,但仍有待提高,本文就WOA收斂精度低、易于陷入局部最優(yōu)等問題提出了一種多策略改進的動態(tài)鯨魚優(yōu)化算法。首先從初始解的質(zhì)量考慮,采用立方混沌映射提高遍歷性。其次,在引入慣性權(quán)重、改進收斂因子以平衡全局和局部搜索基礎(chǔ)上提升收斂性。通過引入變螺旋系數(shù)對公式進行改進,提升其全局搜索能力。最后,針對算法沒有跳出局部最優(yōu)的機制引入了廣義反向?qū)W習(xí)機制。
鯨魚算法是一種區(qū)別于其它算法的元啟發(fā)式算法,其算法搜索機制區(qū)別于其它算法在于采用隨機搜索或最佳個體模擬種群捕獵行為,算法主要分為3個階段:包圍捕食、泡網(wǎng)攻擊和搜索覓食3種,如下文所述,下文所述公式具體參見文獻[4]。
WOA算法假設(shè)當(dāng)前最佳候選解為種群中最優(yōu)個體。在定義了最佳候選解之后,種群將按式(1)向最優(yōu)個體靠攏
X(t+1)=X*(t)-A·D
(1)
D=|C·X*(t)-X(t)|
(2)
A=2ar1-a
(3)
C=2r2
(4)
(5)
式中:r1,r2為[0,1]之間隨機數(shù),a為由2到0線性下降的收斂因子,Max_iter表示最大迭代次數(shù)。
收縮包圍:通過減小式(5)中收斂因子a得以實現(xiàn),a的值隨迭代次數(shù)的增大而減小,使得鯨魚個體不斷更新位置系數(shù)接近獵物完成包圍。
螺旋更新:鯨魚個體在搜索獵物時采用螺旋上升的策略調(diào)整與獵物的位置,其數(shù)學(xué)模型如式(6)所示
X(t+1)=D′·ebl·cos(2πl(wèi))+X*(t)
(6)
D′=|X*(t)-X(t)|
(7)
式中:D′表示獵物與個體之間的距離,b為定義螺旋搜索形狀的常數(shù),l是 [-1,1] 的隨機數(shù)。
當(dāng) |A|≤1時采用泡網(wǎng)攻擊時,在執(zhí)行收縮包圍和螺旋更新時各占50%的概率,當(dāng)p<0.5時執(zhí)行收縮包圍,反之執(zhí)行螺旋更新,其數(shù)學(xué)模型如式(8)所示
(8)
與收縮包圍階段相反,當(dāng) |A|>1時在種群中隨機選取一個個體尋優(yōu),不再追隨參考鯨魚,數(shù)學(xué)模型如下所示
X(t+1)=Xrand(t)-A·D
(9)
D=|C·Xrand(t)-X(t)|
(10)
式中:Xrand為隨機選擇的個體的位置向量。
初始解的位置在算法中起至關(guān)重要的作用,其直接影響算法的尋優(yōu)效果和收斂性。算法初始化時,個體位置采用偽隨機數(shù)生成,雖然這樣可以使整個種群分布在解空間中,但會不可避免的引起種群的分布不均,造成部分區(qū)域過于密集,因此引入混沌理論進行提升,由于其偽隨機性、非重復(fù)性和遍歷性,使種群在整個搜索空間中得以均勻分布,采用立方混沌映射初始化種群,如式(11)所示
x(n+1)=4x(n)3-3x(n)
-1≤x(n)≤1,n=1,2,3…
(11)
混沌初始化步驟如下:
(1)在搜索空間中隨機生成一個[-1,1]的d維個體;
(2)將生成的第一個個體按式(11)進行迭代生成其它個體混沌序列;
(3)所有鯨魚個體都迭代完成后,按照式(12)映射到原搜索空間
(12)
式中:ud,ld為每個個體每個維度的上下限,Xd為映射到解空間的混沌變量。
通過對粒子群算法改進方法分析發(fā)現(xiàn),合理設(shè)計慣性權(quán)重提高算法的收斂速度與精度,本文將自適應(yīng)慣性權(quán)重引入WOA。引入的自適應(yīng)慣性權(quán)重隨迭代次數(shù)變化動態(tài)調(diào)整,提升了算法的搜索效率,所提自適應(yīng)慣性權(quán)重策略如式(13)所示
(13)
算法初期初始值相對較大,有較強的全局搜索能力,因其非線性衰減的特性使得前期以較快的速度收斂到較高精度,算法后期鯨魚個體進入螺旋更新階段,ω在迭代過程中以非線性的趨勢減小,不斷靠近目標(biāo),提升局部搜索能力,使得算法不斷逼近最優(yōu)解。在平衡算法的局部搜索與全局尋優(yōu)的同時提升算法尋優(yōu)速度。式中的k為慣性權(quán)重系數(shù),使其以較小的值開始衰減,避免前期衰減過快使算法陷入局部最優(yōu),后期進入螺旋更新階段,鯨魚螺旋靠近獵物,采用較小的權(quán)重值可增強局部尋優(yōu)能力,引入ω后的位置更新公式如下
X(t+1)=ω·X*(t)-A·D
(14)
X(t+1)=ω·D′·ebl·cos(2πl(wèi))+X*(t)
(15)
X(t+1)=ω·Xrand(t)-A·D
(16)
通過對鯨魚優(yōu)化算法進行分析發(fā)現(xiàn),收斂因子a在平衡算法的全局搜索及局部搜索的過程中起著至關(guān)重要,但標(biāo)準(zhǔn)WOA算法中為線性收斂,而WOA搜索時為非線性的尋優(yōu)策略,并不能很好調(diào)節(jié)全局搜索能力和局部開發(fā)能力,且在局部搜索時容易陷入局部最優(yōu),為此,本文在引入ω后對收斂因子a改進,使其隨迭代次數(shù)非線性收斂,前期以較快速度衰減,收斂到最優(yōu)解的搜索范圍,后期衰減速度減慢,幅值變化減小增強局部搜索,提升算法收斂精度,非線性因子改進表達式如式(17)所示
(17)
式中:ainitial,afinal為a的初值和終值。
螺旋更新階段鯨魚根據(jù)獵物的位置以螺旋方式更新移動,進而調(diào)整個體鯨魚的位置。由標(biāo)準(zhǔn)WOA可知,所建立方程為對數(shù)螺旋,但標(biāo)準(zhǔn)WOA中螺旋形狀參數(shù)b設(shè)為常數(shù),這使得鯨魚在進入螺旋搜索階段時只能按照固定的螺旋線搜索,尋優(yōu)方式過于單一,極易陷入早熟,削弱算法全局搜尋能力。針對上述問題,本文將b設(shè)置為隨迭代次數(shù)變化的動態(tài)值,使鯨魚個體進入螺旋搜索階段后可以動態(tài)調(diào)整搜索時的螺旋形狀,增強了算法的全局搜索能力以改善算法的收斂精度問題,改進后的b如式(18)所示
(18)
式中:λ為螺旋更新系數(shù),設(shè)置為10,w=0.5。
鯨魚算法中,鯨魚個體以當(dāng)前最優(yōu)個體為導(dǎo)向,與自身距離進行位置比較更新逐步向最優(yōu)個體靠攏,當(dāng)最優(yōu)個體的位置非全局最優(yōu)解時,個體將被錯誤引導(dǎo)至局部最優(yōu)點使得算法陷入早熟,針對上述問題,本文在動態(tài)螺旋更新的基礎(chǔ)上引入了廣義反向?qū)W習(xí)機制,增強種群個體對其周圍空間的探索能力,對當(dāng)前的種群個體進行廣義反向?qū)W習(xí)生成新的個體增加種群多樣性,在一定程度上賦予算法跳出局部最優(yōu)能力,廣義反向?qū)W習(xí)機制如式(19)所示
(19)
廣義反向?qū)W習(xí)機制相比于反向?qū)W習(xí),其邊界值動態(tài)變化且搜索范圍更小,使得在增加種群多樣性擴大搜索范圍的同時有助于加快算法的收斂速度。
綜上所述,采用上述改進策略改進后的MSIWOA執(zhí)行步驟采用偽代碼表述,如下所述。
(1)初始化參數(shù):種群規(guī)模N,最大迭代次數(shù)Max_iter,優(yōu)化問題維數(shù)D
(2)采用立方混沌映射在空間內(nèi)進行種群初始化
(3)while(t (7) 保持種群不變 (8) else (9) 利用反向解代替原始解更新種群 (10) end if (11) end for (13) 根據(jù)公式更新w,a,A,C,b (15) if (p<0.5) (16) if (|A|≤1) (17) 采用式(14)執(zhí)行包圍捕食 (18) else if (|A|>1) (19) 采用式(16)執(zhí)行搜索覓食 (20) end if (21) else if(p≥0.5) (22) 采用式(15)執(zhí)行螺旋更新 (23) end if (24) end for (25) end for (26)t=t+1 (27)end while 算法參數(shù)設(shè)置為:種群的數(shù)量為N,優(yōu)化問題的維數(shù)為D,最大迭代次數(shù)為T,可得算法的時間復(fù)雜度為O(NDT),本文所提MSIWOA改進算法在WOA算法基礎(chǔ)上引入的改進策略中,自適應(yīng)慣性權(quán)、非線性收斂因子以及動態(tài)螺旋更新均未在原有基礎(chǔ)上增加循環(huán)嵌套,時間復(fù)雜度仍為O(NDT),引入的混沌初始化時間復(fù)雜度為O(ND),廣義反向?qū)W習(xí)的時間復(fù)雜度為O(NDT),綜上所述,改進MSIWOA算法的時間復(fù)雜度與標(biāo)準(zhǔn)WOA保持一致。 設(shè)算法種群規(guī)模N=30,迭代次數(shù)T=500。為驗證MSIWOA性能,選取12個典型基準(zhǔn)測試函數(shù)見表1,表1公式均取自文獻[4],其中f1~f7為單峰測試函數(shù),f8~f13為非線性多峰測試函數(shù),函數(shù)維數(shù)均設(shè)為30。不同形式的測試函數(shù)可用于測試算法的優(yōu)化效果和改進的有效性。 表1 基準(zhǔn)測試函數(shù) 測試結(jié)果從以下兩點對比進行討論:第一,在相同的迭代次數(shù)、相同種群規(guī)模、相同運行次數(shù)下對比粒子群算法(PSO)、灰狼算法(GWO)、WOA、EWOA[10]算法的收斂曲線與收斂精度,算法收斂曲線對比如圖1所示,收斂精度對比見表2;第二,在相同的條件下與其它的文獻中的改進算法對比驗證本文改進算法的有效性,收斂精度對比見表3,本文采用獨立運行30次后的最優(yōu)值(Best)、平均精度(Mean)與標(biāo)準(zhǔn)差(Std)作為算法性能評價依據(jù)(“—”表示參考文獻未做此項實驗)。 圖1 收斂曲線對比效果 表2 與經(jīng)典算法性能對比 表3 與其它改進算法尋優(yōu)效果對比 本文改進算法中自適應(yīng)慣性權(quán)重的慣性系數(shù)取值為k=0.2,動態(tài)螺旋更新系數(shù)取值為λ=10,w=0.5,PSO算法中c1=2,c2=2,GWO算法參數(shù)與文獻[3]中一致。EWOA中權(quán)重因子的調(diào)節(jié)系數(shù)k=2,變異尺度因子F=0.6,其它參數(shù)與WOA一致。 由表2可知,對比PSO、GWO、WOA算法,MSIWOA有著十分優(yōu)異的尋優(yōu)效果,從所選12個基準(zhǔn)測試函數(shù)的測試結(jié)果中可以看出,MSIWOA算法均為最優(yōu),從改進算法的平均收斂精度與最優(yōu)值來看,均優(yōu)于其它算法,表明算法的收斂精度得以提高,標(biāo)準(zhǔn)差均為最低,算法的穩(wěn)定性顯著提升。從收斂曲線對比效果圖可以得出,就EWOA而言,對于函數(shù)f9、f11本文改進算法與其均可達到最優(yōu)解,而對比其它函數(shù)本文算法有著更為明顯的收斂精度,EWOA算法在求解f6、f8、f12時有著較好的前期收斂速度,但出現(xiàn)收斂效果低于標(biāo)準(zhǔn)WOA的情況,收斂精度難以保證。而MSIWOA采用慣性權(quán)重和收斂因子改進,前期以較快收斂速度達到一定的精度,對于函數(shù)f1~f4,算法憑借動態(tài)螺旋搜索的改進提升了全局搜索能力收斂到最優(yōu)解,對于函數(shù)f6、f7、f12,其它算法均陷入局部最優(yōu)值,而MSIWOA得益于動態(tài)螺旋和廣義反向?qū)W習(xí)引入,使得算法突破局部最優(yōu)尋找到更高精度的解,收斂過程中出現(xiàn)多次拐點,表明改進算法有更強的跳出局部最優(yōu)能力,收斂精度更高,結(jié)合了上述改進策略的優(yōu)點,本文所提改進策略有效改善了早熟現(xiàn)象,具有更強的跳出局部最優(yōu)能力,提升了算法的收斂精度,驗證了改進策略的有效性。 為對比MSIWOA與其它改進算法的改進效果,通過引用OBCWOA算法[7]、EWOA算法[10]、APN-WOA算法[13]、IWOA算法[16]的數(shù)據(jù),在相同的測試條件下對表1的基準(zhǔn)測試函數(shù)進行求解,比較指標(biāo)為算法求解結(jié)果的平均值與標(biāo)準(zhǔn)差,算法對比結(jié)果見表3。 由表3可以看出,本文算法對比其它改進鯨魚算法有著更好的尋優(yōu)效果,對于單峰函數(shù)f1~f4而言,本文算法與APN-WOA、OBCWOA算法均有著較好的收斂精度和穩(wěn)定性,MSIWOA與OBCWOA可以在有限的迭代次數(shù)收斂到理論最優(yōu)值,且具有較高的穩(wěn)定性,而IWOA、EOWA收斂精度較低,對于多峰函數(shù)f8~f11,結(jié)合圖1可以看出,MSIWOA算法可以更少的迭代次數(shù)收斂到最優(yōu)解,而對于多峰函數(shù)f12,MSIWOA雖未收斂到理論最優(yōu)解,但在采用本文改進策略后,相比較其它算法有著更強的尋優(yōu)最優(yōu)的能力,收斂到更高精度的解,且有著更高的穩(wěn)定性。綜上所述,本文所提策略對WOA改進有效提升了算法的收斂精度,相比于其它改進算法有著更為優(yōu)越的尋優(yōu)效果。 本文針對鯨魚算法精度低,易早熟的固有缺陷,采用多種策略改進,提出一種自適應(yīng)動態(tài)鯨魚優(yōu)化算法。為提高算法初始解的質(zhì)量采用了立方混沌映射進行種群初始化;引入了自適應(yīng)慣性權(quán)重的同時對收斂因子非線性改進,實現(xiàn)算法全局搜索和局部搜索的平衡;采用動態(tài)螺旋更新提高算法的全局搜索能力以改善算法的收斂精度問題,同時引入了廣義反向?qū)W習(xí)機制提升了個體對空間區(qū)域的探索,增強跳出局部最優(yōu)的能力避免早熟。對12個測試函數(shù)仿真驗證分析結(jié)果表明,改進算法在收斂精度方面有著顯著提升,通過與經(jīng)典算法和其它改進算法對比檢驗了改進算法的有效性。2.6 改進算法的復(fù)雜度分析
3 算例分析
3.1 算法實驗參數(shù)及測試函數(shù)
3.2 測試結(jié)果分析
4 結(jié)束語