drools规则引擎3rete算法

本人初次了解,欢迎指正

1.rete算法

    1.规则编译:指根据规则集生成推理网络的过程

    2.运行执行:指将数据送入推理网络进行筛选的过程。

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--1fact--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算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值