張紅斌,李 軍,金福才
(1. 北京經(jīng)緯信息技術(shù)有限公司,北京 100081;2. 中國國家鐵路集團(tuán)有限公司 調(diào)度指揮中心,北京 100844;3. 中國鐵道科學(xué)研究院集團(tuán)有限公司 電子計算技術(shù)研究所,北京 100081)
提高日班計劃編制質(zhì)量,是充分利用運(yùn)輸能力,提升運(yùn)輸組織效率,保障高質(zhì)量完成運(yùn)輸任務(wù)的重要手段,而準(zhǔn)確的車流預(yù)測是編制高質(zhì)量日班計劃的前提條件。
關(guān)于車流徑路的研究主要考慮路網(wǎng)運(yùn)輸方案[1]、空車調(diào)整方案[2]等,在推算車流徑路時主要使用最短路徑、次短路徑或K 條最短路徑計算方法。目前,鐵路運(yùn)輸徑路計算機(jī)處理系統(tǒng)是鐵路部門一個重要的車流徑路推算工具,為鐵路運(yùn)輸計劃管理、車流組織、運(yùn)費(fèi)計算以及收入清算提供支持[3-5]。在實(shí)際運(yùn)輸生產(chǎn)過程中,由于受到施工、通過能力、機(jī)車(車務(wù)組)分配、自然災(zāi)害、事故等多種因素的影響,經(jīng)常會發(fā)生車流迂回運(yùn)輸[6]。在選擇車流迂回徑路時,需要考慮多種因素:迂回徑路的通過能力、迂回徑路的長度、迂回徑路上的牽引方式[7]等。若依據(jù)實(shí)際運(yùn)輸需求、路網(wǎng)能力制約以及迂回運(yùn)輸選擇條件等因素,對全路網(wǎng)貨運(yùn)車流徑路建模和預(yù)測,無疑是一項十分復(fù)雜的任務(wù)。為此,考慮利用運(yùn)輸信息集成平臺提供的貨運(yùn)車流海量歷史軌跡和實(shí)時位置追蹤數(shù)據(jù),提出一種基于車流徑路選擇偏好的鐵路車流運(yùn)行徑路動態(tài)預(yù)測方法。
中國國家鐵路集團(tuán)有限公司(簡稱:國鐵集團(tuán))于2013 年建成運(yùn)輸信息集成平臺,實(shí)現(xiàn)對列車、車輛、貨物、機(jī)車、機(jī)車乘務(wù)員位置與狀態(tài)的實(shí)時掌握與動態(tài)追蹤[8];貨運(yùn)列車在裝、卸、技術(shù)作業(yè)等關(guān)鍵環(huán)節(jié)均會產(chǎn)生報告信息,可以較為準(zhǔn)確地掌握貨運(yùn)列車動態(tài)信息,結(jié)合列車編組信息,以車號、起訖點(diǎn)、途徑站為線索,進(jìn)而可獲得貨運(yùn)車輛的動態(tài)運(yùn)行軌跡。
針對車流運(yùn)行徑路歷史數(shù)據(jù)的統(tǒng)計,提出長期和近短期車流徑路選擇偏好的概念;其中,長期車流徑路選擇偏好是過去較長時間內(nèi)貨運(yùn)車流運(yùn)行徑路的大概率選擇,反映長期貨物運(yùn)輸運(yùn)輸組織策略影響下,對貨運(yùn)車流不同運(yùn)行徑路的優(yōu)先選擇;近短期車流徑路選擇偏好則是近短期內(nèi)貨運(yùn)車流運(yùn)行徑路的大概率選擇,可反映車流受到現(xiàn)階段施工、線路運(yùn)輸能力等因素影響,對貨運(yùn)車流不同運(yùn)行徑路的優(yōu)先選擇,對于預(yù)測當(dāng)前車流運(yùn)行徑路具有較好的參考價值。在預(yù)測車流運(yùn)行徑路時,優(yōu)先使用近短期車流徑路選擇偏好,只有在近短期車流徑路選擇偏好數(shù)據(jù)缺失的情況下,才考慮采用長期車流徑路選擇偏好。
列車動態(tài)位置信息主要包括列車到達(dá)與出發(fā)報告,是由列車運(yùn)輸途中重要節(jié)點(diǎn)站上報的列車到發(fā)信息。如圖1 所示,列車在始發(fā)站A、技術(shù)站B、C和終到站D,都會上報列車到發(fā)信息。結(jié)合列車編組信息,可以得到車輛運(yùn)行動態(tài)信息,包含車號、始發(fā)站、當(dāng)前站、終到站、貨物品類等信息項;匯總某個車輛的到發(fā)信息,以車號、起訖點(diǎn)、貨物品類為索引,即可以獲得該車輛的完整運(yùn)行軌跡。
圖1 運(yùn)輸信息集成平臺中車輛運(yùn)行徑路構(gòu)成示意
假設(shè)車流從始發(fā)站A 運(yùn)行到終點(diǎn)站D,可有2條運(yùn)行徑路:A—B—C—D 和A—B—E—D;利用車流長期歷史數(shù)據(jù),對10 000 輛車輛運(yùn)行徑路進(jìn)行統(tǒng)計,發(fā)現(xiàn)其中80%車輛的走行徑路為A—B—C—D,20%車輛的走行徑路為A—B—E—D;利用車流近短期歷史數(shù)據(jù),對100 輛車輛的走行徑路進(jìn)行統(tǒng)計,發(fā)現(xiàn)其中60%車輛走行徑路為A—B—C—D,40%車輛走行徑路為A—B—E—D,可得到如表1 所示的車流徑路選擇偏好參數(shù)表。
表1 車流徑路選擇偏好參數(shù)表
通過實(shí)時獲取運(yùn)輸信息集成平臺提供列車到發(fā)報告信息,將其轉(zhuǎn)換成車輛運(yùn)行動態(tài)信息,結(jié)合基于車流歷史數(shù)據(jù)生成的車流徑路選擇偏好參數(shù)表,設(shè)計貨運(yùn)車流運(yùn)行徑路動態(tài)預(yù)測方法,具體算法步驟如下:
(1)根據(jù)車輛的始發(fā)站、當(dāng)前站、終到站和貨物品類信息,在車流徑路選擇偏好參數(shù)表中查找對應(yīng)的車流徑路記錄;若查找不到對應(yīng)的車流徑路記錄,則結(jié)束查找,使用默認(rèn)的車流徑路計算方法確定車輛運(yùn)行徑路;若找到,則轉(zhuǎn)到步驟(2);
(2)檢查所有查找到的車流徑路記錄中的近短期車流量數(shù)據(jù)項是否為空;若不為空,選擇近短期偏好概率最大的車流徑路記錄;若為空,則選擇長期偏好概率最大的車流徑路記錄;將所選擇車流徑路記錄中的下一站設(shè)置為預(yù)測站;
(3)判斷預(yù)測站是否為終到站,若是,則結(jié)束搜索;否則轉(zhuǎn)到步驟(4);
(4)將預(yù)測站設(shè)置為當(dāng)前站,轉(zhuǎn)到步驟(1)。
全路現(xiàn)有貨運(yùn)車輛80 多萬輛,每日有50 多萬輛貨車的動態(tài)信息上報,日均上報數(shù)據(jù)量約為300 萬條,車輛歷史軌跡數(shù)據(jù)累計約為20 億條。為便于分析海量的車輛歷史軌跡信息,提高車流徑路預(yù)測應(yīng)用的數(shù)據(jù)處理性能,搭建車流徑路預(yù)測大數(shù)據(jù)應(yīng)用環(huán)境,其架構(gòu)如圖2 所示。
圖2 車流徑路預(yù)測大數(shù)據(jù)應(yīng)用環(huán)境架構(gòu)示意
數(shù)據(jù)采集層通過MQ 消息接收與數(shù)據(jù)庫同步2種方式獲取車輛最新動態(tài)信息,解析后寫入Kafka 消息隊列;數(shù)據(jù)處理層使用Flink 組件調(diào)用預(yù)測程序,動態(tài)預(yù)測車流徑路;數(shù)據(jù)存儲層使用Redis 數(shù)據(jù)庫存儲車流徑路選擇偏好參數(shù)表,Citus 數(shù)據(jù)庫存儲動態(tài)預(yù)測的車流徑路與近期車流軌跡歷史數(shù)據(jù),Click-House 數(shù)據(jù)倉庫存儲較長時間之前的海量車流軌跡歷史數(shù)據(jù);數(shù)據(jù)服務(wù)層基于WebServices/Http 等協(xié)議提供數(shù)據(jù)查詢和計算服務(wù),使用SpringBoot 微服務(wù)架構(gòu)實(shí)現(xiàn)數(shù)據(jù)可視化展示。
車流運(yùn)行徑路預(yù)測的數(shù)據(jù)處理流程如圖3 所示,其中,黃色部分為車流徑路選擇偏好參數(shù)更新流程,其余部分為車流運(yùn)行徑路動態(tài)預(yù)測流程。
對車流徑路選擇偏好參數(shù)的動態(tài)更新,是通過將存儲在運(yùn)輸信息集成平臺Oracle 數(shù)據(jù)庫中的車流歷史數(shù)據(jù)定期同步到分布式實(shí)時分析數(shù)據(jù)庫Citus,再調(diào)用車流徑路選擇偏好參數(shù)計算程序定期更新該參數(shù)表;該參數(shù)表保存在內(nèi)存數(shù)據(jù)庫集群Redis 中,便于車流運(yùn)行徑路動態(tài)預(yù)測程序快速讀取表中的參數(shù)。
在車流運(yùn)行徑路動態(tài)預(yù)測流程中,從運(yùn)輸集成平臺的MQ 隊列中實(shí)時讀取最新的車流裝、卸和到發(fā)信息,轉(zhuǎn)存到Kafka 消息隊列集群中;使用Flink流式處理技術(shù),解析Kafka 隊列中的最新車流信息,通過Nginx 負(fù)載均衡(目的是為了防止并發(fā)調(diào)用Redis 時造成阻塞),讀取存儲在Redis 中的車流徑路選擇偏好參數(shù)表,生成預(yù)測的貨車運(yùn)行徑路;最后,將預(yù)測結(jié)果存儲到數(shù)據(jù)倉庫ClickHouse 中,以供應(yīng)用查詢。
圖3 車流運(yùn)行徑路預(yù)測數(shù)據(jù)處理流程
2.2.1 車流徑路選擇偏好參數(shù)更新流程
(1)車流歷史數(shù)據(jù)存儲在關(guān)系型數(shù)據(jù)庫Oracle 中,每天定時將前一天的數(shù)據(jù)同步到分布式實(shí)時分析數(shù)據(jù)庫Citus 中。
(2)利用自定義聚合函數(shù)(UDAF,User-Defined Aggregation Funcation),對同步過來的新增歷史數(shù)據(jù)進(jìn)行整合處理,包括車流運(yùn)行徑路合并、到發(fā)報告合并等。
(3)運(yùn)行車流徑路選擇偏好參數(shù)計算程序,完成車流徑路選擇偏好參數(shù)的更新計算,并用重新計算的參數(shù)更新Redis 集群中存儲的車流徑路選擇偏好參數(shù)表,更新頻次為每天1 次。
2.2.2 車流運(yùn)行徑路動態(tài)預(yù)測算法流程
(1)實(shí)時獲取車流動態(tài)信息,包括列車出發(fā)報告、列車到達(dá)報告、裝車報告、卸車報告、車號識別等(通過MQ 以XML 格式接入到車流運(yùn)行徑路實(shí)時預(yù)測系統(tǒng)的Kafka 消息隊列中)。
(2)實(shí)時計算Flink 程序通過解析Kafka 中的XML 數(shù)據(jù)獲取獲取車輛的始發(fā)站、當(dāng)前站、終到站和貨物品類等關(guān)鍵信息,調(diào)用車流運(yùn)行徑路動態(tài)預(yù)測程序,具體的算法流程參見圖4,通過Nginx 負(fù)載均衡,調(diào)用Redis 模型接口,返回貨車運(yùn)行徑路的預(yù)測結(jié)果。
圖4 車流運(yùn)行徑路動態(tài)預(yù)測算法流程
(3)將預(yù)測結(jié)果數(shù)據(jù)和報文數(shù)據(jù)質(zhì)量校驗(yàn)數(shù)據(jù)存儲在數(shù)據(jù)倉庫ClickHouse 中,以服務(wù)形式提供數(shù)據(jù)訪問及數(shù)據(jù)可視化展示。
該預(yù)測方法已在武清數(shù)據(jù)中心應(yīng)用,迄今為止車流徑路選擇偏好參數(shù)表已累計生成1500 萬條記錄,每日增量約為2 萬條,可以覆蓋全路大多數(shù)車流運(yùn)行徑路。為了評價本文提出鐵路車流運(yùn)行徑路動態(tài)預(yù)測方法的效果,定義預(yù)測命中率和準(zhǔn)確率2 個統(tǒng)計指標(biāo)。
預(yù)測命中是指可根據(jù)車輛當(dāng)前位置準(zhǔn)確預(yù)測車輛即將到達(dá)的下一個車站,命中率H用于衡量單次徑路預(yù)測的結(jié)果準(zhǔn)確性,其計算公式為:
式中,T表示統(tǒng)計時間范圍,Pt表示某預(yù)測時段t內(nèi)完成車輛下一站預(yù)測的頻次,Rt表示此預(yù)測時段t內(nèi)準(zhǔn)確地完成下一站預(yù)測的頻次。
預(yù)測準(zhǔn)確性是指車輛從始發(fā)站到終到站的運(yùn)行徑路上的所有車站都能被準(zhǔn)確地預(yù)測,準(zhǔn)確率K用于衡量車輛全程徑路預(yù)測的準(zhǔn)確性,其計算公式為:
式中,T表示統(tǒng)計時間范圍,Dt表示某預(yù)測時段t內(nèi)所有終到車輛的輛數(shù),Ωt表示這些終到車輛中全程運(yùn)行徑路預(yù)測均正確的輛數(shù)。
在目前的實(shí)際應(yīng)用中,全路每天大約有16 萬輛車到達(dá)終到站,發(fā)生約300 萬次車輛運(yùn)行徑路更新。根據(jù)2020 年11 月的數(shù)據(jù)統(tǒng)計,預(yù)測命中率為83%,準(zhǔn)確率為72%,基本達(dá)到實(shí)用水平。
圖5 展示了新豐鎮(zhèn)—城廂某品類車流的長期徑路選擇偏好,可以看出:從新豐鎮(zhèn)出發(fā),車流以92%概率直接運(yùn)行到安康東;車流在安康東會以59%較大概率一站運(yùn)行至廣元西。在車流運(yùn)行過程中,如果系統(tǒng)動態(tài)檢測到某車輛運(yùn)行至達(dá)州,那么該車輛的后續(xù)運(yùn)行徑路就會根據(jù)預(yù)測結(jié)果,動態(tài)修正為“達(dá)州—廣安—內(nèi)江”方向。
利用運(yùn)輸信息集成平臺提供的海量車流運(yùn)行軌跡歷史數(shù)據(jù),提出一種簡單易行的鐵路車流運(yùn)行徑路動態(tài)預(yù)測方法;通過對長期和近短期車流運(yùn)行軌跡歷史數(shù)據(jù)的統(tǒng)計,生成車流徑路選擇偏好參數(shù),可等效反映路網(wǎng)中多種復(fù)雜因素對于車流徑路的影響;基于車流徑路選擇偏好參數(shù),結(jié)合貨運(yùn)車輛實(shí)時位置跟蹤信息,動態(tài)預(yù)測貨運(yùn)車輛運(yùn)行徑路;搭建大數(shù)據(jù)應(yīng)用環(huán)境,完成預(yù)測程序的開發(fā)與部署,采用命中率和準(zhǔn)確率2 項指標(biāo),對該方法的準(zhǔn)確性和實(shí)用性進(jìn)行評價,結(jié)果表明:預(yù)測結(jié)果準(zhǔn)確性較高,具有較為滿意的實(shí)用價值。
目前,車流徑路選擇偏好參數(shù)表可以覆蓋全路92%車流運(yùn)行徑路,但存在部分徑路找不到終到站或者出現(xiàn)回路,從而導(dǎo)致車流徑路搜索失敗,這類錯誤與運(yùn)輸信息集成平臺的數(shù)據(jù)質(zhì)量有關(guān)。后續(xù)需要進(jìn)一步研究如何對參數(shù)表數(shù)據(jù)進(jìn)行修正,如將終到站數(shù)據(jù)缺失的記錄用臨近站近似替換填充,對出現(xiàn)回路的徑路進(jìn)行甄別并剔除折返通路,提高車流徑路選擇偏好參數(shù)表的覆蓋范圍和準(zhǔn)確性,進(jìn)而提高車流運(yùn)行徑路動態(tài)預(yù)測的準(zhǔn)確性和效率。