劉紫娟,田文艷
(1.山西工程職業(yè)學(xué)院,山西 太原 030000;2.太原科技大學(xué),山西 太原 030000)
研究者通過模擬自然界生物的社會行為來構(gòu)造概率搜索算法。基于上述方法來求解優(yōu)化問題的過程,只涉及基本的數(shù)學(xué)操作,因此具有計算復(fù)雜度低、計算速度快等特點。其中最有名的算法是由Kennedy 和Eberhart提出的粒子群算法[1](Particle Swram Optimization, PSO)。該算法用于搜索并追隨當前狀態(tài)下附近空間中的最優(yōu)粒子。除此之外,還有蟻群算法[2]、人工魚群算法[3]、猴子搜索[4]、狼群搜索[5]、海豚伙伴優(yōu)化[6]等諸多算法。
本文首先介紹了基本的鯨魚算法,詳細分析了該算法的基本原理,并在此基礎(chǔ)上提出了一種改進的鯨魚算法,并用8組測試函數(shù)對其相關(guān)性能進行測試。通過對8組通用測試函數(shù)的仿真可以得出,改進鯨魚算法的收斂速度與收斂精度高于普通鯨魚算法。
鯨魚算法(Whale Optimization Algorithm, WOA)是一種模擬駝背鯨捕食獵物行為的新型元啟發(fā)式優(yōu)化算法。這種新型群體智能優(yōu)化算法于2016年由澳大利亞格里菲斯大學(xué)的Seyedali Mirjalili和Andrew Lewis提出[7],該算法具有參數(shù)少、操作簡單等優(yōu)點。
駝背鯨通過一種“泡沫網(wǎng)”路徑覓食,即沿著圓圈的氣泡或形如“9”的路徑行進[8]。2013年Goldbogen等研究了從9只獨立的駝背鯨獲得的300個氣泡網(wǎng)的標簽,發(fā)現(xiàn)了與產(chǎn)生泡沫相關(guān)的兩種策略,分別被命名為“盤旋上升”和“雙重循環(huán)”[9],上述過程可以描述成三個階段,分別為獵物環(huán)繞、泡沫攻擊、搜索獵物,可以建立相應(yīng)的數(shù)學(xué)模型。
1.2.1 環(huán)繞獵物
假設(shè)最優(yōu)解為目標獵物的位置,鯨魚向最優(yōu)位置前進的行為可以描述為公式(1)和公式(2):
圖1(a)表示公式(2)的二維圖。圖中,鯨魚可以根據(jù)目前最好位置(X*, Y*)來更新它的當前位置(X, Y),即圖中的黑色實心圓標明的點,鯨魚也可以通過調(diào)整和向最優(yōu)解附近靠近。圖1(b)表示公式(2)的三維圖。鯨魚可以通過定義的到達圖中任意位置。
1.2.2 泡沫攻擊
通過縮水式環(huán)繞和螺旋位置更新兩種機制,將鯨魚的泡沫網(wǎng)行為轉(zhuǎn)化為數(shù)字模型。
(2)螺旋位置更新:這種機制的行進過程可以表示為如圖2(b)所示。用這種方法可以計算出鯨魚(X, Y)與獵物(X*, Y*)之間的距離。螺旋位置更新如公式(5):
圖1 二維和三維位置向量和它們可能的位置
圖2 鯨魚的泡沫網(wǎng)機制
鯨魚以螺旋式方法游向獵物的同時還要收縮包圍圈。為了模擬這種行為,假設(shè)鯨魚以pi的概率按照公式(2)執(zhí)行縮水式環(huán)繞,那么它就會以1-pi的概率按公式(5)進行螺旋位置更新。
1.2.3 搜索獵物
圖3 鯨魚算法的搜索機制
通過以上描述可以發(fā)現(xiàn),WOA算法對參數(shù)的隨機性有較大依賴,因此在實際計算過程中,該算法存在收斂精度低、收斂速度慢等缺點。
Shi Y等對粒子群算法進行了分析并引入慣性權(quán)重因子ω,使粒子群算法能夠快速收斂于全局最優(yōu)解,并分析指出全局搜索在較大慣性權(quán)重下具有優(yōu)勢,局部搜索在較小慣性權(quán)重下具有優(yōu)勢[10]。根據(jù)上述理論,本文對WOA引入慣性權(quán)重因子ω,得到鯨魚優(yōu)化算法(IWOA),可得公式(8):
式中:ωmax為慣性權(quán)重因子的最大值(0.08);ωmin為最小值(0.01);n為迭代次數(shù);Nmax為最大迭代次數(shù)。
綜合公式(2)和公式(5)可以得到優(yōu)化的位置更新:
式中,p∈(0, 1)。由公式(8)可知,ω隨迭代次數(shù)的增加而減小,這樣的變化使得迭代前期有利于全局搜索,迭代后期有利于局部搜索。同時,ω下降幅度較大,更有利于算法進行局部尋優(yōu)。
假定最大迭代次數(shù)為Nmax,種群規(guī)模為NP,維度為k,根據(jù)鯨魚算法的原理可以求得原始鯨魚算法的運算量近似等于((5-4pi)k+(1-pi)log NP)·NP·Nmax,在改進算法中,增加慣性權(quán)重因子僅增加了一步乘法運算。所以,加入慣性權(quán)重后鯨魚算法的復(fù)雜度與原始鯨魚算法相當。
選取文獻[11-13]給出的經(jīng)典單峰、多峰以及固定維度的多峰函數(shù),共計8組。用這8組函數(shù)測試IWOA算法的有效性、可行性及算法的綜合能力。實驗中,種群和最大迭代次數(shù)分別設(shè)置為30和500。圖4(a)所示為WOA和IWOA在相同概率下8組函數(shù)的收斂曲線。其中,實線為WOA的收斂曲線,虛線為IWOA的收斂曲線。
本小節(jié)使用的實驗設(shè)備配置、仿真軟件和全局參數(shù)如下。
(1)操作系統(tǒng):Windows 10;
(2)處理器:Inter(R)Core(TM)i5-5200U處理器;
(3)主頻:2.2 GHz;
(4)內(nèi)存:4 GB;
(5)仿真實現(xiàn)軟件:MATLAB R2014b;
(6)初始化種群規(guī)模:30;
(7)最大迭代次數(shù):500;
(8)運行次數(shù):30。
從圖4(a)可以看出,WOA在初期迭代過程中有些魯莽,后期慢慢收斂。對于函數(shù)而言,IWOA比WOA有更快的收斂速度,同時收斂精度更接近理論上的最優(yōu)解。表1所列為WOA與IWOA進行30次迭代所需用時的平均值。表2所列為不同概率下的WOA與IWOA的性能比較。
從表1中可以看出,IWOA平均耗時與WOA具有相同的數(shù)量級,這也充分證明兩種算法具有相同的復(fù)雜度。
不同概率對IWOA兩個階段會產(chǎn)生不同的影響,同時還會影響算法的整體性能。設(shè)p=0.3、0.5、0.8,對IWOA進行性能測試,并分析各自達到最優(yōu)解時的迭代次數(shù)。圖4(b)中橫坐標表示迭代次數(shù),縱坐標表示目前達到的最優(yōu)解。
圖4 收斂曲線
表1 相同概率下的WOA與IWOA平均每次迭代所需用時
表2 不同概率下的WOA與IWOA的性能比較
表2記錄了不同概率下8組函數(shù)各自尋優(yōu)時長的平均值(avg)和方差(std),以及IWOA獲得最優(yōu)解所需最大迭代次數(shù)(C.I)。表中粗體字為最好結(jié)果。
由表2可知,IWOA相比WOA有較為明顯的優(yōu)勢,而且不同概率的影響也不同,但總體而言,IWOA在概率為0.5時性能最好。單峰函數(shù)在三種不同概率下都能找到全局最優(yōu)解,對于F1和F2而言,概率為0.5時的迭代次數(shù)最少;對于F3和F4而言,概率為0.3時的迭代次數(shù)最少。多峰函數(shù)在三種不同概率下也可以找到全局最優(yōu)解,并且概率為0.5時的迭代次數(shù)最少。固定維度多峰函數(shù)在不同概率下的平均值以及優(yōu)化不太明顯,但在概率為0.3時也可以得到最少迭代次數(shù)。
通過對WOA、IWOA以及蝙蝠算法(BA)的比較來驗證IWOA的有效性實驗結(jié)果,具體見表3所列。
表3 三種算法對基準函數(shù)的運行結(jié)果
單峰函數(shù)只有一個全局最優(yōu)解。從表3可以看出,IWOA相比WOA和蝙蝠算法(BA)具有更低的尋優(yōu)時長平均值和方差。
與單峰函數(shù)不同的是,多峰函數(shù)有多個局部最優(yōu)解,且其最優(yōu)解的數(shù)量會隨著問題規(guī)模的增加而呈指數(shù)增長。因此,這種測試函數(shù)對用于評估算法的探索能力非常有效。根據(jù)表3中對多峰函數(shù)(F5~F8)的仿真可知,IWOA具有很好的探索能力。
本文介紹了一種群體智能優(yōu)化算法—WOA。WOA具有參數(shù)少、操作簡單等優(yōu)點,在此基礎(chǔ)上,利用粒子群算法中的慣性權(quán)重因子對鯨魚算法進行改進,并給出了IWOA的數(shù)學(xué)模型。隨后,分別利用IWOA、WOA、蝙蝠算法(BA)對8組函數(shù)進行仿真,做橫向與縱向?qū)Ρ葘嶒灡砻?,IWOA在收斂速度和收斂精度方面相比WOA和蝙蝠算法(BA)有較為明顯的提升,同時也充分證明了算法改進后的有效性和可行性。