林 杰, 何 慶, 王 茜, 楊榮瑩, 寧杰瓊
(貴州大學 大數據與信息工程學院, 貴陽 550025)
為解決各個科學工程中所產生的非線性優化問題,許多自然啟發算法越來越受青睞,其實現過程簡單且易于執行,而且這些算法繞過局部最優區域的能力也相對較強。其中,鯨魚優化算法(Whale Optimization Algorithm, WOA)是Mirjalili等人2016年提出的一種基于群體的智能優化算法,其仿生原理為座頭鯨的捕獵行為。由于鯨魚優化算法表現出優秀的尋優性能,WOA已經被應用于許多優化問題中:將改進的鯨魚算法應用在煉鋼連鑄的調度問題中[1];在水庫優化調度中采用鯨魚優化算法[2];在關于電壓的傳輸過程中,通過鯨魚算法對LLC諧振變換器進行建模和優化[3]。但與大多數啟發式算法一樣,也是從一個隨機的種群開始搜索,搜索過程有全局探索階段和局部開發階段。由于最優過程的隨機性,在勘探和開發之間保持適當的平衡是極其困難的,而且在算法的搜索過程中不斷改變領導者的位置,導致收斂結果早熟,即在求解優化問題時可能會迅速收斂到局部最優而不是全局最優,最終使解決方案的質量下降。許多學者對WOA的尋優性能進行了一系列的改進,如:基于自適應權重和柯西變異的鯨魚優化算法具有較好的尋優精度和穩定性[4];混合遺傳鯨魚優化算法來優化頻譜利用率和對抗惡意用戶模擬授權用戶的攻擊行為,仿真結果表明,該算法比現有的檢測算法具有更高的尋優性能[5]。
為進一步改善WOA的尋優性能,本文提出了一種改進鯨魚算法(Enhanced Whale Optimization Algorithm, EWOA)。首先,將引入混沌理論初始化算法種群位置,并對算法中隨機參數進行優化,以加快算法的收斂速度;其次,將正余弦算法與鯨魚優化算法結合,結合正余弦算法的優點對鯨魚群領導位置進行篩選,提高算法跳出陷入局部最優的能力,進而增加算法的尋優精度;最后,融合本文提出的自適應策略,引入慣性權重,以便更好的平衡算法的全局搜索和局部開發。算法仿真結果證明,本文提出的算法具有優越性和競爭性。
WOA算法是受啟發于座頭鯨的捕獵方法,為了捕食海洋表面的小魚,座頭鯨群潛到海面下,在獵物周圍制造不同形狀的泡泡,然后其會以螺旋路徑游回到水面捕食,這種獨特的捕獵方法使其不同于世界上的其它生物。
在WOA算法中,一頭鯨魚的位置代表一個空間解,隨著迭代次數的增加,鯨魚朝著獵物位置移動,不斷更新位置,逐漸將獵物包圍起來。這種行為用數學公式(1)表示:
X(t+1)=X*(t)-A·D.
(1)
其中,D=|C·X*(t)-X(t)|;X(t)表示鯨魚在第t代的位置;X*(t) 表示獵物在第t代的位置向量;A、C為變量,定義為式(2)和式(3):
A=2ar1-a,
(2)
C=2r2.
(3)
其中,r1、r2是服從[0,1]之間均勻分布的隨機數,a是線性遞減的向量,a的最大值為2,最小值為0,定義為式(4):
(4)
其中,Tmax為最大迭代次數,本文取值Tmax=1 000。
為了模擬鯨魚捕食行為,通過兩種方式建立數學模型:收縮包圍機制和螺旋更新位置。隨迭代次數的增加,通過式(4)的線性遞減模型將a從2遞減到0,實現收縮包圍機制,由式(2)可知,A是取值范圍為[-a,a]的隨機值,當a=1時,由式(1)可知鯨魚第t+1代的位置X(t+1)在第t代鯨魚的位置X(t)和獵物的位置X*(t)之間徘徊,由此實現對獵物的收縮包圍。為了模仿鯨魚的螺旋運動軌跡,獵物和鯨魚的位置之間的螺旋位置更新方程為(5):
X(t+1)=D'·ebl·cos(2πl)+X*(t).
(5)
其中,D'=|X*(t)-X(t)|,表示獵物與鯨魚之間的距離;b為螺旋常數;l為隨機數,本文b取值為1,l取值范圍是[-1,1]。隨著迭代次數的變化,鯨魚繞著獵物包圍的圈越來越小,同時沿著螺旋形的路徑前進。為了更好的模擬鯨魚的捕食行為,假設鯨魚選擇收縮包圍方式和螺旋模型行進方式進行位置更新的幾率各占一半,即選擇閾值為0.5。數學模型為(6):
(6)
其中,p為服從[0,1]之間均勻分布的概率因子。
為提高搜索獵物的全局勘探能力,鯨魚可以采用隨機搜索的方式搜索獵物。當A滿足|A|≥1時,鯨魚彼此之間的距離Drand隨機更新,此時鯨魚會放棄之前的移動方向,隨機在向其他方向搜索新的更新位置,避免陷入局部極值。位置更新如公式(7)和公式(8):
Drand=|C·Xrand(t)-X(t)|,
(7)
X(t+1)=Xrand(t)-A·|C·Xrand(t)-X(t)|.
(8)
其中,Xrand表示隨機選擇的鯨魚的位置向量。
混沌可以定義為這樣一種現象:初始狀態任何微小的變化都可能導致未來行為的非線性變化,此外,它在數學上被定義為非線性確定性系統產生的半隨機行為,依賴于混沌運動具有的遍歷性、隨機性等特點,可用來顯著提高算法的尋優性能[6]。大多數的群智能算法根據不同的概率分布產生一系列(0,1)之間的隨機數,而這種隨機性可能會導致算法收斂速度變慢,往往會影響目標解的質量。當然,與大多數啟發式算法一樣,標準WOA算法也是從一個隨機的種群開始搜索,這種方式讓初始化種群缺乏種群多樣性,尋優的空間位置不夠廣泛。為了改善這個缺點,本文采用混沌序列產生初始種群并替換算法中的種群位置。
Tent映射初始化種群位置的時候,算法尋到的最優解和收斂速度明顯比其他混沌映射要好,同時也證明了鯨魚優化算法對Tent映射的敏感度更高[7]。因此,本文通過式(9),采用Tent映射的方式來生成分布更加均勻的混沌序列,提高了算法的尋優性能。
(9)

(10)
其中,Xdi是第i個個體第t代第d維的位置分量;X*是當前最優位置;參數a控制搜索方向,變化方式同式(4),r3為[0,2π]上的隨機數,用來控制算法的搜索距離;r4為[0,2]上的隨機數;r5為[0,1]上的隨機數,決定第t+1代的位置更新方式是正弦方式還是余弦方式。
考慮到在鯨魚優化算法中,每次迭代時將適應度值最好的位置賦值給鯨魚群領導者,這樣的方式導致算法容易陷入局部最優區域,往往導致尋優精度較低。而在SCA中,算法可以隨機選取正余弦交叉尋優,使得二者位置更新方式相互補充,更好的協調全局探索和局部開發,使SCA逐步收縮并徘徊在目標解附近。因此,在本文所提的正余弦鯨魚優化算法中,經過排序存優的領導者不是直接進行下一次迭代過程,而是記錄當前領導者位置,同時對種群中每個個體的位置根據式(10)進行正弦(余弦)位置更新,再計算每個個體的適應度值,通過比較適應度篩選出一個新的領導者位置,最后引入貪婪機制,比較正余弦操作之前的領導者和新的領導者之間的適應度值大小,更新全局最優位置,再進入到下一次的迭代過程。值得注意的是,對于在SCA中出現的隨機參數r3、r4、r5,本文都通過Tent混沌映射產生,一定程度上加快了算法的收斂速度。
在當前大多數群智能優化算法中,權重對算法的全局探索和局部開發能力的平衡扮演著重要的角色。重反映的是后一個追隨者擺脫前一個位置束縛的能力,通常較大的慣性權重能夠讓算法具有較好的全局探索能力,而較小的慣性權重會使算法具有較好的局部開發能力。在算法迭代早期應使用較大的權重,讓算法以較大步伐快速到達目標值附近;而在迭代后期,應使用較小的權重,讓鯨魚較小的步伐移動,以便在目標解的附近精確搜索,更好的局部尋優。標準WOA算法在搜索包圍和位置更新時,權重是定值,受PSO的啟發[8-9],本文提出一種基于混沌自適應的慣性權重為式(11):
(11)
其中,Tmax表示最大迭代次數;ωs表示慣性權重初始值;ωe是最大迭代次數的慣性權重。實驗表明,當ω在[0.4,0.9]之間變化時,算法具有較好的尋優性能。隨著迭代的變化,將慣性權重從0.9非線性遞減至0.4,實現了權重的動態變化,使算法的全局搜索和局部開發得到較好的平衡,一定程度上也增加了算法跳出局部最優區域的概率。考慮到搜索獵物階段選取的隨機鯨魚位置向量,本文EWOA位置更新為公式(12)~(14):
X(t+1)=ω·X*(t)-A·D, |A|<1,pTent<0.5
(12)
X(t+1)=ω·Xrand-A·Drand, |A|≥1,pTent<0.5
(13)
X(t+1)=D'·ebl·cos(2πl)+ωX*(t).pTent≥0.5
(14)
綜上所述,本文所提EWOA算法的流程如圖1所示。
Step1根據混沌Tent映射生成N個初始化個體位置,N為種群大小,并設置其它參數;
Step2由目標函數f(x)計算出每頭鯨魚的適應度,并對最優值存優;
就上述問題,我單位積極走訪所在地區農戶,與他們進行交流與溝通,力爭結合玉米種植的實際情況,有針對性地加以解決。

圖1 算法流程圖
Step3通過式(9)生成均勻分布的r1Tent、r2Tent、r3Tent、pTent等參數,同時更新a、A、C、l等,通過式(11)更新參數;
Step4比較|A|的大小,用Tent映射生成概率因子pTent值與0.5作比較,選擇相應的位置更新公式:若pTent<0.5,當|A|<1時,通過式(12)包圍收縮;當|A|≥1時,按照式(13)隨機搜索;若pTent≥0.5,按照式(14)的螺旋機制更新當前位置;
Step5將存下來的最優位置X*按照式(10)進行位置更新,引入貪婪機制,決定是否更新全局最優位置;
Step6判斷算法是否滿足停止循環條件,若滿足,則跳出主循環,輸出目標位置和目標值,否則返回Step3~5。
本文實驗的運行環境均為64位的Window10系統,處理器類型為Intel Core i5-7500,編程軟件為MATLAB R2014b,為了驗證EWOA的性能,將改進的鯨魚優化算法(EWOA)、標準的鯨魚優化算法(WOA)、加入正余弦變化策略的鯨魚優化算法(SCWOA)、加入Tent映射的鯨魚優化算法(TWOA)、加入混沌自適應權重的鯨魚優化算法(WWOA)、灰狼算法(GWO)和正余弦算法(SCA)同時在表1的10個基準測試函數下進行30次對比實驗。
由于不同維度會影響算法的尋優效果,所以將表1所示的10個測試函數f1~f10維度設置從10維隨機遞增到200維,其中f1~f5為連續單峰函數,用來驗證算法收斂速度,f6~f10是多峰函數,具有多個局部極值,用來驗證算法跳出局部最優的能力和全局探測能力。同時,在低維和高維的情況下驗證算法的求解能力,從而更加全面地驗證算法的有效性。
為保證實驗的公平性,本次實驗所有算法的共同參數統一設置:種群大小為30,算法最大迭代次數為1 000次,各算法的主要參數設置見表2。

表1 基準測試函數

表2 算法主要參數
表3包含10個基準測試函數的優化結果,包括5個評估性能。通常最優值、最差值和平均值等幾項指標能反映算法的尋優能力和收斂精度,由表3可知,單峰函數f1~f5的求解結果大部分都能達到理論值0,雖然f5并沒有達到理論值,但綜合幾個改進算法的評價指標仍然比其它算法要好,值得注意的是WWOA在求解其中幾個單峰函數時同樣達到了理論效果,這是因為WOA算法容易陷入局部極值,在算法中加入了混沌自適應權重,一定程度上使得算法擁有跳出局部最優區域的能力,而伴隨維度的增加,EWOA的精度仍然是最高的,說明不同的改進策略提高了算法的尋優能力,從而達到了良好的尋優效果;對于復雜的非線性多峰態函數f6~f10,EWOA的最優值、最差值等評價指標都比其他算法要好,證明了EWOA的全局尋優能力,在求解高維函數時,EWOA達到的求解精度和穩定性明顯優于其它對比算法,證明了本文所提改進算法的競爭性。
其次,標準差可以衡量算法的穩定性和跳出局部最優的能力,表3中不管是單峰函數還是多峰函數,EWOA的標準差都比其它算法要好,其中部分還達到理論值,從而說明EWOA在求解過程中得到的尋優結果并非偶然;如求解多峰函數f8時,雖然其中幾個改進算法也達到了理論值,但是如圖2所示,EWOA算法的收斂精度和收斂速度明顯比其他幾種算法要好,值得注意的是WWOA的部分標準差都和EWOA相似,說明鯨魚優化算法對于權重比較敏感,導致加入權重后的算法有較好的尋優效果,但由圖2可知,綜合幾個改進點的EWOA在所有的求解中都表現出較好的效果,說明本文算法相比于其它算法更穩定。
為了直觀分析算法的尋優效果,圖2(a)~(j)給出了各算法在10個基準測試函數上獨立運行30次尋優的平均收斂曲線,其中各算法圖例同(a)所示。其中圖2(a)~(e)為函數f1~f5的平均收斂曲線;圖2(f)~(j)為多峰函數f6~f10的平均收斂曲線。由圖2可知,EWOA的收斂速度和收斂精度都明顯比其它算法更優,這是由于在算法中加入了混沌Tent映射、正余弦鯨魚算法和混沌自適應權重,所以EWOA算法收斂速度和求解精度都比其它算法要好。
表3中Mnci表示每個算法30次的平均收斂代數(Average number of convergent iterations),其中f1~f4設置收斂精度為1×10-100,由表3中Mnci值可知,10個測試函數中,EWOA算法的平均收斂代數比其他算法快,其中‘--’表示迭代到1 000次時算法均未收斂。相比之下,加入一個改進點的算法比原始鯨魚優化算法、正余弦算法和灰狼算法要快,說明本文改進算法相比于其它算法,具有更快的收斂速度。

(a) f1平均收斂曲線 (b) f2平均收斂曲線

(c) f3平均收斂曲線 (d) f4平均收斂曲線

(e) f5平均收斂曲線 (f) f6平均收斂曲線

(g) f7平均收斂曲線 (h) f8平均收斂曲線

(i) f9平均收斂曲線 (j) f10平均收斂曲線

算法最優值最差值均值標準差MnciWOA3.06E-1661.19E-1486.96E-1502.65E-149660EWOA0.00E+000.00E+000.00E+000.00E+00231TWOA4.82E-1771.28E-1444.25E-1462.33E-145657f1WWOA0.00E+000.00E+000.00E+000.00E+00446SCWOA3.00E-2441.82E-2156.06E-2170.00E+00509SCA6.63E-413.60E-382.79E-396.80E-39-GWO5.90E+003.82E+035.66E+021.06E+03-WOA3.34E-1142.20E-1001.35E-1014.86E-101951EWOA0.00E+000.00E+000.00E+000.00E+00372TWOA1.89E-1173.96E-1031.45E-1047.24E-104923f2WWOA0.00E+000.00E+000.00E+000.00E+00573SCWOA8.86E-1507.41E-1332.56E-1341.35E-133732SCA7.91E-211.05E-193.85E-202.43E-20-GWO1.25E-025.26E+004.99E-019.77E-01-WOA5.33E+051.15E+069.02E+051.47E+05-EWOA0.00E+000.00E+000.00E+000.00E+00405TWOA2.85E-034.00E+053.04E+047.83E+04-f3WWOA0.00E+000.00E+000.00E+000.00E+00468SCWOA1.73E-646.46E-112.15E-121.18E-11-SCA3.69E-032.59E+021.73E+015.05E+01-GWO1.09E+053.19E+051.89E+054.71E+04-WOA5.29E-029.67E+017.39E+012.72E+01-EWOA0.00E+000.00E+000.00E+000.00E+00383TWOA6.48E+011.00E+029.69E+018.14E+00-f4WWOA0.00E+000.00E+000.00E+000.00E+00575SCWOA3.29E-782.39E-608.68E-624.35E-61-SCA1.30E-018.13E+001.24E+001.61E+00-GWO8.78E+019.48E+019.22E+011.85E+00-WOA8.18E-024.30E-012.07E-011.12E-01943EWOA2.91E-026.56E-024.49E-021.55E-02597TWOA3.68E-024.04E-012.41E-011.35E-01942f5WWOA1.30E-012.78E-011.82E-015.72E-02668SCWOA3.06E-022.45E-011.04E-017.46E-02936SCA2.50E-017.59E-014.67E-011.75E-01-GWO3.91E+005.24E+004.50E+004.87E-01788WOA0.00E+000.00E+000.00E+000.00E+00281EWOA0.00E+000.00E+000.00E+000.00E+0049TWOA0.00E+000.00E+000.00E+000.00E+00304f6WWOA0.00E+000.00E+000.00E+000.00E+00106SCWOA0.00E+000.00E+000.00E+000.00E+00190SCA0.00E+009.34E+001.33E+003.07E+00504GWO5.18E+004.43E+021.84E+021.05E+02797WOA8.88E-167.99E-154.56E-152.72E-15373EWOA8.88E-168.88E-168.88E-160.00E+0097TWOA8.88E-167.99E-154.44E-152.64E-15374f7WWOA8.88E-168.88E-168.88E-160.00E+00317SCWOA8.88E-168.88E-168.88E-160.00E+00329SCA4.00E-145.06E-144.14E-142.40E-15446GWO1.26E+002.06E+011.76E+016.58E+00260WOA0.00E+001.62E-015.40E-032.96E-02331EWOA0.00E+000.00E+000.00E+000.00E+0059TWOA0.00E+000.00E+000.00E+000.00E+00300f8WWOA0.00E+000.00E+000.00E+000.00E+00150SCWOA0.00E+000.00E+000.00E+000.00E+00227SCA1.11E-164.36E-021.45E-037.96E-03575GWO5.90E+018.20E+022.96E+021.82E+02820WOA1.42E-031.11E-011.48E-022.30E-02933EWOA4.69E-045.94E-032.66E-031.36E-03630TWOA1.96E-039.48E+003.31E-011.73E+00921f9WWOA3.40E-031.03E-026.67E-031.80E-03651SCWOA1.06E-031.14E-024.99E-032.83E-03913SCA6.27E-037.98E-023.44E-021.47E-02-GWO3.45E-011.31E+012.08E+002.74E+00809WOA3.32E-026.43E-012.54E-011.44E-01928EWOA6.79E-031.05E-015.07E-022.50E-02680TWOA8.35E-027.74E-013.05E-011.77E-01926f10WWOA6.73E-025.21E-011.53E-019.12E-02648SCWOA1.77E-022.22E-011.02E-014.85E-02944SCA1.95E-018.91E-015.29E-011.95E-01-GWO2.22E+002.71E+021.54E+014.89E+01812
另外,平均誤差(Mean Absolute Error, MAE)是在基于10個測試函數,通過對算法進行排序,完成對算法的定量分析,MAE可以有效證明算法優越性的性能指標[10],表4是在給定基準測試函數情況下算法的MAE排序,MAE計算公式為(15):
(15)
其中,mi表示算法尋優結果的平均值;oi表示每個基準測試函數的理論值;Nf表示所采用測試函數個數。由表4可知,EWOA具有最小的平均誤差,即相對于其他對比算法,MAE的最優算法是EWOA算法,進一步驗證了本文所提EWOA改進的有效性。

表4 算法MAE排名
對運行30次后的算法結果僅基于均值和標準差評估算法性能并不可靠。為體現改進算法的魯棒性和公平性,通常使用Wilcoxon秩和檢驗來評估所提出的改進算法。因此,在5%的顯著水平下使用統計檢驗,來驗證本文所提改進算法每次運行結果是否與其他算法在統計上存在顯著性差異。通常,當p<5%時,可以被認為是拒絕零假設的有力驗證,說明兩種對比算法具有顯著性差異[11]。
表5列出了在10個測試函數下,本文算法與其他6個對比算法在Wilcoxon檢驗中的p值,因為無法將EWOA與自身比較,所以將EWOA與WOA、TWOA、WWOA、SCWOA、SCA和GWO進行比較。

表5 Wilcoxon秩和檢驗p值
其中“Na”表示不適用,意味著對應的算法在秩和檢驗中沒有數據與自身比較,無法判斷。“+”、“=”、“-”分別表示EWOA的性能要優于、相當于和劣于對比算法。通過對表5中的結果分析可知,EWOA的p值基本上都遠小于5%,表明本文所提算法的性能在統計上是顯著更優,進一步證明本文改進算法具有更高的收斂精度。
針對鯨魚優化算法的不足,本文首先采用混沌Tent映射來優化算法中的種群和隨機參數,一定程度上加快了算法的收斂速度。結合正余弦算法的優點,將正余弦算法與鯨魚優化算法結合,提高了算法的尋優精度。最后,在算法中加入自適應的慣性權重,使算法的全局搜索和局部開發能力得到更好的平衡,有效避免算法過早陷入局部最優。經過對基準測試函數的尋優實驗,結果證明本文所提改進算法具有優秀的尋優能力。