葉振威 于賢磊
(1.揚州大學(xué)水利與能源動力工程學(xué)院,江蘇 揚州 225009;2.南水北調(diào)東線江蘇水源有限責(zé)任公司徐州分公司,江蘇 徐州 221000)
現(xiàn)行的渠道橫斷面設(shè)計是用明渠均勻流公式,以試算法或圖解法進行計算,這些方法復(fù)雜、計算量大、精度低。粒子群算法與遺傳算法相類似,也是基于群體的優(yōu)化算法,不要求函數(shù)連續(xù)或者顯式表達,具有很強的全局搜索能力,但它比遺傳算法簡單,易于使用,而且收斂速度也更快[1]。本文將粒子群算法與罰函數(shù)法相結(jié)合,解決非線性約束問題,并對渠道橫斷面設(shè)計進行優(yōu)化計算。
假設(shè)在一個D維搜索空間里有n個粒子組成的種群X=(X1,X2,…,Xn),第i個粒子的位置為X=(Xi1,Xi2,…,XiD);第i個粒子所經(jīng)歷的最好的位置記為Pi=(Pi1,Pi2,…,PiD),稱個體極值;群體中所有粒子經(jīng)歷過的最好的位置記為Pg=(Pg1,Pg2,…,PgD),稱群體極值[2]。PSO算法步驟如下:
步驟一:確定迭代次數(shù)k、種群規(guī)模X、搜索空間的維數(shù)D,在搜索空間中產(chǎn)生粒子的初始速度V和初始位置x。
步驟二:計算粒子適應(yīng)度。
步驟三:將每個粒子當前適應(yīng)度值與自身個體極值和群體極值進行比較,如果當前適應(yīng)度值優(yōu)于個體極值,則更新個體極值;如果當前適應(yīng)度值又優(yōu)于群體極值,則更新群體極值。
步驟四:更新粒子速度和位置,公式[3]如下:
式中:ω為慣性權(quán)重,ω取1;i=1,2,…,D;j=1,2,…,n;k為當前迭代次數(shù);c1、c2為加速因子,取1;φ1、φ2為區(qū)間[0 1]之間的隨機數(shù)。
步驟五:迭代次數(shù)k=k+1,若滿足迭代次數(shù)或精度要求,則停止搜索,輸出結(jié)果,否則返回步驟二。
渠道梯形斷面優(yōu)化設(shè)計是根據(jù)明渠均勻流公式進行水力計算。明渠均勻流公式為:
由此可推得明渠均勻流公式為:
由此可得渠道橫斷面優(yōu)化模型[4]為:
目前,使用最廣泛的處理約束條件的方法是懲罰函數(shù)法,設(shè)法將約束問題轉(zhuǎn)化為無約束的問題求解。具體做法是,根據(jù)約束的特點,構(gòu)造某種懲罰函數(shù),然后,把它加到目標函數(shù)中去,將約束優(yōu)化問題的求解轉(zhuǎn)化為無約束問題的求解。這種懲罰策略在無約束問題求解過程中,那些企圖違反約束的迭代點給予很大的目標函數(shù)值(對于極小化而言是一種懲罰),迫使一系列無約束問題的極小點或者無限地靠近可行域,或者一直保持在可行域內(nèi)移動,直至迭代點列收斂到原約束問題的極小點。罰函數(shù)處理的適應(yīng)度函數(shù)公式[5]如下:
式中: F( x)為原適應(yīng)度函數(shù);G( x)為罰函數(shù);D為x滿足約束條件的集合。
例[6]:某灌區(qū)渠道采用梯形斷面,設(shè)計流量3.2m3/s,邊坡系數(shù)m=1.5,渠比降i=0.0005,渠床糙率系數(shù)n=0.025,渠道不沖流速該渠道為清水渠道,無防淤要求,為了防止長草,最小允許流速為0.4m/s。求該渠道過水斷面尺寸。
文獻[6]將免疫遺傳算法引入梯形渠道斷面優(yōu)化設(shè)計,免疫遺傳算法具有較高的全局搜索能力,但其算法復(fù)雜,需要不斷編碼解碼,運行時間長。本文采用的粒子群算法,算法結(jié)構(gòu)簡單,運行速度快,在非線性約束問題中要優(yōu)于免疫遺傳算法。應(yīng)用粒子群算法求解,迭代次數(shù)為1000,種群規(guī)模為20,變量b取離散值[1.0 1.5 2.0 2.5 3.0],變量h取區(qū)間[0.0 5.0]。
粒子群算法求得最優(yōu)解與文獻[6]所求最優(yōu)解對比見表1。粒子群算法所得結(jié)果與文獻[6]中免疫遺傳算法所得解相近,精度高,完全滿足實際工程設(shè)計要求。粒子群算法程序在多次運行中,平均耗時0.6s,優(yōu)于免疫遺傳算法。
表1 梯形渠道斷面優(yōu)化設(shè)計表
本文基于MATLAB平臺,應(yīng)用粒子群算法與罰函數(shù)法相結(jié)合對渠道斷面進行優(yōu)化設(shè)計,并與免疫遺傳算法計算結(jié)果比較,證明了粒子群算法在求解該問題上具有全局性好、收斂速度快、精度高等特點。粒子群算法具有較好的非線性極值尋優(yōu)能力,為解決非線性約束問題提供了新思路。