转载自:
http://thinkinside.tk/2012/03/20/rule_engine_1.html
什么是规则
在现实生活中,规则无处不在。我们最长接触的是法律、法规和各种制度;对于企业级应用来说,第一步的业务调研中很重要的内容就是了解业务规则。在企业流程再造中,可能还会接触到流程规则。
在IT技术领域,很多地方也应用了规则,比如路由表,防火墙策略,乃至角色权限控制(RBAC),或者Web框架中的URL匹配。
不管是那种规则,都规定了一组确定的条件和此条件所产生的结果。
举一个例子,是纷繁复杂的保险费率计算中的一条规则:
IF
汽车是红色
车是运动型的
驾驶员是男性
驾驶员在16-25岁之间
THEN
保险费用增加20%
从这个例子可以看出:
每条规则都是一组条件决定的一系列结果
一条规则可能与其他规则共同决定最终结果。比如例子中的规则只产生了增量,还需要与确定基数的规则共同作用才能决定最终的费率
可能存在条件互相交叉的规则,此时有必要规定规则的优先级
推理机与规则引擎
规则作为一种知识,其典型运用就是通过实际情况,根据给定的一组规则,得出结论。这个结论可能是某种静态的结果,也可能是需要进行的一组操作。
这种规则的运用过程叫做推理。如果由程序来处理推理过程,那么这个程序就叫做推理机/推理引擎(Inference Engine)。推理机是专家系统(专家系统是人工智能的一个分支)的核心模块。
推理引擎根据知识表示的不同采取的控制策略也是不同的,常见的类型包括基于神经网络、基于案例和基于规则的推理机。其中,基于规则的推理机易于理解、易于获取、易于管理,被广泛采用。这种推理引擎被称为“规则引擎”。
在规则引擎中,将知识表达为规则(rules),要分析的情况定义为事实(facts)。二者在内存中的存储分别称为Production Memory和Working Memory,如下图:
rules和facts是规则引擎接受的输入参数,而规则引擎本身包括两个组成部分:Pattern Matcher和Agenda。Pattern Matcher根据facts找到匹配的rules,Agenda管理PatternMatcher挑选出来的规则的执行次序。在外围,还会有一个执行引擎(Execution Engine)负责根据Agenda输出的rules执行具体的操作。
其中Pattern Matcher是规则引擎负责推理的核心。和人类的思维相对应,规则引擎中也存在两种推理方式:正向推理(Forward-Chaining)和反向推理(Backward-Chaining)。
正向推理也叫演绎法,由事实驱动,从 一个初始的事实出发,不断地应用规则得出结论。首先在候选队列中选择一条规则作为启用规则进行推理,记录其结论作为下一步推理时的证据。如此重复这个过程,直到再无可用规则可被选用或者求得了所要求的解为止。
反向推理也叫归纳法,由目标驱动,首先提出某个假设,然后寻找支持该假设的证据,若所需的证据都能找到,说明原假设是正确的;若无论如何都找不到所需要的证据,则说明原假设不成立,此时需要另做新的假设。
规则引擎的作用
规则引擎可以将规则的定义从代码中分离出来,将推理过程封装到规则引擎内部进行处理,这带来几个好处:
规则外部化,即有利于规则知识的复用,也可避免改变规则时带来的代码变更问题
由规则引擎使用某种算法进行推理过程,不需要编写复杂晦涩的逻辑判断代码
开发人员的不需要过多关注逻辑判断,可以专注于逻辑处理
- 大小: 69.5 KB
- 大小: 47.5 KB
分享到:
相关推荐
规则引擎的核心在于能够定义、存储和执行一系列规则,这些规则可以影响应用程序的行为。通过使用WWF,我们可以创建自定义活动,每个活动都对应于一个特定的规则或规则的一部分。 描述中提到,“设计时的开发还没有...
在数据挖掘和机器学习领域,规则引擎常用于决策树算法,帮助系统根据预定义的条件做出决策。 决策树是一种监督学习方法,主要用于分类问题。在决策树中,每个内部节点代表一个特征或属性测试,每个分支代表一个测试...
Drools是一款强大的规则引擎,由Red Hat公司开发并维护,它主要用于实现业务规则的管理和执行。Drools提供了一种声明式的方式来定义业务规则,使得非技术人员也能理解和修改规则,从而降低了业务逻辑与代码的耦合度...
规则引擎是指一类可以根据预定义的规则对数据进行处理和分析的软件系统。这种系统通常具有强大的数据处理能力和灵活的规则配置能力。然而,传统的规则引擎产品通常不具备访问数据库的功能,这限制了规则引擎的应用...
总结以上知识点,规则引擎Ilog Jrules是一种企业级业务规则管理系统,它通过提供丰富的工具组件和强大的规则定义能力,帮助开发者实现业务规则的模块化管理与快速变更。安装和使用Ilog Jrules时,需要关注安装顺序、...
规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模块编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。 使用规则引擎的优势如下: 1、业务规则与系统代码分离,实现...
规则引擎作为一种强大的业务逻辑处理工具,它允许开发者以声明式的方式定义规则,使得复杂的业务决策能够被高效地执行和管理。本文将深入探讨规则引擎中的规则测试和轨迹跟踪功能,帮助开发者更好地理解和运用这一...
2. Drools:这是一个开源的Java规则引擎,支持Java Rule Language (JRL) 和 Decision Table 格式的规则定义。 3. BRMS(Business Rules Management System):商业规则管理系统,提供规则的创建、测试、部署和管理...
标题中的“规则引擎的实现”指的是在软件系统中用于处理业务规则的一种技术。规则引擎允许开发者将业务逻辑从应用程序代码中分离出来,使得业务规则可以独立于核心业务流程进行管理和维护,从而提高了系统的灵活性和...
- 规则引擎是应用程序内的组件,负责分离业务决策和应用代码,使用预定义的语义模块编排业务决策。 - 它接受数据输入,解释规则并作出决策。 4. **规则引擎的使用** - 开发人员通过API与规则引擎交互,包括加载/...
一个好的规则引擎能够清晰地定义和管理这些条件与操作,从而使整个业务流程更加高效。 #### 三、规则引擎的关键特性 1. **可配置性**:规则引擎的一个重要特性就是能够提供高度可配置的环境,让非技术人员也能轻松...
规则引擎是一种软件系统,它允许业务规则以声明式的方式进行定义,然后在运行时执行这些规则,以做出相应的决策。在核保场景中,这通常意味着根据预设的条件自动批准或拒绝保险申请。 首先,我们需要理解规则引擎的...
JSR-94(Java Specification Request 94)是为Java平台定义的一套规则引擎API标准,旨在促进规则引擎的互操作性和标准化。JSR-94 API提供了一种统一的方式,使开发者能够在不同的规则引擎之间切换,而无需大幅度修改...
Drools作为一款流行的开源规则引擎,支持多种规则定义方式,如规则、决策表、决策树,提供了良好的性能和扩展性,且拥有活跃的社区支持。 Drools的规则引擎主要由以下部分构成: 1. 规则文件的构成:规则通常以DRL...
Java规则引擎是一种强大的工具,它允许程序在运行时根据预定义的规则进行决策。规则引擎的核心概念是将业务逻辑从应用程序代码中分离出来,使得业务规则可以独立于系统进行管理和维护。这种分离使得规则的修改和扩展...
### Drools规则引擎的介绍及应用 #### 一、规则引擎概述 规则引擎是一种软件系统,用于执行基于预定义规则的决策逻辑。这些规则通常表示为业务规则,旨在模拟人类专家在解决特定问题时所遵循的逻辑过程。规则引擎...
【Drools规则引擎从入门到精通】 Drools是一个强大的业务规则管理系统,它提供了业务规则引擎、Web创作工具(Drools Workbench)以及决策模型符号(DMN)的支持。作为一个开源项目,Drools使用Java编写,遵循Apache...
在IT领域,规则引擎是一种软件系统,用于执行一套预先定义的业务规则,这些规则可以动态地改变而无需修改应用程序的源代码。规则引擎的核心概念包括规则对象、对象分类、规则包和规则集,它们共同构成了规则处理的...
1. 规则引擎的定义:规则引擎是基于特定规则集进行推理和决策的软件系统。它通常由规则库、规则引擎接口和解释器三部分组成。 2. 规则表示:规则通常采用IF-THEN格式,比如“如果满足条件A,则执行动作B”。这种...