Rete算法

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)将使用冲突解决策略管理冲突规则的执行顺序。
Rete算法_第1张图片

二、相关概念

2.1 事实(fact):
事实:对象之间及对象属性之间的多元关系。为简单起见,事实用一个三元组来表示:(identifier ^attribute value)
2.2 规则(rule):
由条件和结论构成的推理语句,当存在事实满足条件时,相应结论被激活。一条规则的一般形式如下:<

你可能感兴趣的:(算法,人工智能,python)