阿里云计算课件.pptx

上传人(卖家):三亚风情 文档编号:3483223 上传时间:2022-09-05 格式:PPTX 页数:15 大小:578.35KB
下载 相关 举报
阿里云计算课件.pptx_第1页
第1页 / 共15页
阿里云计算课件.pptx_第2页
第2页 / 共15页
阿里云计算课件.pptx_第3页
第3页 / 共15页
阿里云计算课件.pptx_第4页
第4页 / 共15页
阿里云计算课件.pptx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、规则引擎是什么v起源于专家系统,人工智能领域的商业应用方向v基于产生式规则的推理系统,将领域知识和业务规则集合作为知识库进行存储和管理;规则引擎根据给定数据及知识库进行推理,执行相应规则,从而作出决策;v使用预定义的规则语言编写业务规则,将业务逻辑从应用程序中分离,业务规则更加可读、可编辑、动态可配置,从而应对复杂多变的商业规则;v嵌入到应用程序中的可复用计算组件。v适用场景:替换复杂嵌套难以维护的条件、分支语句;业务规则变化迅速,且不能经常重新编译和部署应用;必须由业务专家动态地维护和管理可变的业务规则和商业机密;计费系统、积分系统、知识推理系统等;规则引擎的组成(一)v产生式规则库(Pro

2、duction Memory):存放企业规则的可编译形式;v工作内存区(Working Memory):存放事实,对应于企业应用系统中的数据对象;v推理引擎(Inference Engine):决定哪些规则满足事实,并授予规则执行优先级,满足要求的待执行规则被加入议程。推理引擎由模式匹配器、议程和执行引擎组成。模式匹配器决定哪些规则满足事实,并授予规则执行优先级,满足要求的待执行规则被加入议程;议程使用指定的冲突消解策略,来决定已匹配的规则集的执行次序;执行引擎负责执行规则,输出结果。v模式匹配器(Pattern Matcher)是规则引擎的核心,决定着规则引擎实现的效率。一个经典而高效的算法

3、是 ReteOO 算法。规则引擎的组成(二)RETE 算法的基本思想是将产生式规则库预编译成一个规则匹配网络 RETE 网络。规则/规则流可以使用excel,xml,drl,rf 等多种格式存储和表达。规则引擎的组成(三)步骤一:应用程序启动规则引擎,激活指定的规则/断言集区。激活的规则/断言集被加载入内存,并通过规则/断言编译器,最终构建出规则匹配网络;步骤二:工作内存区从应用程序接收输入数据或对象,将其插入规则匹配网络,经过数据-规则匹配过程,产生完全匹配的集合;步骤三:选择器根据元规则集合提供的优先级描述从集合中选择出集合并包装成Activation实例集作为候选执行单位;步骤四:议程用

4、来管理Activation实例集合的活动,支持添加、删除和更新等操作。它将优先执行的Activation实例集合交给调度器;步骤五:调度器会预先从外部获取控制过程子例程集合。当接收到由议程传来的Activation实例集合时,通过一定的调度算法调度一个过程,并根据过程控制程序来选出将要执行的规则动作,交给解释器执行。此外,调度器还负责未能完成的Activation实例执行过程的调度处理。步骤六:解释器拥有一个执行栈,用于存放要执行的动作。当解释器执行完一个Activation时,就会从议程中删除已执行的Activation;如果有必要,会产生两种可能的附加结果和操作:或者更新工作内存区,并触发

5、新的数据到规则匹配网络中进行匹配;或者激活新的规则/断言集合,放入规则/断言编译器,更新规则匹配网络;步骤七:解释器依次执行完所有的Activation实例集合并输出结果,或者根据用户指定的执行策略执行Activation实例集合,并在指定时刻输出结果;步骤八:用户通过规则引擎提供的API接口取出结果,进一步由应用程序处理。RETE算法1.Charles L.Forgy 19822.多模式/多对象匹配3.前向推理4.产生式规则解释器5.美国国防高级研究计划局发起6.Artificial Intelligence 19 (1982)17-37前向推理是根据已有事实,不断地应用规则进行推理或者执行

6、动作,从而得出某些结论或结果,类似于演绎法;后向推理是首先进行假设和猜想,然后不断应用规则来寻找符合假设的事实,从而证明或否定假设或猜想,类似于回溯法。分析判断系统通常采用前向推理,而证明诊断系统通常采用后向推理。RETE 算法-基本概念v产生式:亦称规则,指一条由IF-THEN表述的语句,其中包括规则条件及规则动作;v规则条件:通常称为LHS,是产生式的IF部分的表达,其中含有待匹配的“模式”元素;v规则动作:通常称为RHS,是产生式的THEN部分的表达,含有当规则被激活和调度时要执行的操作;v对象:用来匹配产生式的事实或数据,在面向对象的语境中统称对象;v工作内存:全局数据区,包含运行时将

7、会插入、删除或更新的对象;当工作内存区插入、删除或更新对象时,都将引发事实在规则集合中的匹配过程。v冲突集:冲突集是一个集合,其中的每一个元素都是一条规则及与之完全匹配的对象集合。Rule LHS:$account:Account(balance100,type=STUDENT),$customer:Customer(account contains$account)rule Award“Rule ID ruleflow-group award_punish“Rule Attribute when LHS emp:Employ(awardPunish=award)then RHS System

8、.out.println(exec rule Award.);emp.setPercent(1.10);endRETE 算法 预编译匹配网络RETE算法通过对指定产生式集合的LHS部分,即规则条件部分,构建起一个RETE匹配网络,从而避免对规则集合的重复遍历,提高匹配效率。例如:有如下几条规则的LHS:R1 P:a=1,b=1 R2 P:a=1,b=2 R3 P:a=2,b=1 R4 P:a=2,b=2 R5 P:b=1 R6 P:b=1,T:p=P假设有对象P1(a=2,b=1),T1(p(a=1,b=1)依次插入到工作内存。RETE算法 七种基本节点和四种结构七种基本节点类型:【RETE

9、Node】RETE网络的根节点,默认入口点,任何插入的token都要经过此节点进入RETE匹配网络 【EntryPointNode】RETE根节点的后继节点,它将进入的token创建多个副本并分发到其所有的后继节点(类型检测)【ObjectTypeNode】对象类型检测节点,即判断分发的事实副本是否属于某个类的对象,不满足的直接被丢弃 【AlphaNode】第一级匹配节点,用于匹配单个对象的单个属性 【LeftInputAdapterNode】适配器节点,用于为匹配AlphaNode类型的对象创建元组并将其加入BetaNode节点的左工作区,是通向BetaNode类型的入口点。【BetaNod

10、e】第二级匹配节点,用于匹配多个对象之间的属性约束联系,BetaNode通常有两个工作区,分别称为左工作区和右工作区。左工作区用于存放匹配前驱AlphaNode类型或BetaNode类型的元组,右工作区用于存放匹配AlphaNode类型的对象。【TerminalNode】叶节点类型。当元组和对象集合完全匹配某个规则中的模式时,就会到达该节点,并创建包含该规则及匹配对象集的元组。这些元组将在适当的时候加入到议程中获得调度和执行。四种结构:【Alpha匹配网络】负责单对象单属性的模式元素匹配,由大量AlphaNode类型的节点集合组成;【Alpha内存区】负责存储Alpha匹配网络中匹配Alpha

11、Node模式元素的对象集合;【Beta匹配网络】负责多对象多属性的模式元素组合匹配,由大量BetaNode类型的节点集合组成;【Beta内存区】负责存储从Alpha内存区或Beta内存区中进入的仅匹配BetaNode模式类型中的部分模式元素的对象集合 RETE 算法 三种匹配网络RETE算法 四种匹配子例程 RETE网络的匹配过程由一个总控制程序进行调度,当对象token副本到达Alpha匹配网络,或者Alpha内存区或者Beta匹配网络,或Beta内存区,均会激发相应的子例程,从而实现对象在RETE网络中的匹配过程。可以采用观察者模式实现。Alpha 匹配网络子例程匹配网络子例程 对进入的对

12、象进行类型测试和单属性测试,并将匹配的对象传入对应的Alpha内存区,接着,调用相应的Alpha内存子例程。Alpha 内存区子例程内存区子例程 当有满足单对象单属性的对象进入Alpha内存区时,首先将其加入到所匹配模式元素的对象集合中,然后调用与之相连的每一个BetaNode的右激发子例程。Alpha内存区可以通过对所有的类型检测模式、单属性模式建立全局索引表,从而提高匹配效率,通常可以达到O(1)的效率。因此,规则引擎的匹配效率主要取决于Beta网络的匹配效率。BetaNode 子例程子例程 BetaNode 具有两个子例程:左激发子例程和右激发子例程。当匹配BetaNode部分模式元素的

13、元组进入与之相连的父Beta内存区时,就会调用左激发子例程,查找是否有对象满足给定模式;当匹配BetaNode部分模式元素的对象进入与之相连的Alpha内存区时,就会调用其右激发子例程,查找是否有元组满足给定模式。若找到,则将相应的元组和对象包装成更大的元组,传入与之相连的子Beta内存区,并激发相应的Beta内存区子例程。Beta 内存子例程内存子例程 当有元组进入Beta内存区时,就会激发Beta内存子例程。Beta内存区首先将元组加入到所匹配模式元素的对象集合中,然后将其传入与之相连的每一个BetaNode,调用其左激发子例程。Beta内存区同样可建立一个全局索引表来提高匹配效率。Jav

14、a 开源规则引擎 Drools JBoss Drools基于Rete算法的改进形式Rete-算法,增加了对面向对象的支持,支持声明式程序设计以及使用领域特定语言(Domain Specific Languages,DSL)来描述用户问题域,是一个非常完善而出色的规则引擎产品。提供了丰富而完善的规则/规则流语言支持提供了面向对象支持支持规则LHS表达中的函数定义和插入特性支持大规模的规则处理支持规则流的定义和执行提供了基于WEB的BRMSGuvnor 规则引擎实现的最小子集vdrools-api-5.1.1.jar 提供了应用程序与JBoss Drools规则引擎进行交互的接口。主要包括:规则资

15、源的加载、编译与全局知识库的创建生成;与工作区的交互;启动规则引擎进行应用会话;查询计算结果;提供选项配置和改变规则库及规则引擎的某些行为等。此外,还提供日志功能,知识库显示,规则匹配情况等vdrools-compiler-5.1.1.jar 提供了构建知识包的功能。它将外部的可编辑的文本形式的规则文件加载到内存,转换为规则的内部表示,构建RETE网络,输出可用于部署的二进制规则包vdrools-core-5.1.1.jar Drools规则引擎的核心实现vdrools-bpmn2-5.1.1.jar 提供了XML格式的规则流文件的支持,这有利于规则流文件的自动生成和管理规则引擎的优势u逻辑表

16、达与执行的分离。逻辑表达与执行的分离。业务逻辑的实现可以细分为业务逻辑的表达和执行。在传统代码中,表达与执行是混在一起的,均是由代码来表达和执行;而在基于规则和规则引擎的系统中,规则用于逻辑表达,引擎进行执行。逻辑表达与执行分离了;u基于规则的系统中,基于规则的系统中,系统的正确性取决于规则的正确性。系统的正确性取决于规则的正确性。规则就像一系列表达“KNOW-HOW”的小片,通过将规则片合理的组合起来(规则流的作用),从而表达完整的计算逻辑。规则、规则流和规则引擎是核心概念;u动态可配置的计算逻辑,具备固有的可扩展性。动态可配置的计算逻辑,具备固有的可扩展性。由于计算逻辑通过规则来表达和实现

17、,而规则是动态可配置的,这就使得计算逻辑是动态可配置的。这对于复杂多变、要求快速部署的现代商业应用是非常具有潜力和优势的;u规则比代码更具可读性。规则比代码更具可读性。如果将规则生成和管理系统做到更人性化,就可以让用户(通常是业务人员和业务专家)通过编写规则和规则流来创建应用逻辑了。u规则具备自解释性。规则具备自解释性。可以跟踪规则的执行,清晰地看到最终计算结果的产生过程。而在传统代码中,虽然能够打印出一些语句,但是受程序结构限制,通常仅限于程序员来调试。u计算组件的复用性。计算组件的复用性。规则用于表达,引擎用于执行。业务逻辑的多变性通常体现在表达上,而不是执行上。因此,表达部分是多变的,而

18、执行部分是相对稳定的。规则引擎是计算组件中的可复用部分。u策略与机制的分离。策略与机制的分离。在软件设计的角度来说,这也体现了策略与机制的分离。规则表达是策略,引擎是机制。策略可变,机制稳定。人类专家、基于规则引擎的解决方案和传统计算方案的对比人类专家在计算智能和自适应性上具有很大的优势,其不足之处在于计算效率慢,难以胜任大量的计算工作;基于规则引擎的计算方案汲取了人类专家的“经验和智慧”,具备一定的智能性,同时计算效率要远高于人类专家;传统方案:仅在计算效率方面略高于前者,而在其它方面都有难以比拟的劣势。参考文献vForgy C.L.Rete:A fast algorithm for the

19、 many pattern/many object pattern match problemJ/OL.Artificial Intelligence,1982,19:17-37vDoorenbos RB.Production matching for large learning systemsD.CMU-CS-95-113,1995vFrederick Hayes-roth.Rule-based systemsJ/OL.Communications of the ACM,1985,28(9):921-932vEdson Tirelli,Mario Fusco,Tihomir Surdilovic.Drools Expert User Guide EB/OL.vMichal Bali.Drools JBoss rules 5.0 developers guideM.Packt Publishing Ltd.,2009vJava开源规则引擎分类列表EB/OL.http:/www.open- Drools official online siteEB/OL.http:/drools.org/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(阿里云计算课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|