鄭 輝, 梁曉龍, 劉東岳
(石家莊職業(yè)技術(shù)學(xué)院 食品與藥品工程系,河北 石家莊 050081)
隨著城市化進程的加快,水資源逐漸成為制約城市發(fā)展的瓶頸.城市需水量的科學(xué)預(yù)測,有利于水資源優(yōu)化配置,更好地發(fā)揮水資源效益.序列法、回歸分析法等[1-2]的預(yù)測結(jié)果具有一定的波動性,且精度不高;灰色理論[3]在使用過程中需要構(gòu)造大量的白化函數(shù),工作量大,且普適性、通用性較差;BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)法[4]不但存在容易陷入局部極值的問題,而且對BP神經(jīng)網(wǎng)絡(luò)隱節(jié)點個數(shù)的確定缺少理論依據(jù).
支持向量機(SVR)模型[5-7]可以將復(fù)雜、高維的非線性問題映射到線性空間,用于解決高維、非線性、小樣本的問題,模型在優(yōu)化過程中具有收斂速度快,泛化能力強的特點.捕魚策略優(yōu)化算法是模擬漁夫捕魚行為而提出的一種集群優(yōu)化算法[8],具有搜索速度快,不易陷入局部極值,優(yōu)化精度高的特點,在調(diào)度、管理、TSP(Traveling Salesman Problem)求解等方面有廣泛的應(yīng)用.
本文將捕魚策略優(yōu)化算法與SVR模型相結(jié)合,優(yōu)化SVR模型參數(shù),進行城市需水量預(yù)測,以期為優(yōu)化水資源配置提供參考.
SVR模型的工作機理是:在線性可分空間中尋找一個分類超平面,在保證精度的前提下使待分類數(shù)據(jù)與超平面之間的空白區(qū)域最大化,SVR在理論上可以尋找到線性可分數(shù)據(jù)的分類超平面;引入核函數(shù)可以將線性不可分數(shù)據(jù)變換到多維線性空間,實現(xiàn)對線性不可分數(shù)據(jù)的線性分類.在此基礎(chǔ)上引入Lagrange乘子法能將優(yōu)化問題轉(zhuǎn)化為線性方程組的求解問題,見公式(1).
(1)
簡化得到的SVR模型(LS-SVR模型)表達式為:
(2)
在公式(1)、公式(2)中,b為待優(yōu)化常量;αi為待優(yōu)化支持向量;C為懲罰因子;k(xi,x)為內(nèi)積核函數(shù),一般選取徑向基核函數(shù),公式為:
(3)
1.2 捕魚策略優(yōu)化算法
漁夫在捕魚時,總會自覺地向魚密度更大的方向移動,移動過程中沿途捕魚,發(fā)現(xiàn)魚密度較大的位置,漁夫就會移到此處,以新的位置為中心重復(fù)撒網(wǎng)操作.
捕魚策略優(yōu)化算法有尋優(yōu)撒網(wǎng)、收縮撒網(wǎng)和加速撒網(wǎng)三種.為了簡化捕魚策略優(yōu)化算法,引入一個遞減函數(shù)控制撒網(wǎng)半徑,將加速撒網(wǎng)與收縮撒網(wǎng)融為一體,在搜索迭代中,撒網(wǎng)半徑也會隨之縮小,從而實現(xiàn)收縮撒網(wǎng).捕魚策略優(yōu)化算法在解空間的搜索公式為:
(k=1,2,…,p;i=1,2,…,N)
(4)
1.3 捕魚策略優(yōu)化算法的實現(xiàn)步驟
步驟一,初始化
步驟二,迭代搜索
步驟三,輸出結(jié)果
當(dāng)搜索到符合精度要求的解或者達到迭代閾值T(為避免陷入死循環(huán)而預(yù)先設(shè)定的數(shù)值)時,搜索停止,輸出搜索到的最優(yōu)解xi及最優(yōu)解的適應(yīng)度值f(xi);否則返回執(zhí)行步驟二.算法的實現(xiàn)流程圖見圖1.
將捕魚策略優(yōu)化算法用于SVR城市需水量預(yù)測模型優(yōu)化時,需要對捕魚策略優(yōu)化算法參數(shù)進行設(shè)置,經(jīng)反復(fù)調(diào)試,各參數(shù)設(shè)置情況見表1.
表1 捕魚策略優(yōu)化算法的參數(shù)設(shè)置
影響總需水量的主要因素及其單位見表2.
表2 影響總需水量的因素及其單位
本文以臺州市年總需水量[9]的擬合、預(yù)測為例.將各影響因素數(shù)值及年需水量數(shù)值用極差法進行歸一化處理.為了提升模型的泛化能力,設(shè)置歸一化因子收攏系數(shù),對極差歸一化公式中的最大值Zmax j和最小值Zmin j分別乘1.1和0.9的系數(shù)得到公式(5).
(5)
公式(5)中,Zmax j和Zmin j為所有樣本中各因素j(或需水量y)的最大值和最小值.
經(jīng)調(diào)整,各因素歸一化數(shù)值均會向0.5有少量的靠攏.因此,在模型的預(yù)測中遇到略大于當(dāng)前樣本最大值Zmax j或略小于當(dāng)前樣本最小值Zmin j的數(shù)據(jù)時模型仍適用.臺州市12年的年總需水量及7項主要影響因素數(shù)據(jù)見表3.
表3 臺州市12年的需水量影響因素、實際用水量、擬合與預(yù)測值和相對誤差數(shù)據(jù)
選取前9個年度序列(表3中1-9行)的臺州市年需水量及其影響因素的歸一化數(shù)據(jù)作為支持向量機的訓(xùn)練樣本,用后3個年度序列(表3中10-12行)的數(shù)據(jù)作為模型的檢驗樣本,檢驗SVR模型需水量的預(yù)測精度.各因素歸一化數(shù)據(jù)見表4.
表4 樣本各指標(biāo)的歸一化值和需水量的LS-SVR模型輸出值
公式(2)中的參數(shù)C,σ,b,αi需要優(yōu)化確定,本文采用捕魚算法對其進行優(yōu)化,目標(biāo)函數(shù)公式為:
(6)
將目標(biāo)函數(shù)公式(6)代入捕魚策略優(yōu)化算法中,對公式(2)中的αi,b,σ和C反復(fù)迭代優(yōu)化.當(dāng)?shù)_次數(shù)達到迭代閾值T=10 000,目標(biāo)函數(shù)值minQ=0.0036時,停止迭代,各輸出參數(shù)的優(yōu)化結(jié)果見表5.
表5 SVR模型參數(shù)優(yōu)化結(jié)果
將優(yōu)化得到的αi,b,σ和C代入公式(2),得到臺州市年總需水量SVR預(yù)測模型的輸出表達式為:
y=0.0441k1(x,x10)-0.5303k2(x,x20)+
0.4244k3(x,x30)+0.7387k4(x,x40)+
0.0472k5(x,x50)-0.8331k6(x,x60)+
0.1450k7(x,x70)+0.3203k8(x,x80)-
0.3563k9(x,x90)+0.4015
(7)
將表4所示需水量影響因素的歸一化數(shù)據(jù)分別代入公式(7),再經(jīng)歸一化公式(5)的逆運算得出年總需水量的擬合值和預(yù)測值,并計算出相對誤差值δi,結(jié)果見表3.由表3可以看出,臺州市12年需水量的相對誤差值均小于15%,其中有11年小于10%,6年小于5%,說明模型的擬合和預(yù)測精度相對較好.
SVR模型優(yōu)化速度快,泛化能力強,在解決高維度、小樣本的非線性問題時具有明顯優(yōu)勢.捕魚策略優(yōu)化算法具有多參數(shù)優(yōu)化能力,不易陷入局部極值,可以使模型更精確.對臺州市需水量的擬合、預(yù)測實例證明,該模型的擬合、預(yù)測精度均較高,既可以為水資源管理提供科學(xué)依據(jù),也可以為其他預(yù)測模型的研究提供參考.