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