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

正向推理規(guī)則引擎中的Rete模式匹配算法研究

2012-11-09 06:04:19魏毅峰鄖陽師范高等專科學校數(shù)學與財經(jīng)系湖北十堰442000
長江大學學報(自科版) 2012年7期
關(guān)鍵詞:引擎規(guī)則

魏毅峰 (鄖陽師范高等專科學校數(shù)學與財經(jīng)系,湖北 十堰 442000)

正向推理規(guī)則引擎中的Rete模式匹配算法研究

魏毅峰 (鄖陽師范高等專科學校數(shù)學與財經(jīng)系,湖北 十堰 442000)

規(guī)則引擎技術(shù)是專家系統(tǒng)中的一種比較實用的技術(shù),它的核心算法是Rete模式匹配算法。深入研究了被廣泛應(yīng)用于正向推理規(guī)則引擎中的Rete模式匹配算法,對Rete網(wǎng)絡(luò)的構(gòu)建和Rete算法的執(zhí)行全過程進行了詳細分析。

規(guī)則引擎;正向推理規(guī)則引擎;Rete模式匹配算法

Rete算法的核心思想是通過在內(nèi)存中維護一個極其復雜的數(shù)據(jù)結(jié)構(gòu)Rete網(wǎng)絡(luò)來保存中間匹配結(jié)果,以達到顯著減少計算量的效果,即犧牲內(nèi)存空間來換取運行時間。Rete網(wǎng)絡(luò)的構(gòu)建主要是基于規(guī)則的LHS有很大的相似性的這個特點,通過保存規(guī)則的條件部分(也稱為左端,即LHS, left-hand side)的各個模式的匹配結(jié)果,以便別的規(guī)則直接利用該模式匹配結(jié)果,可以極大地減少重復的匹配運算,從而達到提升模式匹配效率的效果。當前,大部分規(guī)則引擎產(chǎn)品的模式匹配算法,基本上都來自于Charles L. Forgy博士于1979 年在其博士論文中提出的Rete算法及其變體, Rete算法是目前在正向推理規(guī)則引擎中的效率最高的一個模式匹配算法[1-2]。下面,筆者對Rete網(wǎng)絡(luò)的構(gòu)建和Rete算法的執(zhí)行過程進行了詳細的分析。

1 Rete網(wǎng)絡(luò)的構(gòu)建

Rete算法在進行模式匹配時,是根據(jù)預先構(gòu)建的Rete網(wǎng)絡(luò)來進行的[1]。Rete網(wǎng)絡(luò)的根節(jié)點是網(wǎng)絡(luò)的入口,非根節(jié)點有2種類型的節(jié)點:Alpha節(jié)點和Beta節(jié)點。由Alpha節(jié)點組成局部網(wǎng)絡(luò)稱為Alpha網(wǎng)絡(luò),由Beta節(jié)點組成的另一局部網(wǎng)絡(luò)稱為Beta網(wǎng)絡(luò)。每個非根結(jié)點都有一個存儲區(qū),用于保存模式匹配的中間結(jié)果。其中Alpha節(jié)點有一個Alpha存儲區(qū)和一個輸入口,Beta節(jié)點有左右2個存儲區(qū)和左右2個輸入口,左存儲區(qū)也稱為Beta存儲區(qū),右存儲區(qū)也稱為Alpha存儲區(qū)。在Alpha節(jié)點和Beta節(jié)點中,Alpha存儲區(qū)存儲的都是一組事實Fact,Beta存儲區(qū)存儲的都是一組Token,其中每個Token由一個或若干個事實Fact通過join,select,projection等操作合并而成。事實Fact可以做為Alpha節(jié)點的輸入,也可以作為Beta節(jié)點的右輸入,Token節(jié)點只能作為Beta節(jié)點的左輸入。每個Alpha節(jié)點或Beta節(jié)點都對應(yīng)這一個模式,葉子節(jié)點則對應(yīng)著某一條規(guī)則,因此從根節(jié)點到葉子節(jié)點的路徑對應(yīng)著該規(guī)則的LHS,當有Fact或Token被傳遞到一個葉子節(jié)點時,表示該規(guī)則的條件已經(jīng)滿足了,可以被觸發(fā)執(zhí)行。

Rete網(wǎng)絡(luò)的構(gòu)建過程如下所述:

1)創(chuàng)建網(wǎng)絡(luò)的根節(jié)點,根節(jié)點是Rete網(wǎng)絡(luò)的入口。

2)讀取規(guī)則庫中的一條規(guī)則,按照如下方式創(chuàng)建Alpha 節(jié)點和Beta節(jié)點到Rete網(wǎng)絡(luò)中。其中Alpha節(jié)點從1開始編號,Beta節(jié)點則從2開始編號。①讀取該規(guī)則的一個模式,檢查該模式的模板類型,如果是新的模板類型,則創(chuàng)建一個子節(jié)點,作為代表這一模板類型的類型節(jié)點(TypeNode)。②檢查該模式是否有對應(yīng)的Alpha節(jié)點已存在,如果存在則記錄下節(jié)點位置,否則添加一個新的代表該模式的Alpha節(jié)到網(wǎng)絡(luò)中。③重復②直到該規(guī)則的所有模式都處理完畢。④按照如下方式創(chuàng)建Beta節(jié)點:Beta(2)的左輸入節(jié)點為Alpha(1),右輸入節(jié)點為Alpha(2);Beta(i)左輸入節(jié)點為Beta(i-1),右輸入節(jié)點為Alpha(i),其中igt;2。⑤重復④直到?jīng)]有新的Beta節(jié)點需要創(chuàng)建。⑥將規(guī)則的執(zhí)行部分封裝成葉子節(jié)點,并且其輸入節(jié)點為Beta(n)。

3)重復2)直到規(guī)則庫中的所有規(guī)則都處理完畢。

2 Rete算法的執(zhí)行過程

Rete網(wǎng)絡(luò)構(gòu)建完畢之后,推理引擎將開始進行匹配操作,即把事實庫中的每一個事實Fact從Rete網(wǎng)絡(luò)的根節(jié)點輸入到網(wǎng)絡(luò)中進行匹配。不同的節(jié)點處理輸入進來Fact或Token所采取的策略也不同,下面是各個情況下的節(jié)點處理方法。

1)根節(jié)點的直接子Alpha節(jié)點也稱為類型節(jié)點(TypeNode),每個類型節(jié)點和一個事實模板一一對應(yīng)。當有新的Fact輸入到類型節(jié)點時,類型節(jié)點會判斷該Fact是否和自身所代表的事實模板匹配,若匹配則把Fact保存到該節(jié)點的Alpha存儲區(qū)中,并繼續(xù)向后繼子節(jié)點傳遞該Fact;否則該節(jié)點不采取任何動作,拒絕輸入的Fact。

2)當Fact被傳遞到某個Alpha節(jié)點,該節(jié)點會判斷輸入進來的Fact是否和該結(jié)點所代表的模式相匹配,若匹配則把Fact保存到該節(jié)點的Alpha存儲區(qū)中,并繼續(xù)向后繼子節(jié)點傳遞該Fact;否則該節(jié)點不采取任何動作,拒絕輸入的Fact。

3)當Fact被傳遞到某個Beta節(jié)點的右端時,該Beta節(jié)點會先把該Fact加入到它的Alpha存儲區(qū)中,然后對Beta存儲區(qū)和Alpha存儲區(qū)進行匹配操作,類似于關(guān)系數(shù)據(jù)庫中2個表之間的join,projection,selection等運算。若2個存儲區(qū)之間的運算有結(jié)果,則把該結(jié)果封裝為一個新的Token傳遞到后繼子節(jié)點的左輸入口中;否則該節(jié)點不采取任何動作。

4)當Token被傳遞到某個Beta節(jié)點的左端時,該Beta節(jié)點會先把該Token加入到它的Beta存儲區(qū)中,然后對Beta存儲區(qū)和Alpha存儲區(qū)進行匹配操作,類似于關(guān)系數(shù)據(jù)庫中2個表之間的join,projection,selection等運算。若2個存儲區(qū)之間的運算有結(jié)果,則把該結(jié)果封裝為一個新的Token傳遞到后繼子節(jié)點的左輸入口中;否則該節(jié)點不采取任何動作。

5)當Fact被傳遞到某個Beta節(jié)點的左端時,則將該Fact封裝成一個新的Token,然后按照4)的策略進行處理。

6)當Token被傳遞到某個葉子結(jié)點時,則表示該葉子節(jié)點所代表的規(guī)則成功被匹配,該規(guī)則和相應(yīng)的Token會被加入到議程器中等待進行沖突解決。

7)當Fact被傳遞到某個葉子結(jié)點時,則將Fact封裝成一個新的Token,然后按照6)的策略進行匹配。

3 算法實例與分析

下面通過一個簡單的例子來展示Rete算法的過程。假設(shè)系統(tǒng)中存在A、B、C和D 4個模板,每個模板都有一個共同的屬性ID;系統(tǒng)的事實庫中存在以下事實:A(00)、A(01)、B(01)、B(02)、B(03);系統(tǒng)的規(guī)則庫中存在以下3個規(guī)則:

Rule-1:If A(x) and B(x) then add C(x)

Rule-2:If A(x) and B(x) and C(x) then add D(x)

Rule-3:If A(x) and B(x) and D(x) then delete A(x)

圖1 Rete網(wǎng)絡(luò)實例

Rete算法會首先根據(jù)上述3條規(guī)則構(gòu)建如圖1所示的Rete網(wǎng)絡(luò)。在圖1中,Alpha網(wǎng)絡(luò)中的子節(jié)點的功能主要是根據(jù)傳遞進來的Fact的類型來對Fact進行分類,并把符合條件的Fact保存到自己的Alpha存儲區(qū)中。而Beta網(wǎng)絡(luò)中的節(jié)點都是雙輸入的,從左輸入的Token會被保存到該Beta節(jié)點的Beta存儲區(qū)中,從右輸入的Fact則會被保存到Beta節(jié)點Alpha存儲區(qū)中;每次當存儲區(qū)有新的Token或Fact進來之后,Alpha存儲區(qū)和Beta存儲區(qū)之間都會進行匹配運算,這類似于關(guān)系數(shù)據(jù)庫中的表的連接操作,若匹配成功則把該結(jié)果封裝為新的Token傳遞到后續(xù)子節(jié)點。

顯然,Rule-1規(guī)則會首先被觸發(fā)執(zhí)行,進而在事實庫中添加事實C(01)。C(01)從Rete網(wǎng)絡(luò)的根節(jié)點開始依次沿著路徑向下匹配,最終觸發(fā)Rule-2,創(chuàng)建事實D(01)到事實庫中。同樣的道理,D(01)從Rete網(wǎng)絡(luò)的根節(jié)點開始沿著路徑往下匹配,最后也觸發(fā)執(zhí)行Rule-3,進而刪掉事實A(01)。在整個過程中Alpha節(jié)點和Beta節(jié)點都保存了相應(yīng)的匹配中間結(jié)果,所以極大地加快了Rete算法的匹配速度。

[1]鮑金玲.基于規(guī)則引擎技術(shù)的Rete算法的研究[J].科技信息,2008(32):90-103.

[2]姜濤.Drools規(guī)則引擎的研究與應(yīng)用[EB/OL].http://www.paper.edu.cn/index.php/default/releasepaper/downpaper/,2008-12-14.

[編輯] 洪云飛

10.3969/j.issn.1673-1409(N).2012.03.031

TP311

A

1673-1409(2012)03-N093-03

2011-12-23

魏毅峰(1978-),男,1999年大學畢業(yè),碩士,講師,現(xiàn)主要從事模式識別與智能系統(tǒng)方面的教學與研究工作。

猜你喜歡
引擎規(guī)則
以學促干 挺膺擔當 激活砥礪前行的紅色引擎
撐竿跳規(guī)則的制定
數(shù)獨的規(guī)則和演變
規(guī)則的正確打開方式
幸福(2018年33期)2018-12-05 05:22:42
三生 三大引擎齊發(fā)力
讓規(guī)則不規(guī)則
Coco薇(2017年11期)2018-01-03 20:59:57
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
TPP反腐敗規(guī)則對我國的啟示
搜索新規(guī)則
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
主站蜘蛛池模板: 午夜久久影院| 欧美性猛交xxxx乱大交极品| 欧美激情第一欧美在线| 国产成人免费| 午夜福利在线观看成人| 亚洲看片网| 亚洲成人77777| 亚洲精品桃花岛av在线| 高清乱码精品福利在线视频| 在线国产毛片| 亚洲综合18p| 国产成人精品男人的天堂| 亚洲无码精品在线播放| 中文字幕免费播放| 极品国产一区二区三区| 囯产av无码片毛片一级| 亚洲日韩精品无码专区97| 国产精品永久不卡免费视频| 欧美中文字幕在线视频| 成人年鲁鲁在线观看视频| 91久久偷偷做嫩草影院电| 四虎永久免费在线| 91福利免费| 国产尤物在线播放| 精品中文字幕一区在线| 国产你懂得| 亚洲国产欧洲精品路线久久| 欧美va亚洲va香蕉在线| 国产SUV精品一区二区6| 亚洲另类国产欧美一区二区| 国产青青操| 人妖无码第一页| 免费看美女自慰的网站| 国产成人精品男人的天堂下载 | 亚洲一区免费看| 日本不卡在线| 午夜少妇精品视频小电影| 综合亚洲色图| 亚洲成人在线免费| 精品福利网| 九九免费观看全部免费视频| 亚洲国产天堂久久综合| 亚洲 欧美 中文 AⅤ在线视频| 精品亚洲欧美中文字幕在线看| 亚洲精品午夜天堂网页| 四虎永久在线精品国产免费| 国产精品9| 亚洲品质国产精品无码| 成人在线亚洲| 亚洲国产日韩欧美在线| 另类专区亚洲| www.91中文字幕| 亚洲Av激情网五月天| 国产美女免费网站| 99视频在线观看免费| 国产无码制服丝袜| 亚洲精品动漫| 欧美日韩精品综合在线一区| 亚洲swag精品自拍一区| AV无码一区二区三区四区| 久久香蕉国产线看观看精品蕉| 亚洲精品综合一二三区在线| 欧美精品亚洲精品日韩专区| 韩国福利一区| 欧美亚洲欧美区| 内射人妻无套中出无码| 久久精品视频亚洲| 操美女免费网站| 国产成人啪视频一区二区三区| 国产欧美综合在线观看第七页| 天天躁夜夜躁狠狠躁图片| 欧美日韩另类国产| 2020亚洲精品无码| 午夜福利网址| 久久久久夜色精品波多野结衣| 99ri精品视频在线观看播放| 午夜老司机永久免费看片| 亚洲午夜综合网| 欧美a级在线| 波多野结衣无码AV在线| 一级一级特黄女人精品毛片| a级毛片网|