李福川+王富強+裴穎新+李宗霖
摘要:凌汛是河道里的冰凌對水流的阻力作用而引起的一種漲水現(xiàn)象,它直接影響到水利工程的運行和維護、水利發(fā)電、冬季輸水等問題,較高精度的凌情預(yù)報成果可為防凌減災(zāi)提供重要決策信息。針對遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)時不能同步優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)和連接權(quán)值且計算量大的問題,采取分而治之的思路構(gòu)建了基于合作型協(xié)同進化遺傳算法的BP神經(jīng)網(wǎng)絡(luò)(CCGA-BP)凌情預(yù)報模型。運用MATLAB2009b進行建模,并將其應(yīng)用于寧蒙段巴彥高勒封河日期的預(yù)報,結(jié)果表明,CCGA-BP模型歷史樣本擬合合格率達到89.3%(25/28),預(yù)報檢驗合格率為100%(5/5)。預(yù)報模型可以用于黃河寧蒙段冰凌預(yù)報實踐。
關(guān)鍵詞:凌汛;凌情預(yù)報;封開河日期;CCGA-BP;寧蒙河段
中圖分類號:P338文獻標志碼:A文章編號:
1672-1683(2015)001-0207-04
Study on the ice condition forecasting model based on CCGA-BP
LI Fu-chuan1 ,WANG Fu-qiang2,PEI Ying-xin3,LI Zong-lin1
(1.South-to-North Water Diversion Project eastern shandong co.,LTD ,JiNan 250013 China;
2.North China University of Water Conservancy and Hydroelectric Power,Zhengzhou 450045 China;
3.Material company?of Liaohe Petroleum Exploration Bureau,Panjin 124000 China)
Abstract:Ice flood is a freshet phenomenon caused by the blocking effect of ice in the river channel,it will directly influence the operation and maintenance of water conservancy project,hydroelectric generation and water delivery in winter,etc.High-accuracy ice forecasting achievement can provide important decision information to ice flood control and disaster mitigation.To counter the problem that genetic algorithm cannot optimize network topology as well as connection weights and has a large amount of calculation when optimizing neural network,this paper,based on the co-evolutionary genetic algorithm,first take the policy of divide and rule and set up the BP neural network(CCGA-BP) ice forecasting model.Then use MATLAB 2009 b and applied the model to the forecasting of ice-locked date in Bayangol,Ningxia-Inner Mongolia reach.The results show that the historical sample fitting rates reach 893%(25/28),and the prediction test passing rate is 100%(5/5).Thus the forecasting model can be put into practice in Ningxia-Inner Mongolia reach of Yellow River.
Key words:ice run;ice condition forecasting;ice-locked and break up date;CCGA-BP;Ningxia-Inner Mongolia reach
黃河以冰凌災(zāi)害頻繁而著名,每年封開河都要發(fā)生不同程度的卡冰結(jié)壩現(xiàn)象,由此造成冰凌災(zāi)害頻發(fā)[1]。冰凌的出現(xiàn)往往危及橋梁、河道工程和其他水工建筑物的安全。因此黃河寧蒙河段的冰凌研究對于冰凌災(zāi)害防治具有重要的實踐意義[2-3]。長期以來各有關(guān)部門的科研人員對冰凌現(xiàn)象進行了大量的預(yù)報研究。國外對封河、開河日期預(yù)報研究較多的是美國Clarkson大學(xué)的沈洪道教授[4],主要依據(jù)熱交換原理和冰水力學(xué)理論建立了數(shù)學(xué)模型。國內(nèi)不少學(xué)者依據(jù)黃河的原型觀測資料建立了一系列的冰凌預(yù)報模型??伤鼐甑扔?998年建立了黃河上游實用冰情數(shù)學(xué)模型[2-5];2004年陳守煜教授提出的模糊優(yōu)選神經(jīng)網(wǎng)絡(luò)BP模型對黃河內(nèi)蒙段封河、開河日期進行了預(yù)報[6];2007年姚惠明對黃河寧蒙河段凌情特性進行了研究,并分析了寧蒙河段1950年—2004年流凌、封河、開河日期特征值[7];2012年韓宇平、周翔南等提出了基于粒子群算法的神經(jīng)網(wǎng)絡(luò)在冰凌預(yù)報中的應(yīng)用 [8-9],提出了一種基于遺傳算法優(yōu)化支持向量回歸參數(shù)的冰凌預(yù)報模型,建立了PSO-BP預(yù)報模型。
遺傳算法是近年迅速發(fā)展的一種優(yōu)化算法,它具有并行搜索和全局尋優(yōu)的特點,廣泛應(yīng)用于神經(jīng)網(wǎng)絡(luò)的優(yōu)化問題中。但是卻只能完成神經(jīng)網(wǎng)絡(luò)權(quán)值的優(yōu)化,不能進行網(wǎng)絡(luò)結(jié)構(gòu)和連接權(quán)值的同步優(yōu)化,并且計算量大。人工神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計沒有系統(tǒng)的規(guī)律可循,而且神經(jīng)網(wǎng)絡(luò)參數(shù)優(yōu)化又易于陷入局部最優(yōu)解。為了解決傳統(tǒng)遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)時所存在的問題,本文將合作型協(xié)同進化遺傳算法(Cooperative Co-Evolutionary Genetic Algorithms,CCGA)引入網(wǎng)絡(luò)優(yōu)化中。采用分而治之思想把復(fù)雜的問題分解成若干較簡單的子問題,對每個子問題進行優(yōu)化,最后把子問題合并形成完整的解。根據(jù)Kosmogorov定理,合適的網(wǎng)絡(luò)結(jié)構(gòu)和連接權(quán)值可以使三層前饋神經(jīng)網(wǎng)絡(luò)以任意精度逼近任意的連續(xù)函數(shù),因此本文以三層BP神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),建立基于合作型協(xié)同進化遺傳算法的BP神經(jīng)網(wǎng)絡(luò)(CCGA-BP)的冰凌預(yù)報模型。endprint
1基于協(xié)同進化遺傳算法神經(jīng)網(wǎng)絡(luò)設(shè)計
1.1合作型協(xié)同進化遺傳算法
合作型協(xié)同進化遺傳算法是基于共生機制的解決復(fù)雜多變量問題的優(yōu)化方法。其與傳統(tǒng)遺傳算法最大的不同是可以同時優(yōu)化隱含層數(shù)已知的神經(jīng)網(wǎng)絡(luò)的連接權(quán)值和隱含層節(jié)點數(shù),大大減少計算量。作為一種新的全局優(yōu)化搜索算法,搜索過程作用于編碼了的個體。所以它沒有求導(dǎo)和函數(shù)連續(xù)性的限制,具有魯棒性、隨機性、全局性以及適于并行處理的優(yōu)點,在分類、約束滿足、優(yōu)化調(diào)度、聚類等領(lǐng)域的應(yīng)用上展現(xiàn)了它特有的優(yōu)勢。
該法進而將優(yōu)化問題分割為多個子種群,通過各子種群間相互合作協(xié)同進化,由進化子種群構(gòu)成一個完整的優(yōu)化過的神經(jīng)網(wǎng)絡(luò)。相比粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)模型,CCGA-BP模型在優(yōu)化連接權(quán)值的同時也優(yōu)化了網(wǎng)絡(luò)結(jié)構(gòu),減少了神經(jīng)網(wǎng)絡(luò)冗余的隱含層節(jié)點,其優(yōu)化性能更高。
1.2基于CCGA的BP神經(jīng)網(wǎng)絡(luò)設(shè)計
利用協(xié)同進化遺傳算法對神經(jīng)網(wǎng)絡(luò)進行優(yōu)化,首先要進行種群分割,把目標問題分割為若干個子種群。本文對神經(jīng)網(wǎng)絡(luò)進行縱向分割,如圖1所示,在一個已知為N+1層的BP神經(jīng)網(wǎng)絡(luò)中,將輸入層至第一個隱含層之間的部分當(dāng)做第一模塊,第一層隱含層至第二層隱含層之間的部分當(dāng)做第二模塊,以此類推。對于每一個模塊,分別用一個進化子種群優(yōu)化其連接權(quán)值和網(wǎng)絡(luò)結(jié)構(gòu)(節(jié)點個數(shù)),將這些進化子種群記為P1,P2,…,PNp。
圖1進化種群分割
其次要進行變量編碼。以神經(jīng)網(wǎng)絡(luò)的第p個模塊為例。由于神經(jīng)網(wǎng)絡(luò)的層數(shù)N+1以及輸入和輸出的向量個數(shù)已知,所以對網(wǎng)絡(luò)結(jié)構(gòu)進行優(yōu)化就是隱含層節(jié)點的數(shù)目和節(jié)點之間的連接關(guān)系。本文對該模塊的網(wǎng)絡(luò)結(jié)構(gòu)使用二進制編碼,對連接權(quán)值使用實數(shù)編碼,下面將分別進行分析。
(1)結(jié)構(gòu)編碼。
將第p層包含的節(jié)點數(shù)記為Np,用矩陣SpNp+1×Np表示第p個模塊的連接關(guān)系。如果元素Sp(i,j)=1則第p層的第i個節(jié)點與第p+1層的第j個節(jié)點之間存在連接關(guān)系;如果Sp(i,j)=0,則第p層的第i個節(jié)點與第p+1層的第j個節(jié)點之間不存在連接關(guān)系。SpNp+1×Np表示第p個進化子種群個體的結(jié)構(gòu)編碼,把此矩陣展開即為該進化子種群網(wǎng)絡(luò)結(jié)構(gòu)的二進制編碼。
圖2所示的三層BP神經(jīng)網(wǎng)絡(luò),各個層的節(jié)點數(shù)分別是2,3,1。將這個BP網(wǎng)絡(luò)分割為兩個部分,分別采用兩個進化子種群優(yōu)化這兩個部分。
圖2BP神經(jīng)網(wǎng)絡(luò)的編碼
第一個進化子種群個體的結(jié)構(gòu)編碼是S1=111011,等價于二進制串11 10 11;第二個進化子種群的個體結(jié)構(gòu)編碼是S2=[111],等價于二進制串111。
(2) 連接權(quán)值編碼。
連接權(quán)值的編碼要受到結(jié)構(gòu)編碼的控制,只有當(dāng)結(jié)構(gòu)編碼為1時,兩個節(jié)點之間才存在連接關(guān)系。如果兩個節(jié)點之間不存在連接關(guān)系,就沒有必要對該連接權(quán)值進行編碼。因此,連接權(quán)值編碼的長度應(yīng)與結(jié)構(gòu)編碼中1的個數(shù)相同。隨著進化的不斷進行,結(jié)構(gòu)編碼中的1的個數(shù)是不斷改變的,連接權(quán)值編碼的長度也是隨著進化的不斷進行而不斷變化。這種動態(tài)編碼方法可以極大地降低算法計算的復(fù)雜性,從而使網(wǎng)絡(luò)訓(xùn)練變得比較簡便,提高了算法的性能。
仍以圖2為例,不難得到,第一個進化子種群個體的連接權(quán)值編碼是(02,04,-02,01,03);第二個進化子種群的個體的連接權(quán)值編碼是(01,-01,02)。
最后是交叉操作。由于結(jié)構(gòu)部分的編碼采用二進制編碼方式,因此可利用標準遺傳算法中的交叉操作來進行單點交叉或者多點交叉等;連接權(quán)值的部分采用實數(shù)編碼,并且其實數(shù)編碼的長度與結(jié)構(gòu)編碼中1的個數(shù)相同,所以,連接權(quán)值部分的交叉點依賴于結(jié)構(gòu)部分交叉點位置,即實數(shù)編碼交叉點前的編碼串長等于其對應(yīng)的二進制編碼串交叉點前1的個數(shù),這種交叉操作稱為對等交叉。
假設(shè)某個進化子種群的兩個父代個體,它們的基因型如表1中a列所示。對于其網(wǎng)絡(luò)結(jié)構(gòu)部分,選擇第4位為交叉點,即001 1|01 100;101 1|00 111。經(jīng)過交叉操作,其子代個體結(jié)構(gòu)編碼變?yōu)?01 100 111;101 101 100。連接權(quán)值編碼串交叉點的選擇如表1中b列所示,經(jīng)過交叉操作,其子代個體的連接權(quán)值編碼變?yōu)椋?03 03 -01 03 02);(-02 01 04 -01 04)。交叉操作之后的子代個體基因型如表1中c列所示。
在神經(jīng)網(wǎng)絡(luò)的優(yōu)化過程中,進化子種群的個體結(jié)構(gòu)編碼采用矩陣表示,它與神經(jīng)網(wǎng)絡(luò)某一模塊的連接關(guān)系是一一對應(yīng)的。有些特殊矩陣的某幾行全為零,或者某幾列全為零。在神經(jīng)網(wǎng)絡(luò)中,如果一個隱含層節(jié)點沒有輸入或者輸出,這個節(jié)點是沒有意義的,應(yīng)該把這些沒有意義的節(jié)點刪除。刪除了這些節(jié)點,與之相關(guān)的連接權(quán)值也一并被刪除,進化子種群個體編碼的長度將大大縮短,有效的降低了算法計算的復(fù)雜程度。因此,當(dāng)計算某個進化子種群的個體適應(yīng)度值時,應(yīng)當(dāng)首先檢查其結(jié)構(gòu)部分,若有全為0的行或列,應(yīng)動態(tài)調(diào)整相應(yīng)的個體的結(jié)構(gòu)編碼。例如當(dāng)某個個體結(jié)構(gòu)矩陣SP的第k行全為0,那么個體Sp+1的第k列也全為0;同樣,當(dāng)結(jié)構(gòu)矩陣Sp的第k列全為0,個體Sp+1的第k行也全為0。當(dāng)個體Sp+1結(jié)構(gòu)部分編碼發(fā)生變化以后,其連接權(quán)值部分編碼也發(fā)生相應(yīng)的變化,即應(yīng)刪除相應(yīng)的實數(shù)編碼。
表1進化個體的交叉操作
父代個體的基因型
連接權(quán)值部分交叉點
子代個體的基因型
(a)(b)(c)
個體A001 101 100-03 03 -01 04-03 03 | -01 04001 100 111-03 03 -01 03 02
個體B101 100 111-02 01 04 -01 03 02-02 01 04 | -01 03 02101 101 100-02 01 04 -01 04endprint
2應(yīng)用實例
黃河寧蒙河段自寧夏的中衛(wèi)縣南長灘入境,流經(jīng)寧夏、內(nèi)蒙古河套平原。寧蒙河段處于黃河流域最北端。由于河道流向總體由低緯度流向高緯度地區(qū),故流凌封凍由內(nèi)蒙古河段下部溯源而上,解凍開河則從寧夏由上到下,河槽蓄水量逐段釋放,開河最大流量逐漸增大。黃河河道較窄、流速較緩,極易形成凌災(zāi)[10]。寧蒙河段主要有石嘴山、巴彥高勒、三湖河口和頭道拐4個水文觀測站,本文根據(jù)這4個水文站的水情、冰情實測資料,建立冰凌預(yù)報模型并進行模型驗證。
2.1確定預(yù)報因子
以往的研究表明[11-12],影響冰情的主要因素有:(1)河流形態(tài)特征;(2)熱能因子;(3)動能因子。由于河流形態(tài)特征影響復(fù)雜且相關(guān)資料難以獲得,本文主要從熱能因子及動能因子入手。太陽能輻射和地面反射決定大氣溫度,氣溫又密切影響著冰水溫度。因此,氣溫是影響冰情變化的熱能因子的集中表現(xiàn),氣溫高低決定著冰量和冰晶凝結(jié)程度,是影響河道流凌、封河和開河日期的主要因子,因此可以用氣溫作為表征熱能狀況及其變化的基本因子。當(dāng)水位平穩(wěn)時,大部分凍冰就地消融,形成“文開河”的河勢;而當(dāng)水位快速上漲時,導(dǎo)致水鼓冰裂,從而形成“武開河”的河勢。因此,可以用水位作為冰情演變的動能因子。此外,流量本身可以同時反映熱能因子與動能因子,在水溫相同時,流量越大,水體的儲熱量越多,且水流動力作用越大,在同樣的氣溫條件下,河道里的水體越難結(jié)冰。經(jīng)過以上分析,確定寧蒙河段封開河日期預(yù)報因子見表2。
表2封開河日期預(yù)報因子
預(yù)報項目選定的預(yù)報因子
封河日期流凌日至預(yù)報日的累積氣溫和;發(fā)布預(yù)報日后7 d的累積氣溫和;流凌日至發(fā)布預(yù)報日的平均流量;流凌日至發(fā)布預(yù)報日的平均水位;流凌日期
開河日期發(fā)布預(yù)報日后7 d的累積正氣溫;最大冰厚;預(yù)報日前10 d石嘴山站的平均流量;發(fā)布預(yù)報日前10 d的平均流量;發(fā)布預(yù)報日的水位
限于篇幅,本文僅以三湖河口站封河日期預(yù)報說明詳細求解過程,其他站可做類似求解。
2.2巴彥高勒站封河日期預(yù)報
為計算方便,將封河日期轉(zhuǎn)換為數(shù)字序列。以11月1日為基準點,例如巴彥高勒站多年平均封河日期為12月6號,記為36。根據(jù)巴彥高勒站實測冰情資料,對輸入輸出數(shù)據(jù)進行歸一化處理。為檢驗?zāi)P偷木?,?969年-2006年序列樣本用來訓(xùn)練模型,預(yù)留2007年-2011年5年的數(shù)據(jù)資料來檢驗?zāi)P皖A(yù)報精度。在模型訓(xùn)練中,將1969年-2011年縱向分割BP神經(jīng)網(wǎng)絡(luò)為2個進化子種群數(shù),按照表3對模型參數(shù)進行設(shè)置,將5個預(yù)報因子作為輸入,封河日期作為輸出,隱含層節(jié)點數(shù)取初始值為3。獨立運行CCGA-BP模型5次后,其優(yōu)化過的網(wǎng)絡(luò)隱含層節(jié)點數(shù)平均值為8個。
模型運行5次后,得到的網(wǎng)絡(luò)輸出平均值與封河日期實測值的擬合效果見圖3。
表3CCGA-BP網(wǎng)絡(luò)模型參數(shù)設(shè)置
學(xué)習(xí)速率lr誤差精度e種群規(guī)模s進化代數(shù)t交叉概率p結(jié)構(gòu)編碼變異概率pb連接權(quán)值變異概率pw
0.10.001201000.80.0020.025
圖3巴彥高勒站CCGA-BP封河日期擬合及預(yù)報結(jié)果
2.3模型效果評定
為檢驗?zāi)P偷倪m用性,將其預(yù)報結(jié)果與PSO-BP神經(jīng)網(wǎng)絡(luò)模型的預(yù)報結(jié)果進行了對比。對預(yù)報結(jié)果進行取整,計算其預(yù)報誤差,并根據(jù)《水文情報預(yù)報規(guī)范》判定模型的效果,見表4和表5。由表5可知,在巴彥高勒站的封河日期預(yù)報中,CCGA-BP模型的預(yù)報誤差均在許可誤差范圍之內(nèi),合格率為100%,為甲等預(yù)報。而PSO-BP預(yù)報模型結(jié)合格率為80%,這是因為在2010年-2011年度的封河過程中,由于強冷空氣的影響,河道出現(xiàn)流凌后迅速封凍,致使預(yù)見期過短,影響了預(yù)報模型的精度。
表4水文情報預(yù)報規(guī)范中預(yù)報要素的許可誤差
預(yù)見期/d<23~56~1011~1314~15>15
許可誤差/d123457
表5巴彥高勒站封河日期預(yù)報模型效果檢驗
3結(jié)論
(1)探討了CCGA算法的原理,在分析封開河日期影響因素的基礎(chǔ)上,選取合適預(yù)報因子,構(gòu)建了CCGA-BP預(yù)報模型。將CCGA-BP預(yù)報模型應(yīng)用到黃河寧蒙河段巴彥高勒站封河日期的預(yù)報中,結(jié)果表明,CCGA-BP模型歷史樣本擬合合格率達到893%,預(yù)報檢驗合格率為100%(5/5),模型可以用于冰凌預(yù)報實踐。
(2)CCGA-BP模型有效克服了遺傳算法不能進行網(wǎng)絡(luò)結(jié)構(gòu)和連接權(quán)值的同步優(yōu)化,并且計算量大的缺點,其優(yōu)化性能更高。實例應(yīng)用結(jié)果表明?;诤献餍蛥f(xié)同進化遺傳算法的BP神經(jīng)網(wǎng)絡(luò)模型應(yīng)用于黃河寧蒙段冰凌預(yù)報是可行的。
參考文獻:
[1]蔡琳.黃河防凌工作50年[J].人民黃河,1996,(12):1-8.
[2]可素娟.黃河冰凌研究[M].鄭州:黃河水利出版社,2002.
[3]茅澤育,吳劍疆,佘云童.河冰生消演變及其運動規(guī)律的研究進展[J].水力發(fā)電學(xué)報,2002,(1):153-161.
[3]Edward P Foltyn,HungTaoShen.St.Law rence River Freeze-Up Fore-cast[J].Journal of Waterway.Port,Coastal and Ocean Engineering,1986,(4):467-4811.
[4]Shen H T.Under cover transport and accumulation of frazil granules[J].Journal of Hydraulic Engineering,1995,(2):184-1951.
[5]董雪娜,李雪梅,林銀平,等.黃河下游凌情特征及變化[J].水科學(xué)進展,2008,19(6):882-887.
[6]陳守煜,冀鴻蘭.冰凌預(yù)報模糊優(yōu)選神經(jīng)網(wǎng)絡(luò)BP方法[J].水利學(xué)報,2004,(6):114-118.
[7]姚惠明,秦福興,沈國昌,等.黃河寧蒙河段凌情特性研究[J].水科學(xué)進展,2007,18(6):893-896.
[8]韓宇平,藺冬,王富強,等.基于粒子群算法的神經(jīng)網(wǎng)絡(luò)在冰凌預(yù)報中的應(yīng)用[J].水電能源科學(xué),2012,30(3):35-37.
[9]周翔南,王富強,藺冬.基于遺傳算法的SVM 冰凌預(yù)報模型研究[J].華北水利水電學(xué)院學(xué)報,2012,33(1):19-22.
[10]王云璋,康玲玲,陳發(fā)中,等.近30a氣溫變化對黃河下游凌情影響分析[J].冰川凍土,2001,23(3):323-327.
[11]蔡琳,盧杜田,蔡彬.水庫防凌調(diào)度數(shù)學(xué)模型的研制與開發(fā)[J].冰川凍土,2002,24(2):214-217.
[12]王志興,李成振,范寶山,等.改進的遺傳BP交叉訓(xùn)練算法及其在河流冰情預(yù)報中的應(yīng)用[J].水力發(fā)電學(xué)報,2010,29(1):76-80.endprint
南水北調(diào)與水利科技2015年7期