張海龍
(新疆維吾爾自治區(qū)烏魯瓦提水利樞紐管理局,新疆 和田 848000)
土石壩的滲流狀態(tài)是影響其整體安全和運(yùn)行的重要因素之一,對(duì)土石壩的滲流狀態(tài)進(jìn)行監(jiān)控并利用監(jiān)測(cè)資料建立合適的模型對(duì)其進(jìn)行預(yù)測(cè)分析具有重大意義[1~2]。目前,統(tǒng)計(jì)模型、確定性模型和混合模型在這一領(lǐng)域應(yīng)用較多[3]。然而,這幾種傳統(tǒng)模型的精準(zhǔn)度并不穩(wěn)定,也經(jīng)常出現(xiàn)回歸錯(cuò)誤,且當(dāng)大壩遇到環(huán)境變化惡劣的情況時(shí),傳統(tǒng)模型的預(yù)測(cè)效果更為不佳。人工神經(jīng)網(wǎng)絡(luò)適應(yīng)性強(qiáng),可以用來預(yù)測(cè)非線性數(shù)據(jù),因此被運(yùn)用到監(jiān)控模型中。然而BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程冗長,局部極值困擾大,因此諸多學(xué)者對(duì)其進(jìn)行改進(jìn)[4~6],并提出相應(yīng)的改進(jìn)算法。本文引入遺傳算法改進(jìn)傳統(tǒng)蟻群算法(ACO),在此基礎(chǔ)上建立GACO-BP的土石壩滲流壓力預(yù)測(cè)模型。以某土石壩實(shí)測(cè)資料為例,對(duì)傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型和改進(jìn)模型的預(yù)測(cè)能力進(jìn)行定量對(duì)比和分析。
蟻群算法(ACO)是由 Macro Dorigot等人[7~8]提出,起初用于解決TSP問題。TSP問題表示為:螞蟻從A地前往B地,一定要經(jīng)過且只能經(jīng)過一次A、B間給定的n個(gè)地點(diǎn),最后從B回到A,找出一條最短閉合線路。用dij表示兩地之間的距離;τij(t)表示t時(shí)刻兩地之間信息素的濃度。
然而,蟻群算法在求解最優(yōu)路徑時(shí)花費(fèi)的時(shí)間長,速度慢。而遺傳算法[9]在求解大規(guī)模的最優(yōu)路徑時(shí)速度快,范圍廣,較有優(yōu)勢(shì)。遺傳算法可彌補(bǔ)蟻群算法的這一缺點(diǎn),故將其引入,優(yōu)化蟻群算法。
遺傳蟻群混合算法的基本思想是在算法的前期采用遺傳算法,利用遺傳算法快速隨機(jī)、全局收斂性來形成蟻群算法中的初始信息素分布情況,然后進(jìn)行蟻群算法操作。這樣就克服了蟻群算法由于初期信息素匱乏而導(dǎo)致的收斂速度慢的缺點(diǎn)。
實(shí)現(xiàn)遺傳蟻群混合算法的主要步驟如下:
步驟1:確定遺傳算法中的編碼方式、適應(yīng)度函數(shù)、種群大小,以及選擇、交叉、變異的方法與概率;確定蟻群算法中的螞蟻數(shù)量、算法迭代次數(shù)、信息素啟發(fā)式因子a的大小、期望值啟發(fā)式因子的大小、信息素殘留系數(shù)ρ的大小等;
步驟2:用遺傳算法迭代出N個(gè)較優(yōu)解;
步驟3:將遺傳算法中得到的種群信息轉(zhuǎn)化為蟻群算法中所需的信息素矩陣;
步驟4:用蟻群算法繼續(xù)求解,得到新的可行解。
遺傳蟻群算法具體實(shí)現(xiàn)流程圖見圖1。
圖1 遺傳蟻群算法流程圖
遺傳算法與蟻群算法的混合主要包括兩個(gè)關(guān)鍵策略:一是如何確定遺傳算法停止執(zhí)行進(jìn)入蟻群算法的最佳時(shí)刻;二是如何將遺傳算法迭代得到的信息轉(zhuǎn)換為蟻群算法中得初始信息素的濃度矩陣。本文針對(duì)這兩點(diǎn)各提出一種解決方法,實(shí)現(xiàn)對(duì)傳統(tǒng)蟻群算法的改進(jìn)。
1.2.1 最佳時(shí)刻的確定
通過試驗(yàn)研究發(fā)現(xiàn),兩種算法的關(guān)系見圖2。
圖2 遺傳算法與蟻群算法速度-時(shí)間曲線
由圖可知,GA算法在起步階段(t0~ta階段)的收斂速度明顯高于蟻群算法,但是隨著時(shí)間的推移,速度減慢,效率降低。而蟻群算法卻恰恰相反,起步時(shí)候收斂速度非常緩慢,隨著時(shí)間推移,速度迅速提高。在ta時(shí)刻之前和之后GA算法和蟻群算法分別表現(xiàn)出了很好的收斂效果,因此a點(diǎn)可以看作是兩種算法融合的最佳點(diǎn)。
對(duì)于最佳時(shí)刻a的確定,傳統(tǒng)的遺傳蟻群混合算法主要是給遺傳算法部分設(shè)置一個(gè)固定的迭代次數(shù)(例如20次),等待遺傳算法迭代完成規(guī)定次數(shù)以后才會(huì)進(jìn)入蟻群算法,這種融合方法在應(yīng)用實(shí)驗(yàn)中取得了良好的效果,但是,這種融合方式存在盲目性,未充分考慮兩種算法的搜索特性。如果迭代次數(shù)設(shè)置不當(dāng),會(huì)造成過早(如時(shí)刻)或過晚(如時(shí)刻)地結(jié)束遺傳算法,導(dǎo)致兩種算法融合失敗。
考慮到GA算法在運(yùn)行到一定時(shí)間后(b點(diǎn)以后),適應(yīng)度變化緩慢,收斂速度快速降低,本文提出對(duì)遺傳算法的收斂速度曲線進(jìn)行分析,通過尋找曲線的拐點(diǎn)而動(dòng)態(tài)確定算法融合的最佳時(shí)機(jī),以實(shí)現(xiàn)遺傳算法和蟻群算法的動(dòng)態(tài)融合,體現(xiàn)了融合的靈活性。
在混合算法中,由遺傳算法轉(zhuǎn)換到蟻群算法的條件,即拐點(diǎn)的確定,可以簡為以下幾點(diǎn):
(1)建立遺傳算法收斂速度的評(píng)價(jià)函數(shù);
(2)設(shè)F(n)為第n代種群最優(yōu)適應(yīng)度函數(shù),令:
式中:Q為常量。
(3)當(dāng)連續(xù)k次出現(xiàn)v(n+1)-v(n)小于設(shè)定的閾值的情況,說明遺傳算法的收斂效率已經(jīng)變得低下,此時(shí)可以轉(zhuǎn)入蟻群算法。
1.2.2 信息轉(zhuǎn)換
在遺傳蟻群混合算法中,蟻群算法的信息素初始分布矩陣是由遺傳算法迭代得到的優(yōu)化種群經(jīng)過轉(zhuǎn)換所得的。因此,將遺傳算法產(chǎn)生的最優(yōu)解轉(zhuǎn)化為蟻群算法的初始信息素,也是算法融合的一個(gè)關(guān)鍵之處。
由于蟻群算法采用最大最小蟻群系統(tǒng)(MMAS,Max-Min Ant System),將蟻群算法的初始信息素矩陣設(shè)置為 τS=τC+τG,其中τC為常數(shù),其取值根據(jù)具體問題給定,相當(dāng)于MMAS系統(tǒng)中的 τmin,τG為信息素分布。
本文提出一種由GA算法得到信息素濃度分布矩陣的方法,具體計(jì)算步驟如下:
(1)由遺傳算法迭代求解問題;
(2)將遺傳算法終止時(shí)的種群按照適應(yīng)度值由大到小排序,選擇前n/2個(gè)適應(yīng)度最高的染色體(其中n為城市的數(shù)目)組成矩陣T1。矩陣中每一行是一個(gè)染色體,每一個(gè)染色體代表一個(gè)問題解的路徑,而矩陣中的每個(gè)元素又都代表了一個(gè)城市。同時(shí),為了避免蟻群算法陷入局部最優(yōu)或停滯,將再隨機(jī)生成n/2個(gè)染色體組成矩陣T2,最后將T1和T2組合為新的n×n階的矩陣T。
(3)計(jì)算矩陣T中兩個(gè)城市連接路徑e(i,j)出現(xiàn)的次數(shù)kij,將kij/2n作為蟻群算法中初始信息素矩陣中 τ(i,j)和 τ(j,i)的值。若兩城市沒有建立連接路徑關(guān)系則對(duì)應(yīng)的信息素矩陣中的值設(shè)為0。
BP神經(jīng)網(wǎng)絡(luò)的基本原理和訓(xùn)練方法及過程已有諸多學(xué)者敘述過[10],這里不再具體闡述。
本文擬用遺傳蟻群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值的更新,并通過建立的GACO-BP神經(jīng)網(wǎng)絡(luò)模型對(duì)土石壩的滲流壓力進(jìn)行預(yù)測(cè)。
根據(jù)吳中如院士提出的理論,本文建立如下的滲流壓力監(jiān)控預(yù)測(cè)模型:
式中:h為滲流壓力水位;Ht為當(dāng)天水位;Rt為當(dāng)天雨量;fH、fR、fθ分別為水位因子、降水因子和時(shí)間因子;表示觀測(cè)日前的第i日到第j日的平均水位;為觀測(cè)日前第i日到第j日的平均雨量;θ為觀測(cè)日至始測(cè)日的累加日數(shù)除以 100;a0、ak、b0、bk、c0、c1為回歸系數(shù)。
對(duì)隱含層節(jié)點(diǎn)數(shù)的確定,至今沒有一個(gè)科學(xué)的理論能指導(dǎo)我們確定系統(tǒng)的運(yùn)行性能最優(yōu)對(duì)應(yīng)的隱含層節(jié)點(diǎn)數(shù),僅有實(shí)驗(yàn)表明:如果隱含層節(jié)點(diǎn)數(shù)設(shè)置較少,BP網(wǎng)絡(luò)系統(tǒng)的收斂速度會(huì)相對(duì)較慢,甚至無法收斂;但是,隱含層節(jié)點(diǎn)數(shù)設(shè)置過多又會(huì)使BP網(wǎng)絡(luò)在結(jié)構(gòu)上過于繁雜,導(dǎo)致計(jì)算量過大,學(xué)習(xí)時(shí)間過長。為了提高網(wǎng)絡(luò)系統(tǒng)的性能,可以根據(jù)式(3)來確定隱含層節(jié)點(diǎn)數(shù)。
式中:W為中間層節(jié)點(diǎn)數(shù);x和y分別為輸入層和輸出層節(jié)點(diǎn)數(shù);z為任意數(shù),z∈(0,10)。
在三層結(jié)構(gòu)中,輸出層傳遞函數(shù)選擇線性函數(shù)“purelin”,而隱含層的傳遞函數(shù)選擇“tan-sigmoid”。本文建立3層“13×10×1”的網(wǎng)絡(luò)結(jié)構(gòu)模式,隱含層節(jié)點(diǎn)數(shù)為10。
基于GACO-BP模型的土石壩滲流壓力預(yù)測(cè)流程見圖3。
圖3 基于GACO-BP神經(jīng)網(wǎng)絡(luò)模型的土石壩滲流壓力預(yù)測(cè)流程
某水庫位于江蘇省金壇市茅山東麓薛埠河上游丘陵地區(qū),水庫設(shè)計(jì)洪水位28.57 m,校核洪水位29.59 m,正常蓄水位27.0 m,死水位16.70 m。水庫大壩為均質(zhì)土壩,主要為粉質(zhì)粘土及粘土,壩頂高程31.26 m,最大壩高約17.0 m。該水庫的大壩安全監(jiān)測(cè)系統(tǒng)建于2006年,主要進(jìn)行環(huán)境、滲流和變形監(jiān)測(cè)。
遺傳算法中,設(shè)計(jì)變量采用實(shí)數(shù)編碼,目標(biāo)函數(shù)取為:
個(gè)體適應(yīng)度函數(shù)取為:
定義各參數(shù)初值:種群個(gè)體數(shù)量取為200,最大進(jìn)化代數(shù)取為300,采用輪盤賭選擇法進(jìn)行選擇操作,交叉概率取為0.5,變異概率取為0.25,其余參數(shù)根據(jù)經(jīng)驗(yàn)取相應(yīng)合適值。
蟻群算法中,定義各參數(shù)初值:最大循環(huán)次數(shù)Mmax=300,螞蟻數(shù)量取為50,信息素啟發(fā)式因子α=1,期望值啟發(fā)式因子β=5,信息素殘留系數(shù)ρ=0.7,其余參數(shù)根據(jù)經(jīng)驗(yàn)取相應(yīng)合適值。
經(jīng)過對(duì)比嘗試本文將學(xué)習(xí)次數(shù)定為5000,速率定為0.02,學(xué)習(xí)目標(biāo)定為0.002。
為了對(duì)所構(gòu)建的GACO-BP預(yù)警模型的可行性和有效性進(jìn)行驗(yàn)證,在該土石壩的所有測(cè)點(diǎn)中選取兩個(gè)代表測(cè)點(diǎn)(命名為第一測(cè)點(diǎn)和第二測(cè)點(diǎn))的數(shù)據(jù)進(jìn)行仿真計(jì)算,以該土石壩2011年9月10日~2013年9月10日的監(jiān)測(cè)資料作為訓(xùn)練樣本,以2013年9月11日~2013年10月10日的監(jiān)測(cè)資料作為預(yù)測(cè)樣本。
為了使輸入數(shù)據(jù)更加適合神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,提高學(xué)習(xí)速度,在開始仿真計(jì)算前,先要對(duì)學(xué)習(xí)樣本進(jìn)行預(yù)處理。采用極差正規(guī)化方法,對(duì)樣本輸入值及輸出值進(jìn)行歸一化處理,見式(6)。
式中:為歸一化后的值;Xm為原始數(shù)據(jù);Xmax、Xmin分別代表被處理樣本中的最大值和最小值。
給定精度0.001,利用MATLAB對(duì)GACO-BP神經(jīng)網(wǎng)絡(luò)滲流壓力預(yù)測(cè)模型和標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行多次仿真試驗(yàn),對(duì)比兩者的最優(yōu)訓(xùn)練速度見表1。
表1 GACO-BP與標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練速度對(duì)比
從表1可以看出,GACO-BP對(duì)觀測(cè)數(shù)據(jù)進(jìn)行內(nèi)部訓(xùn)練僅5次就完成,訓(xùn)練時(shí)長只需1 min,而標(biāo)準(zhǔn)BP卻需要4982次才能完成訓(xùn)練,相應(yīng)的時(shí)長也達(dá)到104 min,由此可以發(fā)現(xiàn)GACO-BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型的訓(xùn)練速度比標(biāo)準(zhǔn)BP快很多。
為了更清晰地了解GACO-BP神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)效果,采用相同結(jié)構(gòu)和參數(shù)設(shè)定的標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)模型通過MATLAB對(duì)相同的數(shù)據(jù)樣本進(jìn)行訓(xùn)練并進(jìn)行仿真預(yù)測(cè),對(duì)比兩種模型的預(yù)測(cè)效果。兩測(cè)點(diǎn)的預(yù)測(cè)過程線分別見圖4和圖5。
圖4 第一測(cè)點(diǎn)兩種模型預(yù)測(cè)結(jié)果對(duì)比
圖5 第二測(cè)點(diǎn)兩種模型預(yù)測(cè)結(jié)果對(duì)比
從圖4和圖5中可以明顯看出標(biāo)準(zhǔn)BP模型的預(yù)測(cè)結(jié)果相對(duì)偏離實(shí)際值,而改進(jìn)的GACO-BP模型對(duì)于測(cè)壓管水位的預(yù)測(cè)結(jié)果基本與實(shí)際吻合,直觀地說明了GACO-BP模型擬合的效果更好,并且更加穩(wěn)定。
以第一測(cè)點(diǎn)為例,對(duì)兩種模型的預(yù)測(cè)結(jié)果和預(yù)測(cè)精度進(jìn)行定量的對(duì)比,具體情況見表2。
表2 第一測(cè)點(diǎn)兩種模型預(yù)測(cè)結(jié)果對(duì)比
從表2中可以看出經(jīng)過改進(jìn)的GACO-BP神經(jīng)網(wǎng)絡(luò)模型對(duì)土石壩測(cè)壓管水位預(yù)測(cè)的平均絕對(duì)誤差和平均相對(duì)誤差都比標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)模型小3倍左右,說明經(jīng)過改進(jìn)的模型預(yù)測(cè)精度明顯提高,對(duì)標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)模型的改進(jìn)是成功的。
綜合來看,經(jīng)過改進(jìn)的GACO-BP神經(jīng)網(wǎng)絡(luò)模型對(duì)該土石壩測(cè)壓管水位的預(yù)測(cè)精度高,穩(wěn)定性強(qiáng),滿足要求,說明該模型是可以運(yùn)用到土石壩的預(yù)測(cè)領(lǐng)域的。
1)蟻群算法有強(qiáng)魯棒性、易于與其他算法結(jié)合以及優(yōu)良的分布式計(jì)算機(jī)制等優(yōu)點(diǎn)。將其應(yīng)用于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)得到的結(jié)果擬合精度較高,為以后的進(jìn)一步研究奠定了基礎(chǔ)。
2)通過算例對(duì)比標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型,直觀地發(fā)現(xiàn)經(jīng)過改進(jìn)的GACO-BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型具有更高的精度和訓(xùn)練效率,實(shí)例應(yīng)用中的結(jié)果驗(yàn)證了GACO-BP在土石壩滲流壓力預(yù)測(cè)中的實(shí)用性。