蒼隋鑫,雷冠軍,梁 云,王 鐵
(1.黑龍江省大慶水文局,黑龍江 大慶 163000;2.中國水利水電科學研究院,北京 100038)
水庫優化調度、水資源優化配置、水文頻率曲線擬合以及水文預報等水文領域相關的研究,都可以歸納為在一定的約束條件下,基于已知的目標函數,尋求目標的最優解。隨著計算機運算性能的提高,除了較早的遺傳算法[1-2]、粒子群算法[3],新的智能優化算法如果蠅優化算法[4]、飛蛾火焰優化算法[5]、新型蝙蝠算法[6]及改進粒子群算法[7]等相繼被開發應用于水文計算,都在克服早熟收斂和提高運算性能上都取得一定進展。
SSO算法是一種新興的智能優化算法,通過模擬一種特殊的蜘蛛群體-群居蜘蛛的協作進化行為來構建優化算法。該方法有較好的穩定性和參數估計效果,能夠有效避免早熟收斂。SSO算法于2013年首先被Cuevas[8]提出后,由于其良好的尋優特性,在水利科學領域得到了廣泛的應用。王文川[9]將其引進單個水庫的防洪調度計算中,與傳統的動態規劃和粒子群優化算法比較,該方法能夠有效規避維數災,計算結果與粒子群算法接近;同時將該方法引入單個水庫發電調度中,與動態規劃、遺傳算法的效能比較,該方法具有較好的尋優效果,具有參數少和搜索效率高的優點,是一種有效的水電站優化調度模型的求解方法[10]。吳光瓊、王文川[11-13]分別將其用于水文頻率參數估計中,吳光瓊[14]將SSO算法用于水位流量關系的擬合,與粒子群算法、遺傳算法等方法比較可知SSO算法收斂速度快、全局尋優能力強,能降低水文頻率的分析誤差,提高理論頻率曲線與實測數據的擬合精度。吳光瓊[15]運用SSO算法搜索投影尋蹤的最佳投影方向,構建SSO-PP模型對水質進行評價,多因子評價結果與單因子結果評價一致,能夠使得模型評價結果更加合理可靠。崔東文、Mirjalili[16-17]針對BP神經網絡初始網絡權值和閾值不易確定的不足,運用SSO算法對BP神經網絡的參數的初始值進行估計,采用高維復雜函數對SSO算法驗證,并與粒子群算法的性能進行對比,該方法具有較好的尋優能力。Anter[18]運用SSO算法對CT肝臟腫瘤數據集進行分類,用召回率和準確性等對分類結果進行量化表示,結果表明該方法搜索效果好,能夠避免局部極小值的出現和具備并行計算的能力。孟昕元[19]運用SSO算法對神經網絡控制器參數進行優化,并建立MATLAB/Simulink仿真模型進行驗證,表明優化后的神經網絡控制器有適應性強、動態過程過渡平穩快捷的優點。
暴雨強度計算公式大都是超定非線性方程,參數估計是暴雨強度公式應用的關鍵。暴雨強度公式參數估計研究成果大多集中于優化算法的運用和研究。傳統的參數估計是采用圖解法和LS算法求解參數。遺傳算法、免疫進化算法、蟻群算法等[20-22]都被用于暴雨強度公式的參數估計中,取得了較好的參數估計結果。而SSO算法在暴雨強度公式的推求方面未見研究,因而本文將該方法用于暴雨強度公式參數的推求,采用絕對均方誤差和相對均方誤差為指標與最小二乘法的計算結果進行比較,旨在驗證SSO算法用于暴雨強度公式參數估計的可行性。
SSO算法是對雌雄蜘蛛個體的行為進行數值模擬。該搜索方法能夠有效避免早熟收斂,能夠在全局范圍內進行有效搜索,結果表明該方法的搜索效率高、收斂速度較快。該方法的基本建模原理如下:
a) 蜘蛛個體的初始化,包括雌蜘蛛、雄蜘蛛個體數量、樣本以及權重的初始化:
Nf=floor[(0.9-rand·0.25)·N],Nm=N-Nf
(1)
s(i)=lb+rand·(ub-lb)
(2)
(3)
式中Nf、Nm——雌性、雄性蜘蛛的個體數量,N——樣本總數;ub、lb——分量取值的上限、下限;rand——區間[0,1]的隨機數;floor——取整函數;J(si)——蜘蛛si個體的適應度值;wi——蜘蛛個體的權重;worsts——最劣適應度值;bests——最優的適應度值。
b) 雌雄蜘蛛個體的相互作用:
(4)
式中Vibci——個體i與個體c之間的信息交流;Vibbi——個體i與個體b的信息交流;Vibfi——個體i與個體f信息交流,個體f是距離個體i最近的雌性個體。
c) 雌雄蜘蛛對外界的振動作出反應。①雌性蜘蛛對外界的反應。判別閾值PF與隨機數rm的大小,雌性蜘蛛對外界的反應的數學模擬如下式:
(5)
式中α,β,δ和rand——隨機數,k——迭代次數;sc——與個體i距離最小的個體;sb——群體最優值。
②雄性蜘蛛對外界的反應。雄蜘蛛對外界的反應,即蜘蛛個體的進化運動過程,由下式模擬:
(6)
式中wNf+m——排位在中間的雄性蜘蛛;sf——距離雄蜘蛛i最近的雌蜘蛛。
d) 交配生成新個體與新個體進化選擇。雌性蜘蛛Sf與排位的雄性蜘蛛Smm在交配半徑范圍內發生交配行為,對蜘蛛個體的選擇依據輪盤賭的方法確定,新生成的蜘蛛與原有的蜘蛛種群進行比較,優勢蜘蛛將取代原有的劣勢蜘蛛,能夠使蜘蛛群體向優勢蜘蛛發展。
GB 50014—2006《室外排水設計規范》推薦暴雨強度公式的選樣方法為年最大值法,要求資料具有20 a以上自記雨量記錄。本文收集甘肅某地區1991—2016年共26 a數據,采用10、20、30、45、60、90、120、180 min共8個歷時的年最大時段降雨量作為樣本值,對該地區的暴雨強度公式進行推求。
將實測的8個時段的年最大時段降雨量用P-III型分布擬合,計算出理論頻率曲線,根據確定的頻率曲線,得出降雨強度、降雨歷時和重現期的關系,輸出推求暴雨強度公式所需的“歷時~重現期(即t~P)”數據,見表1,用該組理論值去推求設計暴雨強度公式的參數。

表1 甘肅某地t~P數據 mm/min
2.3.1 目標函數的建立
單位時間的平均降雨深度,用i表示,單位以mm/min計;在工程上,暴雨強度常用單位時間內單位面積上的降雨體積q表示,單位以L/(s·hm2)計。q與i之間的換算關系是將每分鐘的降雨深度換算成每公頃面積上每秒鐘的降雨體積,即:
q=167i
(7)
研究確定暴雨強度總公式:
(8)
式中P——設計暴雨重現期,a;t——降雨歷時,min;A1——雨力參數;C——雨力變動參數;b——降雨歷時修正系數;n——暴雨衰減指數。
對于暴雨強度總公式,構造目標函數如下:
(9)
式中s——重現期的個數;j——降雨歷時的個數。
2.3.2 SSO算法求解暴雨強度公式的步驟
a) 參數序列的初始化。采用式(1)、(2)隨機生成A1、C、b、n,為了增大參數的搜索范圍,其初始化區間均設為[0,500],步長取為0.01,用式(9)計算蜘蛛個體的初始適應度值,式(3)計算蜘蛛個體的初始權重值,種群個體設為200,迭代次數設為500次。
b) 參數序列的進化。采用式(4)、(6)進行迭代循環,參數值不斷尋優調整,逐步逼近滿足目標函數(9)。
c) 循環終止。若循環迭代次數達到最大值或滿足迭代終止條件,則停止循環,所得的參數序列即為最優的參數值。
2.3.3 暴雨強度公式精度檢驗
求出參數A1、C、b、n后,為確保計算結果的準確性,需對暴雨強度計算結果進行精度檢驗。GB 50014—2006《室外排水設計規范》規定:計算重現期在0.25~10 a時,在一般強度的地方,平均絕對方差不宜大于0.05 mm/min;在較大強度的地方,平均相對方差不宜大于5%。為確保排水工程設計的安全性和經濟性,推導公式的暴雨強度應略大于相應的實測暴雨強度,但不宜相差過大,否則經濟性欠合理。
將參數A1、C、b、n代入式(7)、(8)中,計算出與t~P數據表相對應的理論暴雨強度值iij,然后根據式(10)、(11)平均絕對方差S總絕、平均相對方差S總相。
(10)
(11)

暴雨強度總公式以各個重現期的總誤差最小為目標函數,分別運用LS算法和SSO算法對參數進行估計(表2),LS算法平均絕對方差為2.32 mm/min,大于規范要求的0.05 mm/min,平均相對方差為713.54%,大于規范要求的5%;SSO算法平均絕對方差為0.02 mm/min,小于規范要求的0.05 mm/min,平均相對方差為7.99%,大于規范要求的5%;LS算法所得結果誤差較大,SSO算法所得結果在要求總絕對誤差范圍之內,結果表明所得的參數結果能夠近似計算暴雨強度。

表2 暴雨強度公式參數估計結果
為了進一步檢驗SSO算法求解暴雨強度公式的計算結果,將重現期是2、3、5、10、20、30、50、100、200 a的判別指標進行計算,見表3。結果表明:除了200年一遇的結果外,不同重現期的平均絕對方差均小于規范要求的0.05 mm/min,表明SSO算法計算的參數估計結果從平均絕對方差方面能夠滿足規范要求。

表3 SSO算法求解暴雨強度總公式誤差分布
以26 a的年最大時段降雨量資料為基礎,采用年最大值法進行選樣,樣本通過P-III分布調整,得到歷時~重現期即t~P關系表,采用SSO算法對暴雨強度公式進行推求,并與LS算法參數估計結果進行比較,結果顯示SSO算法暴雨強度總公式優于LS算法,表明該算法能夠較好地用于暴雨強度公式參數的推求。