2.3 产生式表示法
产生式知识表示方法由美国数学家E.Post于1943年提出,他设计的Post系统,目的是为了构造一种形式化的计算模型,模型中的每一条规则称为一个产生式。所以,产生式表示法又称为产生式规则表示法,它和图灵机有相同的计算能力。目前产生式表示法已成为人工智能中应用最多的一种知识表示方法,许多成功的专家系统,比如费根鲍姆等人研制的化学分子结构专家系统DENDRAL等,都是用它来表示知识的。
2.3.1 产生式的基本形式
产生式通常用于表示具有因果关系的知识,其基本形式是
P→Q
或者
IF P THEN Q
其中,P是产生式的前提或条件,用于指出该产生式是否是可用的条件;Q是一组结论或动作,用于指出该产生式的前提条件P被满足时,应该得出的结论或应该执行的操作。P和Q都可以是一个或一组数学表达式或自然语言。
从上面的论述可以看出,产生式的基本形式和谓词逻辑中的蕴涵式具有相同的形式,但蕴涵式是产生式的一种特例,它们的区别如下。
(1)蕴涵式只能表示精确的知识,其真值或为真,或为假;而产生式不仅可以表示精确知识,而且还可以表示不精确的知识。
(2)在用产生式表示知识的智能系统中,决定一条知识是否可用的方法是检查当前是否有已知事实可与前提中所规定的条件匹配,匹配可以是精确的,也可以是不精确的,只要按照某种算法求出前提条件与已知事实的相似度达到某个制定的范围,就认为是可匹配的。但在谓词逻辑中,蕴涵式前提条件的匹配总是要求是精确的。
2.3.2 产生式表示知识的方法
产生式表示方法是一种比较好的表示法,容易描述事实、规则以及它们的不确定性度量,目前应用较为广泛。它适合表示事实性知识和规则性知识,在表示知识时还可以根据知识是确定性的或不确定性的知识分别进行表示。下面讨论如何用产生式表示各种类型的知识。
1.确定性和不确定性规则知识的产生式表示
确定性规则知识用前面介绍的产生式的基本形式表示即可。对不确定性规则知识的基本形式做一定的扩充,可以用如下形式表示:
P→Q(可信度)
或者
IF P THEN Q(可信度)
其中,P是产生式的前提或条件,用于指出该产生式是否是可用的条件;Q是一组结论或动作,用于指出该产生式的前提条件P被满足时,应该得出的结论或应该执行的操作。这一表示形式主要用在不确定性推理中,当已知事实与前提中的条件不能精确匹配时,只要按照“可信度”的要求达到一定的相似度,就认为已知事实与前提条件匹配,再按照一定的算法将这种可能性(或不确定性)传递到结论。这里“可信度”的表示方法及意义会由于不确定推理算法的不同而不同。
2.确定性和不确定性事实性知识的产生式表示
事实性知识可看成是断言一个语言变量的值或多个语言变量间的关系的陈述句,语言变量的值或语言变量间的关系可以是一个词,不一定是数字。比如“雪是白色的”,其中“雪”是语言变量,其值是“白色的”;“约翰喜欢玛丽”,其中“约翰”、“玛丽”是两个语言变量,两者的关系值是“喜欢”。
确定性事实性知识一般使用三元组(对象,属性,值)或(关系,对象1,对象2)来表示,其中对象就是语言变量,这种表示的机器内部实现就是一个表。比如事实“老李年龄是35岁”,便可以表示成:
(Lee,Age,35)
其中,Lee是事实性知识涉及的对象,Age是该对象的属性,而35岁是该对象属性的值。而“老李、老张是朋友”,可表示成:
(Friend,Lee,Zhang)
有些事实性知识带有不确定性和模糊性,若考虑不确定性,这种知识就可以用四元组的形式表示如下:
(对象,属性,值,不确定度量值)或(关系,对象1,对象2,不确定度量值)
比如不确定性事实性知识“老李年龄可能是35岁”,这里老李是35岁的可能性取90%,便可以表示成:
(Lee,Age,35,0.9)
而“老李、老张”是朋友的可能性不大,这里老李、老张是朋友的可能性取20%,可表示成:
(Friend,Lee,Zhang,0.2)
一般情况下,为求解过程查找的方便,在知识库中可将某类有关事实以网状、树状结构组织在一起,以提高查找的效率。
2.3.3 产生式系统的组成
把一组产生式放在一起,让它们相互配合、协同作用,一个产生式生成的结论可以作为另一个产生式的前提使用,以使问题得到解决,这样的系统称为产生式系统。
产生式系统通常由规则库、数据库和推理机这三个基本部分组成,它们之间的关系如图2.1所示。
图2.1 产生式系统的基本结构
1.规则库
规则库是用于描述某领域内知识的产生式集合,是某领域知识(规则)的存储器,其中规则是以产生式表示的,规则库中包含着将问题从初始状态转换成解状态的那些变换规则。规则库是专家系统的核心,也是一般产生式系统赖以进行问题求解的基础,其中知识的完整性和一致性、知识表达的准确性和灵活性以及组织的合理性,都对产生式系统的性能和运行效率产生直接的影响。
2.数据库
数据库又称为事实库,用来存放输入事实、外部数据库输入的事实以及中间结果和最后结果。当规则库中某条产生式的前提可与数据库中的某些已知事实匹配时,该产生式被激活,并把用它推出的结论存放到数据库中,作为后面推理的已知事实。显然,数据库中的内容是处在不断变化的动态当中的。
3.推理机
推理机又称为控制系统,由一组程序组成,用来控制、协调规则库与数据库的运行,包含了推理方式和控制策略。控制策略的作用就是确定选用什么规则或如何运用规则。通常从选择规则到执行操作要分三步完成:匹配、冲突解决和操作。
(1)匹配
匹配就是将当前数据库中的事实与规则中的条件进行比较,若相匹配,则这一规则称为匹配规则。因为可能同时有几条规则的前提条件与事实相匹配,究竟选哪一条规则去执行呢?这就是规则冲突解决,通过规则冲突解决策略选中的、在操作部分执行的规则称为启用规则。
(2)冲突解决
冲突解决策略有多种,其中比较常见的冲突解决策略有如下几种。
①专一性排序。若一条规则条件部分规定的情况比另一条规则条件部分规定的情况更有针对性,则这条规则具有较高的优先级。
②规则排序。规则库中规则的编排顺序本身就表示规则的启用次序。
③规模排序。按规则条件部分的规模排列优先级,优先使用较多条件被满足的规则。
④就近排序。把最近使用的规则放在最优先的位置,即那些最近经常被使用的规则的优先级较高。这是一种人类解决冲突最常用的策略。
(3)操作
操作是规则的执行部分,经过操作以后,当前的数据库将被修改,其他的规则有可能成为启用规则。
2.3.4 产生式系统的推理方式
产生式系统推理机的推理方式有正向推理、反向推理和双向推理三种。
1.正向推理
正向推理是从已知事实出发,通过规则求得结论。数据驱动方式也称做自底向上的方式。其推理过程如下:
(1)规则集中的规则与数据库中的事实进行匹配,得到匹配的规则集合。
(2)使用冲突解决算法,从匹配规则集合中选择一条规则作为启用规则。
(3)执行启用规则的后件。将该启用规则的后件送入数据库。
重复这个过程直至达到目标。
具体来说,如数据库中含有事实A,而规则库中有规则A→B,那么这条规则便是匹配规则,进而将后件B送入数据库。这样可不断扩大数据库,直至包含目标便成功结束。如有多条匹配规则,需从中选出一条作为启用规则,不同的选择方法直接影响着求解效率,选择规则的问题称做控制策略。正向推理会得出一些与目标无直接关系的事实,属于正常浪费。
2.反向推理
反向推理是从目标(作为假设)出发,反向使用规则,求得已知事实。这种推理方式也称做目标驱动方式或自顶向下的方式,推理过程如下:
(1)规则库中的规则后件与目标事实进行匹配,得到匹配的规则集合。
(2)使用冲突解决算法,从匹配规则集合中选择一条规则作为启用规则。
(3)将启用规则的前件作为子目标。
重复这个过程直至各子目标均为已知事实便成功结束。
如果目标明确,使用反向推理方式效率较高,所以常被人们所使用。
3.双向推理
双向推理是一种既自顶向下、又自底向上的推理方式,推理从两个方向同时进行,直至某个中间界面上两方向结果相符便成功结束。不难想象,这种双向推理较正向或反向推理所形成的推理网络更小,从而有更高的推理效率。
2.3.5 产生式表示法的特点
产生式表示法有以下特点:
(1)清晰性
产生式表示格式固定、形式简单,规则(知识单位)间相互较为独立,没有直接关系,使知识库的建立较为容易,处理较为简单。
(2)模块性
知识库与推理机是分离的,这种结构给知识库的修改带来方便,无须修改程序,对系统的推理路径也容易做出解释。基于这些原因,产生式知识表示法常作为建造专家系统首选的知识表示方法。
(3)自然性
产生式表示法用“如果……,则……”的形式表示知识,符合人类的思维习惯,是人们常用的一种表达因果关系的知识表示形式,既直观自然,又便于推理。另外,产生式既可以表示确定性知识,又可以表示不确定性知识,更符合人们处理日常问题的习惯。