劉紫娟,田文艷
(1.山西工程職業學院,山西 太原 030000;2.太原科技大學,山西 太原 030000)
研究者通過模擬自然界生物的社會行為來構造概率搜索算法。基于上述方法來求解優化問題的過程,只涉及基本的數學操作,因此具有計算復雜度低、計算速度快等特點。其中最有名的算法是由Kennedy 和Eberhart提出的粒子群算法[1](Particle Swram Optimization, PSO)。該算法用于搜索并追隨當前狀態下附近空間中的最優粒子。除此之外,還有蟻群算法[2]、人工魚群算法[3]、猴子搜索[4]、狼群搜索[5]、海豚伙伴優化[6]等諸多算法。
本文首先介紹了基本的鯨魚算法,詳細分析了該算法的基本原理,并在此基礎上提出了一種改進的鯨魚算法,并用8組測試函數對其相關性能進行測試。通過對8組通用測試函數的仿真可以得出,改進鯨魚算法的收斂速度與收斂精度高于普通鯨魚算法。
鯨魚算法(Whale Optimization Algorithm, WOA)是一種模擬駝背鯨捕食獵物行為的新型元啟發式優化算法。這種新型群體智能優化算法于2016年由澳大利亞格里菲斯大學的Seyedali Mirjalili和Andrew Lewis提出[7],該算法具有參數少、操作簡單等優點。
駝背鯨通過一種“泡沫網”路徑覓食,即沿著圓圈的氣泡或形如“9”的路徑行進[8]。2013年Goldbogen等研究了從9只獨立的駝背鯨獲得的300個氣泡網的標簽,發現了與產生泡沫相關的兩種策略,分別被命名為“盤旋上升”和“雙重循環”[9],上述過程可以描述成三個階段,分別為獵物環繞、泡沫攻擊、搜索獵物,可以建立相應的數學模型。
1.2.1 環繞獵物
假設最優解為目標獵物的位置,鯨魚向最優位置前進的行為可以描述為公式(1)和公式(2):


圖1(a)表示公式(2)的二維圖。圖中,鯨魚可以根據目前最好位置(X*, Y*)來更新它的當前位置(X, Y),即圖中的黑色實心圓標明的點,鯨魚也可以通過調整和向最優解附近靠近。圖1(b)表示公式(2)的三維圖。鯨魚可以通過定義的到達圖中任意位置。
1.2.2 泡沫攻擊
通過縮水式環繞和螺旋位置更新兩種機制,將鯨魚的泡沫網行為轉化為數字模型。
(2)螺旋位置更新:這種機制的行進過程可以表示為如圖2(b)所示。用這種方法可以計算出鯨魚(X, Y)與獵物(X*, Y*)之間的距離。螺旋位置更新如公式(5):


圖1 二維和三維位置向量和它們可能的位置

圖2 鯨魚的泡沫網機制
鯨魚以螺旋式方法游向獵物的同時還要收縮包圍圈。為了模擬這種行為,假設鯨魚以pi的概率按照公式(2)執行縮水式環繞,那么它就會以1-pi的概率按公式(5)進行螺旋位置更新。
1.2.3 搜索獵物


圖3 鯨魚算法的搜索機制

通過以上描述可以發現,WOA算法對參數的隨機性有較大依賴,因此在實際計算過程中,該算法存在收斂精度低、收斂速度慢等缺點。
Shi Y等對粒子群算法進行了分析并引入慣性權重因子ω,使粒子群算法能夠快速收斂于全局最優解,并分析指出全局搜索在較大慣性權重下具有優勢,局部搜索在較小慣性權重下具有優勢[10]。根據上述理論,本文對WOA引入慣性權重因子ω,得到鯨魚優化算法(IWOA),可得公式(8):

式中:ωmax為慣性權重因子的最大值(0.08);ωmin為最小值(0.01);n為迭代次數;Nmax為最大迭代次數。
綜合公式(2)和公式(5)可以得到優化的位置更新:

式中,p∈(0, 1)。由公式(8)可知,ω隨迭代次數的增加而減小,這樣的變化使得迭代前期有利于全局搜索,迭代后期有利于局部搜索。同時,ω下降幅度較大,更有利于算法進行局部尋優。
假定最大迭代次數為Nmax,種群規模為NP,維度為k,根據鯨魚算法的原理可以求得原始鯨魚算法的運算量近似等于((5-4pi)k+(1-pi)log NP)·NP·Nmax,在改進算法中,增加慣性權重因子僅增加了一步乘法運算。所以,加入慣性權重后鯨魚算法的復雜度與原始鯨魚算法相當。
選取文獻[11-13]給出的經典單峰、多峰以及固定維度的多峰函數,共計8組。用這8組函數測試IWOA算法的有效性、可行性及算法的綜合能力。實驗中,種群和最大迭代次數分別設置為30和500。圖4(a)所示為WOA和IWOA在相同概率下8組函數的收斂曲線。其中,實線為WOA的收斂曲線,虛線為IWOA的收斂曲線。
本小節使用的實驗設備配置、仿真軟件和全局參數如下。
(1)操作系統:Windows 10;
(2)處理器:Inter(R)Core(TM)i5-5200U處理器;
(3)主頻:2.2 GHz;
(4)內存:4 GB;
(5)仿真實現軟件:MATLAB R2014b;
(6)初始化種群規模:30;
(7)最大迭代次數:500;
(8)運行次數:30。
從圖4(a)可以看出,WOA在初期迭代過程中有些魯莽,后期慢慢收斂。對于函數而言,IWOA比WOA有更快的收斂速度,同時收斂精度更接近理論上的最優解。表1所列為WOA與IWOA進行30次迭代所需用時的平均值。表2所列為不同概率下的WOA與IWOA的性能比較。
從表1中可以看出,IWOA平均耗時與WOA具有相同的數量級,這也充分證明兩種算法具有相同的復雜度。
不同概率對IWOA兩個階段會產生不同的影響,同時還會影響算法的整體性能。設p=0.3、0.5、0.8,對IWOA進行性能測試,并分析各自達到最優解時的迭代次數。圖4(b)中橫坐標表示迭代次數,縱坐標表示目前達到的最優解。

圖4 收斂曲線

表1 相同概率下的WOA與IWOA平均每次迭代所需用時

表2 不同概率下的WOA與IWOA的性能比較
表2記錄了不同概率下8組函數各自尋優時長的平均值(avg)和方差(std),以及IWOA獲得最優解所需最大迭代次數(C.I)。表中粗體字為最好結果。
由表2可知,IWOA相比WOA有較為明顯的優勢,而且不同概率的影響也不同,但總體而言,IWOA在概率為0.5時性能最好。單峰函數在三種不同概率下都能找到全局最優解,對于F1和F2而言,概率為0.5時的迭代次數最少;對于F3和F4而言,概率為0.3時的迭代次數最少。多峰函數在三種不同概率下也可以找到全局最優解,并且概率為0.5時的迭代次數最少。固定維度多峰函數在不同概率下的平均值以及優化不太明顯,但在概率為0.3時也可以得到最少迭代次數。
通過對WOA、IWOA以及蝙蝠算法(BA)的比較來驗證IWOA的有效性實驗結果,具體見表3所列。

表3 三種算法對基準函數的運行結果
單峰函數只有一個全局最優解。從表3可以看出,IWOA相比WOA和蝙蝠算法(BA)具有更低的尋優時長平均值和方差。
與單峰函數不同的是,多峰函數有多個局部最優解,且其最優解的數量會隨著問題規模的增加而呈指數增長。因此,這種測試函數對用于評估算法的探索能力非常有效。根據表3中對多峰函數(F5~F8)的仿真可知,IWOA具有很好的探索能力。
本文介紹了一種群體智能優化算法—WOA。WOA具有參數少、操作簡單等優點,在此基礎上,利用粒子群算法中的慣性權重因子對鯨魚算法進行改進,并給出了IWOA的數學模型。隨后,分別利用IWOA、WOA、蝙蝠算法(BA)對8組函數進行仿真,做橫向與縱向對比實驗表明,IWOA在收斂速度和收斂精度方面相比WOA和蝙蝠算法(BA)有較為明顯的提升,同時也充分證明了算法改進后的有效性和可行性。