王梓辰,竇震海+,董 軍,司書千,王 晨,2
(1.山東理工大學 電氣與電子工程學院,山東 淄博 255000;2.國家電網聊城市供電公司 營銷部,山東 聊城 252000)
群體智能算法[1-3]因其獨有的搜索機制在求解優化問題方面展現出其高效性,已成為該領域的一種常用方法,鯨魚優化算法[4](whale optimization algorithm,WOA)因獨特搜索機制和簡單結構在解決問題時有突出優勢,已應用于電網優化[5,6]等領域,但算法依舊難以逃離收斂精度低、全局搜索能力差、易于陷入局部最優等缺陷,自算法提出以來學者就其缺陷做出以下幾類改進。
一類通過改進初始化與收斂因子優化算法,HUI Chen等[7]利用Logistic混沌初始化提高算法收斂速度,基于對立學習方法平衡全局和局部開發;王濤等[8]采用Logistic映射初始化并對收斂因子非線性改進提高收斂精度;劉琨等[9]采用精英反向學習初始化并用Γ函數改進收斂因子。
僅采用第一類改進效果較差,文獻中出現位置公式和慣性權重的改進,馮文濤等[10]在慣性權重基礎上,采用阿基米德螺線替代對數螺旋增強全局搜索;劉磊等[11]采用變螺旋機制和慣性權重平衡全局和局部搜索;于俊洋等[12]改進收斂因子和局部擾動提升了收斂性。
部分文獻在上述基礎上引入其它策略,劉亮等[13]采用自適應概率閾值和小生境尋優平衡全局和局部搜索;徐航等[14]引入自適應概率閾值和混合反向學習提升收斂效果;郭振洲等[15]引入柯西變異提高全局搜索能力。
以上改進對收斂性雖有一定提升,但仍有待提高,本文就WOA收斂精度低、易于陷入局部最優等問題提出了一種多策略改進的動態鯨魚優化算法。首先從初始解的質量考慮,采用立方混沌映射提高遍歷性。其次,在引入慣性權重、改進收斂因子以平衡全局和局部搜索基礎上提升收斂性。通過引入變螺旋系數對公式進行改進,提升其全局搜索能力。最后,針對算法沒有跳出局部最優的機制引入了廣義反向學習機制。
鯨魚算法是一種區別于其它算法的元啟發式算法,其算法搜索機制區別于其它算法在于采用隨機搜索或最佳個體模擬種群捕獵行為,算法主要分為3個階段:包圍捕食、泡網攻擊和搜索覓食3種,如下文所述,下文所述公式具體參見文獻[4]。
WOA算法假設當前最佳候選解為種群中最優個體。在定義了最佳候選解之后,種群將按式(1)向最優個體靠攏
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]之間隨機數,a為由2到0線性下降的收斂因子,Max_iter表示最大迭代次數。
收縮包圍:通過減小式(5)中收斂因子a得以實現,a的值隨迭代次數的增大而減小,使得鯨魚個體不斷更新位置系數接近獵物完成包圍。
螺旋更新:鯨魚個體在搜索獵物時采用螺旋上升的策略調整與獵物的位置,其數學模型如式(6)所示
X(t+1)=D′·ebl·cos(2πl)+X*(t)
(6)
D′=|X*(t)-X(t)|
(7)
式中:D′表示獵物與個體之間的距離,b為定義螺旋搜索形狀的常數,l是 [-1,1] 的隨機數。
當 |A|≤1時采用泡網攻擊時,在執行收縮包圍和螺旋更新時各占50%的概率,當p<0.5時執行收縮包圍,反之執行螺旋更新,其數學模型如式(8)所示
(8)
與收縮包圍階段相反,當 |A|>1時在種群中隨機選取一個個體尋優,不再追隨參考鯨魚,數學模型如下所示
X(t+1)=Xrand(t)-A·D
(9)
D=|C·Xrand(t)-X(t)|
(10)
式中:Xrand為隨機選擇的個體的位置向量。
初始解的位置在算法中起至關重要的作用,其直接影響算法的尋優效果和收斂性。算法初始化時,個體位置采用偽隨機數生成,雖然這樣可以使整個種群分布在解空間中,但會不可避免的引起種群的分布不均,造成部分區域過于密集,因此引入混沌理論進行提升,由于其偽隨機性、非重復性和遍歷性,使種群在整個搜索空間中得以均勻分布,采用立方混沌映射初始化種群,如式(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為映射到解空間的混沌變量。
通過對粒子群算法改進方法分析發現,合理設計慣性權重提高算法的收斂速度與精度,本文將自適應慣性權重引入WOA。引入的自適應慣性權重隨迭代次數變化動態調整,提升了算法的搜索效率,所提自適應慣性權重策略如式(13)所示
(13)
算法初期初始值相對較大,有較強的全局搜索能力,因其非線性衰減的特性使得前期以較快的速度收斂到較高精度,算法后期鯨魚個體進入螺旋更新階段,ω在迭代過程中以非線性的趨勢減小,不斷靠近目標,提升局部搜索能力,使得算法不斷逼近最優解。在平衡算法的局部搜索與全局尋優的同時提升算法尋優速度。式中的k為慣性權重系數,使其以較小的值開始衰減,避免前期衰減過快使算法陷入局部最優,后期進入螺旋更新階段,鯨魚螺旋靠近獵物,采用較小的權重值可增強局部尋優能力,引入ω后的位置更新公式如下
X(t+1)=ω·X*(t)-A·D
(14)
X(t+1)=ω·D′·ebl·cos(2πl)+X*(t)
(15)
X(t+1)=ω·Xrand(t)-A·D
(16)
通過對鯨魚優化算法進行分析發現,收斂因子a在平衡算法的全局搜索及局部搜索的過程中起著至關重要,但標準WOA算法中為線性收斂,而WOA搜索時為非線性的尋優策略,并不能很好調節全局搜索能力和局部開發能力,且在局部搜索時容易陷入局部最優,為此,本文在引入ω后對收斂因子a改進,使其隨迭代次數非線性收斂,前期以較快速度衰減,收斂到最優解的搜索范圍,后期衰減速度減慢,幅值變化減小增強局部搜索,提升算法收斂精度,非線性因子改進表達式如式(17)所示
(17)
式中:ainitial,afinal為a的初值和終值。
螺旋更新階段鯨魚根據獵物的位置以螺旋方式更新移動,進而調整個體鯨魚的位置。由標準WOA可知,所建立方程為對數螺旋,但標準WOA中螺旋形狀參數b設為常數,這使得鯨魚在進入螺旋搜索階段時只能按照固定的螺旋線搜索,尋優方式過于單一,極易陷入早熟,削弱算法全局搜尋能力。針對上述問題,本文將b設置為隨迭代次數變化的動態值,使鯨魚個體進入螺旋搜索階段后可以動態調整搜索時的螺旋形狀,增強了算法的全局搜索能力以改善算法的收斂精度問題,改進后的b如式(18)所示
(18)
式中:λ為螺旋更新系數,設置為10,w=0.5。
鯨魚算法中,鯨魚個體以當前最優個體為導向,與自身距離進行位置比較更新逐步向最優個體靠攏,當最優個體的位置非全局最優解時,個體將被錯誤引導至局部最優點使得算法陷入早熟,針對上述問題,本文在動態螺旋更新的基礎上引入了廣義反向學習機制,增強種群個體對其周圍空間的探索能力,對當前的種群個體進行廣義反向學習生成新的個體增加種群多樣性,在一定程度上賦予算法跳出局部最優能力,廣義反向學習機制如式(19)所示
(19)

廣義反向學習機制相比于反向學習,其邊界值動態變化且搜索范圍更小,使得在增加種群多樣性擴大搜索范圍的同時有助于加快算法的收斂速度。
綜上所述,采用上述改進策略改進后的MSIWOA執行步驟采用偽代碼表述,如下所述。
(1)初始化參數:種群規模N,最大迭代次數Max_iter,優化問題維數D
(2)采用立方混沌映射在空間內進行種群初始化
(3)while(t (7) 保持種群不變 (8) else (9) 利用反向解代替原始解更新種群 (10) end if (11) end for (13) 根據公式更新w,a,A,C,b (15) if (p<0.5) (16) if (|A|≤1) (17) 采用式(14)執行包圍捕食 (18) else if (|A|>1) (19) 采用式(16)執行搜索覓食 (20) end if (21) else if(p≥0.5) (22) 采用式(15)執行螺旋更新 (23) end if (24) end for (25) end for (26)t=t+1 (27)end while 算法參數設置為:種群的數量為N,優化問題的維數為D,最大迭代次數為T,可得算法的時間復雜度為O(NDT),本文所提MSIWOA改進算法在WOA算法基礎上引入的改進策略中,自適應慣性權、非線性收斂因子以及動態螺旋更新均未在原有基礎上增加循環嵌套,時間復雜度仍為O(NDT),引入的混沌初始化時間復雜度為O(ND),廣義反向學習的時間復雜度為O(NDT),綜上所述,改進MSIWOA算法的時間復雜度與標準WOA保持一致。 設算法種群規模N=30,迭代次數T=500。為驗證MSIWOA性能,選取12個典型基準測試函數見表1,表1公式均取自文獻[4],其中f1~f7為單峰測試函數,f8~f13為非線性多峰測試函數,函數維數均設為30。不同形式的測試函數可用于測試算法的優化效果和改進的有效性。 表1 基準測試函數 測試結果從以下兩點對比進行討論:第一,在相同的迭代次數、相同種群規模、相同運行次數下對比粒子群算法(PSO)、灰狼算法(GWO)、WOA、EWOA[10]算法的收斂曲線與收斂精度,算法收斂曲線對比如圖1所示,收斂精度對比見表2;第二,在相同的條件下與其它的文獻中的改進算法對比驗證本文改進算法的有效性,收斂精度對比見表3,本文采用獨立運行30次后的最優值(Best)、平均精度(Mean)與標準差(Std)作為算法性能評價依據(“—”表示參考文獻未做此項實驗)。 圖1 收斂曲線對比效果 表2 與經典算法性能對比 表3 與其它改進算法尋優效果對比 本文改進算法中自適應慣性權重的慣性系數取值為k=0.2,動態螺旋更新系數取值為λ=10,w=0.5,PSO算法中c1=2,c2=2,GWO算法參數與文獻[3]中一致。EWOA中權重因子的調節系數k=2,變異尺度因子F=0.6,其它參數與WOA一致。 由表2可知,對比PSO、GWO、WOA算法,MSIWOA有著十分優異的尋優效果,從所選12個基準測試函數的測試結果中可以看出,MSIWOA算法均為最優,從改進算法的平均收斂精度與最優值來看,均優于其它算法,表明算法的收斂精度得以提高,標準差均為最低,算法的穩定性顯著提升。從收斂曲線對比效果圖可以得出,就EWOA而言,對于函數f9、f11本文改進算法與其均可達到最優解,而對比其它函數本文算法有著更為明顯的收斂精度,EWOA算法在求解f6、f8、f12時有著較好的前期收斂速度,但出現收斂效果低于標準WOA的情況,收斂精度難以保證。而MSIWOA采用慣性權重和收斂因子改進,前期以較快收斂速度達到一定的精度,對于函數f1~f4,算法憑借動態螺旋搜索的改進提升了全局搜索能力收斂到最優解,對于函數f6、f7、f12,其它算法均陷入局部最優值,而MSIWOA得益于動態螺旋和廣義反向學習引入,使得算法突破局部最優尋找到更高精度的解,收斂過程中出現多次拐點,表明改進算法有更強的跳出局部最優能力,收斂精度更高,結合了上述改進策略的優點,本文所提改進策略有效改善了早熟現象,具有更強的跳出局部最優能力,提升了算法的收斂精度,驗證了改進策略的有效性。 為對比MSIWOA與其它改進算法的改進效果,通過引用OBCWOA算法[7]、EWOA算法[10]、APN-WOA算法[13]、IWOA算法[16]的數據,在相同的測試條件下對表1的基準測試函數進行求解,比較指標為算法求解結果的平均值與標準差,算法對比結果見表3。 由表3可以看出,本文算法對比其它改進鯨魚算法有著更好的尋優效果,對于單峰函數f1~f4而言,本文算法與APN-WOA、OBCWOA算法均有著較好的收斂精度和穩定性,MSIWOA與OBCWOA可以在有限的迭代次數收斂到理論最優值,且具有較高的穩定性,而IWOA、EOWA收斂精度較低,對于多峰函數f8~f11,結合圖1可以看出,MSIWOA算法可以更少的迭代次數收斂到最優解,而對于多峰函數f12,MSIWOA雖未收斂到理論最優解,但在采用本文改進策略后,相比較其它算法有著更強的尋優最優的能力,收斂到更高精度的解,且有著更高的穩定性。綜上所述,本文所提策略對WOA改進有效提升了算法的收斂精度,相比于其它改進算法有著更為優越的尋優效果。 本文針對鯨魚算法精度低,易早熟的固有缺陷,采用多種策略改進,提出一種自適應動態鯨魚優化算法。為提高算法初始解的質量采用了立方混沌映射進行種群初始化;引入了自適應慣性權重的同時對收斂因子非線性改進,實現算法全局搜索和局部搜索的平衡;采用動態螺旋更新提高算法的全局搜索能力以改善算法的收斂精度問題,同時引入了廣義反向學習機制提升了個體對空間區域的探索,增強跳出局部最優的能力避免早熟。對12個測試函數仿真驗證分析結果表明,改進算法在收斂精度方面有著顯著提升,通過與經典算法和其它改進算法對比檢驗了改進算法的有效性。
2.6 改進算法的復雜度分析
3 算例分析
3.1 算法實驗參數及測試函數

3.2 測試結果分析



4 結束語