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