譚寶龍 瞿潔 周俊
摘要: 由于企業(yè)信息化子系統(tǒng)開發(fā)時間的不同,許多子系統(tǒng)存在異構(gòu)特征。異構(gòu)系統(tǒng)通常獨立運行,系統(tǒng)之間缺少信息共享,各個子系統(tǒng)不能協(xié)調(diào)同步工作,實現(xiàn)系統(tǒng)之間聯(lián)動協(xié)同工作成為主要問題。本文建立了一個基于規(guī)則的專家系統(tǒng),系統(tǒng)能夠不斷對規(guī)則庫的知識進行擴充和提煉,形成一個完善的規(guī)則庫。當(dāng)已知的事實與規(guī)則的前提條件匹配時,異構(gòu)系統(tǒng)啟動聯(lián)動控制策略,相應(yīng)子系統(tǒng)聯(lián)動工作。這種方案開發(fā)周期短,易于維護,對企業(yè)異構(gòu)系統(tǒng)的聯(lián)動控制具有一定借鑒參考意義。
Abstract: Due to the different development time of enterprise information subsystems, many subsystems have heterogeneous architectures. Heterogeneous systems usually run independently, they are lack of the information sharing among systems, each subsystem can not coordinate the synchronous work. Therefore, it's a key problem to realize system linkage cooperative work. This paper has established a rule-based expert system, the knowledge of the rule base of system can be expanded and refined continuously to form a complete rule base. When known fact and the premise of rule are match, heterogeneous systems startup linkage control strategy, and the corresponding subsystems join the linkage work. This scheme has a shorten development cycle, and it is easy to maintain. It has certain reference significance for heterogeneous systems of enterprise linkage control.
關(guān)鍵詞: 專家系統(tǒng);規(guī)則庫;聯(lián)動
Key words: expert system;rule base;linkage
中圖分類號:TP182 文獻標(biāo)識碼:A 文章編號:1006-4311(2016)05-0192-03
0 引言
隨著技術(shù)發(fā)展,企業(yè)會根據(jù)需求開發(fā)很多信息化系統(tǒng),這些系統(tǒng)開發(fā)時間,開發(fā)廠商,操作系統(tǒng),數(shù)據(jù)庫以及編程語言可能不同,導(dǎo)致不同系統(tǒng)間的信息交互難以實現(xiàn)[1]。以某電站物防技防信息系統(tǒng)為例,該電站目前含有安訪視頻監(jiān)控系統(tǒng)、電子圍欄報警系統(tǒng)、智能門禁在線監(jiān)測系統(tǒng)、工業(yè)電視集控中心系統(tǒng)、廣播系統(tǒng)、消防系統(tǒng)、燈光系統(tǒng)等7個子系統(tǒng)。這些系統(tǒng)信息的處理都是獨立進行,沒有形成聯(lián)動策略,這種信息處理方式忽視了各個系統(tǒng)之間的內(nèi)在聯(lián)系及信息共享。因此,采用聯(lián)動協(xié)同控制策略實現(xiàn)系統(tǒng)的統(tǒng)一維護就顯得尤為重要。
由于異構(gòu)系統(tǒng)聯(lián)動控制復(fù)雜度高,實現(xiàn)較為困難,至今還沒有非常成熟的解決方案。在此背景下,本文提出了基于專家系統(tǒng)的多異構(gòu)系統(tǒng)聯(lián)動控制方案,將專家系統(tǒng)應(yīng)用于某電站物防技防系統(tǒng)聯(lián)動處理中。該系統(tǒng)建有專家知識庫,當(dāng)有新的需求規(guī)則生成時,系統(tǒng)可以根據(jù)新增加的規(guī)則,進行推理,并且可不斷對自己的知識進行擴充、完善和提煉,隨時修正已有的知識或歸納出新的知識。這種基于專家系統(tǒng)的多異構(gòu)系統(tǒng)聯(lián)動控制方案,可以在不改變系統(tǒng)現(xiàn)有結(jié)構(gòu)的情況下實現(xiàn)系統(tǒng)聯(lián)動,完成數(shù)據(jù)交互。這樣不僅開發(fā)周期短,工作量小,而且開放性好,易于以后開發(fā)和維護。
1 基于規(guī)則的多異構(gòu)聯(lián)動專家系統(tǒng)設(shè)計
1.1 系統(tǒng)總體架構(gòu)
基于規(guī)則的專家系統(tǒng)是個計算機程序,其內(nèi)部含有大量的某個領(lǐng)域?qū)<宜降闹R與經(jīng)驗,能夠利用專家的知識和解決問題的方法來處理該領(lǐng)域問題。它由知識規(guī)則庫、推理機、事實數(shù)據(jù)庫、知識獲取機制、解釋機制以及人機界面等幾個基本的部分組成[2]。系統(tǒng)的完整結(jié)構(gòu)如圖1所示,其中箭頭方向為信息流動的方向。
系統(tǒng)工作模型主要包括兩大部分:知識規(guī)則庫和推理機。除此以外,還需要用來顯示結(jié)果的運行界面。
①規(guī)則庫:知識規(guī)則庫可被所有的規(guī)則訪問。在基于規(guī)則的專家系統(tǒng)中,知識用一組規(guī)則表達,每一條規(guī)則表達一個關(guān)系,具有IF(條件)THEN(結(jié)論)的形式,當(dāng)規(guī)則的條件被滿足時,規(guī)則被觸發(fā),執(zhí)行動作。本文采用基于規(guī)則的產(chǎn)生式來表示,報警源,報警信息,聯(lián)動信息規(guī)則都存儲在規(guī)則表中。
②推理機:推理策略常采用前向推理和后向推理[3]。本文的多異構(gòu)聯(lián)動專家系統(tǒng)采用前向推理策略,將已知的事實與規(guī)則的前提進行比較,觀察是否能夠匹配,如果不匹配,則用下一條規(guī)則匹配。如此重復(fù)下去,直到匹配成功。如果匹配成功,則該規(guī)則被啟用,并產(chǎn)生可推理事實。如果事實不是結(jié)論,則將此事實存入聯(lián)動知識數(shù)據(jù)庫。否則,輸出結(jié)果。其流程圖如圖2所示。
人機界面負責(zé)把用戶輸入的信息轉(zhuǎn)換成系統(tǒng)內(nèi)規(guī)范化的表示形式,然后把這些內(nèi)部表示交給相應(yīng)的模塊去處理。系統(tǒng)輸出的內(nèi)部信息也由人機界面轉(zhuǎn)換成用戶易于理解的外部表示形式顯示給用戶。
1.2 規(guī)則庫設(shè)計
1.2.1 規(guī)則表示數(shù)學(xué)模型
基于規(guī)則的專家系統(tǒng)模型中,任何規(guī)則的形式均包括兩部分:IF部分和THEN部分。它的表現(xiàn)形式是“IF...THEN...”。IF部分是前提條件,THEN部分是結(jié)論,即當(dāng)前提條件成立時,才會得出結(jié)論[4]。規(guī)則的基本數(shù)學(xué)模型如下:
IF <前項>
THEN <后項>
通常,在基本數(shù)學(xué)模型之上可以擴充。規(guī)則可以包含多個前項,這些前項用關(guān)鍵詞AND(合?。?、OR(析?。┗蛘叨呋旌?。合取與析取數(shù)學(xué)模型如下所示:
IF <前項1>
AND <前項2>
.
.
.
AND <前項N>
THEN <結(jié)論>
IF <前項1>
OR <前項2>
.
.
.
OR <前項N>
THEN <結(jié)論>
規(guī)則的后項部分也可包含多個語句,其數(shù)學(xué)模型如下:
IF <前項>
THEN <結(jié)論1>
<結(jié)論2>
.
.
.
<結(jié)論N>
前項部分包括兩部分:對象和值,用操作符連接。操作符識別對象并進行賦值。規(guī)則后項部分同前項類似,也可用數(shù)值型對象和簡單表達式。例如:
IF “A”> 10
THEN “B”= “A”* 2 / 3
知識庫中的每個規(guī)則按上述形式組建。運行過程中環(huán)環(huán)相扣,形成復(fù)雜的推理網(wǎng)絡(luò),知識在推理網(wǎng)絡(luò)中得以傳遞,進行相應(yīng)的分析和判斷。
1.2.2 規(guī)則庫構(gòu)建
在基于規(guī)則的專家系統(tǒng)中,領(lǐng)域知識用一組IF-THEN產(chǎn)生式規(guī)則來表示,數(shù)據(jù)用當(dāng)時情境下的一組事實來表示。推理機將存儲在知識庫中的規(guī)則與數(shù)據(jù)庫中的事實相匹配,如果一條規(guī)則的IF(條件)部分與事實匹配,即觸發(fā)該規(guī)則,執(zhí)行THEN(結(jié)論)部分[5]。被觸發(fā)的規(guī)則可能由于添加新事實而改動事實集合。
知識規(guī)則庫中初始的報警規(guī)則是基于歷史報警記錄的基礎(chǔ)上,采用產(chǎn)生式規(guī)則來表示這些知識:
IF〈電子圍欄 Area 1 Location 001〉A(chǔ)ND〈無高優(yōu)先級報警信號〉THEN〈燈光系統(tǒng)打開〉A(chǔ)ND〈安防監(jiān)控攝像頭調(diào)出畫面〉
IF〈門禁系統(tǒng) Area 2 Location 002〉A(chǔ)ND〈無高優(yōu)先級報警信號〉A(chǔ)ND〈屬于禁區(qū)〉THEN〈關(guān)門動作〉A(chǔ)ND〈工業(yè)電視攝像頭調(diào)出畫面〉
IF〈消防系統(tǒng) Area 3 Location 003〉A(chǔ)ND〈無高優(yōu)先級報警信號〉THEN〈廣播系統(tǒng)動作〉A(chǔ)ND〈消防攝像頭調(diào)出畫面〉
通過對用戶的使用習(xí)慣進行調(diào)查后,我們對各個系統(tǒng)進行分類編號,再以事實形成原子類,再將各個原子類歸類,可以提高工作效率。歸類劃分如下:
其中S表示報警源;L表示聯(lián)動對象。以某電站的7個異構(gòu)系統(tǒng)為例,用字母表示如下:a代表電子圍欄系統(tǒng);b代表安防視頻系統(tǒng);c代表工業(yè)電視系統(tǒng);d代表消防系統(tǒng);e代表廣播系統(tǒng);f代表門禁系統(tǒng);g代表燈光系統(tǒng)。各子系統(tǒng)分類如表1所示。
按照上述子系統(tǒng)分類后,接著將規(guī)則原語表示如下:Area代表報警區(qū)號;Location代表報警位號;區(qū)域狀態(tài)用State表示,其中0代表一般工作區(qū),1代表危險區(qū),2代表禁區(qū);條件關(guān)系符用Relation表示;報警優(yōu)先級用Priority表示,數(shù)字越小,優(yōu)先級越高。
經(jīng)過分類表示后,報警規(guī)則表如表2所示。報警源會根據(jù)報警的優(yōu)先級執(zhí)行動作,數(shù)字越小優(yōu)先級越高。報警到來時,先看有無更高級報警信號,若無則根據(jù)聯(lián)動知識庫,按添加順序依次執(zhí)行聯(lián)動動作。若有更高優(yōu)先級報警信號則優(yōu)先執(zhí)行高優(yōu)先級報警動作,然后再執(zhí)行此報警源動作。報警動作順序可根據(jù)需求進行調(diào)整。
為簡化系統(tǒng)設(shè)計,本系統(tǒng)的知識維護功能設(shè)計成從外部維護,即由用戶進行知識的修改、刪除、添加及一致性檢驗。用戶界面以表格的形式列出報警源,報警區(qū)號、報警位號、報警優(yōu)先級、位置狀態(tài)、聯(lián)動對象供用戶進行定位查詢、添加、修改和刪除。這項操作一般是不允許隨意進行的。為此,系統(tǒng)設(shè)置了密碼保護,只有經(jīng)過培訓(xùn)的管理員才能進行此項操作。
1.3 規(guī)則推理
規(guī)則庫設(shè)計完成后,需要對規(guī)則進行推理。本文采用正向推理策略,正向推理過程可描述如下:
將規(guī)則庫中規(guī)則的前項同當(dāng)前數(shù)據(jù)庫內(nèi)容匹配,若匹配成功,則找到一條可用規(guī)則送入可用規(guī)則集S;否則,用下一條規(guī)則進行匹配。程序偽代碼如下:
Procedure respond
While S非空且問題未求解
Do
Begin
調(diào)用select-rule(S),從S中選擇一條規(guī)則,將該規(guī)則的結(jié)論添加到數(shù)據(jù)庫中。
調(diào)用respond。
End
推理機要完成推理,通常要對facts進行多次擴充,按擴充了的facts繼續(xù)從rules中選擇可用規(guī)則,每選擇一條可用規(guī)則,就把規(guī)則的后項中不在facts中的所有結(jié)論添加到facts中,對facts擴充,直至沒有可用規(guī)則可選。若找到一條可用規(guī)則對facts進行過一次擴充,則deduce返回t;否則,deduce返回nil。deduce用來表示正向推理機函數(shù)。
deduce函數(shù)定義如下:
(defun (deduce facts)
(prog (progress)
loop
(cond ( ( step-forward rules) (step progress t) )
( t ( return progress) ) )
(go loop ) ) )
其中step-forward函數(shù)用于逐次掃描規(guī)則庫rules中的規(guī)則,若發(fā)現(xiàn)rules中有一條可用規(guī)則,即該規(guī)則的前項包含的全部事實在表facts中,則把該規(guī)則的后項中不在facts中的所有結(jié)論添加facts中,且step-forward返回t。若rules中沒有一條可用規(guī)則,則step-forward返回nil。
知識規(guī)則庫編輯完畢并存盤后,啟動專家系統(tǒng)的執(zhí)行文件便開始了對知識庫的檢查,包括檢查知識表達語法的正確與否,規(guī)則是否互相矛盾,若無錯誤則正常運行。當(dāng)有一條以上的規(guī)則被觸發(fā)時,采用規(guī)則排序策略來解決沖突,即規(guī)則按優(yōu)先級大小排序,先觸發(fā)的規(guī)則先啟用,只有第K條規(guī)則不能使用時,才考慮第K+1規(guī)則。這些規(guī)則可以動態(tài)的添加,刪除、修改。由于知識規(guī)則庫是以數(shù)據(jù)表的形式存在于關(guān)系數(shù)據(jù)庫中,因此,十分便于利用數(shù)據(jù)庫通用查詢語言SQL語言中的SELECT語句進行查詢,從而檢索出符合要求的結(jié)果集。
2 基于規(guī)則的多異構(gòu)聯(lián)動專家系統(tǒng)實現(xiàn)
本項目建設(shè)的智能管理平臺以某電站的安訪視頻監(jiān)控系統(tǒng)、電子圍欄報警系統(tǒng)、智能門禁在線監(jiān)測系統(tǒng)、工業(yè)電視集控中心系統(tǒng)、廣播系統(tǒng)、消防系統(tǒng)、燈光系統(tǒng)等整合在一個用戶界面上統(tǒng)一管理,形成各子系統(tǒng)之間的聯(lián)動,便于應(yīng)急響應(yīng),能夠極大地提高工作的效率。電站各子系統(tǒng)實現(xiàn)聯(lián)動后,一旦出現(xiàn)意外事件,相應(yīng)系統(tǒng)便會啟動,引起相關(guān)人員注意,從而達到事前防范的目的。
根據(jù)項目要求,設(shè)計系統(tǒng)工作流程如圖3所示。當(dāng)電子圍欄報警系統(tǒng)檢測到異常入侵信號時,智能管理平臺報警掃描軟件立即會捕捉到報警信息,自動根據(jù)聯(lián)動規(guī)則庫對應(yīng)的聯(lián)動子系統(tǒng)、聯(lián)動區(qū)號、位號,聯(lián)動優(yōu)先級、位置狀態(tài)和順序號控制聯(lián)動對象動作,并自動推出確認(rèn)界面,當(dāng)報警確認(rèn)后系統(tǒng)再按照順序執(zhí)行剩下的聯(lián)動動作,如打開燈光、視頻等動作。以安防視頻監(jiān)控系統(tǒng)與電子圍欄系統(tǒng)聯(lián)動控制為例示意圖如圖4所示。安防視頻監(jiān)控系統(tǒng)通過區(qū)號位號固定攝像機位置,推出視頻界面,供工作人員分析查看。
3 結(jié)論
通過多異構(gòu)聯(lián)動專家系統(tǒng)的設(shè)計,實現(xiàn)了某電站現(xiàn)有多異構(gòu)系統(tǒng)之間聯(lián)動同步工作。與傳統(tǒng)方案相比,本系統(tǒng)具有靈活性、可擴充性、自學(xué)習(xí)及自修正能力,系統(tǒng)能夠不斷對自己的知識進行擴充、完善和提煉,隨時修正已有的知識或歸納出新的知識,適應(yīng)新情況的需要。經(jīng)現(xiàn)場檢驗,該系統(tǒng)能夠進行智能、準(zhǔn)確、實時工作,所有報警信息各系統(tǒng)內(nèi)100%共享,各系統(tǒng)之間的協(xié)調(diào)同步率達到100%,由于用戶可以自己構(gòu)建和調(diào)整規(guī)則,擺脫了對系統(tǒng)設(shè)計工程師的依賴,所以極大地降低了系統(tǒng)的維護成本。其它產(chǎn)業(yè)集群也可結(jié)合自身產(chǎn)業(yè)特色發(fā)展適合的基于專家系統(tǒng)的聯(lián)動模式。
參考文獻:
[1]雷琦,宋豫川,李先旺.語義網(wǎng)關(guān)支持下的異構(gòu)系統(tǒng)集成框架及其關(guān)鍵技術(shù)[J].重慶大學(xué)學(xué)報,2010,33(11):27-32.
[2]張煜東,吳樂南,王水花.專家系統(tǒng)發(fā)展綜述[J].計算機工程與應(yīng)用,2010,46(19):43-45.
[3]L.Dymova,P.Sevastianov,K.Kaczmarek.A stock trading expert system based on the rule-base evidential reasoning using Level 2 Quotes[J].Expert Systems with Applications,2012,39(8):7150-7157.
[4]潘玲琳.基于產(chǎn)生式規(guī)則的專家系統(tǒng)的研究實現(xiàn)[J].計算機技術(shù)與發(fā)展,2007,17(5):66-68.
[5]Lyu J J,Chen M N.Automated visual inspection expert system for multivariate statistical process control chart[J].Expert Systems with Applications,2009,36(3):5113-5118.