陳 雷,尹鈞圣
1.天津商業(yè)大學 信息工程學院,天津300134
2.天津商業(yè)大學 理學院,天津300134
群體智能優(yōu)化算法作為求解優(yōu)化問題的一種新方法,被廣泛應用于組合優(yōu)化、模式識別和規(guī)劃設計等多個領域。典型的群體智能優(yōu)化算法包括粒子群優(yōu)化(Particle Swarm Optimization,PSO)算法[1]、蟻群優(yōu)化(Ant Colony Optimization,ACO)算法[2]、人工蜂群(Artificial Bee Colony,ABC)算法[3]、蝙蝠算法(Bat Algorithm,BA)[4]、螢火蟲算法(Firefly Algorithm,F(xiàn)A)[5],近些年國內外學者又提出了蜻蜓算法(Dragonfly Algorithm,DA)[6]、布谷鳥搜索(Cuckoo Search,CS)算法[7]、蝴蝶優(yōu)化(Monarch Butterfly Optimization,MBO)算法[8]、灰狼優(yōu)化(Grey Wolf Optimization,GWO)算法[9]、雙種群蟻群優(yōu)化算法(Adaptive Simulated Annealing Ant Colony Algorithm based on Max-Min Ant System,SA-MMAS)[10]、烏鴉搜索算法(Crow Search Algorithm,CSA)[11]和鯨群優(yōu)化算法(Whale Optimization Algorithm,WOA)[12]等多種新型群體智能優(yōu)化算法。鯨群優(yōu)化算法是Mirjalili等人在2016 年提出的一種群體智能優(yōu)化算法,算法思想來源于對座頭鯨捕食行為的效仿,目的是通過鯨群搜索、包圍和捕捉獵物等過程實現(xiàn)優(yōu)化求解。經(jīng)實驗證明,鯨群優(yōu)化算法的收斂精度與尋優(yōu)速度均優(yōu)于粒子群優(yōu)化算法(PSO)等早期的群體智能優(yōu)化算法。且WOA已經(jīng)成功應用于系統(tǒng)優(yōu)化[13]、特征選擇[14]以及圖像分割[15]等各個領域。然而,WOA 在處理高維優(yōu)化問題時也存在收斂速度慢,易陷入局部極值等問題。因此,為了改進上述問題,國內外學者用不同的方法對WOA 算法進行改進,其改進策略可以劃分為以下三種。
第一種是改進初始化階段和鯨的位置更新階段的搜索方程:如Elaziz 等[16]將對立學習策略引入種群初始化及鯨的位置更新階段,顯著提高了WOA 的全局優(yōu)化性能;Mafarja等在文獻[14]中利用輪盤賭選擇機制改進種群初始化過程,引入交叉變異操作改進搜索方程,提出了一種性能更優(yōu)的WOA-CM;王堅浩等[17]采用混沌反向學習策略改進種群初始化,并在包圍獵物階段引入非線性混沌擾動因子,在搜尋獵物階段引入非線性慣性權重,提出一種CWOA;龍文等[18]通過將對立學習策略引入種群初始化過程以增強種群多樣性,引入非線性收斂因子協(xié)調算法的探索能力,同時將種群最優(yōu)個體進行多樣性變異,使WOA的尋優(yōu)精度和尋優(yōu)速度顯著提高。第二種是在鯨的位置更新階段引入權重和改進概率閾值:如何慶等[19]對鯨的位置引入自適應權重系數(shù),并在迭代過程中引入limit閾值思想,提出了一種MS-WOA;Abdel-Basset等[20]利用Lévy飛行以及邏輯混沌映射提出一種改進的WOA;劉亮等人[21]在WOA中引入自適應概率閾值、自適應位置權重和預選擇小生境技術,提出一種APN-WOA。這些改進策略均有效提升了原算法的收斂速度及尋優(yōu)精度。
第三種是多策略混合的改進方式:如Mafarja 等[22]將模擬退火算法引入鯨群算法中組成WOA-SA,進一步提高算法的尋優(yōu)性能;Xiong 等在文獻[13]中提出兩種獵物搜索策略對WOA 進行改進,更好地平衡了算法的全局和局部搜索性能;Sun 等[23]在WOA 中引入自適應權重系數(shù)同時將其與奇異值分解算法相結合,使原算法的尋優(yōu)精度和收斂速度顯著提高。
針對WOA 在處理高維優(yōu)化問題時存在的問題,本文提出了一種改進的WOA。首先通過高斯差分變異策略對鯨的位置進行變異,提高了WOA的全局尋優(yōu)能力,避免發(fā)生早熟現(xiàn)象;另外通過引入對數(shù)慣性權重的方法,改進鯨的位置更新公式,提高了算法的尋優(yōu)精度和收斂速度。通過函數(shù)尋優(yōu)測試實驗證明了改進WOA具有較好的尋優(yōu)能力。
鯨群優(yōu)化算法是模擬座頭鯨捕食行為而提出的一種新型群體智能優(yōu)化算法,該算法的尋優(yōu)過程主要包括三個階段:包圍獵物階段、泡泡網(wǎng)攻擊階段和搜尋獵物階段。
鯨在捕食過程中,首先要確定獵物所在區(qū)域,然后才能對獵物進行包圍捕食。然而,在實際優(yōu)化問題的求解過程中,獵物的位置往往是未知的,因此假設當前種群最優(yōu)位置為目標獵物;確定目標獵物之后,種群中其他鯨均向最優(yōu)位置移動,利用如下公式更新位置:
其中,t 為當前迭代次數(shù);X*( t )表示當前種群最優(yōu)解的位置向量;X( t )表示當前鯨的位置;A ?D 表示包圍步長;A 和C 為系數(shù)向量,定義如下:
其中,r 為[ ]0,1 之間的隨機數(shù);a 隨著迭代循環(huán)的次數(shù)增加從2線性遞減至0,表示如下:
其中,Max_iter 表示最大迭代次數(shù)。
泡泡網(wǎng)攻擊原理是座頭鯨沿著螺旋路徑收縮包圍圈的同時朝著獵物移動,所以WOA 模仿座頭鯨的捕食行為,提出了收縮包圍原理以及螺旋更新位置兩種策略。
(1)收縮包圍原理。通過減少公式(3)中的收斂因子來實現(xiàn),A 的值隨著值的降低而降低,因此,更新位置后的鯨處于原始位置與獵物之間,即使得每條鯨會向著獵物靠近,完成對獵物的包圍。
(2)螺旋更新位置。首先計算鯨與獵物之間的距離,然后模仿鯨的螺旋游走的方式捕獲食物,數(shù)學模型表示如下:
其中,D′=| X*( t )-X( t )|表示鯨的個體到當前最優(yōu)位置的距離向量;b 是定義螺旋形式的常量系數(shù),本文取1;l為[- 1,1] 之間的隨機數(shù)。
由于鯨是以螺旋形式包圍獵物同時還需收縮包圍圈,因此為了模擬這種效果,則選擇相同概率進行收縮包圍和螺旋位置更新,數(shù)學模型表示如下:
其中,p 值為[ ]0,1 之間的隨機數(shù),在迭代過程中時會隨機產(chǎn)生0~1 之間的隨機數(shù),從而執(zhí)行公式(7)中相應的公式。
在搜尋獵物階段,當 |A |≥1 時,鯨群通過自身隨機搜尋更優(yōu)的獵物,不再選擇獵物來更新自身位置,數(shù)學模型表示如下:
其中,Xrand表示隨機的選擇鯨的位置向量。
鯨群算法作為比較新的群智能算法,因此它本身的尋優(yōu)能力相對較好,但WOA 在處理高維問題時存在收斂速度慢、易陷入局部極值的問題,因此本文采用兩種策略盡可能改進鯨群算法本身存在的缺點。
為了提高鯨群算法收斂速度慢、易陷入局部極值等問題,本文從兩方面改進鯨群算法,一方面通過高斯差分變異方法對全局搜索的鯨的位置進行變異,提高鯨的全局搜索能力。另一方面引入對數(shù)慣性權重方法,增強鯨的局部搜索能力,加快算法的收斂速度。
本文在鯨的位置更新階段,采用高斯差分變異策略,即利用當前鯨的個體、最優(yōu)個體和隨機選擇的鯨的個體進行高斯差分變異。傳統(tǒng)差分變異策略[24]中收縮因子是使用均勻分布函數(shù),由于均勻分布函數(shù)在相同長度間隔的區(qū)間中是等概率的,因此有時在變異個體附近無法產(chǎn)生較大擾動,所以有時無法跳出局部極值,然而高斯分布函數(shù)在原點處峰值較小,兩端的分布比較長。因此利用當前最優(yōu)鯨的位置、當前鯨的位置與鯨群中隨機個體進行高斯差分,由于高斯差分變異可以在當前變異個體附近生成更大的擾動,使得算法更容易跳出局部極值,因此其數(shù)學表達式如下:
其中,p1與p2為權重系數(shù);f1和f2是以產(chǎn)生均值為0,方差為1 的高斯分布隨機數(shù)函數(shù)作為高斯分布函數(shù)系數(shù);X*為當前最優(yōu)個體位置;Xrand為隨機的選擇鯨的位置向量;X( )t 為當前鯨的個體位置,所以本文采用了高斯差分變異策略,在算法迭代過程中根據(jù)式(10)對鯨群個體進行擾動,算法迭代前期,由于種群分布不均,所以個體位置分布差距較大,因此算法主要通過差分變量對個體進行擾動,從而產(chǎn)生多樣性個體,使算法能夠快速收斂;隨著算法迭代的不斷進行,鯨群大多數(shù)個體位置不會發(fā)生太大變化,此時算法主要通過高斯分布函數(shù)系數(shù)對種群進行擾動,從而幫助算法降低陷入局部最優(yōu)的可能性,避免發(fā)生早熟??偠灾咚共罘肿儺惒呗?,充分利用高斯分布函數(shù)與差分變量的特性以產(chǎn)生新的個體,增強群體的多樣性,幫助算法提高跳出局部最優(yōu)的可能性,防止早熟的發(fā)生;而本文將引入高斯差分變異策略的鯨群算法定義為GWOA。
傳統(tǒng)鯨群算法在循環(huán)迭代過程中時并沒有考慮獵物對鯨引導力的差異性,所以本文將慣性權重思想引入傳統(tǒng)鯨群算法當中。
在群智能算法中慣性權重的改進策略比較豐富,如圖1所示,三條虛線分別表示文獻[25-27]中的自適應遞減的慣性權重、非線性遞增慣性權重與非線性遞減的慣性權重。實線表示經(jīng)過多次測試后,本文提出一種對數(shù)慣性權重策略,首先該策略采用一種權重遞增的方式,與自適應慣性權重和其他慣性權重兩種改進策略相比,雖然遞減的方式在一定程度上能夠平衡算法的全局和局部搜索能力,但是在迭代后期,權重很小很容易使算法陷入局部最優(yōu),而本文采用的一種權重遞增的方式,在迭代前期使算法能夠搜索較大區(qū)域,同時剛好能夠解決迭代后期陷入局部最優(yōu)的可能;其次,該策略采用對數(shù)函數(shù)作為權重的一部分,對數(shù)函數(shù)可以針對相應的值調整函數(shù)坡度,與非線性慣性權重相比,本文改進策略的慣性權重函數(shù)坡度較緩,在迭代前期慣性權重較大時,具有提高全局搜索的能力,隨著迭代次數(shù)的增加,慣性權重隨之增加從而使鯨群所選擇的獵物不斷接近理論極值,進而使個體能夠準確有效地找到目標獵物;在迭代后期鯨群搜索能力得到提高的同時增加種群多樣性,進而使算法更容易跳出局部極值。該策略公式如下:
其中,t 為當前迭代次數(shù);Max_iter 表示最大迭代次數(shù);wmax為慣性權重最大值;wmin為慣性權重最小值。權重將隨著迭代次數(shù)增加而增加,將式(11)代入式(2)中,得到如下位置更新公式:
圖1 慣性權重與迭代次數(shù)曲線圖
所以,本文采用對數(shù)慣性權重策略,迭代前期,慣性權重提高鯨群全局搜索能力,使鯨群個體能夠更快地搜尋到最優(yōu)獵物;迭代后期,通過慣性權重線性增長策略,使慣性權重增大,從而使算法在后期局部開發(fā)過程中更易跳出局部極值,從而尋找到最優(yōu)值。通過后續(xù)實驗測試過程可以看出改進策略能夠適應在迭代過程中的實際情況,且能夠較好地平衡全局搜索與局部開發(fā)的能力,進一步證實該策略的可行性與適用性,而本文將引入對數(shù)慣性權重和高斯差分變異策略的鯨群算法定義為IGWOA。
對原始WOA進行高斯差分變異與對數(shù)慣性權重兩方面改進,得到的IGWOA的算法偽代碼,如下所示:
為了驗證文中提出的IGWOA的性能,引入24個測試函數(shù)(如表1 所示)進行實驗。其中,F(xiàn)1~F12 是單峰測試函數(shù),F(xiàn)13~F19 是維度可變的多峰測試函數(shù),F(xiàn)20~F24 是固定維度的多峰測試函數(shù)。在優(yōu)化性能測試過程中,實驗軟硬件條件為:Windows 7(64 bit)操作系統(tǒng),Inter?CoreTMi5-6500 CPU、3.20 GHz主頻及8 GB內存,編程采用MATLAB R2014b軟件。
本文從三個方面對算法性能進行測試:
(1)針對固定維度選取相同迭代次數(shù)分別對WOA、GWOA和IGWOA進行測試,分析算法的性能。
(2)針對三個不同維度選取相同迭代次數(shù)對WOA與IGWOA進行測試,分析改進算法在不同維度情況下的尋優(yōu)性能。
(3)針對固定維度選取相同迭代次數(shù)對改進算法IGWOA、GWO 算法、正弦余弦算法(Sine Cosine Algorithm,SCA)[28]、多節(jié)拍優(yōu)化器算法(Multi-Verse Optimizer,MVO)[29]、改進樽海鞘算法(Enhanced Salp Swarm Algorithm,ESSA)[30]和文獻[19,28-30]中的EWOA、IWOA、OWOA 和APN-WOA 進行比較,分析算法的收斂精度和收斂速度,進一步驗證IGWOA的有效性和優(yōu)越性。
IGWOA 對24 個測試函數(shù)進行求解,與WOA 和GWOA 進行比較,各算法的參數(shù)設置為:種群規(guī)模均設置為30,p1=0.5,p2=0.5,wmax=0.9,wmin=0.4 ,Max_iter=500,3種算法對每個函數(shù)獨立運行30次,記錄它們的最大值、最小值、平均值與標準差;收斂曲線圖中fitness為適應度值,Iteration是迭代次數(shù),比較結果如表2與圖2。
由于最大值和最小值分別表示算法的質量;平均值表示算法在固定循環(huán)次數(shù)下能達到的精度值;標準差則表示算法的魯棒性。所以從表2 中IGWOA、WOA 和GWOA 的比較結果可以看出IGWOA 在函數(shù)(F1、F3、F8、F11、F13、F14、F16、F21、F22、F24)上均能達到理論最優(yōu)值,而在函數(shù)(F2、F4、F7、F9、F10、F12、F15、F20)上,IGWOA 得到的最優(yōu)解非常接近理論最優(yōu)解,與此同時IGWOA 與WOA 和GWOA 相比,IGWOA 在22個測試函數(shù)(F1~F4、F6~F16、F18~F24)上獲得較好的最優(yōu)精度、最差精度、平均精度與標準差,而在F5、F17 這兩個測試函數(shù)上,GWOA和IGWOA得到相似的最優(yōu)精度、最差精度、平均精度與標準差,但依舊優(yōu)于WOA。綜上所述可以看出IGWOA 算法具有更高的收斂精度。為了更直觀地表現(xiàn)出收斂性能,3種算法的收斂曲線如圖2所示。從總體上看,在大多數(shù)基準測試函數(shù)上,GWOA,IGWOA的收斂曲線比WOA的收斂曲線下降得更快,同時適應度值更快下降到較低水平。具體來說,從IGWOA 與GWOA 的收斂曲線可知,所有測試函數(shù)的收斂精度與速度都較優(yōu)于WOA,這說明了高斯差分變異策略的有效性。從IGWOA與GWOA的收斂曲線可知,除了F6、F17 函數(shù)外,IGWOA在收斂性能上以及后期擺脫局部極值上有著十分顯著的提高。這體現(xiàn)了對數(shù)慣性權重策略的可行性??偠灾?,與WOA 和GWOA 相比,IGWOA 的收斂性能更為優(yōu)越,更能保持測試函數(shù)在算法上的穩(wěn)定性。
隨著優(yōu)化函數(shù)維度的提高,優(yōu)化難度也不斷提高,為了體現(xiàn)出IGWOA 在不同維度(20/60/100)下的尋優(yōu)性能,因此進行不同維函數(shù)優(yōu)化性能測試。其中兩種算法的種群規(guī)模為30,最大迭代次數(shù)為500次且對每個函數(shù)獨立運行30次,表3包括最大值、最小值、最優(yōu)解的均值、標準差以及顯著性。比較結果如表3。
表1 測試函數(shù)
由表3可知,隨著維度的提高,WOA在大多數(shù)測試函數(shù)上,平均精度越來越差,這是因為測試函數(shù)本身變得越來越復雜,WOA 無法較好處理復雜的測試函數(shù)所導致的;反觀IGWOA,它的平均精度能夠收斂到更低的水平并且優(yōu)化效果優(yōu)于WOA,這體現(xiàn)出改進策略在處理高維問題上的優(yōu)越性能。
表2 WOA、GWOA和IGWOA對測試函數(shù)的結果比較
圖2 3種算法對24個函數(shù)的尋優(yōu)收斂曲線比較
圖2 (續(xù))
表3 不同維度下WOA與IGWOA尋優(yōu)性能比較
表3 (續(xù))
為了直觀比較WOA 與IGWOA 的性能,本文采用威爾遜(Wilcoxon)秩和檢驗來比較兩者差異,其中“+”表示兩者具有顯著差異,即IGWOA 的性能優(yōu)于WOA;“—”表示兩者差異不顯著,即IGWOA 的性能次于WOA 或者兩者性能較為接近;“NaN”表示兩者無法比較,即進行威爾遜秩和檢驗時的值相同;顯著性水平設置為0.05。在表3最后一列,記錄了WOA與IGWOA的顯著性水平。
在顯著性方面,除了F16、F18 的顯著性水平分別為“—”與“NaN”,大多數(shù)測試函數(shù)(F1~F13、F15、F17~F19)的顯著性水平均為“+”,這說明IGWOA 的尋優(yōu)性能明顯優(yōu)于WOA。
這就表明本文利用高斯差分變異策略以及對數(shù)慣性權重策略改進的IGWOA能夠提高原算法的尋優(yōu)精度。
為了進一步驗證算法的有效性,將IGWOA 與GWO 算法、SCA、MVO 算法、ESSA 和其他改進鯨群算法等8 種近幾年提出的智能優(yōu)化算法進行比較。在比較過程中,9 種算法的種群規(guī)模為30,最大迭代次數(shù)為500,測試函數(shù)為F1~F4、F6、F14~F18、F22 和F24,算法對每個函數(shù)獨立運行30 次,記錄它們的平均精度與標準差,比較結果如表4與圖3。
為了進一步驗證IGWOA的優(yōu)化性能,將其與GWO算法、SCA 和MVO 算法進行比較,由于GWO、SCA、ESSA 和MVO 算法是近些年來提出相對較新的群智能優(yōu)化算法,同時這些算法已經(jīng)和一些經(jīng)典群智能優(yōu)化算法做了對比,比如:PSO算法、萬有引力搜索算法(Gravitational Search Algorithm,GSA)[31]、遺傳算法(Genetic Algorithm,GA)[32]和蝗蟲優(yōu)化算法(Grasshopper Optimization Algorithm,GOA)[33]等,實驗結果表明它們具有較好的尋優(yōu)性能,因此本文將不再比較。除了上述算法外,IGWOA還與文獻[21,34-36]中的改進鯨群算法進行比較,其中表4中的“—”表示文獻中算法未對測試函數(shù)進行測試,由于相應文獻并未提供具體代碼,所以EWOA、IWOA、OWOA 和APN-WOA 的最終數(shù)據(jù)是文獻中相應測試函數(shù)下的最佳結果。
理論上,IGWOA 在搜尋獵物階段引入對數(shù)慣性權重,該權重隨著迭代次數(shù)的增加而增加,在每次迭代過程中鯨群所選擇的獵物更加接近理論極值,從而使個體能夠準確有效地找到目標獵物;IGWOA 在位置更新階段引入高斯差分變異策略,通過差分變量對個體進行擾動產(chǎn)生多樣性個體,從而提高算法尋優(yōu)的能力,因此基礎鯨群算法通過對數(shù)慣性權重與高斯差分變異策略能夠進一步提高算法的收斂速度與尋優(yōu)精度。
實驗測試上,從表4中IGWOA與其他改進WOA比較結果可以看出,IGWOA 在函數(shù)(F1、F3、F14、F16、F22、F24)上均能達到理論最優(yōu)值,而在函數(shù)(F2、F4、F6、F15、F17、F18)上,IGWOA得到的最優(yōu)解非常接近理論最優(yōu)解,與此同時IGWOA與其他算法相比,IGWOA在測試函數(shù)(F1、F3、F6、F14、F15、F16、F17、F18、F22、F24)上獲得較好的平均精度與標準差,僅在F2、F4 這兩個測試函數(shù)上,IGWOA略次于APN-WOA。一方面,為了直觀表現(xiàn)出IGWOA 的收斂性能,本文給出了測試函數(shù)的收斂曲線,從圖3 中可以清晰地看出,IGWOA與其他算法相比,IGWOA收斂曲線的下降速度更快,同時適應度值更快下降到較低水平。進一步說明了高斯差分變異策略的有效性和對數(shù)慣性權重策略的可行性。
表4 IGWOA與其他算法優(yōu)化基準函數(shù)對比
圖3 IGWOA與各種算法之間的優(yōu)化收斂曲線比較
另一方面,為了體現(xiàn)改進算法的收斂性與個體多樣性優(yōu)勢,本文通過實驗測試出部分迭代時刻的不同方法個體分布,在迭代前期,IGWOA與其他算法相比具有快速尋優(yōu)的能力,不同方向的鯨群個體根據(jù)算法更新策略,朝著目標獵物位置進行個體變異與移動更新,從而產(chǎn)生多樣性個體;在迭代中期,雖然IGWOA 的搜尋效果略遜于GWO 算法,但IGWOA 依舊能夠在保持鯨群個體較優(yōu)的搜索效果的基礎上,保持鯨的個體位置在目標極值位置附近廣泛分布;在迭代后期,IGWOA中鯨群個體根據(jù)算法更新與變異策略更新個體位置,使算法尋優(yōu)能力與個體變異能力得到提高,進而使算法產(chǎn)生多樣性個體并且不易陷入局部極值,IGWOA 與其他算法相比,IGWOA 中的多樣性個體所能搜尋到的最優(yōu)位置以及算法所能到的收斂精度值最為優(yōu)越。因此可以得知IGWOA算法本身個體多樣性的優(yōu)勢十分顯著。
綜上所述,IGWOA 在收斂精度、收斂速度、個體多樣性以及魯棒性方面與其他改進群智能優(yōu)化算法相比具有優(yōu)勢。
本文首先將高斯差分變異策略引入WOA 中,從而幫助算法降低陷入局部最優(yōu)的可能性,防止早熟現(xiàn)象的發(fā)生;然后提出了對數(shù)慣性權重策略改進算法的位置更新公式,從而平衡算法全局探索能力和局部開發(fā)能力,同時加快算法的收斂速度,為了驗證IGWOA 的性能,運用24個測試函數(shù)進行實驗,結果表明IGWOA的收斂精度與收斂速度明顯優(yōu)于WOA,進一步驗證了所提出策略的有效性。最后,如何將改進的IGWOA應用于工程優(yōu)化問題中將是下一步的研究內容。