吳學(xué)文,索麗生,王志堅
(1.河海大學(xué)計算機與信息學(xué)院,江蘇 南京 210098;2.河海大學(xué)水利水電學(xué)院,江蘇 南京 210098)
水電站水庫優(yōu)化調(diào)度是一個具有復(fù)雜約束條件的非線性優(yōu)化問題,國內(nèi)外不同的學(xué)者采用了不同的方法進行研究,取得了較多成果[1-2]。其中較常用的方法有動態(tài)規(guī)劃方法(DP)[3-5]、逐次優(yōu)化法(POA)[6]、大系統(tǒng)遞階法[7]、粒子群算法(PSO)[8]、遺傳算法(GA)[9-11]等。但這些方法也存在明顯缺陷:DP法占用計算機內(nèi)存多,計算速度慢,存在維數(shù)災(zāi)問題;POA法易陷入局部的最優(yōu),使計算速度大幅度降低;大系統(tǒng)遞階法需增加協(xié)調(diào)因子,計算比較復(fù)雜,收斂速度慢;PSO算法存在精度不高和易陷入局部最優(yōu)點的不足;GA算法存在接近全局最優(yōu)時不易收斂、不容易處理復(fù)雜約束條件、搜索效率低等不足。近年來有學(xué)者研究了混沌優(yōu)化算法在水電站水庫調(diào)度中的應(yīng)用問題[12-14],該算法具有參數(shù)簡單、穩(wěn)定性好、全局優(yōu)化等優(yōu)點,但存在以初值作為初始最優(yōu)解、迭代效率有待提高、優(yōu)化過程需要較大的混沌序列長度、程序運行時間長等局限性。因此,有必要研究應(yīng)用更加有效的全局優(yōu)化算法。唐巍等[15]將混沌融入遺傳算法,提出了混沌遺傳算法,對復(fù)雜函數(shù)優(yōu)化進行了仿真研究,驗證了其有效性。王文川等[16]研究了混沌與遺傳算法的結(jié)合,結(jié)果表明其算法比傳統(tǒng)遺傳算法具有更好的性能,但其采用的是基本遺傳算法。筆者將改進的遺傳算法和混沌優(yōu)化相耦合,增加混沌擾動算子,將2種算法優(yōu)勢互補,開發(fā)了改進的混沌遺傳算法(ICGA),并探討其在水電站水庫中長期優(yōu)化調(diào)度中的應(yīng)用。
混沌優(yōu)化算法(COA)是近年來隨著混沌學(xué)科的發(fā)展而提出的一種新的優(yōu)化算法。其基本思想是把混沌變量映射到優(yōu)化變量的取值空間,構(gòu)造混沌變量序列,充分利用混沌變量在混沌運動中所具有的遍歷性、隨機性、規(guī)律性來尋找全局最優(yōu)解。李兵等[17]、駱晨鐘等[8]提出了一類類似于載波的方法,將混沌映射產(chǎn)生的混沌變量引入到優(yōu)化變量中,將混沌運動的遍歷范圍轉(zhuǎn)換到優(yōu)化變量的定義域,利用混沌變量進行優(yōu)化搜索。由于混沌運動具有遍歷性、隨機性、規(guī)律性等特點,使得搜索更有效。水電站水庫優(yōu)化調(diào)度的混沌優(yōu)化算法求解過程為:以水庫水位作為決策變量,由Logistic方程生成n個混沌序列,并將其放大到各階段水庫水位的取值范圍,然后利用混沌優(yōu)化的機制進行迭代搜索,直到滿足最大迭代次數(shù)或者誤差精度要求,輸出最優(yōu)解。
GA起源于對生物系統(tǒng)所進行的計算機模擬研究,它通過模擬自然進化過程來搜索最優(yōu)解,利用某種編碼技術(shù),作用于稱為染色體的數(shù)字串,模擬由這些數(shù)字串組成的群體的進化過程。目前GA的編碼主要有二進制碼、格雷碼和浮點碼。基本遺傳算法采用二進制編碼,選擇算子主要是采用輪盤賭選擇,容易出現(xiàn)過早收斂,算法精度、可信度等方面也需要提高。
混沌遺傳算法(CGA)充分利用了混沌優(yōu)化的遍歷性和遺傳算法的反演性,主要是將混沌優(yōu)化算法與遺傳算法集成,利用混沌優(yōu)化的遍歷性特點,彌補遺傳算法容易陷入局部最優(yōu)、收斂速度慢的缺陷,從而得到一種新型高效的優(yōu)化算法[19]。
筆者開發(fā)的ICGA在將混沌優(yōu)化算法與改進的遺傳算法耦合時考慮了2種集成方式:第1種方式是一方作為附加成分被加入到另一方的搜索中。例如,在遺傳算法中引入混沌優(yōu)化算法,該算法通過混沌映射產(chǎn)生遺傳算法的初始種群,然后在遺傳算法的搜索迭代機制基礎(chǔ)上通過搜索產(chǎn)生更優(yōu)的最優(yōu)個體,引導(dǎo)種群的新一輪進化。第2種方式是2種算法獨立求解,其中一方利用對方的計算結(jié)果,但并不直接進入對方的搜索過程中。最常見的做法是,一旦遺傳算法搜索到優(yōu)異的可行解后,馬上換用混沌優(yōu)化算法求解。例如在遺傳算法搜索過程中,增加混沌擾動后再進行迭代尋優(yōu),在最終得到最優(yōu)結(jié)果時又根據(jù)混沌擾動機制,通過若干次混沌擾動進行細搜索,得到更好的搜索結(jié)果。
ICGA的基本思想是:首先采用第1集成方式,利用混沌映射得到混沌序列,將其通過載波方式放大到?jīng)Q策變量的取值范圍,然后利用實數(shù)編碼對決策變量進行編碼,表示為染色體,并根據(jù)改進的遺傳算法搜索機制對種群進行選擇、交叉、變異操作,得到1組滿足尋優(yōu)終止條件的初始最優(yōu)解;然后利用第2集成方式,將此組初始最優(yōu)解對應(yīng)的初始最優(yōu)決策向量增加一個混沌擾動,利用混沌搜索機制進行若干次細搜索,得到問題的最優(yōu)解?;煦鐢_動算子可以通過下述方法進行:
將滿足尋優(yōu)終止條件后的初始最優(yōu)解(x1*,x2*,…,xn*)映射到(0,1)區(qū)間,得到初始最優(yōu)決策向量,記為δ′,將混沌映射函數(shù)迭代K次后得到的1組混沌序列(K為該混沌序列的長度),設(shè)εk為該混沌序列中的第k個數(shù)值(k=1,2,…,K),記 δk為由n個εk組成的向量,稱為混沌向量,則可通過式(1)求解混沌擾動后混沌決策向量δk′:
式中:α為(0,1)區(qū)間的某個數(shù)值,可通過采用自適應(yīng)選取,在搜索初期α較大,隨著搜索進行,逐漸接近最優(yōu),選用較小的 α,以便在(x*1,x*2,…,x*n)所在小范圍內(nèi)搜索;m為正整數(shù),根據(jù)目標函數(shù)的個數(shù)確定,一般大于或等于2;k為混沌映射迭代次數(shù)。
ICGA求解水電站水庫優(yōu)化調(diào)度步驟如下:
步驟1 劃分水電站水庫調(diào)度期時段,確定優(yōu)化變量及其范圍。將調(diào)度期劃分為T個時段,選擇各時段的水庫水位值作為優(yōu)化變量,確定各時段水庫水位值的取值范圍[ai,bi]。
步驟2 參數(shù)設(shè)定。確定變量的個數(shù),確定遺傳算法的群體規(guī)模M、遺傳算法的終止迭代次數(shù)N、最大交叉概率 pc-max、最小交叉概率pc-min、最大變異概率pm-max和最小變異概率pm-min。
步驟3 目標函數(shù)處理。當某個染色體對應(yīng)的決策變量不滿足約束條件時,將其適應(yīng)度值取為接近于零的某個較小數(shù)值。直至概率搜索出來的染色體均能滿足約束條件。
步驟4 初始化種群。Logistic映射如式(3):
式中:μ為控制參量。設(shè) 0<ε1,j<1,μ=4時,系統(tǒng)完全處于混沌狀態(tài),具有混沌運動的所有特征,因此可作為優(yōu)化算法中的混沌變量迭代方程。
選取n個不同初值,利用式(3)進行迭代,得到n個軌跡不同的混沌變量序列,將此混沌序列按式(4)放大到優(yōu)化變量取值范圍,作為初始種群。
式中:ai和bi分別為混沌變量xi,j的下限和上限。
步驟5 編碼。選擇浮點碼對變量進行編碼。
步驟6 選擇、交叉和變異運算。采用隨機聯(lián)賽選擇算子,交叉算子采用算術(shù)交叉,變異算子采用均勻變異,同時在交叉和變異運算中根據(jù)適應(yīng)度值和進化代數(shù)來調(diào)節(jié)個體的交叉概率和變異概率。
步驟7 適應(yīng)度值計算。選擇適當?shù)倪m應(yīng)度函數(shù)計算適應(yīng)度值。
步驟8 最優(yōu)保留策略。將適應(yīng)度值從大到小進行排序,選擇種群中適應(yīng)度最優(yōu)的10%的染色體直接帶入下一代群體。再次對全部種群進行選擇、交叉和變異運算,計算新的適應(yīng)度值并按大小進行排序,用上一代保留的10%的染色體替換種群中適應(yīng)度值最差的10%的染色體,得到新的種群。
步驟9 初始最優(yōu)解。種群重新排序,求適應(yīng)度值的最大值與平均值的差值。如果此差值在設(shè)定的允許誤差內(nèi),或迭代次數(shù)達到設(shè)定最大值,則尋優(yōu)結(jié)束,輸出初始最優(yōu)解;否則轉(zhuǎn)入步驟8。
步驟10 混沌擾動。對初始最優(yōu)解對應(yīng)的初始最優(yōu)決策向量增加混沌擾動,混沌映射函數(shù)仍然采用Logistic映射,混沌序列長度為K,得到K組混沌擾動后的混沌決策向量。
步驟11 細搜索優(yōu)化。將混沌擾動后的K組混沌決策向量放大到優(yōu)化變量的取值范圍,計算比較其相應(yīng)的適應(yīng)度值,適應(yīng)度值最大的即為最優(yōu)解,其對應(yīng)的決策變量為最優(yōu)決策變量。輸出最優(yōu)解。
ICGA算法計算流程見圖1。
圖1 ICGA算法計算流程
以發(fā)電量最大為尋優(yōu)準則,在電力系統(tǒng)穩(wěn)態(tài)運行的條件下用一個年周期內(nèi)發(fā)電量最大作為水電站水庫優(yōu)化調(diào)度模型目標函數(shù),即
式中:E為水電站的年發(fā)電量,kW?h;A為水電站的綜合出力系數(shù);Qt為水電站在t時段的發(fā)電流量,m3/s;Ht為水電站在t時段的平均發(fā)電凈水頭,m;T為水電站調(diào)度年內(nèi)計算總時段(本文計算時段為月,T=12月);Mt為第t時段的小時數(shù)。
式中:Vt+1為水電站第 t時段末的水庫蓄水量,m3;Vt為水電站第t時段初的水庫蓄水量,m3;qt為水電站第t時段的平均入庫流量,m3/s;Qt為水電站在t時段的發(fā)電流量,m3/s;St為水電站在t時段的棄水流量,m3/s;Kt為時段長度換算系數(shù);Vt,min為水電站第t時段允許水庫最小蓄水量,m3;Vt,max為水電站第t時段允許水庫最大蓄水量,m3;Qt,min為水電站第t時段的最小下泄流量,m3/s;Qt,max為水電站第t時段的最大下泄流量,m3/s;Nt,min為水電站允許的最小出力限制,一般為保證出力,kW;Nt,min為水電站允許的最大出力限制,一般為裝機容量,kW。
選用某水電站資料進行實例計算。已知該水電站水庫的水位~庫容關(guān)系曲線和下游水位~流量關(guān)系曲線,水庫總庫容為 8.96億m3,調(diào)節(jié)庫容為4.45億m3,正常蓄水位為 977.0m,死水位為948.0m,防洪限制水位為966.0m。電站綜合出力系數(shù)取 8.3,保證出力為 185mW,裝機容量為1080MW,最大過水能力為1000m3/s。采用多年平均入庫徑流資料,利用前述模型及算法進行優(yōu)化調(diào)度計算,根據(jù)水庫控制運用條件,7月份作為汛期,月初水位需降至死水位,其他月份的水位在死水位與正常蓄水位之間變動。模型中Logistic映射初值取值范圍為[0.51,0.74],控制參量 μ=4,混沌序列的長度為1000,模型的初始種群取1000,交叉概率為0.9,變異概率為0.1,允許誤差為 1.0×10-8,最大迭代次數(shù)為200,利用MATLAB軟件編程計算,結(jié)果見表1。
表1 ICGA算法求解水電站水庫優(yōu)化調(diào)度結(jié)果
為了進行比較,使用混沌優(yōu)化算法和改進遺傳算法進行求解,其目標函數(shù)和約束條件不變,混沌優(yōu)化算法中Logistic映射初值、控制參量 μ、混沌序列的長度、混沌擾動算子等參數(shù),以及改進遺傳算法種群規(guī)模、選擇算子、交叉算子、變異算子、允許誤差、最大迭代次數(shù)等參數(shù)取值參考混沌遺傳算法,取相同的數(shù)值,3種算法結(jié)果對比見表2。
表2 3種算法計算結(jié)果對比
由表2可以看到,在相同的參數(shù)設(shè)定情況下,ICGA計算的年發(fā)電量最大,計算時間也較短,是最優(yōu)方法。COA計算得到的年發(fā)電量大于IGA計算得到的年發(fā)電量,但需要較大的混沌序列長度,程序運行時間較長;IGA雖然是一種隨機概率搜索優(yōu)化方法,能以較短時間逼近全局最優(yōu),但求解結(jié)果不是最優(yōu);ICGA將混沌映射的遍歷性特點和IGA的尋優(yōu)機制相耦合,將具有遍歷性的混沌序列放大到優(yōu)化變量的取值范圍,利用GA的搜索機制進行迭代搜索,能同時搜索解空間中的許多點,可以在占用少量內(nèi)存的情況下更加逼近全局最優(yōu)解。當然,ICGA由于需要較大的種群數(shù)來實現(xiàn)遍歷性搜索,使得其計算時間比IGA略長,但比COA計算時間大幅度縮短。因此,ICGA因其自身特點,將給水電站水庫中長期優(yōu)化調(diào)度提供一種新的模型求解方法。
水電站水庫優(yōu)化調(diào)度是一個大系統(tǒng)復(fù)雜優(yōu)化問題。筆者通過研究,提出了求解水電站水庫優(yōu)化調(diào)度問題的新方法——ICGA。該算法將水庫水位作為優(yōu)化變量,將調(diào)度期劃分為若干時段,根據(jù)已知資料確定各時段水位的取值范圍,利用混沌優(yōu)化的遍歷性特點,將Logistic映射產(chǎn)生的混沌序列放大到優(yōu)化變量的取值范圍,然后利用遺傳算法的優(yōu)化機制進行選擇、交叉和變異運算,得到初始最優(yōu)解。對初始最優(yōu)解對應(yīng)的優(yōu)化變量加一混沌擾動,進行混沌細搜索優(yōu)化,得到問題的最優(yōu)解。ICGA具有搜索效率高、收斂性能好、能以較快速度收斂于全局最優(yōu)解等優(yōu)點,提高了水電站水庫優(yōu)化調(diào)度的效率和效益。當然,該算法還有需要改進的地方,即如果優(yōu)化變量的取值范圍太大,容易造成搜索時間長,結(jié)果偏差大。
[1]張勇傳,李福生,熊斯毅,等.水電站水庫群優(yōu)化調(diào)度方法的研究[J].水力發(fā)電,1981,7(11):48-52.
[2]暢建霞,黃強,王義民.水電站水庫優(yōu)化調(diào)度幾種方法的探討[J].水電能源科學(xué),2000,18(3):19-22.
[3]ROSSMAN L.Reliability-constrained dynamic programming and randomized release rules in reservoir management[J].Water Resources Research,1977,13(2):247-255.
[4]LITTLE J D C.The use of storage water in a hydroelectric system[J].Operational Research,1955(3):187-197.
[5]梅亞東.梯級水庫優(yōu)化調(diào)度的有后效性動態(tài)規(guī)劃模型及應(yīng)用[J].水科學(xué)進展,2000,11(2):195-198.
[6]張玉新,馮尚友.多目標動態(tài)規(guī)劃逐次迭代算法[J].武漢水利電力學(xué)院學(xué)報,1988(6):72-82.
[7]黃強,顏竹丘.應(yīng)用大系統(tǒng)遞階控制理論解梯級水電站水庫群長期最優(yōu)調(diào)度[J].水電能源科學(xué),1993,11(2):80-87.
[8]王少波,解建倉,汪妮.基于改進粒子群算法的水電站水庫優(yōu)化調(diào)度研究[J].水力發(fā)電學(xué)報,2008,27(3):12-15.
[9]馬光文,王黎.遺傳算法在水電站優(yōu)化調(diào)度中的應(yīng)用[J].水科學(xué)進展,1997,8(3):275-280.
[10]鐘登華,熊開智,成立芹,等.遺傳算法的改進及其在水庫優(yōu)化調(diào)度中的應(yīng)用研究[J].中國工程科學(xué),2003,5(9):22-26.
[11]AHMED J A,SARMA A K.Genetic Algorithm for optimal operating policy of a multipurpose reservoir[J].Water ResourcesmAnagement,2005,19:145-161.
[12]梁偉,陳守倫,何春元,等.基于混沌優(yōu)化算法的梯級水電站水庫優(yōu)化調(diào)度[J].水電能源科學(xué),2008,26(1):63-66.
[13]邱林,田景環(huán),段春青,等.混沌優(yōu)化算法在水庫優(yōu)化調(diào)度中的應(yīng)用[J].中國農(nóng)村水利水電,2005(7):17-19.
[14]劉起方,馬光文,劉群英,等.對分插值與混沌嵌套搜索算法在梯級水庫聯(lián)合優(yōu)化調(diào)度中的應(yīng)用[J].水利學(xué)報,2008,39(2):140-150.
[15]唐巍,郭鎮(zhèn)明,唐嘉亨,等.復(fù)雜函數(shù)優(yōu)化的混沌遺傳算法[J].哈爾濱工程大學(xué)學(xué)報,2000,21(5):1-5.
[16]王文川,程春田,徐冬梅.基于混沌遺傳算法的水電站優(yōu)化調(diào)度模型及應(yīng)用[J].水力發(fā)電學(xué)報,2007,26(6):7-11.
[17]李兵,蔣慰孫.混沌優(yōu)化方法及其應(yīng)用[J].控制理論與應(yīng)用,1997,14(4):613-615.
[18]駱晨鐘,邵惠鶴.用混沌搜索求解非線性約束優(yōu)化問題[J].系統(tǒng)工程理論與實踐,2000,20(8):54-57.
[19]姚俊峰,梅熾,彭小奇,等.混沌遺傳算法及其應(yīng)用[J].系統(tǒng)工程,2001,19(1):70-74.