吳 昊 李達明 閆友為(北京全路通信信號研究設計院有限公司,北京 100073)
吳昊,男,碩士畢業(yè)于清華大學,工程師。主要研究方向為鐵路通信信號,曾參與“CTCS-3級列控系統綜合設計集成平臺”、“CTCS-3級列控系統研發(fā)試驗—C3列控實驗室研究與測試”、“C3綜合測評系統”、“列控系統優(yōu)化技術研究”等項目工作。
作為CBTC設計開發(fā)和集成實施的重要環(huán)節(jié),測試能夠在系統設計、集成研究、工程實施以及運營維護等系統開發(fā)全生命周期中的各個階段提供對CBTC系統功能的驗證支持。然而在測試過程中將產生大量繁雜多樣的數據,人工進行測試分析需要耗費大量的人力,占用不少的時間,直接影響了測試的效率,并且人工分析難免會出現失誤和不全面,對測試評價的準確性和全面性有較大的影響,直接影響到對整個CBTC系統的評價。因此研究針對CBTC的綜合測評技術,利用計算機輔助的手段,將測試分析的方法、知識和經驗軟件化,輔助人工快速、準確發(fā)現CBTC系統測試和運行過程的問題,并對CBTC系統進行綜合評價,是解決這一問題的有效途徑。
專家系統是人工智能技術與具體應用學科相結合的產物。它能運用知識進行推理,在問題所在的領域內推導出滿意的答案[1-2]。一個專家系統,一般應該具備以下幾個功能。
1)知識的表示:[3-4]即尋找領域知識與計算機表達之間的映射方式和途徑。比較常用的知識表示方法有:謂詞邏輯表示法、產生式規(guī)則表示法、語義網絡表示法、框架表示法和基于本體的知識表示法[5]等。
2)知識的推理:即根據一定的原則(公理或規(guī)則)從已知的事實(或判斷)推出新的事實(或另外的判斷)的思維過程。專家系統的推理是建立在知識庫中存儲的大量領域知識的基礎之上的,即是基于知識的。使用專家系統的過程就是對知識庫中的知識進行選擇和運用的思維過程[2]。
3)輸入數據的預處理:即通過對輸入專家系統數據的處理,解決數據丟失、數據不完整、數據間不一致、數據錯誤等問題,提高輸入數據的質量,使推理過程更加有效和容易[2]。
針對CBTC的綜合測評技術既具有一般專家系統技術的特征,又具有與CBTC系統領域知識相關的特殊屬性。傳統的專家系統技術在應用于CBTC系統時,存在以下問題。
傳統專家系統通常采用某一類方法對領域知識進行描述。而CBTC系統結構復雜,信息類別繁多,很難單獨用某一類知識表示方法對CBTC系統的所有領域知識進行描述,必須針對不同類型的領域知識,采用不同的知識表示方法進行描述。
2)推理機制的通用性要求低,專用性要求高。
傳統專家系統為了滿足在多領域中的通用性,對推理機的設計考慮了各種前提和可能發(fā)生的情況,采用了傳統的模式匹配算法如Rete算法等。這樣的設計使系統獲得了很大的通用性,但也帶來了推理效率不高等缺陷。CBTC綜合測評不存在對其他領域支持的需求。因此,需要以提高推理效率為目標,對傳統推理機制進行取舍和改進,使其適用于CBTC系統。
3)數據量巨大,數據來源多樣,數據預處理需要有效提高輸入數據的質量。
傳統專家系統獲取的輸入數據通常來源于同一個途徑,其數據量也相對不大。CBTC綜合測評面向的是CBTC系統的數據,這些數據來源于不同的監(jiān)測途徑,而且數據量巨大,周期性數據和非周期性數據共存。因此,在數據進入推理機前,有必要對其進行甄別和篩選,剔除冗余和無用的信息,保留有用信息,否則推理機的效率會受到極大影響。
鑒于傳統專家系統技術在應用于CBTC綜合測評時存在以上所述的問題,本文基于傳統專家系統技術,并對其進行改進和創(chuàng)新,提出了一種針對CBTC的綜合測評技術,包括數據預處理技術、知識表示與規(guī)則提取技術、推理機技術,重點討論基于傳統專家系統實現的改進和創(chuàng)新。
腫頭龍生活在距今7000萬年至6600萬年前的白堊紀晚期的北美洲。腫頭龍與許多恐龍生活在一起,其中就包括了霸王龍、三角龍、甲龍、埃德蒙頓龍、似鴕龍等。霸王龍是腫頭龍生存世界中的絕對王者,它能毫不費力地獵殺腫頭龍。不過,生性機警、奔跑迅速的腫頭龍是很難被捕捉到的。
針對CBTC系統數據的特征,可以使用數據清理、數據集成、數據變換和數據規(guī)約等數據預處理技術,在推理之前對數據進行適當的預處理,以減少推理所需要的時間,提高綜合測評的總體質量。
數據清理首先檢測數據的各種偏差,包括數據退化(如數據發(fā)送、接收方不明確)、數據表示及編碼不一致(如數據中時間戳格式不一致)、數據重復等,然后使用定義的一系列變換來糾正偏差,如將數據中時間戳變換成統一格式、根據數據的其他屬性內容來填寫已經退化的屬性值、過濾重復數據等。
數據集成是將來自于多個數據源的數據進行合并。代表同一個概念的數據屬性在不同的數據中可能有不同的名字,這將導致不一致性和冗余。這種命名的不一致還可能出現在數據屬性的值中。數據大量冗余和不一致可能降低推理過程的性能或使之陷入混亂。因此需要定義關于各數據屬性性質的知識,即數據屬性的元數據,來避免模式集成的錯誤。每個數據屬性的元數據包括名稱、含義、數據類型、允許取值范圍、空值規(guī)則等。
數據變換將數據轉換或統一成適合于推理的形式。數據變換的主要內容如下。
1)數據聚集:對數據進行匯總或聚集。
2)數據泛化:使用概念分層,用高層概念替換低層或“原始”數據。分類的數據屬性,如數據中的邏輯區(qū)段鎖閉狀態(tài)、區(qū)域控制器(Zone Control, ZC)發(fā)送給聯鎖的邏輯區(qū)段狀態(tài)等類型的數據,其消息類型就可以映射到較高層概念,如邏輯區(qū)段;又如數據中聯鎖發(fā)送給ZC的進路消息,道岔的狀態(tài)屬性以兩位原始數據00、01、10、11表示,也可以泛化為較高層的概念,以道岔定位、反位、故障來表示。通過這種數據泛化,盡管細節(jié)丟失了,但是泛化后的數據更有意義。
3)特征構造:由給定的屬性構造新的屬性并添加到數據的屬性集中,以幫助提高準確率和對高維數據結構的理解。
數據歸約通過聚集、刪除冗余特征等方法來減小數據規(guī)模。用于推理的數據集太大,會降低推理的速度。數據歸約技術可以用來得到數據集的歸約表示,它雖然小得多,但仍接近保持元數據的完整性。這樣,對歸約后的數據集進行推理將更有效,并產生相同的測評結果。
此外,為了提高數據預處理的效率,可以對數據預處理過程進行并行處理。對于接收到的數據,首先進行統一的數據清理。這是因為數據清理與輸入數據的類型無關,只是對數據錯誤、數據屬性退化、數據表示不一致、數據重復等進行處理;并且只有通過數據清理,才能正確地按照某種規(guī)則對數據進行分發(fā)和并行處理。數據清理之后,根據數據的類型等屬性,將數據分發(fā)到不同的并行預處理單元。每個并行預處理單元都有一個待處理的數據隊列。并行預處理單元從隊列中依次取出數據,對數據進行數據集成、數據變換和數據歸約。
可以采用兩種知識表示方法對CBTC系統的領域知識進行完整的描述:
1)產生式規(guī)則表示法;
2)面向對象表示法。
產生式規(guī)則表示法是根據產生式規(guī)則來表述知識的方法,其基本形式為:“IF P THEN Q”,其中P為產生式的前提條件,描述了結果產生所依賴的條件,Q是當前提條件成立時得出的結論。產生式規(guī)則能夠將知識形式直觀、自然地表現出來,而且每條規(guī)則都具有相同的形式,方便知識的增加,刪除和修改,推理時哪一個條件不成立在推理時清晰可見,能及時反映當時的情況。對于不具備時序性的領域知識,例如有源應答器報文規(guī)則,始終可以根據系統當前某些條件或條件的組合推導出固定的結論,這些結論并不依賴于系統的歷史狀態(tài),因此使用產生式規(guī)則表示法可以很好地對CBTC系統中的這類知識進行表示。
然而對于具備時序性的領域知識,系統輸出不僅依賴于系統的當前狀態(tài),還與系統的歷史狀態(tài)有關。這類領域知識的載體無法采用“IF-TH EN”的形式來實現,而需要載體里包含系統的某些歷史狀態(tài)。系統當前的某些狀態(tài)數據與載體里歷史狀態(tài)數據進行某些邏輯、算數運算,進而得到預期結論。這些載體里需要包含“數據”和“行為”,因此,適合采用面向對象表示法對這類領域知識進行描述。
針對CBTC的綜合測評,具有實時和大量推理需求的特點,傳統推理技術的推理效率會成為系統性能的一個瓶頸。為此,在CBTC的綜合測評中,采用以下3種方式提高推理效率:
1)迭代推理規(guī)避
傳統的推理機對于迭代推理的需求來源于當前的推理“結果”可以作為“事實”進入推理機進行下一次推理,多用于各規(guī)則間存在因果關系的專家系統。而CBTC系統由于各領域知識相互獨立,且采用1.2節(jié)所描述的兩種知識表示技術使得各規(guī)則之間沒有直接聯系,因此,推理機不用將推理“結果”作為“事實”進行迭代推理,有效降低了推理機設計的復雜程度,提高了推理效率。
2)模式匹配學習
對于采用產生式知識表示法描述的規(guī)則,假設一個包含n個條件和K條規(guī)則的規(guī)則集,通過對n個條件狀態(tài)的判斷在這K條規(guī)則中找到滿足條件的結果。如果不進行模式匹配學習,則搜索的時間復雜度為O(n)。實際上對于CBTC的測評,前后兩次推理通常并非所有n個條件都發(fā)生改變,因此可以“學習”前次推理的模式匹配過程,即只對改變了的條件重新進行搜索,這樣可以避免對不必要條件的搜索,減小時間復雜度。此外還可以通過“學習”各條件發(fā)生變化的概率,按照概率從小到大的順序排列條件,進一步減小時間復雜度。
3)事件注冊機制
對于采用面向對象知識表示法描述的規(guī)則,如果每次推理都對規(guī)則庫進行遍歷,雖然可以保證所有滿足條件的規(guī)則都被觸發(fā),但是會造成眾多不滿足條件的規(guī)則被再次遍歷,導致推理效率降低。采用該類知識表示法描述的規(guī)則,其觸發(fā)條件是輸入事件,只有當新的輸入事件產生,才會進行推理;而且,每類輸入事件通常只會觸發(fā)一小部分的規(guī)則,如果推理機僅對這一部分規(guī)則進行遍歷,將大大縮短每次推理所用的時間。為此,對于每條規(guī)則,采用事件注冊機制,預先對每類輸入事件可能激活的規(guī)則進行注冊。這樣,當新的輸入事件產生時,推理機首先根據事件類型在注冊表里找到可能激活的規(guī)則,然后對這些規(guī)則逐一進行模式匹配,匹配成功的規(guī)則將執(zhí)行。這樣的設計使得推理機不再遍歷不滿足觸發(fā)條件的規(guī)則,極大地提高推理效率。
另外,由于傳統推理技術通常只適用于由某一類規(guī)則組成的專家系統。而對于由多種類型規(guī)則混合組成的專家系統,現有技術的缺點在于推理機對外接口難以統一,輸入輸出數據的內容、格式等與規(guī)則庫類型產生耦合。為了消除這一影響,有必要對推理機的結構進行重新設計,解除輸入輸出數據與內部規(guī)則之間的耦合,保持推理機對外視圖的一致性。
采用產生式知識表示法或面向對象知識表示法描述的規(guī)則進行推理,其過程遵循以下步驟:“輸入事件→模式匹配→產生預期結果→驗證結果→測評結論”,兩種知識表示方法唯一的不同在于模式匹配階段。因此,在設計推理機的結構時,將變化的部分與不變的部分分離,最大程度地保持各設計模塊對于由兩種知識表示法描述的規(guī)則的通用性。
在圖1所示的推理機結構中,推理機不斷掃描外部消息和內部定時器,當有外部新消息輸入或事實集里有定時事件產生時,便將其作為輸入事件,發(fā)送給對該類型事件注冊過的規(guī)則集。規(guī)則集根據規(guī)則的類型進行推理,推理完成后,更新與規(guī)則相關的事實集部分。如果推理過程中模式匹配成功,則產生預期結果,放入預期結果存儲區(qū)。然后,推理機不斷掃描預期結果存儲區(qū),對比預期結果和已有的監(jiān)測數據或將要到達的監(jiān)測數據,得出測評結論。從上述推理過程可以看出,圖1所示的推理機與外部系統的接口不依賴于規(guī)則庫的構建方式,因而具備較強的適用性。
應用CBTC綜合測評技術可以實現對CBTC系統測試和運行過程的綜合評價,可以節(jié)省測試驗證過程中的人力和時間,提高測試驗證中各類問題的發(fā)現率,全面、準確地對CBTC系統的功能進行綜合評價。在未來,通過進一步的研究和開發(fā),CBTC綜合測評技術可以進一步服務于CBTC系統的后期運營維護中,為CBTC系統的持續(xù)優(yōu)化提供扎實的技術支撐。
[1] 金聰. 人工智能教程[M]. 北京: 清華大學出版社, 2007.
[2] Giarratano,Joseph C,Riley, et al. Expert Systems Principles and Programming[M]. 北京: 機械工業(yè)出版社, 2006
[3] 徐寶祥, 葉培華. 知識表示的方法研究[J]. 情報科學, 2007(05):690-694.
[4] W.L. Xu, L. Kuhnert, K. Foster, et al, Object-oriented knowledge representation and discovery of human chewing behaviours[J].Engineering Applications of Artificial Intelligence, 2007(20):1000-1012.
[5] 鄧志鴻,唐世渭,張銘,等. Ontology 研究綜述[J].北京大學學報:自然科學版, 2002, (5):730-738.