吳 云,陸 曉,楊 侃,仲曉林,齊偉擎
(1.山西水利職業技術學院,山西 太原 044004;2.河海大學水文水資源學院,江蘇 南京 210098;3.揚州市勘測設計研究院有限公司,江蘇 揚州 225000)
水庫聯合供水優化調度是一類多約束、非線性、多階段組合優化問題,針對其求解過程中計算量大、“維數災”等問題,啟發式智能算法憑借原理簡單、易于實現與全局尋優能力強等優點在優化調度中得到了廣泛應用,如遺傳算法(GA)[1]、粒子群算法(PSO)[2]、差分進化算法(DE)[3]和蟻群算法(ACO)[4]等。
布谷鳥搜索算法(Cuckoo Search,CS)是劍橋大學學者Yang Xinshe和DEB Suash于2009年提出的一種智能群優化新型算法[5],其主要思想基于布谷鳥的寄生育雛行為和萊維飛行機制這兩個策略。由于CS算法參數少、操作簡單和魯棒性強,在各個領域都有了一定的應用,但主要聚焦于圖像處理和醫學領域等,在水利方面的應用較少。此外,近年來諸多學者對標準CS算法進行了研究和改進,比如自適應搜索改進、更新策略改進以及與其他算法混合等[6-8]。本文在深入分析CS算法原理的基礎上,針對標準CS算法容易陷入局部最優解、收斂速度不理想等缺陷,嘗試采用混沌初始化以及引入變異算子對其進行改進,提出混沌變異布谷鳥算法,并將其應用于山西省長治盆地供水區的優化調度中。
水庫聯合供水優化調度的主要目的是為了實現區域水資源的高效利用,本文選取缺水量最小為優化目標。模型目標函數及約束條件如下。
(1)目標函數
(1)

(2)約束條件如下
水量平衡約束Vit=Vi,t-1+Ii,t+qit-Sit-Rit
(2)
水庫庫容約束Vit,min≤Vit≤Vit,max
(3)
可供水量約束Sit,min≤Sit≤Sit,max
(4)

(5)
(6)
變量非負約束 所有變量均為非負量
式中,Vi,t-1,Vi,t為第i水庫t時段初、末的庫容;qit為第i水庫第t時段的來水量;Iit為i-1水庫向i庫t時段的調水量;Rit為i水庫第t時段的損失水量;Vit,min,Vit,max為i水庫t時段允許的最小、最大庫容;Sit,min,Sit,max為i水庫t時段最小、最大供水量;Sit為i水庫t時段的下泄流量;DEmin為最小生態需水量[9]。
布谷鳥算法是根據布谷鳥寄生育雛的習性[9],模擬其尋窩過程的一種算法。標準的布谷鳥算法(Cuckoo Search)中利用萊維飛行(Lévy Flight)更新鳥巢位置并生成發現概率Pa隨機淘汰鳥巢。
標準CS算法中,布谷鳥每次尋窩過程的萊維飛行隨機搜索路徑長短和方向都是高度隨機改變的[10],很容易從一個區域躍入另一個區域,這有利于算法在優化前期進行全局搜索,使得算法全局尋優能力很強,但算法后期隨機性太強,不利于局部精細搜索,造成收斂速度和收斂精度降低[11]。為了平衡算法的全局搜索和局部搜索能力以提高算法的收斂性能,本文提出了混沌變異布谷鳥算法。
標準CS采用隨機方式對鳥巢位置進行初始化,這種方式有可能造成鳥巢分布位置的不均勻。混沌是一種典型的非線性現象,能在一定范圍內按其自身的“規律”不重復地遍歷所有狀態,具有隨機性、遍歷性、規律性,對初始條件的敏感性等優點[12]。因此,利用混沌原理進行種群的初始化,使初始的種群具有多樣性的特點,為進一步有效進行全局搜索建立基礎。
Logistic映射是一種典型的混沌系統,其表達式為

(7)
式中,μ為控制變量,當μ=4時,Logistic映射完全處于混沌狀態,本文首先利用混沌迭代生成布谷鳥的初始鳥窩位置,然后再進行優化搜索,步驟如下:


(3)將產生的N個混沌變量按下式映射到解的搜索空間
(8)
式中,Ud和Ld分別為搜索空間第d維的上下限;yid為利用式(8)產生的第i個鳥巢在搜索空間第d維;xid即為第i個鳥巢在搜索空間第d維的坐標[13]。
為了提高布谷鳥算法的搜索效率并加速收斂,本文采用了微分進化算法中的變異算子,避免算法在后期陷入局部最優。當將某個解通過局部搜索,選擇為當前最優解時,根據隨機產生的數字γ來選擇下一步更新的策略。若γ>Pa,則隨機更新一次鳥巢位置;反之,則利用變異算子進行更新,即

圖1 研究區概化

(9)
式中,κ為變異權重因子,κ∈[0,2],本文取κ=0.5;r1、r2、r3為服從均勻分布的隨機整數,且r1≠r2≠r3≠i,r1,r2,r3∈{1,2,…,N}。

表1 水庫特征參數

表2 豐水年水庫供水策略 萬m3
長治盆地供水區屬于“山西大水網”建設的第五橫,位于山西省東南部,隨著區域經濟的發展,解決水資源緊缺問題、實現水資源高效利用迫在眉睫。長治盆地供水區內實際參與優化調度的供水單元為流域內可供調節的關河水庫和吳家莊水庫,這兩個水庫均為多年調節水庫,涉及了長治市的10個縣區,經簡化合并后可分為三大供水片區,研究區水資源概化見圖1。關河水庫和吳家莊水庫的主要特征參數見表1。
根據長治盆地供水區的2020年不同來水頻率20%、50%、75%的需水,當地水資源,水庫預測來水過程,對可行供水策略進行編碼,應用CMCS算法對該問題進行優化,得到相應的調度后水庫水位過程線如圖2所示,關河水庫和吳家莊水庫在豐、平、枯水年的供水策略見下表2、3、4。

圖2 水庫調度水位過程線
從圖2可以看出,關河水庫和吳家莊水庫的水位豐水年高于平水年,枯水年最低。供水區7月、8月為汛期,需控制水位在防洪限制水位附近。枯水期水庫來水減少,水庫水位較低。

表3 平水年水庫供水策略 萬m3

表4 枯水年水庫供水策略 萬m3
為了驗證該算法的合理性與有效性,采用標準布谷鳥算法(CS)與CMCS算法在同等條件下選取實例枯水期進行對比研究。缺水量隨迭代次數的變化見圖3。由圖3可知,將布谷鳥算法應用于水庫供水優化調度是可行的,同時與CS相比,CMCS算法運行得出的總缺水量有所減少。

圖3 缺水量隨迭代次數的變化
作為一種新型啟發式智能算法,布谷鳥算法所用參數少、搜索路徑優、通用性好、魯棒性強,對于解決大規模復雜優化問題有著顯著的優勢。針對標準布谷鳥算法存在后期收斂速度慢、容易陷入局部最小值等缺陷,本文采用混沌初始化及引入變異算子進行改進得到混沌變異布谷鳥算法。在“山西大水網”的背景下,以長治盆地供水區為研究區域,運用改進后的布谷鳥算法計算得到其2020年豐、平、枯三種情景下的供水調度結果,充分驗證了混沌變異布谷鳥算法在水庫聯合供水優化調度中的可行性和有效性;與標準CS算法相比,本文所提出的改進策略可進一步提高算法的搜索性能,可平衡其全局尋優和局部尋優能力。
本文對布谷鳥算法進行了初步的改進,并取得了較好的結果,但在自適應搜索以及將其與其他算法結合方面有待進一步研究。