陳海濤 趙志杰
摘要:馬斯京根模型在河道洪水演算中發(fā)揮著重要作用,其演算精度在于參數(shù)的優(yōu)選。針對(duì)目前馬斯京根參數(shù)率定中存在的求解復(fù)雜、精度不高等問(wèn)題,提出利用哈里斯鷹算法對(duì)其參數(shù)進(jìn)行優(yōu)化,這種方法具有廣泛的全局搜索能力,且需要調(diào)節(jié)的參數(shù)較少。以黃河支流洛河為研究對(duì)象,利用廣義非線性馬斯京根模型對(duì)宜陽(yáng)—白馬寺段的河道進(jìn)行洪水演算,且分別用哈里斯鷹算法、粒子群算法和蟻群算法對(duì)其參數(shù)進(jìn)行優(yōu)化。結(jié)果表明,基于哈里斯鷹算法的廣義非線性馬斯京根模型在洛河宜陽(yáng)—白馬寺段的演算精度較高,其Min.SSD為1 237,洪峰誤差DPO僅為5,均優(yōu)于粒子群算法和蟻群算法優(yōu)化后的結(jié)果,其成果適合應(yīng)用于洛河宜陽(yáng)—白馬寺段的洪水預(yù)報(bào)工作。
關(guān)鍵詞:洪水預(yù)報(bào);廣義非線性馬斯京根模型;哈里斯鷹算法;參數(shù)率定
中圖分類號(hào):TV21文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1001-9235(2024)02-0060-09
Application of Harris Hawks Optimization Algorithm in Optimization of Generalized Nonlinear Muskingum Parameters
——A Case Study of the Luohe River
CHEN Haitao,ZHAO Zhijie*
(College of Water Resources,North China University of Water Resources and Electric Power,Zhengzhou 450046,China)
Abstract:The Muskingum model plays an important role in river flood simulation,and its simulation accuracy relies on the optimal selection of parameters.To address the current challenges in parameter calibration for the Muskingum model,such as complex solution processes and low accuracy,the use of the Harris Hawks optimization (HHO) algorithm was proposed to optimize its parameters.HHO algorithm has a wide range of global search capabilities,with fewer parameters to be adjusted.Taking Luohe River,a tributary of the Yellow River,as the research object,the generalized nonlinear Muskingum model was used to simulate the flood in the Yiyang-Baimasi section of the river.The parameters were optimized by employing the HHO algorithm,particle swarm optimization (PSO) algorithm,and ant colony optimization (ACO) algorithm,respectively.The results show that the generalized nonlinear Muskingum model based on the HHO algorithm achieved high simulation accuracy in the Yiyang-Baimasi section of the Luohe River,with a Min.SSD of 1 237 and the flood peak error (DPO) of only 5,outperforming those obtained through optimization using PSO algorithm and ACO algorithm.The results are suitable for application in flood forecasting in the Yiyang-Baimasi section of the Luohe River.
Keywords:flood forecasting;generalized nonlinear Muskingum model;Harris Hawks optimization (HHO) algorithm;parameter calibration
自古以來(lái),洪水災(zāi)害一直困擾著人們,導(dǎo)致群眾生命財(cái)產(chǎn)安全受到嚴(yán)重影響,為應(yīng)對(duì)洪澇災(zāi)害帶來(lái)的不利效應(yīng),人們采取了大量的措施進(jìn)行防治,通常包括工程措施和非工程措施,工程措施主要包括修建堤壩、水庫(kù),治理河道等;非工程措施主要有洪水預(yù)報(bào)、洪水調(diào)度、洪水警報(bào)等[1]。洪水預(yù)報(bào)中最重要的工作是河道洪水的演算,其方法主要有:馬斯京根法、特征河長(zhǎng)法、經(jīng)驗(yàn)槽蓄曲線法和一、二維水動(dòng)力模型分析法等[2],其中馬斯京根法是最為常用的一種方法。
馬斯京根模型由McCarthy在1938年提出,以首次應(yīng)用于美國(guó)的馬斯京根河而聞名。馬斯京根法是計(jì)算河道流量演算最常用的水文學(xué)方法,雖然該方法簡(jiǎn)單,卻擁有一定的實(shí)用價(jià)值,至今都被廣泛應(yīng)用。如Saeed等[3]利用三參數(shù)馬斯京根模型對(duì)Wilson洪水進(jìn)行了演算;LING等[4]利用馬斯京根模型對(duì)1982年10月的Wyre River洪水、1960年12月和1969年1月的Wyre River洪水進(jìn)行了演算;黃興春等[5]利用馬斯京根模型對(duì)瀘州、赤水和朱沱3站之間的河道進(jìn)行了流量演算。
用馬斯京根模型來(lái)進(jìn)行河道流量演算的精度取決于對(duì)其參數(shù)的估計(jì),這也是該方法的主要難點(diǎn)[6]。以前常用的方法是試算法、矩法、最小面積法和最小二乘法等[7],但這些方法計(jì)算繁瑣,精確度不高,因而許多研究者開(kāi)始采用智能算法[8]對(duì)其參數(shù)進(jìn)行優(yōu)化。如崔東文等[9]利用MFO算法對(duì)馬斯京根模型參數(shù)進(jìn)行優(yōu)化,獲得比其他文獻(xiàn)中相關(guān)研究更為精準(zhǔn)的洪水?dāng)M合過(guò)程;張昊等[10]在計(jì)算馬斯京根模型參數(shù)時(shí),對(duì)其中的流量比重系數(shù)采用SCE-UA算法進(jìn)行了優(yōu)化,相較于其他傳統(tǒng)的方法,該算法計(jì)算出來(lái)的參數(shù)其結(jié)果更優(yōu),為精確估算考慮支流匯入的馬斯京根模型參數(shù)演算提供了一種很有效實(shí)用的方法,使得模型求參過(guò)程變得更加優(yōu)越和簡(jiǎn)單化;歐陽(yáng)俊等[11]在優(yōu)化非線性馬斯京根模型參數(shù)時(shí),采用隨機(jī)分形搜索算法對(duì)其參數(shù)進(jìn)行優(yōu)化,且用混沌序列來(lái)替代隨機(jī)數(shù),使得非線性馬斯京根模型的求參數(shù)過(guò)程變得更加簡(jiǎn)便,且參數(shù)解算精度更高。
馬斯京根模型主要是由水量平衡方程和槽蓄方程聯(lián)立推導(dǎo)而來(lái),在以往的研究中,大多數(shù)研究人員主要關(guān)注的是槽蓄方程的計(jì)算層面,通過(guò)選取不同的計(jì)算方法進(jìn)行參數(shù)優(yōu)選,從而得到理想的結(jié)果;而最近,一些研究者開(kāi)始專注于槽蓄方程的結(jié)構(gòu)層面,通過(guò)改造槽蓄方程的結(jié)構(gòu)[12],賦予馬斯京根模型更多的參數(shù),使其獲得更大的自由度,從而使洪水?dāng)?shù)據(jù)擬合結(jié)果更加準(zhǔn)確,其適應(yīng)度更強(qiáng)。
本文利用改造槽蓄方程結(jié)構(gòu)后的廣義非線性馬斯京根模型對(duì)洛河宜陽(yáng)—白馬寺段的河道進(jìn)行洪水流量演算,且通過(guò)哈里斯鷹算法對(duì)其參數(shù)進(jìn)行優(yōu)化,其結(jié)果可為洛陽(yáng)市的洪水預(yù)報(bào)作業(yè)提供參考依據(jù)和為其他河道洪水演進(jìn)研究提供思路。
1 優(yōu)化模型
1.1 哈里斯鷹算法數(shù)學(xué)描述
哈里斯鷹算法(Harris Hawks Optimization,HHO)是由Heidari等[13]在2019年提出的,是一種模擬哈里斯鷹捕食行為的智能優(yōu)化算法,其優(yōu)點(diǎn)在于能夠?qū)θ诌M(jìn)行廣泛的搜索,具有很快的收斂效應(yīng)以及調(diào)節(jié)參數(shù)較少等,目前該算法已經(jīng)被廣泛應(yīng)用于多個(gè)領(lǐng)域。哈里斯鷹算法的數(shù)學(xué)模型如下。
a)參數(shù)設(shè)置和種群初始化。設(shè)置哈里斯鷹種群規(guī)模N、所要迭代的最大次數(shù)T并進(jìn)行種群初始化。假設(shè)種群規(guī)模為N的哈里斯鷹種群有(X1,X2,…,XN)T,其初始位置矩陣為為式(1):
式中 Xi,j——第i只哈里斯鷹在第j個(gè)維度相應(yīng)的值;N——哈里斯鷹種群規(guī)模;d——搜索空間維數(shù)。
為了計(jì)算每只哈里斯鷹的目標(biāo)適應(yīng)度函數(shù)值,列出相應(yīng)儲(chǔ)存適應(yīng)度函數(shù)值的矩陣,見(jiàn)式(2):
b)調(diào)整每只新哈里斯鷹所處位置,同時(shí)不斷更改新捕食對(duì)象的位置與逃逸能量。哈里斯鷹在捕獵過(guò)程中,會(huì)根據(jù)捕食對(duì)象自身的逃逸能量E進(jìn)行不同的捕獵行為,E的計(jì)算見(jiàn)式(3):
式中 E0——捕食對(duì)象的初始能量,在[-1,1]之間進(jìn)行隨機(jī)取數(shù),且該數(shù)值每次迭代都將自動(dòng)更新;t——迭代次數(shù);T——最大迭代次數(shù)。
c)搜索階段。當(dāng)|E|≥1時(shí),哈里斯鷹廣泛分布在不同位置進(jìn)行搜尋獵物,此時(shí)隨機(jī)生成一個(gè)數(shù)q,進(jìn)行如下搜索方式的選擇:
式中 X(t)——哈里斯鷹目前所在的位置;X(t+1)——哈里斯鷹下一次迭代時(shí)所處的位置;Xrand(t)——哈里斯鷹隨機(jī)選擇的位置;Xrabbit(t)——捕食對(duì)象所在位置;ub、lb——維度變量的上下限;r1、r2、r3、r4、q——[0,1]之間隨機(jī)的數(shù);Xm(t)——哈里斯鷹群體的平均位置,表達(dá)式為:
式中 Xk(t)——哈里斯鷹群體中第k個(gè)個(gè)體的位置;N——種群規(guī)模。
d)捕食階段。當(dāng)|E|<1時(shí),哈里斯鷹進(jìn)行捕獵行為,根據(jù)|E|和r的隨機(jī)取值進(jìn)行不同的捕獵方式,由于在以往的研究中,關(guān)于哈里斯鷹算法介紹的文獻(xiàn)較多,具體捕獵方式數(shù)學(xué)公式可參考相關(guān)文獻(xiàn)。以下僅對(duì)捕獵策略的選擇進(jìn)行簡(jiǎn)單介紹:①當(dāng)0.5≤|E|<1且r≥0.5時(shí),采用軟圍攻的方式進(jìn)行捕獵;②當(dāng)|E|<0.5且r≥0.5時(shí),采取硬圍攻的方式進(jìn)行捕獵;③當(dāng)0.5≤|E|<1且r<0.5時(shí),采取漸進(jìn)式快速俯沖的軟包圍方式進(jìn)行捕獵;④當(dāng)|E|<0.5且r<0.5時(shí),采取漸進(jìn)式快速俯沖的硬包圍方式捕獵。
e)終止條件。若當(dāng)前迭代次數(shù)大于等于最大迭代次數(shù),則輸出當(dāng)前的最優(yōu)解,否則繼續(xù)進(jìn)行搜索。
1.2 廣義非線性馬斯京根模型
廣義非線性馬斯京根模型由Omid Bozorg-Haddad等[14]提出,該模型主要針對(duì)槽蓄方程的結(jié)構(gòu)進(jìn)行了改進(jìn),由原來(lái)的3個(gè)待優(yōu)化參數(shù)[15]變?yōu)楝F(xiàn)在的8個(gè)待優(yōu)化參數(shù)。廣義非線性馬斯京根模型擁有更多的自由度,在擬合數(shù)據(jù)時(shí)也具有更大的靈活性,從而在河道流量演算過(guò)程中數(shù)據(jù)擬合的更加精準(zhǔn)。廣義非線性馬斯京根方程仍是以連續(xù)方程和槽蓄方程為基礎(chǔ)進(jìn)行展開(kāi)[12]。
連續(xù)方程,簡(jiǎn)化為水量平衡方程見(jiàn)式(6):
式中 t——時(shí)間;S——某一河段的儲(chǔ)存水量;I——某一河段的來(lái)水流量;O——某一河段的出流量。
槽蓄方程如下:
S=K[XI+(1-X)O] ???(7)
式中 K——蓄流流量關(guān)系曲線的坡度,即槽蓄系數(shù);X——流量比重系數(shù),其取值范圍為[0,0.3]。
K、X 2個(gè)參數(shù)數(shù)值從某一河段的觀測(cè)入流量與觀測(cè)出流量數(shù)據(jù)中獲得。
Chow將水深h與河段的來(lái)水流量、出水流量和儲(chǔ)存水量建立關(guān)系,提出了式(8)—(11):
I=ahn(8)
O=ahn(9)
Sin=bhm(10)
Sout=bhm(11)
式中 a、h、b、m、n——待估計(jì)的模型參數(shù);h——水流深度;a、n——某一河段上、下游末端斷面流量-水深特征系數(shù);b、m——某一河段平均蓄水深度特征系數(shù);Sin——某一河段上游的存儲(chǔ)水量;Sout——某一河段下游末端的存儲(chǔ)水量。
將式(8)—(11)聯(lián)立起來(lái)得到式(12)、(13):
由于天然河道(河流)的斷面特征與造床流量和輸沙能力有關(guān),而天然河道(河流)上、下游的造床流量和輸沙能力各不相同,因此Bozorg-Haddad等通過(guò)以下方式改變a和n來(lái)反映河道(河流)上游和下游段之間形態(tài)變化的差異:
式中 a1、n1——某一河段上游斷面流量-水深特征系數(shù);a2、n2——某一河段下游斷面流量-水深特征系數(shù)。
將式(14)、(15)代入方程S=K[XSin+(1-X)·Sout]β,簡(jiǎn)化后得到非線性馬斯京根模型:
S=K[X(C1Iα1)+(1-X)(C2Oα2)]β(16)
式(16)中,
由于第i和第i+1時(shí)段內(nèi)的存儲(chǔ)水量Sin存在一定依賴性,因此Bozorg-Haddad等在考慮了第i和第i+1時(shí)段內(nèi)Sin相互依賴關(guān)系的基礎(chǔ)上,提出了待優(yōu)化的廣義非線性馬斯京根模型:
Sin=K[X1(C1Iiα1)+X2(C1Iα1i+1)+(1-X1-X2)(C2Oiα2)]β(18)
式中 Sin——某一河段第i和第i+1時(shí)段內(nèi)的存儲(chǔ)水量;Ii——某一河段第i時(shí)段內(nèi)的來(lái)水量;Ii+1——某一河段第i+1時(shí)段內(nèi)的來(lái)水量;Oi——某一河段第i時(shí)段內(nèi)的出水量;C1、C2、β、α1、α2、X1、X2、K——待優(yōu)化參數(shù);C1——α1、n1、m和β的函數(shù);C2——α2、n2、m和β的函數(shù);α1——m和n1的函數(shù);α2——m和n2的函數(shù);β——考慮加權(quán)流量與存儲(chǔ)水量之間非線性影響的參數(shù);X1——無(wú)量綱加權(quán)因子,表示某一河段上游流入、流出量對(duì)存儲(chǔ)水量的相對(duì)影響;X2——無(wú)量綱加權(quán)因子,表示某一河段下游流入、流出量對(duì)存儲(chǔ)水量的相對(duì)影響;K——槽蓄系數(shù)。
1.3 適應(yīng)度函數(shù)的確定
步驟一 估計(jì)待優(yōu)化參數(shù)C1、C2、β、α1、α2、X1、X2、K。
步驟二 用式(19)計(jì)算初始存儲(chǔ)水量(S0)。假定初始流出量等于初始流入量(0=I0):
步驟三 用式(20)計(jì)算在第i時(shí)段內(nèi)儲(chǔ)存水量體積的變化率(ΔSi/Δt):
步驟四 用式(21)計(jì)算第i時(shí)段內(nèi)的存儲(chǔ)水量:
步驟五 用式(22)計(jì)算第i時(shí)段內(nèi)的河段出流量(?i):
步驟六 選取式(23)、(24)作為目標(biāo)函數(shù)來(lái)估計(jì)廣義非線性馬斯京根模型參數(shù)優(yōu)化效果:
其中 Oi——第i時(shí)段內(nèi)的實(shí)測(cè)出流量;?i——第i時(shí)段內(nèi)的演算出流量;SSD——實(shí)測(cè)出流量與演算出流量差值的平方和;OP——實(shí)測(cè)流量的峰值;?P——演算流量的峰值;DPO——洪峰誤差。
1.4 HHO算法優(yōu)化廣義非線性馬斯京根模型參數(shù)步驟
步驟一 初始化算法參數(shù)。設(shè)置最大迭代次數(shù)T、哈里斯鷹種群規(guī)模N、搜索空間維數(shù)d;本文設(shè)置最大迭代次數(shù)為200,哈里斯鷹種群規(guī)模為300,搜索空間維數(shù)為8,令當(dāng)前迭代次數(shù)t=0。
步驟二 設(shè)定待優(yōu)化參數(shù)C1、C2、β、α1、α2、X1、X2、K的搜尋范圍和算法迭代終止條件;文本待優(yōu)化參數(shù)搜尋范圍分別設(shè)置為C1∈[0,1]、C2∈[0,1]、β∈[0,10]、α1∈[0,10]、α2∈[0,10]、X1∈[0,1]、X2∈[0,1]、K∈[0,1],算法迭代終止條件為當(dāng)前迭代次數(shù)t大于等于最大迭代次數(shù)T。
步驟三 確定HHO算法的適應(yīng)度函數(shù)。適應(yīng)度函數(shù)是描述種群個(gè)體優(yōu)劣程度的主要指標(biāo),本文選用式(23)、(24)為目標(biāo)適應(yīng)度函數(shù)。
步驟四 適應(yīng)度函數(shù)計(jì)算。計(jì)算哈里斯鷹種群中所有個(gè)體的適應(yīng)度值,并確定每只哈里斯鷹的索引位置,與捕食對(duì)象適應(yīng)度值進(jìn)行比較,若哈里斯鷹個(gè)體適應(yīng)度值優(yōu)于捕食對(duì)象,則以適應(yīng)度值更優(yōu)的個(gè)體位置作為新的捕食對(duì)象位置。
步驟五 利用式(3)—(5)及捕獵行為不斷更新哈里斯鷹所處位置,找到目前哈里斯鷹最好索引位置。判斷算法是否達(dá)到迭代終止條件,若達(dá)到終止條件,則轉(zhuǎn)至步驟六,否則重復(fù)執(zhí)行步驟三—四。
步驟六 輸出最好哈里斯鷹個(gè)體索引位置C1、C2、β、α1、α2、X1、X2、K的值和適應(yīng)度函數(shù)Min.SSD和DPO,算法結(jié)束。
2 算法驗(yàn)證
本文選取Sphere函數(shù)(式(25))和Ackley函數(shù)(式(26))對(duì)HHO、PSO[16]和ACO[17]算法進(jìn)行測(cè)試分析,為了使得算法計(jì)算結(jié)果精度更高,每個(gè)函數(shù)均連續(xù)運(yùn)行30次。其中,Sphere函數(shù)維數(shù)為30,搜索范圍為[-100,100],Ackley函數(shù)維數(shù)為30,搜索范圍為[-32,32]。設(shè)定各個(gè)算法的種群大小為50,總的迭代次數(shù)為200,分別用HHO、PSO和ACO算法對(duì)以上2個(gè)函數(shù)進(jìn)行測(cè)試,計(jì)算結(jié)果見(jiàn)表1。
同時(shí),為了驗(yàn)證HHO算法在廣義非線性馬斯京根模型參數(shù)優(yōu)化中的可行性與有效性,本文用3種算法對(duì)廣義非線性馬斯京根模型參數(shù)分別進(jìn)行了優(yōu)化,并將其優(yōu)化后的模型分別應(yīng)用到洛河宜陽(yáng)—白馬寺段的洪水預(yù)報(bào)過(guò)程中,對(duì)比3種算法的Min.SSD和DPO,計(jì)算結(jié)果見(jiàn)“3.3結(jié)果與討論”部分。
由表1可見(jiàn),相較于PSO和ACO算法,HHO算法在最優(yōu)解計(jì)算過(guò)程中尋優(yōu)精度更高。
3 實(shí)例應(yīng)用
3.1 研究區(qū)域概況
本文研究對(duì)象是黃河流域伊洛河水系洛河[18],該河流經(jīng)河南省境內(nèi)兩大水文站:宜陽(yáng)水文站和白馬寺水文站(圖1)。宜陽(yáng)水文站位于河南省洛陽(yáng)市宜陽(yáng)縣,介于東經(jīng)111°45′~112°26′,北緯34°16′~34°42′,屬暖溫帶大陸性季風(fēng)氣候,多年平均氣溫14.8 ℃,年降水量500~800 mm,多年平均蒸發(fā)量1 200 mm;白馬寺水文站位于河南省洛陽(yáng)市白馬寺鎮(zhèn),地處東經(jīng)112°35′,北緯34°43′,屬暖溫帶大陸性季風(fēng)氣候,年均氣溫12.2~24.6 ℃,年降水量約530~800 mm,年日照約2 200~2 300 h,年均濕度60%~70%。本文基于宜陽(yáng)水文站和白馬寺水文站的實(shí)測(cè)流量資料,利用哈里斯鷹算法優(yōu)化廣義非線性馬斯京根模型的參數(shù)。
3.2 數(shù)據(jù)來(lái)源
基于宜陽(yáng)、白馬寺水文站2011年9月18日16時(shí)至9月20日20時(shí)實(shí)測(cè)洪水流量資料(表2),利用哈里斯鷹算法、粒子群算法和蟻群算法分別對(duì)廣義非線性馬斯京根模型中的流量演算系數(shù)進(jìn)行優(yōu)化,并對(duì)最終的演算結(jié)果精度進(jìn)行分析評(píng)價(jià)。
3.3 結(jié)果與討論
a)參數(shù)率定。利用3種算法分別對(duì)廣義非線性馬斯京根模型中的參數(shù)進(jìn)行多次優(yōu)化,得到廣義非線性馬斯京根模型參數(shù)最優(yōu)優(yōu)化結(jié)果,見(jiàn)表3。
b)參數(shù)檢驗(yàn)。將廣義非線性馬斯京根模型參數(shù)優(yōu)化結(jié)果帶入到式(19)—(24),經(jīng)多次調(diào)試,得到不同算法的最優(yōu)演算出流過(guò)程,見(jiàn)表4;演算結(jié)果分析,見(jiàn)表5;以及演算效果,見(jiàn)圖2。同時(shí),為了對(duì)比不同算法在尋優(yōu)過(guò)程中的效率情況,繪制了迭代收斂曲線圖,見(jiàn)圖3。
由表4、5可知,HHO算法的最小演算離差值為0,PSO算法和ACO算法的最小演算離差值為1,三者的最小離差值相差很小,但HHO算法的最大演算離差值為14,均小于PSO算法的18和ACO算法的20,HHO算法的平均絕對(duì)離差值為5.4,均小于PSO算法的9.3和ACO算法的10.1,因此,從演算離差值角度來(lái)看,HHO算法均優(yōu)于PSO算法和ACO算法,說(shuō)明HHO算法具有良好的優(yōu)化性能。
由表5和圖2可知,HHO算法的Min.SSD值為1 237,均優(yōu)于PSO算法的3 112和ACO算法的3 533,特別是洪峰位置處,HHO算法的演算流量與實(shí)測(cè)流量最為接近,誤差DPO僅為5,均優(yōu)于PSO算法的14和ACO算法的17,且峰現(xiàn)時(shí)間基本一致。
從圖3可以看出,HHO算法收斂速度最快,在迭代次數(shù)不到60時(shí)便達(dá)到了最優(yōu)值,且計(jì)算精度高于其他幾種算法。
故證明基于哈里斯鷹算法的廣義非線性馬斯京根模型在洛河宜陽(yáng)—白馬寺段的流量演算效果更為精準(zhǔn),因此,本文研究結(jié)果適合應(yīng)用于洛河宜陽(yáng)—白馬寺段的洪水預(yù)報(bào)工作。