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

工業防危系統中規則引擎的設計及優化

2015-07-18 13:36:51劉健房志奇康衛
物聯網技術 2015年5期

劉健++房志奇++康衛

摘 要:規則引擎是業務規則管理系統的核心環節,它通過模式匹配器實現事實庫與規則庫的快速匹配,因此,一個準確高效的模式匹配器決定了這個規則引擎的整體性能。將規則引擎應用在工業防危系統中,同時利用位圖矩陣算法對規則引擎的模式匹配器進行優化,從而使得規則引擎準確高效的工作。實驗結果表明在相同條件下,位圖矩陣算法相對于直接匹配的方法效率平均提高了88.04%。

關鍵詞:工業防危系統;規則引擎;模式匹配器;位圖矩陣

中圖分類號:TP393 文獻標識碼:A 文章編號:2095-1302(2015)05-00-03

0 引 言

隨著工業化水平的不斷提高,控制技術難度逐漸增加,工業生產系統變得越來越復雜,一旦發生工業生產安全事故,將會造成極其嚴重的后果。因此,近年來工業生產過程中的安全問題受到了廣泛關注。為了降低企業生產過程中的安全隱患,減少企業安全事故的發生,防危系統被應用在電力、水利、核工業、石化、冶煉等領域。

目前大多數學術和工業都是針對如何提高規則引擎的匹配效率進行研究。Rete算法是一種用于產生式系統的高效模式匹配算法,通過在內存中建立一個Rete網絡,以空間換取時間,充分共享匹配結果,從而實現高效匹配[1]。Drools是采用JAVA實現的一種基于Rete算法的面向對象的規則引擎,同時利用XML的Conditons→Consequence節點表達If-Then句式[2]。在本文的研究中也是采用XML文件來存儲If-Then形式的專家規則。龐偉正等人[3]在Rete算法、Rete-OO算法的基礎上提出了一種改進的 Rete網絡結構, 并對運用此 Rete 網絡來執行推理任務的過程進行了優化,明顯提高了匹配效率。

本文將規則引擎應用在工業防危系統(例如,石灰石鍛燒系統)中,它的工作效率對這個系統的整體性能起到了至關重要的作用。因此,我們的工作重點是優化匹配算法,在保證匹配準確率的前提下,最大限度的提高規則引擎的匹配效率。

1 規則引擎介紹

規則引擎的主要功能是實現事實庫與規則集的匹配,然后執行那些由當前數據對象激活的專家規則。規則引擎的結構圖如圖1所示。它主要包括規則集容器、工作存儲器、模式匹配器和執行器[4]。數據采集模塊能夠得到對象的數據值,根據數據值通過條件庫模塊獲得對象所對應的狀態,將“對象→狀態”加載到工作存儲器。

圖1 規則引擎結構圖

2 規則引擎功能模塊

由于匹配器的性能決定著規則引擎的整體性能,我們的研究主要是針對匹配器性能的優化,因此需要詳細介紹匹配器的設計原理、工作模式等。

2.1 工作存儲器

工作存儲器存儲當前系統中的事實庫,每條事實由對象名和狀態構成,每條事實能夠為模式匹配器提供匹配條件。同時,工作存儲由條件庫模塊以及數據采集模塊支撐。如圖2所示,為了簡單處理,在我們仿真系統中共設置a-f 6個對象,它們分為開關量和模擬量:如果是開關量,那么采集的數值只有0(關閉)和1(開啟);如果是模擬量,它們的值分布在0~800之間,如果超過這個范圍系統會給出警告。然后把對象名和數據傳給條件庫模塊進行匹配,系統中條件庫模塊總共分為9個區域,分別對應低危險、低臨界、低警告、正常、高警告、高臨界、高危險、關閉和開啟,并且每個區域都有自己對應的取值區間。

2.2 規則集容器

在程序運行的開始首先需要解析XML文件,將解析出來的規則加載到內存中的規則集容器中。另外,在專家規則制定時,需要處理冗余、沖突等錯誤,然后將化簡后的最終結果存儲到XML文件中。因此,在規則引擎匹配得到要執行的規則結論時,一般規則引擎需要處理可能存在的沖突問題,而在系統中是將這些處理放在了專家規則庫的制定過程中,所以得到的規則結論都是最簡的且不存在沖突等問題的,當然要考慮規則結論執行的優先級問題。

圖2 工作存儲器結構

2.3 模式匹配器

模式匹配器是規則引擎中的核心組件,它聯系著工作存儲器和規則集容器,完成事實條件在規則集容器中的匹配工作,同時將匹配成功的規則結論傳送給執行器,供其完成相應的操作。

在我們的規則引擎系統中實現了三種匹配算法,位圖矩陣匹配,二階矩陣匹配,直接匹配。

如表1所示,給出了規則集示例,各個條件之間都是并且的關系,用&&表示,那么就會有If(a低危險 && b開啟 && c高臨界 && f高危險),Then 結論A。

表1 規則集示例

結論 條件

a b c d e f

A 低危險 開啟 高臨界 無關 無關 高危險

B 無關 關閉 低警告 無關 正常 無關

C 低警告 無關 低臨界 高臨界 無關 正常

2.3.1 直接匹配

在規則庫的制定過程中,會用&&對規則條件部分進行切分,例如規則1可以切分成“a低危險”,“b開啟”,“c高臨界”,“無關”“無關”,“f高危險”,然后存儲到XML文件中。在直接匹配過程中,規則引擎首先會將XML文件之前保存的這些切分元素加載到二維數組中,然后從工作存儲器中得到采集點a,b,c,d,e,f 所對應的狀態,將這些采集點對應的狀態與這個二維數組依次比對,并將匹配成功的規則結論返回給執行器。在直接匹配算法中采用的是字符串間的直接比較,由于某些規則與采集點無關,所以在比較每個采集點時,首先判斷規則與這個采集點是不是無關,然后再判斷兩者之間的關系。因此,如果規則集中有規則N條,那么總共的比較次數是12*N次。

如表2所示,為了形成規則集矩陣,需要對規則條件做一下轉換。表的第一行對應的是狀態,第二行是各個狀態所對應的數值。那么表1中的規則集就可以轉換成表3所示的二階矩陣。在規則庫制定過程中,將這個二階矩陣存儲到XML文件中。

表2 規則條件轉換

態 關

閉 開

啟 低

險 低

界 低

告 正

常 高

告 高

界 高

險 無

轉換 0 1 2 3 4 5 6 7 8 9

表3 規則集矩陣

結論 條件

a b c d e f

A 2 1 7 9 9 8

B 9 0 4 9 5 9

C 4 9 3 7 9 5

2.3.2 二階矩陣匹配

規則引擎首先從XML文件中將這個二階矩陣加載到一個二維數組中,然后從事實庫中調出采集點a,b,c,d,e,f所對應的狀態,并根據表2將各個狀態轉換成對應數值,與二階矩陣數組進行比較。直接比較采用的是字符串間的比較,每次要比較的字節數較多,而二階矩陣是字符間的比較,每次只比較一個字節,比較的字節數要少很多。同樣,如果規則集中有規則N條,那么二階矩陣總的比較次數也是12*N。

將表3轉換成位圖矩陣,如表4所示。表4的左欄對應0~8九個狀態,然后分別用這些狀態與表3中的值進行比對,遇到相同值或者9那么對應的結果都為1,否則為0。例如,狀態0與表3中的a所對應的值(2,9,4)進行比對,那么結果就應該是(0,1,0);與b所對應的值(1,0,9)進行比對,那么結果就是(1,1,0)。同樣,在規則庫的制定過程中,就將這些值依次存儲到XML文件對應的節點上。

表4 位圖矩陣

狀態 條件

a b c d e f

0 010 110 000 011 101 010

1 010 101 000 011 101 010

2 011 100 000 011 101 010

3 010 100 100 011 101 010

4 110 100 010 011 101 010

5 010 100 000 011 111 110

6 010 100 000 011 101 010

7 010 100 001 111 101 010

8 010 100 000 011 101 011

在位圖矩陣匹配過程中,首先將這個位圖矩陣加載到一個字符型三維數組中,再從事實庫中獲取各個采集點所對應的狀態數值,然后進行與運算。值得注意的是,三維數組中只要有一個是0,那么就不需要再往下比對了,運算的最后結果確定是0。例如,事實庫中a,b,c,d,e,f所對應的狀態向量為(0,0,4,3,5,2),對應的位圖矩陣中的數值是V0:[0][1][0],V1: [1][1][0],V2:[0][1][0],V3:[0][1][1],V4:[1][1][1],V5:[0][1][0]。我們按照字節從低到高依次比較,由于V0的第一個字節為0,那么就不需要再往下比對了,結果的低位肯定是0,因此節省了比對時間。同理,第二字節結果為1,由于V0的第三個高字節也為0,則結果就是0。因此最后的比對結果是[0][1][0],第一個字節位對應結論A,第二個字節位對應結論B,第三個字節位對應結論C,只有結果不為0才能激活對應結論。因此,根據與運算結果,只能夠激活B結論,并將其返回。

2.4 執行器

執行器能夠執行匹配器返回的匹配成功的規則結論,并將執行結果返回給主程序,以便其采取相應操作。

3 實 驗

3.1 實驗環境介紹

這個規則引擎是在Ubuntu 12.04系統下用Qt語言編寫的,規則庫采用XML文件進行存儲。在聯想電腦上完成測試,電腦的CPU是 Intel? Core? 雙核,主頻是2.00 GHz,內存RAM是2 GB。

3.2 實驗結果分析

從圖3中可以看出,隨著規則條數的增加,加載時間基本呈線性增長,位圖矩陣加載時間最長,二階矩陣加載時間相對最短。但是,規則加載只是在程序最開始一次完成,在正常的后續運行過程中就不需要再加載。

圖3 各個算法的加載時間

圖4顯示出在不同規則集大小的情況下,三種算法完成匹配所需的時間。在每個規則集下,三種算法都測試10次,然后取平均值,這樣能夠降低系統誤差。從圖4可以看出,隨著規則集的增大,匹配時間呈線性增加,但是相對于另外兩種算法,位圖矩陣算法的匹配時間增長非常緩慢,直接匹配的方法增加最快。

圖4 各個算法的匹配時間

綜上所述,我們可以得出以下結論:

(1)規則加載時間隨著規則條數呈線性增長,但是位圖矩陣匹配時間增加相對緩慢;

(2)根據圖4計算得出位圖矩陣相對于直接匹配算法,匹配時間平均提高了88.03%。

4 結 語

本文針對工業防危系統設計實現了一套規則引擎系統,同時有針對性的對規則引擎關鍵環節——模式匹配器進行了優化,使得系統整體性能得到有效提高。

參考文獻

[1] Charles L. Forgy. Rete: A Fast Algorithm for the Many Pattern/Many Object Pattern Match Problem[J]. Artificial Intelligence ,1982.

[2] PET ER L. Drools Usage Manual [ EB/ OL ]. http: / / drools.org / drools- manual- 2. 0 - beta - 13. pdf, 2004- 01-05.

[3]龐偉正, 金瑞琪, 王成武.一種規則引擎的實現方法[J].哈爾濱工程大學學報,2005,26(3):385-389.

[4]彭磊.規則引擎原理分析[J].福建電腦,2006(9):42-43.

主站蜘蛛池模板: 日韩在线影院| 国产成人啪视频一区二区三区| 国产精品成人第一区| 亚洲人成在线精品| 高清色本在线www| 在线观看国产黄色| 国产三区二区| 美女国产在线| 久久综合一个色综合网| 欧美国产精品拍自| 99r在线精品视频在线播放| 亚洲欧洲日本在线| 亚洲国产精品国自产拍A| 欧美色综合久久| 久久久久国产一区二区| 国产91无毒不卡在线观看| h视频在线播放| 国产不卡网| 日本午夜影院| 四虎精品国产AV二区| 日本一区高清| 第一区免费在线观看| 日韩在线欧美在线| 丁香六月激情综合| 亚洲人在线| 青草精品视频| Jizz国产色系免费| 女人av社区男人的天堂| 成人一区在线| 凹凸精品免费精品视频| 精品无码一区二区三区在线视频| 欧美午夜性视频| 九九热精品免费视频| 国产毛片高清一级国语| 激情视频综合网| 97国产在线视频| 尤物精品视频一区二区三区| 激情影院内射美女| 尤物精品视频一区二区三区| 国产午夜精品鲁丝片| 成人免费网站久久久| 国产毛片基地| 老司机精品一区在线视频| 欧美日韩综合网| 成人免费一级片| 欧美成人午夜影院| 精品一区国产精品| 日本成人不卡视频| 亚洲天堂区| 男人天堂伊人网| 欧美第一页在线| 国产高潮视频在线观看| 欧美成人国产| 99九九成人免费视频精品| 亚洲男人天堂2020| 亚洲欧美日韩色图| 91久久偷偷做嫩草影院免费看| 香蕉精品在线| 久久人与动人物A级毛片| 本亚洲精品网站| 麻豆精品视频在线原创| 一级毛片免费的| 影音先锋丝袜制服| 国产在线小视频| 欧美视频在线播放观看免费福利资源 | 97视频在线精品国自产拍| 国产精品无码制服丝袜| 国产色婷婷| 久久婷婷国产综合尤物精品| 久久精品无码专区免费| 国产精品视频a| 国产精品lululu在线观看| 一边摸一边做爽的视频17国产| 亚洲毛片在线看| www.国产福利| 婷婷六月综合网| 成人久久精品一区二区三区| 伊人91在线| 欧美第一页在线| 高潮爽到爆的喷水女主播视频 | 丰满人妻一区二区三区视频| 热久久综合这里只有精品电影|