Rete算法分析

下面我们通过图1从存储空间大小添加一个工作内存元素的开销以及删除一个工作内存元素的开销三个方面对Rete算法进行分析,通过这样的分析,不仅让我们对Rete鉴别网络的流程有一个直观的认识,而且让我们对Rete算法有一个更深刻的理解。

α0

 Root

α1

α2

αn

AM forα0

AM forα1

AM forα2

AM forαn

。。。。。。

。。

。。。。。。

β1

β2

。。。。。。

βn

β1存储区

β2存储区

。。。。。。

βn存储区

P

1一条规则的Rete网络实例

图中AM代表alpha存储器,Root是根节点,αi(0in)代表第iα节点,βj代表第j个β连结节点。在对Rete算法进行分析之前,我们先做一个假设,(1)只考虑肯定的条件;(2)只考虑一条规则;(3)常量匹配的概率约等于连接节点变量的一致性约束;(4)一个标牌只进入一个单一的节点,也就是说它只进入唯一的一个α存储器。

为了讨论的方便,这里我们先规定一些符号:我们用ai0in代表存储器αi的大小,bj(1jn)代表存储器βj的大小。用Mmn表示当一个标牌从第m个α结点进入鉴别网络时的匹配次数,Sn表示在有n+1个α存储器的存储空间的大小。pk1kn)表示标牌通过βk连结结点的概率。C代表一个规则中的条件的个数,P代表一个规则库中规则的数目,W代表工作存储器中事实的数量。在最坏情况下,用归纳法,第i(1≤ i ≤C-1)个双输入结点的β-存储器中有Wi标牌,每个标牌中含有i个工作存储器元素。因此总的比较次数为:

因此Rete算法基于标牌数目的工作存取器效率为OWc),同理可得,基于结点数目的规则库执行效率为(P),基于标牌数目的规则库执行效率也为(P),基于一次激活规则的工作存储器时间效率为OW2c-1)基于一次激活的规则库的时间效率为O(P)

下面我们来分析Rete算法的存储空间大小,从图3中我们可以得到,联结结点β1的存储区的大小是有α0的存储区和α1存储区的大小决定,则β1的存储区的大小为

b1=a0*a1*p1b2=b1*a2*p2=a0*a1*a2*p1*p2b3=b2*a3*p3=a0*a1*a2*a3*p1*p2*p3

以此递推下去可得:

则整个鉴别网络的存储空间大小为

下面我们来分析一下当添加及删除一个工作存储器元素WME时所需要匹配的次数首先我们来分析添加一个WME当一个WME进入α0此时相当于a0=1它要与a1中的内容进行匹配匹配次数k1a1此时b1=a0*a1*p1=a1*p1然后β1又α2与中的记录进行匹配匹配次数k2=ba1*p1*a2此时b2=b1*a2*p2=a1*p1*a2*p2以此类推下去可得则有

,同理可得:

 

WME从α2及以后结点开始,它就直接利用之前的匹配结果,如:

m2时,我们用通式来表示当一个标牌从第m个α结点进入鉴别网络时的匹配次数为:


我们假设添加一个标牌的开销为该标牌添加到每个α存储器的平均值,则有:

下面我们来分析删除一个WME的开销,当一个负标牌进入一个连结结点时会产生:(1)和连结结点相对应的存储器进行匹配并生产新的复杂的负标牌,该过程与添加一个WME的过程完全一致。(2)查找当前存储器一删除和该负标牌相匹配的标牌,该额外的操作在添加一个WME中是没有的。因此删除一个WME的开销比添加一个WME的开销多一个查找β存储器的开销。而查找一个β存储器的开销为:

                                                  

其平均查找开销为:

所以删除一个WME的平均开销为:Mn+Rn   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值