规则引擎开发现在已经演化成算法引擎了
每天要做的那些决策,比如定价、风险评估和合规性检查,还有贷款审批,或者给客户提供最合适的报价。
Together规则引擎的基本结构
规则引擎就是个程序,它用专家的知识来解决问题,给出答案。它也叫基于规则的管理系统或者决策管理系统DRMS。
推理算法就是规则引擎的大脑,它管理着一大堆规则和事实。它的工作原理就是用算法匹配规则和输入数据,然后给出结果或者解决方案。
比如说
规则1:一个人能申请汽车贷款吗?如果:1.他的月薪超过7万英镑。2.他的信用评分超过900分。那就批准汽车贷款。2.允许申请的贷款金额的60%。
规则2:一个人能申请汽车贷款吗?如果:1.他的月薪超过3.5万英镑。2.他的信用评分超过700分。那就批准汽车贷款。2.允许申请的贷款金额的90%。
规则的基本结构
规则就是一组条件,后面跟着一组动作或行动。它代表了系统的逻辑。规则主要以 if-then 形式表示。它主要包含两个部分,条件和动作。这个规则也叫生产。
规则 = 条件 + 动作
这个条件也被称为事实、前提。而动作也被称为结果。
规则引擎推理算法原理
Rete 算法:这是一种高效的模式匹配算法,广泛用于专家系统和规则引擎中。它通过构建一个网络结构,减少重复匹配的计算,提高处理大量规则和数据的效率。Rete 算法主要分为两个阶段:编制阶段和激活阶段。
1.编制阶段:把规则转换成一个网络,包含多个节点,每个节点代表规则中的条件。通过维护网络的结构,算法可以有效地处理规则的变化。
2.激活阶段:当数据输入时,算法通过网络结构迅速找到匹配的规则,并激活相应的规则,从而触发相应的动作。
Rete 算法的优势在于可以高效地处理复杂的条件匹配,特别是在规则和事实数量较多的情况下,能显著提高推理的速度。Rete 算法及其衍生算法Rete-II、Rete-III、Rete-NT、Rete-OO,是为规则引擎推理算法而生,历史悠久,而且不断迭代演进。
主流厂商的规则引擎大都采用Rete 算法及其衍生算法。因此Rete 算法已经成为行业的事实标准。
规则引擎适用场景
规则引擎主要用于执行基于条件的业务规则判断和决策,而不是实现通用逻辑算法。其核心能力与限制如下:
✅擅长处理的逻辑类型 | ❌ 不擅长的逻辑类型 |
1.条件分支逻辑 | 1. 复杂数学计算 |
通过规则条件(IF-THEN)实现多路径决策,例如金融风控中的贷款审批规则(信用分≥700且无黑名单记录则通过) | 缺乏高效处理微积分、矩阵运算等连续数学问题的能力,例如物理引擎模拟或深度学习算法 |
2.离散状态判断 | 2.流程控制型算法 |
对输入数据进行分类或标签化,如电商订单根据金额、用户等级匹配优惠策略 | 循环迭代(如排序、递归)、状态机控制等需代码实现的逻辑,规则引擎难以原生支持 |
3.简单计算整合 | 3.高性能数值处理 |
支持基础算术运算(如贷款金额≤月收入×0.5)或调用外部函数辅助决策 | 大规模数据实时计算(如流式聚合统计)通常需专用计算引擎(如Flink/Spark)而非规则引擎 |
规则引擎的主要功能形态
市面上主流的规则引擎或BRMS决策管理系统产品,功能大都是围绕着规则集以决策表、评分卡、决策树、决策流等形态构建规则逻辑,但不同厂家有各自不同的技术实现和模型规范,厂商间规范不统一通用。
其中,决策表是核心功能,评分卡、决策树、决策流是决策表的变种,是为了方便用户理解的规则集编辑和展现形态,大多厂商产品支持它们之间的相互转换。
市场需要支持更为复杂算法结构
随着企业信息化的发展,规则引擎从知识密集型、合规要求高的行业领域起源,比如金融、保险,后扩展到电商、医疗、物流、财务、法律、制造、企业管理等各个行业领域,不同的业务领域都有规则引擎的应用需求。同时随着商业智能、云技术的发展,这就要求规则引擎需要支持更为复杂算法结构,具有良好的扩展性。在此背景下标准化组织推动整个行业对决策模型和表示法标准的制定。核心价值主张是通过标准化通用语言、技能集、培训和支持模型来降低成本并缩短业务响应时间。
什么是DMN标准
旧有规则引擎功能结构本质上就是条件匹配,规则引擎由于上述场景限制,因此功能上无法满足复杂算法需求,规则都是围绕孤立规则片段组织,没有统一的规则语言、没有统一模型架构,而且没有统一的标准,因此规则引擎需要一场彻底的架构变革。在行业用户和IT厂商的推动下,DMN标准应运而生。
国际标准化组织OMG维护并制定的DMN标准重新定义了规则引擎的模型架构,在众多行业专家、厂商、用户的参与下历经十几年的发展已经非常成熟并被市场所接受,主流厂商的已经推出了新一代基于DMN标准的产品,如IBM DMOE、Oracle、Apache基金会、OpenRules等。
DMN是决策模型与符号(Decision Model and Notation)的缩写,是一种基于模型的语言,用于描述业务决策的逻辑。它是由OMG(对象管理组)发布并维护的一套独立于商业公司的国际业务决策建模标准。
重新定义的范式架构
Together规则引擎不同于传统的规则引擎或决策类引擎的范式架构,DMN标准采用全新的范式架构和执行方式使其具备了无与伦比的建模能力和计算性能,并继承改进了原有的决策表的核心功能。
DMN元素
DMN有一整套决策模型与符号规范,通过图形化、结构化的方式来定义业务决策的逻辑。用户通过图元块命名决策变量&函数名称,绑定数据类型,定义相互间的依赖调用关系,以装箱结构的形式直观的定义原来需要编码才能实现的复杂业务逻辑。
规则引擎的专有FEEL语言
DMN标准统一定义了规则引擎专有FEEL语言,它吸收了主流开发语言的各种优点,表达式非常简单,但实际上是一种功能强大的语言,具有许多内置函数和运算符;它非常适合做对象集合的操作,实现效果与代码开发无异。DMN最强大、最有用的功能之一是它能够在其本身表达式中处理列表和表,因此您无需退回到SQL、Java或流程模型做这些开发。
DMN元素元模型
DMN元素是决策模型元素的抽象超类。DMN元素具有抽象专业化 命名元素 和 表达命名元素 添加所需的属性名称,并包括抽象专业化商业上下文元素和DRG元素,以及具体专业化 定义、项定义、信息项、元素集合和决策服务。
元模型定义
定义类是DMN决策模型所有元素的最外层包含对象。它定义了所有包含元素的可见范围和名称空间。定义实例中包含的元素有自己定义的生命周期,并且不会随着其他元素的删除而删除。DMN文件的交换始终通过一个或多个定义进行。
Together规则引擎提供更强大的功能结构
DMN标准拥有强大的功能结构,使用图表化的建模方式,简约而不简单,无需编写任何代码,您就可以通过它构建任何代码所能实现的逻辑算法,并可以调用运行外部资源如JAVA类方法,机器学习算法,支持模型互引用,同时拥有媲美代码的执行效率。
脱胎换骨般的全新开发范式
Together规则引擎采用全新的开发范式,提供命令式、声明式或函数式,三种范式的混合,以简化业务用户的决策建模,同时支持构建更为复杂的算法,并赋予决策模型超高的执行性能。模型具有不透明、持续、无状态、无副作用的特性,提供无状态服务,适合轻量化部署。
拒绝匹配拥抱算法
Together规则引擎抛弃了传统规则引擎线性匹配的规则建模方式,但它包含了传统规则引擎