王文川,楊 斐
(華北水利水電大學水資源學院,河南 鄭州 450046)
暴雨洪水頻繁發生給人們的生命財產造成了嚴重的損失[1]。因此,提高河道洪水演進精度是“四預”研究中“降雨-產流-匯流-演進”規律研究的關鍵環節,對減少洪水對人民生命財產的損失至關重要。馬斯京根模型是河道洪水演進模型中一個常用的數學模型,由于使用方便,在生產實踐中得到了廣泛的應用。然而,在實際應用中,傳統的線性馬斯京根模型無法描述其非線性特征[2]。為此,研究者開始探索如何改進馬斯京根模型[3],以適應復雜的現實環境。2015年Easa等[4]提出了變指數非線性馬斯京根模型(Variable exponent parameters nonlinear Muskingum model,VEP-NMM),它通過引入無量綱入流變量ut,將模型中的指數m賦予了時變性的物理意義。此外,Easa等人[4]還采用廣義梯度進化算法(GRG)對模型進行參數率定,取得了較為理想的效果。然而,隨著模型參數的增加,其參數優選一直是模型應用中的一個研究熱點問題[5-6]。從最初的試錯法和最小二乘法發展到后來的智能優化算法,越來越多學者應用各種優化算法來優化馬斯京根模型的參數[7],例如遺傳算法[8]、差分進化算法[9]以及隨機分形搜索算法[10]等。雖然智能優化算法在處理復雜非線性問題上的優越性已經被證明[7,11],但仍然存在著演算精度不高、易陷入局部最優解等問題。因此,仍需要探索更為高效的算法來求解VEP-NMM的參數優化問題。
基于此,本文提出了基于Tent混沌映射策略及黃金分割系數改進的哈里斯鷹優化算法(TGHHO),并將其應用于VEP-NMM的參數優化,構建TGHHO-VEP-NMM河道洪水演進模型。哈里斯鷹優化算法[12](Harris Hawks Optimizer,HHO)在處理非線性優化問題時表現出了良好的性能,但存在容易陷入局部最優解,且收斂速度慢的問題[13-15]。為了進一步提高HHO的優化效率,本文引入了Tent混沌映射策略及黃金分割系數,以增加算法的種群多樣性和搜索效率,從而提高算法的全局搜索能力。將提出的TGHHO算法與蝴蝶優化算法[16](Butterfly Optimization Algorithm,BOA)、灰狼優化算法[17](Grey Wolf Optimizer,GWO)及哈里斯鷹[12](Harris Hawks Optimizer,HHO)優化算法在4個標準的測試函數上進行對比測試,然后在兩個典型河道洪水驗算問題:Wilson[18]數據以及Viessman和Lewis[19]數據上測試了其性能。結果表明,本文所提出的TGHHO算法能有效提高變指數非線性馬斯京根模型演算精度,為變指數非線馬斯京根模型參數優化問題提供了一種新的求解方法。
變指數非線性馬斯京根模型[4]的建模過程如下:
(1)
St=K[xIt+(1-x)Qt]β(ut)
(2)
式中,St、It、Qt-河段時間t內的總槽蓄量、入流量、出流量;k-槽蓄系數;x-流量比重因子。
該模型與非線性馬斯京根模型[3]的區別在于本模型的指數β(ut)是一個連續型指數方程,在計算時段內均與流量It有關,具體公式為:
β(ut)=a+be-ecut
(3)
(4)
式中,a、b、c-待優化求解的參數;Imax-河道最大入流量。
初始化參數后,可得到各時段的β(ut),假設初始演算出流量等于入流量,即Q0=I0,初始河道槽蓄量的計算公式為:
S0=K[xI0+(1-x)Q0]β(u0)
(5)
β(u0)=a+be-ecu0
(6)
河道槽蓄量第i時段變化率ki的計算公式為:
(7)
下一個時段的槽蓄量、出流量的計算公式分別為:
St+1=St+Δtki
(8)
(9)
為使演算流量過程盡可能準確,一般選取實測出流量和演算出流量的誤差平方和最小作為模型參數優化目標,其目標函數為:
(10)

哈里斯鷹優化算法(HHO)是由Heidari et al等人[12]在2019年提出的,模仿哈里斯鷹捕食獵物的真實情況,用數學公式來模擬哈里斯鷹在不同機制下捕捉獵物的策略。在HHO中,哈里斯鷹是候選解,獵物(兔子)隨迭代逼近最優解。可分為兩個階段:勘探階段和開發階段。由能量E的大小控制轉換,當|E|≥1時,表示HHO算法處于探索階段,相反,當逃逸能量|E|<1時,算法處于開采階段。
在探索階段,有兩種更新哈里斯鷹位置的方法:一種是根據鷹群其他成員和獵物的位置描述哈里斯鷹的棲點,另一種是選擇描述哈里斯鷹隨機棲息的樹木。對于這兩種方法,都是由一個從(0,1)均勻分布的隨機數字中選擇q,因此鷹的位置更新如下式所示[12]:
(11)
式中,X(t+1)-第t+1次迭代時哈里斯鷹的位置;Xrabbit(t)-第t次迭代時的獵物;r1、r2、r3、r4和q-(0-1)之間的隨機數;在每次迭代中更新中,LB和UB表示變量的上下界;Xrand(t)-從當前種群中隨機選擇的一只鷹;Xm(t)-當前鷹種群的平均位置。鷹的平均位置如下:
(12)
式中,Xi(t)-第t次迭代時第i個鷹的位置;N-哈里斯鷹的總數。
在這個階段,哈里斯鷹根據全局探索階段的觀察逮捕預期獵物,獵物則試圖逃離危險。根據哈里斯鷹的追逐策略和獵物的逃跑行為,鷹有4種不同的誘捕策略[15,20]。這些策略的選擇取決于獵物的逃跑能量,以及獵物是否成功逃脫的概率。假設概率為參數u,其為從0到1的均勻分布隨機變量中抽取的樣本。當u<0.5時,獵物逃跑成功。當u≥0.5時,獵物逃跑失敗。另外,引入參數E模擬哈里斯鷹的圍攻策略。所有的策略都將在接下來的論文中描述。
Step 1:軟圍攻階段。當|E|≥0.5時,執行軟圍攻。在這個階段,兔子有足夠的能量,逃跑的概率很高,哈里斯鷹選擇逐漸消耗獵物的能量,然后在最佳的位置逮捕兔子。其位置更新公式為:
X(t+1)=Xrabbit(t)-X(t)-E|JXrabbit(t)-X(t)|
(13)
式中,ΔX(t)-迭代時哈里斯鷹與獵物的位置之差;J=2(1-r5)-獵物逃脫圍捕過程中的隨機跳躍力量;r5-區間(0,1)的隨機數。
Step 2:硬圍攻階段。當|E|≥0.5且u≥0.5時,進行硬圍攻階段。在這個階段,兔子已筋疲力盡,逃跑的能量很低。然而兔子仍可以成功逃跑,鷹的位置更新公式為:
Xt+1=Xrabbit,t-E|Xrabbit(t)-X(t)|
(14)
Step 3:加速俯沖式軟圍攻。當|E|≥0.5,u<0.5時,發生遞進式的快速俯沖的軟包圍。在這種情況下,兔子有足夠的能量逃脫攻擊,而鷹仍然構建了一個軟圍攻。鷹的位置更新公式為:
Y=Xrabbit(t)-E|JXrabbit-X(t)|
(15)
隨即,鷹將比較這一行為的結果與之前的俯沖結果。如果結果不好,哈里斯鷹就會開始進行不規則的、突然的和快速的跳水。鷹的位置更新函數為:
Z=Y+S×LF(D)
(16)
式中,D-待優化問題的維度;S-大小為1×D的隨機向量;LF-萊維飛行函數;u,v-(0,1)內的隨機值;β-設置為1.5的默認常量,其計算公式為:
(17)
在這種情況下,鷹的更新公式為:
(18)
式中,Y和Z由式(15)和式(16)計算;F-適應度函數。
Step 4:加速俯沖式硬圍攻。當|E|<0.5,u<0.5時,發生遞進式的快速俯沖的硬圍攻。在這種情況下,兔子的能量太低而無法逃脫攻擊,同時鷹進行猛烈的圍攻,鷹的更新如公式為:
(19)
式中,Y=Xrabbit(t)-E|JXrabbit(t)-Xm(t)|;Z=Y+S×LF(D);Xm(t)-鷹的平均位置,通過式(12)可得。
在HHO算法中,采用隨機初始化種群的方法導致哈里斯鷹鷹群樣本過少,多樣性不足,影響算法的參數尋優能力和全局尋優能力。針對此問題,本文引入了Tent混沌映射[21]機制來增加種群的不確定性、不可重復性及不可預測性。Tent混沌映射是一個具有均勻分布函數和良好相關性的混沌映射,且在其參數范圍內系統都處于混沌狀態。該映射公式為:
(20)
將哈里斯鷹種群使用混沌映射機制初始化后,再生成混沌種群的反向解。然后,將哈里斯鷹種群及其反向解按適應度從大到小排序。最終,選擇前1/2的哈里斯鷹個體作為種群的新一代個體,從而提高了HHO算法的全局尋優能力。反向種群的計算公式為:
Xf=(ub+lb)-X
(21)
混沌映射策略為全局優化奠定基礎。再利用黃金正弦算法改進HHO算法的Step 1和Step 2,使哈里斯鷹以黃金正弦方式移動逮捕獵物,在每次的迭代過程中,普通的個體會與最優個體交換信息,充分吸收與最佳個體位置差距的信息。另外,黃金分割系數減小鷹群捕捉兔子的搜索范圍,引導個體在縮小后的范圍內盡快接近最終值。此過程優化了HHO算法的尋優方式,從而提高算法的開發能力和尋優性能。其位置更新公式為:
Xt+1=Xt×|sin(R1)|+R2×sin(R1)×
|x1×Xrabbit,t-x2×Xt|
(22)
為了驗證TGHHO算法的性能。選取4個標準測試函數,與近年來比較新穎的蝴蝶優化算法[16](BOA)、灰狼優化算法[17](GWO)以及哈里斯鷹優化算法[12](HHO)進行仿真對比實驗。4個測試函數的理論最優值都為0。算法的參數統一設置為:種群規模N=30,問題維數D=30,最大迭代次數T=500。4組測試函數的基本信息見表1,其中F1、F2為單峰函數,F3、F4為多峰函數,分別測試算法的局部開采性能和全局探索性能等。

表1 測試函數詳細信息
仿真測試結果見表2所列,從表可以看出改進后的算法在4個測試函數中的尋優能力最強,明顯優于其他3種算法。函數F1、F2為單模態函數,改進后的算法可以直接搜索到函數的最優值;F3、F4屬于多模態函數,改進的算法在F3函數中也可以直接尋找到其最優值0,對于函數F4,其尋優效果雖未達到最優值0,但相比其他智能優化算法其收斂精度也達到最佳。且在測試函數中,HHO算法其標準差值分別為2.02×10-75、5.61×10-50、1.26×10-49、8.01×10-5,而TGHHO算法標準差值分別為0、0、0、6.19×10-7。說明TGHHO算法不僅尋優效果高于其他算法且其穩定性也有所提高,TGHHO算法在一定程度上提高了HHO算法的尋優能力和收斂精度。為了直觀展示TGHHO算法的尋優速度和性能,如圖1所示給出測試函數的收斂曲線。

圖1 函數圖像及算法收斂曲線圖

表2 優化算法測試結果對比
從圖1可以直觀地看出,TGHHO算法的收斂精度和速度完全優于其他3種算法,并且其收斂速度也相對較快。由其收斂曲線得知,改進后的算法在函數F1、F2、F3中,收斂精度直接達到最優且收斂速度也大幅提高。在函數F4中改進后的算法較原始算法其收斂精度和收斂速度也有所提升,并且TGHHO算法收斂曲線出現多個拐點,說明改進后的算法更易跳出局部尋優從而達到理想的全局尋優能力。
選取兩個著名的河道洪水演進計算實例:一是1974年Wilson給出的單峰河道洪水數據[18];二是2003年Viessman和Lewis給出的雙峰河道洪水數據[19]。以最小化實測流量與演算流量的誤差平方和(SSQ)最小作為目標函數,采用提出的TGHHO算法對變指數非線性馬斯京根模型進行優化求解,計算結果見表3。在表3中也給出了幾個代表性文獻對三參數非線性馬斯京根模型的研究結果。從表3中可以得出,對于實例1,相對于GRG和HHO算法,提出的TGHHO算法其目標函數值分別降低了27.01%和33.28%。相對于三參數馬斯京根模型的MHBMO[24]優化方法,其目標函數值降低了66.97%。對于實例2,使用提出的TGHHO算法比使用HHO算法,其目標函數值降低了5.05%;比MHBMO[22]算法,其SSQ值降低了13.9%。

表3 各方法參數率定結果對比
應用TGHHO與HHO算法計算實例1和2的收斂曲線和洪水演算過程對比如圖2-3。從圖2-3中可以看出,提出的TGHHO方法的收斂速度和精度優于HHO算法。說明本文所提出的TGHHO優化算法在馬斯京根河道洪水演進模型參數尋優中具有較高的適用性。

圖2 單峰實例收斂曲線和洪水演算過程比較圖

圖3 雙峰實例收斂曲線和洪水演算過程比較圖
本文提出了一種基于Tent混沌映射策略及黃金分割系數改進的哈里斯鷹優化算法(TGHHO),通過引入Tent混沌映射策略和黃金正弦分割系數,混沌映射策略擴大了哈里斯鷹種群數量從而提升了鷹群的多樣性,在圍捕過程中,加入黃金正弦算法中的黃金分割系數,從而減小鷹群捕捉兔子的搜索范圍,提高算法的尋優能力。通過兩個單峰兩個多峰測試函數結果表明,TGHHO較HHO在收斂精度和收斂速度上都有明顯提高。針對復雜非線性馬斯京根模型參數優選困難的問題,使用TGHHO算法進行參數優選,從而構建了一種TGHHO-VEP-NMM河道洪水演進新模型。通過兩個河道洪水演算實例,對不同算法優選的結果進行比較,驗證了本文提出的TGHHO算法優于其他算法,說明提出的TGHHO在優化復雜非線性馬斯京根模型參數時具有很好的推廣應用價值。未來,可以進一步探究TGHHO算法在其他優化問題中的應用,并進一步改進TGHHO算法的性能;同時,可以進一步研究TGHHO-VEP-NMM河道洪水演進模型在不同地區的適用性。