游 政,趙全賞,姚大鵬,費振豪
調度命令作為列車行車指揮的重要指令,對保障鐵路運輸安全具有重要意義。調度命令具有嚴肅性、規范性、單一性、即時性等特點,行車人員必須嚴格執行列車調度員的命令、指示,故對調度命令文本內容準確性的要求極為嚴格[1]。CTC/TDCS系統通過調度命令軟件終端實現調度命令的擬寫、編輯、下達、接收等功能,將命令復誦核對及主任審核等流程固化入軟件中實現安全卡控,但該方式依然需要人工識別調度命令的準確性,易導致錯發、漏發等問題[2]。
目前,通過智能算法識別調度命令,實現列車調度指揮數據的綜合應用和分析,成為智能調度集中系統的重要補充[3-4]。彭其淵等[5]基于長短時記憶(LSTM)網絡構建的序列-序列(seq2seq)模型算法可識別車站信息;袁楓等[6]基于生成式摘要模型和知識蒸餾算法,研究了符合鐵路專業場景調度命令的解析方法;陳嘯等[7]基于知識圖譜識別CTC 系統故障日志文本,實現系統故障診斷和分析;李新琴等[8]基于多維字符特征表示方法以及Transformer 網絡,實現了鐵路設備故障文本對象識別提取。但上述模型、算法與既有系統融合存在識別響應延時,在當前CTC/TDCS 系統架構與業務要求范疇內,無法完全滿足實際應用需求。
為提高調度命令文本的準確性,基于調度命令信息的校核規則,研究能夠準確識別調度命令關鍵信息和檢驗反饋錯誤原因的策略,并應用于調度命令程序,以期進一步降低調度員的工作強度,提升鐵路運輸組織效率。
綜合考慮系統功能性、可靠性、兼容性、可維護性等要求[9],提出調度命令業務類型識別、文本識別、業務邏輯檢查3 方面的技術策略,并通過實例數據進行驗證。調度命令內容卡控策略架構見圖1。

圖1 調度命令內容卡控策略架構
1)調度命令業務類型識別。由于調度命令種類繁多,其文本內容正確性的判斷方法也隨著業務類型不同而變化,因此需結合檢查需求進行針對性分析。
2)調度命令文本識別。在明確調度命令業務類型后,結合CTC/TDCS 系統特點和調度命令性質,基于正則表達式、基礎數據匹配、關鍵詞輔助定位等算法,實現調度命令文本信息識別,針對性地提取各類命令信息。
3)調度命令業務邏輯檢查。結合靜態線路里程基礎數據配置、實時運行圖數據以及調度命令程序的實際操作狀態,完成調度命令內容校核與卡控。若調度命令內容有誤,用戶界面(UI)應彈窗警告提示,且不允許調度員直接下發調度命令,實現調度命令下發的事前安全保障。
調度員主要通過2 種方式編輯調度命令:①根據預制命令模板填充命令內容;②根據既有命令修改。第一種方式使用命令模板進行業務類型關聯最為準確;第二種方式無法通過命令模板識別業務類型,可通過設置一個或一組特殊業務關鍵詞進行命令類型識別。
分別設計模板編號與業務類型代號、業務關鍵詞與業務類型代號之間的映射關系。如圖2 所示,模板1~模板n組成調度命令模板庫,關鍵詞庫則由單個詞語和關鍵詞組(如“封鎖…救援”)組成。識別調度命令業務類型時,優先將當前調度命令所使用的模板文本與模板庫文本進行匹配,若匹配成功,則可直接通過模板庫中的編號映射業務類型;若未匹配成功,再通過業務關鍵詞獲取指定的業務類型代號。

圖2 調度命令業務類型識別策略
調度命令信息主要包括車次號、限速值、公里標值、行別方向、時間等5 種類型,這些數據均有固定的表述組合。由于正則表達式可以相對快速地獲取固定格式的文本信息,因此本文使用正則表達式進行信息提取[10]。
1)車次號。調度命令文本中的車次號通常僅由字母和數字組成(如“0G123 次列車”),因此可通過正則表達式“ [0-9]{0,2}[a-zA-Z]{0,2}[0-9]*次”提取車次號信息。
2)限速值。調度命令中的限速值通常有具體范圍要求,普速與高鐵依據的限速值范圍也不相同,而且限速值通常以5 km/h遞增或遞減;限速命令中的限速信息均需嚴格按照要求填寫,以“km/h”為單位,因此可以通過正則表達式“d+km/h”提取限速值,且限速值需為5 的整數倍,并在指定的范圍內,否則報警提示調度員進行校核。
3)公里標值。公里標通常為“12 km 3 m”或者“k12+3”格式的標準表述,公里標值則為數字類型,可以使用正則表達式“[0-9]{1,10}km[0-9]{1,10}m|k[0-9]{1,10}+[0-9]{1,10}”提取,并根據文本中公里標出現的先后順序,依次判定為開始公里標值或結束公里標值。
4)行別方向。行別方向是純中文的固定表述,因此可通過正則表達式“上行|下行|上、下行|上下行”提取,表達式中覆蓋所有行別方向,確保提取準確結果。
5)時間。調度命令中的時間主要有2 種表述形式,“5 日10 時10 分”或者“10 時10 分”,后一種表述是前一種表述的真子集,對于此類型數據,通過正則表達式提取日期信息時將獲得重復數據,因此需先以“[0-9]{0,2}日[0-9]{0,2}時[0-9]{0,2}分”提取含日期的時間,然后剔除已識別的時間信息,再以“ [0-9]{0,2} 時[0-9]{0,2}分”提取不含日期的時間[11]。由于不含日期的時間并不是精確的時間表達,因此程序計算時自動將該結果認定為當天日期的時間。
調度命令中也包含了大量的基礎要素信息,主要有線路名稱、車站名稱、調度臺名稱。這些行車指揮要素指定了具體的作業范圍、作業負責單位等信息,且以變量的形式存在于不同的調度命令中。對于這類非確定值的業務數據,可通過設計各類基礎數據詞典的配置信息,將詞典中的固定名稱依次與文本內容進行字符串匹配,從而實現以確定值查找非確定值的策略。如圖3所示,依次將配置的線路名詞典、車站名詞典、調度臺名詞典與文本內容進行比對識別,并最終提取出線路名“甲”、車站名“A”和“B”、調度臺名“a”。

圖3 基礎數據詞典的文本匹配
由于調度命令由人工靈活擬定,而非格式化輸入,通常涵蓋若干組有效業務信息,因此調度命令內容卡控技術需根據業務信息,針對性地進行邏輯校核計算,識別各組業務信息之間的關聯性,以正確理解調度命令語義。
調度命令文本通常以標準的行為動詞或連接詞來指揮現場施工或者運輸組織,因此可基于文本中各類指揮業務關鍵詞的位置進行輔助定位,分別發掘前方或者后方的文本業務數據對象,形成一組有效關聯的業務信息,為后續調度命令卡控校核提供可靠輸入。常見的調度命令指揮行為關鍵詞見表1。

表1 常見的調度命令指揮行為關鍵詞
在識別調度命令業務類型并提取車次號、限速值等業務數據后,即可對調度命令的文本內容進行業務邏輯校核計算。調度命令正確性主要包含所表述業務信息的準確性、有效性及所涉及的業務傳達操作的規范性。
首先需設定標準數據作為業務信息準確性評價的參照依據,然后再設計相關業務邏輯校核算法。本文以調度命令中最復雜、最常見的線路里程信息為例來闡述校核算法的設計。
4.1.1 標準數據配置
線路里程信息準確性的參照依據是標準工程的線路里程基礎數據,這些數據目前以零散的靜態配置數據格式存儲在CTC 系統中。為實現調度命令軟件系統的邏輯運算,設計了以車站為節點的線路里程基礎數據拓撲結構,見圖4。基于該拓撲結構,建立靜態配置數據文件用于程序讀取與計算,配置規則如下。

圖4 線路里程基礎數據拓撲結構
1)以車站為節點,每個車站節點用站號表示,一個車站包含若干個出入口,每個出入口對應一個向外連接的車站站號及該連接車站的出入口號。
2)鐵路線路將各個站號連接,在出入口數據中體現連接關系,每條出入口數據包含中心公里標與出入口公里標的數值、線路名稱、公里標系、行別號。
3)以車站各出入口為紐帶連接各個車站節點數據,從而組成整體鐵路線路網絡,最終以拓撲結構數據建立完整的里程信息配置規則,準確描述線路區間范圍的精準位置。
4.1.2 數據校核算法設計
基于線路里程基礎數據拓撲結構,將調度命令文本中提取的基礎業務數據組與線路配置數據依次進行邏輯比較運算,逐步校核各業務數據并通過調度命令程序彈窗警告提示調度員,校核流程見圖5。

圖5 線路里程信息校核流程
Step 1檢查公里標值的升降順序是否與調度命令文本中開始、終止公里標值的升降順序一致,如不一致則退出檢查,提示“請核對行別方向”。
Step 2檢查文本中開始公里標與結束公里標的升降順序是否與起、止車站節點在線路數據中出現的順序一致,如不一致則退出檢查,提示“請核對車站區間方向”。
Step 3檢查起、止公里標與起、止車站描述范圍是否一致,若完全沒有交集,則退出檢查,提示“公里標與區間范圍完全不一致”。
Step 4將起始公里標與起始車站所對應的車站范圍進行數值校核,如不一致則退出檢查,提示“請核對開始公里標”。
Step 5將終止公里標與終止車站所對應的車站范圍進行數值校核,若一致則此調度命令中線路里程信息準確無誤,若不一致則不進行其他檢查并提示“請核對終止公里標”。
CTC/TDCS 各子系統不斷地產生和更新運輸調度數據,且各種數據之間存在著緊密的業務關聯,可通過增設共享數據服務器來訪問各子系統的實時運輸調度數據,并對外提供數據查詢服務,調度命令程序子系統僅需向后臺數據服務器發起請求,即可獲取各類實時公共業務數據。
調度命令中的車次信息是重要的行車指揮對象,在實際作業過程中,通常應先在實時運行圖中繪制列車運行線,再擬制包含列車車次的調度命令文本,因此依據實時運行圖,即可實現調度命令文本中車次號的比對校核。調度命令與運行圖分別使用2 套子系統處理,調度命令程序向共享數據服務器請求實時運行線信息,并在實時運行線數據指定時間范圍內檢索調度命令中的車次信息。若提取的車次信息為錯誤數據,則無法從運行圖數據中獲取指定的運行線數據,系統即可判斷該車次號為無效的錯誤輸入,并通過警告信息提示調度員校核。
調度命令業務傳達操作的規范性主要指調度員規范設置調度命令需發送的收令單位以及無線收令車次。基于調度命令文本識別策略可獲得關聯車站及調度臺等信息,即為調度命令需設置的收令單位。將提取的收令單位與當前調度員實際設置的收令單位列表進行比對分析,判斷是否存在多發、漏發、錯發的情況。此外,根據調度命令內容中提取的車次信息,可檢查調度員是否設置了無線收令車次,從而檢查該調度命令是否已傳達至列車。
1)試驗數據。本文以鐵路局集團公司的實際調度命令數據為例,來驗證調度命令內容卡控技術的準確性,試驗數據設計見表2。

表2 試驗數據設計
2)試驗參考標準數據。本文構建了富拉爾基、富拉爾基西場、虎爾虎拉站三站二區間的公里標標準數據作為試驗命令文本的校核參考依據,見圖6。

圖6 試驗參考標準數據
將調度命令輸入程序后,獲得調度命令內容識別結果和卡控結果,見表3。

表3 試驗結果
由表3 可知,該命令為限速類調度命令,限速值為45 km/h,車次號為12345,時間為10 日10 時10 分,文本中包含富拉爾基與虎爾虎拉2 個車站,限速范圍是富拉爾基站(含)至虎爾虎拉上行183 km 500 m至189 km 050 m。以上識別結果可卡控收令車站、檢測實時車次信息、評判命令有效時間、限速值合法檢查、校核線路里程范圍及該范圍內的隱含車站。基于標準里程數據評判,調度命令文本內容中三站二區間所描述的線路范圍正確,但漏寫“富拉爾基西場”,且未勾選虎爾虎拉站,限速時間晚于當前系統時間。
基于校驗結果,通過調度命令程序UI 界面彈窗警告,提示內容為“命令時間晚于當前時間、限速范圍漏寫富拉爾基西場、收令人未選擇虎爾虎拉站”。調度命令程序不允許直接下發有誤的調度命令,調度員可根據提示信息修改命令內容,從而達到調度命令校核、卡控一體化的目標。
1)經過10 000 條以上的調度命令實例數據測試驗證,該調度命令內容識別與卡控策略的準確度達到98%以上,符合調度命令內容卡控的實際需求。
2)結合鐵路局實際應用情況,可持續補充卡控場景并優化檢查策略。
未來再結合更加穩定的人工智能語義分析技術,可進一步擴大調度命令內容識別與卡控策略的應用范圍,為CTC/TDCS 系統智能化發展提供技術支撐。