首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >规则引擎中Rete树的理想拓扑

规则引擎中Rete树的理想拓扑
EN

Stack Overflow用户
提问于 2015-11-26 17:51:34
回答 2查看 284关注 0票数 0

众所周知,许多规则引擎在处理规则时都使用Rete算法,该算法构造了一棵树,称为Rete树。

为了确保更好的规则处理性能,Rete树的理想拓扑是什么?换句话说,我想知道规则集应该更好地对应于哪种树拓扑结构,以获得更好的性能。

EN

回答 2

Stack Overflow用户

发布于 2015-11-27 03:39:39

简而言之,性能受规则和对象的数量、测试的数量、规则中测试的排序方式以及规则之间共享的测试/条件数量的影响。

您应该通过以下方式重写规则以获得最佳性能:

  • 对测试和条件进行重新排序,以便将最具区分性的条件移到规则的开头
  • Sharing conditions

请参阅Adjusting conditions IBM文档。

您还应该减少需要由规则评估的对象的数量,以及测试的数量。

有关Rete和IBM ODM的参考:

有关Rete树结构的示例,请参阅RetePlus network structure IBM ODM documentation

  • What affects the performance of a Decision Server application : RetePlus

RetePlus旨在优化对大量对象的大量规则的评估。RetePlus对测试进行过滤,以便不对不相关的测试进行评估。可以在使用类似测试的规则之间共享测试,这样就不需要为所有规则重新评估它们。

  • What affects the performance of a Decision Server application: Rule organization

可获得最佳结果:

不同对象上的通用测试是共享的。当单个评估包含太多变量定义和条件时,minimized.

  • Performance

  • 执行的测试数量会降低。

  • 测试使用的内存较少。
票数 2
EN

Stack Overflow用户

发布于 2016-04-30 03:16:22

简单地说,如果您想在编排中使用RetePlus算法,请只使用Decision Trees业务规则。

以这种方式使用它会快得多。尽管您可以与其他算法以及Sequential (在本例中用于Action Rules )结合使用。

因此,您的解决方案可以是Action Rules的一部分(使用Sequential),也可以是Decision Tables的一部分(使用RetePlus)。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33935384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档