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的回答

enter image description here 感谢

贝塔节点新的网络存储部分匹配,无论是否有需要检查的一致性模式指定的变量。变量绑定仅用于过滤存储在beta内存中的部分匹配。如果没有变量,则所有生成的部分匹配将被存储在beta内存中。

你的图应该是这样的:

a1 a2 a3 a4 
    \/\//
    b1 b2 /
    |  \/
    r1  b3 
      | 
      r2 
+0

感谢加里的答案。它为我澄清了图片。每个测试版节点之后是否应该有测试版内存,或者只有更多的联合操作?我的意思是,即使有最后一个连接节点,也必须有beta内存?我用一个修改后的网络更新了我的问题,请告诉我,如果这是现在。非常感谢 –

+0

我不会说有一个规范的实施rete算法。有一些事情需要节点共享和部分匹配,但实现rete的各种工具使用差异技术。 Doorenbos的“大型学习系统的产品匹配”,http://reports-archive.adm.cs.cmu.edu/anon/1995/CMU-CS-95-113.pdf,对rete的不同实现有很好的概述。无论相关模式是否包含变量,测试版网络中的每个节点都将拥有与其关联的beta内存。 –