李 眩,吳曉兵,童百利
(安徽省銅陵職業(yè)技術(shù)學(xué)院 經(jīng)貿(mào)系 安徽 銅陵 244061)
灰色預(yù)測(cè)法是一種對(duì)含有不確定因素的系統(tǒng)進(jìn)行預(yù)測(cè)的方法,特別適合“少樣本建?!?,而灰色GM(1,1)模型是灰色系統(tǒng)中應(yīng)用非常廣泛的一種模型.但在許多應(yīng)用實(shí)例中發(fā)現(xiàn),GM(1,1)模型有時(shí)預(yù)測(cè)誤差較大[1].如何提高GM(1,1)模型的預(yù)測(cè)精度成為學(xué)者關(guān)注的重點(diǎn)[2-3].針對(duì)該問(wèn)題,本研究利用粒子群算法所具有的收斂速度快、設(shè)置參數(shù)少和容易實(shí)現(xiàn)的優(yōu)點(diǎn),提出了一種運(yùn)用動(dòng)態(tài)自適應(yīng)粒子群優(yōu)化(particle swarm optimization,PSO)算法來(lái)提升GM(1,1)模型精度的方法,并通過(guò)實(shí)例驗(yàn)證了利用改進(jìn)的粒子群算法用于提高GM(1,1)模型預(yù)測(cè)精度的有效性和合理性.
GM模型可以用來(lái)對(duì)灰色系統(tǒng)進(jìn)行預(yù)測(cè),其建模的基本思路是,利用原始數(shù)據(jù)序列x(0),經(jīng)累加生成序列x(1),并對(duì)生成變換后的序列x(1)建立微分方程模型,即GM模型.
灰色預(yù)測(cè)模型中應(yīng)用最多的是GM(1,1)模型,GM(1,1)模型在預(yù)測(cè)形式上屬于單數(shù)列預(yù)測(cè)模型,只用到系統(tǒng)行為序列,而無(wú)外作用序列,是灰色預(yù)測(cè)的核心模型,其對(duì)于小樣本、貧數(shù)據(jù)的預(yù)測(cè)在某些情況下能取得較好預(yù)測(cè)效果[2].
GM(1,1)模型的預(yù)測(cè)原理是:對(duì)某一數(shù)據(jù)序列用累加的方式生成一組趨勢(shì)明顯的新數(shù)據(jù)序列,按照新的數(shù)據(jù)序列的增長(zhǎng)趨勢(shì)建立模型進(jìn)行預(yù)測(cè),然后再用累減的方法進(jìn)行逆向計(jì)算,恢復(fù)原始數(shù)據(jù)序列,進(jìn)而得到預(yù)測(cè)結(jié)果.灰色GM(1,1)預(yù)測(cè)模型實(shí)施步驟如下:
假設(shè)原始數(shù)據(jù)數(shù)列x(0)存在n個(gè)觀測(cè)值,即x(0)={x(0)(1),x(0)(2),…,x(0)(n)}.將原始數(shù)據(jù)序列x(0)通過(guò)累加生成新數(shù)列x(1),以此弱化隨機(jī)序列的波動(dòng)性和隨機(jī)性.通過(guò)累加生成可看出灰量累積過(guò)程的發(fā)展態(tài)勢(shì),使雜亂的原始數(shù)據(jù)中蘊(yùn)含規(guī)律體現(xiàn)出來(lái),即,
得到新數(shù)列,
X(1)(n)={X(1)(1),X(1)(2),…,X(1)(n)}
由X(1)計(jì)算其緊鄰均值等權(quán)新數(shù)列,
Z(1)={Z(1)(2),Z(1)(3),…,Z(1)(n)}
其中,Z(1)(k)=0.5x(1)(k)+0.5x(1)(k-1).
對(duì)數(shù)列X(1)與Z(1)建立白化微分方程構(gòu)建GM(1,1)模型,
(1)
其白化方程為,
x(0)(k)+a*Z(1)(k)=b
(2)
式中,a和b都是模型的待定參數(shù).
傳統(tǒng)GM模型都是根據(jù)數(shù)據(jù)采用最小二乘法求解參數(shù).由此,方程的解為,
GM(1,1)模型的時(shí)間響應(yīng)序列為,
將上述結(jié)果累減還原,即可得到預(yù)測(cè)值,
(3)
GM模型的預(yù)測(cè)精度與模型參數(shù)有很大關(guān)系,所求參數(shù)解是否最優(yōu),直接影響到模型的預(yù)測(cè)精度.在參數(shù)的計(jì)算上,灰色系統(tǒng)理論中的傳統(tǒng)求解方法是根據(jù)實(shí)際值與理論值的離差平方和最小的原則,然后通過(guò)偏導(dǎo)求解模型參數(shù).而有理論分析和實(shí)踐表明,傳統(tǒng)的最小二乘法求解GM模型參數(shù)在數(shù)據(jù)“異?!睍r(shí)會(huì)失真較大[3].
鑒于傳統(tǒng)GM模型精度不理想以及誤差較大的情況,有學(xué)者們從原始數(shù)據(jù)的函數(shù)變換、以x(0)(n)作為初始條件構(gòu)造時(shí)間響應(yīng)式以及改進(jìn)背景值Z(1)(k)的構(gòu)造方式等諸多方面對(duì)傳統(tǒng)GM模型進(jìn)行改進(jìn),雖然能在一定程度上提高精度,但終究避開(kāi)不了在求解模型參數(shù)上存在的不足.對(duì)此,本研究對(duì)原始的PSO算法進(jìn)行改進(jìn),提出一種基于動(dòng)態(tài)自適應(yīng)變參優(yōu)化的PSO算法,并將其運(yùn)用于求解GM模型最優(yōu)參數(shù),以此來(lái)提高模型的預(yù)測(cè)精度.
PSO算法的基本思路是,在可行解空間(算法的搜索區(qū)域)中對(duì)粒子的速度和位置進(jìn)行隨機(jī)初始化,每個(gè)粒子具有位置、速度和適應(yīng)度值3項(xiàng)指標(biāo)值,適應(yīng)度值由對(duì)應(yīng)的適應(yīng)度函數(shù)計(jì)算得到,其值的大小表示粒子的優(yōu)劣.粒子在解空間中運(yùn)動(dòng),通過(guò)跟蹤個(gè)體極值和群體極值更新個(gè)體位置,粒子每一次更新,就計(jì)算一次適應(yīng)度值,并由適應(yīng)度值來(lái)決定個(gè)體極值和群體極值是否更新,粒子將參考群體當(dāng)前的最優(yōu)粒子和自身歷史經(jīng)驗(yàn),并逐代進(jìn)化搜索最后得到最優(yōu)解[4].
標(biāo)準(zhǔn)PSO算法實(shí)現(xiàn)過(guò)程為:假設(shè)在M維(即有M個(gè)函數(shù)自變量)搜索域中有n個(gè)粒子組成一個(gè)群體,n代表種群規(guī)模.研究表明,種群太小則不能保證粒子群體的多樣性,以致算法性能很差,即種群太大盡管可以增加尋優(yōu)的效率,并阻止早熟收斂的發(fā)生,但無(wú)疑會(huì)增加計(jì)算量,造成收斂時(shí)間太長(zhǎng),表現(xiàn)為收斂速度緩慢[5].Xi=(xi1,xi2,…,xiM),i=1,2,…,n為粒子i的位置向量,粒子維數(shù)取決于待優(yōu)化函數(shù)的變量數(shù),其中xik代表粒子在第k個(gè)自變量上的取值,xik∈[L,U].在實(shí)際應(yīng)用中,X每一維保證在一定的范圍內(nèi),這在函數(shù)優(yōu)化問(wèn)題中相當(dāng)于是自變量的定義域,L表示第k個(gè)自變量的取值下限,U表示第k個(gè)自變量的取值上限.Vi=(vi1,vi2,…,viM)為粒子i的速度向量,它們都是M維的,vik∈[vmin,vmax],vmin表示粒子在第k維方向上的最小速度,vmax表示粒子在第k維方向上的最大速度.在每一代尋優(yōu)中,粒子將根據(jù)粒子自身找到的歷史最優(yōu)位置和群體找到的歷史最優(yōu)位置來(lái)調(diào)整自己的飛行方向和方位[6].
記Pi=(pi1,pi2,…piM)是粒子i自身找到的具有最佳適應(yīng)值的位置,記Pg=(pg1,pg2,…,pgM)是整個(gè)粒子群搜索到的最優(yōu)位置,設(shè)f(x)為適應(yīng)度函數(shù),粒子i的個(gè)體最佳位置為,
群體所有粒子找到的全局最佳位置為,
pg∈{[p1(k),p2(k),…,pM(k)]|f(pg)
=min(f(p1(k),p2(k),…,pM(k)))}
第t代的第i個(gè)粒子進(jìn)化到第t+1代時(shí),第j維的速度和位置用如下的進(jìn)化方程計(jì)算,
vij(t+1)=w×vij(t)+c1×r1×[pij(t)-xij(t)]+c2×r2×[pgj(t)-xij(t)]
(4)
xij(t+1)=xij(t)+vij(t+1)
(5)
每一維粒子速度和位置的都會(huì)被約束在一個(gè)范圍內(nèi),如果超過(guò)邊界條件,則按如下方法處理,這樣可防止粒子逃遁出解空間的可能性:vij>vmax,xij 算法搜索性能對(duì)參數(shù)有較高的依賴性,算法涉及3個(gè)參數(shù),慣性權(quán)重w、加速因子c1及c2,該3個(gè)參數(shù)設(shè)置為定值或者線性變化會(huì)對(duì)算法尋優(yōu)及效率帶來(lái)不利影響[7].另外,在優(yōu)化前期,粒子具有較大速度可以提高搜索全局最優(yōu)解的能力,而在后期接近最優(yōu)解時(shí)為了不使粒子速度過(guò)大偏離最優(yōu)位置區(qū)域錯(cuò)失全局最優(yōu)解陷入局部最優(yōu),因此在后期接近全局最優(yōu)區(qū)域時(shí),位置更新幅度不宜過(guò)大,應(yīng)對(duì)粒子速度進(jìn)行有效掌控和約束,不能忽視后期粒子可能因速度過(guò)大俯沖脫離全局最優(yōu)區(qū)域的這種情況出現(xiàn)[8].故本研究在PSO算法中引入非線性變化的收縮因子ρ(t),與慣性權(quán)重相比,其更能有效管束粒子的飛行速度并改善算法的收斂能力. 為有效利用自適應(yīng)變化的參數(shù)提升粒子群算法性能,本研究不僅對(duì)慣性權(quán)重和加速因子進(jìn)行動(dòng)態(tài)時(shí)變調(diào)整,同時(shí)引入動(dòng)態(tài)時(shí)變的控制因子來(lái)約束粒子的位置更新幅度.因?yàn)閰?shù)的非線性時(shí)變調(diào)整能比線性調(diào)整獲得更佳的算法性能,這幾項(xiàng)參數(shù)的調(diào)整皆采取非線性的動(dòng)態(tài)自適應(yīng)時(shí)變調(diào)整策略[9].慣性權(quán)重的動(dòng)態(tài)非線性指數(shù)遞減的調(diào)整公式如下, (6) 式中,k為控制因子,控制w關(guān)于t函數(shù)曲線的平滑度.隨著自變量的增加,函數(shù)值遞減的速度逐漸下降.指數(shù)函數(shù)改進(jìn)的非線性遞減的慣性權(quán)重符合PSO算法的要求,在迭代次數(shù)過(guò)程中,慣性權(quán)重的值前期減少的速度比較慢,后期減少的速度較快,使得算法在搜索后期仍有較大慣性,在前期保證收斂速度的同時(shí)保證了搜索能力,有效避免陷入局部最優(yōu)[10].wstart=0.9,wend=0.4.當(dāng)t=0時(shí),w(t)=wstart=0.9,當(dāng)達(dá)到最大迭代次數(shù)tmax時(shí),w(t)=wend=0.4.k取5,后期變化步長(zhǎng)較小有較好表現(xiàn),算法能取得較好的穩(wěn)定性. 為了防止粒子速度過(guò)快俯沖脫離最優(yōu)解,對(duì)粒子位置更新幅度進(jìn)行控制,并在位置更新式(5)中引入動(dòng)態(tài)自適應(yīng)時(shí)變的控制因子ρ(t),對(duì)算法后期粒子位置更新幅度進(jìn)行約束.其變化規(guī)律按如下函數(shù)進(jìn)行調(diào)整, (7) 式中,ρmax設(shè)為1.8,ρmin設(shè)為0.4,α為常數(shù),設(shè)為0.009.如此,粒子位置更新公式調(diào)整為, xij(t+1)=xij(t)+ρ(t)×vij(t+1) (8) 僅僅減小w會(huì)使得算法一旦陷入局部陷阱內(nèi)就很難跳出,極易收斂到局部極值點(diǎn),而加速因子c1(t)、c2(t)對(duì)算法全局和局部尋優(yōu)能力也有重要影響,所以需要同時(shí)對(duì)這2個(gè)加速因子進(jìn)行非線性的時(shí)變動(dòng)態(tài)調(diào)整.本研究采用動(dòng)態(tài)自適應(yīng)時(shí)變調(diào)整策略,按照算法對(duì)加速因子的變化要求,c1先大后小、c2先小后大,以指數(shù)函數(shù)為基礎(chǔ)構(gòu)造變化關(guān)系式,使其分別呈現(xiàn)遞減和遞增變化,以此讓算法獲得較好的全局尋優(yōu)性能.其調(diào)整函數(shù)如下, (9) 式中,c2max設(shè)為2.0,c2min設(shè)為0.6,c2max設(shè)為2.0,c2min設(shè)為0.6,α為常數(shù),設(shè)為0.009.各參數(shù)變化曲線如圖1所示. (a)慣性權(quán)重變化曲線 粒子群中的每個(gè)粒子對(duì)應(yīng)優(yōu)化問(wèn)題的潛在可行解,根據(jù)適應(yīng)度值進(jìn)化迭代找到的最優(yōu)粒子則找到了對(duì)應(yīng)問(wèn)題的最優(yōu)解.在PSO算法中用適應(yīng)度值來(lái)評(píng)價(jià)粒子的優(yōu)劣,并作為以后粒子速度和位置更新的依據(jù),使得隨機(jī)初始解逐步向最優(yōu)解進(jìn)化.由此可見(jiàn),粒子群算法的適應(yīng)度函數(shù)設(shè)計(jì)是粒子群進(jìn)化尋優(yōu)的關(guān)鍵. (10) 式中,a,b是待求的GM模型參數(shù),其是適應(yīng)度函數(shù)的2個(gè)自變量. 自變量的取值范圍(即粒子的搜索范圍),可根據(jù)具體問(wèn)題進(jìn)行適當(dāng)設(shè)定.范圍設(shè)置過(guò)大,則需算法把搜索范圍遍歷一次,會(huì)降低算法的執(zhí)行效率;范圍設(shè)置過(guò)小,則沒(méi)有把具體問(wèn)題的最優(yōu)解包含在內(nèi),會(huì)造成算法不成熟收斂或者不收斂,得到的是問(wèn)題的局部最優(yōu)解或無(wú)解.對(duì)此,本研究在GM模型參數(shù)的求解問(wèn)題上,在參考傳統(tǒng)GM模型近似解的基礎(chǔ)上來(lái)設(shè)置算法的搜索范圍. 本研究以指數(shù)級(jí)高增長(zhǎng)數(shù)據(jù)序列的擬合與預(yù)測(cè)為例,利用提出的動(dòng)態(tài)自適應(yīng)變參PSO改進(jìn)的GM模型來(lái)進(jìn)行數(shù)據(jù)的擬合與預(yù)測(cè),并在精度和誤差上與傳統(tǒng)模型和殘差修正模型進(jìn)行對(duì)比,以此來(lái)驗(yàn)證基于PSO優(yōu)化的GM模型在預(yù)測(cè)方面的優(yōu)越性.在實(shí)例分析中,采用最小二乘法求得的GM參數(shù)雖是近似解,但最優(yōu)解肯定在近似解附近.同時(shí),利用PSO算法搜索最優(yōu)解時(shí),可以在參考近似解的基礎(chǔ)上來(lái)設(shè)置算法的搜索區(qū)域,即自變量的取值范圍,這樣有助于粒子群有針對(duì)性地展開(kāi)精細(xì)搜索. 例:假設(shè)某地發(fā)生傳染病暴發(fā)情形,其在某周感染人數(shù)的日?qǐng)?bào)數(shù)據(jù)如下, x0=[3,11,28,85,251,736,2199] 從數(shù)據(jù)的增長(zhǎng)趨勢(shì)可以看出,該數(shù)據(jù)呈近似指數(shù)級(jí)增長(zhǎng).利用傳統(tǒng)GM模型和殘差修正GM模型在軟件中建模,其擬合與預(yù)測(cè)結(jié)果數(shù)據(jù)截圖如圖2所示. (a)傳統(tǒng)GM模型計(jì)算結(jié)果 從圖2數(shù)據(jù)可以看出,傳統(tǒng)模型和殘差修正模型對(duì)指數(shù)級(jí)增長(zhǎng)數(shù)據(jù)序列的擬合與預(yù)測(cè)結(jié)果非常不理想,誤差較大.下面采用改進(jìn)PSO算法融合GM(1,1)模型來(lái)對(duì)該指數(shù)級(jí)增長(zhǎng)數(shù)據(jù)序列進(jìn)行預(yù)測(cè),在參考傳統(tǒng)GM模型求得參數(shù)值的基礎(chǔ)上設(shè)自變量范圍為[-4,4],初始粒子數(shù)目N設(shè)為100,迭代次數(shù)T設(shè)為500,在Matlab運(yùn)行動(dòng)態(tài)自適應(yīng)變參PSO程序,得到適應(yīng)度進(jìn)化曲線如圖3所示. 圖3 適應(yīng)度函數(shù)值變化曲線 圖3結(jié)果顯示,PSO算法收斂相當(dāng)快.Matlab程序求得的GM模型參數(shù)分別為:a=-1.0908,b=1.9192.得到的PSO優(yōu)化的GM模型的預(yù)測(cè)值時(shí)間響應(yīng)式為, k=1,2,…,n 利用上述3種模型的時(shí)間響應(yīng)式計(jì)算得到不同時(shí)間的擬合預(yù)測(cè)值及誤差結(jié)果見(jiàn)表1. 表1 3種模型的擬合值、預(yù)測(cè)值、誤差對(duì)照表 由表1數(shù)據(jù)可知,基于動(dòng)態(tài)自適應(yīng)PSO算法與GM融合模型的預(yù)測(cè)結(jié)果遠(yuǎn)優(yōu)于前2種GM模型,在原始數(shù)據(jù)的擬合上誤差較小,而且在后續(xù)的時(shí)間預(yù)測(cè)數(shù)據(jù)的變化趨勢(shì)也非常吻合原始數(shù)據(jù)序列的變化趨勢(shì),效果較為理想.傳統(tǒng)GM模型在指數(shù)級(jí)高增長(zhǎng)數(shù)據(jù)序列的數(shù)據(jù)擬合上,誤差較大,且在后續(xù)時(shí)間預(yù)測(cè)上,預(yù)測(cè)數(shù)據(jù)的變化也明顯不吻合指數(shù)級(jí)高增長(zhǎng)的特征.而在數(shù)據(jù)序列高增長(zhǎng),非平穩(wěn)變化時(shí),殘差修正模型反而增大GM模型的擬合數(shù)據(jù)的誤差,在后續(xù)時(shí)間的預(yù)測(cè)數(shù)據(jù)變化趨勢(shì)也明顯大大高于原始數(shù)據(jù)的近似指數(shù)級(jí)的增長(zhǎng)特征.由此可見(jiàn),傳統(tǒng)GM模型與殘差修正模型非常不適合指數(shù)級(jí)增長(zhǎng)非平穩(wěn)數(shù)據(jù)序列的預(yù)測(cè)與擬合. 針對(duì)GM(1, 1)模型的應(yīng)用的局限性,尤其在數(shù)據(jù)序列變化非平穩(wěn)時(shí),模型擬合與預(yù)測(cè)的精度較差的情況,提出了利用改進(jìn)的PSO算法與GM融合模型來(lái)提高模型的預(yù)測(cè)精度.通過(guò)實(shí)例分析表明,本研究提出的基于動(dòng)態(tài)自適應(yīng)PSO算法的灰色GM模型,對(duì)于傳統(tǒng)與修正GM模型不適用的非平穩(wěn)序列,具有較高的擬合與預(yù)測(cè)精度,對(duì)于指數(shù)級(jí)增長(zhǎng)的非平穩(wěn)序列預(yù)測(cè)精度提升效果尤為明顯,在模型的適用性上較傳統(tǒng)GM模型和殘差修正模型更具有優(yōu)勢(shì).2.2 動(dòng)態(tài)自適應(yīng)變參策略在PSO算法中的應(yīng)用
2.3 基于GM(1,1)模型的適應(yīng)度函數(shù)設(shè)計(jì)
3 優(yōu)化PSO算法與GM(1,1)融合預(yù)測(cè)模型的實(shí)例分析
4 結(jié) 語(yǔ)