本人初步了解,很可能有错,欢迎指正
1.rate算法简介
Rete匹配算法是一种进行大量模式集合和大量对象集合间比较的高效方法,通过这种方法找出所有匹配各个模式的对象。
Rete算法以牺牲内存换取高速的策略Rete算法分为两个部分:规则编译(rule compilation)、运行时执行(runtime execution).
1.1 规则编译(rule compilation
这是一条规则,编译后如下图
rule "规则3:账户余额小于100的北苑路姓张的学生"when$account:Account(balance<100,type=Account.Type.学生)$customer:Customer(accounts contains $account)$addr:Addr(street="北苑路",customers contains $customer)thenprint("账户余额小于100的北苑路姓张的学生");end
编译后的rete网络,如下