RETE算法是当前比较流行的本体推理算法,目前效率最高的前向链推理(演绎法Forward—Chaining)算法,其核心思想是将分离的匹配项根据内容动态构造匹配树,以达到显著降低计算量的效果,是由美国卡耐基.梅隆大学的Charles L.Forby(1979年)在其博士论文中提出。
1.RETE算法来源
在推理系统中,效率是一个重要的问题,不管一个系统的其他方面如何好,如果推理匹配过程较长,导致用户响应时间过长,则这个系统就不会被使用。RETE算法正是为了解决规则模式如何快速匹配事实这一核心问题,它是作为Markov算法的改进而提出来的。Markov算法是由Markov发明,其基本思想就是把一组按优先级排序的规则顺序作用于输入串,如果最高优先级的规则不适用,则尝试次高优先级的规则,依次类推。如果最低优先级的规则不适用输入串或使用了一个终止规则,则算法结束。Markov算法具有明确的规则控制策略,它总是严格按照规则的优先级别来进行匹配,这对于规则数量较多或规则复杂的推理系统来说就是低效的,因为其每一次匹配过程都是针对整个知识库内容将其所有规则严格按照优先级别重新匹配一次。
2.RETE算法基本描述
RETE模式匹配算法是在模式利用推理机的时间冗余性和规则结构的相似性,通过保存中间去处来提高推理效率的一种模式匹配算法。它的实现就是通过存储不断循环匹配过程的状态,并且只重新匹配事实库中的新事实。
在模式匹配中,规则的前提中可能会有很多相同的模块