具有相同显着性的几条规则的结果是什么?他们的执行顺序是否只是他们列出的顺序,或者这种行为是未定义的 - 也就是说,他们是否以任意顺序进行检查?我似乎无法找到有关内部处理的文档。流口水中的显着性
Q
流口水中的显着性
3
A
回答
12
简短的回答是,你不应该依赖相同显着性的规则触发顺序 - 如果它们“处于冲突状态”(即两者都有资格触发)。没有显着性的规则只是零的显着性,顺便说一句。
当然这是确定性的 - 它只是算法在版本之间可能会发生变化(尽管不太可能)。
这是在“冲突解决”的一般领域,并已写了很多。我无法找到关于Drools策略的最新文章 - 但我相信大部分内容都是“新近” - 即最近修改/插入的事实“获胜” - 或者更确切地说,涉及最近事实的规则将赢得胜利。如果毕竟它不能决定 - 通常是它们的规则被加载的顺序(这通常与它们在文件中的写法有关)。如果您必须订购 - 使用显着性,或者使用规则流程或类似方法,最好不要再猜测它是如何工作的。
1
我对Drools 5.1的使用经验是,它是最后的先出。也就是说,最后在你的drl中定义的规则将首先被执行。
但是,是的,依靠这样的行为不会是最好的主意:)
2
Rete算法使用的新旧程度和条件特异性。
相关问题
- 1. 互信息Python的显着性水平
- 2. 流口水:遇到流口水事件处理的问题
- 3. 流口水功能
- 4. Tomcat上的流口水
- 5. IKVM的流口水错误
- 6. 模拟R中t检验的显着性水平
- 7. 流口水:结果中的条件
- 8. 流口水和地图
- 9. 从流口水文件中激发选择性规则
- 10. 的R - 显着性水平加入相关热图
- 11. 在集合中不存在流口水
- 12. PHP fread ssh流显着慢
- 13. 创建一个流口水来列出其他口水中的所有规则
- 14. 流水线中的DirectX11像素着色器丢失
- 15. 为什么选择统计显着性水平为0.05?
- 16. 奇怪的流口水语法
- 17. 用junit测试流口水的方法
- 18. 对象列表的流口水验证
- 19. 动态的事实流口水guvnor
- 20. 流口水规则的意外输出
- 21. 使用ggplot2添加到矩阵相关热图中的显着性水平
- 22. android中的图像显着性检测
- 23. 规则中的显着性值(drl)
- 24. Java中显着的性能改进
- 25. 与流口水类加载故障
- 26. 使用流口水调用方法
- 27. 在web应用上流口水
- 28. 流口水搜索地图值
- 29. 方言错误消息流口水
- 30. Kendo窗口中的显示流
我从生产的角度对它没有真正的兴趣 - 我理解突出的目的,我永远不会依赖某个实现以特定顺序触发它们。对我来说,知道行为是否被定义完全是一个兴趣点。欢呼你的答案! – JBirch 2010-09-09 07:32:31
根据官方的JBOSS文档,具有默认显着性(或相等但不是默认)的规则将以任意顺序执行。如果行动的顺序很重要,就不应该依赖它。 (http://docs.redhat.com/docs/en-US/JBoss_Enterprise_BRMS_Platform/5/html-single/JBoss_Rules_5_Reference_Guide/index.html#sect-Activations_Agenda_Conflict_Sets) – Zec 2011-10-12 12:46:27
执行顺序在Drools 5.x期间的某个时刻确实发生了变化版本。我的规则只有在执行以某种顺序发生时才起作用,对我感到羞耻。幸运的是,我足够聪明地编写单元测试来捡起它。 – 2011-11-30 15:09:32