Rete算法基本知识
一、 rete概述
1.Rete
Rete算法是一种前向规则快速匹配算法,是一个用于产生式系统的高效模式匹配算法,其匹配速度与规则数目无关。
注:Rete是拉丁文,对应英文是net,也就是网络。
2.产生式规则
产生式规则是一种常用的知识表示方法,它以"IF-THEN"的形式表现了因果关系。
例如
R1: IF 某动物是有蹄类动物 AND 有长脖子 AND 有长腿 AND 身上有暗斑点 THEN 该动物是长颈鹿(问题解决)
R2:IF 某动物是有蹄类动物 AND 身上有黑色条纹 THEN 该动物是斑马(问题解决)
……
R8:IF 动物是哺乳动物 AND 嚼反动物 THEN 该动物是有蹄类动物
……
R10:IF 某动物有奶 THEN该动物是哺乳动物……
以上一些产生式规则,给出"有奶"、“嚼反”、“长脖子”、“长腿”、"身上有暗斑点"条件(也称为事实 facts),就可以求解出问题的答案是“长颈鹿”。
3.产生式规则系统结构
在介绍Rete算法之前,简单介绍以下产生式规则系统的结构。如图所示,规则存储于产生式内存(Production Memory),需要评估的事实(facts)被插入工作内存(Working Memory)中,在其中被修改或撤出。一个含有大量规则和事实的系统可能导致在一次事实评估中,多条规则为真,这种情形被称为冲突。代理(Agenda)将使用冲突解决策略管理冲突规则的执行顺序。
二、相关概念
2.1 事实(fact):
事实:对象之间及对象属性之间的多元关系。为简单起见,事实用一个三元组来表示:(identifier ^attribute value)
2.2 规则(rule):
由条件和结论构成的推理语句,当存在事实满足条件时,相应结论被激活。一条规则的一般形式如下:
(name-of-this-production