陳 佳 吳國(guó)強(qiáng)
(諸暨市水利局,浙江 諸暨 311800)
動(dòng)態(tài)規(guī)劃(DP)類算法(包括DP[1]、逐次漸進(jìn)DP[2]、離散微分DP[3]、折疊DP[4]等)是解決多階段序貫決策問題的經(jīng)典方法,在梯級(jí)水庫(kù)優(yōu)化調(diào)度中獲得了廣泛應(yīng)用。應(yīng)用DP類算法求解梯級(jí)水庫(kù)優(yōu)化調(diào)度問題須滿足目標(biāo)函數(shù)階段可分和狀態(tài)過程無(wú)后效性兩個(gè)基本條件。對(duì)于梯級(jí)水庫(kù)調(diào)度而言,前一條件通常容易滿足,而后一條件受河道水流傳播延遲(水庫(kù)的下泄流至其緊鄰下游水庫(kù)需要花費(fèi)一定的時(shí)間)影響,嚴(yán)格來(lái)說(shuō)不能滿足。當(dāng)調(diào)度決策時(shí)段為旬、月,甚至更長(zhǎng)時(shí),對(duì)于大多數(shù)梯級(jí)水庫(kù)系統(tǒng)而言,河道水流傳播時(shí)間遠(yuǎn)遠(yuǎn)小于調(diào)度決策時(shí)段長(zhǎng)度,使河道水流傳播延遲對(duì)調(diào)度的影響基本可以忽略不計(jì),此時(shí),DP類算法仍具有適用性。隨著調(diào)度決策時(shí)段變短,這種影響將逐漸增強(qiáng),當(dāng)調(diào)度決策時(shí)段長(zhǎng)度變至與河道水流傳播時(shí)間基本相當(dāng)或者更短時(shí),這種影響將十分顯著,此時(shí),DP類算法已失去適用性。
在梯級(jí)水庫(kù)防洪調(diào)度中,河道水流傳播延遲對(duì)調(diào)度的影響通常不能忽略不計(jì),梯級(jí)系統(tǒng)最優(yōu)控制方案不僅與系統(tǒng)當(dāng)前時(shí)刻的蓄水狀態(tài)有關(guān),而且與當(dāng)前時(shí)刻以前若干時(shí)刻的蓄水狀態(tài)有關(guān)(即“有后效性”問題)[5]。對(duì)于梯級(jí)水庫(kù)防洪調(diào)度問題,通常采用智能算法(如遺傳算法[6]、粒子群優(yōu)化法[7]、水循環(huán)算法[8]等)或者逐步優(yōu)化算法(POA)[9-12]進(jìn)行求解。智能算法能夠處理非線性、不可微、水流傳播延遲等各種復(fù)雜因素,通用性強(qiáng),且此類算法大多采用隨機(jī)搜索機(jī)制,理論上可以產(chǎn)生全局解,但在實(shí)際應(yīng)用中往往出現(xiàn)“早熟”收斂和“不穩(wěn)定解”等問題[13],應(yīng)用效果受到影響。POA算法將多階段問題分解為若干兩階段問題進(jìn)行逐次求解和迭代逼近,雖然能夠處理“有后效性”問題,但受限于“盲目搜索”問題和“維數(shù)障礙”[14],對(duì)于梯級(jí)水庫(kù)防洪調(diào)度問題的求解效率不高。
因此,本文以浦陽(yáng)江流域防洪控制性水庫(kù)聯(lián)合調(diào)度為研究對(duì)象,在POA算法的基礎(chǔ)上,設(shè)計(jì)一種兩階段啟發(fā)式搜索算法,以期為解決梯級(jí)水庫(kù)防洪調(diào)度“有后效性”問題和“維數(shù)障礙”問題提供一條新的途徑。
浦陽(yáng)江又名“浣江”,系錢塘江支流,發(fā)源于浙江省金華市浦江縣,干流自南向北流經(jīng)浦江縣、諸暨市、蕭山區(qū),沿途接納大陳江、開化江、五泄江、楓橋江、凰桐江、永興河等主要支流,在蕭山區(qū)境內(nèi)注入錢塘江[15]。浦陽(yáng)江主流長(zhǎng)150km,流域面積3455km2,流域地處亞熱帶季風(fēng)性氣候區(qū),受地形、天文、氣象等綜合因素影響,流域飽受洪、澇、臺(tái)等災(zāi)害困擾,是浙江省防汛防臺(tái)重點(diǎn)流域之一。浦陽(yáng)江干、支流大部分河段已修筑堤防,但汛期發(fā)生洪水時(shí),水面高程往往大于兩岸地面高程,易發(fā)生水災(zāi),素有“浙江小黃河”之稱,夏季的梅雨和臺(tái)風(fēng)雨是造成流域洪澇災(zāi)害的主要因素。
1949年后,按照“上蓄、中分、下泄”的治理方針,浦陽(yáng)江上游興建了通濟(jì)橋、安華、陳蔡、石壁等控制性水庫(kù),中游興建了高湖蓄滯洪區(qū),下游拓浚河道、裁彎取直和修建堤防,形成了以通濟(jì)橋、安華、陳蔡、石壁等水庫(kù)和高湖蓄滯洪區(qū)為骨干控制性工程,輔以中小型水庫(kù)、干支流堤防、電排泵站等的流域防洪工程體系。流域防洪控制性水庫(kù)拓?fù)潢P(guān)系和特征參數(shù)見圖1和表1。
圖1 浦陽(yáng)江流域防洪控制性水庫(kù)拓?fù)潢P(guān)系
表1 浦陽(yáng)江流域防洪控制性水庫(kù)特征參數(shù) 單位:億m3
本文以通濟(jì)橋、安華、陳蔡、石壁4座水庫(kù)為對(duì)象,建立浦陽(yáng)江流域梯級(jí)水庫(kù)聯(lián)合防洪調(diào)度模型。浦陽(yáng)江流域防洪調(diào)度主要目的是在保證各水庫(kù)運(yùn)行安全的基礎(chǔ)上,利用水庫(kù)防洪庫(kù)容進(jìn)行攔洪錯(cuò)峰,盡可能地削減下游重要防洪控制斷面的洪峰流量。為了便于公式化描述,將通濟(jì)橋、安華、陳蔡、石壁4座水庫(kù)依次編號(hào)為1、2、3、4。目標(biāo)函數(shù)表示為
(1)
(2)
式中:Rt為t時(shí)段通過諸暨太平橋控制斷面的流量,m3/s;T為調(diào)度期總時(shí)段數(shù);max(·)為取括號(hào)中集合的最大元素;min{·}為最小化括號(hào)中的項(xiàng);ni為i水庫(kù)與下游諸暨太平橋控制斷面之間河道洪水演進(jìn)水流流達(dá)時(shí)間,s;Qi,t-ni為i水庫(kù)t-ni時(shí)段的下泄流量,m3/s。
浦陽(yáng)江流域梯級(jí)水庫(kù)防洪調(diào)度應(yīng)滿足以下約束條件:
a.水庫(kù)水量平衡方程:
Vi,t=Vi,t-1+(Ii,t-Qi,t)Δt
(3)
b.梯級(jí)水庫(kù)水力聯(lián)系:
I2,t=At+Q1,t-n
(4)
c.水庫(kù)蓄水量上、下限:
(5)
d.水庫(kù)泄流能力限制:
(6)
e.下游河道安全泄量限制:
(7)
f.水庫(kù)下泄流量變幅限制:
(8)
g.邊界條件:
(9)
h.流域洪水調(diào)度原則要求:各水庫(kù)控制運(yùn)用應(yīng)遵循浦陽(yáng)江干流洪水調(diào)度原則,詳見文獻(xiàn)[16]。
POA采用兩階段優(yōu)化策略在問題的解空間內(nèi)進(jìn)行迭代搜索,因無(wú)須求解貝爾曼方程,且能夠適應(yīng)河道水流傳播延遲引起的“有后效性”問題,因此在梯級(jí)水庫(kù)短期調(diào)度中獲得了廣泛應(yīng)用。然而,采用POA求解目標(biāo)函數(shù)式(1)所示問題時(shí)發(fā)現(xiàn),當(dāng)且僅當(dāng)所求解的兩階段問題涵蓋洪峰流量所在時(shí)段時(shí),才能達(dá)到削減洪峰的目的。但是,這樣的兩階段問題在POA所有兩階段問題中的占比很小,僅為2/(T-1)(考慮洪峰流量為單值的情況)。換句話說(shuō),POA大部分兩階段問題的求解達(dá)不到削減洪峰的目的。因此,POA求解目標(biāo)函數(shù)式(1)所示問題的效率并不高。
為了提高POA的求解效率,對(duì)POA兩階段優(yōu)化策略進(jìn)行改進(jìn)。研究發(fā)現(xiàn),目標(biāo)函數(shù)式(1)的預(yù)期效果是洪水總量在不同時(shí)段之間分配盡可能均勻、洪峰流量盡可能小。因此,在峰、谷時(shí)段之間進(jìn)行水量?jī)?yōu)化分配,可以達(dá)到快速改善目標(biāo)函數(shù)式(1)的效果。因此,固定其他T-2個(gè)時(shí)段的流量值,僅對(duì)峰、谷兩時(shí)段的流量值進(jìn)行優(yōu)化。不妨假定峰、谷流量對(duì)應(yīng)時(shí)段號(hào)分別為p和q,由水量平衡原理可知,p、q兩時(shí)段的流量之和應(yīng)當(dāng)為定值。因此,兩階段啟發(fā)式搜索算法(以下簡(jiǎn)稱“改進(jìn)算法”)的優(yōu)化問題可以表示為
s.t.Rp+Rq=C
(10)
式中:Rp、Rq分別為p、q時(shí)段(峰、谷流量時(shí)段)諸暨太平橋控制斷面的流量,m3/s;C為常數(shù)。
本文的改進(jìn)算法正是通過反復(fù)構(gòu)建并求解式(10)所示兩階段問題,而達(dá)到實(shí)現(xiàn)洪峰流量最小化的目的的。
對(duì)于不同形式的POA兩階段問題,因無(wú)通用的方法可供使用,通常采用窮舉法進(jìn)行求解。即先將連續(xù)的水庫(kù)狀態(tài)區(qū)間離散為由若干狀態(tài)值構(gòu)成的有限集合,然后對(duì)所有可能的離散狀態(tài)組合方案進(jìn)行比選,獲得最優(yōu)狀態(tài)組合方案。采用窮舉法求解POA兩階段問題,最大的障礙為所需計(jì)算量和存儲(chǔ)量會(huì)隨水庫(kù)數(shù)量呈指數(shù)增長(zhǎng),即“維數(shù)障礙”。因此,采用增量法對(duì)式(10)所示問題進(jìn)行求解,主要步驟如下:
a.確定各水庫(kù)待優(yōu)化的變量。將式(2)代入式(10)可得,安華、陳蔡、石壁3座水庫(kù)待優(yōu)化的變量為Qi,p-ni和Qi,q-ni(i=2,3,4);通濟(jì)橋水庫(kù)待優(yōu)化的變量為Q1,p-n2-n和Q1,q-n2-n。
b.固定其他變量的值,對(duì)各水庫(kù)待優(yōu)化的變量的值進(jìn)行優(yōu)化。根據(jù)水量平衡原理可知,i(i=1,2,3,4)水庫(kù)2個(gè)待優(yōu)化的變量之和為定值,因此,只需對(duì)1個(gè)量進(jìn)行尋優(yōu),不妨假定為Qi,m,在Qi,m上、下各變動(dòng)一個(gè)增量ΔQi(ΔQi取較小的正數(shù),且對(duì)于不同的水庫(kù),ΔQi取值可以不相同),形成3個(gè)流量值,即Qi,m+ΔQi、Qi,m和Qi,m-ΔQi。對(duì)4座水庫(kù)81種流量組合方案進(jìn)行比選,獲得max(Rp,Rq)值最小的方案,并按此方案更新4座水庫(kù)待優(yōu)化的變量的值和Rp、Rq的值。
c.反復(fù)執(zhí)行b步驟,直到|Rp-Rq|滿足指定的精度要求為止。
本文的改進(jìn)算法的主要步驟如下:
a.產(chǎn)生一條可行的水庫(kù)系統(tǒng)初始下泄軌線,并計(jì)算諸暨太平橋控制斷面的流量過程{Rt|t=1,2,…,T}。水庫(kù)系統(tǒng)初始下泄軌線通??梢宰陨隙乱来螌?duì)各水庫(kù)采用等流量調(diào)節(jié)方法產(chǎn)生。
b.構(gòu)建式(10)所示兩階段優(yōu)化問題。值得注意的是,若式(10)中的Rq已無(wú)法上調(diào)(到達(dá)約束邊界上),則應(yīng)當(dāng)用{Rt|t=1,2,…,T}序列中第2小流量對(duì)應(yīng)時(shí)段替換q,若替換后依然無(wú)法上調(diào),再用序列中第3小流量對(duì)應(yīng)時(shí)段進(jìn)行替換,依次類推,直到某個(gè)時(shí)段的流量可以上調(diào)為止。
c.采用增量法對(duì)b步驟構(gòu)建的兩階段優(yōu)化問題進(jìn)行求解。
d.反復(fù)執(zhí)行b~c步驟,直到達(dá)到最大迭代次數(shù)或者相鄰兩代最優(yōu)下泄軌線的偏差滿足指定的精度要求為止。
將上述步驟在計(jì)算機(jī)中進(jìn)行編程實(shí)現(xiàn)。程序運(yùn)行之前,需要對(duì)相關(guān)參數(shù)和變量進(jìn)行初始化。參數(shù)初始化是指給搜索步長(zhǎng)ΔQi、最大迭代次數(shù)Num和收斂精度Lim賦初值;變量初始化是指為水庫(kù)系統(tǒng)指定一條可行的初始下泄軌線。初始化完成之后,算法將按圖2所示流程運(yùn)行。
圖2 兩階段啟發(fā)式搜索算法流程
將本文的改進(jìn)算法應(yīng)用于浦陽(yáng)江流域2021年“煙花”臺(tái)風(fēng)洪水優(yōu)化調(diào)度中。“煙花”臺(tái)風(fēng)期間,浦陽(yáng)江流域自7月22日開始出現(xiàn)降雨,至7月29日中午降雨基本結(jié)束,降雨主要集中在23—25日,流域最大3日降雨量為258.0mm,最大5日降雨量為294.6mm。該案例調(diào)度期取7月23日9時(shí)至28日7時(shí),以1h為時(shí)段長(zhǎng)度,總計(jì)118個(gè)時(shí)段,洪水總量為2.40億m3。在不考慮水庫(kù)調(diào)蓄的情況下,諸暨太平橋控制斷面天然洪水洪峰流量為1330.50m3/s,峰現(xiàn)時(shí)間為26日6時(shí),峰谷差為1302.88m3/s。為了更好地展示本文的改進(jìn)算法的應(yīng)用效果,將其優(yōu)化結(jié)果與POA的優(yōu)化結(jié)果進(jìn)行對(duì)比分析。各水庫(kù)調(diào)度期初蓄水量取實(shí)測(cè)值,調(diào)度期末蓄水量取各自汛限水位對(duì)應(yīng)的蓄水值。POA兩階段問題采用窮舉法進(jìn)行求解。為簡(jiǎn)單起見,各水庫(kù)搜索步長(zhǎng)ΔQi統(tǒng)一取10m3/s,且與POA的離散精度相同。兩種算法優(yōu)化后,諸暨太平橋控制斷面洪水過程對(duì)比見圖3。
圖3 不同算法優(yōu)化后諸暨太平橋控制斷面洪水過程對(duì)比
從峰值看,本文的改進(jìn)算法與POA優(yōu)化后,諸暨太平橋控制斷面洪峰流量分別為593.47m3/s和923.47m3/s(峰現(xiàn)時(shí)間均為25日23時(shí)),與天然洪水相比,削峰率分別為55.39%和30.59%,“削峰”效果顯著,但前者效果更好,更大程度地保障了水庫(kù)系統(tǒng)下游城區(qū)的防洪安全。
從洪水過程看,本文的改進(jìn)算法與POA優(yōu)化后,諸暨太平橋控制斷面洪水過程峰谷差分別為369.58m3/s和889.37m3/s,與天然洪水過程相比,分別下降了71.63%和31.74%,“削峰填谷”效果明顯,但前者效果更好,洪水過程更平穩(wěn)、波動(dòng)更小,方案實(shí)用性更強(qiáng)。
從計(jì)算耗時(shí)看,本文的改進(jìn)算法耗時(shí)為3.4s,遠(yuǎn)遠(yuǎn)小于POA(POA耗時(shí)為14808.8s),說(shuō)明與后者相比,本文的改進(jìn)算法效率更高(兩種算法在同一臺(tái)PC上進(jìn)行測(cè)試,PC配置Intel Core i5-7500 3.40GHz CPU和8GB RAM)。研究發(fā)現(xiàn),POA耗時(shí)長(zhǎng)主要有兩個(gè)方面的原因:?采用窮舉法求解兩階段問題,計(jì)算工作量隨水庫(kù)數(shù)量呈指數(shù)增長(zhǎng),存在“維數(shù)障礙”;?大部分兩階段問題不涵蓋洪峰流量所在時(shí)段,對(duì)其求解達(dá)不到削減洪峰的目的。
為了更好地解決梯級(jí)水庫(kù)防洪調(diào)度“有后效性”問題和“維數(shù)障礙”問題,本文對(duì)POA進(jìn)行改進(jìn),設(shè)計(jì)了一種POA改良版本。本文的改進(jìn)算法首先采用逐次逼近策略在解空間內(nèi)進(jìn)行迭代搜索,解決水庫(kù)系統(tǒng)狀態(tài)過程有后效性導(dǎo)致難以使用DP類算法進(jìn)行求解的難題;其次,對(duì)POA兩階段優(yōu)化策略進(jìn)行改進(jìn),采用啟發(fā)式搜索策略對(duì)峰、谷流量時(shí)段進(jìn)行兩階段優(yōu)化,提高POA求解效率和解的質(zhì)量;最后,采用增量法對(duì)兩階段問題進(jìn)行求解,緩解POA的“維數(shù)障礙”。根據(jù)浦陽(yáng)江流域防洪控制性水庫(kù)聯(lián)合調(diào)度應(yīng)用結(jié)果,本文得出以下結(jié)論:
a.本文的改進(jìn)算法通過迭代搜索,逼近問題的解,因無(wú)須求解貝爾曼方程,能夠適應(yīng)梯級(jí)系統(tǒng)狀態(tài)過程有后效性的特點(diǎn),且通過應(yīng)用啟發(fā)式搜索策略,與POA相比,削峰率提高了35.73%,峰谷差降低了58.44%,說(shuō)明本文改進(jìn)算法能夠更好地解決梯級(jí)水庫(kù)防洪調(diào)度“有后效性”問題。
b.本文的改進(jìn)算法采用啟發(fā)式搜索策略構(gòu)建兩階段問題,使用增量法對(duì)兩階段問題進(jìn)行求解,與POA相比,在不犧牲解的質(zhì)量的情況下,算法耗時(shí)縮短了99.98%,說(shuō)明本文改進(jìn)算法能夠更好地解決梯級(jí)水庫(kù)防洪調(diào)度“維數(shù)障礙”問題。
此外,本文的改進(jìn)算法概念簡(jiǎn)單,易于實(shí)現(xiàn),其適用范圍不局限于梯級(jí)水庫(kù)防洪調(diào)度,亦可推廣應(yīng)用于求解其他具有min{max(·)}或者max{min(·)}形式目標(biāo)函數(shù)的水資源系統(tǒng)優(yōu)化問題(如水電調(diào)峰問題)。因本文的關(guān)注點(diǎn)在于改進(jìn)POA的性能,模型中河道洪水演進(jìn)采用簡(jiǎn)易平移法,雖然會(huì)引進(jìn)一定的偏差,但不影響本文的主要結(jié)論。下一步研究將致力于完善河道洪水演進(jìn)模型,進(jìn)一步提高調(diào)度方案的可靠性和實(shí)用性。