第三章 确定性推理方法 习题参考解答
3.1 练习题
3.1 什么是命题?请写出 3个真值为 T 及真值为 F 的命题。
3.2 什么是谓词?什么是谓词个体及个体域?函数与谓词的区别是什么? 3.3 谓词逻辑和命题逻辑的关系如何?有何异同?
3.4 什么是谓词的项?什么是谓词的阶?请写出谓词的一般形式。
3.5 什么是谓词公式?什么是谓词公式的解释?设 D= {1,2} ,试给出谓词公式 ( x)((P(x,y) Q(x,y)) 的所有解释,并且对每一种解释指出该谓词公式的真值。
3.6 对下列谓词公式分别指出哪些是约束变元?哪些是自由变元?并指出各量词的
辖域。 (1) ( x)(P(x, y) ( y)(Q(x, y) R(x, y))) (2) ( z)( y)(P(z, y) Q(z, x)) R(u, v)
(3)
( x)(~ P( x, f (x )) ( z)(Q(x,z) ~ R(x,z)))
(4) ( z)(( y)(( t)(P(z, t) Q(y, t)) R(z, y))
(5) ( z)( y)(P(z, y) ( z)(( y)(P(z, y) Q(z, y) ( z)Q(z, y))))
3.7 什么是谓词公式的永真性、永假性、可满足性、等价性及永真蕴含? 3.8 什么是置换?什么是合一?什么是最一般的合一?
3.9
判断以下公式对是否可合一;若可合一,则求出最一般的合一:
(1) P(a,b) , P(x, y) (2) P(f(z),b) , P(y, x) (3) P(f(x), y) , P(y, f(a)) (4) P(f(y), y,x) , P(x, f(a), f(b)) (5) P(x, y) ,
P(y, x)
3.10 什么是范式?请写出前束型范式与 SKOLEM 范式的形式。 3.11
什么是子句?什么是子句集?请写出求谓词公式子句集的步骤。
3.12 谓词公式与它的子句集等值吗?在什么情况下它们才会等价?
54
y)
3.13 把下列谓词公式分别化为相应的子句集:
(1) ( z)( y)(P(z, y) Q(z, y)) (2) ( x)( y)(P(x, y) Q(x, y)) (3) ( x)( y)(P(x, y) (Q(x, y) R(x, y))) (4) ( x)( y)( z)(P(x, y) Q(x, y) R(x, z))
(5)
( x)( y)( z)( u)( v)( w)(P(x, y,z,u,v,w) (Q(x, y, z,u, v, w) ~R(x, z, w)))
3.14 判断下列子句集中哪些是不可满足的:
(1) S {~ P Q,~ Q,P,~ P} (2) S {P Q,~ P Q,P ~ Q,~ P ~ Q} (3) S {P(y) Q(y), ~ P(f(x)) R(a)}
(4) S {~ P(x) Q(x), ~ P(y) R(y), P(a),S(a),~ S(z) ~ R(z)} (5) S {~ P(x) ~ Q(y) ~ L(x, y), P(a), ~ R(z) L(a, z), R(b), Q(b)} (6) S {~ P(x) Q(f(x), a), ~ P(h(y)) Q(f(h(y)), a) ~ P(z)}
(7)
S {P(x) Q(x) R(x),~ P(y) R(y),~Q(a),~ R(b)}
(8)
S {P(x) Q(x),~ Q(y) R(y), ~ P(z) Q(z),~ R(u)}
3.15 为什么要引入 Herbrand 理论?什么是 H 域?如何求子句集的 H 域? 3.16 什么是原子集?如何求子句集的原子集?
3.17 什么是 H 域解释?如何用域 D 上的一个解释 I 构造 H 域上的解释 I *呢? 3.18 假设子句集 S= {P(z) ∨Q(z),R(f(t))} ,S 中不出现个体常量符号。 设个体域 D={1,2}
原子集的定义:
H= {a,f(a),f(f(a)),
⋯}
A= {P(a),Q(a),R(a),P(f(a)),Q(f(a)),R(f(a)),
⋯}
如果设 I 是 D 上的解释,并作如下的设定
I : f(1)
f(2) P(1) P(2) Q(1) Q(2) R(1) R(2) 2
2
T
F
F
T
F
T
请构造 H 域上的一个解释 I*与 I 相对应,且使 S|I* =T。
55
H 域和由
3.19 引入 Robinson 的归结原理有何意义?其基本思想是什么?
56
3.20 请写出应用归结原理进行定理证明的步骤。
3.21 对下列各题分别证明 G 是否为 F1,F2,⋯,Fn 的逻辑结论。 (1) F1:( x)( y)P(x, y)
G:( y)( x)P(x, y)
(Q(a) Q(b))) Q(x))
(2) F1 :( x)(P(x)
G :( x)(P(x)
(3) F1 :( x)( y)(P(f(x)) Q(f(b)))
G : P(f(a)) P(y) Q(y)
(4) F1:( x)(P(x)
( y)(Q(y) ~ L(x,y))) ( y)(R(y) L(x,y))) ~ Q(x))
(Q(x) R(x))) S(x)) R(x))
~ B(z) ( y)(D(z, y) C(y))) A(z) ( y)(D(z, y) E(y))) ~ B(z)) C(z))
F2:( x)(P(x) G:( x)(R(x)
(5) F1:( x)(P(x)
F2:( x)(P(x) G : ( x)(S(x) (6) Fl:( z)(A(z)
F2:( z)(E(z) F3:( z)(E(x) G:( z)(E(z)
3.22 证明:
( y)(Q(y)
(B(y) C(y))) ( y)(Q(y) D(y))
( y)(D (y) C(y))
3.23
某单位招聘工作人员,张三、李四、王五三人应试,经面试后单位有如下想法:
1) 如果录取张三而不录取李四,则一定录取王五。 2) 如果录取李四,则一定录取王五。 3) 三人中至少要录取一人。
求证:王五一定会被单位录取。
3.24 每个储蓄钱的人就是为了获得利息。求证:对某个人来说,如果不能获得利息,则他就不会储 蓄
钱。
3.25 请写出利用归结原理求解问题答案的步骤。 3.26 应用归结原理求解下列问题:
设张三、 李四和王五三人中有人从不说真话, 也有人从不说假话。 某人向这三人分别提出同一个问题: 谁是说假话者?张三答: “李四和王五都是说假话者” ;李四答:“张三和王五都是说假话者” ;王五答:“张 三和李四中至少有一个说假话者” 。求谁是说假话者,谁是说真话者?
57
3.27 已知樊臻的老师是张先生,樊臻与李伟是同班同学。如果 x与 y是同班同学,则 x的老师也是 y 的
老师。请问李伟的老师是谁?
3.28 什么是完备的归结控制策略?有哪些归结控制策略是完备的?
3.29 设已知:
(1)能阅读的人是识字的。 (2)海豚不识字。 (3)有些海豚是很聪明的。
用输入归结策略证明:有些很聪明的人并不识字。
3.30 用输入归结策略是否可证明下列子句集的不可满足性?
S={P ∨Q,Q∨ R,R∨ W,~ R∨~ P,~ W∨~ Q,~Q∨~ R}
3.2 习题参考解答
3.1 答
(略: 答 )(略3.2 : )
答(略3.3 : )
答(略3.4 : )
3.5
解:
在谓词公式 ( x)( y)(P(x,y) Q(x,y)) 中没有包括个体常量和函数,所以, 可以直接为谓
词指派真值。设:
P(1,1)=T, Q(1,1) =T,
P(1,2)=F, Q(1,2) =F,
P(2,1)=T, Q(2,1)=T ,
P(2,2)=F Q(2,2)=F
在这种解释下,对某一个 x(x=1 或 x=2)对所有的 y(即 y=1 或 y=2)都不能使 P(x,y) 的真值 为 T,所以,在此解释下, P(x,y)的真值为 F。同理, Q(x,y) 的真值也为 F。根据谓词逻辑真 值表可知:在该解释下,上述谓词公式的真值为 T。
上述谓词公式在 D={1,2} 上共有 256 种解释,这里不再一一列出,读者可自己列出其中的几
58
个,并求出其真值。
3.6 解:
(1) P(x,y),Q(x,y)和 R(x,y)中的 x 以及 Q(x,y) , R(x,y)中的 y 是约束变元。 P(x,y)中的 y 是 自由变
元。量词 x 的辖域使整个公式,量词 y 的辖域是( Q(x,y) R(x,y) )。
(2) z 和 y 是约束变元。 x, u, v 是自由变元。 z 和 y 辖域都是 P(z,y) Q(z,x) 。
(3) x和 z均是约束变元。 没有自由变元。 x 的辖域是整个公式, z的辖域是 Q(x,z) ~R(x,z) 。 (4) z 、y 和 t 均是约束变元。没有自由变元。 z 和 y 的辖域是整个公式, t 的辖域是 P(z,t)
Q(y,t)。
(5) 本小题比较复杂,表面上只涉及两个变元 z 和 y,实际上公式中后面的两个 z 和一个 y 都
可看成是另外的变量,因此,可作变元替换将公式变换为:
( z)( y)(P(z, y) ( z')(( y')(P(z' , y' ) Q(z',y') ( z'')Q(z'',y'))))
公式中的变元就成为 z、y、z'、y'、z'五'个变元。 z 和 y 的辖域是整个公式, z'和 y'的辖 域是
P(z', y' ) Q(z' , y' ) ( z' ' )Q(z' ' , y' ) ,而 z'为'Q(z'',。y ')
3.7 答:(略) 3.8 答:(略) 3.9 解:
(1) (2) (3) (4) (5)
P(a,b)与 P(x,y) 是可合一的。σ ={a/x,b/y} P(f(z),b) 与 P(x,y) 是可合一的。σ ={f(z)/x,b/y}
P(f(x),y) 与 P(y,f(a)) 是可合一的。根据最一般合一求取算法,可得σ P(f(y),y,x) 与 P(x,f(a),f(b)) 是不可合一的。 P(x,y) 与 P(y,x) 是可合一的。σ ={y/x} 或σ ={x/y}
={f(a)/y,a/x}
3.10 答:
范式就是标准型。谓词演算中, 一般有两种范式, 一种叫 前束形范式 ,另一种叫 斯克林
59
(Skolem)范式 。一个谓词公式,如果它的所有量词均非否定地出现在公式的最前面,且 它的辖域一直延伸到公式之末,同时公式中不出现连接词→及 , 这种形式的公式称作前 束形范式。它的一般形式是
(Q1x1)(Q 2x2) ⋯ (Qnxn)M(x 1,x2, ⋯ ,xn)
其中, Qi(i=1,2, ⋯ n)是存在量词或全称量词,而母式 M(x 1,x2, ⋯ ,xn)不再含有量词。
从前束形范式中消去全部存在量词所得到的公式称为 Skolem 标准型,它的一般形式是
( x1)( x2) ⋯( xn)M(x 1,x2, ⋯ ,xn)
3.11 答:
子句就是由一些文字组成的析取式。而所谓文字是指原子或原子的否定。不含有任何 连接词的谓词公式叫做原子或原子公式。由子句构成的集合称为子句集。
求谓词公式 G 的子句集的步骤如下:
(a)
消去谓词公式 G中的蕴涵(→)和双条件符号(
),以~ A ∨B 代替 A→B,以
(A∧B)∨(~A∧~ B)替换 A B。
(b) (c) (d)
减少否定符号(~)的辖域,使否定符号“~”最多只作用到一个谓词上。
重新命名变元名, 使所有的变元的名字均不同, 并且自由变元及约束变元亦不同。 消去存在量词。这里分两种情况,一种情况是存在量词不出现在全称量词的辖域 内,
此时, 只要用一个新的个体常量替换该存在量词约束的变元, 就可以消去存在量词;另 一种情况是,存在量词位于一个或多个全称量词的辖域内,例如,
( x1)( x2)⋯( xn)( y)P(x1,x2, ⋯ ,xn,y)
此时,变元 y 实际受前面的变元 x1,x2,⋯,xn的约束, 需要用 Skolem 函数 f(x1,x2, ⋯ ,xn) 替换 y 即可将存在量词 y 消去,得到:
( x1)( x2)⋯( xn)P(x1,x2, ⋯,xn, f(x1,x2, ⋯ ,xn))
(e) 把全称量词全部移到公式的左边,并使每个量词的辖域包括这个量词后面公式的整 个部
分。
60
(f) 母式化为合取范式:任何母式都可以写成由一些谓词公式和谓词公式否定的析取的 有限
集组成的合取。
(g) 消去全称量词。
(h) 对变元进行更名,是不同子句中的变元不同名。 (i)
消去合取符号∧,将各子句写成子居积合的形式。
3.12 答:(略) 3.13 解:
61
1) 因为 ( z)( y)(P(z,y) Q(z,y))已经是一个 Skolem 标准型, P(z,y) Q(z,y)已是合取范 式,以逗号代
替 ,得子句集: S={ P(z,y) ,Q(z,y) }
2)
首先将谓词公式 ( x)( y)(P(x, y) Q(x, y))化为 Skolem标准型:
( x)( y)(~ P(x, y) Q(x, y))
消去全称量词,并将母式化为子句集
S={~ P(x,y)
Q(x,y) }
(Q(x, y)
R(x, y))) 化为 Skolem 标准型:
3)首先将谓词公式 ( x)( y)(P(x, y)
第一步:消去 号
( x)( y)(P(x, y) (~ Q(x, y)
R(x,y)))
第二步:消去存在量词,用 Skolem 函数 f(x) 代替 y
( x)(P(x,f(x)) ~ Q(x, f(x)) R(x,f(x)))
第三步:消去全称量词,并将母式化为子句集
S={ P(x,f(x)) ~ Q(x, f(x)) R(x, f(x)) }
4)首先将谓词公式 ( x)( y)( z)(P(x, y) Q(x, y) R(x, z))化为 Skolem 标准型: 第一步:消去 号
( x)( y)( z)(~ P(x,y) Q(x, y) R(x, z)) 第二步:消去存在量词,用 Skolem 函数 f(x,y) 代替 z ( x)( y)(~ P(x, y) Q(x, y) R(x, f(x, y)))
第三步:消去全称量词,并将母式化为子句集
S={ ~ P(x, y) Q(x, y) R(x, f(x, y))}
5)将谓词公式 ( x)( y)( z)( u)( v)( w)(P(x, y,z,u,v,w) (Q(x, y, z, u, v, w) ~R(x, z,w)))
化为 Skolem 标准型:
第一步:消去存在量词 x,y,以常量 a,b 分别代之
( z)( u)( v)( w)(P(a, b, z,u,v, w) (Q(a,b,z,u,v,w) ~ R(a,z,w)))
第二步:消去存在量词 u,由于 u 在全称量词 z 的辖域内,令 Skolem 函数 u=f(z)
( z)( v)( w)(P(a,b,z,f(z),v,w) (Q(a,b,z,f(z),v,w) ~ R(a,z,w)))
再消去存在量词 w ,由于 w 在全称量词 z 和 v 的辖域内,令 Skolem 函数 w=g(z,v)
( z)( v)(P(a,b,z,f(z), v,g(z, v)) (Q(a,b,z,f(z),v,g(z,v)) ~ R(a,z,g(z,v))))
第三步:消去全称量词,并将母式化为合取范式,再化为子句集
62
S={ P(a,b,z,f(z),v,g(z,v)), Q(a,b,z,f(z),v,g(z,v)) ~ R(a,z,g(z,v)) } 3.14 解
(1) 依照归结推理过程,对子句集 S {~P Q,~Q,P,~P} 进行归结推理
1) 2) 3)
~ P Q ~Q
P
4) ~P
5) NIL 3),4) 归结
所以,该子句集是不可满足的。同理,可以推知第( 也是不可满足的,因为它们都可以归结出空子句。
3.15 答:
2)、( 4)、( 5)、( 8)小题的子句集
引入 Herbrand 理论的目的是为了简化对谓词公式不可满足性的证明。对于一个谓词公 式来说,要证明它的不可满足性是困难的,故考虑它的子句集的不可满足性。然而,对子句 集的不可满足性的判定仍然是困难的, 因为要判断子句集的不可满足性就要对子句集中的每 一个子句逐个进行判定。由于个体变元域 D 的任意性以及解释个数的无限性,这实际上是 一项难以完成的工作。 能否针对某一个具体的谓词公式, 找到一个比较简单的特殊域, 只要 使谓词公式在该特殊域上是不可满足的,就能保证它在任一域上也是不可满足的呢? Herbrand 理论就构造了这样的一个域, 称为 Herbrand 域( H 域)。只要对 H 域上的所有解释 进行判定,即可得知谓词公式是否是不可满足的。
H 域的定义中就包含了子句集 H 域的求取方法:设谓词公式 G 的子句集为 S ,则按下 述方
法构造的个体变元域 H 称为公式 G 或子句集 S 的 Herbrand 域,简称 H 域。
(a) 令 H0是 S中所出现的常量的集合。 若 S中没有常量出现, 就任取一个常量 a D, 规定 H
0={a}
。
(b) 令 Hi+1=Hi∪{S 中所有的形如 f(t 1, ⋯ ,nt)的元素 }
63
其中 f(t 1, ⋯ ,nt)是出现于 G中的任一函数符号, 而t1,⋯,tn是Hi中的元素。 i=0 ,1,2,
⋯ 。
3.16 答:
下列集合称为子句集 S 的原子集:
A={所有形如 P(t1, t2, ⋯ ,nt)的元素} 其中, P(t1, t2, ⋯ ,nt)是出现在 S中的任一谓词符
号,而 t1,t2,⋯,tn则是 S的 H 域上的任意 元素。该定义就给出了子句集的原子集的求法。
3.17 答:
如果子句集 S的原子集为 A,则对 A 中各元素的真假值的一个具体设定都是 解释。
用域 D 上的一个解释 I 构造 H 域上的解释 I* 的方法如下:
(1) 求子句集 S的 H 域和原子集 A
S的一个 H
(2) 根据 D 域上的解释 I,对 H 域中的每个元素设定相应的值。 如果 H 域中有常量符号,
可按 D 中的元素给 a 设定某一值。
(3) 依据 H 中各元素的值与解释 I 的规定,确定原子集 A 中各元素的取值。
这样,原子集 A 中的各个元素都得到了一个取值,它就是与 D 上的解释 I 相对应的 H 域上的解释 I* 。
3.18 解 :
已知个体域 D={ 1,2},I 是 D 上的解释,并作如下的设定
f(1) 2
f(2) 2
P(1) T
P(2) F
Q(1) F
Q(2) T
R(1) F
R(2) T
将以上各值代入 S,有 S|I=T。现在要构造 H 域上的一个解释 I*与 I 相对应,且使 S|I* =T。 依据 D 域上的解释 I 之规定,对 H 域中的每个元素设定相应的值。在 H 中的常量符号 有
a,f(a),f(f(a)) , ⋯.。这时,由于 a在解释 I 中并未给出规定,所以我们要按 D 中的元素 给 a设
定值, a可以设定为 1,也可以设定为 2(因为 1,2 都是 D 的元素)。
若 a 设定成 1,则依照解释 I, H 中的其他元素的值即确定如下:
f(a) → f(1) → 2 f(f(a)) → f(2) → 2
f(f(f(a))) → f(2) → 2
再依据 H 中各元素的值与解释 I 的规定,确定原子集 A 中各元素的取值:
P(a) → P(1) → T Q(a) → Q(1) → F R(a) → R(1) → F P(f(a)) →P(2) → F Q(f(a)) → Q(2) → T R(f(a)) → R(2) → T
于是,便得到与 D 域上解释 I 相对应的 H 域上的解释 I*1 :
I1={P(a), ~ Q(a), ~ R(a), ~ P(f(a)),Q(f(a)),R(f(a)), ⋯}
*
同理,若将 H 中的元素 a设成 2,我们可以得到与 I 相对应的另一个 H解释 I*2 :
I2={ ~ P(a),Q(a),R(a), ~ P(f(a)),Q(f(a)),R(f(a)), ⋯}
*
可以验证 S| I 1=T, S| I 2=T 。解释 I*1 、 I *2便是所求的与 D 域上解释 I 相对应的 H 域之解释。
*
*
3.19 答:(略) 3.20 答:
设要被证明的定理可用谓词公式表示为形式 行定理证明的步骤如下:
A 1∧A2∧⋯∧An→B,则应用归结原理进
(1) 首先否定结论 B,并将否定后的公式~ B 与前提公式集组成如下形式的谓词公式:
G= A1∧A2∧⋯
∧An∧~ B
(2) 求谓词公式 G 的子句集 S。
(3) 应用归结原理,证明子句集 S的不可满足性,从而证明谓词公式
G 的不可满足性。
这就说明对结论 B 的否定是错误的,推断出定理的成立。
3.21 解:
65
(1) F:( x)( y)P(x, y)
1
G:( y)( x)P(x, y)
首先将 F1 和~G 化为子句集
1) P(a,b)
2) ~P(x,b) 然后利用归结原理进行归结 3)
NIL 1)与 2)归结, σ ={a/x}
所以 G 是 F1 的逻辑结论。
(2) 首先将 F1和~G 化为子句集
F1:( x)(P(x) (Q(a) Q(b))) ,由于 F1本身就是 Skelom 标准型,所以有 S1={ P(x),Q(a) Q(b) } ~G=
( x)(~ P(x) ~ Q(x)) 所以, S2={ ~P(x) ~Q(x) }
下面进行归结
1) P(x)
2) 3) 4) 5) 6)
Q(a) Q(b)
~ P(x) ~ Q(x)
~Q(x) Q(b) NIL
1),3)归结 2),4)归结 4),5)归结
σ ={a/x} σ ={b/x}
所以 G 是 F1 的逻辑结论。 其余各题的证明留给读者自己练习。
3.22 证明: 第一步:先对结论否定并与前提合并得谓词公式 G
G=( y)(Q(y)→(B(y)∧C(y)))∧( y)(Q(y) ∧D(y)) ∧~ ( y)(D(y) ∧C(y)) 第二步:将公式 G 化
为子句集,可将 G 看作三项的合取,对每一项分别求子句集 G1:( y)(Q(y) →(B(y) ∧C(y)))
=( y)(~Q(y)∨(B(y) ∧C(y)))
= ( y)(( ~ Q(y) ∨ B(y)) ∧(~Q(y)∨C(y))) 所以, S1={( ~Q(y)∨B(y)), ~ Q(y)
∨C(y)} 。
G2:( y)(Q(y) ∧D(y))
66
所以, S2={Q(a),D(a)} 。
~B:~( y)(D(y) ∧C(y))
=( y)(~D(y) ∨~ C(y))
所以, S~B={ ~D(y) ∨~ C(y)} 。 从而得公式 G 的子句集:
S= S1∪S2∪S~B={(~Q(y)∨B(y)),~Q(y)∨C(y),Q(a),D(a), ~ D(y) ∨~ C(y)} 第三步:使用归
结原理,对子句集 S 进行归结。
(1) ~ Q(y) ∨B(y) (2) ~ Q(y) ∨C(y) (3) Q(a) (4) D(a)
(5) ~D(y) ∨~ C(y) (6) C(a) (7) ~ C(a) (8) NIL
(2)与(3)归结 σ ={a/y} (4)与(5)归结 σ ={a/y} (6)与(7)归结
由此得出子句集 S 是不可满足的,因而公式 G 也是不可满足的,从而命题得证。
3.23 证明:
第一步:定义谓词,并将待证明的问题的前提条件和逻辑结论用谓词公式表示出来。 (1)定义谓词和常量:
谓词 Matr(x) 表示 x 被录取。
Z 表示张三, L 表示李四, W 表示王五。 (2)
将前提及要证的问题表示成谓词公式:
a) Matr(Z) ∧~ Matr(L) → Matr(W) b) Matr(L) → Matr(W)
c) Matr(Z) ∨Matr(L) ∨ Matr(W) 把要求证的问题否定,并用谓词公式表示出来:
d) ~
Matr(W)
67
第二步:将上述公式化成子句集。
1)
~ Matr(Z) ∨ Matr(L) ∨ Matr(W) ~ Matr(L) ∨ Matr(W)
Matr(Z) ∨ Matr(L) ∨ Matr(W)
~
2)
3) 4)
Matr(W)
第三步:利用归结原理对上面的子句集中的子句进行归结。
5) Matr(L) ∨ Matr(W) 6) Matr(W) 7) NIL
1)与 3)归结 2)与 5)归结
4)与 6)归结
所以,王五一定会被录取。
3.24 证法一: 第一步:定义谓词,并将待证明的问题的前提条件和逻辑结论用谓词公式表示出
来。 定义谓词:
设: Save(x):表示 x 储蓄钱;
Interest(x) :表示 x 获得利息。
将前提表示成谓词公式:
( x )( Save( x ) Interest( x )) 把要求证
的问题用谓词公式表示出来:
( y)(~ Interest(y) ~ Save(y)) 第二步:将前提和要求证的问题之否定化成子句集。
求前提子句集:
( x )( Save(x ) Interest(x )) ( x)(~ Save( x ) Interest(x))
前提的子句集: S1={ ~ Save(x ) Interest(x) } 求结论之否定子句集:
68
~ ( y)(~ Interest ( y) ~ Save(y)) ~ ( y)(Interest(y) ~ Save( y )) ( y)(~ Interest ( y) Save( y ))
结论之否定子句集: S2={~ Interest(y) , Save(y)}
第三步:利用归结原理对上面的子句集中的子句进行归结
(1) ~ Save( x ) Interest ( x ) (2) ~ Interest(y ) (3) Save(y) (4) ~ Save(y) (5) NIL
(1),(2)归结 σ={ x/y }
(3) ,(4)归结
证毕。
证法二:
第一步:定义谓词,并将待证明的问题的前提条件和逻辑结论用谓词公式表示出来。 定义谓词:
设: Save(x,y):表示 x 储蓄 y;
Money(y) :表示 y 是钱; Interest(y) :表示 y 是利息; Obtain(x,y) :表示 x 获得 y 。
将前提表示成谓词公式:
( x)(( y)( Money ( y) Save( x , y)) ( u)( Interest( u) Obtain (x, u))) 把要求证的问题用
谓词公式表示出来:
( x)(~ ( u)(Interest(u) Obtain ( x, u)) ~ ( y)(Money(y) Save(x,y))) 第二步:将前提和要
求证的问题之否定化成子句集。
求前提子句集:
69
( x)(( y)(Money(y) Save( x, y)) ( u)(Interest(u) Obtain(x,u))) ( x)(~ ( y)(Money (y) Save(x,y)) ( u )(Interest( u ) Obtain ( x , u))) ( x)(( y)(~ Money (y) ~ Save(x,y)) ( u)(Interest(u) Obtain(x,u)))
设 skolem 函数为 u=f(x) ,则:
70
前提的子句集: S1={ ~ Money (y) ~ Save(x,y) Interest(f(x)) ,
~ Money (y) ~ Save(x, y) Obtain (x ,f (x)) }
求结论之否定子句集:
~ ( x)(~ ( u)(Interest(u) Obtain ( x , u)) ~ ( y )( Money ( y) Save(x,y))) 成析取式。谓词
ANSWER 是一个专为求解问题而设置的谓词,其变量必须与问
题公式的变 量完全一致。
~ ( x)(( u)(Interest(u) ( x)(( u)(~ Interest(u)
Obtain (x, u)) ~ ( y)(Money(y) ~ Obtain ( x, u)) ( y)( Money ( y )
Save( x , y ))) Save(x,y)))
设 skolem 函数为 y=g(x) ,则上式变为:
( x)( u)((~ Interest (u ) ~ Obtain(x,u)) (Money(g(x))
结论之否定子句集:
Save(x,g(x))))
S2={ ~ Interest(u) ~ Obtain(x,u),Money(g(x)),Save(x,g(x))}
第三步:利用归结原理对上面的子句集中的子句进行归结
(1) (2) (3) (4) (5) (6) (7)
~ Money (y ) ~ Save(x, y) Interest(f (x))
~ Money (y ) ~ Save(x, y) Obtain(x,f (x))
~ Interest (u ) ~ Obtain ( x , u )
Money ( g(x ))
Save(x,g(x))
~ Money (y) ~ Save(x, y) ~ Obtain (x ,f (x)) ~ Money (y ) ~ Save(x , y)
(1),(3)归
σ={ f(x)/u } 结
(2),(6)归结
(5),( 7)归
σ={ g(x)/y } 结
(4),(8)
(8) ~ Money (g(x)) (9) NIL
归结
证毕。
3.25 答:
利用归结原理求取问题答案的步骤如下:
(1) 把已知前提条件用谓词公式表示出来,并化成相应的子句集,设该子句集的名字为 S1。
(2) 把待求解的问题也用谓词公式表示出来,然后将其否定,并与一谓词 ANSWER 构
71
(3) 把问题公式与谓词 ANSWER 构成的析取式化为子句集,并把该子句集与 S1 合并构
成子句集 S。
(4) 对子句集 S 应用谓词归结原理进行归结,在归结的过程中,通过合一置换,改变 ANSWER 中的变元。
(5) 如果得到归结式 ANSWER ,则问题的答案即在 ANSWER 谓词中。
3.26 解: 第一步:将已知条件用谓词公式表示出来,并化成子句集,那么要先定义谓词。
(1) 定义谓词和常量:
设 P(x) 表示 x 说真话。 Z 表示张三, L 表示李四, W 表示王五。
(2) 将已知事实用谓词公式表示出来。
若张三说的是真话,则有 P(Z)→ ~ P(L) ∧ ~P(W) 若张三说的是假话,则有 ~P(Z)→ P(L)
∨P(W) 对李四和王五说的话做同样的处理,可得:
P(L)→ ~P(Z)∧~P(W) ~ P(L)→ P(Z)∨ P(W) P(W)→ ~P(Z)∨~P(L)
~ P(W)→ P(Z) ∧P(L)
(3) 将它们化成子句集得 S: 1) ~P(Z) ∨ ~ P(L) 2) ~ P(Z)∨ ~ P(W) 3) P(Z)∨P(L) ∨P(W) 4) ~ P(L)∨ ~ P(W) 5) ~P(W)∨~P(Z) ∨~P(L)
6) P(W) ∨P(Z)
7) P(W) ∨P(L)
第二步:把问题用谓词公式表示出来,并将其否定与谓词 ANSWER 作析取。 设 u 是说真话者,则有: P(u) 。将其否定与 ANSWER 作析取,得:
G:~ P(u)∨ ANSWER(u)
72
将上述公式 G 化为如下的子句,并将其合并到 S。
8)
~ P(u)∨ANSWER(u)}
第三步:应用归结原理对上述子句集进行归结
9)
~ P(Z)∨P(W)
P(W)
1)与 7) 归结
10) 11)
6)与 9) 归结
ANSWER(W) 8)与 10) 归结 σ ={W/u}
第四步:得到的归结式 ANSWER(W) ,答案即在其中, u=W ,所以,求得王五是说真 话者。
除此之外, 无论对上述子句集如何进行归结, 都推不出 ANSWER(Z) 和 ANSWER(L) 来, 说明张三和李四不是说真话者。 其实可以证明张三和李四是说假话者。 证明的方法是设张三 或李四是说假话者,则有: ~P(Z)或~P(L) 作为要证明的结论,将它的否定之子句并入前面 的子句集 1)- 7),并进行归结推理,推出空子句,从而证明假设的正确性,即张三和李四 是说假话者。
3.27 解:
第一步:定义谓词,并将已知条件用谓词公式表示出来,并化成子句集。 ( 1) 定义谓词和常量:
Teacher(x,y) 表示 x 是 y 的老师。 Classmate(x,y) 表示 x 和 y 同班同学
Fz 表示樊臻, Lw 表示李伟, Zm 表示张先生。
( 2) 将已知事实用谓词公式表示出来。
樊臻的老师是张先生: Teacher(Zm, Fz) 樊臻与李伟是同班同学: Classmate(Fz,Lw)
如果 x 与 y 是同班同学,则 x 的老师也是 y 的老师:
( x)( y)( z)(Classmate(x, y) Teacher(z,x) Teacher(z,y))
73
3) 1) 2) 3)
将它们化成子句集得 S:
Teacher(Zm, Fz) Classmate(Fz, Lw)
~
Classmate(x,y)
∨~ Teacher(z, x)∨ Teacher(z, y) 第二步:把问题用谓词公式表示出
来,并将其否定与谓词 ANSWER 作析取。 设李伟的老师是 u,则有: Teacher(u, Lw) 。将其否定与 ANSWER 作析取,并求子句且 把所得子句并入上述子句集:
4) 5) 6) 7)
~Teacher(u, Lw)∨ANSWER(u) 第三步:应用归结原理对上述子句集进行归结 ~ Classmate(Fz, y)∨ Teacher(Zm, y)
~
1)与 3) 归结 σ ={Fz/x,Zm/z} 4)与 5) 归结 σ ={Lw/y,Zm/u} 2)与 6) 归结
Classmate(Fz,Lw)
∨ ANSWER(Zm)
ANSWER(Zm)
第四步: 得到的归结式 ANSWER(W) ,答案即在其中, u=Zm,即李伟的老师是张先生。
3.28 答:(略)
3.29 证明 第一步:定义谓词,并将已知条件用谓词公式表示出来,并化成子句集。
( 1) 定义谓词和常量:
Read(x) 表示 x 是能阅读的; Know(y) 表示 y 是识字的; Wise(z) 表示 z 是很聪明的;
用 r 表示人类,用 h 表示海豚 .
( 2) 将已知事实用谓词公式表示出来。 能阅读的人是识字的: ( r)(Read(r) Know (r)) 海豚不识字: ( h)(~ Know (h)) 有些海豚是很聪明的: ( h)(Wise(h)) ( 3) 将要证明的目标转化为谓词 第二步:将它们化成子句集
1) ~ Read(r)∨Know(r) 2) ~Know(h) 3) Wise(a)
有些很聪明的人并不识字:
( r)(Wise(r) ~ Know(r))
4) ~Wise(r) ∨ Know(r)
74
第三步:对以上子句集进行归结
5) 6) NIL
Know(a) 3)与 4) 归结 σ ={a/r} 2)与 5) 归结 σ ={a/h}
从而命题得证。
3.30 解
利用输入归结策略不能证明子句集
S={P∨Q,Q∨R,R∨W,~R∨~ P,~W∨~Q,~Q∨~R}
的不可满足性。 因为按照输入归结策略的要求, 每次参加归结推理的两个子句中, 必须至少 有一个子句是初始子句集中的子句。 另外,要特别注意的是, 在进行归结时,不能同时消去 两个互补文字对,因为消去两个互补文字对所得到的结果,不是两个亲本子句的逻辑推论。 例如,在本题中,子句 Q∨R 和~ Q∨~ R 不能进行归结,因为它们归结时将消去两个文字 对。所以,根据这些要求,将不能从该子句集中归结出空子句,也就是说,不能证明该子句 集的不可满足性。
75
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务