胡林靜,郭朝澤,王景帥
(內(nèi)蒙古工業(yè)大學(xué)電力學(xué)院,呼和浩特 010080)
短期電力負(fù)荷預(yù)測(cè)對(duì)電力系統(tǒng)有著重要的影響,準(zhǔn)確的負(fù)荷預(yù)測(cè)對(duì)保障電力系統(tǒng)的穩(wěn)定運(yùn)行以及負(fù)荷管理提供了支持。隨著電力系統(tǒng)復(fù)雜化,對(duì)于負(fù)荷預(yù)測(cè)模型的要求越來(lái)越高,近幾年人工智能方法逐漸成為主要的研究對(duì)象,但是單一的人工智能預(yù)測(cè)模型也存在一定的缺陷,其預(yù)測(cè)效果極易受到模型中參數(shù)的影響,為了解決此問(wèn)題,大量的研究通過(guò)引入優(yōu)化算法確定預(yù)測(cè)模型的參數(shù)從而搭建組合預(yù)測(cè)模型。魏騰飛等[1]用粒子群算法(partical swarm optimization,PSO)優(yōu)化長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(long short-term memory,LSTM)并且通過(guò)引入遺傳算法中變異思想對(duì)PSO進(jìn)行了改進(jìn),結(jié)果表明提高了預(yù)測(cè)結(jié)果的穩(wěn)定性。張金金等[2]提出了將改進(jìn)的隨機(jī)森林算法與密度聚類(lèi)算法結(jié)合的組合預(yù)測(cè)方法,通過(guò)對(duì)小波分解后的不同分量單獨(dú)預(yù)測(cè),其結(jié)果反映了電力負(fù)荷的隨機(jī)性,預(yù)測(cè)模型具有更高的精度。劉曉悅等[3]提出了基于改進(jìn)模糊灰色聚類(lèi)法選取相似日并通過(guò)蝙蝠算法(bat algorithm,BA)優(yōu)化的BP神將網(wǎng)絡(luò)(back propagation,BP)預(yù)測(cè)模型BA-BP,預(yù)測(cè)過(guò)程通過(guò)引入蝙蝠算法克服了BP神經(jīng)網(wǎng)絡(luò)易陷入局部值和收斂速度慢的問(wèn)題。
近幾年的研究表明,引入優(yōu)化算法可以提高單一模型的預(yù)測(cè)精度。但是由于優(yōu)化算法自身存在的一些問(wèn)題,比如隨機(jī)選擇的初始種群由于分布不均影響優(yōu)化結(jié)果,種群多樣性隨迭代次數(shù)的增加而下降,優(yōu)化結(jié)果可能陷入局部最優(yōu)值,最終導(dǎo)致預(yù)測(cè)結(jié)果難以達(dá)到理想效果。所以現(xiàn)將針對(duì)麻雀搜索算法中的這些問(wèn)題進(jìn)行改進(jìn)并結(jié)合最小二乘支持向量機(jī)搭建組合預(yù)測(cè)模型進(jìn)一步提高短期電力負(fù)荷的預(yù)測(cè)精度。賈會(huì)群等[4]首先使用三角函數(shù)變化方式調(diào)整不同階段的權(quán)重因子與加速因子,以此提高算法的搜索能力;而后通過(guò)利用雞群算法中的更新方程對(duì)粒子群算法進(jìn)行擾動(dòng),并且利用最優(yōu)解使擾動(dòng)后的粒子靠近全局最優(yōu)位置。司剛?cè)萚5]通過(guò)判斷種群不同的迭代次數(shù)之間的最優(yōu)值確定合適的步長(zhǎng)公式,自適應(yīng)更新步長(zhǎng)提高了果蠅算法的全局搜索能力。
麻雀搜索算法是Xue等[6]于2020年新提出的群智能優(yōu)化算法,相比于其他優(yōu)化算法擁有更好的搜索精度與收斂速度,但是其在種群迭代后期同樣存在種群數(shù)量減少,容易陷入局部最優(yōu)解的問(wèn)題,針對(duì)上述問(wèn)題對(duì)基礎(chǔ)麻雀搜索算法進(jìn)行改進(jìn)。首先引入Sobol序列產(chǎn)生分布更加均勻的初始種群,降低由于初始種群分布不均對(duì)優(yōu)化效果的影響;其次通過(guò)錦標(biāo)賽算法保證種群數(shù)量在迭代的過(guò)程中保持不變;最后通過(guò)柯西變異與高斯變異提高麻雀種群的多樣性,同時(shí)增強(qiáng)全局尋優(yōu)能力與重點(diǎn)區(qū)域局部尋優(yōu)能力。通過(guò)標(biāo)準(zhǔn)測(cè)試函數(shù)對(duì)改進(jìn)后的麻雀搜索算法檢驗(yàn)并將其應(yīng)用于短期電力負(fù)荷預(yù)測(cè)。
麻雀搜索算法(sparrow search algorithm,SSA)是新群智能優(yōu)化算法,具有良好的全局搜索能力和快速收斂性。與其他群智能算法一樣來(lái)源于對(duì)生物體覓食情況的觀察,麻雀種群在覓食過(guò)程中分為兩個(gè)部分:發(fā)現(xiàn)者和加入者。發(fā)現(xiàn)者負(fù)責(zé)搜索食物并為種群中的其他個(gè)體提供覓食區(qū)域和方向,通常是具有高能源儲(chǔ)備的個(gè)體,其所對(duì)應(yīng)的適應(yīng)度函數(shù)值更優(yōu)。加入者對(duì)應(yīng)為適應(yīng)度函數(shù)值較差的個(gè)體,它們通過(guò)發(fā)現(xiàn)者留下的信息獲得食物。適應(yīng)度值最差的部分麻雀找不到食物,為了尋找到食物它們可能跳出當(dāng)前的搜索區(qū)域,到其他的地方覓食。種群中的每只麻雀都會(huì)監(jiān)視其他同伴的行為,并且部分麻雀會(huì)攻擊攝取量較高的同伴爭(zhēng)奪資源。當(dāng)種群中個(gè)別麻雀發(fā)現(xiàn)捕食者后發(fā)出報(bào)警信號(hào),一旦報(bào)警值大于安全值時(shí)發(fā)現(xiàn)者會(huì)把加入者帶到其他安全的區(qū)域覓食。
種群中發(fā)現(xiàn)者和加入者的總數(shù)和比例不變,但是兩者的身份是動(dòng)態(tài)變化的。尋找到更好的食物來(lái)源的任何一只麻雀都可能變成發(fā)現(xiàn)者,此時(shí)其所對(duì)應(yīng)的適應(yīng)度值變優(yōu),與此同時(shí)必然會(huì)有一只麻雀變成加入者,其適應(yīng)度值變差。加入者的能量值越低,在搜索范圍內(nèi)的位置對(duì)自己越不利越不容易找到食物,這些極其渴望得到食物的麻雀可能飛到別的領(lǐng)域覓食,從而使自己獲得能量。在整個(gè)覓食的過(guò)程中,加入者能搜索到能量更高的發(fā)現(xiàn)者,從而獲得食物或者伺機(jī)奪取食物。
當(dāng)意識(shí)到可能有危險(xiǎn)時(shí),為了獲得更安全的位置,種群邊緣的麻雀快速向安全范圍內(nèi)移動(dòng),而在種群中間的麻雀隨機(jī)走動(dòng)靠近其他的同伴。
設(shè)麻雀的位置用矩陣表示為
(1)
式(1)中:n為麻雀的數(shù)量;d為優(yōu)化問(wèn)題的維數(shù)。
每個(gè)個(gè)體對(duì)應(yīng)的適應(yīng)度函數(shù)可表示為
(2)
式(2)中的每一行代表一只麻雀的適應(yīng)度值,適應(yīng)度值高的個(gè)體可以更快地獲得食物,并且為未獲得食物的同伴提供方向。
在更新的過(guò)程中,發(fā)現(xiàn)者更新的規(guī)則為
(3)
加入者時(shí)刻在監(jiān)視著發(fā)現(xiàn)者,一旦有機(jī)會(huì)就會(huì)離開(kāi)自己當(dāng)前的位置和發(fā)現(xiàn)者競(jìng)爭(zhēng),如果贏了就按式(4)進(jìn)行位置更新,否則就按式(5)更新。
(4)
式(4)中:Xp為發(fā)現(xiàn)者占據(jù)的最優(yōu)位置;Xworst為當(dāng)前全局最差的位置;A為1×d維隨機(jī)賦值1或-1的矩陣,A+=AT(AAT)-1;i>2/n表明適應(yīng)度值最差,麻雀可能挨餓。
(5)
麻雀搜索算法種群初始化的過(guò)程是隨機(jī)的,產(chǎn)生的麻雀種群可能由于在空間中的分布不均勻進(jìn)而影響尋優(yōu)性能。首先采用Sobol序列產(chǎn)生初始種群,Sobol序列可以在很短時(shí)間內(nèi)在空間中產(chǎn)生一組均勻的低差異、高質(zhì)量的分布,與偽隨機(jī)數(shù)相比將會(huì)有更好的收斂效率[7]。圖1為采用Sobol序列在空間中產(chǎn)生的400個(gè)點(diǎn),其中x、y的取值范圍是x∈(0.6,2.0),y∈(0.10,0.50),可以看出,這些點(diǎn)分布比較均勻。
圖1 Sobol序列產(chǎn)生初始點(diǎn)
標(biāo)準(zhǔn)錦標(biāo)賽算法是經(jīng)典的排序算法,其思想來(lái)源于體育比賽中分組競(jìng)賽然后逐步晉級(jí)的比賽策略,通過(guò)分組對(duì)比能更快地對(duì)數(shù)據(jù)進(jìn)行排列,而且可以減少比較的次數(shù),避免重復(fù)比較。當(dāng)用其選擇最優(yōu)值時(shí)不需要對(duì)所有數(shù)據(jù)進(jìn)行排列,只需要將每組中的最優(yōu)值提取出來(lái)重新分組排序,直至找到全部數(shù)據(jù)中的最優(yōu)值即可。錦標(biāo)賽算法尋找數(shù)據(jù)中最值的策略如圖2所示。
圖2 錦標(biāo)賽算法選擇最優(yōu)過(guò)程
借助此思想對(duì)麻雀搜索算法中后期種群數(shù)量減少的問(wèn)題進(jìn)行改進(jìn)。假設(shè)初始種群中共有m只麻雀,經(jīng)過(guò)一次迭代后剩余滿足條件的麻雀共有n只,從n只麻雀中隨機(jī)選取固定數(shù)量k只麻雀并計(jì)算其適應(yīng)度值,保留下適應(yīng)度值最優(yōu)的個(gè)體,重復(fù)上述步驟,直到保留下來(lái)的麻雀數(shù)量與原種群數(shù)量一致。
麻雀種群迭代后期可能會(huì)出現(xiàn)大量麻雀聚集,從而陷入局部最優(yōu)值。因此在種群迭代過(guò)程中引入柯西變異算子[8]與高斯變異算子[9]??挛髯儺愊喈?dāng)于在整體范圍內(nèi)重新生成一些不同的個(gè)體,以此增加麻雀種群多樣性;高斯變異是在部分接近極值點(diǎn)個(gè)體附近隨機(jī)產(chǎn)生一個(gè)新的麻雀?jìng)€(gè)體,實(shí)現(xiàn)在其附近的區(qū)域內(nèi)重點(diǎn)搜索。柯西變異與高斯變異的過(guò)程就是在進(jìn)行變異操作時(shí)分別加入一個(gè)符合Cauchy分布和標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)向量。變異公式為
xnew=x+xCaucay(0,1)
(6)
xnew=x+xN(0,1)
(7)
通過(guò)比較式(6)、式(7)變異后的新個(gè)體xnew與原個(gè)體x的適應(yīng)度值判斷是否發(fā)生替換,將適應(yīng)度值更優(yōu)地保留下來(lái)。
改進(jìn)的麻雀搜索算法引入了Sobol序列初始化麻雀種群,用錦標(biāo)賽算法保證麻雀種群的數(shù)量不變,引入柯西變異與高斯變異提高搜索能力,增加種群多樣性。其優(yōu)化過(guò)程如下。
(1)參數(shù)初始化。確定種群的規(guī)模,最大迭代次數(shù),能感覺(jué)到危險(xiǎn)的麻雀數(shù)量,預(yù)警值以及發(fā)現(xiàn)者和加入者的比例。
(2)應(yīng)用Sobol序列產(chǎn)生初始麻雀種群。并將其映射到原空間中的取值范圍。
(3)計(jì)算適應(yīng)度值。將適應(yīng)度值從小到大排序,對(duì)應(yīng)著麻雀?jìng)€(gè)體在種群中的位置越來(lái)越差。最小值對(duì)應(yīng)XP,最大值對(duì)應(yīng)Xworse。
(4)利用式(3)更新發(fā)現(xiàn)者的位置。
(5)利用式(4)更新加入者的位置。
(6)當(dāng)意識(shí)到危險(xiǎn)后可利用式(5)進(jìn)行位置更新并計(jì)算適應(yīng)度值。
(7)一次更新完成后利用錦標(biāo)賽算法保持種群的原始數(shù)量。
(8)利用公式對(duì)麻雀進(jìn)行變異,并且計(jì)算變異后麻雀?jìng)€(gè)體適應(yīng)度值,保留下適應(yīng)度值更優(yōu)的個(gè)體進(jìn)行接下來(lái)的步驟。
(9)對(duì)當(dāng)前種群進(jìn)行適應(yīng)度值計(jì)算,并找到最優(yōu)位置與最差位置。
(10)判斷是否停止。不滿足停止條件則重新進(jìn)行(3)~(9)。
為了驗(yàn)證改進(jìn)麻雀搜索算法的性能,對(duì)ISSA算法用基準(zhǔn)測(cè)試函數(shù)進(jìn)行了測(cè)試,表1、表2為部分基準(zhǔn)測(cè)試函數(shù)與測(cè)試結(jié)果,并且與改進(jìn)前的麻雀搜索算法SSA,粒子群算法(particle swarm optimization,PSO),灰狼優(yōu)化算法(grey wolf qptimizer,GWO),鯨魚(yú)算法(whale optimization algorithm,WOA)算法進(jìn)行了對(duì)比。表1中xi為在搜索空間內(nèi)隨機(jī)生成的d維數(shù)組。
表1 基準(zhǔn)測(cè)試函數(shù)
表2 測(cè)試函數(shù)結(jié)果
實(shí)驗(yàn)中所有選取的種群數(shù)量均為30,生產(chǎn)者數(shù)量占種群的20%,最大迭代次數(shù)為1 000,其他的參數(shù)由表1中的各個(gè)函數(shù)確定。列舉了函數(shù)1的測(cè)試結(jié)果如圖3所示,函數(shù)1的最小值為0,最小值對(duì)應(yīng)的坐標(biāo)為(0,0)。從圖3中可以看到改進(jìn)的麻雀搜索算法與原算法達(dá)到相同的精度時(shí)經(jīng)歷的迭代次數(shù)更少。表2為對(duì)部分測(cè)試函數(shù)運(yùn)行多次優(yōu)化結(jié)果處理后的值,根據(jù)表2中的結(jié)果可以發(fā)現(xiàn),ISSA對(duì)于單峰測(cè)試函數(shù)的結(jié)果非常明顯,收斂速度更快穩(wěn)定性更好。對(duì)于個(gè)別多峰測(cè)試函數(shù)和低維函數(shù)的改進(jìn)效果不明顯,但是尋優(yōu)結(jié)果與穩(wěn)定性仍然比其他的算法效果好。
圖3 函數(shù)1測(cè)試結(jié)果
最小二乘支持向量機(jī)對(duì)于支持向量機(jī)的改進(jìn)過(guò)程是將原算法中的不等式約束條件改為了等式約束,并且將誤差平方和作為經(jīng)驗(yàn)損失[10]。
給定訓(xùn)練樣本{xi,yi},i=1,2,3,…,n,n為樣本總數(shù)。xi∈Rd,d為Rd空間的維數(shù),yi∈R,把原空間中的樣本用非線性函數(shù)φ(x)映射到特征空間。在高維空間中構(gòu)建的最優(yōu)決策函數(shù)為
f(x)=ωTφ(x)+b
(8)
式(8)中:ω為權(quán)向量;b為常數(shù)且b∈R。LSSVM采用函數(shù)擬合精度ξi的平方項(xiàng),根據(jù)SRM準(zhǔn)則優(yōu)化目標(biāo)和約束條件為
(9)
式(9)中:參數(shù)c>0,代表著懲罰函數(shù),用于控制超出誤差樣本的懲罰程度。根據(jù)Mercer定理,核函數(shù)定義為
K(xi,yi)=φT(xi)φ(xi)
(10)
引入拉格朗日乘子αi(αi∈R),求解羅需-庫(kù)恩-塔克(Karush Kuhn Tucker,KTT)等式約束條件可得
(11)
用最小二乘法求解式(11)可以得到α和b。線性回歸函數(shù)可表示為
(12)
此時(shí)就將原支持向量機(jī)中的二次規(guī)劃問(wèn)題轉(zhuǎn)變成了利用最小二乘法求解線性方程組問(wèn)題[11]。
民用電力負(fù)荷所受的影響因素較多,且具有很強(qiáng)的隨機(jī)性,充分考慮影響因素會(huì)提高預(yù)測(cè)的效果,但是將降低預(yù)測(cè)模型的效率。通過(guò)研究發(fā)現(xiàn),短期負(fù)荷預(yù)測(cè)中居民用電負(fù)荷與前幾天的歷史負(fù)荷以及預(yù)測(cè)日當(dāng)天的氣溫有極大的關(guān)系[12]。實(shí)例分別用ISSA-LSSVM模型與SSA-LSSVM模型對(duì)寧夏地區(qū)2018年6月22日的實(shí)際負(fù)荷進(jìn)行預(yù)測(cè)并進(jìn)行對(duì)比,選擇了6月17—21日5 d的歷史負(fù)荷與6月22日當(dāng)天的溫度作為輸入變量對(duì)負(fù)荷進(jìn)行預(yù)測(cè),歷史數(shù)據(jù)的采樣間隔為15 min。
由于在采樣過(guò)程中會(huì)受到外部環(huán)境及其他因素的干擾,首先對(duì)原始數(shù)據(jù)進(jìn)行去噪聲處理。將去噪后的數(shù)據(jù)分為訓(xùn)練數(shù)據(jù)與預(yù)測(cè)數(shù)據(jù),訓(xùn)練數(shù)據(jù)占整個(gè)數(shù)據(jù)集80%;預(yù)測(cè)數(shù)據(jù)用于對(duì)6月22日負(fù)荷的預(yù)測(cè),占整個(gè)數(shù)據(jù)集的20%。由于歷史數(shù)據(jù)與溫度數(shù)據(jù)的數(shù)值差異較大,首先對(duì)其進(jìn)行歸一化處理。歸一化公式為
(13)
式(13)中:x*為歸一化后的數(shù)值,作為預(yù)測(cè)模型的輸入值;xmax、xmin為原數(shù)據(jù)中的最大、最小值。
對(duì)于預(yù)測(cè)模型的性能評(píng)價(jià)需要有一定的評(píng)價(jià)指標(biāo),本文中采用常見(jiàn)的4種性能評(píng)價(jià)指標(biāo):相對(duì)誤差(relative error,RE)、平均絕對(duì)誤差(mean absolute error,MAE)、平均絕對(duì)百分比誤差(mean absolute percentage error,MAPE)、均方根誤差(root mean square error,RMSE)對(duì)預(yù)測(cè)性能做出評(píng)價(jià)。計(jì)算式為
(14)
(15)
(16)
(17)
式中:y′t、yt表示t時(shí)刻的預(yù)測(cè)值和實(shí)際值;n為預(yù)測(cè)樣本的個(gè)數(shù)。采用上述四個(gè)指標(biāo)對(duì)ISSA-LSSVM模型與SSA-LSSVM模型進(jìn)行對(duì)比分析。ISSA-LSSVM模型預(yù)測(cè)的流程圖如圖4所示。
圖4 ISSA-LSSVM模型預(yù)測(cè)流程圖
通過(guò)實(shí)際的仿真,預(yù)測(cè)結(jié)果如圖5所示。從圖5中可以看到原始數(shù)據(jù)序列的波動(dòng)較大,總體用電趨勢(shì)符合民用負(fù)荷的“峰谷”特性,但是在短期時(shí)間內(nèi)的波動(dòng)性越大,對(duì)預(yù)測(cè)模型的要求越高。從預(yù)測(cè)結(jié)果可以看到ISSA-LSSVM模型的預(yù)測(cè)效果更好,對(duì)用電高峰和低谷的預(yù)測(cè)更準(zhǔn)確,尤其在短期時(shí)間內(nèi)負(fù)荷波動(dòng)較大情況下的預(yù)測(cè)精度也高于SSA-LSSVM模型。從圖6可以到ISSA-LSSVM模型的相對(duì)誤差更小且相對(duì)穩(wěn)定,預(yù)測(cè)性能大大提高。表3中的各項(xiàng)評(píng)價(jià)指標(biāo)顯示ISSA-LSSVM模型的預(yù)測(cè)性能都有所提高。由此可見(jiàn),ISSA-LSSVM模型的預(yù)測(cè)精度更高,預(yù)測(cè)性能更好,滿足實(shí)際的短期電力負(fù)荷預(yù)測(cè)問(wèn)題;改進(jìn)的麻雀搜索算法也可以應(yīng)用于實(shí)際工程問(wèn)題。
圖5 預(yù)測(cè)結(jié)果
圖6 預(yù)測(cè)結(jié)果相對(duì)誤差
表3 預(yù)測(cè)性能對(duì)比
為了提高短期負(fù)荷預(yù)測(cè)的精度,對(duì)麻雀搜索算法進(jìn)行了改進(jìn)并用其優(yōu)化最小二乘支持向量機(jī)的參數(shù)。首先通過(guò)Sobol序列使得初始種群分布更加均勻,用錦標(biāo)賽算法保證搜索后期種群數(shù)量與最初保持一致,通過(guò)柯西-高斯雙變異增加種群的多樣性。通過(guò)測(cè)試函數(shù)的驗(yàn)證發(fā)現(xiàn)改進(jìn)的麻雀搜索算法優(yōu)化性能提高且更加穩(wěn)定。將ISSA-LSSVM模型應(yīng)用于短期負(fù)荷預(yù)測(cè),通過(guò)對(duì)比發(fā)現(xiàn)預(yù)測(cè)精度提高,預(yù)測(cè)誤差減小,實(shí)驗(yàn)結(jié)果證明改進(jìn)的麻雀搜索算法可以應(yīng)用于實(shí)際工程問(wèn)題。