阅读更多
RETE算法正是利用了基于规则的专家系统所具有的时间冗余性。RETE的实现是通过存储不断循环中匹配过程的状态,并且,只重新计算在事实列表中发生了变化,又反映到本次状态中的变化。也就是说,如果在一次执行周期中,一组模式找到三个所需事实中的两个
,那么在下一周期中,就无需对已经找到的这两个事实进行检查,只有第三个事实才是需要关注的。仅当添加或 删除事实的时候。匹配过程的状态才被更新。如果添加,删除事实的数量与事实和模式的总数相比很小,那么匹配过程
会很快进行。最坏的情况是。如果所有的事实都改变了。。那么。所有的事实将与所有的模式进行匹配。
如果仅是事实列表进行更新。那么每条规则必须记住已与之匹配的事实。也就是说,如果一个新的事实与规则的第三个模式相匹配。那么头两个模式匹配信息必须存在以完成匹配过程。
这种状态信息指出了与某一规则中前面的模式相匹配的事实,它以规则的第一个模式为开始,以任一模式为结束。因此,一条有三个模式的规则对第一个模式,第一和第二个模式及第一,第二,第三
模式都有部分匹配。 一条规则的所有模式的部分匹配也是一个激活。另一种存储的状态信息称为模式匹配。当一个事实满足了任一规则中的单个模式而不需考虑在其他模式中可能脍限制匹配过程的变量时。则出现的就是模式匹配
PS:时间冗余性 :一般地说,一条规则的运行仅会改变事实列表中的少数事实,也就是专家系统中的事实随着时间变化很慢。在每次循环中,仅添加,删除很少一部分的事实,所以事实列表中的变化一般只影响到很少部分的规则
PS:通过利用规则中结构相似性的优点,RETE算法也会提高基于规则的系统的效率。结构相似性是指许多规则通常饮食了相似的模式或者模式群。利用这一特征,RETE算法通过将公共放在一起来提高效率,因为公共部分不必多次计算
事实与规则的匹配问题可分为两步,首先,当添加或删除事实的时,必须决定哪些模式是已匹配的,其次必须对跨模式的变量约束进行比较,以决定模式群的部分匹配
决定哪些事实已与哪些模式匹配的过程是在模式网络中进行的
一旦确定哪些模式与事实匹配,则必须要进行跨模式的变量约束比较以保证多个模式中所用的变量有致的值
ps:windows->preferences->general->Appearance->Label Decorations中的vss Plugin Team Decorator,勾选了.
还有就是vss选项了,在windows->preferences->team->vss,根据自己的需要勾选