蔡延光,樂 冰,蔡 顥,李旭陽
(1.廣東工業(yè)大學 自動化學院,廣州 510006; 2.奧爾堡大學 健康科學與工程系,丹麥 奧爾堡 9220)
不良天氣會給高速公路交通安全和高速公路網的正常運行帶來較大影響。據統(tǒng)計,全國高速公路發(fā)生的交通阻斷事件大約有三分之一是由于不良天氣原因所致,大霧、暴雨和降雪等天氣環(huán)境還會導致交通擁堵和事故率顯著上升[1]。由于傳統(tǒng)的徑向基函數(RBF)神經網絡不能對不良天氣下的交通流進行有效預測,為了能夠準確預測交通流狀態(tài)信息,文獻[2]使用布谷鳥搜索(Cuckoo Search,CS)算法對小波神經網絡的網絡參數進行尋優(yōu),通過與其他算法的仿真對比驗證了其能取得較好的預測效果。CS算法模擬布谷鳥尋找最優(yōu)鳥巢位置而進行不斷迭代的過程,其具有較強的全局尋優(yōu)能力,能夠很好地應用于工程問題優(yōu)化任務。但是,CS算法在迭代過程中由于搜索能力的限制導致其不能跳出當前最優(yōu)解,從而降低了算法性能。為提高CS算法的搜索能力,文獻[3]利用混沌序列來確定CS算法的初始解,通過混沌初始化種群以加快種群的收斂速度。文獻[4]提出一種自適應步長調整CS算法,其能夠有效避免算法陷入局部最優(yōu)。文獻[5]在CS算法中引入高斯擾動對鳥巢位置更新進行優(yōu)化,擴大了每個解的搜索范圍并能夠得到較好的全局解。上述算法雖然能避免CS算法陷入局部最優(yōu),但在求解一些復雜度較高的問題時會導致算法訓練時間過長以及算法發(fā)散等問題。為此,本文提出一種基于猴爬山過程的自適應CS算法,將改進后的CS算法與RBF神經網絡相結合[6-8],建立改進的CS-RBFNN模型,以對暴雨天氣下的高速公路短時交通流進行預測。
CS算法[9]是一種模仿布谷鳥尋覓窩巢產蛋行為的啟發(fā)式智能優(yōu)化算法。布谷鳥不同于一般的鳥類,其繁衍后代時只產蛋,不親自進行孵化。鳥蛋的孵化是靠其他種群的鳥類來實現,即布谷鳥在一定空間內搜索所有的鳥巢,將自己產的蛋與其他鳥類的蛋混雜在一起,其他鳥類無法辨認蛋是否為自己所生產,因此會對鳥巢中所有的蛋進行孵化。但其中某些鳥類比較聰明,很容易識別出外來的鳥蛋,然后損壞布谷鳥鳥蛋或拋棄自己的整個鳥巢,最后重新尋找位置以修建新的鳥巢[10]。CS算法在迭代過程中需要遵循以下原則:
1)布谷鳥將自己的鳥蛋隨機打亂,并將鳥蛋放在其他鳥類的鳥巢中。
2)算法保留每次計算的最優(yōu)解。
3)假設其他鳥類的鳥巢數不變,其他鳥類識別出某蛋是外來鳥蛋的概率為Pa,Pa值在0~1之間。
CS算法中的鳥巢相當于解向量,在迭代過程中,首先初始化n個解向量,通過適應度函數f評價各個解向量,最優(yōu)解被保留,其他解根據萊維飛行策略尋找新的鳥巢,通過適應度函數計算并保留較優(yōu)的解,當其他鳥類以Pa識別出布谷鳥鳥蛋時,則拋棄該鳥巢,拋棄的同時隨機產生新的鳥巢位置,評價并保留較好的解,至此一次迭代完成。算法經過多次迭代,在達到一定條件時就得到最終解。布谷鳥尋窩路徑的位置更新過程如式(1)所示:
(1)
(2)
依照布谷鳥尋找最優(yōu)鳥巢位置的過程,CS算法的具體步驟如下:
步驟1CS算法初始化。其他種類鳥的鳥巢數為n,適應度函數為f(X),X=(x1,x2…,xi)T,i=1,2,…,n,其他種類鳥識別出鳥蛋的概率為Pa,允許的誤差為ε,算法的最大迭代次數為tmax。
步驟2按照適應度函數f(X)求出所有鳥巢位置的值,并找出當前最優(yōu)解。
步驟3鳥巢位置更新。其他鳥巢位置按式(1)進行更新。
步驟4計算更新后鳥巢位置的f(X),并與更新前最優(yōu)鳥巢位置進行比較。
步驟5如果更新后的鳥巢位置優(yōu)于更新前的位置,則更新后的鳥巢位置與更新前位置進行交換,其成為當前最優(yōu)解;否則保持原始最優(yōu)鳥巢位置。
步驟6產生一個0~1之間的數,將其與其他種類鳥識別出鳥蛋的概率Pa進行比較,若該數比Pa大,則隨機改變鳥巢位置。
步驟7保留當前最優(yōu)鳥巢位置。
步驟8若達到最大迭代次數或滿足允許的誤差,則轉步驟7;否則,轉步驟2。
步驟9輸出算法所求解。
CS算法的搜索結果很大程度上受步長因子的影響,當步長設置太大時,會導致搜索精度較低;當步長設置太小時,會增加算法的訓練時間,降低尋優(yōu)速度。CS算法對鳥巢位置的更新也與Pa有關,Pa概率選擇過大或過小,都會影響CS算法的性能,因此,對于CS算法中步長α和概率Pa的選擇非常重要。在一般情況下,CS算法中的步長α和概率Pa都不變,由于α和Pa不會隨著算法尋優(yōu)過程進行變化,從而導致算法搜尋時間過長或者出現發(fā)散的情況。本文擬在CS算法的基礎上引入猴爬山過程策略,利用猴群算法中的爬山過程對CS算法進行優(yōu)化[11]。
1.3.1 猴爬山過程策略改進
猴群算法是模擬猴子爬山最終達到山頂過程中的一些行為特性的優(yōu)化算法。猴群算法通過猴子的爬、望、跳3種行為進行迭代,按照算法特定的路線逐漸地接近整個群體最優(yōu)解。猴群算法中的爬行為在每次迭代過程中都需要運行多次,在每次爬的過程中,產生的新位置都是局部最優(yōu)解,因此,爬過程對算法性能的影響極大,爬過程中的步長設置更為重要,步長設置過大,雖然能減少迭代次數,但會降低求解精度;當步長設置過小,情況則相反。本文采用自適應改變步長的策略來更新爬過程,再對CS算法鳥巢位置的更新進行優(yōu)化[12]。猴群爬過程改進策略的具體過程如下:
步驟1對于猴子i,其當前位置為xi=(xi1,xi2,…,xin),i=1,2,…,M,其中,M為猴子的數量,n為所求解的維數,引入一個增加爬過程的系數Δxi,Δxi=(Δxi1,Δxi2,…,Δxin),其滿足:
a>0,j=1,2,…,n
(3)
其中,a為爬山步長,本文采用自適應改變步長的策略,具體如式(4)所示:
(4)
其中,amin為最小步長,amax為最大步長,at為第t代的爬山步長。當算法的更替次數較小時,步長at的值較大,能夠快速地移動到最優(yōu)解附近;當算法的更替次數較大時,步長慢慢變小,能夠避免步長太大而錯過最優(yōu)鳥巢位置,使得CS算法在迭代后期的全局尋優(yōu)能力開始減弱,局部尋優(yōu)的能力逐漸增強[13]。
步驟2計算偽梯度向量:
(5)
其中,向量f′i(xi)=(f′i1(xi),f′i2(xi),…,f′in(xi))為f(x)的偽梯度。
步驟3計算猴子i更新后的位置yi=(yi1,yi2,…,yin),其中,yi=xij+a·sign(f′ij(xi)),j=1,2,…,n,sign為符號函數。
步驟4若yi在合理范圍內,且滿足f(yi)≥f(xi),則用新鳥巢位置替換舊位置;否則,位置保持不變。
步驟5若達到最大迭代次數或滿足允許的誤差,則退出操作;否則,重復步驟1~步驟4。
1.3.2 識別概率自適應更新策略
在尋優(yōu)過程中,由于搜索能力的限制,CS算法容易快速聚集到局部最優(yōu)解附近,導致算法提早收斂到局部最優(yōu)解而出現早熟狀態(tài),從而很難出現更好的適應度值,即難以搜索到全局最優(yōu)。識別概率Pa設置過大或過小都會直接影響算法的收斂速度與求解精度。為此,本文采用改進的識別概率來提高算法性能,具體如下:
(6)
其中,pmin為最小識別概率,pmax為最大識別概率。當算法的更替次數較小時,識別概率接近于pmax,隨著更替次數的增加,識別概率逐漸降低,當迭代次數接近tmax時,識別概率接近pmin。當種群的最佳個體接近全局最優(yōu)解時,識別概率自適應更新策略會縮小對種群的搜索范圍,并將當前較好的解保留到下一代,使得算法在較短時間內獲取最優(yōu)解。
本文基于改進CS-RBFNN的交通流預測[14-16]步驟具體如下:
步驟1交通流數據的預處理。利用指數平滑法對歷史高速公路交通流數據進行降噪,再按照如下公式對數據作最小-最大規(guī)范化處理:
將xik的值映射到[xnewmin,xnewmax]的區(qū)域中,其中,xnewmax與xnewmin分別為處理后數據的最大值和最小值,本文取xnewmax=0.8,xnewmin=0.1。
步驟2利用改進CS算法對RBF神經網絡參數進行編碼。初始化算法參數:其他種類鳥的鳥巢數為n,適應度函數為f(X),X=(x1,x2,…,xi)T,其中i=1,2,…,n,猴爬山最小步長為amin,最大步長為amax,其他種類鳥最大識別概率為Pmax,最小識別概率為Pmin,允許的誤差為ε,算法的最大迭代次數為tmax。
步驟3按照適應度函數f(X)求出所有鳥巢位置的值,并找出當前最優(yōu)鳥巢位置。
步驟4改進猴爬山過程策略:
1)對于鳥巢i,其當前位置為xi=(xi1,xi2,…,xip),i=1,2,…,n,其中,n為鳥巢的數量,p為所求解的維數,引入一個增加爬過程的系數Δxi。
2)采用自適應改變步長的策略,具體如式(4)所示。
3)計算偽梯度向量。
4)計算新的鳥巢位置yi。若yi在合理范圍內,且滿足f(yi)≥f(xi),則用新鳥巢位置替換舊位置;否則,位置保持不變。
5)若達到最大迭代次數或滿足允許的誤差,則退出操作;否則,重復步驟1)~步驟4)。
步驟5計算更新后鳥巢位置的f(X),并與更新前最優(yōu)鳥巢位置進行比較。
步驟6如果更新后的鳥巢位置優(yōu)于更新前的位置,則更新后的鳥巢位置成為當前最優(yōu)解;否則,保持原始最優(yōu)鳥巢位置。
步驟7產生一個0~1之間的數,將其與其他種類鳥識別概率Pa進行比較,若該數比Pa大,則隨機改變鳥巢位置。
步驟8保留當前最優(yōu)鳥巢位置。
步驟9若達到最大迭代次數或滿足允許的誤差,則轉步驟10;否則,轉步驟3。
步驟10輸出算法所求解并解碼。
步驟11訓練RBF神經網絡。
步驟12利用訓練好的RBF神經網絡對暴雨天氣下的高速公路交通流進行預測。
步驟13算法結束。
基于改進CS-RBFNN的暴雨天氣下高速公路短時交通流預測流程如圖1所示。
圖1 基于改進CS-RBFNN的暴雨天氣下高速公路 短時交通流預測流程
本文實驗的交通流數據由某高速公路控制中心提供,采用2015年3月—7月共153天的數據作為訓練數據,每隔15 min統(tǒng)計一次車流量信息,單日樣本長度為96,共獲取記錄14 688條,以2017年8月發(fā)生暴雨天氣的數據作為測試數據[17-19]。為了驗證本文改進CS-RBFNN交通流預測模型的性能,采用MATLAB實現仿真驗證。設置算法參數為:M=18,n=150,amin=0.05,amax=0.2,pmin=0.1,pmax=0.4,學習率η=0.01,tmax=800,ε=10-5。
為顯示改進CS-RBFNN的優(yōu)越性,本文分別基于改進GSO-RBFNN和基本CS-RBFNN預測模型[20]設計2個對比實驗。首先分析3種模型在預測-真實值和預測誤差上的差異性,其中,預測誤差采用帶符號的相對誤差?;诟倪MGSO-RBFNN模型的暴雨天氣下高速公路交通流預測結果如圖2所示,基于基本CS-RBFNN和改進CS-RBFNN模型的暴雨天氣下高速公路交通流預測結果分別如圖3、圖4所示。從圖2~圖4可以看出,改進CS-RBFNN預測結果與實際交通流曲線基本吻合,其能夠很好地預測該路段車流量的走勢,而改進GSO-RBFNN和基本CS-RBFNN的預測結果與實際交通流曲線存在較大偏差,兩者不能有效地預測暴雨條件下的高速公路車流量。改進CS-RBFNN、改進GSO-RBFNN和基本CS-RBFNN 3種模型的預測誤差對比如圖5所示。
圖2 基于改進GSO-RBFNN模型的暴雨天氣下高速 公路交通流預測結果
圖3 基于基本CS-RBFNN模型的暴雨天氣下高速 公路交通流預測結果
圖4 基于改進CS-RBFNN模型的暴雨天氣下高速 公路交通流預測結果
圖5 3種模型的預測誤差對比結果
從圖5可以看出,基本CS-RBFNN模型的預測誤差較大,超過了0.3,改進GSO-RBFNN模型的預測誤差在0.2以內,而改進CS-RBFNN模型的預測誤差在0.1以內,其對暴雨條件下的高速公路車流量有很好的預測效果。
僅依據交通流預測曲線和誤差曲線并不能直觀反映交通流預測的各項評價指標,本文進一步對3種模型預測效果的平均絕對百分比誤差(MAPE)、平均絕對誤差(MAE)、均方根誤差(RMSE)3個指標進行對比分析,結果如表1所示。
表1 3種模型的交通流預測性能對比
從表1可以看出,相比于其他2種預測模型,改進CS-RBFNN模型的預測性能最優(yōu),其MAPE為8.2%,MAE為20.14,RMSE為19.2,改進GSO-RBFNN模型預測性能次之,而基本CS-RBFNN模型預測性能最差。
本文針對暴雨天氣下高速公路交通流預測問題進行分析,將改進的CS算法與RBF神經網絡相結合,建立一種改進的CS-RBFNN模型。在CS算法的基礎上引入猴爬山過程策略,利用猴群算法中的爬過程來優(yōu)化鳥巢位置的更新,再通過自適應策略對識別概率進行改進,以提高CS算法的全局搜索性并減少訓練時間。將改進的CS-RBFNN模型、基本CS-RBFNN模型和改進的GSO-RBFNN模型進行對比,結果表明,改進的CS-RBFNN模型能夠較好地預測暴雨天氣下的高速公路交通流。下一步將考慮更多影響交通流量的實際因素,如節(jié)假日、交通事故等,以建立更精確的預測模型。此外,結合初始化策略以及鄰域搜索策略等對算法進行改進并提高短時交通流量預測的精度,也是今后的研究重點。