本人初次了解,歡迎指正
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...