王玉蓮 黃林顯 桑國慶等
關(guān)鍵詞:地下水管理模型;自適應(yīng)罰函數(shù);遺傳算法(GA);MODFLOW
中圖分類號:P641.2 文獻(xiàn)標(biāo)志碼:A
doi:10.3969/j.issn.1000-1379.2022.03.014
引用格式:王玉蓮,黃林顯,桑國慶,等.基于自適應(yīng)罰函數(shù)遺傳算法求解地下水管理模型[J].人民黃河,2022,44(3):69-73.
近幾十年來,地下水管理模型被廣泛應(yīng)用于地下水資源優(yōu)化管理工作中[1-3],對于無約束優(yōu)化問題的求解產(chǎn)生許多成熟的方法,如基于梯度尋優(yōu)的方法等。但地下水資源優(yōu)化管理往往涉及復(fù)雜的環(huán)境、水文地質(zhì)和經(jīng)濟(jì)等約束條件,并且其代價函數(shù)往往不連續(xù)可導(dǎo),對于約束優(yōu)化問題(特別是非線性約束優(yōu)化問題),傳統(tǒng)的梯度尋優(yōu)類方法通常很難取得好的優(yōu)化效果[4-7]。
國內(nèi)外學(xué)者對利用遺傳算法求解地下水管理模型進(jìn)行了許多研究。利用遺傳算法求解約束優(yōu)化問題的難點(diǎn)在于有效合理選取罰函數(shù),最簡單的罰函數(shù)使用方法是對違反限制條件的解施加某種固定罰因子,使其適應(yīng)度函數(shù)變差[8],但是如何合理有效選取罰因子成為制約該方法優(yōu)化效果的難點(diǎn)。罰因子取值過大容易造成算法過早地收斂于局部極值點(diǎn),取值過小又可能造成算法的收斂性能變差。Wu等[9]提出了一種可以人為進(jìn)化罰因子和目標(biāo)函數(shù)的自適應(yīng)罰函數(shù)方法,Lin等[10-11]提出了一種新型自適應(yīng)罰函數(shù)方法用于解決約束條件優(yōu)化問題,Powell等[12]提出了一種罰函數(shù)構(gòu)造方法并指出可行域解優(yōu)先度高于非可行域解。以上幾種方法同樣需要人為確定罰因子數(shù)值,同時當(dāng)種群含有較多非可行域解時,過度降低非可行域解的優(yōu)先度會大大影響搜索效率[8]。Cai等[13]、Wang等[14]和Afshari等[15]提出了多目標(biāo)優(yōu)化技術(shù)用來求解約束條件優(yōu)化問題。在各種多目標(biāo)優(yōu)化方法中,約束條件優(yōu)化問題被轉(zhuǎn)化為最小化(或最大化)目標(biāo)函數(shù)和最小化約束條件違反程度的雙目標(biāo)優(yōu)化問題。多目標(biāo)優(yōu)化方法的主要缺點(diǎn)是其需要耗費(fèi)大量計算資源,同時需要人為提供一些計算參數(shù)。
基于以上分析,本文提出一種自適應(yīng)罰函數(shù)遺傳算法用于求解有約束條件的地下水管理優(yōu)化問題,并進(jìn)行實(shí)際案例驗(yàn)證。該算法將地下水流數(shù)值模型MODFLOW嵌入到優(yōu)化算法GA中,數(shù)值模型模擬結(jié)果返回到優(yōu)化算法中作為約束條件,優(yōu)化過程通過GA求解;同時,該算法能夠根據(jù)求解過程中可行域個體的數(shù)量來自動選擇合適的罰因子值,克服了一般遺傳算法中罰因子取值的困難。
1方法原理
本研究提出的自適應(yīng)罰函數(shù)遺傳算法模型利用MODFLOW模擬地下水流運(yùn)移的物理過程;自適應(yīng)罰函數(shù)算法根據(jù)遺傳算法種群中可行域解所占的比例自動選取罰因子值的大小,并計算適應(yīng)度函數(shù);GA優(yōu)化算法根據(jù)適應(yīng)度函數(shù),通過選擇、交叉和變異3個過程,按照優(yōu)勝劣汰、適者生存的自然法則,最終搜索到全局最優(yōu)的個體。3個模塊通過計算機(jī)程序?qū)崿F(xiàn)相互之間的鏈接,并通過變量實(shí)現(xiàn)數(shù)據(jù)交換。模型的主要結(jié)構(gòu)及不同模塊之間的鏈接見圖1(其中BAS、LPF和WEL等為MODFLOW的子程序包,如WEL為模擬井流子程序包,見參考文獻(xiàn)[16])。
1.1地下水控制方程
根據(jù)能量守恒、質(zhì)量守恒以及Darcy定律,在不考慮水密度變化條件下,孔隙介質(zhì)中地下水三維流動偏微分方程可以用下式表示[16]:
本研究中,地下水水流模擬程序MODFLOW被用來模擬地下水滲流場的時空分布狀況。
1.2優(yōu)化模型
在一定的等式約束和不等式約束條件下,優(yōu)化模型往往表現(xiàn)為補(bǔ)給量或抽水量的最大化或抽水成本的最小化及最優(yōu)井位分布。本研究的實(shí)例為抽水量最大化,但在數(shù)值模型MODFLOW中抽水量為負(fù)值,因此其目標(biāo)函數(shù)可表示為
2基于自適應(yīng)罰函數(shù)的遺傳算法
2.1遺傳算法(GA)
遺傳算法(GA)是由美國Holland教授于20世紀(jì)70年代提出的建立在自然選擇和遺傳學(xué)機(jī)理基礎(chǔ)上的全局隨機(jī)進(jìn)化和搜索算法,目前已得到了廣泛應(yīng)用[17]。與傳統(tǒng)的基于梯度尋優(yōu)方法相比,遺傳算法尋優(yōu)不需優(yōu)化函數(shù)連續(xù)可導(dǎo),且能收斂到全局最優(yōu)解,因此能夠克服一些基于梯度尋優(yōu)方法的缺點(diǎn)。遺傳算法在每次迭代過程中都生成一個群體,群體中的每個個體對應(yīng)一組決策變量,按照某種標(biāo)準(zhǔn)從群體中選取較優(yōu)的個體,通過選擇、交叉和變異對種群進(jìn)行進(jìn)化,產(chǎn)生新一代種群;如此反復(fù),通過種群的不斷進(jìn)化,使個體逐代向全局最優(yōu)解空間轉(zhuǎn)移,直到達(dá)到某種收斂指標(biāo)為止。GA算法計算流程見圖2。
2.2自適應(yīng)罰函數(shù)法
罰函數(shù)法主要用來解決約束條件下的最優(yōu)化問題,通過把約束條件變?yōu)榱P函數(shù)使有約束的目標(biāo)函數(shù)變?yōu)闊o約束的目標(biāo)函數(shù);違反約束條件的個體將被附加一個罰函數(shù)值,從而使其適應(yīng)度值降低,減小其被選擇的概率。對于式(2)~式(4)的求解可以轉(zhuǎn)化為下列無約束問題:
傳統(tǒng)罰函數(shù)法的最大弊端是無法有效地選擇罰因子值,而如果罰因子值選取不恰當(dāng),適應(yīng)度值就可能在可行域之外達(dá)到某一平衡值或者陷入不成熟收斂而終止搜索。比如,內(nèi)罰函數(shù)法和外罰函數(shù)法若罰因子值無限增大則容易引起優(yōu)化結(jié)果對于輸入過度敏感的病態(tài)問題;乘子法通過引入拉格朗日乘子,可克服罰因子值無限增大的問題,但需要通過解決一系列無約束極小值問題來獲得最優(yōu)乘子和最優(yōu)解,從而增大了計算的復(fù)雜程度。
自適應(yīng)罰函數(shù)算法不需要人為選取罰因子值,而是根據(jù)優(yōu)化算法求解過程中可行域個體的數(shù)量來選擇合適的罰因子值:①對于可行域個體只考慮個體的標(biāo)準(zhǔn)化適應(yīng)度;②當(dāng)種群中可行域個體為0時,則只考慮個體的標(biāo)準(zhǔn)化偏離值,這樣設(shè)計的目的是首先找到位于可行域中的解,然后再去尋找最優(yōu)解;③當(dāng)位于可行域中的個體數(shù)量較少甚至接近于0(即rf很小或接近于0)時,則非可行域個體的標(biāo)準(zhǔn)化偏離值越大,懲罰的程度就越大;④當(dāng)位于可行域中的個體數(shù)量很大(即rf很大)時,則非可行域個體的標(biāo)準(zhǔn)化適應(yīng)度值越大,懲罰的程度就越大。
由于自適應(yīng)罰函數(shù)法可以在優(yōu)化過程中根據(jù)實(shí)際情況實(shí)時調(diào)整罰因子值,因此能夠更加迅速、有效地收斂到全局最優(yōu)解。自適應(yīng)罰函數(shù)GA算法的計算流程見圖3。
3案例研究
案例研究采用McKinney等[18]提出的一個擬建水源地實(shí)例,見圖4。該研究區(qū)為一個10000m×4500m的矩形區(qū)域,地下水流為二維潛水穩(wěn)定流;含水層底板水平,高程為980m;東部和西部邊界均為山體,可以概化為隔水邊界;南部和北部邊界均為地表水體,可以概化為給定水頭邊界(水位均為1000m)。假設(shè)潛水層單位面積上的補(bǔ)給強(qiáng)度B=0.001m/d,含水介質(zhì)為均質(zhì)各向同性,滲透系數(shù)K=50m/d。水源地擬建10口開采井,每口開采井的最大允許開采量為7000m3/d,最低允許水位為0m。對研究區(qū)進(jìn)行概化,如圖5所示。McKinney等[18]利用遺傳算法對該地下水管理實(shí)例進(jìn)行了求解,本文利用所提出的自適應(yīng)罰函數(shù)遺傳算法對該問題進(jìn)行求解,并與McKinney等的計算結(jié)果進(jìn)行比較。
設(shè)置進(jìn)化代數(shù)為100代,每一個群體包含200個個體,交叉概率為0.7,變異概率為0.05,優(yōu)化結(jié)果見表1。
由表1可以看出,相比McKinney等的遺傳算法,自適應(yīng)罰函數(shù)遺傳算法能夠收斂到更加精確的全局最優(yōu)解,原因主要是自適應(yīng)罰函數(shù)遺傳算法可以根據(jù)種群中可行域解的數(shù)量自動調(diào)節(jié)罰因子值的大小,且能夠同時保留可行域解和非可行域解的有用信息。對比不同的編碼精度可以看出,通過提高遺傳算法的編碼精度可以提高優(yōu)化結(jié)果的精度。
總開采量(即優(yōu)化模型的目標(biāo)函數(shù))隨進(jìn)化代數(shù)的變化見圖6??梢钥闯?,當(dāng)進(jìn)化代數(shù)較少時,總開采量較小,優(yōu)化模型無法收斂到全局最優(yōu)解;隨著進(jìn)化代數(shù)的增加,總開采量不斷增大,在進(jìn)化85代后基本達(dá)到穩(wěn)定,說明通過增加進(jìn)化代數(shù)可以收斂到全局最優(yōu)解,且該優(yōu)化模型求解的收斂速度較快。但需要注意的是,進(jìn)化代數(shù)的增加會帶來較大的計算負(fù)擔(dān),因此需要耗費(fèi)更長的時間去獲得最優(yōu)解,需要進(jìn)一步研究解決計算效率問題。
4結(jié)論
(1)自適應(yīng)罰函數(shù)遺傳算法可以根據(jù)可行域解的數(shù)量自主選取罰因子值,克服了一般遺傳算法中罰因子值選取的困難,能夠同時保留可行域解和非可行域解的搜索信息,確保獲得可行域上的全局最優(yōu)解,與傳統(tǒng)的一般遺傳算法相比,該算法求解精度更高。
(2)通過接口程序,實(shí)現(xiàn)了優(yōu)化算法GA和地下水水流模擬程序MODFLOW的鏈接,使得優(yōu)化過程中數(shù)據(jù)交換由文件讀取改進(jìn)為內(nèi)部變量傳遞,大大提高了優(yōu)化模型的計算效率。
(3)通過案例測試,自適應(yīng)罰函數(shù)遺傳算法收斂速度快、穩(wěn)定性好,在進(jìn)化代數(shù)較少的情況下就能夠收斂到全局最優(yōu)解。
(4)隨著進(jìn)化代數(shù)的增加,能夠提高求解精度,但計算負(fù)擔(dān)也會加大,需要進(jìn)一步研究解決計算效率問題。
【責(zé)任編輯 張華興】