耿召里,李 目,曹淑睿,劉昶忻
(湖南科技大學信息與電氣工程學院,湖南 湘潭 411201)
優(yōu)化問題一直是管理決策、計算機科學等領域研究的熱點之一[1]。隨著人工智能的興起,對優(yōu)化算法的研究與應用更顯得尤為重要。智能優(yōu)化算法是一類受自然界生物的社會行為啟發(fā)而產生的算法,因其易于實現、結構簡單、效果明顯而受到廣泛關注。最具代表性的有蟻群優(yōu)化ACO(Ant Colony Optimization)算法[2]、粒子群優(yōu)化PSO(Particle Swarm Optimization )算法[3]、人工蜂群ABC(Artificial Bee Colony)算法[4]、果蠅優(yōu)化算法FOA(Fruit fly Optimization Algorithm)[5]等。2016年Mirjalili等[6]提出一種新型群體優(yōu)化算法-鯨魚優(yōu)化算法WOA(Whale Optimization Algorithm)。WOA模擬了自然界座頭鯨群體捕食獵物的行為,并將其抽象為搜索、攻擊和包圍3種行為對目標問題進行尋優(yōu)。WOA相較于粒子群優(yōu)化(PSO)算法[3]、螢火蟲算法FA(Firefly Algorithm)[7]等具有原理簡單、易于實現、參數少和尋優(yōu)能力強等優(yōu)點,目前已成功應用于滾動軸承故障診斷[8]、神經網絡訓練[9]和大規(guī)模優(yōu)化問題[10]等領域。然而,由于標準的WOA近年來剛被提出,在很多方面還存在不足,如調整算法參數后仍不能完全模擬鯨魚搜索過程[1],迭代后期群體多樣性較差而導致算法陷入局部最優(yōu)[11],解決高維復雜問題效果較差[10]等問題。針對這些問題,近年來國內外學者提出了多種WOA改進算法,有效地提高了算法效率。
為了解決鯨魚算法易陷入局部最優(yōu)和收斂精度低等問題,郭振洲等[12]提出了一種基于權重和柯西變異策略的鯨魚算法,通過柯西變異,更新鯨魚位置,有效地避免了算法陷入局部最優(yōu)。褚鼎立等[13]通過研究個體與平均適應度之間的關系,提出了一種自適應權重策略的WOA算法,有效地提高了算法的收斂速度。王堅浩等[1]針對WOA開發(fā)和探索能力難以協調問題,設計了收斂因子和慣性權重的非線性混沌擾動協同更新策略,以平衡全局探索和局部開發(fā)能力。文獻[14]針對鯨魚優(yōu)化算法全局收斂速度慢、優(yōu)化性能有待提高等問題,將混沌理論引入WOA優(yōu)化過程,用于調整迭代過程中鯨魚優(yōu)化算法的主要參數。然而,目前研究的鯨魚優(yōu)化算法求解高維復雜問題文獻并不多,文獻[15]提出一種基于Levey飛行軌跡的工程化WOA,提高了種群的多樣性,增強了算法跳出局部最優(yōu)的能力。文獻[16]提出基于2個二進制變體的WOA,并應用于特征分類,取得了理想的效果。龍文等[10]采用對立學習策略初始化種群,并采用一種隨機迭代參數非線性變化的收斂因子公式,展現了較強的計算能力。文獻[17]提出了一種混合策略的鯨魚優(yōu)化算法MS-WOA(Mixed Strategy based improved Whale Optimization Algorithm),該算法引入非線性調整因子和自適應權重系數對鯨魚位置進行更新,從而提高算法精度。
本文針對算法在求解高維復雜問題時存在收斂速度慢、全局開發(fā)能力不足等問題,首先引入一種自適應慣性權重,用于調節(jié)尋優(yōu)前期的步長和尋優(yōu)后期的種群多樣性。其次,提出一種混合反向學習策略并嵌入到WOA中,用以提高算法收斂速度。最后引入一種參數非線性衰減策略,對WOA的收斂因子進行非線性調優(yōu),以便平衡算法全局和局部搜索能力。通過對10個函數的優(yōu)化仿真,結果表明本文提出的基于混合反向學習策略的鯨魚優(yōu)化算法MWOA(Mixed inverse learning based Whale Optimization Algorithm)在解決高維復雜優(yōu)化問題時的收斂速度和全局探索能力提升效果顯著。在4個優(yōu)化問題上與CPSO、CODE、EGWO和DIHS算法進行比較,結果表明MWOA具有較優(yōu)的收斂精度。
座頭鯨是一種體型巨大的須鯨類鯨魚,不同于其他齒類鯨魚,座頭鯨由于沒有牙齒,只能靠捕捉體型較小的魚蝦為食,因而形成了一種特殊的捕食行為,即泡泡網覓食。Mirjalili等[6]將這種行為抽象為包圍獵物、Bubble-net攻擊和獵物搜索3個階段,通過計算機仿真從而提出了鯨魚算法(WOA)。
在座頭鯨捕獵之初,目標個體在搜索空間中的位置不是先驗已知的,但當前種群中最佳候選解與獵物之間的距離必定是最近的。因此,WOA假設當前搜索空間中最佳候選解為獵物的位置,或接近于獵物位置,則可根據當前最優(yōu)解的位置更新其他個體的搜索位置,如式(1)和式(2)所示:
D=|C·Xbest(t)-X(t)|
(1)
X(t+1)=Xbest(t)-A·D
(2)
A=2αrand1-α
(3)
C=2rand2
(4)
其中,rand1和rand2元素值均為[0,1]的隨機向量,α∈[α,α…,α],α是一個從2隨t線性下降到0的收斂因子,如式(5)所示:
α=2-2t/T
(5)
其中,t為當前迭代次數,T為最大迭代次數。
鯨魚是以螺旋式上升并不斷收縮包圍范圍的方式捕獲獵物的,WOA將這種行為描述為收縮包圍策略和螺旋式上升策略。
(1)收縮包圍策略:通過減小式(3)中的a值來實現,如式(3)所示,A的值域為[-a,a],當a隨著迭代次數的增加從2降為0時,則搜索個體的新位置可以被定義在個體原始位置與當前最優(yōu)位置的之間的任意值,達到包圍獵物的目的。
(2)螺旋式上升策略:該方式首先計算搜索個體位置與最優(yōu)解之間距離,而后在各個個體與最優(yōu)個體之間建立一個螺旋公式,如式(6)所示,模擬鯨魚螺旋上升的運動狀態(tài)。
X(t+1)=
|Xbest(t)-X(t)|eblcos(2πl(wèi))+Xbest(t)
(6)
其中,b為常數,決定了對數螺旋的形狀,l是[-1,1]的一個隨機數。
鯨魚的收縮包圍行為和螺旋式上升行為是同步進行的,為了模擬這種同步行為,設鯨魚進行收縮包圍和螺旋上升的可能性均為0.5,則可用式(7)模擬這一行為。
(7)
其中,p為[0,1]的隨機數,p≥0.5時執(zhí)行螺旋上升策略,p<0.5時,執(zhí)行收縮包圍策略。
鯨魚執(zhí)行搜索策略是基于可變向量A進行的,鯨魚會根據彼此的位置進行隨機搜索,當|A|>1時,表明鯨魚在收縮攻擊圈之外,WOA算法不再選擇最優(yōu)個體作為參考對自身進行更新,而是執(zhí)行隨機搜索,隨機搜索以一個個體作為目標再進行位置更新。可用式(8)和式(9)表示這一行為。
D=|C·Xrand(t)-X(t)|
(8)
X(t+1)=Xrand(t)-AD
(9)
其中,Xrand(t)為隨機選取的目標個體位置。
從上述可知,A對鯨魚算法起著極其重要的作用,當|A|>1時,算法進行隨機搜索,尋找更好的最優(yōu)解,當|A|≤1時,種群不再進行隨機搜索,而轉向攻擊策略,集中收縮攻擊目標獵物,因此A影響著算法的全局搜索和局部開發(fā)能力,原始鯨魚優(yōu)化算法具體執(zhí)行過程見文獻[6]。
在實驗中,發(fā)現原始WOA算法在求解高維復雜問題時存在收斂速度慢、全局搜索能力不足等問題,主要表現為算法無法收斂到收斂域內、收斂精度不高,其原因在于在搜索后期,隨著迭代次數的增加,|A|<1的機率變大,導致整個種群都向最優(yōu)解靠近而陷入局部最優(yōu),導致多樣性降低,全局搜索能力下降。
為了解決上述問題,MWOA在WOA的基礎上作了如下改進:(1)引入一種新型自適應權重策略,以平衡尋優(yōu)前期的個體步長和后期的種群多樣性,提升尋優(yōu)精度;(2)提出一種混合反向學習策略,以防止算法陷入局部最優(yōu),提高算法全局搜索能力;(3)針對算法后期收斂速度慢等問題,引入非線性收斂因子改進策略,加快算法的收斂速度。
慣性權重對鯨魚優(yōu)化算法的收斂速度和尋優(yōu)精度起著至關重要的作用,合適的慣性權重對算法尋優(yōu)探索能力具有極大幫助,本文受文獻[18]的啟發(fā),引入一種自適應策略的慣性權重,如式(10)所示。
w=d1*(Xbest(t)-X(-1)(t))+
d2*(ub-lb)/t
(10)
其中,Xbest(t),X(-1)(t)為當前種群的最優(yōu)最差個體位置向量,ub與lb分別為種群的位置的上界和下界。t為種群當前迭代次數。d1和d2為2個常數,均取0.000 1。該策略慣性權重被分為前后2個部分,后半部分在算法前期遇到陷入局部最優(yōu)的時候可以起到主導作用,從而使其跳出局部最優(yōu)。隨著當前迭代次數t的增大,后半部分對權重ω的影響逐步減弱。因此,在迭代后期若最優(yōu)個體與最差個體之間差異較大,則前半部分對權重ω起著主導性作用,從而加大步長,提升種群多樣性。
反向學習是2005年由Rahnamayan等[19]提出的,作者認為,從當前種群中隨機生成解決方案往往會導致方案中沒有較理想的區(qū)域,而反向學習策略既考慮了候選解決方案又考慮到了與之相反的解決方案。因此,已有許多研究人員將這種學習機制引入到算法應用中,如王振東等[20]應用反向學習策略初始化天牛算法初始種群,肖子雅等[21]將精英反向學習策略融入到黃金正弦鯨魚優(yōu)化算法中,加快了算法的收斂速度。本文提出一種混合反向學習策略,并將其與WOA相結合。
混合反向學習策略同時考慮了優(yōu)化后期最優(yōu)解與最差解的狀態(tài),針對最優(yōu)解而言,為了防止算法陷入局部最優(yōu),而減弱全局探索能力,對其進行一般反向學習操作,以提高其局部探索能力,如式(11)所示:
Xbest(t+1)=lb+(ub-Xbest(t))
(11)
其中,ub與lb分別為鯨魚位置向量的上界和下界,Xbest(t)為最優(yōu)個體位置向量。
針對最差位置的個體,為了保證算法的全局搜索能力,這里對其進行隨機反向學習操作,如式(12)所示:
X(-1)(t+1)=lb+rand·(ub-X(-1)(t))
(12)
其中X(-1)(t)為最差的個體向量,rand為與ub同維度的隨機向量。
混合反向學習與精英反向學習的區(qū)別有如下幾點:(1)混合反向學習與精英反向學習的對象不完全等同,精英反向學習的對象是群體中最優(yōu)的前m個個體,而本文中混合反向學習的對象為最優(yōu)個體和最差個體。(2)本文中的參數是選取種群位置的上界和下界,而精英反向學習的ub與lb值為前m個個體的上界和下界。
由文獻[6]可知,鯨魚優(yōu)化算法的探索開發(fā)能力主要取決于收斂因子α,當α較大時,算法具有較強的全局搜索能力,當α較小時,算法局部搜索能力增強,因此,為了平衡算法的全局搜索與局部搜索之間的關系,本文引入文獻[10]中提出的收斂因子非線性改進方法,如式(13)所示:
(13)
其中,αinitial和αfinal為α的起始值和終止值,t為當前迭代次數,T為最大迭代次數,μ為線性權重因子,此處μ取25[10]。
算法1給出了MWOA的執(zhí)行偽代碼,圖1為MWOA的執(zhí)行框圖。
Figure 1 Flowchart of the MWOA algorithm圖1 MWOA 算法流程圖
算法1MWOA算法
Input:population sizeN,maximum iterationT,dimensionD,data upper limitub,data lower limitlb.
Output:best solution vectorX*.
1.Initialize the whales populationsXi(i=1,2,…,N);
2.Calculate the fitness of each whale,X*←the best search whale;
3.While(t 4. UpdateX*by Eq(11) and Eq(12); 5. Execute mixed reserve learning strategy by Eq(11) and Eq(12); 6.Foreach search whale 7. UpdateA,C,landp; 8. Updateαby Eq(13); 9. Updatewby Eq(10); 10.If(p<0.5) 11.If(|A|≤1) 12. Update the position of the search whale by Eq (2); 13.Elseif(|A|>1) 14. Update the position of the search whale by Eq (9); 15.Endif 16.Elseif(p≥0.5) 17. Update the position of the search whale by Eq (6); 18.Endif 19.Endfor 20. Calculate the fitness of each while; 21. Update the betterX*; 22.Endwhile 23.ReturnX*. 為了驗證MWOA算法的性能,本文選取文獻[10]中的f1、f2、f3、f5和文獻[1]中的f5~f10作為本次數值測試的F1~F10。針對本文的研究目標,選取了3個評價指標對算法進行評價: 第1個為精度AC(Accuracy),如式(14)所示,用以評價所求解與全局最優(yōu)解之間的差距。 AC=|F(Pbest)-F(Xopt)| (14) 其中,Pbest為尋優(yōu)迭代后的所求解,Xopt為全局最優(yōu)解,F()為優(yōu)化問題的抽象函數模型。 第2個評價指標為標準差(STD),如式(15)所示,標準差主要是用于評價算法的魯棒性能,衡量算法的穩(wěn)定性。 (15) 其中,Z為總的實驗次數,xi為第i次的實驗結果,υ為Z次實驗結果的平均值,STD為Z次實驗結果的標準差。 第3個評價指標為搜索成功率SR(Success Rate),如式(16)所示: (16) 其中,Z為實驗的總次數,Z′為搜索成功收斂到指定收斂精度內的次數。 采用MWOA算法對上述10個函數進行求解,函數的維度分別設置為200維,500維和1 000維,并與WOA、MS-WOA[17]和IWOA[10]進行比較。針對上述算法,均采用最大迭代次數T=500,種群規(guī)模N=30。為了排除算法偶然性,對上述算法均獨立運行30次后選取平均精度、成功率和平均精度標準差對算法性能進行分析,迭代結果如表1所示,表中加粗部分表示該算法在對應函數和維度上得到的性能指標的最優(yōu)值。 Table 1 Comparison of optimization performance of four algorithms on different functions and dimensions 從表1中可以看出,除了維度為500時,在函數F6和F8上MS-WOA的平均尋優(yōu)精度略高于MWOA和其他算法的,在其他維度上,MWOA不論是尋優(yōu)精度還是尋優(yōu)成功率均優(yōu)于其他算法。在函數F4和F10上,MWOA的尋優(yōu)精度遠高于其他算法的,尋優(yōu)成功率則略優(yōu)于對比算法。在函數F2和F8上,盡管各算法的尋優(yōu)成功率均為100%,但是,MWOA的尋優(yōu)精度明顯高于其他算法的。而在F1、F5、F7和F9上,各個算法的尋優(yōu)精度和成功率均相同。為了觀察算法在各個函數上的尋優(yōu)迭代情況,圖2給出了維度為500時各算法在10個函數上的迭代情況。從圖2中可以看出,在函數F1、F5、F7和F9上,盡管各函數均能夠收斂到全局最優(yōu),MWOA的收斂速度卻明顯快于其他算法的。 Figure 2 Iterative of four algorithms on each function when dimension is 500圖2 維度為500時4種算法在各函數上的迭代情況 本文針對WOA引入了3種策略,即(1) 自適應慣性權重;(2)混合反向學習策略;(3)非線性收斂因子改進策略。為了研究3種策略對WOA迭代效果的影響,對選取的10個優(yōu)化函數進行優(yōu)化求解。將MWOA與只采用自適應慣性權重的WOA(記作WOA-1)、只采用混合反向學習策略的WOA(記作WOA-2)和只采用非線性收斂因子的WOA(WOA-3)進行比較,4種算法的參數設置同4.2節(jié),表2所示為4種算法在函數維度為500時的尋優(yōu)性能比較。 從表2可知,3種改進策略對算法的精度均有提高作用,但WOA-2對精度的提升作用略差,WOA-1和WOA-3二者對精度提升的作用不相上下。 Table 2 Comparison of performance of four algorithms when dimension is 500 為了進一步論證算法的有效性和可行性,用本文算法對文獻[10]中的f2、f5、f9、f124個復合函數進行求解,并與混沌粒子群優(yōu)化CPSO(Chaos Particle Swarm Optimization)算法[22]、組合差分進化CODE(COmbined Differential Evolution)算法[23]、改進灰狼優(yōu)化EGWO(Extended Grey Wolf Optimizer)算法[24]、動態(tài)調整維數的和聲搜索DIHS(Dynamic-dimensionality-reduction-adjustment and dynamic fret width strategy based Improved Harmony Search)算法[25]4種算法進行比較,為了保證公平性,3種算法種群大小均設置為30,迭代次數為500次。CPSO算法其他參數相關參數參照文獻[22]設置,CODE其他參數設置同文獻[23],EGWO算法其他參數參照文獻[24]設置,DIHS算法的其他參數參照文獻[25]進行設置,實驗結果如表3所示。從表3中可以看出,針對函數f9,CODE、CPSO、EGWO、DIHS和MWOA均有比較好的效果,但MWOA效果明顯優(yōu)于其他對比算法的;在f2和f52個函數上,相較于CODE、CPSO、EGWO和DIHS,MWOA的求解精度略高。在函數f12上,DIHS獲得了最優(yōu)的求解精度,MWOA的精度則略低于DIHS的,高于CPSO、CODE和EGWO的。因此,從總體上看,相較于其他幾類優(yōu)化算法,MWOA仍然具有明顯的優(yōu)勢,具有較好的收斂精度和精度均方誤差。 Table 3 Comparison of optimization effects of five algorithms 鯨魚優(yōu)化算法WOA是近年提出的一種啟發(fā)式算法。針對鯨魚優(yōu)化算法在求解高維復雜問題時存在的不足,本文提出一種基于混合反向學習策略的鯨魚優(yōu)化算法MWOA,得出以下結論: (1)針對收斂精度問題,選取10個基準函數進行實驗,分別在維度為200,500,1 000時進行實驗,結果表明,相較于MS-WOA與IWOA,MWOA具有較高的收斂精度和尋優(yōu)成功率。 (2)針對收斂速度問題,在選取的10個優(yōu)化函數上進行仿真,結果表明,MWOA的收斂速度要優(yōu)于WOA、IWOA和MS-WOA的。 (3)為了驗證MWOA有效性,在4個基準函數上,分別與CODE、CPSO、EGWO和DIHS算法進行比較,得出本文提出的MWOA具有較好的收斂精度。 (4)MWOA算法在求解較復雜高維函數時具有較好的效果,但是,對于求解特別復雜的復合函數,結果仍然不理想。下一步的工作重點是研究如何提高MWOA求解特別復雜的復合函數的精度。4 數值實驗及比較
4.1 基準測試函數和評價指標
4.2 在基準函數上的算法性能分析
4.3 3種改進策略的改善性能分析
4.4 與其他優(yōu)化算法的比較分析
5 結束語