譚寶龍 瞿潔 周俊
摘要: 由于企業信息化子系統開發時間的不同,許多子系統存在異構特征。異構系統通常獨立運行,系統之間缺少信息共享,各個子系統不能協調同步工作,實現系統之間聯動協同工作成為主要問題。本文建立了一個基于規則的專家系統,系統能夠不斷對規則庫的知識進行擴充和提煉,形成一個完善的規則庫。當已知的事實與規則的前提條件匹配時,異構系統啟動聯動控制策略,相應子系統聯動工作。這種方案開發周期短,易于維護,對企業異構系統的聯動控制具有一定借鑒參考意義。
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.
關鍵詞: 專家系統;規則庫;聯動
Key words: expert system;rule base;linkage
中圖分類號:TP182 文獻標識碼:A 文章編號:1006-4311(2016)05-0192-03
0 引言
隨著技術發展,企業會根據需求開發很多信息化系統,這些系統開發時間,開發廠商,操作系統,數據庫以及編程語言可能不同,導致不同系統間的信息交互難以實現[1]。以某電站物防技防信息系統為例,該電站目前含有安訪視頻監控系統、電子圍欄報警系統、智能門禁在線監測系統、工業電視集控中心系統、廣播系統、消防系統、燈光系統等7個子系統。這些系統信息的處理都是獨立進行,沒有形成聯動策略,這種信息處理方式忽視了各個系統之間的內在聯系及信息共享。因此,采用聯動協同控制策略實現系統的統一維護就顯得尤為重要。
由于異構系統聯動控制復雜度高,實現較為困難,至今還沒有非常成熟的解決方案。在此背景下,本文提出了基于專家系統的多異構系統聯動控制方案,將專家系統應用于某電站物防技防系統聯動處理中。該系統建有專家知識庫,當有新的需求規則生成時,系統可以根據新增加的規則,進行推理,并且可不斷對自己的知識進行擴充、完善和提煉,隨時修正已有的知識或歸納出新的知識。這種基于專家系統的多異構系統聯動控制方案,可以在不改變系統現有結構的情況下實現系統聯動,完成數據交互。這樣不僅開發周期短,工作量小,而且開放性好,易于以后開發和維護。
1 基于規則的多異構聯動專家系統設計
1.1 系統總體架構
基于規則的專家系統是個計算機程序,其內部含有大量的某個領域專家水平的知識與經驗,能夠利用專家的知識和解決問題的方法來處理該領域問題。它由知識規則庫、推理機、事實數據庫、知識獲取機制、解釋機制以及人機界面等幾個基本的部分組成[2]。系統的完整結構如圖1所示,其中箭頭方向為信息流動的方向。
系統工作模型主要包括兩大部分:知識規則庫和推理機。除此以外,還需要用來顯示結果的運行界面。
①規則庫:知識規則庫可被所有的規則訪問。在基于規則的專家系統中,知識用一組規則表達,每一條規則表達一個關系,具有IF(條件)THEN(結論)的形式,當規則的條件被滿足時,規則被觸發,執行動作。本文采用基于規則的產生式來表示,報警源,報警信息,聯動信息規則都存儲在規則表中。
②推理機:推理策略常采用前向推理和后向推理[3]。本文的多異構聯動專家系統采用前向推理策略,將已知的事實與規則的前提進行比較,觀察是否能夠匹配,如果不匹配,則用下一條規則匹配。如此重復下去,直到匹配成功。如果匹配成功,則該規則被啟用,并產生可推理事實。如果事實不是結論,則將此事實存入聯動知識數據庫。否則,輸出結果。其流程圖如圖2所示。
人機界面負責把用戶輸入的信息轉換成系統內規范化的表示形式,然后把這些內部表示交給相應的模塊去處理。系統輸出的內部信息也由人機界面轉換成用戶易于理解的外部表示形式顯示給用戶。
1.2 規則庫設計
1.2.1 規則表示數學模型
基于規則的專家系統模型中,任何規則的形式均包括兩部分:IF部分和THEN部分。它的表現形式是“IF...THEN...”。IF部分是前提條件,THEN部分是結論,即當前提條件成立時,才會得出結論[4]。規則的基本數學模型如下:
IF <前項>
THEN <后項>
通常,在基本數學模型之上可以擴充。規則可以包含多個前項,這些前項用關鍵詞AND(合取)、OR(析取)或者二者混合。合取與析取數學模型如下所示:
IF <前項1>
AND <前項2>
.
.
.
AND <前項N>
THEN <結論>
IF <前項1>
OR <前項2>
.
.
.
OR <前項N>
THEN <結論>
規則的后項部分也可包含多個語句,其數學模型如下:
IF <前項>
THEN <結論1>
<結論2>
.
.
.
<結論N>
前項部分包括兩部分:對象和值,用操作符連接。操作符識別對象并進行賦值。規則后項部分同前項類似,也可用數值型對象和簡單表達式。例如:
IF “A”> 10
THEN “B”= “A”* 2 / 3
知識庫中的每個規則按上述形式組建。運行過程中環環相扣,形成復雜的推理網絡,知識在推理網絡中得以傳遞,進行相應的分析和判斷。
1.2.2 規則庫構建
在基于規則的專家系統中,領域知識用一組IF-THEN產生式規則來表示,數據用當時情境下的一組事實來表示。推理機將存儲在知識庫中的規則與數據庫中的事實相匹配,如果一條規則的IF(條件)部分與事實匹配,即觸發該規則,執行THEN(結論)部分[5]。被觸發的規則可能由于添加新事實而改動事實集合。
知識規則庫中初始的報警規則是基于歷史報警記錄的基礎上,采用產生式規則來表示這些知識:
IF〈電子圍欄 Area 1 Location 001〉AND〈無高優先級報警信號〉THEN〈燈光系統打開〉AND〈安防監控攝像頭調出畫面〉
IF〈門禁系統 Area 2 Location 002〉AND〈無高優先級報警信號〉AND〈屬于禁區〉THEN〈關門動作〉AND〈工業電視攝像頭調出畫面〉
IF〈消防系統 Area 3 Location 003〉AND〈無高優先級報警信號〉THEN〈廣播系統動作〉AND〈消防攝像頭調出畫面〉
通過對用戶的使用習慣進行調查后,我們對各個系統進行分類編號,再以事實形成原子類,再將各個原子類歸類,可以提高工作效率。歸類劃分如下:
其中S表示報警源;L表示聯動對象。以某電站的7個異構系統為例,用字母表示如下:a代表電子圍欄系統;b代表安防視頻系統;c代表工業電視系統;d代表消防系統;e代表廣播系統;f代表門禁系統;g代表燈光系統。各子系統分類如表1所示。
按照上述子系統分類后,接著將規則原語表示如下:Area代表報警區號;Location代表報警位號;區域狀態用State表示,其中0代表一般工作區,1代表危險區,2代表禁區;條件關系符用Relation表示;報警優先級用Priority表示,數字越小,優先級越高。
經過分類表示后,報警規則表如表2所示。報警源會根據報警的優先級執行動作,數字越小優先級越高。報警到來時,先看有無更高級報警信號,若無則根據聯動知識庫,按添加順序依次執行聯動動作。若有更高優先級報警信號則優先執行高優先級報警動作,然后再執行此報警源動作。報警動作順序可根據需求進行調整。
為簡化系統設計,本系統的知識維護功能設計成從外部維護,即由用戶進行知識的修改、刪除、添加及一致性檢驗。用戶界面以表格的形式列出報警源,報警區號、報警位號、報警優先級、位置狀態、聯動對象供用戶進行定位查詢、添加、修改和刪除。這項操作一般是不允許隨意進行的。為此,系統設置了密碼保護,只有經過培訓的管理員才能進行此項操作。
1.3 規則推理
規則庫設計完成后,需要對規則進行推理。本文采用正向推理策略,正向推理過程可描述如下:
將規則庫中規則的前項同當前數據庫內容匹配,若匹配成功,則找到一條可用規則送入可用規則集S;否則,用下一條規則進行匹配。程序偽代碼如下:
Procedure respond
While S非空且問題未求解
Do
Begin
調用select-rule(S),從S中選擇一條規則,將該規則的結論添加到數據庫中。
調用respond。
End
推理機要完成推理,通常要對facts進行多次擴充,按擴充了的facts繼續從rules中選擇可用規則,每選擇一條可用規則,就把規則的后項中不在facts中的所有結論添加到facts中,對facts擴充,直至沒有可用規則可選。若找到一條可用規則對facts進行過一次擴充,則deduce返回t;否則,deduce返回nil。deduce用來表示正向推理機函數。
deduce函數定義如下:
(defun (deduce facts)
(prog (progress)
loop
(cond ( ( step-forward rules) (step progress t) )
( t ( return progress) ) )
(go loop ) ) )
其中step-forward函數用于逐次掃描規則庫rules中的規則,若發現rules中有一條可用規則,即該規則的前項包含的全部事實在表facts中,則把該規則的后項中不在facts中的所有結論添加facts中,且step-forward返回t。若rules中沒有一條可用規則,則step-forward返回nil。
知識規則庫編輯完畢并存盤后,啟動專家系統的執行文件便開始了對知識庫的檢查,包括檢查知識表達語法的正確與否,規則是否互相矛盾,若無錯誤則正常運行。當有一條以上的規則被觸發時,采用規則排序策略來解決沖突,即規則按優先級大小排序,先觸發的規則先啟用,只有第K條規則不能使用時,才考慮第K+1規則。這些規則可以動態的添加,刪除、修改。由于知識規則庫是以數據表的形式存在于關系數據庫中,因此,十分便于利用數據庫通用查詢語言SQL語言中的SELECT語句進行查詢,從而檢索出符合要求的結果集。
2 基于規則的多異構聯動專家系統實現
本項目建設的智能管理平臺以某電站的安訪視頻監控系統、電子圍欄報警系統、智能門禁在線監測系統、工業電視集控中心系統、廣播系統、消防系統、燈光系統等整合在一個用戶界面上統一管理,形成各子系統之間的聯動,便于應急響應,能夠極大地提高工作的效率。電站各子系統實現聯動后,一旦出現意外事件,相應系統便會啟動,引起相關人員注意,從而達到事前防范的目的。
根據項目要求,設計系統工作流程如圖3所示。當電子圍欄報警系統檢測到異常入侵信號時,智能管理平臺報警掃描軟件立即會捕捉到報警信息,自動根據聯動規則庫對應的聯動子系統、聯動區號、位號,聯動優先級、位置狀態和順序號控制聯動對象動作,并自動推出確認界面,當報警確認后系統再按照順序執行剩下的聯動動作,如打開燈光、視頻等動作。以安防視頻監控系統與電子圍欄系統聯動控制為例示意圖如圖4所示。安防視頻監控系統通過區號位號固定攝像機位置,推出視頻界面,供工作人員分析查看。
3 結論
通過多異構聯動專家系統的設計,實現了某電站現有多異構系統之間聯動同步工作。與傳統方案相比,本系統具有靈活性、可擴充性、自學習及自修正能力,系統能夠不斷對自己的知識進行擴充、完善和提煉,隨時修正已有的知識或歸納出新的知識,適應新情況的需要。經現場檢驗,該系統能夠進行智能、準確、實時工作,所有報警信息各系統內100%共享,各系統之間的協調同步率達到100%,由于用戶可以自己構建和調整規則,擺脫了對系統設計工程師的依賴,所以極大地降低了系統的維護成本。其它產業集群也可結合自身產業特色發展適合的基于專家系統的聯動模式。
參考文獻:
[1]雷琦,宋豫川,李先旺.語義網關支持下的異構系統集成框架及其關鍵技術[J].重慶大學學報,2010,33(11):27-32.
[2]張煜東,吳樂南,王水花.專家系統發展綜述[J].計算機工程與應用,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]潘玲琳.基于產生式規則的專家系統的研究實現[J].計算機技術與發展,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.