2基本的推理方法(归结反演系统)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、基本的推理方法
经典推理---归结反演
9)子句变量标准化,即重新命名变量,使每个子句中的变量符号不同, 这是由于合式公式的性质(x)[P(x) Q(x)] (x)P(x) (y)Q(y), 上面的例子转变为 P(x) S(x,f(x)) Q(y) P(w) B(w) 可以证明,如果公式X遵从公式集S,则X逻辑上也应遵从由S转变为子句 形式得到的子句集。因此,用子句表示公式是一个完备的一般形式。
3、基本的推理方法
经典推理---归结反演
我们用有序对的集合S={t1/v1,t2/v2…,tn/vn}表示置换,其中ti/vi表示在表达式 中用ti代替vi。对一个变量在表达式中的每次出现,都应当用同一个置换项来代 替它。而且,一个变量不能用含有同一个变量的置换项来代替,例如用f(x)代 替x是不允许的。上述四个例所用的置换可表示为 P(x,f(y),B) P(z,f(w),B) 变量变量 s1={z/x,w/y} P(x,f(A),B) 常量变量 s2={A/y} P(g(z),f(y),B) 函数变量 s3={g(z)/x} P(C,f(A),B) 常量变量 s4=(C/x,A/y)
(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)消去存在量词 (x)(( y) ( P(x,y,f(x,y))) (u) Q(x,u)) (4)公式化为前束形,并略去全称量词 P(x,y,f(x,y)) Q(x,u))
将下列谓词演算公式转化为子句集。
(x){P(x) {( y)[P(y) P(f(x,y))] (y ) [Q(x,y) P(y)]}}
(x){P(x) {( y)[P(y) P(f(x,y))] (y )[Q(x,y) P(y)]}} (x){ P(x) {( y)[ P(y) P(f(x,y))] ( y )[Q(x,y) P(y)]}} (x){ P(x) {( y)[ P(y) P(f(x,y))] ( w )[Q(x,w) P(w)]}} (x){ P(x) {( y)[ P(y) P(f(x,y))] [Q(x,g(x)) P(g(x))]}}
3、基本的推理方法
经典推理---归结反演
(3)合一(Unify) 一个表达式的项可以是常量、变量或函数,合一就是寻找相对变量的置换,使 两个谓词公式一致。其中,置换可以简单地理解为是在一个谓词公式中用置换 项去置换变量。例如,为了使公式(x)P(x)与P(A)匹配,我们可以用常量 A代替变量x,从而使两个公式一致。置换的结果称为该表达式通过置换得到的 例。例如,表达式P(x,f(y),B)可通过不同的置换得到不同的例: P(z,f(w),B) 变量变量 P(x,f(A),B) 常量变量 P(g(z),f(y),B) 函数变量 P(C,f(A),B) 常量变量 上面最后一个例中没有变量,称为基例。
3、基本的推理方法
经典推理---归结反演
1)消去蕴涵符号 2)把否定符号移到每个谓词符号的前面 3)变量标准化 4)消去存在量词 5)将公式化为前束形 6)把母式化为合取范式。 (x)( (y)(z) 7)略去全称量词 (u) Q(x,u)) 8)把母式用子句集表示 9)子句变量标准化
P(x,y,z)
3、基本的推理方法
经典推理
推理就是依据一定的原则从已有事实推出结论的过程 .传统的 推理方法是以一阶谓词逻辑为基础的,其推理过程称为演译.一 个演绎推理系统主要由一个用一阶谓词逻辑表达的前提知识库 (公理)和一个控制并实施演译的推理机构组成. 演译推理主要用于自动定理证明,即从已知公理证明新的定理。 其中,影响最大的一种方法是 Robinson1965 年提出的归结 原理。这是一种简单且逻辑完备的定理证明方法。其核心是下 面的归结推理规则: (AB) (AC)BC
3、基本的推理方法
经典推理---归结反演
பைடு நூலகம்
如果存在量词不在任何一个全称量词辖域中,则该存在量词就不依赖于任何其他的变 量,因此可用一个常量代替,该常量应是原合式公式中没有的符号,因此有 (x)P(x) P(A) 根据以上所述,上例Skolem化的结果为 (x){[P(x) Q(x)] [S(x,f(x))Q(x)]} (w)[P(w) B(w)] 5)将公式化为前束形。所谓前束形,就是把所有的全称量词都移到公式的前部,由于 公式中已无存在量词,且所有的全称量词的约束变量完全不同,因此可以把所有的全 称量词放在公式前面,使每个量词的辖域都包括公式后面的整个部分。前束形的公式 就由全称量词串组成的前缀和称为母式的无量词公式组成。上例的前束形为 (x)(w){{[P(x) Q(x) ] [S(x,f(x)) Q(x)]} [P(w) B(w)]}
3、基本的推理方法
经典推理---归结反演
1.谓词演算基础 (1)概述 本节介绍谓词演算的一些基本操作,作为归结反演系统的基础。 在谓词演算中,利用推理规则可以从已知的一些公式 (公理)推导出新的公式,这 个导出的公式就称为定理。在推理过程中使用的规则序列就构成了该定理的一个 证明。在定理证明过程中,经常需要对量化的公式进行匹配操作,这就需要通过 变量置换使两个公式一致起来,这个过程称为合一。归结是一个重要的推理规则 ,它应用于称为子句的一种公式类。首先将介绍子句表示方法和合一过程,作为 引入归结概念的先导。
3、基本的推理方法
经典推理---归结反演
2)把否定符号移到每个谓词符号的前面,应用摩根定律及其他等价关系。 ( X1 X2) X1 X2 (X1 X2) X1X2 上例公式可写成: (x){[P(x) Q(x)] (y)[S(x,y)Q(x)]} (x)[P(x) B(x)]
3、基本的推理方法
经典推理---归结反演
6)把母式化为合取范式。合取范式就是子句的合取式,可以反复应用合式公式的分配 律实现从任一母式向合取范式的转换: X1(X2X3)(X1 X2)( X1 X3)、X1(X2 X3)(X1 X2) (X1X3) 上例可转化为:(x)(w){[P(x) S(x,f(x))]Q(x) [P(w) B(w)]} 7)略去全称量词。由于公式中所有的变量都是全称量词量化的变量,因此可以把全称 量词省去,母式中的变量仍然认为是全称量词量化的变量。 8)把母式用子句集表示,即把子句的合取表示为子句的集合,意义不变。上例的子句 形式可以表示为 p(x) S(x,f(x)) Q(x) P(w) B(w)
3、基本的推理方法
经典推理---归结反演
3)变量标准化,即使每个量词采用不同的变量,根据量词的性质(x)P(x) (y) P(y)和(x)P(x) (y)P(y),公式中的变量可以用其他变量符号代替,而不影响 公式的真值。因此有 (x){[P(x) Q(x)] (y)[S(x,y)Q(x)]} (w)[P(w) B(w)] 4)消去存在量词。考虑一个合式公式(y)[(x)P(x,y)],即对所有的y,总存在一个x 使P(x,y)为真。显然,这里的变量x的取值依赖于变量y的取值。因此可以把x记为 g(y),这个函数称为Skolem函数,用Skolem函数代替每一个存在量词量化的变量的过 程称为Skolem化。这里的函数g应是原合式公式没有的符号。因此有 (y)[(x)P(x,y)] (y)P(g(y),y)
置换的合成 ={t1 /x1, t2 /x2,… tn /xn, u1/y1,u2/y2…,un/yn} 若ti =xi,则删去ti /xi 当yi{x1,x2,…xn}时,删去ui/yi 例如: ={g(x,y)/z}, ={A/x,B/y,C/w,D/z} 用置换 ={g(A,B)/z,A/x,B/y,C/w,D/z} 去掉D/z,有 ={g(A,B)/z,A/x,B/y,C/w}
3、基本的推理方法
经典推理---归结反演
用置换s作用于表达式E所得到的例记为ES ,如P(z,f(w),B)=P(x,f(y),B)s1 当用两个置换s1和 s2依次作用于一个表达式时,可以将两个置换组合为一个置 换称为s1和 s2的合成,记为s1 s2
3、基本的推理方法
经典推理---归结反演
置换的合成: 设={t1/x1,t2/x2…,tn/xn}和 ={u1/y1,u2/y2…,un/yn}
3、基本的推理方法
经典推理---归结反演
P T T F F
Q T F T F
PQ T F T T
永真性和可满足性 如果一个公式对所有可能的解释都取值为真,则称它是永真的。例如 使用真值表可以证明,公式P(A) [P(A)P(B)]无论谓词 P的解释如何, 取值均为真,因此永远是真的。 设I是一个解释,它使公式集合S中的所有公式均取值为真,则称I满足 公式集合S,或称I适用于公式集合S. 例如有公式集合S={P(A),P(A) P(B)},如果解释I1使P(A)=T,P( B)=T,则称I1适用于S;如果解释I2使P(A)=F,P(B)=T,则称I2不适用于S。 如果每一个适用于公式集合S的解释I也适用于公式X,则称X逻辑上遵从 公式集S。 对于一组规则,如果任何一个从公式集合 S推导出来的定理也是从逻 辑上遵从S的,则称这组规则是有效的。如果所有逻辑上遵从 S的公式都 可以从S中推导出来,则称这组规则是完备的。
3、基本的推理方法
经典推理---归结反演
(2)子句(Clause) 子句定义为由文字(一个原子公式和一个原子公式的否定 )的析取组成的公式。由 于归结方法应用于子句,因此首先介绍任何一个谓词演算公式如何化为一个子句 集。 设有一个谓词演算公式 (x){[P(x) Q(x)] (y)[S(x,y)Q(x)]} (x)[P(x) B(x)] 转化为子句的过程如下, 1)消去蕴涵符号,应用性质X1X2 X1 X2 ,上例公式变为: (x){ [P(x) Q(x)] (y)[S(x,y)Q(x)]} (x)[P(x) B(x)]
将下列谓词演算公式转化为子句集。
(x){ P(x) {( y)[ P(y) P(f(x,y))] [Q(x,g(x)) P(g(x))]}} x y { P(x) { [ P(y) P(f(x,y))] [Q(x,g(x)) P(g(x))]}} x y {[ P(x) [ P(y) P(f(x,y))]] [ P(x) [Q(x,g(x)) P(g(x))]} [ P(x) P(y) P(f(x,y))] [ P(x) Q(x,g(x)) ] [ P(x) P(g(x))] P(x) P(y) P(f(x,y)), P(w) Q(w,g(w)) , P(z) P(g(z))
xy z u v w P(x,y,z,u,v,w)
xy z u v w P(x,y,z,u,v,w) y z v P(A,y,z,f(y,z),v,g(y,z,v))
将下列谓词演算公式转化为子句集。
(x){P(x) {( y)[P(y) P(f(x,y))] (y ) [Q(x,y) P(y)]}}