Rete快速匹配演算法

2021-04-12 19:11:28 字數 1539 閱讀 6509

rete

快速匹配演算法

rete

演算法首先是由c.l.forgy在2023年實現的。該演算法是乙個快速的模式匹配演算法,它通過儲存關於規則的資訊而獲得速度。

模式匹配的基本概念

1、可滿足規則:乙個規則稱為可滿足的,若規則的每一模式均能在當前工作儲存器中找到可匹配的事實,且模式之間的同一變數能取得統一的約束值。形式化地說,規則

if  p1,p2,

…pm  then  a1,a2,…an

稱為可滿足的,若存在乙個通代σ,使得對每乙個模式pi

,在工作儲存器中有乙個元素wi

滿足pi

σ=wi     i=1,2,3 …m

這裡,σ作用在某個模式的結果稱為模式例項,σ作用在整個規則的結果稱為規則例項。在專家系統中,可滿足的規則稱為標誌規則。

2、衝突集:由全體規則例項構成的集合稱為衝突集。也稱為上程表。

3、模式匹配演算法的任務是:給定規則庫,根據工作儲存器的當前狀態,通過與規則模式的匹配,把可滿足規則送入衝突集,把不可滿足的規則從衝突集中刪去

rete

演算法的基本思想

一、rete演算法快速匹配的重要依據是:(1)時間冗餘性.工作儲存器中的內容在推理過程中的變化是緩慢的,即在每個執行週期中,增刪的事實只佔很小的比例,因此,受工作儲存器變化而影響的規則也只佔很小的比例。由產生式系統的折射性,只要在每個執行週期中記住哪些事實是已經匹配的,需要考慮的就僅僅是修改的事實對匹配過程的影響。(2)結構相似性.許多規則常常包含類似的模式和模式組。

rete

演算法功能圖

二、rete演算法的基本思想是:儲存過去匹配過程中留下的全部資訊,以空間代價來換取產生式系統的執行效率。

rete

匹配網路結構

rete

演算法的核心是建立rete匹配網路結構。其由模式網路連線網路兩部分構成。其中,模式網路記錄每一模式各域的測試條件,每一測試條件對應於網路的乙個域結點,每一模式的所有域結點依次連起來,構成模式網路的一條匹配鏈。

rete

匹配網路過程

rete

網路匹配過程由模式網路上的模式匹配和連線網路上的部分匹配構成。在模式網路的機器內部表示中,我們把共享乙個父結點的所有結點表示成一條共享鏈。同時,把每一模式匹配鏈中的結點表示成一條下拉鍊,於是,每一結點由共享鏈和下拉鍊指向其後繼結點,模式網路就是一棵可以使用典型遍歷演算法進行測試的二叉樹。例如:

有規則(defrule exa-2

(match ?y red)

(data

green ?y)

(data ?y ?y)

(other ?y)

=>)

則此規則對應的模式網路和連線網路圖示如下:

規則exa-2對應的模式網路和連線網路示意圖

Rete演算法筆記

今天晚上看了一下rete演算法,感覺理解了,記錄如下 1,規則 rule 例如 if p then r 就是一條規則。其中p包含乙個或多個部分,具體表示如下 if p1 p2 p3 then r。其中p1 p2等部分的表現形式被抽象 泛化 為 on 或 and 等一般 形式,類似於c 中的模板類,在...

RETE演算法介紹

rete演算法介紹 一 rete概述 rete演算法是一種前向規則快速匹配演算法,其匹配速度與規則數目無關。rete是拉丁文,對應英文是net,也就是網路。rete演算法通過形成乙個rete網路進行模式匹配,利用基於規則的系統的兩個特徵,即時間冗 余性 temporal redundancy 和結構...

Rete演算法初解

rete匹配演算法是一種進行大量模式集合和大量物件集合間比較的高效方法,通過這種方法找出所有匹配各個模式的物件。rete演算法以犧牲記憶體換取高速的策略 rete演算法分為兩個部分 規則編譯 rule compilation 執行時執行 runtime execution 規則編譯 功能 如何在pr...