规则引擎及Rete算法 漫话规则引擎(1): 推理机和规则引擎

我们知道,当规则变得复杂后,事实变得庞大后,有很多东西就很难绕清楚了,这个时候就需要算法来帮忙。很多规则引擎使用的算法都是rete算法,那么rete算法的核心思想是什么呢?rete算法其实是一个模式匹配算法,规则引擎的核心是Pattern Matcher(模式匹配器)。不管是正向推理还是反向推理,首先要解决一个模式匹配的问题。

正向推理又称为正向链接推理,其推理基础是逻辑演绎的推理链,它从一组表示事实的谓词或命题出发,使用一组推理规则,来证明目标谓词公式或命题是否成立。实现正向推理的一般策略是:先提供一批数据(事实)到总数据库中,系统利用这些事实与规则的前提匹配,触发匹配成功的规则(即启用规则),把其结论作为新的事实添加到总数据库中。继续上述过程,用更新过的总数据库中的所有事实再与规则库中另一条规则匹配,用其结论再修改总数据库的内容,直到没有可匹配的新规则,不再有新的事实加到总数据库为止。

规则引擎实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。
规则引擎具体执行可以分为接受数据输入,解释业务规则,根据业务规则做出业务决策几个过程,使用规则引擎可以把复杂、
冗余的业务规则同整个支撑系统分离开,做到架构的可复用移植。

通过一组生产规则组织逻辑,每个规则都有一个条件和一个动作。 https://martinfowler.com/bliki/RulesEngine.html

嵌入到程序中可以复用计算的组件。

相对于业务系统,规则引擎可以认为是一个独立于业务系统的模块,负责一些规则的计算等。
一般来说,规则引擎主要应用在下面的场景中:

  • 风控模型配置,风控是规则引擎
  • 用户积分等配置,如日常操作引起积分变化等
  • 简单的离线计算,各类数据量比较小的统计等

目前的规则引擎系统中,使用较多的开源规则引擎是Drools,另外还有商用的规则管理系统BRMS是ILOG JRules。

https://www.jianshu.com/p/a8f1c3b789f2  规则引擎之EasyRules

Rete算法首先是由c.L.Forgy在1979年实现的。该算法是一个快速的模式匹配算法,它通过存储关于规则的信息而获得速度。

模式匹配的基本概念

  1、可满足规则:一个规则称为可满足的,若规则的每一模式均能在当前工作存储器中找到可匹配的事实,且模式之间的同一变量能取得统一的约束值。形式化地说,规则

         if  P1,P2,…Pm  then  A1,A2,…An

http://media4.open.com.cn/L603/huashi/0803/rengongzryl/rule7.htm 

https://www.cnblogs.com/holbrook/archive/2012/03/20/2408526.html 漫话规则引擎(1): 推理机和规则引擎

https://www.cnblogs.com/holbrook/archive/2012/12/05/2803523.html

https://blog.csdn.net/rise51/article/details/51587916

https://blog.csdn.net/leslie_kwork/article/details/78201670

猜你喜欢

转载自www.cnblogs.com/songgj/p/8717879.html