1943年,美国数学家波斯特(E.Post)首先提出产生式的概念。
1972年,纽威尔和西蒙在研究人类的认知模型中开发了基于规则的产生式系统。
目前产生式表示法已经成为人工智能中广泛应用的一种知识表示模式,尤其是在专家系统方面。
产生式通常用于表示具有因果关系的知识,用于表示事实、规则以及它们的不确定性度量,尤其适合用于表示事实性知识和规则性知识。
事实性知识产生式表示举例如下。
老李和老王是朋友:(friend,Li,Wang)。
老李和老王可能是朋友:(friend,Li,Wang,0.8)。
规则性知识产生式的基本形式是P→Q或IF P THEN Q。其中,P是产生式的前提,表明了该产生式是否可用的条件。P可以由AND、OR、NOT组合的逻辑表达式构成。Q是结论或操作,表明P条件满足时,应得出的结论或该执行的动作。
产生式和蕴含式的不同点在于:蕴含式是一个谓词公式,只能表示精确的知识,即只能表示真或假,它可以看作是产生式的一个特例;产生式不是谓词公式,其前提条件和结论可以是不确定的,所以它不仅可以表示精确的知识,也可以表示不精确的知识,比如置信度。产生式匹配既可以是精确匹配,也可以是近似匹配。
产生式也不同于程序设计中的条件语句,它可以比条件语句更复杂。
例如某条产生式规则如下。
r3:IF发烧AND咳嗽THEN肺炎(0.5)。
它表示如果出现发烧并且咳嗽,那么就有50%的可能性是得了肺炎。
一个产生式生成的结论可以供另一个产生式作为已知事实使用,把一组产生式组合在一起,相互配合、协同作用,就构成了产生式系统。产生式系统可以看作是一个简单的专家系统。
产生式系统一般由如图2.1所示的3个部分组成。
图2.1 产生式系统的基本结构(www.xing528.com)
(1)规则库。
规则库是用于描述相应领域内的知识的集合,存放的主要是过程性知识,用于实现对问题的求解。
(2)综合数据库。
综合数据库又称为事实库、上下文、黑板等,用于存放问题求解过程中各种当前信息的数据结构。
(3)推理机。
推理机又称为控制系统,由一组程序组成,负责整个产生式系统的运行,实现对问题的求解。它包含推理方式和控制策略。
控制策略就是确定应该选用什么规则或如何应用规则,通常包括匹配、冲突解决和操作三个方面。
匹配就是将当前综合数据库中的事实与规则库中的条件进行比较。因为可能同时有好几条规则的前提条件与事实相匹配,究竟该选哪一条规则,要进行规则冲突解决。
冲突解决的策略有很多种,比较常见的有以下四种。
专一性排序:如果某条规则条件部分规定的情况比另一条规则条件部分规定的情况更具有针对性,那么该条规则就具有较高的优先级。
规则排序:规则库中规则的编排次序本身就表示了规则的启用次序,也就是说在制定规则库时就已经考虑到优先级了,按照编排次序来选用规则。
规模排序:优先使用较多条件被满足的规则。
就近排序:把最近使用的规则放在优先的位置,也就是最近经常被使用的规则优先级设定为较高。
操作就是执行规则。如果是结论,将结论加入综合数据库中;如果是操作,则执行该动作。对于不确定性知识,在执行每一条规则时还要按一定的算法计算结论的不确定性。经过操作以后,当前综合数据库将被修改,其他的规则也有可能被启用。
在第1章中提到的用于医疗领域的MYCIN系统,拥有500多条规则,可以进行简单的推理,推理所用的知识就是用相互独立的产生式表示。这种产生式系统基本具有固定的知识表达方式和控制结构,与应用领域不相关。所以同样采用这种方式,后来设计出了用于建造专家系统的EMYCIN。1978年卡内基-梅隆大学开发的XCON也基于产生式系统。它大约有2500条规则,截至1986年,共处理了约80 000条指令,准确率达到95%以上,以至于当时引发了人工智能的第二次兴起。
后面将要介绍的其他一些知识表示方法也常常使用产生式系统的推理过程进行推理和求解。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。