張孟健,張 浩,陳 曦,楊 靖
(貴州大學(xué)電氣工程學(xué)院,貴州 貴陽 550025)
灰狼優(yōu)化GWO(Grey Wolf Optimization)算法是澳大利亞學(xué)者Mirjalili等[1]在2014年提出的一種新的群體智能優(yōu)化算法。GWO算法以灰狼的等級制度為特征,以求解連續(xù)變量的優(yōu)化問題為背景,其思想是受灰狼群的捕食行為啟發(fā),進而模擬灰狼的群體狩獵等級制度并進行理論化研究。
標(biāo)準GWO 算法也存在易陷入局部最優(yōu)、后期收斂速度慢和求解精度不高等問題。GWO算法中,收斂因子a起到平衡算法全局和局部搜索能力的作用,但是,收斂因子a采用線性方式減小并不能很好地平衡算法的全局和局部搜索能力。因此,很多研究人員對GWO算法進行了一系列的優(yōu)化改進。針對收斂因子a,魏政磊等[2]提出基于余弦函數(shù)和二次函數(shù)的非線性動態(tài)變化收斂因子更新方法;胡小平等[3]提出一種基于指數(shù)變化的參數(shù)調(diào)整策略,并運用在二維平面的無線傳感器網(wǎng)絡(luò)節(jié)點部署中;崔明朗等[4]通過添加“觀察”策略以及對控制參數(shù)a的調(diào)整策略進行改進,提出了一種用于解決多目標(biāo)問題的改進GWO算法。針對初始化策略的研究中,滕志軍等[5]引入Tent映射來初始化種群,并將粒子群優(yōu)化PSO(Particle Swarm Optimization)算法與GWO算法相結(jié)合構(gòu)成新的混合算法;談發(fā)明等[6]提出改進非線性收斂方式的GWO算法,從混沌初始化和非線性控制策略2個角度改進了GWO算法;王志華等[7]提出了基于混沌的GWO算法,并用于提高SVM(Support Vector Machine)分類器的分類精度;Ibrahim等[8]提出了一種基于差分進化和擾動算子的混沌對立的GWO算法;Saxena等[9]提出了一種基于β-混沌序列的自適應(yīng)橋接機制來調(diào)節(jié)控制參數(shù)a,用于改進GWO算法,提高算法的全局和局部搜索能力;此外,莫艷紅等[10]提出一種基于萊維飛行的GWO算法,一定程度上提高了算法尋優(yōu)的精度,加快了收斂速度;Dhargupta等[11]提出一種基于反向?qū)W習(xí)的GWO算法來進行特征選取,增強了算法特征選取的性能。但是,上述改進策略還有可提升空間,因為目前許多智能算法均屬于隨機算法,采用了蒙特卡洛思想,不能完全保證對任何問題都能達到最優(yōu)。
從上述2個角度對GWO算法的改進研究中,均在一定程度上提高了算法的搜索能力,但并不能解決算法在尋優(yōu)過程中固有的不足。本文針對上述2個角度,提出了基于Cubic映射和反向?qū)W習(xí)策略的灰狼優(yōu)化COGWO (Grey Wolf Optimization based on Cubic mapping and Opposition-based learning)算法,增強算法種群的多樣性,從而提高其尋優(yōu)能力和收斂速度。
GWO算法模擬了狼群的社會等級制度和群體的狩獵行為[1],算法中每匹灰狼代表一個候選尋優(yōu)解,將最優(yōu)解設(shè)為α狼;次優(yōu)解設(shè)為β狼;第3優(yōu)解設(shè)為δ狼,剩余的解為ω狼。
灰狼群狩獵過程包括接近和包圍獵物,其數(shù)學(xué)表達式[1]如式(1)和式(2)所示:
D=|C·XP(t)-X(t)|
(1)
X(t+1)=XP(t)-A·D
(2)
其中,D為個體與目標(biāo)之間的距離;t為當(dāng)前的迭代次數(shù);C和A為系數(shù)向量;XP為目標(biāo)的位置向量;X為單匹灰狼的位置向量。其中,A和C的計算公式如式(3)和式(4)所示:
A=2a·r1-a
(3)
C=2r2
(4)
其中,C為1×1向量C的值,A為1×1向量A的值,r1,r2為[0,1]的隨機數(shù);a為收斂因子,其值隨迭代次數(shù)的增加從2線性遞減至0,如式(5)所示:
a=2-2t/Tmax
(5)
其中,Tmax為最大的迭代次數(shù),t=1,2,…,Tmax。
灰狼個體跟蹤獵物位置的公式表述如式(6)所示:
(6)
其中,Dα,Dβ和Dδ分別表示α,β和δ與其他個體之間的距離;Xα,Xβ和Xδ分別表示α,β和δ當(dāng)前的位置;C1,C2和C3為隨機系數(shù)向量;X為單匹灰狼的當(dāng)前位置向量。
在獵捕階段中,剩余的ω狼個體向著α,β和δ狼的前進步長和方向如式(7)所示:
(7)
灰狼個體位置的更新公式如式(8)所示:
X(t+1)=(X1+X2+X3)/3
(8)
GWO算法雖然具有較好的尋優(yōu)能力,但對于高維問題存在易陷入局部最優(yōu)等問題。本文主要針對算法種群的初始化與收斂因子a2個方面,通過增強算法種群的多樣性和動態(tài)選擇收斂因子的值對GWO算法進行改進。
標(biāo)準的Cubic映射[12]函數(shù)可以表示為式(9)所示:
(9)
其中,b,c為混沌影響因子,不同的b,c值Cubic映射的范圍也不同。一般在c∈(2.3,3)時,Cubic映射產(chǎn)生的序列為混沌狀態(tài)。此外,當(dāng)b=1時,xn∈(-2,2);當(dāng)b=4時,xn∈(-1,1)。
文獻[13]對常用的16種一維混沌映射的最大Lyapunov指數(shù)進行了計算分析,Cubic映射表達式如式(10)所示:
(10)
其中,xn∈(0,1);ρ為控制參數(shù),Cubic映射的混沌性與參數(shù)ρ的取值有著很大的關(guān)系。由文獻[13]可知,Cubic映射的混沌性與Logistic映射、Tent映射的最大Lyapunov指數(shù)相近,且優(yōu)于Sine映射、Circle映射、Singer映射和Kent映射等一維映射。文獻[14]提出了一種改進的Cubic映射,其最大Lyapunov指數(shù)為1.098 4,優(yōu)于Logistic映射的Lyapunov指數(shù)0.693 0。
本文中,參數(shù)ρ的取值為(1.5,3),根據(jù)式(10)進行仿真,其結(jié)果如圖1a所示。xn的初值為(0,1),取x0=0.3,ρ=2.595時,Cubic映射具有較好的混沌遍歷性,仿真結(jié)果如圖1b所示。
Figure 1 Cubic mapping圖1 Cubic映射
針對收斂因子a的調(diào)節(jié),文獻[1]采用的是線性控制策略,可表示如式(11)所示:
a0(t)=afirst-afirst·(t/Tmax)
(11)
其中,afirst為控制參數(shù)的初值。
從式(1)~式(8)可知,算法初期,較大的a值可保證全局搜索能力,隨著迭代次數(shù)的增加,a的值逐漸減小,可加強算法的局部搜索能力。而式(11)中,a的值線性減小,不能很好地平衡算法的全局和局部搜索能力。為了提升算法搜索精度和速度,本文將使收斂因子隨迭代次數(shù)的增加而呈非線性變化。
文獻[15]對多種調(diào)整參數(shù)a的策略進行對比分析,并提出一種基于正弦函數(shù)的參數(shù)調(diào)整控制策略:
(12)
其中,afirst,afinal分別為控制參數(shù)的初值和終值;μ和k為調(diào)節(jié)參數(shù),Tmax為最大迭代次數(shù)。
文獻[15]對式(12)的參數(shù)進行了實驗測試,當(dāng)μ=k= 2時,改進策略的尋優(yōu)效果優(yōu)于其他改進策略(線性函數(shù)、二次函數(shù)和指數(shù)函數(shù)),故本文中設(shè)置μ= 2,k= 2,Tmax= 500。
各控制策略的仿真如圖2所示。從圖2中可以看出,不同的控制策略對算法的尋優(yōu)過程有不同的影響,曲線的斜率表示算法尋優(yōu)過程中的速度。本文的控制策略在前期的變化速度較慢,便于全局搜索;中期變化速度較快,便于提高搜索速度及跳出局部最優(yōu)搜索;后期變化速度減緩,便于進入局部搜素,尋找最優(yōu)解。
Figure 2 a vs. t in different control strategies圖2 不同控制策略的控制參數(shù)隨迭代次數(shù)的變化曲線
反向?qū)W習(xí)策略[16]主要是對問題的可行解與反向解進行評價,選擇較優(yōu)的解作為下一代的優(yōu)化個體,從而提高獲得最優(yōu)解的概率。其定義如下:
(13)
本文提出的COGWO算法的實現(xiàn)步驟如算法1所示:
算法1COGWO算法
步驟1設(shè)置種群的規(guī)模N,維度dim,初始化a,A和C;采用Cubic映射式(10)初始化Xα,Xβ和Xδ的值。
步驟2根據(jù)尋優(yōu)函數(shù)計算每個智能體的適應(yīng)度值。
步驟3比較各智能體的適應(yīng)度值以及Xα,Xβ和Xδ的適應(yīng)度值,確定當(dāng)前的最優(yōu)解Xα,次優(yōu)解Xβ和第3優(yōu)解Xδ的值。
步驟4根據(jù)提出的非線性參數(shù)控制策略,由式(12)計算控制參數(shù)a的值,以及根據(jù)式(3)和式(4)分別計算A和C的值。
步驟5根據(jù)式(6)~式(8)更新種群個體的位置,再重新計算適應(yīng)度值,并更新α,β和δ狼的值。
步驟6判斷t是否達到Tmax,如果達到則結(jié)束,輸出最優(yōu)解;否則返回步驟2繼續(xù)執(zhí)行。
為了驗證COGWO算法的尋優(yōu)性能及其有效性,本文設(shè)計了2組對比實驗。(1)與經(jīng)典的智能優(yōu)化PSO算法[17]、較新的群體智能優(yōu)化算法WOA (Whale Optimization Algorithm)[18]、改進的GWO算法(β-GWO(β-Chaotic map enabled Grey Wolf Optimizer)算法[9]和SOGWO(Selective Opposition based Grey Wolf Optimization)算法[11])進行對比實驗; (2)與其他改進的GWO算法進行比較。
為了驗證改進GWO算法的有效性,實驗采用的基準測試函數(shù)如表1所示。其中,F(xiàn)1~F3為單峰函數(shù),F(xiàn)4~F6為多峰函數(shù)。此外,本文尋優(yōu)測試的實驗環(huán)境為:Windows 7操作系統(tǒng),Intel(R) Core(TM) i5-4210U CPU @2.4 GB,4 GB內(nèi)存,Matlab 2018a。
本文的算法尋優(yōu)中,各算法的參數(shù)設(shè)置如表2所示。種群規(guī)模N為30,最大迭代次數(shù)Tmax為500,維度dim為30。定義尋優(yōu)成功率(Success rate)為ε=10-10,當(dāng)尋優(yōu)結(jié)果小于ε時,則認為尋優(yōu)成功,反之為失敗。
為驗證本文提出的COGWO算法的性能,針對同一測試函數(shù),每一種算法獨立運行30次,并統(tǒng)計6種算法對6種基準測試函數(shù)尋優(yōu)結(jié)果的平均值(Mean)、方差(Std)、尋優(yōu)時間(Time)和尋優(yōu)成功率(Success rate),結(jié)果如表3所示。
Table 1 Benchmark functions表1 基準測試函數(shù)
Table 2 Parameter settings表2 參數(shù)設(shè)置
從表3中可以看出,對于單峰測試函數(shù)F1~F3的尋優(yōu),除函數(shù)F1外,COGWO算法的尋優(yōu)結(jié)果均優(yōu)于其他5種群體智能優(yōu)化算法的;對于多峰測試函數(shù)F4~F6的尋優(yōu),COGWO算法均優(yōu)于PSO算法、GWO算法和改進GWO算法。對于測試函數(shù)F5的尋優(yōu),COGWO算法與WOA的結(jié)果相近;對于測試函數(shù)F6的尋優(yōu),本文提出的COGWO算法與β-GWO算法、SOGWO算法的結(jié)果相近,但COGWO算法的尋優(yōu)時間較短。
從測試函數(shù)的尋優(yōu)時間來看,COGWO算法均優(yōu)于標(biāo)準的GWO算法;從尋優(yōu)成功率來看,COGWO算法的尋優(yōu)成功率均為100%;從尋優(yōu)的標(biāo)準差來看,COGWO算法的標(biāo)準差與尋優(yōu)均值的數(shù)量級相差不大。這說明COGWO算法具有較好的尋優(yōu)能力和穩(wěn)定性,其收斂精度也比較高。
COGWO算法與5種群體智能優(yōu)化算法對6種測試函數(shù)的尋優(yōu)過程,如圖3所示,圖3a~圖3f分別表示不同算法對6種測試函數(shù)的尋優(yōu)曲線趨勢。從圖3中可以看出,COGWO算法明顯優(yōu)于GWO算法,且收斂速度更快,收斂精度更高。
為進一步驗證本文提出的COGWO算法的有效性,與文獻[10]提出的LGWO (Grey Wolf Optimization algorithm based on Levy flight) 算法和文獻[6]提出的CGWO (Grey Wolf Optimization based on nonlinear Convergence) 算法進行對比,結(jié)果如表4所示。其中“/”表示改進的算法未對該測試函數(shù)進行尋優(yōu)測試。
Table 3 Comparison of optimization results with standard optimization algorithms表3 與標(biāo)準優(yōu)化算法的尋優(yōu)結(jié)果對比
Figure 3 Fitness value curves of different algorithms圖3 不同算法的尋優(yōu)測試結(jié)果
Table 4 Optimization comparison of optimized GWO algorithms
從表4中可以看出,對于函數(shù)F1的尋優(yōu),CGWO算法的尋優(yōu)精度最佳,COGWO算法優(yōu)于LGWO算法;對于函數(shù)F2的尋優(yōu),COGWO算法的尋優(yōu)結(jié)果比LGWO算法的尋優(yōu)結(jié)果高出5個數(shù)量級;對于函數(shù)F3和F5的尋優(yōu),COGWO算法與CGWO算法的均值結(jié)果相差不大,但從標(biāo)準差來看,COGWO算法的穩(wěn)定性更好;對于函數(shù)F6的尋優(yōu),COGWO算法和LGWO算法均優(yōu)于CGWO算法。
為了驗證COGWO算法的性能,本節(jié)將其應(yīng)用在拉壓彈簧設(shè)計的工程問題中,并與GWO算法、PSO算法和WOA進行對比分析。
拉壓彈簧設(shè)計問題是工程領(lǐng)域的一個經(jīng)典的優(yōu)化設(shè)計問題,在滿足條件的前提下,要求彈簧的質(zhì)量最小。此外,該設(shè)計問題主要包括3個變量:即彈簧的橫截面的直徑(d)、平均線圈的直徑(Diam)和有源線圈的數(shù)量(Q)。
該問題的具體表述如式(14)所示:
X=[x1,x2,x3]=[d,Diam,Q]
(14)
目標(biāo)函數(shù)如式(15)所示:
(15)
約束條件如式(16)所示:
(16)
其中,變量的取值范圍如下所示:
4種算法對拉壓彈簧設(shè)計問題的實驗結(jié)果如表5所示。
Table 5 Results of spring design problem by four optimization algorithms表5 4種優(yōu)化算法的彈簧設(shè)計問題結(jié)果
從表5中可以看出,對于拉壓彈簧設(shè)計問題,COGWO算法要略優(yōu)于其他群體智能算法。此外,COGWO算法對于其他實際工程優(yōu)化問題的應(yīng)用效果的驗證,還需要針對具體問題進行優(yōu)化計算和實驗。
本文針對標(biāo)準的GWO算法對復(fù)雜優(yōu)化問題的求解易陷入局部最優(yōu)的缺點,從混沌初始化和非線性控制策略2個角度改進GWO算法,提出了一種基于Cubic映射和反向?qū)W習(xí)的GWO算法COGWO。通過混沌映射來增加初始種群的多樣性,反向?qū)W習(xí)策略和非線性控制參數(shù)策略用來改進算法的收斂速度,并提高算法的收斂精度。與5種群體智能算法對6種基準測試函數(shù)進行尋優(yōu)實驗,尋優(yōu)結(jié)果表明,與對比算法相比COGWO算法的尋優(yōu)能力和收斂精度得到一定的提高,且穩(wěn)定性增強。此外,本文的COGWO算法與LGWO算法和CGWO算法相比,穩(wěn)定性較好,尋優(yōu)精度也較高,在實際的工程優(yōu)化問題中也有較好的應(yīng)用。未來將COGWO算法應(yīng)用到更多的實際工程優(yōu)化問題中,且對COGWO算法的收斂性理論證明開展進一步的研究。