亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        工業(yè)防危系統(tǒng)中規(guī)則引擎的設(shè)計及優(yōu)化

        2015-07-18 13:36:51劉健房志奇康衛(wèi)
        物聯(lián)網(wǎng)技術(shù) 2015年5期

        劉健++房志奇++康衛(wèi)

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

        關(guān)鍵詞:工業(yè)防危系統(tǒng);規(guī)則引擎;模式匹配器;位圖矩陣

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

        0 引 言

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

        目前大多數(shù)學(xué)術(shù)和工業(yè)都是針對如何提高規(guī)則引擎的匹配效率進(jìn)行研究。Rete算法是一種用于產(chǎn)生式系統(tǒng)的高效模式匹配算法,通過在內(nèi)存中建立一個Rete網(wǎng)絡(luò),以空間換取時間,充分共享匹配結(jié)果,從而實現(xiàn)高效匹配[1]。Drools是采用JAVA實現(xiàn)的一種基于Rete算法的面向?qū)ο蟮囊?guī)則引擎,同時利用XML的Conditons→Consequence節(jié)點表達(dá)If-Then句式[2]。在本文的研究中也是采用XML文件來存儲If-Then形式的專家規(guī)則。龐偉正等人[3]在Rete算法、Rete-OO算法的基礎(chǔ)上提出了一種改進(jìn)的 Rete網(wǎng)絡(luò)結(jié)構(gòu), 并對運用此 Rete 網(wǎng)絡(luò)來執(zhí)行推理任務(wù)的過程進(jìn)行了優(yōu)化,明顯提高了匹配效率。

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

        1 規(guī)則引擎介紹

        規(guī)則引擎的主要功能是實現(xiàn)事實庫與規(guī)則集的匹配,然后執(zhí)行那些由當(dāng)前數(shù)據(jù)對象激活的專家規(guī)則。規(guī)則引擎的結(jié)構(gòu)圖如圖1所示。它主要包括規(guī)則集容器、工作存儲器、模式匹配器和執(zhí)行器[4]。數(shù)據(jù)采集模塊能夠得到對象的數(shù)據(jù)值,根據(jù)數(shù)據(jù)值通過條件庫模塊獲得對象所對應(yīng)的狀態(tài),將“對象→狀態(tài)”加載到工作存儲器。

        圖1 規(guī)則引擎結(jié)構(gòu)圖

        2 規(guī)則引擎功能模塊

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

        2.1 工作存儲器

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

        2.2 規(guī)則集容器

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

        圖2 工作存儲器結(jié)構(gòu)

        2.3 模式匹配器

        模式匹配器是規(guī)則引擎中的核心組件,它聯(lián)系著工作存儲器和規(guī)則集容器,完成事實條件在規(guī)則集容器中的匹配工作,同時將匹配成功的規(guī)則結(jié)論傳送給執(zhí)行器,供其完成相應(yīng)的操作。

        在我們的規(guī)則引擎系統(tǒng)中實現(xiàn)了三種匹配算法,位圖矩陣匹配,二階矩陣匹配,直接匹配。

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

        表1 規(guī)則集示例

        結(jié)論 條件

        a b c d e f

        A 低危險 開啟 高臨界 無關(guān) 無關(guān) 高危險

        B 無關(guān) 關(guān)閉 低警告 無關(guān) 正常 無關(guān)

        C 低警告 無關(guān) 低臨界 高臨界 無關(guān) 正常

        2.3.1 直接匹配

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

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

        表2 規(guī)則條件轉(zhuǎn)換

        態(tài) 關(guān)

        閉 開

        啟 低

        險 低

        界 低

        告 正

        常 高

        告 高

        界 高

        險 無

        關(guān)

        轉(zhuǎn)換 0 1 2 3 4 5 6 7 8 9

        表3 規(guī)則集矩陣

        結(jié)論 條件

        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 二階矩陣匹配

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

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

        表4 位圖矩陣

        狀態(tài) 條件

        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

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

        2.4 執(zhí)行器

        執(zhí)行器能夠執(zhí)行匹配器返回的匹配成功的規(guī)則結(jié)論,并將執(zhí)行結(jié)果返回給主程序,以便其采取相應(yīng)操作。

        3 實 驗

        3.1 實驗環(huán)境介紹

        這個規(guī)則引擎是在Ubuntu 12.04系統(tǒng)下用Qt語言編寫的,規(guī)則庫采用XML文件進(jìn)行存儲。在聯(lián)想電腦上完成測試,電腦的CPU是 Intel? Core? 雙核,主頻是2.00 GHz,內(nèi)存RAM是2 GB。

        3.2 實驗結(jié)果分析

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

        圖3 各個算法的加載時間

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

        圖4 各個算法的匹配時間

        綜上所述,我們可以得出以下結(jié)論:

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

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

        4 結(jié) 語

        本文針對工業(yè)防危系統(tǒng)設(shè)計實現(xiàn)了一套規(guī)則引擎系統(tǒng),同時有針對性的對規(guī)則引擎關(guān)鍵環(huán)節(jié)——模式匹配器進(jìn)行了優(yōu)化,使得系統(tǒng)整體性能得到有效提高。

        參考文獻(xiàn)

        [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]龐偉正, 金瑞琪, 王成武.一種規(guī)則引擎的實現(xiàn)方法[J].哈爾濱工程大學(xué)學(xué)報,2005,26(3):385-389.

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

        亚洲毛片αv无线播放一区| 成人内射国产免费观看| 亚洲熟女乱色综合亚洲av| 99热免费观看| 精品国产一区二区三区久久狼| 国产自拍偷拍视频免费在线观看| 亚洲日韩久久综合中文字幕| 成 人 色综合 综合网站| 第九色区Aⅴ天堂| 亚洲av第一区国产精品| 久久不见久久见免费影院| 日韩av无码成人无码免费| 亚洲AV成人综合五月天在线观看| 中文字幕亚洲精品专区| 国产美女做爰免费视频| 免费现黄频在线观看国产| 白白青青视频在线免费观看 | 国产人妻熟女呻吟在线观看| 人妻夜夜爽天天爽| 超91精品手机国产在线| 成人免费播放片高清在线观看| 一区二区三区中文字幕p站| 亚洲一本到无码av中文字幕| 久久婷婷色香五月综合激情| 网红尤物泛滥白浆正在播放| 一本大道加勒比东京热| 91丝袜美腿亚洲一区二区| 亚洲aⅴ在线无码播放毛片一线天| 婷婷综合缴情亚洲狠狠| 中文字幕人妻一区二区二区| 内射口爆少妇麻豆| 亚洲国产精品久久久久久久| 亚洲一区二区观看网站| 国产精品一区二区三区在线蜜桃| 中国内射xxxx6981少妇| 99re6久精品国产首页| 日本一区二区在线播放视频| 免费a级毛片无码免费视频120软件 | 人妻系列无码专区久久五月天 | 撕开奶罩揉吮奶头视频| 久久婷婷综合色拍亚洲|