王文川,楊 斐
(華北水利水電大學(xué)水資源學(xué)院,河南 鄭州 450046)
暴雨洪水頻繁發(fā)生給人們的生命財(cái)產(chǎn)造成了嚴(yán)重的損失[1]。因此,提高河道洪水演進(jìn)精度是“四預(yù)”研究中“降雨-產(chǎn)流-匯流-演進(jìn)”規(guī)律研究的關(guān)鍵環(huán)節(jié),對(duì)減少洪水對(duì)人民生命財(cái)產(chǎn)的損失至關(guān)重要。馬斯京根模型是河道洪水演進(jìn)模型中一個(gè)常用的數(shù)學(xué)模型,由于使用方便,在生產(chǎn)實(shí)踐中得到了廣泛的應(yīng)用。然而,在實(shí)際應(yīng)用中,傳統(tǒng)的線性馬斯京根模型無法描述其非線性特征[2]。為此,研究者開始探索如何改進(jìn)馬斯京根模型[3],以適應(yīng)復(fù)雜的現(xiàn)實(shí)環(huán)境。2015年Easa等[4]提出了變指數(shù)非線性馬斯京根模型(Variable exponent parameters nonlinear Muskingum model,VEP-NMM),它通過引入無量綱入流變量ut,將模型中的指數(shù)m賦予了時(shí)變性的物理意義。此外,Easa等人[4]還采用廣義梯度進(jìn)化算法(GRG)對(duì)模型進(jìn)行參數(shù)率定,取得了較為理想的效果。然而,隨著模型參數(shù)的增加,其參數(shù)優(yōu)選一直是模型應(yīng)用中的一個(gè)研究熱點(diǎn)問題[5-6]。從最初的試錯(cuò)法和最小二乘法發(fā)展到后來的智能優(yōu)化算法,越來越多學(xué)者應(yīng)用各種優(yōu)化算法來優(yōu)化馬斯京根模型的參數(shù)[7],例如遺傳算法[8]、差分進(jìn)化算法[9]以及隨機(jī)分形搜索算法[10]等。雖然智能優(yōu)化算法在處理復(fù)雜非線性問題上的優(yōu)越性已經(jīng)被證明[7,11],但仍然存在著演算精度不高、易陷入局部最優(yōu)解等問題。因此,仍需要探索更為高效的算法來求解VEP-NMM的參數(shù)優(yōu)化問題。
基于此,本文提出了基于Tent混沌映射策略及黃金分割系數(shù)改進(jìn)的哈里斯鷹優(yōu)化算法(TGHHO),并將其應(yīng)用于VEP-NMM的參數(shù)優(yōu)化,構(gòu)建TGHHO-VEP-NMM河道洪水演進(jìn)模型。哈里斯鷹優(yōu)化算法[12](Harris Hawks Optimizer,HHO)在處理非線性優(yōu)化問題時(shí)表現(xiàn)出了良好的性能,但存在容易陷入局部最優(yōu)解,且收斂速度慢的問題[13-15]。為了進(jìn)一步提高HHO的優(yōu)化效率,本文引入了Tent混沌映射策略及黃金分割系數(shù),以增加算法的種群多樣性和搜索效率,從而提高算法的全局搜索能力。將提出的TGHHO算法與蝴蝶優(yōu)化算法[16](Butterfly Optimization Algorithm,BOA)、灰狼優(yōu)化算法[17](Grey Wolf Optimizer,GWO)及哈里斯鷹[12](Harris Hawks Optimizer,HHO)優(yōu)化算法在4個(gè)標(biāo)準(zhǔn)的測(cè)試函數(shù)上進(jìn)行對(duì)比測(cè)試,然后在兩個(gè)典型河道洪水驗(yàn)算問題:Wilson[18]數(shù)據(jù)以及Viessman和Lewis[19]數(shù)據(jù)上測(cè)試了其性能。結(jié)果表明,本文所提出的TGHHO算法能有效提高變指數(shù)非線性馬斯京根模型演算精度,為變指數(shù)非線馬斯京根模型參數(shù)優(yōu)化問題提供了一種新的求解方法。
變指數(shù)非線性馬斯京根模型[4]的建模過程如下:
(1)
St=K[xIt+(1-x)Qt]β(ut)
(2)
式中,St、It、Qt-河段時(shí)間t內(nèi)的總槽蓄量、入流量、出流量;k-槽蓄系數(shù);x-流量比重因子。
該模型與非線性馬斯京根模型[3]的區(qū)別在于本模型的指數(shù)β(ut)是一個(gè)連續(xù)型指數(shù)方程,在計(jì)算時(shí)段內(nèi)均與流量It有關(guān),具體公式為:
β(ut)=a+be-ecut
(3)
(4)
式中,a、b、c-待優(yōu)化求解的參數(shù);Imax-河道最大入流量。
初始化參數(shù)后,可得到各時(shí)段的β(ut),假設(shè)初始演算出流量等于入流量,即Q0=I0,初始河道槽蓄量的計(jì)算公式為:
S0=K[xI0+(1-x)Q0]β(u0)
(5)
β(u0)=a+be-ecu0
(6)
河道槽蓄量第i時(shí)段變化率ki的計(jì)算公式為:
(7)
下一個(gè)時(shí)段的槽蓄量、出流量的計(jì)算公式分別為:
St+1=St+Δtki
(8)
(9)
為使演算流量過程盡可能準(zhǔn)確,一般選取實(shí)測(cè)出流量和演算出流量的誤差平方和最小作為模型參數(shù)優(yōu)化目標(biāo),其目標(biāo)函數(shù)為:
(10)
哈里斯鷹優(yōu)化算法(HHO)是由Heidari et al等人[12]在2019年提出的,模仿哈里斯鷹捕食獵物的真實(shí)情況,用數(shù)學(xué)公式來模擬哈里斯鷹在不同機(jī)制下捕捉獵物的策略。在HHO中,哈里斯鷹是候選解,獵物(兔子)隨迭代逼近最優(yōu)解??煞譃閮蓚€(gè)階段:勘探階段和開發(fā)階段。由能量E的大小控制轉(zhuǎn)換,當(dāng)|E|≥1時(shí),表示HHO算法處于探索階段,相反,當(dāng)逃逸能量|E|<1時(shí),算法處于開采階段。
在探索階段,有兩種更新哈里斯鷹位置的方法:一種是根據(jù)鷹群其他成員和獵物的位置描述哈里斯鷹的棲點(diǎn),另一種是選擇描述哈里斯鷹隨機(jī)棲息的樹木。對(duì)于這兩種方法,都是由一個(gè)從(0,1)均勻分布的隨機(jī)數(shù)字中選擇q,因此鷹的位置更新如下式所示[12]:
(11)
式中,X(t+1)-第t+1次迭代時(shí)哈里斯鷹的位置;Xrabbit(t)-第t次迭代時(shí)的獵物;r1、r2、r3、r4和q-(0-1)之間的隨機(jī)數(shù);在每次迭代中更新中,LB和UB表示變量的上下界;Xrand(t)-從當(dāng)前種群中隨機(jī)選擇的一只鷹;Xm(t)-當(dāng)前鷹種群的平均位置。鷹的平均位置如下:
(12)
式中,Xi(t)-第t次迭代時(shí)第i個(gè)鷹的位置;N-哈里斯鷹的總數(shù)。
在這個(gè)階段,哈里斯鷹根據(jù)全局探索階段的觀察逮捕預(yù)期獵物,獵物則試圖逃離危險(xiǎn)。根據(jù)哈里斯鷹的追逐策略和獵物的逃跑行為,鷹有4種不同的誘捕策略[15,20]。這些策略的選擇取決于獵物的逃跑能量,以及獵物是否成功逃脫的概率。假設(shè)概率為參數(shù)u,其為從0到1的均勻分布隨機(jī)變量中抽取的樣本。當(dāng)u<0.5時(shí),獵物逃跑成功。當(dāng)u≥0.5時(shí),獵物逃跑失敗。另外,引入?yún)?shù)E模擬哈里斯鷹的圍攻策略。所有的策略都將在接下來的論文中描述。
Step 1:軟圍攻階段。當(dāng)|E|≥0.5時(shí),執(zhí)行軟圍攻。在這個(gè)階段,兔子有足夠的能量,逃跑的概率很高,哈里斯鷹選擇逐漸消耗獵物的能量,然后在最佳的位置逮捕兔子。其位置更新公式為:
X(t+1)=Xrabbit(t)-X(t)-E|JXrabbit(t)-X(t)|
(13)
式中,ΔX(t)-迭代時(shí)哈里斯鷹與獵物的位置之差;J=2(1-r5)-獵物逃脫圍捕過程中的隨機(jī)跳躍力量;r5-區(qū)間(0,1)的隨機(jī)數(shù)。
Step 2:硬圍攻階段。當(dāng)|E|≥0.5且u≥0.5時(shí),進(jìn)行硬圍攻階段。在這個(gè)階段,兔子已筋疲力盡,逃跑的能量很低。然而兔子仍可以成功逃跑,鷹的位置更新公式為:
Xt+1=Xrabbit,t-E|Xrabbit(t)-X(t)|
(14)
Step 3:加速俯沖式軟圍攻。當(dāng)|E|≥0.5,u<0.5時(shí),發(fā)生遞進(jìn)式的快速俯沖的軟包圍。在這種情況下,兔子有足夠的能量逃脫攻擊,而鷹仍然構(gòu)建了一個(gè)軟圍攻。鷹的位置更新公式為:
Y=Xrabbit(t)-E|JXrabbit-X(t)|
(15)
隨即,鷹將比較這一行為的結(jié)果與之前的俯沖結(jié)果。如果結(jié)果不好,哈里斯鷹就會(huì)開始進(jìn)行不規(guī)則的、突然的和快速的跳水。鷹的位置更新函數(shù)為:
Z=Y+S×LF(D)
(16)
式中,D-待優(yōu)化問題的維度;S-大小為1×D的隨機(jī)向量;LF-萊維飛行函數(shù);u,v-(0,1)內(nèi)的隨機(jī)值;β-設(shè)置為1.5的默認(rèn)常量,其計(jì)算公式為:
(17)
在這種情況下,鷹的更新公式為:
(18)
式中,Y和Z由式(15)和式(16)計(jì)算;F-適應(yīng)度函數(shù)。
Step 4:加速俯沖式硬圍攻。當(dāng)|E|<0.5,u<0.5時(shí),發(fā)生遞進(jìn)式的快速俯沖的硬圍攻。在這種情況下,兔子的能量太低而無法逃脫攻擊,同時(shí)鷹進(jìn)行猛烈的圍攻,鷹的更新如公式為:
(19)
式中,Y=Xrabbit(t)-E|JXrabbit(t)-Xm(t)|;Z=Y+S×LF(D);Xm(t)-鷹的平均位置,通過式(12)可得。
在HHO算法中,采用隨機(jī)初始化種群的方法導(dǎo)致哈里斯鷹鷹群樣本過少,多樣性不足,影響算法的參數(shù)尋優(yōu)能力和全局尋優(yōu)能力。針對(duì)此問題,本文引入了Tent混沌映射[21]機(jī)制來增加種群的不確定性、不可重復(fù)性及不可預(yù)測(cè)性。Tent混沌映射是一個(gè)具有均勻分布函數(shù)和良好相關(guān)性的混沌映射,且在其參數(shù)范圍內(nèi)系統(tǒng)都處于混沌狀態(tài)。該映射公式為:
(20)
將哈里斯鷹種群使用混沌映射機(jī)制初始化后,再生成混沌種群的反向解。然后,將哈里斯鷹種群及其反向解按適應(yīng)度從大到小排序。最終,選擇前1/2的哈里斯鷹個(gè)體作為種群的新一代個(gè)體,從而提高了HHO算法的全局尋優(yōu)能力。反向種群的計(jì)算公式為:
Xf=(ub+lb)-X
(21)
混沌映射策略為全局優(yōu)化奠定基礎(chǔ)。再利用黃金正弦算法改進(jìn)HHO算法的Step 1和Step 2,使哈里斯鷹以黃金正弦方式移動(dòng)逮捕獵物,在每次的迭代過程中,普通的個(gè)體會(huì)與最優(yōu)個(gè)體交換信息,充分吸收與最佳個(gè)體位置差距的信息。另外,黃金分割系數(shù)減小鷹群捕捉兔子的搜索范圍,引導(dǎo)個(gè)體在縮小后的范圍內(nèi)盡快接近最終值。此過程優(yōu)化了HHO算法的尋優(yōu)方式,從而提高算法的開發(fā)能力和尋優(yōu)性能。其位置更新公式為:
Xt+1=Xt×|sin(R1)|+R2×sin(R1)×
|x1×Xrabbit,t-x2×Xt|
(22)
為了驗(yàn)證TGHHO算法的性能。選取4個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù),與近年來比較新穎的蝴蝶優(yōu)化算法[16](BOA)、灰狼優(yōu)化算法[17](GWO)以及哈里斯鷹優(yōu)化算法[12](HHO)進(jìn)行仿真對(duì)比實(shí)驗(yàn)。4個(gè)測(cè)試函數(shù)的理論最優(yōu)值都為0。算法的參數(shù)統(tǒng)一設(shè)置為:種群規(guī)模N=30,問題維數(shù)D=30,最大迭代次數(shù)T=500。4組測(cè)試函數(shù)的基本信息見表1,其中F1、F2為單峰函數(shù),F(xiàn)3、F4為多峰函數(shù),分別測(cè)試算法的局部開采性能和全局探索性能等。
表1 測(cè)試函數(shù)詳細(xì)信息
仿真測(cè)試結(jié)果見表2所列,從表可以看出改進(jìn)后的算法在4個(gè)測(cè)試函數(shù)中的尋優(yōu)能力最強(qiáng),明顯優(yōu)于其他3種算法。函數(shù)F1、F2為單模態(tài)函數(shù),改進(jìn)后的算法可以直接搜索到函數(shù)的最優(yōu)值;F3、F4屬于多模態(tài)函數(shù),改進(jìn)的算法在F3函數(shù)中也可以直接尋找到其最優(yōu)值0,對(duì)于函數(shù)F4,其尋優(yōu)效果雖未達(dá)到最優(yōu)值0,但相比其他智能優(yōu)化算法其收斂精度也達(dá)到最佳。且在測(cè)試函數(shù)中,HHO算法其標(biāo)準(zhǔn)差值分別為2.02×10-75、5.61×10-50、1.26×10-49、8.01×10-5,而TGHHO算法標(biāo)準(zhǔn)差值分別為0、0、0、6.19×10-7。說明TGHHO算法不僅尋優(yōu)效果高于其他算法且其穩(wěn)定性也有所提高,TGHHO算法在一定程度上提高了HHO算法的尋優(yōu)能力和收斂精度。為了直觀展示TGHHO算法的尋優(yōu)速度和性能,如圖1所示給出測(cè)試函數(shù)的收斂曲線。
圖1 函數(shù)圖像及算法收斂曲線圖
表2 優(yōu)化算法測(cè)試結(jié)果對(duì)比
從圖1可以直觀地看出,TGHHO算法的收斂精度和速度完全優(yōu)于其他3種算法,并且其收斂速度也相對(duì)較快。由其收斂曲線得知,改進(jìn)后的算法在函數(shù)F1、F2、F3中,收斂精度直接達(dá)到最優(yōu)且收斂速度也大幅提高。在函數(shù)F4中改進(jìn)后的算法較原始算法其收斂精度和收斂速度也有所提升,并且TGHHO算法收斂曲線出現(xiàn)多個(gè)拐點(diǎn),說明改進(jìn)后的算法更易跳出局部尋優(yōu)從而達(dá)到理想的全局尋優(yōu)能力。
選取兩個(gè)著名的河道洪水演進(jìn)計(jì)算實(shí)例:一是1974年Wilson給出的單峰河道洪水?dāng)?shù)據(jù)[18];二是2003年Viessman和Lewis給出的雙峰河道洪水?dāng)?shù)據(jù)[19]。以最小化實(shí)測(cè)流量與演算流量的誤差平方和(SSQ)最小作為目標(biāo)函數(shù),采用提出的TGHHO算法對(duì)變指數(shù)非線性馬斯京根模型進(jìn)行優(yōu)化求解,計(jì)算結(jié)果見表3。在表3中也給出了幾個(gè)代表性文獻(xiàn)對(duì)三參數(shù)非線性馬斯京根模型的研究結(jié)果。從表3中可以得出,對(duì)于實(shí)例1,相對(duì)于GRG和HHO算法,提出的TGHHO算法其目標(biāo)函數(shù)值分別降低了27.01%和33.28%。相對(duì)于三參數(shù)馬斯京根模型的MHBMO[24]優(yōu)化方法,其目標(biāo)函數(shù)值降低了66.97%。對(duì)于實(shí)例2,使用提出的TGHHO算法比使用HHO算法,其目標(biāo)函數(shù)值降低了5.05%;比MHBMO[22]算法,其SSQ值降低了13.9%。
表3 各方法參數(shù)率定結(jié)果對(duì)比
應(yīng)用TGHHO與HHO算法計(jì)算實(shí)例1和2的收斂曲線和洪水演算過程對(duì)比如圖2-3。從圖2-3中可以看出,提出的TGHHO方法的收斂速度和精度優(yōu)于HHO算法。說明本文所提出的TGHHO優(yōu)化算法在馬斯京根河道洪水演進(jìn)模型參數(shù)尋優(yōu)中具有較高的適用性。
圖2 單峰實(shí)例收斂曲線和洪水演算過程比較圖
圖3 雙峰實(shí)例收斂曲線和洪水演算過程比較圖
本文提出了一種基于Tent混沌映射策略及黃金分割系數(shù)改進(jìn)的哈里斯鷹優(yōu)化算法(TGHHO),通過引入Tent混沌映射策略和黃金正弦分割系數(shù),混沌映射策略擴(kuò)大了哈里斯鷹種群數(shù)量從而提升了鷹群的多樣性,在圍捕過程中,加入黃金正弦算法中的黃金分割系數(shù),從而減小鷹群捕捉兔子的搜索范圍,提高算法的尋優(yōu)能力。通過兩個(gè)單峰兩個(gè)多峰測(cè)試函數(shù)結(jié)果表明,TGHHO較HHO在收斂精度和收斂速度上都有明顯提高。針對(duì)復(fù)雜非線性馬斯京根模型參數(shù)優(yōu)選困難的問題,使用TGHHO算法進(jìn)行參數(shù)優(yōu)選,從而構(gòu)建了一種TGHHO-VEP-NMM河道洪水演進(jìn)新模型。通過兩個(gè)河道洪水演算實(shí)例,對(duì)不同算法優(yōu)選的結(jié)果進(jìn)行比較,驗(yàn)證了本文提出的TGHHO算法優(yōu)于其他算法,說明提出的TGHHO在優(yōu)化復(fù)雜非線性馬斯京根模型參數(shù)時(shí)具有很好的推廣應(yīng)用價(jià)值。未來,可以進(jìn)一步探究TGHHO算法在其他優(yōu)化問題中的應(yīng)用,并進(jìn)一步改進(jìn)TGHHO算法的性能;同時(shí),可以進(jìn)一步研究TGHHO-VEP-NMM河道洪水演進(jìn)模型在不同地區(qū)的適用性。