曹懷火,歐陽艾嘉,艾海男
1.池州學院 數學與計算機科學系,安徽 池州 247000
2.湖南大學 計算機與通信學院,長沙 410082
3.重慶大學 三峽庫區生態環境教育部重點實驗室,重慶 400045
土壤水分特征曲線是表征土壤含水率與土壤水吸力的關系曲線,是定量研究土壤水分運動的重要參考。影響土壤水分特征曲線的因素非常復雜,通常情況下難以從理論上得出確定的關系式。因此,人們尋求一些經驗公式來數值模擬土壤水分特征曲線,目前國內外最為普遍使用的描述土壤水分特征曲線的Van Genuchten方程[1](簡稱VG方程)是美國學者Van Genuchten在1980年提出的,其具體表達式為:

其中θ為土壤含水率(m3/cm3);h為土壤水吸力(cm);θs為土壤飽和含水率(cm3/cm3);θr為土壤殘余含水率(cm3/cm3);α,m,n為土壤水分特征曲線形狀參數,m=1-1/n,n>1。
通常對于求解VG方程式(1)的參數估計問題采用間接法,即轉化為如下最優化模型(2)的求解問題:

其中θi為實測土壤含水率;hi為實測土壤基質勢;N為實測數據組數。傳統的優化方法[2-5]大多基于梯度計算,計算效率比較高,但由于其固有的局部優化性,并不適合于全局優化問題的求解。于是很多學者對求解VG方程的參數估計問題引入了智能進化算法,如遺傳算法、粒子群算法等[6-8],同時也取得了一定的效果。
由于遺傳算法和粒子群算法受初值影響,易于產生局部最優解等缺陷,目前很多學者給出了一些改進的遺傳算法[9]和改進的粒子群算法[10]。為了提高粒子群算法的收斂概率和減少迭代次數,綜合文獻[11-12]方法的思想,將lsqcurvefit擬合方法與粒子群優化算法相結合,構造一種新的混合型粒子群優化算法,并用于求解VG方程的參數估計問題。該算法不僅包含粒子群算法的全局搜索能力,還具有lsqcurvefit擬合函數較強的局部優化能力。
粒子群優化算法是一種進化計算技術,它是模仿鳥群或魚群的社會行為而提出的算法。首先初始化一群隨機粒子,然后粒子們就追隨當前的最優粒子在解空間中搜索,即通過迭代找到最優解。假設d維搜索空間中的第i個粒子的位置和速度分別為Xi=(xi1,xi2,…,xid)和Vi=(vi1,vi2,…,vid),在每一次迭代中,粒子通過跟蹤兩個最優解來更新自己,第一個就是粒子本身所找到的最優解,即個體極值pbest,Pi=(pi1,pi2,…,pid);另一個是整個種群目前找到的最優解,即全局最優解gbest,在找到這兩個最優解時,粒子根據如下公式來更新自己的速度和新的位置:

其中w為慣性權因子,c1和c2為正的學習因子,r1和r2為0到1之間均勻分布的隨機數。
PSO算法的搜優速度在一定程度上快于其他進化算法,但卻存在全局搜索能力極強而局部尋優能力比較差,也就是說該算法可以用于極快的速度搜索到最優解附近,但要進一步達到最優解則速度很慢。為了加快局部尋優能力,將lsqcurvefit擬合方法與PSO算法相結合,構造一種新的混合型粒子群優化算法(LPSO算法),其基本思路是在進化過程當中利用非線性擬合函數lsqcurvefit優化初始種群,通過lsqcurvefit函數較強的局部優化能力來提高收斂速度,進而同時具有PSO算法的全局優化能力和lsqcurvefit擬合方法的高效局部優化能力。主要步驟如下:
步驟1隨機初始化種群中各微粒的位置和速度,并確定粒子種群規模N、學習因子c1,c2以及慣性權因子w。
步驟2用Matlab中的非線性擬合函數lsqcurvefit優化初始種群位置,其調用格式為:

其中X為優化后的初始種群,resnorm為要返回的殘差平方和,fun為擬合函數,x0為初始種群,xdata、ydata分別為實測數據。
步驟3計算每個微粒的適應值,并將當前各微粒的位置和適應值存儲在各微粒的pbest中,將所有pbest中適應值最優個體的位置和適應值存儲于gbest中。
步驟4用式(3)~(4)更新各微粒的速度和位移。
步驟5對于每個微粒,將其適應值與其經歷過的最好位置作比較,如果較好,則將其作為當前的最好位置。
步驟6比較當前所有pbest和gbest的值,更新gbest。
步驟7若滿足停止條件,搜索停止,輸出結果,否則返回步驟4繼續搜索。
為了驗證所提出的LPSO算法的優化性能和優化精度,以石家莊農業現代化研究所欒城實驗站提供的土壤數據[3]為例。算法的參數設置為:學習因子c1=c2=1.2,粒子數N=200,慣性權因子w=0.45,最大迭代次數為1 000次。在計算過程當中,參數α,n,θs,θr的取值范圍為[0,5]。
驗證分成兩部分。第一部分是分別采用LPSO算法與PSO算法進行求解VG方程參數的40次數值實驗,以分析其能夠收斂的次數、收斂效率以及收斂迭代次數來比較兩者的優缺點。第二部分從最優化準則函數值的角度,分別采用lsqcurvefit擬合方法、PSO算法和LPSO算法對VG方程的參數進行估計,以比較LPSO算法與PSO算法以及lsqcurvefit擬合函數的最優值。
表1給出了LPSO算法與PSO算法的優化性能結果比較。由表1可以看出,LPSO算法的收斂次數為40次,收斂概率為100%,而PSO算法的收斂次數僅有7次,收斂概率為17.5%。由此可見,在收斂性能上,由于LPSO算法引入lsqcurvefit擬合函數,使其收斂效率比PSO算法大大提高。從收斂時迭代次數的分布來看,LPSO算法的收斂迭代次數在區間[101,200]的次數最大達到22次,而PSO算法在區間[101,200]的收斂迭代次數僅有3次。因此,LPSO算法與PSO算法相比,不但收斂效率提高,而且收斂迭代次數也大大增加。
表2給出了lsqcurvefit擬合方法、PSO算法和LPSO算法估計VG方程參數的函數最優值結果比較。由表2可以看出,LPSO算法的結果要比lsqcurvefit擬合[3]方法、PSO算法的結果都小一些。另外,lsqcurvefit擬合方法對參數初值的依賴很強,而LPSO算法沒必要給出各參數的初值。綜合可見,LPSO算法對參數估計的結果要優于lsqcurvefit擬合方法和PSO算法計算的結果。

表1 VG方程的粒子群算法優化性能比較

表2 VG方程的參數估計結果比較
本文將lsqcurvefit擬合方法與粒子群(PSO)算法相結合,實現了不同土樣的土壤水分特征曲線VG方程的參數估計,并與PSO算法和lsqcurvefit擬合方法相比較,結果表明了LPSO算法求解VG方程參數效果更好,避免了初值選取和陷入局部最優解的問題。另外該算法也可適用于其他類似的非線性參數估計問題。
[1]Van Genuchten M.A closed-form equation for predicting the hydraulic conductivity of unsaturated soils[J].Soil Sci Soc Am J,1980,44:892-898.
[2]馬英杰,虎膽·吐馬爾拜,沈冰.利用阻尼最小二乘法求解Van Genuchten方程參數[J].農業工程學報,2005,21(8):l79-180.
[3]彭建平,邵愛軍.用MATLAB確定土壤水分特征曲線參數[J].土壤,2007,39(3):433-438.
[4]楊改強,霍麗娟,楊國義,等.利用MATLAB擬合van Genuchten方程參數的研究[J].土壤,2010,42(2):268-274.
[5]王小華,賈克力,劉景輝,等.Van Genuchten模型在土壤水分特征曲線擬合分析中的應用[J].干旱地區農業研究,2009,27(2):179-183.
[6]許小健,黃小平,張金輪.用遺傳算法優化估計Van Genuchten方程參數[J].巖土工程技術,2008,22(2):75-78.
[7]郭向紅,孫西歡,馬娟娟.基于混合遺傳算法估計Van Genuchten方程參數[J].水科學進展,2009,20(5):677-682.
[8]陳大春,馬英杰.基于隨機粒子群算法的Van Genuchten方程參數優化求解[J].農業工程學報,2006,22(12):82-84.
[9]譚躍,譚冠政,葉勇,等.具有混沌局部搜索策略的雙種群遺傳算法[J].計算機應用研究,2011,28(2):469-471.
[10]張艷瓊.改進的云自適應粒子群優化算法[J].計算機應用研究,2010,27(9):3250-3252.
[11]艾海男,劉利斌,張永,等.基于Lingo和單純形算法的綜合暴雨強度公式參數解析[J].中國給水排水,2011,27(17):71-74.
[12]劉利斌,歐陽艾嘉,樂光學,等.基于混合粒子群的土壤水分特征曲線參數優化[J].計算機工程與應用,2011,47(35):218-221.