Rete网络没有测试版网络?
问题描述:
我想绘制一个示例规则的Rete网络,它在不同模式中的变量之间没有绑定关系。我知道beta网络用于确保不同模式中的弯曲变量是一致的。Rete网络没有测试版网络?
(defrule R1
(type1 c1 c2)
(type2 c3)
=>
)
(defrule R2
(type2 c3)
(type3 c4 v1)
(type4 c5 v1)
=>
)
在R1,有两个模式之间没有绑定变量,我应该如何的Rete网络中结合他们的结果呢? 在R2中,两个规则绑定变量,而第三个规则没有。如何结合网络中的三条规则? 我搜索了Rete网络例子的这种情况,但没有找到任何。我试图画出网络,下面是我的网络。这样对吗?
更新:根据Gary的回答
答
贝塔节点新的网络存储部分匹配,无论是否有需要检查的一致性模式指定的变量。变量绑定仅用于过滤存储在beta内存中的部分匹配。如果没有变量,则所有生成的部分匹配将被存储在beta内存中。
你的图应该是这样的:
a1 a2 a3 a4
\/\//
b1 b2 /
| \/
r1 b3
|
r2
感谢加里的答案。它为我澄清了图片。每个测试版节点之后是否应该有测试版内存,或者只有更多的联合操作?我的意思是,即使有最后一个连接节点,也必须有beta内存?我用一个修改后的网络更新了我的问题,请告诉我,如果这是现在。非常感谢 –
我不会说有一个规范的实施rete算法。有一些事情需要节点共享和部分匹配,但实现rete的各种工具使用差异技术。 Doorenbos的“大型学习系统的产品匹配”,http://reports-archive.adm.cs.cmu.edu/anon/1995/CMU-CS-95-113.pdf,对rete的不同实现有很好的概述。无论相关模式是否包含变量,测试版网络中的每个节点都将拥有与其关联的beta内存。 –