美文网首页
明策智能决策引擎:编写更简洁的规则

明策智能决策引擎:编写更简洁的规则

作者: 数智物语 | 来源:发表于2018-03-30 18:41 被阅读113次

    Charles Forgy博士曾在2013年举行的《今日决策》上做了有关如何更简洁地编写规则的演讲。

    作为Rete算法之父,规则引擎的实现者之一,Charles这次从用户的角度进行了切入。他发现在规则的表现形式上,一个根本性的改变正在发生,面向单一实例的规则正转变为面向集合的规则表现形式。后者的关键点在于规则会由一组条件而不再是单个条件进行触发。

           Charles对二者作了以下区分:

           在面向单一实例的规则中:

    条件可以设置成返回一组对象

    条件可以设置是从一组对象中选择一个对象

    条件也可以设置成为对象集合输出计算值

           当然,也可以将三者进行组合使用。

           相对而言,面向集合的规则就有如下几个特点:

    更加精确

    更加易于理解与管理

    解决方式更灵活多样

           两种形式对规则模型的性能表现都会有明显的影响。Charles以WaltzDB为例进行了说明。在这个作为行业标准的数据库中,其中有4条规则是面向实例的规则。程序每一次运行,都会有两条规则被触发,Charles测试时电脑上显示的结果是4.3秒的运行时间。然后,他用面向集合的方式重新梳理的这些规则,在同一个硬件环境下,规则模型的性能表现有了几何级的提升,从4.3降低到了0.1秒。

    当在WaltzDB上应用了面向集合的规则定义后,整体的运行时间从109秒降低到了63秒,在整体的可读性与可管理性上有了显著的提升。市面上一些流行的决策引擎,OPS/J,Jess, Drools以及SMARTS明策,都以各自的方式支持面向集合的规则呈现形式,只是在语法表现上有些许不同。

           对于面向集合的规则,Charles列出了他推荐的理由:

    面向集合的规则更精确且利于理解

    面向集合的规则可以提升规则模型的表现性能

    提供用户自定义的规则集合形式,能显著的提升规则的表达性

           接下来我们就结合SMARTS明策智能决策引擎做具体的介绍。

           我们相信对于商业客户来说,面向集合的规则将会是提升业务规则模型性能的强有力的工具。通常来说,待解决的业务问题可以用面向集合的规则形式进行呈现,比如:

    如果 客户购物车中包含一本杂志和两种不同类型的食品

    并且 客户在过去三周的消费超过了50美元

    那么 给客户提供X促销方案

           如果决策引擎不支持高效的面向集合的规则,那么此类业务规则就只能以复杂的迭代规则进行呈现,这对规则的管理将会是巨大的挑战,并不是业务人员可以处理的。

           SMARTS明策智能决策引擎提供高层架构来完美支持面向集合的规则,让业务规则拥有类似SQL一样的表达能力,并且可以被友好的嵌入到规则管理系统中。

    相关文章

      网友评论

          本文标题:明策智能决策引擎:编写更简洁的规则

          本文链接:https://www.haomeiwen.com/subject/iioicftx.html