□ 文/宓 恬
城市道路交通狀態(tài)預(yù)測系統(tǒng)設(shè)計與實現(xiàn)
□ 文/宓 恬
近年來在采集技術(shù)不斷突破,各種大數(shù)據(jù)云計算以及視頻光譜等技術(shù)突飛猛進(jìn)的技術(shù)大背景配合下,交通狀態(tài)預(yù)測模型在真實環(huán)境下的不斷嘗試與驗證變得更便捷。及時準(zhǔn)確的道路交通狀態(tài)預(yù)測,能夠成為政府及大眾決策用途的數(shù)據(jù)支持,進(jìn)而達(dá)到提高城市道路承載能力的的效果,對緩解日益明顯的交通擁堵有著重大的意義。
本文根據(jù)導(dǎo)入的數(shù)據(jù)源:上海市道路數(shù)據(jù),在上海市道路交通采集處理發(fā)布系統(tǒng)的基礎(chǔ)上建立交通狀態(tài)預(yù)測系統(tǒng)。實現(xiàn)在真實復(fù)雜的網(wǎng)絡(luò)架構(gòu)中,依據(jù)海量的實時和歷史交通真實數(shù)據(jù)中建立預(yù)測軟件集成。創(chuàng)新性的使用集成大數(shù)據(jù)計算、GIS技術(shù)等一系列計算機(jī)技術(shù)成果。
系統(tǒng)整體設(shè)計
為了達(dá)到城市道路交通狀態(tài)自動預(yù)測以及預(yù)測結(jié)果自動發(fā)布的目的,本系統(tǒng)的軟件構(gòu)架從邏輯上被劃分成以下三個層次,并分別將其定義為采集層、處理層與發(fā)布層。
采集層主要功能是快速路外場數(shù)據(jù)的實時采集與傳輸,即將交通信息采集設(shè)備檢測得到的交通數(shù)據(jù)按照工程技術(shù)要求實時傳輸?shù)浇煌ūO(jiān)控中心進(jìn)行處理。
處理層是軟件構(gòu)架的核心層,主要功能是經(jīng)過對數(shù)據(jù)的處理生成城市道路交通狀態(tài)信息以及對未來交通狀態(tài)進(jìn)行預(yù)測。首先,利用大數(shù)據(jù)技術(shù),應(yīng)對原始數(shù)據(jù)進(jìn)行數(shù)據(jù)質(zhì)量評價,對影響交通狀態(tài)判別算法運行的問題數(shù)據(jù)應(yīng)采用合理的方式修補(bǔ)。交通狀態(tài)判別算法根據(jù)實時數(shù)據(jù)輸入生成發(fā)布段交通狀態(tài)判別結(jié)果。交通狀態(tài)預(yù)測算法根據(jù)歷史案例庫和實時的交通狀態(tài)判別結(jié)果對未來的交通狀態(tài)進(jìn)行實時預(yù)測并生成預(yù)測結(jié)果。系統(tǒng)可以根據(jù)用戶需求制定不同的發(fā)布策略,決定最終發(fā)布的結(jié)果。
發(fā)布層是本系統(tǒng)“窗口”,其主要功能是面向社會公眾提供城市道路交通狀態(tài)實時及預(yù)測信息服務(wù)。常用的發(fā)布媒介有外場情報板、廣播電臺、電視節(jié)目與網(wǎng)站等。發(fā)布形式通常有文字、圖形與語音等。
由于系統(tǒng)設(shè)計的完整性和實現(xiàn)的復(fù)雜性,本系統(tǒng)軟件按圖1,分八個灰色模塊實施:
圖1 軟件模塊結(jié)構(gòu)圖
在該系統(tǒng)中,可以看清數(shù)據(jù)流及整體架構(gòu):原始數(shù)據(jù)修補(bǔ)模塊先將從外場交通參數(shù)采集設(shè)備所采集的原始交通參數(shù)數(shù)據(jù)進(jìn)行修改與補(bǔ)充,然后運算處理,生成的間隔為20秒的發(fā)布段行程車速和斷面流量等數(shù)據(jù)存入原始交通參數(shù)數(shù)據(jù)庫。由于預(yù)測系統(tǒng)的數(shù)據(jù)粒度為3分鐘,因此由原始數(shù)據(jù)處理模塊將原始的20秒數(shù)據(jù)處理成3分鐘數(shù)據(jù);然后將3分鐘粒度的行程車速和斷面流量數(shù)據(jù)實時傳遞到交通參數(shù)單步預(yù)測模塊,同時將這些數(shù)據(jù)存入歷史案例庫,作為將來的歷史案例數(shù)據(jù);交通參數(shù)單步預(yù)測模塊將從原始數(shù)據(jù)處理模塊傳過來的發(fā)布段3分鐘粒度行程車速和斷面流量數(shù)據(jù)處理成交通參數(shù)單步(3分鐘)預(yù)測結(jié)果,存入歷史案例庫;預(yù)測參數(shù)聚類模塊讀取單步預(yù)測中間參數(shù)數(shù)據(jù),對這些數(shù)據(jù)中的某些字段進(jìn)行聚類,然后將聚類結(jié)果存入歷史案例庫;交通參數(shù)多步預(yù)測模塊利用實時的單步預(yù)測中間參數(shù)數(shù)據(jù)和歷史案例庫中的發(fā)布段歷史3分鐘粒度行程車速、斷面流量數(shù)據(jù)以及歷史單步預(yù)測數(shù)據(jù)生成多步預(yù)測結(jié)果數(shù)據(jù);交通預(yù)測展示模塊為人機(jī)交互界面模塊,當(dāng)它接收到用戶的命令后立即調(diào)用單步預(yù)測結(jié)果數(shù)據(jù)和多步預(yù)測結(jié)果數(shù)據(jù),通過短時間的處理后將結(jié)果展示給用戶。本章節(jié)將對包含核心大數(shù)據(jù)技術(shù)和算法的預(yù)測、預(yù)測、展示模塊進(jìn)行詳細(xì)設(shè)計描述。
系統(tǒng)詳細(xì)設(shè)計
系統(tǒng)設(shè)計描述
通過本系統(tǒng)用戶可以查詢行程時間預(yù)測以及歷史數(shù)據(jù)對比,本文給出了如圖2所示的系統(tǒng)總體結(jié)構(gòu)設(shè)計。
圖2 系統(tǒng)總體結(jié)構(gòu)圖
其中:交通預(yù)測展示子系統(tǒng)的主要功能包括:GIS地圖顯示,當(dāng)前時刻實時預(yù)測結(jié)果顯示,出行時刻預(yù)測結(jié)果顯示,歷史行程時間查詢顯示,預(yù)測參數(shù)對比結(jié)果顯示。交通參數(shù)單步預(yù)測子系統(tǒng)的主要功能包括:交通參數(shù)單步預(yù)測和預(yù)測參數(shù)聚類。交通參數(shù)多步預(yù)測子系統(tǒng)的主要功能是:歷史數(shù)據(jù)選擇和交通參數(shù)多步預(yù)測。
數(shù)據(jù)處理流程
交通預(yù)測算法的輸入數(shù)據(jù)流可以分成三條通道,用圖3表示。
圖3 數(shù)據(jù)處理流程圖
交通預(yù)測展示子系統(tǒng)描述
交通預(yù)測展示子系統(tǒng)主要是將預(yù)測結(jié)果信息通過一定的形式展示給用戶,同時響應(yīng)用戶的指令。主要包括實時預(yù)測結(jié)果顯示模塊;出行時刻預(yù)測結(jié)果顯示模塊;歷史行程時間查詢模塊;預(yù)測參數(shù)對比結(jié)果顯示模塊;地圖顯示模塊(GIS-T)。
預(yù)測子系統(tǒng)的模塊組成如圖4:
圖4 展示子系統(tǒng)圖
其中:
●實時預(yù)測結(jié)果顯示模塊:該模塊主要根據(jù)交通參數(shù)單步預(yù)測和多步預(yù)測的數(shù)據(jù),利用相關(guān)模型實時計算出所選路徑的行程時間預(yù)測結(jié)果,并通過歷史統(tǒng)計信息,計算出該預(yù)測結(jié)果的可信度,最后將這些信息展示給用戶。
●出行時刻預(yù)測結(jié)果顯示模塊:該模塊利用交通參數(shù)單步預(yù)測和多步預(yù)測的數(shù)據(jù),將未來30分鐘內(nèi)任意路徑的預(yù)測行程時間值顯示給用戶,同時給出該值的可信度。
●歷史行程時間查詢模塊:該模塊將數(shù)據(jù)庫中的歷史交通參數(shù)真值進(jìn)行統(tǒng)計,將任意路徑的歷史統(tǒng)計行程時間值顯示給用戶。
●預(yù)測參數(shù)對比結(jié)果顯示模塊:該模塊將歷史交通參數(shù)真值與預(yù)測結(jié)果值進(jìn)行對比,并將對比結(jié)果以曲線的形式展示給用戶。
●地圖顯示模塊(GIS-T):該模塊主要與實時預(yù)測結(jié)果顯示模塊一起工作,該模塊在地圖上顯示預(yù)測結(jié)果所對應(yīng)的路徑。
交通參數(shù)多步預(yù)測子系統(tǒng)
交通參數(shù)單步預(yù)測子系統(tǒng)提供未來30分鐘內(nèi)的交通狀態(tài)預(yù)測參數(shù),為交通預(yù)測展示子系統(tǒng)提供數(shù)據(jù)支持。主要包括歷史數(shù)據(jù)選擇模塊和交通參數(shù)多步預(yù)測模塊。
模塊組成如下圖5所示:
圖5 多步預(yù)測子系統(tǒng)圖
表1 數(shù)據(jù)字典
其中:
●歷史數(shù)據(jù)選擇模塊:選擇歷史交通參數(shù)真值,以達(dá)到加快搜索速度的目的。
●交通參數(shù)多步預(yù)測模塊:該模塊從歷史數(shù)據(jù)選擇模塊中獲得歷史交通參數(shù)真值數(shù)據(jù),同時從數(shù)據(jù)庫中讀取交通參數(shù)單步預(yù)測子系統(tǒng)生成的預(yù)測中間參數(shù),然后利用非線性回歸等模型計算出交通參數(shù)多步預(yù)測結(jié)果,最后將結(jié)果存入數(shù)據(jù)庫。
●功能描述:利用實時的單步預(yù)測中間參數(shù)數(shù)據(jù)和歷史案例庫中的發(fā)布段歷史3分鐘粒度行程車速、斷面流量數(shù)據(jù)以及歷史單步預(yù)測數(shù)據(jù)生成多步預(yù)測結(jié)果數(shù)據(jù)。
數(shù)據(jù)庫設(shè)計
●數(shù)據(jù)庫
本系統(tǒng)的數(shù)據(jù)庫采用關(guān)系型數(shù)據(jù)庫,其中主要存儲的數(shù)據(jù)如表1所示。
圖6 實體關(guān)系圖
●邏輯結(jié)構(gòu)設(shè)計
數(shù)據(jù)庫的實體關(guān)系圖如圖6所示:
●數(shù)據(jù)字典
歷史案例庫中共有17張表,其中靜態(tài)配置信息表有2張,動態(tài)信息表13張,中間存儲表有2張。
●物理結(jié)構(gòu)設(shè)計
對數(shù)據(jù)庫服務(wù)器的計算能力、存儲能力、容錯能力、通信能力和穩(wěn)定性均有較高的要求。建議數(shù)據(jù)庫服務(wù)器采用CPU主頻>=3.0GHz,內(nèi)存>=4GB,硬盤>=500GB。采用關(guān)系數(shù)據(jù)庫ORACLE9i/10g作為數(shù)據(jù)庫管理系統(tǒng)。
●動態(tài)數(shù)據(jù)存儲設(shè)計
系統(tǒng)中有幾類數(shù)據(jù)是不斷增長的動態(tài)數(shù)據(jù):一類是各發(fā)布段交通參數(shù)信息(行程時間、流量等),一類是交通參數(shù)預(yù)測結(jié)果數(shù)據(jù)。
根據(jù)現(xiàn)有南北高架數(shù)據(jù)統(tǒng)計得出各發(fā)布段交通參數(shù)信息624M/三個月,交通參數(shù)預(yù)測結(jié)果數(shù)據(jù)為47M/2天。則整個快速路路網(wǎng)(南北高架,延安高架,內(nèi)環(huán)高架,中環(huán)高架,逸仙高架)數(shù)據(jù)增量計算結(jié)果如表4-2。
表2 動態(tài)數(shù)據(jù)占用空間表(本表數(shù)據(jù)采自上海市道路采集發(fā)布系統(tǒng))
對于測試環(huán)境,500G的硬盤已經(jīng)能滿足一年的數(shù)據(jù)存儲需求。當(dāng)系統(tǒng)長期運行時,應(yīng)考慮增加備份的介質(zhì),宜在半年左右進(jìn)行一次全部備份,每周進(jìn)行增量備份。
●靜態(tài)數(shù)據(jù)存儲設(shè)計
系統(tǒng)的靜態(tài)數(shù)據(jù)主要是線路和路網(wǎng)的靜態(tài)信息,所占用的空間大致如下表3所示:
表3 靜態(tài)數(shù)據(jù)占用空間表(本表數(shù)據(jù)采自上海市道路采集發(fā)布系統(tǒng))
與動態(tài)增量數(shù)據(jù)相比,靜態(tài)數(shù)據(jù)所占的空間非常少。
核心技術(shù)模塊實現(xiàn)軟件
該系統(tǒng)簡單精干,相互邏輯清晰,下面列出八個模塊的部分核心軟件,軟件開發(fā)時充分考慮了健壯性及平臺無關(guān)性。同時在保證系統(tǒng)效率的前提下,將整體軟件模塊化,分部并行計算,提高了系統(tǒng)的整體效率并降低了軟件開發(fā)及維護(hù)的難度。
原始數(shù)據(jù)修補(bǔ)模塊主要對采集到的實時交通數(shù)據(jù)進(jìn)行可用分析及修補(bǔ),交通狀態(tài)自動判別模塊實現(xiàn)GPS浮動車虛擬小車算法的狀態(tài)實時判別,交通事故自動檢測模塊實現(xiàn)了交通事故的雙截面檢測算法及基于決策樹模型的偶發(fā)性擁堵預(yù)測的實現(xiàn)。原始數(shù)據(jù)處理模塊實現(xiàn)了數(shù)據(jù)從外部采集誘導(dǎo)發(fā)布系統(tǒng)中的采集和存儲到數(shù)據(jù)庫的功能,交通參數(shù)單步預(yù)測模塊實現(xiàn)了優(yōu)化后的卡爾曼濾波算法。預(yù)測參數(shù)聚類模塊實現(xiàn)了基于歷史庫的數(shù)據(jù)挖掘與算法模型。交通參數(shù)多步預(yù)測模塊結(jié)合前面交通參數(shù)單步預(yù)測模塊和預(yù)測參數(shù)聚類模塊的輸出實現(xiàn)了常發(fā)性擁擠的預(yù)測。
1.原始數(shù)據(jù)修補(bǔ)模塊
本模塊主要對采集到的實時交通數(shù)據(jù)進(jìn)行可用分析及修補(bǔ)。
2.交通狀態(tài)自動判別模塊
此模塊實現(xiàn)了GPS虛擬浮動車核心算法。
3.交通事故自動檢測模塊
交通事故自動檢測模塊實現(xiàn)了交通事故的雙截面檢測算法及基于決策樹模型的偶發(fā)性擁堵預(yù)測的實現(xiàn)。代碼采用了決策樹C5.0算法。通過分析和訓(xùn)練海量的歷史數(shù)據(jù),生成交通事故決策樹對象,并入庫,當(dāng)有新的交通事故發(fā)生時,先提取該事件的特征參數(shù),然后基于這些特征參數(shù)在決策樹中進(jìn)行搜索,最終得出交通事故的檢測結(jié)果。
4.原始數(shù)據(jù)處理模塊
原始數(shù)據(jù)處理模塊實現(xiàn)了數(shù)據(jù)從外部采集誘導(dǎo)發(fā)布系統(tǒng)中的采集和存儲到數(shù)據(jù)庫的功能。
5.交通參數(shù)單步預(yù)測模塊
本模塊實現(xiàn)了優(yōu)化后的卡爾曼濾波算法模型。
6.預(yù)測參數(shù)聚類模塊
本模塊實現(xiàn)了根據(jù)歷史庫數(shù)據(jù)的特征中聚類模型。代碼為k-means聚類方法核心算法部分代碼。
7.交通參數(shù)多步預(yù)測模塊
本模塊結(jié)合前面交通參數(shù)單步預(yù)測模塊和預(yù)測參數(shù)聚類模塊的輸出實現(xiàn)了常發(fā)性擁擠的預(yù)測。
8.交通預(yù)測展示模塊
本模塊實現(xiàn)了預(yù)測系統(tǒng)的交互界面。
城市道路交通狀態(tài)預(yù)測系統(tǒng)軟件以上海城市城市道路為數(shù)據(jù)輸入對象。創(chuàng)新性的結(jié)合目前主流的GIS地理信息系統(tǒng)的運用,使應(yīng)用和操作界面更直觀,信息量更大,操作更便捷。完成后的系統(tǒng)主要實現(xiàn)了兩大功能:路徑行程時間預(yù)測結(jié)果查詢和交通參數(shù)預(yù)測結(jié)果對比功能。
系統(tǒng)功能設(shè)計
路徑行程時間預(yù)測結(jié)果查詢功能包括:
1.行程時間實時查詢
行程時間實時查詢功能主要實現(xiàn)以當(dāng)前時刻開始對城市道路上任意可達(dá)路徑的行程時間進(jìn)行實時估計。
2.出行時刻查詢
查詢半小時后的道路狀況,提前預(yù)判除了提供信息因此還具備了誘導(dǎo)分流的客觀作用。
3.歷史行程時間查詢
查詢當(dāng)前時刻歷史上同一時期的交通數(shù)據(jù),起到參考判斷的作用。
4.交通參數(shù)預(yù)測結(jié)果對比
作為宏觀決策和判斷的輔助手段,可以提供任意時間不同參數(shù)要求下的預(yù)測結(jié)果對比,以作為分析和誘導(dǎo)的參考。
系統(tǒng)功能實現(xiàn)
如下圖7所示,應(yīng)用系統(tǒng)算法已經(jīng)表述,這里僅簡單介紹查詢及展示的系統(tǒng)界面。
圖7 使用界面展示圖(本圖由上海市道路交通預(yù)測系統(tǒng)中導(dǎo)出)
圍繞城市道路交通狀態(tài)預(yù)測技術(shù)的應(yīng)用:建立交通狀態(tài)預(yù)測系統(tǒng)。導(dǎo)入的數(shù)據(jù)源為上海市道路數(shù)據(jù),系統(tǒng)軟件共由八個部分組成,能夠進(jìn)行系統(tǒng)覆蓋路段范圍內(nèi)的路徑行程時間預(yù)測并進(jìn)行結(jié)果查詢和交通參數(shù)預(yù)測的展示的功能。為及時把握道路交通狀態(tài)的發(fā)展態(tài)勢和服務(wù)于社會公眾出行提供了重要的應(yīng)用支持,促進(jìn)了交通狀態(tài)信息服務(wù)由傳統(tǒng)的“被動式”實時信息的發(fā)布向“主動式”智能預(yù)測的新方向發(fā)展。
作者單位:上海市政工程設(shè)計研究總院(集團(tuán))有限公司