产生式表示法又称为产生式规则表示法。
产生式表示法是一种用规则来表示知识的方法。这个名词最早是由美国数学家波斯特在1943年提出的,他用一系列的替换规则定义了一种计算模型,每一条替换规则就叫作一个产生式。后来,这个概念经过了多次改进和扩展,被应用到了不同的领域,比如描述形式语言的语法,模拟人类思维的认知过程等。1972年,纽厄尔和西蒙在研究人类认知模型时开发了基于规则的产生式系统。现在,它已经成为人工智能中最常用的一种知识表示模型,许多成功的专家系统都采用它来表示知识,例如化学分子结构专家系统DENDRAL、传染病诊断专家系统MYCIN等。
产生式
产生式表示法是一种用规则来表示知识的方法。它可以表示事实、规则以及它们的不确定性,适用于事实性知识和规则性知识。
1.确定性规则知识的产生式表示
确定性规则知识的产生式表示有一个基本的格式,就是
IF P THEN Q
或者
P → Q
式中, P 是产生式的条件,用来判断这个规则是否适用; Q 是产生式的结果,用来说明当条件 P 成立时,应该得出什么结论或做什么操作。一个产生式的意思就是:如果条件 P 满足了,那么就可以得到结果 Q 或执行结果 Q 指定的操作。例如:
r 4 :IF 动物会飞 AND 会下蛋 THEN 该动物是鸟
这就是一个产生式。其中, r 是这个产生式的编号;“动物会飞AND会下蛋”是条件 P ;“该动物是鸟”是结果 Q 。
2.不确定性规则知识的产生式表示
不确定性规则知识可以用产生式的形式来表示,其基本格式如下:
IF P THEN Q (置信度)
或者
P → Q (置信度)
式中, P 是前提条件; Q 是结论;置信度是一个0到1之间的数,表示结论的可信程度。
例如,在专家系统MYCIN中有这样一条产生式:
IF 本微生物的染色斑是革兰氏阴性
本微生物的形状呈杆状
病人是中间宿主
THEN 该微生物是绿脓杆菌,置信度为0.6。
这意味着,如果当前提示中列出的三个条件都成立,那么结论“该微生物是绿脓杆菌”的可信程度为0.6。这里,0.6表示了知识的强度。
3.确定性事实性知识的产生式表示
确定性事实一般用三元组表示:
(对象,属性,值)
或者
(关系,对象1,对象2)
例如,老李的年龄是40岁,表示为(Li,Age,40)。老李和老王是朋友,表示为(Friend,Li,Wang)。
4.不确定性事实性知识的产生式表示
不确定性事实一般用四元组表示:
(对象,属性,值,置信度)
或者
(关系,对象1,对象2,置信度)
例如,老李的年龄很可能是40岁,表示为(Li,Age,40,0.8)。老李和老王不是朋友,表示为(Friend,Li,Wang,0)。
产生式是一种用来表示知识的形式,它由前提和结论两部分组成,也可以称为规则或产生式规则。前提是产生式的条件部分,也可以叫作条件、前提条件、前件或左部等;结论是产生式的结果部分,也可以叫作后件或右部等。这些术语在本书中通用,不再特别说明。
产生式和谓词逻辑中的蕴涵式有相似之处,但蕴涵式只是产生式的一种特例。产生式比蕴涵式更广泛,有以下两个方面的原因:
1)除了逻辑蕴涵,产生式还可以包含各种操作、规则、变换、算子、函数等。例如,“如果炉温超过上限,则立即关闭风门”就是一个产生式,但不是一个蕴涵式。产生式描述了事物之间的一种对应关系(包括因果关系和蕴涵关系),其应用范围很广泛。逻辑中的逻辑蕴涵式和等价式、程序设计语言中的文法规则、数学中的微分和积分公式、化学中分子结构式的分解变换规则、体育比赛中的规则、国家的法律条文、单位的规章制度等都可以用产生式表示。
2)蕴涵式只能表示确定性知识,其真值只能是真或假,而产生式不仅可以表示确定性的知识,还可以表示不确定性的知识。要判断一条知识是否可用,需要检查当前是否有已知事实与前提中的条件相匹配。对于谓词逻辑的蕴涵式来说,匹配必须是精确的。而在产生式表示知识的系统中,匹配可以是精确的,也可以是不精确的,只要按照某种算法计算出的相似度在预先指定的范围内就认为是可匹配的。
由于产生式与蕴涵式存在这些区别,因此它们在处理方法及应用等方面也有较大的差别。
为了严格地描述产生式,下面用巴克斯范式(Backus Normal Form,BNF)给出它的形式进行描述:
其中,符号“::=”表示“定义为”,符号“|”表示“或者是”,符号“[ ]”表示“可省略”。