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