李 茹,范冰冰
(華南師范大學(xué)計(jì)算機(jī)學(xué)院,廣東 廣州 510000)
鯨魚優(yōu)化算法(Whale Optimization Algorithm)是Mirjalili等人[1]于2016年根據(jù)座頭鯨圍捕獵物的行為提出的算法,鯨魚優(yōu)化算法具有原理簡(jiǎn)單、參數(shù)少、易理解等優(yōu)點(diǎn),已有相關(guān)研究證明了其在收斂速度和尋優(yōu)精度上優(yōu)于其他傳統(tǒng)的優(yōu)化算法,目前已廣泛應(yīng)用于解決多種工程問(wèn)題[2-9]。但鯨魚算法仍同其他啟發(fā)式算法一樣存在收斂速度慢、早熟、求解精度低等問(wèn)題,近年來(lái)就這些問(wèn)題國(guó)內(nèi)外學(xué)者也進(jìn)行了積極的改進(jìn)研究。Oliva等人[10]利用混沌映射進(jìn)行計(jì)算,并自動(dòng)調(diào)整算法的內(nèi)部參數(shù),改進(jìn)后的算法提高了其在復(fù)雜目標(biāo)函數(shù)的尋優(yōu)能力。郭振洲等人[11]提出WOAWC,通過(guò)柯西逆累積分布函數(shù)對(duì)鯨魚位置進(jìn)行變異,利用自適應(yīng)權(quán)重參數(shù)提高鯨魚算法的局部搜索能力和求解精度。張永等人[12]利用分段Logistic混沌映射并考慮算法的非線性優(yōu)化過(guò)程和搜索過(guò)程中個(gè)體的差異性來(lái)改進(jìn)鯨魚算法,通過(guò)仿真實(shí)驗(yàn)證明了其改進(jìn)效果。何慶等人[13]提出了基于非線性調(diào)整策略改進(jìn)收斂因子和基于人工峰群算法limit閾值的混合策略改進(jìn)鯨魚優(yōu)化算法,提出的MSWOA經(jīng)實(shí)驗(yàn)表明具有較高的尋優(yōu)精度和較高的收斂速度。吳坤等人[14]將灰狼算法中的等級(jí)制度和微分進(jìn)化算法中的貪婪策略引入鯨魚優(yōu)化算法,在保證了收斂速度的同時(shí),優(yōu)化了開發(fā)和搜索能力。張水平等人[15]通過(guò)等價(jià)替換和Faure序列提高初始解的質(zhì)量,利用柯西高斯變異并動(dòng)態(tài)調(diào)整搜索策略改進(jìn)鯨魚優(yōu)化算法,在仿真實(shí)驗(yàn)上取得了很好的結(jié)果。徐航等人[16]提出利用混沌的特性來(lái)初始化種群和基于透鏡成像反向?qū)W習(xí)等混合策略改進(jìn)的IWOA,通過(guò)實(shí)驗(yàn)驗(yàn)證了可行性。
針對(duì)鯨魚算法收斂速度慢、尋優(yōu)精度低、早熟等問(wèn)題,本文提出一種基于混合策略改進(jìn)的鯨魚優(yōu)化算法(LGWOA)。
WOA是啟發(fā)于座頭鯨捕食行為而產(chǎn)生的仿生智能優(yōu)化算法[17]。在鯨魚算法中,每個(gè)可行解對(duì)應(yīng)一條鯨魚[18]。在鯨魚群捕捉獵物這一過(guò)程中,每條鯨魚有2種行為:一種是向著隨機(jī)鯨魚游動(dòng),向著隨機(jī)鯨魚游動(dòng)有2種方案,一種是局部搜索,一種是全局搜索;另外一種是利用氣泡網(wǎng)驅(qū)趕獵物,鯨魚向著附近的鯨魚游動(dòng)并利用氣泡網(wǎng)來(lái)包圍獵物。在每一代迭代過(guò)程中,鯨魚都會(huì)隨機(jī)選擇這2種行為進(jìn)行捕獵,且每條鯨魚選擇這2種行為的概率是相等的,即p(包圍)=p(氣泡網(wǎng))。
根據(jù)鯨魚的生物特性,隨機(jī)概率p小于0.5鯨魚在包圍獵物時(shí)會(huì)選擇向著最優(yōu)位置的鯨魚游動(dòng)或者向著一只隨機(jī)鯨魚游動(dòng)。
1.1.1 向著最優(yōu)位置鯨魚游動(dòng)
鯨魚發(fā)現(xiàn)獵物并向著最優(yōu)位置鯨魚游動(dòng)時(shí),此時(shí)系數(shù)向量|A|<1,鯨魚采用收縮包圍機(jī)制接近獵物,該鯨魚的位置更新公式為:
(1)
其中,Xbest代表當(dāng)前最優(yōu)的鯨魚位置,i代表當(dāng)前鯨魚處在第i個(gè)位置,A和C為系數(shù)向量,||表示數(shù)的絕對(duì)值。向量A、C的計(jì)算公式如下:
A=2·a·r-a
(2)
C=2·r
(3)
其中,r是一個(gè)0到1的隨機(jī)數(shù);A的每一維為均勻分布在[-a,a]內(nèi)的隨機(jī)數(shù),a的初始值為2,隨著迭代次數(shù)線性遞減至0;C為[0, 2]內(nèi)的隨機(jī)數(shù)。
1.1.2 向著隨機(jī)鯨魚的位置游動(dòng)
當(dāng)系數(shù)向量|A|>1時(shí),表明鯨魚在收縮包圍圈之外,這時(shí)鯨魚會(huì)在種群中隨機(jī)選擇一條鯨魚并向其游去,即進(jìn)行全局搜索,此時(shí)鯨魚的位置更新公式為:
(4)
其中,Xrand為隨機(jī)選擇的鯨魚的位置,此時(shí)鯨魚可以在初始位置和此時(shí)最優(yōu)鯨魚位置之間的任一位置進(jìn)行搜索。
鯨魚發(fā)現(xiàn)獵物后,若此時(shí)的隨機(jī)概率p不小于0.5,則使用氣泡網(wǎng)來(lái)驅(qū)趕獵物,并與獵物之間建立一個(gè)螺旋方程,根據(jù)螺旋方程不斷地更新自身的位置,位置更新公式如下:
(5)
其中,b為常數(shù)(默認(rèn)為1),l為[-1,1]內(nèi)服從均勻分布的隨機(jī)數(shù)。
鯨魚優(yōu)化算法(WOA)相比較其他元啟發(fā)式算法,具有原理簡(jiǎn)單、參數(shù)少的優(yōu)勢(shì),該算法僅需要對(duì)2個(gè)參數(shù)A和C進(jìn)行調(diào)節(jié)[19],搜索向量A的自適應(yīng)變化使得鯨魚算法在迭代過(guò)程中擁有良好的平衡局部搜索和全局搜索的能力。但正是由于A的自適應(yīng)原理使得原始的WOA存在求解精度低、收斂速度慢、早熟的問(wèn)題。針對(duì)上述問(wèn)題,本文提出LGWOA。
萊維飛行是一種特殊類型的具有“重尾”概率分布的廣義隨機(jī)游走[20],其服從于萊維分布,隨機(jī)搜索路徑采用一種短距離和偶爾長(zhǎng)距離相間的方式。近年來(lái),研究人員用萊維飛行解決搜索和優(yōu)化的問(wèn)題,證明了其能夠改進(jìn)優(yōu)化算法在解空間的搜索能力以及求精能力[21-26]。萊維飛行是一種非高斯隨機(jī)過(guò)程[27],其步長(zhǎng)服從于Levy分布:
Levy(s)~|s|-1-β, 0<β≤2
(6)
其中,s是飛行步長(zhǎng),β是一個(gè)指數(shù),可以用Mantega的算法計(jì)算s:
(7)
其中,β設(shè)置為1.5,μ和υ服從正態(tài)分布。
(8)
在WOA的隨機(jī)搜索階段,每個(gè)個(gè)體的位置都通過(guò)與其他個(gè)體在小范圍內(nèi)的相應(yīng)位置交換信息來(lái)更新,這就導(dǎo)致在隨機(jī)搜索的時(shí)候解空間是有限的,將萊維飛行引入鯨魚優(yōu)化算法的隨機(jī)搜索的階段,通過(guò)萊維飛行來(lái)隨機(jī)加大鯨魚搜索的步長(zhǎng),擴(kuò)大了搜索空間,并提高了搜索能力,甚至加快了收斂速度。用于更新鯨魚的位置可以通過(guò)如下表達(dá)式進(jìn)行描述:
(9)
根據(jù)公式(7)至公式(9)可得出:
(10)
通過(guò)分析公式(5)可以得知,當(dāng)鯨魚使用氣泡網(wǎng)驅(qū)趕獵物時(shí)同樣是局部搜索,仿真機(jī)制是鯨魚通過(guò)氣泡網(wǎng)來(lái)驅(qū)趕獵物,但隨著迭代次數(shù),鯨魚驅(qū)趕獵物的氣泡網(wǎng)會(huì)逐漸變小,容易陷入局部最優(yōu)的問(wèn)題。為了能夠自適應(yīng)地改變鯨魚驅(qū)趕獵物的范圍,提出一個(gè)基于每代鯨魚最佳適應(yīng)度變化的慣性權(quán)重w,將每代鯨魚群最佳適應(yīng)度作為反饋參數(shù)。在每次迭代中,每條鯨魚都將得到一個(gè)w。對(duì)于w值較小的鯨魚,當(dāng)前鯨魚縮小驅(qū)趕獵物范圍。對(duì)于w值較大的鯨魚,當(dāng)前鯨魚擴(kuò)大驅(qū)趕獵物范圍。
(11)
(12)
由公式(11)可知,w參數(shù)的取值范圍是[0.5,2]。當(dāng)w<1的時(shí)候,鯨魚會(huì)縮小氣泡網(wǎng)的包圍獵物范圍,當(dāng)w>1的時(shí)候,鯨魚會(huì)擴(kuò)大泡網(wǎng)包圍獵物范圍。由于w的取值范圍是[0.5,2],可以知道w有1/3的概率會(huì)縮小氣泡網(wǎng)的包圍獵物范圍,有2/3的概率擴(kuò)大泡網(wǎng)包圍獵物范圍。從而可以得出在迭代過(guò)程中,w有較大概率擴(kuò)大氣泡網(wǎng)的搜索范圍,因此可以有效規(guī)避陷入局部最優(yōu),提高求解精度。
在鯨魚算法的流程中,隨著迭代次數(shù)的增加,|A|>1的比例越來(lái)越小,這就導(dǎo)致鯨魚種群的全局搜索能力不斷減弱從而使得算法過(guò)早收斂。本文提出在鯨魚算法中結(jié)合遺傳算法的交叉和變異策略擴(kuò)大算法后期的全局搜索范圍,增加種群多樣性,規(guī)避后期陷入局部最優(yōu)的問(wèn)題,其中,每條染色體代表一個(gè)鯨魚種群,每個(gè)基因代表一個(gè)鯨魚個(gè)體,基因上的值對(duì)應(yīng)鯨魚的位置。
遺傳算法[28]中的交叉操作有3種不同的策略,使用一個(gè)flag參數(shù)來(lái)標(biāo)記是否需要進(jìn)行交叉操作,flag參數(shù)是一個(gè)初始值為0,從0開始遞增的參數(shù),每計(jì)算完一個(gè)種群flag就加1,當(dāng)flag等于種群大小1/2的時(shí)候,就進(jìn)行交叉變異。選擇哪一種策略是由概率Pt決定的,Pt是一個(gè)隨著迭代而變化的自適應(yīng)參數(shù)。Pt的計(jì)算公式為:
(13)
其中,t為當(dāng)前代數(shù),maxiter為最大迭代代數(shù),Pt隨著t增大而逐漸增大。Pt的取值范圍為[e-1,1],算法初期,算法的全局搜索能力較強(qiáng),因此Pt<0.5,此時(shí)選擇交叉策略3,即單點(diǎn)交叉;當(dāng)隨著算法的迭代,算法全局搜索能力逐漸減弱,而在算法后期,Pt的值逐漸增大,因此Pt>0.5且Pt>h,此時(shí)選擇交叉策略1進(jìn)行多點(diǎn)交叉;否則使用交叉策略2進(jìn)行多點(diǎn)交叉。在算法后期利用多點(diǎn)交叉來(lái)增加種群多樣性,增強(qiáng)算法跳出局部最優(yōu)的能力。
交叉策略1 隨機(jī)生成一個(gè)點(diǎn),將該點(diǎn)到基因末尾的值都和相鄰染色體的基因交叉。例如數(shù)組長(zhǎng)度為n,隨機(jī)生成i,交叉2個(gè)相鄰染色體的i~n的長(zhǎng)度。
交叉策略2 隨機(jī)生成2個(gè)點(diǎn),交叉兩點(diǎn)之間染色體的基因位,例子數(shù)組長(zhǎng)度為n,隨機(jī)生成i、j,交叉相鄰染色體之間i~j的基因。
交叉策略3 隨機(jī)生成一個(gè)點(diǎn),交叉相鄰2個(gè)染色體之間的一個(gè)基因位。
變異操作把染色體中的選擇一個(gè)基因位突變成另外一個(gè)基因位。
LGWOA的流程如圖1所示。
圖1 算法執(zhí)行流程圖
仿真實(shí)驗(yàn)基于Windows10(64 bit)操作系統(tǒng),Intel?CoreTMi5-8250U CPU、1.8 GHz主頻及8 GB內(nèi)存,使用MATLAB R2021b編程開發(fā)。遺傳算法交叉概率為0.3、變異概率為0.1。選取了12個(gè)Benchmark函數(shù)(見表1)進(jìn)行仿真實(shí)驗(yàn),把12個(gè)基準(zhǔn)函數(shù)分2組,其中:F1~F6為單峰函數(shù),用來(lái)測(cè)試函數(shù)的收斂速度;F7~F12為復(fù)雜的多峰測(cè)試函數(shù),可用來(lái)測(cè)試算法的全局搜索能力和規(guī)避局部最優(yōu)的能力。
表1 基準(zhǔn)測(cè)試函數(shù)
本文基于2個(gè)角度測(cè)試算法的優(yōu)化性能:1)針對(duì)本文對(duì)算法的3種改進(jìn)策略,分別單獨(dú)測(cè)試其對(duì)算法性能的改進(jìn)效果;2)將本文改進(jìn)的鯨魚優(yōu)化算法(LGWOA)與原始的鯨魚優(yōu)化算法(WOA)、WOAWC[11]、MSWOA[13]、IWOA[16]在3個(gè)不同維度下進(jìn)行測(cè)試。
本文采用3個(gè)不同的改進(jìn)策略,分別是:1)將萊維飛行引入鯨魚隨機(jī)搜索的位置更新公式中(WOA-a); 2)將自適應(yīng)權(quán)重引入鯨魚螺旋上升位置更新公式中(WOA-b); 3)交叉變異策略(WOA-c)。為比較3種不同策略對(duì)算法性能的影響,取種群大小為30,最大迭代次數(shù)設(shè)為500,為保證實(shí)驗(yàn)的可信度和數(shù)據(jù)的準(zhǔn)確性,每次實(shí)驗(yàn)運(yùn)行30次并取平均值,各改進(jìn)策略對(duì)12個(gè)基準(zhǔn)函數(shù)優(yōu)化求解的結(jié)果對(duì)比如表2所示。
表2 不同改進(jìn)策略下的算法性能對(duì)比
分析表2可知,在3種改進(jìn)策略中,WOA-a對(duì)WOA算法性能改善最為明顯,WOA-b次之。在單峰函數(shù)中,WOA-b對(duì)WOA的性能改善明顯優(yōu)于WOA-c,但是多峰函數(shù)中,WOA-c和WOA-b算法對(duì)比,WOA-c算法的改進(jìn)效果明顯優(yōu)于WOA-b算法。對(duì)于大部分基準(zhǔn)函數(shù),綜合了3種改進(jìn)策略的LGWOA比任一僅采用一種改進(jìn)策略的WOA均有更優(yōu)的尋優(yōu)精度和穩(wěn)定性。并且分別對(duì)測(cè)試函數(shù)選取同量級(jí)的尋優(yōu)精度時(shí),LGWOA針對(duì)大部分的測(cè)試函數(shù)都有更快的收斂速度。因此,LGWOA很好地綜合了3種改進(jìn)策略的優(yōu)點(diǎn),證明了混合改進(jìn)策略的合理有效性。
算法的空間復(fù)雜度主要由種群大小和搜索空間的維度決定,搜索空間的維度越大,空間復(fù)雜度越高[29],本文采用3中不同維度對(duì)算法進(jìn)行性能測(cè)試。
設(shè)定種群大小為30,最大迭代次數(shù)為1000,基準(zhǔn)測(cè)試函數(shù)為F1~F12,同樣運(yùn)行30次并取平均值,表3、表4、表5展現(xiàn)了LGWOA、WOA、MSWOA、WOAWC、IWOA這5種算法分別在維度為10、30、50下對(duì)函數(shù)的求解結(jié)果,從平均解和標(biāo)準(zhǔn)差2個(gè)方面進(jìn)行分析。圖2、圖3、圖4為WOA、LGWOA、MSWOA、WOAWC、IWOA在3個(gè)不同維度下優(yōu)化benchmark函數(shù)的收斂過(guò)程對(duì)比圖。
表3 LGWOA與其他算法性能對(duì)比(D=10)
表4 LGWOA與其他算法性能對(duì)比(D=30)
(a) F1 (b) F2 (c) F3
當(dāng)求解維度為10維時(shí),算法LGWOA、MSWOA、WOAWC以及IWOA在F1~F4上均取得了理論最優(yōu)值,但由圖2(a)~圖2(d)可知,其具有更快的收斂速度,例如在對(duì)函數(shù)F2的求解中,LGWOA取得理論最優(yōu)值的迭代次數(shù)明顯少于其余4種算法。在求解F5時(shí),LGWOA相較于其余4個(gè)算法尋優(yōu)精度高出了5個(gè)數(shù)量級(jí),在求解單峰函數(shù)F6上略優(yōu)于相較于在F1~F4上同樣表現(xiàn)良好的MSWOA、WOAWC、IWOA,但由圖2可知,LGWOA的收斂速度顯著提高且具有更高的穩(wěn)定性。在多峰函數(shù)中,在函數(shù)F7、F8、F9、F10、F12求解中,LGWOA的收斂速度均明顯提升,在函數(shù)F11的優(yōu)化過(guò)程中LGWOA的收斂速度稍劣于其他函數(shù),但是在求解精度上更勝一籌,可以看出LGWOA有更強(qiáng)的跳出局部最優(yōu)的能力。
當(dāng)求解維度為30維時(shí),針對(duì)大部分的benchmark函數(shù),LGWOA求解精度比MSWOA、WOAWC、IWOA更高,更是遠(yuǎn)優(yōu)于原始的WOA。其中在求解單峰函數(shù)F1~F6時(shí),LGWOA求解F1~F4時(shí)均取得了函數(shù)理論最優(yōu)值0;對(duì)于函數(shù)F5、F6的求解結(jié)果逼近理論值0,對(duì)于函數(shù)F6尋優(yōu)精度優(yōu)化效果不夠明顯,但是通過(guò)圖3(f)可以看出其收斂的速度相較于WOA、WOAWC、MSWOA、IWOA顯著提升,通過(guò)圖3(g)~圖3(l)和表2可以看出,對(duì)于有多個(gè)局部極值的多峰函數(shù)來(lái)說(shuō),LGWOA對(duì)于函數(shù)F7~F10尋優(yōu)精度以及收斂速度均顯著優(yōu)于原始WOA,其收斂速度優(yōu)于同樣在求解精度上表現(xiàn)良好的MSWOA、WOAWC和IWOA,對(duì)于函數(shù)F11,算法LGWOA收斂速度稍劣于WOAWC,但有更高的求解精度。
表5 LGWOA與其他算法性能對(duì)比(D=50)
(a) F1 (b) F2 (c) F3
當(dāng)求解維度為50維時(shí),結(jié)合圖4從收斂速度、求解精度以及穩(wěn)定性3個(gè)方面綜合來(lái)看,LGWOA的表現(xiàn)優(yōu)于其余4個(gè)算法,可以看出在求解高維空間的函數(shù)時(shí),LGWOA的收斂速度與尋優(yōu)精度相較于其他4種算法均明顯提升。
(a) F1 (b) F2 (c) F3
上述實(shí)驗(yàn)結(jié)果表明,本文提出的3種改進(jìn)策略明顯提升了算法的求解精度和收斂的速度,能夠很好地平衡算法全局搜索和局部搜索的能力。通過(guò)萊維飛行擴(kuò)大全局搜索空間,并引入自適應(yīng)權(quán)重提高求解精度,在鯨魚算法的后期結(jié)合遺傳算法的交叉變異擴(kuò)大算法后期的全局搜索能力,有效規(guī)避了算法后期早熟現(xiàn)象的出現(xiàn)。
綜上,對(duì)benchmark函數(shù)的求解中,本文所改進(jìn)的LGWOA在求解精度及穩(wěn)定性上均較其他算法有明顯提升,而在尋優(yōu)速度上,除了在F11的求解中,函數(shù)的收斂速度稍劣于MSWOA和WOAWC,該算法對(duì)函數(shù)的優(yōu)化性能均較其他4種算法有明顯的提升,從而驗(yàn)證了LGWOA算法中改進(jìn)策略的優(yōu)越性和有效性。
本文首先將萊維飛行策略引入原始WOA中擴(kuò)大鯨魚優(yōu)化算法在全局搜索時(shí)的搜索范圍,提高了全局搜索能力;然后,在鯨魚螺旋更新位置的階段,加入一個(gè)自適應(yīng)權(quán)重參數(shù)來(lái)加快鯨魚包圍獵物的速度,提高算法尋優(yōu)精度;最后利用遺傳算法的交叉變異思想,平衡算法的全局和局部搜索能力,增加種群的多樣性來(lái)解決傳統(tǒng)鯨魚優(yōu)化的過(guò)早收斂的問(wèn)題。選取12個(gè)benchmark函數(shù)從2個(gè)角度進(jìn)行仿真實(shí)驗(yàn),結(jié)果表明,本文提出的混合策略改進(jìn)的鯨魚優(yōu)化算法在收斂速度和求解精度上均有明顯提升。