秋興國,王瑞知,張衛國,張昭昭,張 婧
西安科技大學計算機科學與技術學院,西安 710048
群智能優化算法是仿生類進化算法之一,通過模擬自然界生物群體的復雜組織行為,如群體捕食行為、群體繁衍機制等構造出相應的隨機搜索方法。群智能優化算法具有較強的自組織性和魯棒性,被廣泛應用于機械控制、圖像處理、工程調度、路徑規劃、特征提取等領域[1-4]。典型的群智能優化算法有粒子群算法(particle swarm optimization,PSO)[5]、人工蜂群算法(artificial bee colony,ABC)[6]、灰狼優化算法(grey wolf optimizer,GWO)[7]等。
鯨魚優化算法(whale optimization algorithm,WOA)是Mirjalili等[8]于2016年提出的一種新型群智能優化算法,該算法基于座頭鯨的覓食行為,構建出搜索、包圍和狩獵等理論模型以實現對目標問題的優化求解。相比其他優化算法,WOA 具有搜索機制獨特、參數少、易于理解的優點,但與其他群智能算法相似,WOA同樣存在收斂速度慢、易陷入局部最優的問題。目前,國內外學者針對這些問題提出了許多不同的改進方法。武澤權等[9]提出了一種基于自適應權重和隨機差分變異策略的鯨魚優化算法,引入準反向學習策略對種群進行初始化以增加種群多樣性,通過自適應權重和差分變異策略更新個體位置,有效防止算法陷入局部最優。Seyed 和Samaneh[10]結合差分進化算法對鯨魚優化算法進行改進,提出新的控制算子以平衡算法的全局探索和局部開發能力,對求解復雜優化問題十分有效。Kaur 和Arora[11]將混沌理論引入到WOA優化過程中提出CWOA方法,通過混沌映射調節WOA的主要參數,通過實驗證明了CWOA 能夠有效提高算法的尋優能力。郝曉弘等[12]采用混沌映射初始化種群,通過非線性收斂因子和慣性權重提升全局探索和局部開發能力,并結合變異操作提出基于混合策略的鯨魚優化算法,通過與其他優化算法進行對比,尋優效果顯著。張水平等[13]通過Faure序列初始化種群,對個體進行分工及柯西高斯變異并動態調整搜索策略提出改進的鯨魚優化算法,并在仿真實驗上取得了較好的結果。以上改進策略,主要體現在種群初始化、非線性時變因子和自適應權重、局部變異方面,這些改進策略均在不同方面提升了鯨魚優化算法的性能。
本文針對鯨魚優化算法收斂速度慢、易陷入局部最優、尋優精度差等問題,結合以往學者在種群初始化方面所做工作,將低偏差Sobol序列應用到種群初始化中,從而提出一種新的種群初始化方法。該方法使搜索空間中初始解分布更加均勻從而提高算法收斂速度;其次,基于非線性時變因子和自適應權重這一鯨魚優化算法的改進熱點問題,提出一種新的非線性時變因子和自適應權重改進公式,以平衡并提高算法全局搜索和局部開發能力,進一步提升算法優化性能;最后,將能夠促進個體間相互學習的隨機學習策略引入鯨魚優化算法中,提出一種新的增加種群多樣性方法;并引用張水平等[13]、何慶等[14]所提局部柯西變異策略改善算法跳出局部最優的能力。通過在12個基準函數和水資源需求預測模型參數估計中與其他6種優化算法進行仿真對比,驗證了上述改進措施可有效提升算法的收斂速度和尋優精度。
鯨魚優化算法是模擬座頭鯨捕食行為發展而來的一種群智能優化算法,該算法主要包含搜索獵物、包圍獵物和螺旋氣泡網捕食三個階段。
鯨魚優化算法中,參與捕獵行為的每頭鯨魚代表一個可行解x。在搜索獵物階段,基于鯨魚群體捕獵時的隨機游走機制,鯨魚個體根據群體中彼此的位置信息更新下一代位置,隨機搜索使算法具備全局尋優性能。根據第t次的搜索行為,當 ||A>1 時,鯨魚對第t+1 次的搜索行為進行更新,表述如下:

其中r∈rand[ ]0,1 ,a=2-2t/T,T為迭代次數。注意到,隨著迭代次數的增加,a呈線性遞減,相應地A隨a逐漸減小,當 ||A≤1 時,算法由搜索獵物階段進入包圍獵物階段。
隨著迭代次數的增加,|A|減小至1,算法進入包圍獵物階段。由于最初搜索時獵物位置模糊,WOA 算法假設此時鯨魚群中適應度值最優的解為獵物位置或已逼近目標獵物的位置,因此其他鯨魚根據當前最優解的位置信息進行位置更新,通過逐步包圍收縮,接近獵物并確定目標位置。

鯨魚有獨特的狩獵策略,在吐氣泡的同時進行螺旋式上升游動,邊包圍邊將獵物逼近海洋表面,以最佳方式捕獲獵物。這種罕見捕獵行為的數學模型表述如下:

為了模擬鯨魚同步進行包圍收縮和螺旋氣泡網狩獵的圍獵行為,設置隨機概率對位置更新策略進行選擇。當隨機概率p≥0.5 時,鯨魚群進行氣泡網螺旋式捕獵位置的更新,以邊吐氣泡邊螺旋游走的方式逼近獵物,當隨機概率p<0.5 時,鯨魚群根據當前最優解的位置進行包圍式捕獵位置的更新。在不斷逼近目標的迭代過程中|A|持續減小,當|A|=0 時,鯨魚優化算法找到理論最優解。整體圍獵機制描述如下:

針對傳統鯨魚優化算法存在的缺陷,本文采用Sobol 序列初始化種群以提高初始解的質量;通過非線性時變因子和自適應權重策略平衡并提高算法全局勘探和局部開發能力;引入柯西變異算子,增強算法跳出局部尋優的能力;結合隨機性學習策略增加種群多樣性,以提高算法全局優化能力?;谝陨?種改進,提出一種混合策略改進的鯨魚優化算法(mix strategy based improved whale optimization algorithm,MSWOA)。
群智能算法初始解在解空間的分布情況將極大的影響算法的收斂速度和尋優精度,分布均勻的初始解則有利于提高算法的性能。標準WOA采用隨機方式對種群進行初始化,初始種群的分布相對不均勻。本文采用Sobol序列對種群進行初始化,Sobol序列是一種隨機序列[15],在種群的每一個維度上均由底數為2 的radical inversion組成,且每一個維度的radical inversion都有各自不同的矩陣,從而產生不重復且均勻的點。為對比隨機分布與Sobol序列產生隨機數的空間分布,在[0,1]范圍內產生規模為500 的種群在二維空間的隨機數分布圖,由圖1對比可知,經Sobol序列得到的種群分布更為均勻且對解空間的覆蓋更完整。

圖1 隨機法與Sobol序列生成個體分布圖Fig.1 Distribution of individuals of generated by random method and Sobol sequence
參數A是WOA 算法中調節全局勘探和局部開發的重要參數,主要受收斂因子a的影響。由公式(2)可知,收斂因子a隨迭代次數的增加呈線性下降,使得算法前期搜索獵物不徹底,后期圍獵過程收斂速度較慢。為了改善收斂因子a對算法的影響,本文提出一種分段非線性收斂因子,公式如下:

如圖2 為收斂因子與參數A在迭代次數為500 時的分布圖,從圖中可看出,本文所提收斂因子a比原始收斂因子a在迭代早期及迭代后期均大,從而在沒有改變全局勘探和局部開發的分割點的同時,增強了算法前期全局勘探和后期局部開發能力。

圖2 收斂因子及參數A分布圖Fig.2 Distribution of convergence factor and parameter A
考慮到捕獵過程中獵物目標對鯨魚群位置更新的影響,本文提出一種自適應權值策略,公式如下:

于是位置更新公式變為:

自適應權值隨迭代次數的增加呈非線性增加的趨勢。迭代初期權值較小,此時目標模糊,對位置更新影響不大;算法中后期,目標逐漸清晰,此時權值隨迭代次數的增加逐漸變大,目標對鯨魚個體的吸引力越來越強,由于采用全局最優解引導,故增強了局部開發能力,使得鯨魚群能夠更加快速和準確地找到目標解,有效加強算法尋優性能,加快算法收斂速度、提升算法穩定性。
鯨魚能夠在水中進行交流、導航、定位、捕食,由于傳統WOA算法在全局搜索時只依靠種群中隨機個體的引導進行個體位置的更新,全局尋優能力較弱,故引入教與學優化算法中的隨機性學習策略[16],模擬鯨魚之間討論交流的學習模式,通過向優秀個體的學習優化自身位置。對于個體x,從種群中隨機選出與之不同的個體xp,通過比較兩者的適應度值選擇更優秀的個體,通過向更優秀的個體進行學習調整個體的位置。

其中,學習因子rand(0,1)是(0,1)間的隨機數,體現了每個個體學習能力的差異。經過學習后,如果f(xnew) 對于傳統WOA 算法易陷入局部最優的問題,結合柯西分布引入柯西變異策略,給予當前最優個體以柯西擾動,當個體陷入局部最優時,柯西算子能夠產生較大步長使算法跳出局部最優,亦能夠產生較小步長加快對最優解的搜索速度。因此,本文采用如下柯西變異公式,對當前最優個體進行位置更新: 其中,x*new(t)為當前最優值經柯西擾動后得到的新值,cauchy(0,1)為柯西算子,標準柯西分布函數公式如下[14]: 由數學理論可知,柯西分布兩端延伸能夠產生距原點較遠的隨機數,能夠對鯨魚個體產生較強擾動,使經過擾動的鯨魚具備迅速避開局部陷阱的能力。同時,與其他函數相比柯西分布最高峰值較低,能夠縮短個體在搜索空間花費的時間,從而加快算法的收斂速度。 MSWOA算法流程可描述如下所示。 (1)初始化算法相關參數:種群規模N,空間維度dim,種群的可搜索空間[ub,lb],迭代次數T。 (2)采用Sobol序列對種群位置進行初始化。 (3)計算個體適應度值,并找出最優適應度值及對應的最優個體;若最優適應度值連續10代未發生變化,則根據式(13)對最優個體進行變異操作。 (4)根據式(7)更新參數a,進而根據式(2)更新A,根據式(8)更新參數w,并同時更新參數c、p。 (5)當p<0.5 時,若 |A|>1,進入步驟f,若 |A|≤1,進入步驟(7),當p≥0.5 時,進入步驟(8)。 (6)進行全局搜索,根據式(12)進行隨機性學習更新較差個體位置,進一步根據式(9)更新個體位置。 (7)進行包圍獵物,根據式(10)更新個體位置。 (8)進行螺旋氣泡網捕食,根據式(11)更新個體位置。 (9)判斷是否滿足迭代終止條件,滿足則輸出全局最優解及位置信息,否則進入步驟(3)繼續執行。 MSWOA算法流程圖如圖3所示。 圖3 算法流程圖Fig.3 Algorithm flow chart 本文基于Intel?Core?i7-10750H CPU,2.6 GHz主頻,16 GB內存以及Windows 10(64位)的操作系統對所提出的算法進行仿真實驗。編程軟件為MATLAB R2016a。為驗證MSWOA 算法性能,選取12 個典型基準測試函數(表1),其中F1~F6 表示單峰函數,F7~F10 表示復雜的多峰函數,F11 和F12 表示固定維多峰函數,形態各異的測試函數能有效檢驗算法的優化性能[17]。 表1 基準函數Table 1 Benchmark functions 對所提算法進行三個方面的性能測試:(1)基于相同的種群規模、最大迭代次數及運行次數,在基準測試函數上比較MSWOA、WOA(鯨魚優化算法)、BOA(蝴蝶優化算法)、GWO(灰狼優化算法)、GAS(引力搜索算法)、PSO(粒子群算法)、ABC(人工蜂群算法)的收斂速度和尋優精度;(2)基于不同改進策略下的獨立測試,分析不同策略對算法性能的影響;(3)通過與參考文獻中其他最新改進算法作對比,驗證本文算法仍具有較強的競爭性。 為驗證所提算法與其他優化算法的性能優劣,設定種群規模為30,最大迭代次數為500,各算法獨立運行30 次。采用最優模擬結果的平均值(mean)與標準差(std.dev)作為算法性能評價指標。結果如表2所示。 由表2 可知,以最優值的平均值作為評價指標,在12個測試函數中,MSWOA算法在F1~F10基準函數上的尋優結果均最好;在F11基準函數的尋優中,MSWOA算法比BOA 算法、ABC 算法尋優精度稍差一些但優于其他算法;在F12 基準函數的尋優中,MSWOA 算法僅比BOA 算法尋優精度稍差一些。以最優值的標準差作為算法穩定性的評價標準,在30 次獨立模擬計算中可以看出,本文所提MSWOA算法在F5 中穩定性劣于WOA、BOA、GWO,在F11中穩定性劣于BOA、ABC,在F12 中穩定性僅次于BOA,但整體的穩定性依然是最優的。 表2 MSWOA與其他優化算法的對比結果Table 2 Comparison results of MSWOA and other optimization algorithms 為更直觀地反應本文所提算法的收斂速度及跳出局部最優的能力,各算法收斂曲線如圖4所示。從圖中可看出,本文所提MSWOA 算法對12 個基準函數的尋優過程均最快,可有效節省尋優時間。在對F1、F2、F3、F4、F8、F9、F10 進行尋優計算中,由于本文采用Sobol序列對種群進行初始化,而Sobol 序列可以使種群更均為的分布于解空間中,增加最優解附近種群的分布數量,從而使得所提算法在極少的迭代次數后便找到最優解,從而圖中MSWOA 的算法收斂曲線近乎一條直線。在對F5、F6 函數進行尋優時,可以看到有多處拐點出現,證明此算法跳出局部最優的能力得到了增強。 圖4 算法收斂曲線圖Fig.4 Algorithm convergence curve 本文所采用的改進策略分別為Sobol序列初始化種群(WOA-1)、非線性時變因子(WOA-2)、自適應權值(WOA-3)、柯西變異策略(WOA-4)、隨機性學習策略(WOA-5)。為比較5 種改進策略對MSWOA 算法性能提升的影響程度,采取與3.1節同樣的參數設置,對表1中的12 個基準函數進行優化求解,各改進策略的尋優結果如表3所示。 由表3 可知,在5 種改進策略中,采用Sobol 序列初始化種群(WOA-1)對WOA算法性能改善最為明顯,自適應權值策略(WOA-3)次之。在單峰函數中,隨機性學習策略(WOA-5)對WOA 算法性能的改善優于柯西變異策略(WOA-4),但在多峰函數中,柯西變異策略(WOA-4)的改善效果更好。非線性時變因子策略(WOA-2)相比其他4 個改進策略對算法的改善最小。結合了5 種改進策略的MSWOA 算法比僅采用一種改進策略的WOA算法在大部分函數上均有更優的尋優精度和穩定性。因此,MSWOA算法綜合了5種改進策略的優點,在對測試函數取相同量級的尋優精度情況下,MSWOA具備更快的收斂速度,且對大部分測試函數其尋優精度明顯高于單一改進策略的WOA 算法,從而證明算法采用五種改進策略的合理性及有效性。 表3 不同改進策略下的算法性能對比Table 3 Comparison results of different improved strategies 為比較本文所提MSWOA 優化算法與其他改進鯨魚優化算法的尋優性能,重現文獻[11]所提CWOA算法,并引用文獻[12]中所列舉的各改進算法的實驗結果。采取與3.1節同樣的參數設置,選取單峰函數F1~F5,多峰函數F7~F10 對各算法進行尋優對比如表4所示。 表4 MSWOA與其他改進鯨魚優化算法的性能對比結果Table 4 Comparison results of MSWOA and other improved WOA 由表4 可知,在對單峰函數F1~F5 進行尋優計算時,MSWOA 算法在F1~F4 函數處均取到理論最優值,而其他5 種改進算法,僅有MSWOA1、WOAWC、MSWOA2 在F1 函數處取得理論最優值,WOAWC 和MSWOA2 在F3 函數處取得理論最優值,且MSWOA算法在F5 函數處取得的值更接近最優值。在對多峰函數F7~F10 進行尋優計算時,僅在F9 函數尋優計算中,MSWOA 算法尋優精度與MSWOA1 算法和WOAWC算法一致,劣于MSWOA2算法。因此,本文綜合5種改進策略所提出的MSWOA 算法相比于其他改進WOA算法更具有優勢。 為驗證所提算法在解決實際問題中的優化性能,選取具有12 個參數的水資源需要預測模型進行參數優化,該水資源需要預測模型參數數量較多,對多目標優化問題更具有代表意義。 水資源需要預測是當今水資源分布不均的大背景下,合理把控水資源需求,優化調度水資源分布的基礎。本文針對總用水量與農業生產總值、工業生產總值和人口數的關系,以陜西省2004—2016年的用水量數據為研究基礎(見表5),對文獻[18]提出的線性與指數水資源需求預測模型進行參數估計。該水資源需求預測模型為: 表5 陜西省2004—2016年總用水量、農業生產總值、工業生產總值和人口數數據表Table 5 Total water consumption,agricultural production,industrial production and population of Shaanxi Province from 2004 to 2016 式中,y?為總用水量的預測值;aij為待估參數;x1、x2、x3分別表示農業生產總值、工業生產總值和人口數。為了評估模型參數的優劣,使用真實值與預測值之間的誤差平方和作為該組參數的適應度,公式如下: 式中,X為D維參數變量,D為模型參數個數,l、u為模型參數取值的上下界。 如圖5為MSWOA算法與6種常用優化算法對該水資源需求預測模型各進行30次參數估計得到的適應度值箱線圖,表6 給出了其最優適應度值和平均適應度值。由適應度值計算公式可知,適應度值的大小表示實測值與預測值之間誤差的平方和,同時也表示了算法對模型參數估計的優劣水平,以該值作為算法性能的評價指標,從圖5及表6可以看出,MSWOA算法計算的最優值和平均值均比其余6種算法小,表明算法尋優精度較高。此外,由收斂速度曲線(如圖6)可知,MSWOA算法經多次調整跳出局部最優解,在迭代不到50 次便找到了全局最優值,相比其他算法收斂速度更快。 圖5 MSWOA與其他優化算法各進行30次參數估計的箱線圖Fig.5 Box line diagram of MSWOA and other optimization algorithms with independent operation 30 times 表6 MSWOA與其他優化算法的適應度值對比Table 6 Comparison results of fitness values of MSWOA and other optimization algorithms 圖6 MSWOA算法與其他優化算法收斂曲線圖Fig.6 Convergence curve of MSWOA and other optimization algorithms 針對標準WOA 算法初始種群分布不均、收斂速度較慢、全局搜索能力弱且易陷入局部最優的問題,本文采用Sobol序列初始化種群以在解空間獲得更均勻的初始解分布,通過非線性時變因子和慣性權重策略平衡并提高全局搜索及局部開發能力,并結合隨機性學習策略增加迭代過程中種群的多樣性,提升算法全局尋優能力,同時引入柯西變異策略增強算法跳出局部最優的能力。基于以上改進策略,提出一種混合策略改進的鯨魚優化算法。選取12個基準函數及一個水資源需求預測模型的參數估計進行優化實驗,結果表明,基于混合策略改進的鯨魚優化算法在尋優精度及收斂速度上均有明顯提升。2.4 柯西變異策略


2.5 算法描述

3 實驗結果與分析

3.1 與其他優化算法的性能對比


3.2 不同改進策略對算法性能影響分析

3.3 與其他改進鯨魚優化算法性能對比

4 水資源需求預測模型參數估計
4.1 水資源需求預測模型



4.2 結果分析



5 結論