趙傳武,黃寶柱,閻躍觀,代文晨,張 建
(1.中國礦業(yè)大學(xué)(北京) 地球科學(xué)與測繪工程學(xué)院,北京 100083;2.開灤(集團(tuán))有限責(zé)任公司,河北 唐山 063018)
近年來,隨著現(xiàn)實生活中優(yōu)化問題的復(fù)雜度增加,傳統(tǒng)優(yōu)化算法不能對其進(jìn)行有效的處理。智能優(yōu)化算法如蟻群算法(ant colony)、蜂群算法(artificial bee colony,ABC)、粒子群算法(particle swarm optimization,PSO)等是一類種群迭代尋優(yōu)算法,具有算法原理簡單、參數(shù)少、易于實現(xiàn)等特點(diǎn),在參數(shù)優(yōu)化[1-3]和遙感圖像處理[4-6]等領(lǐng)域得到了成功的應(yīng)用。
鯨魚優(yōu)化算法(whale optimization algorithm,WOA)是由澳大利亞學(xué)者M(jìn)irjalili和Lewis[7]于2016年提出的一種啟發(fā)式搜索算法。算法的本質(zhì)是模仿座頭鯨捕食行為,將包圍捕食、泡網(wǎng)攻擊、搜尋食物等行為數(shù)學(xué)模型化。鯨魚優(yōu)化算法與其他群智算法一樣,也存在易早熟、易陷入局部最優(yōu)和收斂速度慢等問題。基于此,許多學(xué)者從算法參數(shù)、位置公式以及與其他算法結(jié)合等不同角度來提高算法性能。龍文等[8]提出收斂因子隨迭代次數(shù)非線性變化的鯨魚優(yōu)化算法,平衡算法的全局搜索和局部搜索能力,結(jié)果表明該算法具有較高的收斂精度和較快的收斂速度;鐘明輝等[9]提出隨機(jī)調(diào)控參數(shù)的鯨魚優(yōu)化算法(EWOA),利用隨機(jī)分布的方式調(diào)控參數(shù),并對當(dāng)前最優(yōu)個體執(zhí)行變異擾動,仿真實驗表明改進(jìn)方法能有效處理高維優(yōu)化問題;郭振洲等[10]提出基于自適應(yīng)權(quán)重和柯西變異的鯨魚算法(WOAWC),引入自適應(yīng)權(quán)重,并用柯西逆累積分布函數(shù)對鯨魚位置進(jìn)行變異,實驗表明該算法具有較好的收斂精度和穩(wěn)定性;張永等[11]利用分段Logistic混沌映射初始化種群位置,并引入非線性自適應(yīng)權(quán)重策略,仿真測試結(jié)果表明該算法具有更快的收斂速度和更優(yōu)的收斂精度。上述不同策略從不同角度提升了鯨魚優(yōu)化算法的性能,但有些改進(jìn)策略較復(fù)雜,且部分改進(jìn)算法的收斂速度較慢。
為了加快收斂速度、提高求解精度,同時保留鯨魚優(yōu)化算法結(jié)構(gòu)簡單的特點(diǎn),該文提出一種非線性權(quán)重的自適應(yīng)鯨魚優(yōu)化算法(NWAWOA)。通過非線性權(quán)重S1和S2對鯨魚優(yōu)化算法三個階段的位置更新公式采用兩種不同的加權(quán)策略,平衡算法全局搜索與局部開發(fā)能力,同時加快收斂速度、提高求解精度。
鯨魚優(yōu)化算法是模仿座頭鯨捕食而實現(xiàn)的智能優(yōu)化算法,即一種獨(dú)特的泡泡網(wǎng)捕食行為[12]。算法采取“螺旋氣泡網(wǎng)”策略,逐步縮小捕食范圍、更新捕食位置,具有結(jié)構(gòu)簡單,調(diào)節(jié)參數(shù)少等優(yōu)勢[13]。該算法主要包括三個階段:包圍捕食、泡網(wǎng)攻擊、搜尋食物。
座頭鯨能夠識別食物的位置并包圍它們,由于無法提前獲知食物的位置,WOA算法假設(shè)當(dāng)前最佳的候選解為目標(biāo)食物的位置或最接近目標(biāo)食物的位置,其他鯨魚個體向最優(yōu)位置靠近,其位置更新的數(shù)學(xué)表達(dá)式為:
(1)
(2)
(3)
(4)
為了模仿座頭鯨泡網(wǎng)攻擊行為,通過收縮包圍和螺旋式更新位置來設(shè)計鯨魚捕食吐氣泡行為。
(1)收縮包圍:根據(jù)式(2)進(jìn)行收縮包圍,通過減小式(3)中的收斂因子來實現(xiàn)。若A∈[-1,1]時,鯨魚個體向著當(dāng)前最優(yōu)鯨魚的位置移動,并且|A|越大步長越大,|A|越小步長越小。
(2)螺旋式更新位置:首先計算鯨魚個體與當(dāng)前最優(yōu)鯨魚的距離,然后以螺旋方式搜索食物,其中螺旋式數(shù)學(xué)模型表示為:
(5)
(6)
座頭鯨在捕殺獵物時不僅要收縮包圍圈,還以螺旋形式游向獵物。因此,為了實現(xiàn)這種同步模型,以相同概率(閾值為0.5)進(jìn)行收縮包圍和螺旋式更新位置,其數(shù)學(xué)模型表示如下:
(7)
其中,p為[0,1]上的隨機(jī)數(shù),當(dāng)p<0.5進(jìn)行收縮包圍,當(dāng)p≥0.5進(jìn)行螺旋式位置更新。
(8)
(9)
鯨魚優(yōu)化算法與其他群體智能算法一樣,平衡全局搜索和局部開發(fā)能力十分重要。權(quán)重對鯨魚優(yōu)化算法有重要作用,權(quán)重較大時,收斂速度較快,算法搜索的范圍較大;權(quán)重較小時,搜索更加細(xì)致,不易錯過最優(yōu)解。
在鯨魚優(yōu)化算法中引入非線性權(quán)重S1和S2(如圖1所示),分別對當(dāng)前最優(yōu)位置和包圍步長進(jìn)行自適應(yīng)調(diào)整,具體計算公式如下:
圖1 自適應(yīng)權(quán)重S1和S2
(10)
(11)
其中,γ為S1和S2的變化范圍取值,取γ=0.5;λ為S1和S2的取值步長,取λ=1。
文獻(xiàn)[14]中,將權(quán)重S1和S2引入到式(2)和式(5)中,如下所示:
|A|<1,p<0.5
(12)
|A|≥1,p<0.5
(13)
筆者認(rèn)為將權(quán)重S1引入到位置上,不符合智能優(yōu)化的初衷,改進(jìn)公式如下:
|A|<1,p<0.5
(14)
|A|≥1,p<0.5
(15)
同時受文獻(xiàn)[15-16]的啟發(fā),對文獻(xiàn)[14]中的螺旋式位置更新公式即:
p≥0.5
(16)
(17)
由圖1可以看出,S1隨迭代次數(shù)增加呈非線性遞增,使種群能充分向最優(yōu)位置移動;而S2隨迭代次數(shù)增加呈非線性遞減,在后期有較小步長而加快收斂速度。在平衡全局搜索和局部開發(fā)能力的同時,提高求解精度、加快收斂速度。
改進(jìn)的鯨魚優(yōu)化算法,對三個階段的位置更新公式采取了不同的加權(quán)策略:在包圍捕食和搜尋食物階段,即p<0.5,非線性減小的權(quán)重S2僅對距離數(shù)據(jù)加權(quán);在泡網(wǎng)攻擊階段的螺旋式更新位置,即p≥0.5,非線性增加的權(quán)重S1不僅對距離數(shù)據(jù)加權(quán)而且對位置加權(quán)。鯨魚算法流程如圖2所示。
圖2 NWAWOA算法流程
為了驗證NWAWOA算法的有效性,選取10個基準(zhǔn)測試函數(shù)[7]進(jìn)行仿真實驗,并與PSO算法、WOA算法、WOAWC算法[10]、EWOA算法[14]進(jìn)行對比。選取的10個基準(zhǔn)測試函數(shù)如表1所示,F(xiàn)1~F6為單模態(tài)函數(shù),F(xiàn)7~F9為多模態(tài)函數(shù),F(xiàn)10為固定維度多模態(tài)函數(shù)。
表1 10個基準(zhǔn)測試函數(shù)
從兩個方面對算法進(jìn)行函數(shù)優(yōu)化測試:(1)將NWAWOA算法與相關(guān)算法(PSO算法、WOA算法、WOAWC算法)進(jìn)行比較,驗證該方法的求解精度和收斂速度;(2)與文獻(xiàn)[14]中的算法進(jìn)行比較,進(jìn)一步檢驗NWAWOA算法的尋優(yōu)性能。
算法的實驗平臺基于Windows 10專業(yè)版,64位操作系統(tǒng),8 GB內(nèi)存,采用Matlab R2018a進(jìn)行仿真實驗。5種算法的相關(guān)參數(shù)設(shè)置如表2所示。
表2 算法參數(shù)設(shè)置
為了驗證改進(jìn)算法的有效性,對比NWAWOA算法與PSO算法、WOA算法、WOAWC算法的求解精度、收斂速度和穩(wěn)定性。為了反映算法的求解精度和穩(wěn)定性,4種算法分別對選取的10個基準(zhǔn)測試函數(shù)獨(dú)立運(yùn)行50次,取50次最優(yōu)值的平均值(mean)和標(biāo)準(zhǔn)差(std),實驗結(jié)果如表3所示。為了更加直觀地觀察算法優(yōu)化的過程,圖3展示了4種算法的收斂曲線。
表3 4種算法的性能測試結(jié)果
續(xù)表3
從表3可以看出,針對選取的10個基準(zhǔn)測試函數(shù),NWAWOA算法尋優(yōu)性能遠(yuǎn)優(yōu)于粒子群算法。對于函數(shù)F1~F4、F7、F9,均取得理論最優(yōu)解;函數(shù)F5、F6、F8雖然沒收斂到理論最優(yōu)解,但與其他3種算法相比,該文提出的算法在求解精度、收斂速度和穩(wěn)定性上均有一定的提高。
同時,對于多模態(tài)函數(shù)F9,WOA算法取得理論最優(yōu)解,但從圖3(i)可以發(fā)現(xiàn),WOA算法迭代238次,而NWAWOA算法在第2次迭代便已取得理論最優(yōu)解0,收斂速度遠(yuǎn)優(yōu)于WOA算法;對于固定維度多模態(tài)函數(shù)F10,從圖3(j)可以發(fā)現(xiàn),WOA算法迭代46次得-1.031 6,而NWAWOA算法迭代236次,該文提出的算法對固定維度多模態(tài)函數(shù)優(yōu)化效果稍差。
從表3可以觀察到,對于函數(shù)F1、F3、F7、F9,WOAWC算法取得了理論最優(yōu)解,但由圖3(a)(c)(g)(i)可以看出,WOAWC算法達(dá)到理論最優(yōu)解的迭代次數(shù)分別為487、491、151、186次,而NWAWOA算法均在第2次迭代取得了理論最優(yōu)解。
(a)函數(shù)F1 (b)函數(shù)F2 (c)函數(shù)F3
由此可得:NWAWOA算法與其他3種算法相比,在求解精度、收斂速度和穩(wěn)定性上都有一定的提升,尤其在單模態(tài)和多模態(tài)函數(shù)優(yōu)化問題上,該文提出的算法更優(yōu)。
筆者受文獻(xiàn)[14]中EWOA算法的啟發(fā),進(jìn)行了算法的改進(jìn)。為了進(jìn)一步檢驗該算法的尋優(yōu)性能,將其與EWOA算法進(jìn)行比較,實驗結(jié)果如表4所示。
表4 文中方法與EWOA算法的性能測試對比
從表4可以看出,兩種算法對函數(shù)F1、F7、F9均取得理論最優(yōu)解;但EWOA算法求得最優(yōu)解的迭代次數(shù)為130、14、9次,而NWAWOA算法僅迭代2、2、2次便求得最優(yōu)解,表明NWAWOA算法有更快的收斂速度;對于其他的函數(shù)的優(yōu)化,NWAWOA算法表現(xiàn)了更高的求解精度和穩(wěn)定性??偟膩碚f,提出的算法具有更優(yōu)的尋優(yōu)性能。
針對鯨魚優(yōu)化算法求解精度低、收斂速度慢的問題,提出一種非線性權(quán)重的自適應(yīng)鯨魚優(yōu)化算法(NWAWOA),在優(yōu)化算法性能的基礎(chǔ)上保留鯨魚優(yōu)化算法結(jié)構(gòu)簡單的特點(diǎn)。通過非線性權(quán)重S1和S2對鯨魚優(yōu)化算法三個階段的位置更新公式采用兩種不同的加權(quán)策略,平衡算法全局搜索與局部開發(fā)能力,同時提高求解精度、加快收斂速度。對10個經(jīng)典測試函數(shù)進(jìn)行仿真實驗表明,改進(jìn)的算法與其他4種算法相比,具有較好的收斂速度、求解精度和穩(wěn)定性,并且易于實現(xiàn),在實際應(yīng)用中具有一定的潛力。