999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

規則引擎在列控產品配置數據驗證中的應用

2020-07-30 11:15:32
鐵路通信信號工程技術 2020年7期
關鍵詞:引擎規則設備

崔 巖

(1.北京全路通信信號研究設計院集團有限公司,北京 100070;2.北京市高速鐵路運行控制系統工程技術研究中心,北京 100070)

1 概述

列車運行控制系統是保證高速鐵路動車組安全、高效運行的核心技術裝備,包括列控中心(TCC)、臨時限速服務器(TSRS)、無線閉塞中心(RBC)等。各個設備依據技術規范和線路設計各司其職、協同工作。列控數據作為列控系統可靠運行的重要基礎,主要包括列控工程數據表和接口數據表[1-2]。列控工程數據表描述線路的靜態信息,包括信號數據表、線路速度表、線路坡度表等;接口數據表描述設備間的關聯信息,包括設備歸屬關系表、地面設備信息表、TCC—聯鎖接口表、TCC—TSRS 接口表等。列控數據種類多,信息量大,通常需要花費大量的動態交付測試進行驗證,尤其是在最初的幾輪測試中,會出現較多易識別的同類錯誤。為提高測試效率,針對各產品開發了專用的數據驗證工具。但實際使用中,又出現因列控工程數據表、接口數據表的格式變更以及產品數據結構變更導致的工具不適用。開發人員日常消耗大量時間分析工具的不適用原因,并進行適配開發。

針對列控數據驗證過程中的多變性問題,本文將規則引擎應用到列控數據驗證中,將驗證的處理方法轉化為測試人員可讀易懂的處理規則,實現驗證邏輯與代碼分離,為驗證開發提供一種快速且高效的方法。

2 規則引擎定義

規則引擎又叫做基于規則的專家系統,屬于人工智能的一類。規則引擎[3]將規則與特定的應用解耦,通過一種抽象描述將業務規則作為一種配置項進行存儲,然后由外部的輸入進行驅動計算,進而得出結論[4]。

典型的規則引擎通常由3 部分組成:規則庫、外部輸入和執行引擎。規則庫[5-7]用于存放基于經驗或者業務邏輯而事先實現的業務規則配置項,即本文中的數據驗證規則;外部輸入為待解決的問題集合,即本文中的列控產品配置數據和列控數據表;執行引擎決定要將哪些規則應用于這些待解決的問題中,并計算規則執行的順序。規則引擎的一般執行流程為接收外部輸入,計算待執行的規則列表,執行規則,最終得出結論。規則引擎的基本結構如圖1 所示。

3 列控數據驗證規則應用分析

3.1 列控數據驗證規則分析

TCC、TSRS、RBC 等產品的列控數據以C 語言的結構體數組或序列化數據進行存儲,作為標準的列控工程數據表和接口數據表以excel 文件進行存儲。驗證過程首先對待驗證的結構體數組和作為標準的數據表進行解析;通常結構體數據間具有較強的關聯性,需要進行加工融合后獲得完整信息;融合過程中同時進行結構體數據間的合理性檢查;最后進行結構體數據和數據表的一致性比較。驗證過程如圖2 所示。

圖1 規則引擎的基本結構Fig.1 Basic structure of rule engine

通過對驗證規則的需求分析,可將驗證規則歸納為兩類模型:第一類是運算類,對TCC、TSRS、RBC 等產品的列控數據,按一定的方法對待驗證原始參數進行解析、計算和初驗,得出新的中間變量;第二類是比較類,將運算類得出的中間變量或解析結果與列控工程數據表和接口數據表進行比較,給出判斷結論。

3.2 規則文件定義

目前普遍使用的開源規則引擎Drools 通過XML、DRL 語言設置規則邏輯,檢查包括大于、等于、小于,包含、不包含,相交、重疊、相離等類似的關系檢查,這些關系檢查已在大量編程語言中實現,重新定義一套新的語法和關鍵字,并沒有比直接采用一門編程語言難度低。因此,本文采用python 語言作為規則的描述語言,具體內容如下所示。

規定一個規則文件包含如下信息:

1)#Name 行,規則名稱,名稱能夠直觀描述規則的基本功能;

2)#Description 行,規則描述,具體描述規則的內容,包括輸入、輸出、匹配條件、業務規則等;

3)#Author 行,規則的創建者;

4)#Version 行,規則版本,例如V1.0.0;

5)#Date 行,規則創建日期;

6)rule_run 方法,規則的執行入口,入參為_params_in 數組,可輸入多組輸入數據,單組輸入數據建議采用Json 格式編寫,出參為_params_out 數組,同樣建議采用Json 格式編寫。

4 規則引擎設計與應用

4.1 執行引擎算法

規則引擎的核心處理過程主要包括待執行規則隊列生成和規則執行兩部分[8]。

規則隊列生成算法負責根據外部輸入,確定第一級待執行的規則,然后根據規則間的依賴關系進行推導,生成一個有向無環的規則圖的過程。有向無環的規則圖如圖3 所示。

圖3 規則鏈的有向無環圖Fig.3 Directed acyclic graph of regular chains

生成有向無環的規則圖時,需要對是否存在循環依賴關系進行檢查。若存在,則說明規則編寫有誤。該過程涉及到兩個核心數據結構,規則節點和規則集。規則節點包含規則名稱、所屬規則集、規則依賴深度、前置節點列表屬性。規則集采用以規則名稱為鍵值的規則節點哈希表。

規則執行部分,采用若干消息隊列(包括待執行隊列、已執行隊列、忽略隊列、錯誤隊列等)來存儲執行過程中的規則。每周期輪詢待執行隊列中規則,若規則滿足執行條件,即該規則的所有前置規則均已正常執行完畢,則觸發該規則的執行;若一個規則執行失敗,則將其壓入錯誤隊列;若一個規則執行成功,則將其壓入已執行隊列。當一個規則所有前置規則均處于錯誤隊列中時,則將該規則壓入忽略隊列,不再執行。當待執行隊列為空時,全部規則執行結束,可以得到最終結果。

上述算法的實現過程如下所示。

Step1:初始化規則集合R={r1,r2, …,r3},外部輸入I={i1,i2,…,in},中間數據集合D={},待執行規則集合ToRun={},已執行規則集合Finished={},錯誤規則集合Failed={},忽略規則集合Ignore={};

Step2:使用R中各個規則的入參與I和D中元素進行匹配,匹配成功的加入ToRun,同時將該規則的輸出加入到D中;

Step3:每當D有新數據加入時,重新執行Step2,直到D不再有新的數據,此時完成全部待執行規則的查找;

Step4:根據ToRun 中規則的依賴關系,基于圖論理論,生成有向無環圖,對規則鏈進行檢查;

Step5:遍歷ToRun 中的規則。當規則入參與I匹配時,執行該規則。執行成功,將該規則移入Finished。執行失敗,將該規則移入Failed。若該規則有前置規則在Failed 或Ignore 中,則將該規則移入Ignore 中,將規則的執行輸出存入D中;

Step6:重復Step5,直到ToRun 為空,結束此次規則執行。

4.2 規則引擎實現

采用python 構建規則引擎,并編寫規則代碼,實現基于規則引擎的列控產品配置數據驗證過程。整個系統實現的架構如圖4 所示。

圖4 列控產品配置數據驗證系統架構Fig.4 Architecture of the verification system of train control product configuration data

TSRS 產品的數據驗證需求包括“地面設備信息驗證”、“信號機和應答器配置驗證”、“TCC 臨時限速管轄范圍驗證”、“RBC 臨時限速管轄范圍驗證”、“側線區配置驗證”、“短鏈配置驗證”等若干項,本文以驗證地面設備信息數據為例說明驗證系統的執行流程,如圖5 所示。

圖5 TSRS驗證系統規則鏈示意Fig.5 Diagram of rule chain for TSRS verification system

1) 用戶使用文本編輯器編制規則,然后通過用戶界面將其導入數據庫中。

2) 規則引擎從數據庫中讀取規則,生成規則的有向無環圖。

3) 規則引擎將待檢查數據文件載入數據內存;TSRS 配置數據示例如圖6 所示,車站設備信息表內容示例如表1 所示。

4) 觸發基本規則進行檢查,本示例中的根節點有規則1,為適用于TSRS 變量的計算規則節點,如表2 所示;規則2 為適用于地面設備信息表的計算規則節點,如表3 所示。

圖6 TSRS配置數據示例Fig.6 Example of TSRS configuration data

表1 車站設備信息表內容示例Tab. 1 Example of the contents of station equipment information table

表2 TSRS變量的計算規則Tab. 2 Rules for the calculation of TSRS variables

規則3 的前置節點為規則1 和規則2,兩個規則全部匹配后,觸發規則3 執行。規則3 為比較類節點,輸出驗證結果,如表4 所示。

5)生成檢查結果返回界面,檢查結束。

表3 地面設備信息表的計算規則Tab. 3 Rules for the calculation of ground equipment information table

表4 地面設備信息比較規則Tab.4 Rules for comparison of ground equipment information

最終通過Web Server 實現的基于規則引擎的列控產品配置數據驗證系統界面示意,如圖7 所示。

圖7 列控產品配置數據驗證系統界面Fig.7 Interface of the verification system of train control product configuration data

5 結束語

基于規則引擎的列控產品配置數據驗證方法,能夠適應列控數據表和被驗證文件不斷變化的需求,能夠適應驗證方法不斷更新變化的需求,通過將驗證方法與程序代碼解耦,解決軟件變更困難和變更周期長的問題。本文定義了基于規則的實現方法,便于規則的增加與修改,可以適用于頻繁的變化要求,優化列控配置數據驗證效率。該方法已應用到TSRS 數據驗證系統,系統具有良好的重用性,應用程序生命周期長。后續將繼續致力于規則的完善、簡化和開放,以更快速和便捷的方式,滿足日益增長的變化需求。

猜你喜歡
引擎規則設備
諧響應分析在設備減振中的應用
撐竿跳規則的制定
數獨的規則和演變
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
讓規則不規則
Coco薇(2017年11期)2018-01-03 20:59:57
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
TPP反腐敗規則對我國的啟示
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
基于Cocos2d引擎的PuzzleGame開發
主站蜘蛛池模板: 自拍中文字幕| 国产精品久久久久久影院| 色婷婷视频在线| 大香伊人久久| 成人自拍视频在线观看| 国产无码精品在线播放| 在线欧美日韩| 久久亚洲黄色视频| 女人18一级毛片免费观看| 欧美另类一区| 亚洲精品国产综合99久久夜夜嗨| 福利在线不卡| 国产在线自在拍91精品黑人| 456亚洲人成高清在线| 色老二精品视频在线观看| a级毛片网| 四虎永久免费地址在线网站| 毛片基地视频| 国产美女久久久久不卡| 天堂在线视频精品| 一级香蕉视频在线观看| 超碰免费91| 亚洲中文久久精品无玛| 无码一区中文字幕| 婷婷综合在线观看丁香| 国产微拍精品| 一级爱做片免费观看久久| 91亚洲视频下载| 新SSS无码手机在线观看| 美女被狂躁www在线观看| 又爽又大又黄a级毛片在线视频| 国产麻豆精品手机在线观看| 久久久四虎成人永久免费网站| 日韩欧美国产综合| 国产噜噜噜视频在线观看| 国产人前露出系列视频| 精品伊人久久久久7777人| 特级精品毛片免费观看| 毛片大全免费观看| 久久香蕉国产线看精品| 亚洲色图欧美在线| 国产爽歪歪免费视频在线观看| 日韩高清一区 | 思思热精品在线8| 色悠久久久久久久综合网伊人| 第一页亚洲| 97国产精品视频自在拍| 国产精品欧美在线观看| 成人午夜亚洲影视在线观看| 亚洲中文字幕无码爆乳| 国产成人高清在线精品| 国产成人亚洲精品无码电影| 国产在线观看人成激情视频| 日韩色图在线观看| 欧美日韩综合网| 中文字幕天无码久久精品视频免费 | 国产无码制服丝袜| 性欧美久久| 黄色a一级视频| 日韩免费毛片| 国产精品入口麻豆| 国产chinese男男gay视频网| 国产女同自拍视频| 亚洲精品视频免费看| 中文字幕人妻无码系列第三区| 国产玖玖视频| 亚洲另类国产欧美一区二区| 色悠久久综合| 国产在线小视频| 国产v精品成人免费视频71pao| 亚洲免费播放| 欧美中文字幕一区| 久久久精品久久久久三级| 黄色福利在线| 97在线视频免费观看| 国产乱肥老妇精品视频| 国产精品综合色区在线观看| 国产成人一区| 99热国产这里只有精品无卡顿"| 99在线视频免费观看| 亚洲精品成人7777在线观看| 精品国产福利在线|