没有beta网络的Rete网络?

时间:2017-08-26 11:37:31

标签: clips expert-system rete

我正在尝试为一个样本规则绘制一个Rete网络,该规则在不同模式的变量之间没有绑定。我知道测试网络用于确保不同模式的弯曲变量是一致的。

(defrule R1
  (type1 c1 c2)
  (type2 c3)
 =>
)

(defrule R2
  (type2 c3)
  (type3 c4 v1)
  (type4 c5 v1)
 =>
) 

在R1中,两种模式之间没有绑定变量,我应该如何将它们的结果合并到Rete网络呢? 在R2中,两个规则具有绑定变量,而第三个规则没有。如何结合网络中的三个规则? 我为这种情况搜索了Rete网络示例,但没有找到任何。我试图绘制网络,下面是我的网络。是不是?

更新:基于加里回答的新网络

enter image description here 感谢

1 个答案:

答案 0 :(得分:4)

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

您的图表应如下所示:

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