丁相毅 張博



摘要:為提高梯級電站的綜合效益、獲得較優的調度方案,建立了基于改進鯰魚效應粒子群算法(CE-PSO)的梯級電站優化調度模型,針對鯰魚效應粒子群算法在制作鯰魚粒子時容易陷入局部加速的局限性,考慮到鯰魚粒子的空間分布位置對改善粒子的多樣性具有重要影響,嘗試通過一定的途徑將鯰魚粒子均勻分布于整個搜索空間,提高種群的搜索效率,彌補CE-PSO算法容易陷入局部加速的局限性。將改進后的算法應用于某河流梯級電站的優化調度,結果表明,改進后的鯰魚效應粒子群優化算法與標準PSO和CE-PSO相比,在全局搜索能力和收斂速度方面均有改善。
關鍵詞:優化調度;多目標粒子群;鯰魚效應;均勻分布;梯級水電站
中圖分類號:TV737;TV697.1+2
文獻標志碼:A
doi: 10.3969/j.issn.1000-1379.2018.04.031
梯級水電站優化調度是水資源系統優化的重要內容,科學合理的水電站調度方案對提高水資源利用效率和效益以及供電可靠性具有重要作用。對于梯級電站來說,其優化調度綜合考慮了上下游不同水庫間的水力聯系及補償作用,具有非線性、動態、多維等特點。目前國內外對梯級電站的優化調度研究較多,多目標決策、模糊數學、遺傳算法、人工神經網絡等許多算法得到了成功應用。其中:胡鐵松等以人工神經網絡為例,分析了訓練方法、優化參數的改變對訓練結果和應用效果的影響,提出了研究水庫群優化調度函數的人工神經網絡方法:胡國強等提出一種以年發電量和一級水電站耗水量為優化目標的梯級水電站多目標長期優化調度模型:吳成國等3針對群體智能優化算法在梯級水電站優化調度中存在大量約束條件不易處理和“維數災”的問題,將加速遺傳算法應用于梯級水電站的優化,通過“分類假設”的思路尋找可行決策空間,解決了大量復雜約束條件下的“維數災”問題。
針對標準粒子群算法易陷入局部最優、收斂速度慢等缺點,紀昌明等提出了基于鯰魚效應的粒子群優化算法(CE-PSO),并在梯級電站優化調度方面取得了一定的成果。但這種算法沒有考慮鯰魚粒子的空間分布位置對優化效率的影響,在引入鯰魚粒子對沙丁魚粒子加速的過程中,容易陷入局部加速的困境。基于此,本文嘗試通過改變鯰魚粒子空間位置的方法改善鯰魚效應粒子群算法的驅趕作用,進而提高整個種群的優化效率。
1 梯級電站優化調度模型
1.1 目標函數
發電量是衡量電站效益的重要指標之一,合理優化梯級電站的用水過程對提高電站發電量具有積極作用。因此,以發電量最大為目標函數,建立梯級電站優化調度模型。發電量的數學表達式為式中:F為電站總發電量,kW.h:n為調度時段數;m為電站個數;Nit為i電站在t時段的出力,kW;△t為計算時段,h;Hit為i電站在t時段的水頭,m;Qit為i電站在t時段的發電流量,m3/s;η為出力系數。
1.2 約束條件
(1)水量平衡約束。表達式為式中:vit和vi,i+1,分別為水庫i在t時段初和t時段末的蓄水量,m3;Fit、Qit和Sit分別為水庫i在t時段的入庫流量、發電流量和棄水流量,m3/s。
(2)電站出力約束。表達式為式中:Nmin和Nmaxit分別為i電站t時段的出力下限和出力上限,kW。
(3)蓄水量約束。表達式為式中:vminit和vmaxit分別為i水庫f時段最小和最大蓄水量,m3。
(4)下泄流量約束。表達式為式中:qminit和qmaxit分別為水庫下泄流量的下限和上限,m3/s。
2 鯰魚效應粒子群算法
2.1 鯰魚效應粒子群算法原理
2.1.1 PSO算法
粒子群優化算法(PSO)是模擬鳥群覓食行為而提jLI_:的一種智能優化算法,最初由JamesKennedy和Russell Eberhart提出,很快得到廣泛應用。但是這種算法存在早熟收斂和搜索能力不強的缺陷,因此基于這種算法的改進算法比較常見。其中,將PSO算法與其他算法結合是改進的重要趨勢,包括將選擇、交叉、變異等算子引入PSO算法。比如,Angeline將選擇算子引入PSO算法,為確保每次迭代后的粒子群都具有較好的性能,在優化過程中總是選擇迭代后的較好粒子來復制下一代:交叉是按照一定的幾率交換粒子群之間各維數據的改進方法,通過交叉重組產生子代,實現改善粒子群性能的目的:變異算子的引入是為了克服早熟收斂的缺陷,利用變異算子幫助粒子群跳出局部極值點,提高PSO算法的全局搜索能力。
2.1.2 鯰魚效應粒子群算法
“鯰魚效應”是經濟學中廣泛應用的一種激勵機制,來源于鯰魚對沙丁魚群的驅趕作用。鯰魚效應的實質是巧妙地利用一定的措施或手段激發企業參與競爭的積極性,實現活躍市場的目的。鯰魚效應粒子群算法(CE-PSO)充分利用鯰魚效應的驅趕機制,通過鯰魚粒子對沙丁魚粒子的驅趕作用實現整個種群的多樣性,彌補了粒子群容易陷入局部最優的缺陷。但鯰魚粒子對沙丁魚粒子的驅趕作用與距離有關,當沙丁魚粒子與鯰魚粒子相距較遠時,其驅趕作用就會減弱,不利于整個種群多樣性的改善。此外,當鯰魚粒子的空間分布比較集中時,也會限制鯰魚粒子對沙丁魚粒子驅趕作用的發揮。基于此,本文對CE-PSO算法進行改進,嘗試通過定義鯰魚粒子驅趕范圍和改變鯰魚粒子空間分布位置的策略提高粒子群的性能。
2.1.3 鯰魚效應粒子群算法的改進
(1)對遠距離加速作用不明顯的改進。鯰魚粒子對沙丁魚粒子的驅趕作用與距離成正比,為解決遠距離加速作用不明顯的缺陷,嘗試通過定義驅趕半徑的方法保證鯰魚粒子對沙丁魚粒子較強的驅趕作用。
(2)對空間分布位置的改進。鯰魚粒子的空間位置對改善離子種群的多樣性具有重要作用。CE-PSO算法把當前種群中適應性最強的沙丁魚粒子作為鯰魚粒子。當連續多代中適應性最強的粒子是同一個粒子時,如果不改變鯰魚粒子的空間位置,則該鯰魚粒子始終對固定范圍內的沙丁魚粒子起加速作用,存在加速的局限性。基于此,嘗試通過改變鯰魚粒子空間位置的方法使鯰魚粒子均勻分布于整個搜索空間中,解決CE-PSO算法加速的局限性。具體流程為:當粒子群的多樣性不滿足要求時,鯰魚啟發器就會被驅動,制作出的鯰魚粒子會驅趕沙丁魚粒子,如果粒子種群的多樣性仍然不滿足要求,繼續制作鯰魚粒子,并定義統計量sum記錄引入鯰魚粒子的數量。如此反復迭代,直到沙丁魚粒子的種群多樣性滿足要求。值得注意的是,當鯰魚粒子的數量大于等于2時,就需要考慮鯰魚粒子的空間位置對沙丁魚粒子驅趕作用的影響,并確保每次制作鯰魚粒子重新調整鯰魚粒子的空間位置。
(3)驅趕半徑及鯰魚粒子空間位置的定義。驅趕半徑是鯰魚粒子對沙丁魚粒子驅趕范圍的動態變量,其隨著引入鯰魚粒子數量的變化而變化。假設在整個迭代過程中共引進m個鯰魚粒子,搜索空間的半徑為R,則驅趕半徑r的確定方法為:首先,假設鯰魚粒子的搜索范圍是n維坐標空間中的規則球體,且每個鯰魚粒子的驅趕半徑r是相同的:其次,將m個大小完全相同的球體放在搜索空間中,確保搜索空間完全被m個球體占滿:最后,第i個球體的球心位置即為第i個鯰魚粒子的空間位置。搜索空間的半徑按照體積等換的方法確定,假設m個鯰魚粒子將搜索空間均分為m個部分,則任意一個球體的體積可近似表示為v=1/mv:根據體積等換的原理則有1/mv=4/3π3,經簡化得r=3√1/mR。
假設引入2個虛擬粒子后種群的多樣性滿足要求,為了提高驅趕效率,重新分配鯰魚粒子的位置,鯰魚粒子位置變化前后對比見圖1。
2.2 改進CE-PSO算法在水資源優化配置中的實現步驟
用xmn表示任一個粒子Xj在空間中的位置,設粒子的搜索空間為Q,種群個數為S。當粒子群的多樣性滿足要求時,達到終止條件,跳出循環停止搜索。鯰魚效應粒子群算法在水資源優化配置中的應用步驟(圖2)如下。
(1)初始化粒子群。判斷空間粒子是否滿足水資源優化配置的初始條件,對滿足初始條件的Ⅳ個粒子進行初始化,并將其命名為沙丁魚粒子。
(2)計算粒子的適應度。直接把目標函數作為鯰魚效應粒子群優化算法的適應度計算公式,按照式(1)計算粒子的適應度f(Xj),記錄粒子的局部極值pbest和全局極值gbest。
(3)判斷種群的多樣性是否滿足要求。設種群的多樣性閾值為ξ,則當ξ(k)>ξ時,說明種群的多樣性滿足要求,這時直接按照標準PSO算法更新粒子的速度和位置(式(10)和式(11));當ξ(k)<ξ時,說明種群的多樣性不滿足要求,種群容易陷入局部最優,需要引入鯰魚粒子,激發粒子的多樣性,提高粒子的全局搜索能力。
當進化到第k代時,種群多樣性的判別公式為式中:div是計算種群多樣性的中間變量,div(k)表示第k代粒子的多樣性,div(0)表示初始多樣性;xjit為i電站t時段第i個粒子的位置;Xgbestit為粒子群搜索到的全局最優解位置;bit和ait分別為xjit的上限和下限,即i電站t時段出力的上限和下限。
(4)利用鯰魚效應更新粒子的速度和位置。根據CE-PSO算法原理,直接將當前沙丁魚種群中適應度最大的粒子設置為鯰魚粒子。此時,沙丁魚粒子受到鯰魚粒子的驅趕,按照式(9)和式(10)更新速度和位置,鯰魚粒子按照標準PSO算法更新自己的速度和位置。當引入一個鯰魚粒子不足以驅動整個粒子種群的多樣性時,繼續引入鯰魚粒子、調整其空間位置,使所有引入的鯰魚粒子能夠均勻分布于整個搜索空間中。記錄引入鯰魚粒子的數量,直到種群的多樣性滿足要求,停止引入鯰魚粒子。CE-PSO算法和標準PSO算法的迭代公式為式(9)~式(11)。式中:w為慣性權重,它的大小表示粒子對當前速度繼承的多少;c1、c2為學習因子,取值為正整數,r1、r2是0~1之間均勻分布的隨機數;ci、si分別表示鯰魚粒子和沙丁魚粒子:k為進化迭代次數;v表示粒子i在空間中的飛行速度,粒子的飛行速度對算法的全局收斂性影響較大,當飛行速度過大時,粒子以較快的速度飛向全局最優解的臨近區域,但容易飛越最優解,當飛行速度過小時,就會存在收斂速度慢、飛行時間長、不易找到全局最優解的缺陷;xjpbestit為粒子j搜索到的局部最優解位置:xjpbestit為粒子j搜索到的全局最優解位置:/為iXt分量上與j沙丁魚粒子距離最小的鯰魚粒子的編號,其意義為沙丁魚粒子被離它最近的鯰魚粒子驅趕,具體的計算公式為I={k|minb(xckj-Xsij)};P為跨度,最大數據與最小數據的差值;Q=A/P,A是一正整數,其取值根據仿真優化確定:Sta為二元狀態變量,其作用是判別沙丁魚粒子是否受到鯰魚粒子的驅趕,當子代的適應度小于父代的適應度時,Sta賦值為1,表示沙丁魚粒子受鯰魚粒子的驅趕,反之,Sta賦值為0,表示沙丁魚粒子不受鯰魚粒子的驅趕,按照標準PSO算法更新速度和位置。
Sta的計算公式為
(5)當沙丁魚種群的多樣性滿足要求時,迭代結束,終止運算。
3 實例分析
某河流建有A、B兩座水電站,A為年調節電站,B為日調節電站,兩座電站都有區間人流,電站參數見表1。
模型參數取值:粒子總數N設為25(小于15會導致局部收斂,大于25規模的增大對優化效率的提高不顯著),推薦學習因子c1、c2均設為2.0,種群相對多樣性閾值設為0.4。
為了對比模型的實用性和有效性,分別采用標準PSO、標準CE-PSO和改進的CE-PSO計算梯級電站的發電量,結果見表2。
由表2可以看出,相比CE-PSO和改進的CE-PSO,標準PSO算法的年發電量明顯較小,說明引人鯰魚粒子后,粒子種群的多樣性得到了很好的改善。改進的CE-PSO相比標準CE-PSO性能有所提升,盡管提升不是很大,但具有一定的積極作用。
4 結論
梯級水電站優化調度是合理利用水資源、提高用水效率的重要方法,是緩解水資源短缺現狀、推動水資源可持續利用的重要途徑。本文針對鯰魚效應粒子群算法在發揮鯰魚粒子驅趕作用中存在的不足,對鯰魚效應粒子群算法進行改進,認為鯰魚粒子的空間位置對提高種群多樣性具有重要影響,提出均勻分布鯰魚粒子空間位置的思想。為了驗證改進CE-PSO算法的可行性和實用性,將標準PSO算法、CE-PSO算法和改進的CE-PSO算法應用于某河流梯級水電站優化調度,結果表明CE-PSO算法和改進的CE-PSO算法均比標準PSO算法搜索效率高,而改進的CE-PSO算法相比CE-PSO算法搜索效果更好,說明改進的CE-PSO算法能夠較好地解決粒子群優化算法“早熟收斂”的問題,對提高種群多樣性具有積極作用。