规则演绎系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
每个否定符号~最多只用到一个谓词符号上,并反复
应用狄摩根律。如
以~A∨~B 代替~(A∧B)
以~A∧~B 代替~(A∨B)
以A代替~(~A)
以(∃x){~A}代替~(∀x)A
以(∀x){~A}代替~(∃x)A
3.对变量标准化
4.在任一量词辖域内,受该量词约束的变量为一哑元(虚构变量),它可以在该辖域内处处统一的被另
一个没有出现过的任意变量所代替,而不改变公式的真值。没有出现过的任意变量所代替,而不改变公式的真值。合适公式中变量的标准化意味着对哑元改名以保证每个量词有其自己唯一的哑元。如,把
5.(∀x){p(x)=>(∃x)Q(x)}
6.标准化而得到
7.(∀x){p(x)=>(∃y)Q(y)}
8.消去存在量词
9.在公式(∀y)[(∃x)P(x,y)]中,存在量词是在全称量词的辖域内,我们允许所存在的x
可能依赖于y值。令这种依赖关系明显地由函数g(y)所定义,它把每个y值映射到存在的那个x。这种函数就是Skolem函数。如y值映射到存在的那个x。这种函数就是Skolem函数。如果用Skolem 函数代替存在的x,我们就可以消去全部存
10.在量词(∀y)P[g(y),y]
11.Skolem函数的变量是由那些全称量词所约束的全称量词量化变量,这些全称量词的辖域包括要被消去
的存在量词的辖域在内。Skolem函数所使用的函数符号必须是新的,即不允许是公式中已经出现过的函数符号。如果要消去的存在量词不在任何一个全称量词的辖域内,那么我们就用不含变量的Skolem函数即常量。
例如,(∃x)P(x)化为P(A),其中常量符号A用来表示我们知道的存在实体。A必须是个新的常量符号,它未曾在公式其他地方使用过。
12.化为前束形
13.现在已不存在任何存在量词,而且每个全称量词都有自己的变量,把所有全称量词移到公式的左边,
并使每个量词的辖域包括这个量词后面公式的整个部分。所得公式称前束形。前束形公式由全称量词串组成的前缀和不含量词的母式组成。
14.把母式化为合取范式
15.任何母式都可以写成由一些谓词公式和谓词公式的否定的析取的有限集组成的合取。这种母式叫做合取
范式。反复应用分配率,如把
16.A∨{B∧C}化为{A∨B}∧{A∨C}
17.消去全称量词
18.所有余下的量词均被全称量词量化了。全称量词的次序也不重要了。因此,我们可以消去前缀。
19.消去连词符号∧
20.用{A,B}代替{A∧B},以消去明显的符号∧。反复代替的结果,最后得到一个有限集,其中每
个公式是文字的析取。任一只由文字的析取构成的合适公式叫
21.做一个子句。
22.更换变量名称
23.更换变量名称,是一个变量符号不出现在一个以上的子句中。
问题:
归结方法不自然,并非人类的自然思维方式
可能会丢失蕴涵关系中所包含的控制信息
例:以下蕴涵式:
~A∧~B→C ~C →A∨B
~A∧~C→B ~A →C∨B
~B∧~B→A ~B →A∨C
均与子句(A∨B∨C)等价,但显然上面的蕴涵式信息更丰富
二、规则演绎系统的定义:
其中,If部分可能由几个if组成,而Then部分可能由一个或一个以上的then组成。
在所有基于规则系统中,每个if可能与某断言(assertion)集中的一个或多个断言匹配。有时把该断言集称为工作内存。在许多基于规则系统中,then部分用于规定放入工作内存的新断言。这种基于规则的系统叫做规则演绎系统(rule based deduction system)。在这种系统中,通常称每个if部分为前项(antecedent),称每个then部分为后项(consequent)
先举一简单例子,帮助我们理解一下:
三、规则正向演绎系统
1、定义
正向规则演绎系统是从事实到目标进行操作的,即从状况条件到动作进行推理的,也就是从if到then 的方向进行推理的。
2、正向推理过程(步骤)
(1)事实表达式的与或形变换
把事实表示为非蕴涵形式的与或形,作为系统的总数据库。具体变换步骤与前述化为子句形类似。
注意:我们不想把这些事实化为子句形,而是把它们表示为谓词演算公式,并把这些公式变换为叫做与或形的非蕴涵形式。要把一个公式化为与或形,可采用下列步骤:
例如,我们有事实表达式(u)(v){Q(v,u)∧~[(R(v)∨P(v))∧S(u,v)]}把它化为
Q(w,A)∧{[~R(v)∧~P(v)]∨~S(A,v)}
(2)事实表达式的与或图表示
将上例与或形的事实表达式用与或图来表示,见图3.1。
公式的与或图表示有个有趣的性质,即由变换该公式得到的子句集可作为此与或图的解图的集合(终止于叶节点)读出;也就是说,所得到的每个子句是作为解图的各个叶节点上文字的析取。这样,由表达式
Q(w,A)∧{[~R(v)∧~P(v)]∨~S(A,v)}
得到的子句为
Q(w,A),~S(A,v)∨~R(v),~S(A,v)∨~P(v)
一般把事实表达式的与或图表示倒过来画,即把根节点画在最下面,而把其后继节点往上画。上节的与或图表示,就是按通常方式画出的,即目标在上面。
(3)与或图的F规则变换
这些规则是建立在某个问题辖域中普通陈述性知识的蕴涵公式基础上的。把允许用作规则的公式类型限制为下列形式:L=>W
式中:L是单文字;W为与或形的唯一公式。
将这类规则应用于与或图进行推演。假设有一条规则L=>W,根据此规则及事实表达式F(L),可以推出表达式F(W)。F(W)是用W代替F中的所有L而得到的。当用规则L=>W来变换以上述方式描述的F(L)的与或图表示时,就产生一个含有F(W)表示的新图;也就是说,它的以叶节点终止的解图集以F(W)子句形式代表该子句集。这个子句集包括在F(L)的子句形和L=>W的子句形间对L进行所有可能的消解而得到的整集。该过程以极其有效的方式达到了用其它方法要进行多次消解才能达到的目的。
我们也假设出现在蕴涵式中的任何变量都有全称量化作用于整个蕴涵式。这些事实和规则中的一些变量被分离标准化,使得没有一个变量出现在一个以上的规则中,而且使规则变量不同于事实变量。单文字前项的任何蕴涵式,不管其量化情况如何都可以化为某种量化辖域为整个蕴涵式的形式。这个变换过程首先把这些变量的量词局部地调换到前项,然后再把全部存在量词Skolem化
举例说明如下:将原规则转化成L=>W形式
公式(x){[(y)(z)P(x,y,z)](u)Q(x,u}
可以通过下列步骤加以变换:
(1) 暂时消去蕴涵符号(x){~[(y)(z)P(x,y,z)]∨(u)Q(x,u)}
(2) 把否定符号移进第一个析取式内,
(x){(y)(z)[~P(x,y,z)]∨(u)Q(x,u)}
调换变量的量词
(3) 进行Skolem化(x){(y)[~P(x,y,f(x,y))]∨(u)Q(x,u)}
(4) 把所有全称量词移至前面然后消去~P(x,y,f(x,y))∨Q(x,u)
(5) 恢复蕴涵式P(x,y,f(x,y))Q(x,u)
以下用一个自由变量的命题演算情况来说明如何把这类规则应用于与或图。
把形式为L W的规则应用到任一个具有叶节点n并由文字L标记的与或图上,可以得到一个新的与或图。在新的图上,节点n由一个单线连接符接到后继节点(也由L标记),它是表示为W的一个与或图结构的根节点。作为例子,考虑把规则S(X∧Y)∨Z应用到图4.5所示的与或图中标有S的叶节点上。所得到的新与或图结构表示于图4.6,图中标记S的两个节点由一条叫做匹配弧的弧线连接起来。
图 4.5 不含变量的与或图图4.6 应用一条规则得到的与或图