drools規則引擎3rete演算法

2021-09-05 13:00:19 字數 916 閱讀 8732

本人初次了解,歡迎指正

1.規則編譯:指根據規則集生成推理網路的過程

2.執行執行:指將資料送入推理網路進行篩選的過程。

舉個栗子:

rule "規則:賬戶餘額小於100的北苑路姓張的學生"

when

$account:account(balance<100,type=account.type.學生)

$customer:customer(accounts contains $account)

$addr:addr(street="北苑路",customers contains $customer)

then

system.out.println("賬戶餘額小於100的北苑路姓張的學生");

end

2.1 rete網路的構建

第一步:先建立根節點

第二步:加入乙個規則

第三步:重複第二步,直到所有規則處理完畢

得到如下網路

2.1 資料送入rete網路進行篩選

fact資料

fact--1

fact--2

balance<100,type=學生,name="zhang",add="北苑路"

balance<100,type=學生,name="wang",add="北苑路"

進入第一條規則:留下fact-1,fact-2 ,存入記憶體中

進入第二條規則:留下fact-1,存入記憶體中

進入第三條規則:留下fact-1,fact-2,存入記憶體中

最後 留下了fact-1,那我只有fact-1符合,列印結果

參考:1. drools 7.xrete演算法

java規則引擎 之Drools之Rete演算法

一 規則引擎 規則引擎的核心是pattern matcher 模式匹配器 不管是正向推理還是反向推理,首先要解決乙個模式匹配的問題。對於規則的模式匹配,可以定義為 乙個規則是一組模式的集合。如果事實 假設的狀態符合該規則的所有模式,則稱為該規則是可滿足的。模式匹配的任務就是將事實 假設的狀態與規則庫...

規則引擎研究(一) Rete演算法(3)

4.6 連線節點 join node 當乙個連線節點的alpha記憶體中加入乙個事實時,將引發此連線節點的right activation,當乙個連線結點的beta記憶體中加入乙個token時,將引發此連線節點的left activation。連線節點的資料結構包括 指向其alpha記憶體和beta...

Drools規則引擎介紹

規則引擎起源於基於規則的專家系統,而基於規則的專家系統又是專家系統的其中乙個分支。專家系統屬於人工智慧的範疇,它模仿人類的推理方式,使用試探性的方法進行推理,並使用人類能理解的術語解釋和證明它的推理結論 規則引擎一般由3部分組成 規則庫 knowledge base working memory f...