司存友 ,盧婉瑩 ,羅俐雅
(1. 江蘇省水文水資源勘測(cè)局,江蘇 南京 210029;2. 北京金水信息發(fā)展有限公司,北京 100000)
洪水預(yù)報(bào)經(jīng)驗(yàn)?zāi)P陀捎诓僮骱啽?,能較好地闡述水文規(guī)律,目前在水文業(yè)務(wù)中應(yīng)用十分廣泛,為防汛及水資源調(diào)度利用等工作提供了至關(guān)重要的決策依據(jù)。但是洪水預(yù)報(bào)經(jīng)驗(yàn)?zāi)P偷膮?shù)在確定時(shí)具有較高的難度,需要通過多次循環(huán)往復(fù)的參數(shù)率定加以確定。江蘇省采用的經(jīng)驗(yàn)?zāi)P椭饕?API 模型,場次洪水降水量P、前期影響雨量Pa、徑流深R三要素及單位線的推求計(jì)算比較復(fù)雜。API 模型的參數(shù)優(yōu)化率定更是一項(xiàng)繁瑣、耗時(shí)、困難的工作,快速高效地尋求模型最優(yōu)參數(shù)已成為水文模型應(yīng)用研究的關(guān)鍵[1–2]。
江蘇省洪水預(yù)警預(yù)報(bào)平臺(tái)成功實(shí)現(xiàn)了高效率的人機(jī)交互,可以幫助業(yè)務(wù)人員完成 API 模型的場次洪水選擇、次洪三要素(P,Pa,R)計(jì)算、相關(guān)圖擬合、產(chǎn)流方案誤差評(píng)定、單位線推求和綜合、預(yù)報(bào)方案評(píng)定等過程的在線處理,并引入改進(jìn)的遺傳算法、人工蜂群、混合蛙跳等基于仿生學(xué)的人工智能優(yōu)化算法實(shí)現(xiàn)經(jīng)驗(yàn)?zāi)P偷闹悄軆?yōu)化定線。其中混合蛙跳算法(SFLA)是一種模擬青蛙覓食行為的智能優(yōu)化算法,具有參數(shù)少,魯棒性強(qiáng),簡單易理解等特點(diǎn),但目前還未引入到洪水經(jīng)驗(yàn)?zāi)P蛥?shù)優(yōu)化方面,因此針對(duì)混合蛙跳定線進(jìn)行研究。
以前期影響雨量Pa表示土壤干濕程度的指標(biāo),以K代表土壤含水量的日消退系數(shù),則
式中:Pa,t為t日上午 8 時(shí)的前期影響雨量;Pa值以土壤最大缺水量Imax作為上限控制,Imax按經(jīng)驗(yàn)選擇和對(duì)比計(jì)算確定;消退系數(shù)K一般為:
式中:Ep代表流域日蒸發(fā)能力。
前期影響雨量由經(jīng)驗(yàn)計(jì)算公式確定:
式中:n為影響本次徑流的前期降雨天數(shù),常取 15 d左右;k為常系數(shù),一般可取 0.85 左右。
對(duì)無雨日,前期影響雨量Pa,t為:
通過式 (1)~(4),計(jì)算降水量、前期影響雨量、徑流量,點(diǎn)繪降雨徑流相關(guān)圖并定線,進(jìn)行產(chǎn)流計(jì)算。但是人工擬合降雨徑流相關(guān)圖的精度不太理想,因此通過引入混合蛙跳算法對(duì)降雨徑流相關(guān)圖基本線型的參數(shù)進(jìn)行率定,以得到擬合度較高的曲線。
1)線簇線性相關(guān)線。這一類相關(guān)線是由一組線性相關(guān)線形成的簇,基本表達(dá)式為:
式中:y為預(yù)報(bào)對(duì)象;x為預(yù)報(bào)主因子;q為輔助因子;a1,a2,a3,a4為待定系數(shù),受以下約束條件約束,a1> 0,0.02 >a3> 0,0.10 >a1> 0。
2)非線性相關(guān)線。非線性相關(guān)線是由 1 條或多條曲線組成的非線性相關(guān)線,本研究主要選用二次拋物線型為非線性相關(guān)線的基本線型,表達(dá)式為:
或
式中:x為橫坐標(biāo)變量,作為預(yù)報(bào)對(duì)象;y為縱軸變量,為主因子變量;p為第三變量;a5為待定系數(shù)。
式 (3) 為垂直型拋物線,式 (4) 為水平拋物線函數(shù)表達(dá)式。在計(jì)算中,需要計(jì)算垂直型拋物線反函數(shù),表達(dá)式為:
式中:a=a2,b=a5p a- 2a2a3,c=a1+a2+a4p a-y,a的正負(fù)號(hào)與a2的正負(fù)號(hào)一致。
SFLA 是由 Eusuff 和 Laney 于 2003 年提出的一種全新群體智能進(jìn)化算法,汲取了基于遺傳因子的模擬演算法和基于群體覓食的粒子群算法的特點(diǎn),模擬青蛙群覓食過程中的協(xié)同工作,進(jìn)行全局和局部搜索,使算法不斷向全局最優(yōu)解逼近,具有較強(qiáng)的靈活性和通用性[3]。該算法適用于連續(xù)空間域的優(yōu)化問題,主要應(yīng)用在函數(shù)、組合、單目標(biāo)、多目標(biāo)等優(yōu)化方面[4]。
SFLA 是一種基于群體智能的后啟發(fā)式新穎的進(jìn)化算法[5],具體過程如圖 1 所示。
具體步驟如下:
圖 1 混合蛙跳算法流程圖
1)對(duì)蛙群的各種參數(shù)進(jìn)行初始化。每一只青蛙代表青蛙的當(dāng)前位置,用這只青蛙的適應(yīng)度表示。第i只青蛙表示為
2)按照適應(yīng)度排序。將所有青蛙按照指定的適應(yīng)度進(jìn)行升序排列,組成數(shù)組適應(yīng)度,并帶有索引值,將每只青蛙按照適應(yīng)度的排序進(jìn)行排序。因此排在首位的青蛙是全局最優(yōu)的青蛙,用Pg表示。
3)對(duì)青蛙劃分模因組。將整個(gè)種群分成m組,每組包含n只青蛙。第 1 組內(nèi)包含第 1 只青蛙,第(m+ 1)只青蛙,第(2m+ 1)只青蛙,以此類推。第 2 組包含第 2 只青蛙,第(m+ 2)只青蛙,第(2m+ 2)只青蛙,以此類推。第 3 組分配方式類似第 1 和 2 組,直至分配完畢。
4)在組內(nèi)進(jìn)化。n只青蛙在組內(nèi)更新,在組內(nèi)迭代Ne次,Ne為設(shè)定的最大迭代次數(shù)。組內(nèi)位置最優(yōu)青蛙為Pb,位置最差青蛙為Pw,利用步長Si更新公式:Si=rand( ) × (Pb-Pw),Si∈[Smin,Smax]。
其中rand( ) 是隨機(jī)取 0 到 1 之間的任意數(shù),并確保Si在最小步長Smin與最大步長Smax的范圍之內(nèi)。更新位置最差青蛙Pw,當(dāng)計(jì)算各點(diǎn)的適應(yīng)度小于給定值ε,則停止迭代計(jì)算?;旌贤芴惴◤慕M內(nèi)最差青蛙出發(fā),分別利用組內(nèi)和全局最優(yōu)與最差青蛙之間插值作為步長基數(shù),獲得更優(yōu)的青蛙。在迭代過程中最差青蛙一直被更新,最終組內(nèi)最優(yōu)青蛙(最大值)、最差青蛙(最小值)趨近于一個(gè)值,即為求得的最優(yōu)值。
混合蛙跳算法的尋優(yōu)策略確定各個(gè)參數(shù)的值,最優(yōu)解即參數(shù)的值,從徑流深實(shí)測(cè)數(shù)據(jù)出發(fā),尋求一組參數(shù),可采用方案的評(píng)定精度或與實(shí)際觀測(cè)數(shù)據(jù)的方差作為目標(biāo)函數(shù),按給定的目標(biāo)函數(shù)的度量方式達(dá)到最佳擬合[6]。
本研究以小許莊站為例,分別采用混合蛙跳和傳統(tǒng)定線 2 種方法進(jìn)行降雨徑流相關(guān)圖的繪制,并對(duì) 2 組圖線進(jìn)行對(duì)比。
小許莊站位于黃泥河下游,1956 年 7 月設(shè)站,位于連云港市東海縣安峰鎮(zhèn)戴莊村,上游干流長度為 25 km,測(cè)站控制流域面積為 382.07 km2。
對(duì)小許莊站 1956—2013 年洪水選取單峰洪水,最終得到 71 場有效洪水。以徑流深為預(yù)報(bào)對(duì)象,以(P+Pa)為主因子,采用二次拋物線型。
1)混合蛙跳應(yīng)用。參考相關(guān)文獻(xiàn) [3] 和 [7],并結(jié)合本次優(yōu)化參數(shù)個(gè)數(shù)設(shè)置模因組數(shù)m= 5,初始化一組參數(shù)值即每組青蛙個(gè)數(shù)n= 20,局部迭代次數(shù)N=10,固定進(jìn)化代數(shù)G= 100,函數(shù)變量維數(shù)S=30。根據(jù)模型算法程序循環(huán)計(jì)算的最優(yōu)結(jié)果如表 1 所示。
表 1 混合蛙跳算法模型計(jì)算結(jié)果
根據(jù)非線性相關(guān)線公式,通過算法編程根據(jù)混合蛙跳得出系數(shù),由此得到的擬合相關(guān)線函數(shù)關(guān)系表達(dá)式為:R= 0.000 9 (P+Pa)2+ 0.451 2 (P+Pa) -20.584。
生成的降雨徑流相關(guān)圖如圖 2 所示,經(jīng)過方案評(píng)定,合格率為 86.1%,精度評(píng)定為甲等方案。
2)傳統(tǒng)定線方法。根據(jù) 71 場有效洪水,對(duì)Pa,P,R進(jìn)行繪制,點(diǎn)繪R=f(P+Pa),如圖 3 所示。
經(jīng)過評(píng)定,對(duì) 71 場洪水預(yù)報(bào)合格率為 73.9%,預(yù)報(bào)精度分別達(dá)到乙等和甲等。經(jīng)過對(duì)比,混合蛙跳法在預(yù)報(bào)方案精度上高于傳統(tǒng)定線方法,能夠有效提高洪水預(yù)報(bào)精度。
圖 2 混合蛙跳法降雨徑流相關(guān)圖
圖 3 傳統(tǒng)定線法降雨徑流相關(guān)圖
API 模型作為一種傳統(tǒng)的經(jīng)驗(yàn)方法,操作簡便,同時(shí)涵蓋了較多的水文特征信息,在實(shí)際洪水作業(yè)中仍然具備較高的應(yīng)用與研究價(jià)值。以往混合蛙跳的研究主要在于對(duì)方法本身的改進(jìn)和對(duì)新安江模型參數(shù)的優(yōu)化,而 API 模型在現(xiàn)階段洪水預(yù)報(bào)作業(yè)中應(yīng)用比新安江模型更為廣泛,因此探索混合蛙跳法在 API 模型中的應(yīng)用具有一定實(shí)際意義。本研究通過混合蛙跳法,優(yōu)化了 API 模型的參數(shù)率定,實(shí)現(xiàn)了計(jì)算機(jī)的智能自動(dòng)定線,并通過應(yīng)用實(shí)例證明本方法可以有效提高 API 模型預(yù)報(bào)精度。但是,混合蛙跳方法的參數(shù)設(shè)置對(duì)模型預(yù)報(bào)也有一定影響,今后可以進(jìn)一步深入研究。
[1] 程海云,葛守西,鄒冰玉. 相關(guān)圖實(shí)時(shí)預(yù)報(bào)技術(shù)研究[J].水利水電快報(bào),2008,29 (3): 16-18.
[2] 張端虎. 相關(guān)圖洪水預(yù)報(bào)方案編制的自動(dòng)化處理方法探討[J]. 廣東水利水電,2009 (1): 68-71.
[3] 李建軍,郁濱,陳武平. 混合蛙跳算法的改進(jìn)與仿真[J].系統(tǒng)仿真學(xué)報(bào),2014,26 (4): 755-760.
[4] 高建興. 混合蛙跳算法應(yīng)用研究[J]. 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014 (7): 28-29.
[5] 王怡然. 改進(jìn)的混合蛙跳算法及其多目標(biāo)優(yōu)化的應(yīng)用研究[D]. 蘭州:甘肅農(nóng)業(yè)大學(xué),2013.
[6] 張端虎. 改進(jìn)復(fù)合形法在相關(guān)圖水文預(yù)報(bào)方案建模中的
[7] 火久元,劉立群,趙紅星,等. 基于混合蛙跳算法的水文模型參數(shù)估計(jì)方法[J]. 重慶理工大學(xué)學(xué)報(bào),2016,30 (3):80-86.應(yīng)用[J]. 廣東水利水電,2012 (12): 34-36.