论文部分内容阅读
规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,它封装了很好的推理算法和冲突消解机制,能很好地解决规则的推理机制和规则条件匹配的效率问题。它实现了将业务规则从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。它接受数据输入,解释业务规则,并根据业务规则做出业务决策。目前世界顶尖的商用业务规则引擎产品如Ilog JRules、JESS、Drools基本上都是使用Rete算法。Rete算法采用模式匹配的方式进行推理不受规则数目的限制还可保留中间匹配结果,大大提高了推理效率,是目前为止效率最高的正向推理算法。但Rete算法存在以下不足: Rete算法在进行beta节点和α节点的连接时,当α节点为空时,会发生空连接.在匹配的过程中,事实数据相对很少,当规则数目众多的时候,就会出现大量的空连接,严重的影响系统的运行时间.因此,本文设计了一个动态连接的发方法对Rete算法进行了改进,并基于改进的算法设计一个基于Rete算法的规则引擎,并把它应用于物理电学试验诊断中。并对原算法和改进算法进行了实验对比,对比结果显示改进算法的性能在时间和空间上都有了很大提高。本系统是在Microsoft Visual C++6.0平台下开发的,采用ODBC数据库连接技术.本文的主要内容如下:(1)阐述了当今规则引擎技术的最新发展和存在的问题。分析了主流规则引擎使用的各种算法,比较了各种方式的优点和不足。主要分析了Rete算法的优点和不足,并指出有待改进之处。(2)针对Rete算法的不足提出了动态连接方法,动态的添加和删除空的join节点,解决了匹配过程中空连接的发生,缩短了系统的匹配时间,节约了空间,提高了推理效率。(3)根据改进的Rete算法设计了一个规则引擎,并以以小灯泡电学实验故障为例,实现了一个小的原型推理系统。