陳雄波 王俊昀 龔鈺婷
摘 要:針對黃河流域的泥沙問題,根據(jù)BP網(wǎng)絡(luò)原理和訓(xùn)練流程、遺傳算法原理,優(yōu)化BP網(wǎng)絡(luò)參數(shù)的加速遺傳算法的迭代步驟,編制了計(jì)算程序;根據(jù)數(shù)學(xué)模型計(jì)算及管理的特點(diǎn),設(shè)計(jì)完成了軟件功能表和模型功能模塊;在研發(fā)的軟件中檢驗(yàn)了計(jì)算程序模塊的功能,經(jīng)測試是正確的;將計(jì)算模塊無縫嵌入到模型軟件中,并通過方案管理、結(jié)果查詢等輔助模塊實(shí)現(xiàn)了計(jì)算過程的通用化、可視化。該模型軟件的組成模塊在黃河口流路運(yùn)用方案比選、多泥沙河流斷面概化中得到應(yīng)用,經(jīng)分析成果比較合理。
關(guān)鍵詞:BP神經(jīng)網(wǎng)絡(luò);遺傳算法;優(yōu)化模型;計(jì)算過程;通用化;可視化
中圖分類號(hào):TP183;TV142;TV882.1 文獻(xiàn)標(biāo)志碼:A
doi:10.3969/j.issn.1000-1379.2020.12.004
Abstract:Aiming at the sediment problem in the Yellow River basin, according to the principle of BP network and training flow, genetic algorithm and the iteration steps of accelerated genetic algorithm to optimize the parameters of BP network, and the calculation program was compiled. According to the characteristics of mathematical model calculation and management, the software function table and model function module were designed and completed. The calculation program was tested and verified. The calculation module was seamlessly embedded in the model software and the computational process was universal and visualized through auxiliary modules such as scheme management and result query. The component module of the model software had been applied in the comparison and selection of the operation schemes of the Yellow River estuary and the generalization of the sedimentladen river section. The analysis results were reasonable.
Key words: BP neural network; genetic algorithm; optimization model; computational process; general utilization; visualization
1 神經(jīng)網(wǎng)絡(luò)和遺傳算法原理
描述水沙運(yùn)動(dòng)的N-S方程、對流-擴(kuò)散方程都是非線性的。近年來,各種非線性數(shù)學(xué)方法在泥沙研究領(lǐng)域有了很多應(yīng)用,如人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,簡稱ANN)和遺傳算法(Genetic Algorithm,簡稱GA)等。
Trent等首次將ANN應(yīng)用于泥沙運(yùn)動(dòng)規(guī)律研究,實(shí)際應(yīng)用的神經(jīng)網(wǎng)絡(luò)模型大都采用誤差逆?zhèn)鞑ィ˙ackPropagation,簡稱BP)網(wǎng)絡(luò)及其變化形式。典型的BP網(wǎng)絡(luò)包含輸入層、中間層(也稱隱含層)和輸出層,各層之間實(shí)行全連接。BP網(wǎng)絡(luò)的學(xué)習(xí)訓(xùn)練由4個(gè)過程組成,即模式順傳播、誤差逆?zhèn)鞑?、記憶?xùn)練和學(xué)習(xí)收斂[1]。
GA的算法如下:①用二進(jìn)制數(shù)字串來模擬染色體,用數(shù)字串中的某位元模擬基因,用數(shù)量極大的數(shù)字串表示優(yōu)化問題可行域內(nèi)的試探解;②用目標(biāo)函數(shù)或其變化形式作為適應(yīng)度函數(shù)來模擬個(gè)體對生存環(huán)境的適應(yīng)性;③對適應(yīng)度較高的數(shù)字串進(jìn)行雜交,得到下一代(子代);④子代數(shù)字串變異;⑤進(jìn)化迭代,轉(zhuǎn)步驟②,如此反復(fù)運(yùn)行,直至獲得滿意的解或達(dá)到預(yù)定進(jìn)化迭代次數(shù),并把適應(yīng)度最高的數(shù)字串所表示的解作為優(yōu)化的結(jié)果。遺傳算法是在“優(yōu)勝劣汰”指導(dǎo)下的隨機(jī)并行自適應(yīng)優(yōu)化方法,可視為介于確定性與隨機(jī)性優(yōu)化方法之間的一類新的優(yōu)化方法[2]。
2 基于神經(jīng)網(wǎng)絡(luò)和遺傳算法的泥沙模型和軟件功能設(shè)計(jì)
目前所使用的泥沙計(jì)算模型大都人為依賴度高、更新困難、可視化差,且缺乏先進(jìn)、科學(xué)的優(yōu)化方法。通過對非線性數(shù)學(xué)優(yōu)化方法的應(yīng)用研究,針對黃河流域的泥沙問題,結(jié)合實(shí)際工作需要和現(xiàn)有經(jīng)驗(yàn)?zāi)P偷膬?yōu)點(diǎn),研發(fā)出一套泥沙模型軟件,并以應(yīng)用模塊、模型系統(tǒng)的形式提交出來,實(shí)現(xiàn)模型運(yùn)算的通用化、可視化、軟件化。
2.1 基于神經(jīng)網(wǎng)絡(luò)的泥沙模型建立步驟
基于神經(jīng)網(wǎng)絡(luò)的泥沙模型建立步驟如下:①根據(jù)河流動(dòng)力學(xué)理論,選擇輸入、輸出因子,以多泥沙河流為例,把汛期沖淤量作為輸出因子(因變量),與上游控制站來水量和來沙量、區(qū)間匯流或引水產(chǎn)生的來水來沙量、洪峰過程(可通過流量分級(jí)來表達(dá))等有關(guān),這些物理量作為輸入因子(自變量);②輸入、輸出因子的歸一化工作,即將所有變量通過一定的變換轉(zhuǎn)化到0~1之間;③編制BP網(wǎng)絡(luò)訓(xùn)練和預(yù)測程序,在達(dá)到指定迭代次數(shù)并且全局誤差小于一定值后,訓(xùn)練迭代停止;④保存連接權(quán)值及閾值,輸出訓(xùn)練值;⑤采用新的輸入因子,根據(jù)BP網(wǎng)絡(luò)的連接權(quán)值及閾值,可得到預(yù)測值。
2.2 基于遺傳算法的泥沙模型建立步驟
基于遺傳算法的泥沙模型建立步驟如下:①根據(jù)河道治理實(shí)踐,建立經(jīng)驗(yàn)公式,假定河流進(jìn)口斷面流量Q上、出口斷面含沙量S下、河道比降J是決定河道輸沙率QS的相關(guān)因素,建立QS與Q上、S下、J之間的經(jīng)驗(yàn)關(guān)系,可能有直線形式、指數(shù)形式、對數(shù)形式、三角函數(shù)或其組合等;②將經(jīng)驗(yàn)公式涉及的自變量、因變量整理、輸入到模型軟件中;③設(shè)定優(yōu)化函數(shù);④采用遺傳算法優(yōu)化經(jīng)驗(yàn)公式中的參數(shù),使計(jì)算值與實(shí)測值差別(優(yōu)化函數(shù)殘差)震蕩減小;⑤在達(dá)到指定迭代次數(shù)并且優(yōu)化函數(shù)殘差小于一定值后,保存經(jīng)驗(yàn)公式中的參數(shù),輸入新的自變量組次,采用該公式可得到預(yù)測值。
2.3 模型軟件功能設(shè)計(jì)
考慮基于神經(jīng)網(wǎng)絡(luò)和遺傳算法的泥沙模型軟件的計(jì)算及管理特點(diǎn),該模型軟件功能見表1。
3 模型軟件開發(fā)及計(jì)算過程的通用化、可視化
3.1 軟件登錄
系統(tǒng)主界面按照功能區(qū)域可分為3個(gè)部分:一是系統(tǒng)主菜單區(qū),包括模型計(jì)算、方案管理、統(tǒng)計(jì)報(bào)表、數(shù)據(jù)圖表、動(dòng)態(tài)顯示和結(jié)果查詢6個(gè)主要功能按鈕;二是功能子菜單區(qū),根據(jù)系統(tǒng)主要功能的選擇不同顯示相對應(yīng)的詳細(xì)操作功能;三是地圖平面顯示區(qū),由黃河流域水系GIS地圖構(gòu)成,并將各計(jì)算模型布置在GIS圖形對應(yīng)水庫位置上,便于用戶直觀地點(diǎn)擊計(jì)算模型和進(jìn)行主要參數(shù)的查詢。
3.2 模型計(jì)算
進(jìn)入軟件主界面后,點(diǎn)擊“模型計(jì)算”按鈕,進(jìn)入模型計(jì)算界面?!澳P陀?jì)算”主界面包括方案選擇的相關(guān)信息、運(yùn)用方式選擇、水沙系列選擇、起始年份與計(jì)算年數(shù)、創(chuàng)建時(shí)間與創(chuàng)建用戶、方案說明等。
模型計(jì)算是軟件研發(fā)中最為核心的功能模塊,承擔(dān)著計(jì)算前處理、模型計(jì)算過程控制、模型計(jì)算后處理、模型計(jì)算進(jìn)度、計(jì)算中間過程數(shù)據(jù)的顯示分析以及神經(jīng)網(wǎng)絡(luò)與遺傳算法相結(jié)合的多模型聯(lián)合計(jì)算控制等重要功能的實(shí)現(xiàn)。主要功能模塊如下。
(1)分組統(tǒng)計(jì)模塊。
流量是影響河道沖淤能力的關(guān)鍵參數(shù)之一,發(fā)電量、引水供水量、輸沙能力、河道糙率計(jì)算等都與流量有關(guān),因此分組流量統(tǒng)計(jì)是一項(xiàng)非常常見的工作,對長系列而言,如果用常規(guī)方法統(tǒng)計(jì),工作十分繁瑣。在該模塊中填寫左側(cè)相關(guān)分析數(shù)據(jù)并準(zhǔn)備好基于Excel表格的數(shù)據(jù)后,點(diǎn)擊“開始統(tǒng)計(jì)”按鈕,分流量級(jí)統(tǒng)計(jì)數(shù)據(jù)即在屏幕右側(cè)顯示。
該模塊除了應(yīng)用于流量分組統(tǒng)計(jì)以外,還可以應(yīng)用于其他任何同類物理量(如降雨量、含沙量、集水面積等)的分組統(tǒng)計(jì),只要將待分組的數(shù)據(jù)按照輸入格式整理,點(diǎn)擊相應(yīng)按鈕即可迅速獲得結(jié)果,大大提高了工作效率。
(2)BP網(wǎng)絡(luò)訓(xùn)練和預(yù)測模塊。點(diǎn)擊BP網(wǎng)絡(luò)訓(xùn)練按鈕可進(jìn)行相應(yīng)BP網(wǎng)絡(luò)訓(xùn)練與預(yù)測,以參考文獻(xiàn)[3]所列數(shù)據(jù)為例,輸入黃河干流下河沿水文站水量、沙量、區(qū)間水沙量,各流量級(jí)出現(xiàn)天數(shù)由分組統(tǒng)計(jì)模型得出,以寧蒙河段1953—1999年(水文年)實(shí)測淤積量作為訓(xùn)練系列,2000—2004年作為預(yù)測系列,累計(jì)沖淤量訓(xùn)練(或預(yù)測)結(jié)果與實(shí)測值進(jìn)行對比驗(yàn)證,結(jié)果比較合理[3]。
(3)遺傳算法應(yīng)用模塊。選擇遺傳算法應(yīng)用模塊,在左側(cè)菜單欄填入對應(yīng)數(shù)據(jù)、函數(shù)或參數(shù),點(diǎn)擊“開始計(jì)算”按鈕,按遺傳算法規(guī)則進(jìn)行一元函數(shù)計(jì)算,輸出結(jié)果見表3。由表3可知,計(jì)算值與精確值十分接近,表明應(yīng)用模塊測試正確。
(4)BP網(wǎng)絡(luò)與遺傳算法的結(jié)合模塊測試。BP網(wǎng)絡(luò)的參數(shù)包括連接權(quán)值及閾值,所謂BP網(wǎng)絡(luò)的參數(shù)優(yōu)化問題是指通過迭代改進(jìn)這些參數(shù),使網(wǎng)絡(luò)全局誤差更小。在BP算法訓(xùn)練網(wǎng)絡(luò)出現(xiàn)收斂速度緩慢時(shí)啟用GA來優(yōu)化網(wǎng)絡(luò)參數(shù),把GA的優(yōu)化結(jié)果作為BP算法的初始值再用BP算法訓(xùn)練網(wǎng)絡(luò),如此交替運(yùn)行BP算法和GA就可加快網(wǎng)絡(luò)的收斂速度,同時(shí)在一定程度上改善局部最小問題。這樣交替利用BP算法和GA來訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)的方法,稱之為BP-GA混合算法。該算法包括如下8步:①BP網(wǎng)絡(luò)的自變量參數(shù)變化區(qū)間的構(gòu)造;②BP網(wǎng)絡(luò)的參數(shù)的編碼;③初始父代的生成;④父代個(gè)體的適應(yīng)能力評(píng)價(jià);⑤父代個(gè)體的選擇;⑥父代個(gè)體的雜交;⑦子代個(gè)體的變異;⑧進(jìn)化迭代[4]。
本次軟件開發(fā)時(shí)嵌入BP-GA混合算法模塊,采用參考文獻(xiàn)[5]所列37組水槽試驗(yàn)挾沙力數(shù)據(jù),分別用BP網(wǎng)絡(luò)方法和BP-GA算法進(jìn)行網(wǎng)絡(luò)訓(xùn)練,結(jié)果表明:將初始連接權(quán)和閾值優(yōu)化后,歸一化后37組數(shù)據(jù)的綜合誤差由9.92×10-3下降為6.37×10-3,也就是說,BP-GA優(yōu)化參數(shù)后,誤差下降了35.8%,分散度減小,說明BP網(wǎng)絡(luò)與遺傳算法的結(jié)合模塊通過了測試[5]。
在幾個(gè)核心計(jì)算模塊開發(fā)完成并成功通過測試后,將它們無縫嵌入到模型軟件中,通過方案管理、結(jié)果查詢等輔助模塊,實(shí)現(xiàn)計(jì)算過程的通用化和可視化。
3.3 方案管理
方案管理功能子菜單包含了創(chuàng)建方案、刪除方案、打開方案、方案對比、關(guān)閉方案5個(gè)功能操作按鈕,并可以通過方案名稱、創(chuàng)建人、創(chuàng)建日期等信息進(jìn)行查詢。其中方案對比提供了對系統(tǒng)數(shù)據(jù)庫內(nèi)所有已建方案模型計(jì)算結(jié)果的比對功能,通過選定任意個(gè)數(shù)的方案名稱,即可對全河各個(gè)庫區(qū)的模型計(jì)算結(jié)果按數(shù)據(jù)類型、系列年份進(jìn)行分類比選,結(jié)果以圖表形式直觀地顯示,同時(shí)支持顯示結(jié)果的導(dǎo)出功能。
3.4 結(jié)果查詢
該模塊提供了豐富的模型計(jì)算結(jié)果數(shù)據(jù)分析手段和顯示方式,模塊基于Tee Chart Pro V5和MSH Flex Grid 6.0兩大功能組件進(jìn)行了二次開發(fā),實(shí)現(xiàn)了圖表、報(bào)表、動(dòng)態(tài)顯示相結(jié)合的結(jié)果顯示分析手段。
通過與GIS綜合顯示分析相結(jié)合,用戶可以直接在相應(yīng)地形圖上選擇所要計(jì)算及訓(xùn)練的河段泥沙相關(guān)信息,系統(tǒng)將自動(dòng)識(shí)別當(dāng)前所選河道、水庫的名稱、類型以及所對應(yīng)的數(shù)學(xué)模型信息,同時(shí)在GIS地圖上以浮動(dòng)窗口的形式顯示該數(shù)學(xué)模型的所有計(jì)算結(jié)果類型供用戶選擇查詢。
結(jié)果查詢模塊支持流量、輸沙率、含沙量、沖淤量、水庫蓄水量、水位等數(shù)據(jù)類型的查詢,選擇計(jì)算結(jié)果年份范圍、數(shù)據(jù)類型后點(diǎn)擊查詢按鈕,顯示查詢結(jié)果數(shù)據(jù)表,模型結(jié)果顯示分析包含的統(tǒng)計(jì)報(bào)表、數(shù)據(jù)圖表和動(dòng)態(tài)顯示等內(nèi)容都穿插在各個(gè)模塊中。
4 模型應(yīng)用之一——黃河口流路運(yùn)用方案比選
黃河入??谖挥诓澈澈腿R州灣之間,現(xiàn)行清水溝流路于1976年5月開始行河,改汊流路有3條,即現(xiàn)行清8汊河、北汊、1996年改汊前的河道。刁口河是1964—1976年行河的老河道,是黃河河口綜合治理規(guī)劃的備用流路。
4.1 清水溝、刁口河聯(lián)合運(yùn)用方案
入海流路改道控制條件: 黃河河口發(fā)生10 000 m3/s洪水時(shí)西河口水位不超過12 m(大沽高程,下同)。清水溝計(jì)算初始條件為2017年汛前地形,刁口河采用過流能力3 000 m3/s的主河槽開挖后的地形,對兩流路聯(lián)合運(yùn)用方案進(jìn)行簡要說明,見表4[6]。
4.2 評(píng)價(jià)指標(biāo)及計(jì)算值
黃河口泥沙處置4個(gè)評(píng)價(jià)準(zhǔn)則為技術(shù)、經(jīng)濟(jì)、生態(tài)、社會(huì),包括11個(gè)指標(biāo),見表5。
4.3 評(píng)價(jià)結(jié)果
在評(píng)價(jià)指標(biāo)中,數(shù)值最大為“優(yōu)”的有平灘流量、外海輸沙量、經(jīng)濟(jì)效益、供水保證率、生態(tài)流量保證率、濕地供水天數(shù)、代表性物種數(shù)量;數(shù)值最小為“優(yōu)”的有淤積量經(jīng)濟(jì)投入、遷移人口、海岸侵蝕。選擇各指標(biāo)最優(yōu)的為第一行,各指標(biāo)平均值為第二行,各指標(biāo)最差的為第三行,建立評(píng)價(jià)矩陣:
將矩陣(1)處理成數(shù)值均為0.05~0.95之間的輸入文件,認(rèn)為輸出因子為矩陣(2),使用本次“基于神經(jīng)網(wǎng)絡(luò)和遺傳算法的泥沙模型”BP網(wǎng)絡(luò)模塊訓(xùn)練20萬次,全局誤差E=2.31×10-4,說明訓(xùn)練效果較好。以第1~6方案的各指標(biāo)數(shù)值作為輸入值,使用BP網(wǎng)絡(luò)預(yù)測模塊,可得到輸出值分別為0.41、0.61、0.44、0.71、0.33、0.51。
由于方案4得到的輸出值0.71為各方案中的最大值,因此將方案4作為清水溝、刁口河聯(lián)合運(yùn)用的推薦方案。這與文獻(xiàn)[6]結(jié)論一致,說明成果比較可靠。
5 模型應(yīng)用之二——多泥沙河流斷面概化
令m為實(shí)測資料總組數(shù),采用“基于神經(jīng)網(wǎng)絡(luò)和遺傳算法的泥沙模型”軟件中的遺傳算法模塊來優(yōu)化式(5)的參數(shù)ci,使優(yōu)化函數(shù)的E極小化。
南京水利科學(xué)研究院在室內(nèi)大型水槽中對多泥沙河流斷面形態(tài)進(jìn)行了試驗(yàn)研究,共進(jìn)行了11組[1]。表7列出了本次GA算法和多元線性回歸法的計(jì)算結(jié)果。
采用北洛河朝邑站1970年7月—1973年10月共24組實(shí)測數(shù)據(jù)[1]對本軟件中GA算法的適用性進(jìn)行檢驗(yàn),結(jié)果見表8。
從表7和表8可以看出,在大多數(shù)情況下,采用GA法得到的E比多元線性回歸法略小,小部分比多元線性回歸法稍大,說明采用本模型軟件中遺傳算法模塊研究多沙河流斷面概化是成功的。
6 結(jié) 語
針對黃河泥沙問題,結(jié)合實(shí)際工作需要和現(xiàn)有經(jīng)驗(yàn)?zāi)P偷膬?yōu)點(diǎn),對BP神經(jīng)網(wǎng)絡(luò)和遺傳算法這兩類非線性數(shù)學(xué)優(yōu)化方法進(jìn)行研究,通過改善現(xiàn)有多泥沙河流的經(jīng)驗(yàn)計(jì)算方法,提高模型結(jié)果準(zhǔn)確度和工作效率,建立了一套適用面寬、準(zhǔn)確性較高、易修改的數(shù)學(xué)模型,可方便地應(yīng)用于黃河泥沙問題規(guī)劃研究實(shí)際工作中,主要結(jié)論如下。
(1)綜合“基于神經(jīng)網(wǎng)絡(luò)和遺傳算法的泥沙模型軟件”的計(jì)算及管理的特點(diǎn),設(shè)計(jì)完成了軟件功能表和模型功能模塊。
(2)根據(jù)BP網(wǎng)絡(luò)原理和訓(xùn)練流程、遺傳算法原理,優(yōu)化BP網(wǎng)絡(luò)參數(shù)的加速遺傳算法過程,編制了計(jì)算程序,并在研發(fā)的軟件中測試正確;將計(jì)算模塊無縫嵌入到模型軟件中,通過方案管理、結(jié)果查詢等輔助模塊,實(shí)現(xiàn)了計(jì)算過程的通用化和可視化。
(3)本模型軟件的組成模塊在黃河口流路運(yùn)用方案比選、多泥沙河流斷面概化中得到應(yīng)用,經(jīng)分析成果比較合理。
參考文獻(xiàn):
[1] 陳雄波.挾沙水流數(shù)值模擬中若干關(guān)鍵技術(shù)的研究[D].南京:河海大學(xué),2004:14-32.
[2] 金菊良.遺傳算法及其在水問題中的應(yīng)用[D].南京:河海大學(xué),1998:1-142.
[3] 王莉,陳雄波,程冀.寧蒙河段沖淤量和平灘流量影響因素的BP分析[J].人民黃河,2009,31(11):38-39.
[4] 李海民,吳成柯.基于BP網(wǎng)絡(luò)的遺傳算法[J].模式識(shí)別與人工智能,1999(2):223-228.
[5] 陳松,邱衛(wèi)國,陳雄波.水流挾沙力研究的BP-GA方法[J].人民黃河,2010,32(9):33-34.
[6] 陳雄波,雷鳴,王鵬.清水溝、刁口河流路聯(lián)合運(yùn)用方案比選[J].海洋工程,2014,32(4):117-123.
【責(zé)任編輯 張 帥】