海雨之霖 趙博選 黎敏琦 董麗華
摘? 要:車速預(yù)測對于考慮實際交通特性的車輛路徑規(guī)劃十分有必要,本文將相鄰路段與待預(yù)測路段的當(dāng)前時刻和歷史時刻的車速作為輸入,建立了基于BP神經(jīng)網(wǎng)絡(luò)的車速預(yù)測模型,并采用遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,以提高預(yù)測模型的精度。與傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)構(gòu)建的預(yù)測模型相比,該方法提高了預(yù)測精度。
關(guān)鍵詞:車速預(yù)測;BP神經(jīng)網(wǎng)絡(luò);遺傳算法
城市道路路徑規(guī)劃可降低最后一公里配送的成本,提高配送效率,但動態(tài)的城市道路同行情況使得路徑規(guī)劃在一定時間后失效,因此為了應(yīng)對交通時變特性對路徑規(guī)劃的影響,預(yù)先的道路通行速度預(yù)測變得十分必要。徐韜[2]利用小波變換較強的時頻域特性,運用平移不變小波變換對數(shù)據(jù)去噪,對去噪后的數(shù)據(jù)建立 arima 模型,最后對浮動車輛的速度進行預(yù)測和分析。袁魯山[3]通過研究分析車速數(shù)據(jù)時間序列特性,利用NAR神經(jīng)系統(tǒng)網(wǎng)絡(luò)在處理非線性與時變性時間序列上的優(yōu)勢建立預(yù)測模型,對車速進行有效預(yù)測。牟濤等[4] 通過客觀分析與主觀分析方法相結(jié)合的方式,使用BP神經(jīng)網(wǎng)絡(luò)有效地預(yù)測了高速公路安全車速。
傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)收斂速度慢,易陷入局部最優(yōu)解,影響預(yù)測結(jié)果的準(zhǔn)確性[5]。若利用遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)參數(shù),就可以較好的提高收斂速度,防止陷入局部最優(yōu)。本研究探討基于遺傳算法的神經(jīng)網(wǎng)絡(luò)預(yù)測市區(qū)路段車流量方法,考慮車速的時空特性,將待預(yù)測路段及其相鄰上、下游路段的歷史車流量數(shù)據(jù)作為網(wǎng)絡(luò)輸入,預(yù)測數(shù)據(jù)作為網(wǎng)絡(luò)輸出,通過遺傳算法獲得網(wǎng)絡(luò)的較優(yōu)權(quán)值和閾值,以降低網(wǎng)絡(luò)預(yù)測誤差,加快收斂速度,通過測試,該方法提高了預(yù)測精度。
1 BP神經(jīng)網(wǎng)絡(luò)車速預(yù)測模型
1.1模型的拓?fù)浣Y(jié)構(gòu)
要預(yù)測某一指定道路的車速,若僅根據(jù)當(dāng)前道路的時間序列建立車速預(yù)測模型,則BP神經(jīng)網(wǎng)絡(luò)車速預(yù)測模型的訓(xùn)練過程只是在學(xué)習(xí)歷史車速的相關(guān)性,但道路并不是孤立存在的,而是與其相鄰道路連接構(gòu)建成交通路網(wǎng),因此車速還會受到其他道路車速的影響。將實際復(fù)雜路網(wǎng)簡化為如圖1所示的交通環(huán)境圖,待預(yù)測道路的上游相鄰路段道路1、道路2和道路3的車流會在路口A匯入待預(yù)測路段,同時該路段的車流會隨著時間的推移在路口B依次匯入下游相鄰路段道路4和道路5。由于道路車速與道路車流量成反比,即道路車流量越大則該道路的平均通行車速越慢,若下游相鄰路段車速低,則意味著這些路段車流量大,進入了擁堵狀態(tài),那么待預(yù)測路段車流從路口B 匯入下游路段時等待的時間會相應(yīng)的延長,導(dǎo)致待預(yù)測路段車速降低;若上游相鄰路段車速高,則意味著上游路段車輛從路口A匯入待預(yù)測路段的車流量增加速度變快,可能導(dǎo)致待預(yù)測路段的道路車速降低。由此可見,預(yù)測某一道路的車速并不能僅將該道路的速度時間序列作為模型輸入,還需要考慮其空間特性,從時空相關(guān)性的角度設(shè)置BP神經(jīng)網(wǎng)絡(luò)車速預(yù)測模型的輸入。
Vnt表示路段n在t時刻的平均車速,任意一個路段的下一時刻的擁堵狀況是由相鄰n-1個路段和當(dāng)前路段的t個時刻的擁堵狀況來預(yù)測的。
以圖1為例,與待預(yù)測路段相連的有5個上下游路段,則n為6,若t為3,則最終利用相鄰路段1、2、3、4、5與本路段6的當(dāng)前時刻和前2個時間段的擁堵等級進行預(yù)測。輸入層神經(jīng)元個數(shù)由輸入向量可知為18,輸出層神經(jīng)元個數(shù)為1,BP神經(jīng)網(wǎng)絡(luò)車速預(yù)測模型拓?fù)浣Y(jié)構(gòu)如圖2所示。
1.2模型的參數(shù)設(shè)置
1. 隱含層神經(jīng)元數(shù)目
在BP神經(jīng)網(wǎng)絡(luò)中,輸入層和輸出層的神經(jīng)元個數(shù)是確定的,隱含層的神經(jīng)元個數(shù)通過經(jīng)驗公式(2)確定
2. 激活函數(shù)
一般來說,對于像車速預(yù)測這樣的高度非線性的映射問題,用得較多的激活函數(shù)是 S型函數(shù),它包括值域在(0,1)區(qū)間的Sigmoid 函數(shù)和值域在(-1,1)的正切函數(shù),本文選用Sigmoid函數(shù)作為激活函數(shù)。
3. 訓(xùn)練算法
經(jīng)初步試算發(fā)現(xiàn),固定變比的變梯度算法trainscg效果較好,因此選用trainscg作為訓(xùn)練函數(shù)。
02 基于遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)
初始種群中的每個個體包含隨機生成的權(quán)值和閾值,采取實數(shù)編碼方式對個體染色體進行編碼,使用平均百分比誤差(MAPE)作為適應(yīng)度函數(shù),基于所采取的適應(yīng)度函數(shù)的評價標(biāo)準(zhǔn),函數(shù)值越低則適應(yīng)度越優(yōu),個體更容易被選擇,繼而進行染色體交叉、變異,多次迭代后從新種群中選出最優(yōu)個體,即最優(yōu)初始權(quán)值、閾值。遺傳算法更新BP神經(jīng)網(wǎng)絡(luò)的詳細(xì)操作步驟如下:
Step1,確定BP神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。根據(jù)訓(xùn)練樣本確定輸入層神經(jīng)元個數(shù)m、隱含層神經(jīng)元個數(shù)h、輸出層神經(jīng)元個數(shù)n。
Step2,個體染色體編碼,獲得初始種群,并確定最大迭代數(shù)G,每個染色體依據(jù)權(quán)值和閾值的取值范圍隨機生成,采用實數(shù)編碼,長度為(m×h+h+h×n+n)。
Step3,解碼得到權(quán)值和閾值。
Step4,將權(quán)值和閾值賦給BP神經(jīng)網(wǎng)絡(luò)。
Step5,使用訓(xùn)練樣本訓(xùn)練網(wǎng)絡(luò),并計算個體適應(yīng)度。適應(yīng)度函數(shù)為MAPE
Step6,依次進行選擇操作、交叉操作和變異操作。
Step7,重復(fù)進行Step3-Step6,每進行1次,種群就進化1次,連續(xù)進化到第G代或達到個體最優(yōu)適應(yīng)度。
Step8,將新種群適應(yīng)度最優(yōu)的個體解碼,獲得最優(yōu)初始權(quán)值和閾值,代入BP神經(jīng)網(wǎng)絡(luò)預(yù)測。
2.1選擇算子
本研究采用輪盤賭法選擇個體,其基本思想是,被選中的概率與個體的適應(yīng)度成正比。輪盤賭選擇算子的詳細(xì)步驟如下:計算每個個體能夠遺傳到下一代的概率 ;依次計算每個個體的累積概率 ;在[0,1]區(qū)間內(nèi)生成隨機數(shù),若滿足式(4)則個體k就被選擇進入子代種群,此操作重復(fù)進行,直到子代種群規(guī)模為M。
其中,xAt+1是變異之后的染色體,xA是變異之前的染色體,k是變異的一個常數(shù),取值為(0,1],xmax是個體的上限,xmin是個體的下線,r是產(chǎn)生的隨機數(shù)。
03 實例分析
3.1 實驗數(shù)據(jù)和參數(shù)設(shè)置
以北京市鼓樓西大街為例,為預(yù)測該道路24小時內(nèi)的車速,如圖4所示,該路段共有4個上下游路段,則n=5,令t=4,那么訓(xùn)練樣本中需要包含相鄰路段1、2、3、4、和本路段5的當(dāng)前時刻和前三個時間段的道路車速進行預(yù)測。
實驗數(shù)據(jù)來自于北京市公共數(shù)據(jù)開放平臺,2016年4月25至2016年4月29日5個工作日,鼓樓西大街(地安門外大街至舊鼓樓大街)及其相鄰上下游道路的車速數(shù)據(jù)(采樣間隔為5分鐘),以地安門外大街為例,道路的車速原始數(shù)據(jù)集如表1所示。
首先對原始道路車速數(shù)據(jù)預(yù)處理,得到1140個車速數(shù)據(jù)點,每5組數(shù)據(jù)為1期(前4期數(shù)據(jù)作為模型輸入,第5期待預(yù)測道路的車速為模型輸出),以此類推。基于上述規(guī)則,利用前4個工作日的1152個車速數(shù)據(jù)點滾動式[9]建立848個輸入輸出數(shù)據(jù)集,構(gòu)成模型的訓(xùn)練集,第5個工作日的車速數(shù)據(jù)點建立288個輸入輸出集,構(gòu)成模型的測試集。所選詳細(xì)數(shù)據(jù)見表2所列。
在本實驗中,BP神經(jīng)網(wǎng)絡(luò)的輸入層神經(jīng)元個數(shù)為20,輸出層神經(jīng)元個數(shù)為1。參照公式并通過多次試驗反復(fù)比對,最終確認(rèn)當(dāng)輸入層神經(jīng)元個數(shù)為12時,BP神經(jīng)網(wǎng)絡(luò)車速預(yù)測模型的預(yù)測結(jié)果更好。最大迭代次數(shù)為5000,目標(biāo)誤差為0.00001,學(xué)習(xí)率為0.01。BP神經(jīng)網(wǎng)絡(luò)模型的預(yù)測結(jié)果與實際車速比較如圖4所示。
GA-BP車速預(yù)測組合模型的種群規(guī)模為50,終止迭代次數(shù)為50,交叉進行概率為0.7,變異發(fā)生概率為0.05。GA-BP組合車速預(yù)測模型的預(yù)測結(jié)果如圖5所示。
3.2 預(yù)測結(jié)果評價
本文采用均方根誤差(RMSE)和平均百分比誤差(MAPE)評價指標(biāo)評價模型預(yù)測結(jié)果。
用于評價2種車速預(yù)測模型預(yù)測效果的詳細(xì)數(shù)據(jù)見表3所列。
北京市的早高峰時段為7:00am-9:00am,晚高峰時段為5:00pm-8:00pm,現(xiàn)評價2種車速預(yù)測模型在早高峰和晚高峰時段,即時間序列85-109,205-241的預(yù)測效果,詳細(xì)數(shù)據(jù)見表4所列。
由表3和表4可知,將BP神經(jīng)網(wǎng)絡(luò)與GA-BP組合2種變形預(yù)測模型的評價指標(biāo)相比較,不論是全天的車速預(yù)測還是高峰時段的車速預(yù)測,基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)都能夠提升預(yù)測精度,具有良好的預(yù)測效果。
結(jié)束語
各個時段的道路通行速度預(yù)測有助于提高路徑規(guī)劃的可靠性和有效性。為了更好地掌握和預(yù)測指定路段的車速,本文建立了兩種車速預(yù)測模型,分別為傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)車速預(yù)測模型和基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)車速預(yù)測模型,并結(jié)合鼓樓西大街及其相鄰上游和下游路段車速檢測數(shù)據(jù),綜合比對分析2種變形預(yù)測模型的預(yù)測結(jié)果可以看出,基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)車速預(yù)測模型,無論是全天車速預(yù)測還是高峰時段車速預(yù)測,都能夠相較于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)車速預(yù)測模型提高預(yù)測精度。
參考文獻
[1] 張智,肖作鵬,張偉,孫永海.社區(qū)配送國際經(jīng)驗的探討[J].研究與探討,2015(5),27-30.
[2] 徐韜.基于小波-ARIMA的浮動車運行車速動態(tài)預(yù)測模型[J].江西建材,2017(15):141-142.
[3] 袁魯山.基于NAR神經(jīng)網(wǎng)絡(luò)的車速預(yù)測及應(yīng)用[D].大連理工大學(xué),2016.
[4] 張徽陽.基于深度學(xué)習(xí)的道路車速預(yù)測算法的研究與實現(xiàn)[D].北京郵電大學(xué),2020.DOI:10.26969/d.cnki.gbydu.2020.001955.
[5]Holland J H.Adaptation in natural and artificial systems[M].Cambridge, MA,USA:MIT Press,1992.
[7] 周志華.機器學(xué)習(xí)[M].北京:清華大學(xué)出版社,2016.
作者簡介:海雨之霖(1999-),女,回族,陜西安康人,長安大學(xué)本科在讀,物流工程專業(yè)
通訊作者簡介:趙博選(1986-),男,漢族,陜西西安人,博士研究生,講師,研究方向:物流系統(tǒng)建模與優(yōu)化技術(shù)
基金項目:2021年國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目資助(項目編號:202110710015)