当前位置:文档之家› 应用归结原理例-2014

应用归结原理例-2014


18
7/9/2014
利用归结原理求取问题答案-习题4
破案问题:在一栋房子里发生了一件神秘的谋杀 案,现在可以肯定以下几点事实: (1)在这栋房子里仅住有A,B,C三人; (2)是住在这栋房子里的人杀了A; (3)谋杀者非常恨受害者A; (4)A所恨的人,C一定不恨; (5)除了B以外,A恨所有的人; (6)B恨所有不比A富有的人;
5
7/9/2014
应用归结原理进行定理证明-习题2
练习:设有下列知识: F1:自然数都是大于等于零的整数; F2:所有整数不是偶数就是奇数; F3:偶数除以2是整数。 求证:所有自然数不是奇数就是其一半为整数的数。 定义谓词: N(x):x是自然数;I(x):x是整数;GZ(x):x大于等于零; E(x):x是偶数; O(x):x是奇数。 定义函数f(x):x除以2。
17
7/9/2014
利用归结原理求取问题答案-习题3
练习:某记者到一个孤岛上采访,遇到了一个难题,即岛上有许 多人说假话,因而难以保证新闻报道的正确性。不过有一点她是 清楚的,这个岛上的人有一特点,说假话的人从来不说真话,说 真话的人也从来不说假话。有一次,记者遇到了孤岛上的三个人, 为了弄清楚谁说真话,谁说假话,她向三个人中的每一个都提了 同样的问题,即“谁是说谎者?”结果,a 回答:“b和c都是说 谎者”;b回答:“a和c都是说谎者”;c回答:“a和b至少有 一个是说谎者”。试问记者如何才能从这些回答中理出头绪。 定义谓词: T(x):x说真话。
9
7/9/2014
(二)利用归结原理求取问题答案
利用归结原理求取问题答案的步骤: (1)把已知前提条件用谓词公式表示出来,并化成相应的子句集, 设该子句集的名字为S1。
(2)把待求解的问题也用谓词公式表示出来,然后将其否定,并 与一谓词 ANSWER 构成析取式。谓词 ANSWER 是一个专为求 解问题而设置的谓词,其变量必须与问题公式的变量完全一致。
例. 任何兄弟都有同一个父亲, John和Peter是兄弟,且John的父亲是David, 问:Peter的父亲是谁? 解 第一步:将已知条件用谓词公式表示出来,并化成子 句集,那么要先定义谓词。 (1) 定义谓词: 设Father(x,y)表示x是y的父亲。
Brother(x,y)表示x和y是兄弟。
Brother(John,Peter), Father(David,John)}
13
7/9/2014
第二步:把问题用谓词公式表示出来, 并将其否定与谓词ANSWER作析取。 设Peter的父亲是u,则有:Father(u,Peter)。 将其否定与ANSWER作析取,得: G:~Father(u,Peter)∨ANSWER(u)
应用归结原理的习题
1
7/9/2014
(一)应用归结原理进行定理证明
应用归结原理进行定理证明的步骤: 设要被证明的定理表示为:
A1∧A2∧…∧An B
(1)首先否定结论B,并将否定后的公式~B与前提公式集组成如下形 式的谓词公式: G= A1∧A2∧…∧An∧~B
(2) 求谓词公式G的子句集S。
7
7/9/2014
应用归结原理进行定理证明 -习题4
练习:“快乐学生”问题 假设:任何通过计算机考试并获奖的人都是快乐的; 任何肯学习或幸运的人都可以通过所有考试; 张不肯学习但他是幸运的; 任何幸运的人都能获奖。 证明:张是快乐的。 定义谓词 Pass(x,y):x通过考试y;Win(x):x获奖;Happy(x):x快乐; 7/9/2014 Study(x):x肯学习; Lucky(x):x幸运。
14
7/9/2014
第三步:将上述公式G化为子句集S2,并将S1和S2合并到S。 S2 ={~Father(u,Peter)∨ANSWER(u)}
S= S1∪S2
将S中各子句列出如下: (1)~Brother(x,y)∨~Father(z,x)∨Father(z,y)。
(2)Brother(John,Peter)。
20
7/9/2014
4
7/9/2014
S不可满足的归结演绎序列为: (1) P(a) (2) ~D(y) L(a, y) (3) ~P(x) ~Q(y) ~L(x, y) (4) D(b) (5) Q(b) (6) L(a, b) 由(2)、(4) mgu:{b/y} (7) ~Q(y) ~L(a, y) 由(1)、(3) mgu:{a/x} (8) ~L(a, b) 由(5)、(7) mgu:{b/y} (9) 由(6)、(8)
(3)把(2)中的析取式化为子句集,并把该子句集与S1合并构成 子句集S。
10
7/9/2014
( 4 )对子句集 S 应用归结原理进行归结,在归 结的过程中,通过合一,改变 ANSWER 中的 变元。 (5)如果得到归结式ANSWER,则问题的答案 即在ANSWER谓词中。
11
7/9/2014
利用归结原理求取问题答案-习题1
19
7/9/2014
(7)A所恨的人,B也恨; (8)没有一个人恨所有的人; (9)杀人嫌疑犯一定不会比受害者富有。 为了推理需要,增加如下常识: (10)A不等于B。 问:谋杀者是谁?
定义谓词: L(x):住在这栋房子里; SK(x,y):x杀了y; H(x,y):x恨y; R(x,y):x比y富有。
8
应归结原理进行定理证明-习题5
练习--“激动人心的生活”问题 假设: 所有不贫穷并且聪明的人都是快乐的; 那些看书的人是聪明的; 李明能看书且不贫穷; 快乐的人过着激动人心的生活。 求证:李明过着激动人心的生活。 定义谓词: Poor(x):x贫穷; Smart(x):x聪明; Happy(x):x快乐; Read(x):x看书; Exciting(x):x过着激动人心的生活。
(3) 应用归结原理,证明子句集S的不可满足性。
2
7/9/2014
应用归结原理进行定理证明-习题1
例.已知:某些病人喜欢所有的医生, 没有一个病人喜欢任意一个骗子。 证明: 任意一个医生都不是骗子。 证明: 知识表示:令 P(x):x是病人 D(x):x是医生 Q(x):x是骗子 L(x, y):x喜欢y A1: x (P(x) y(D(y)L(x, y))) A2: x(P(x) y(Q(y) ~L(x, y))) B: x(D(x) ~Q(x)) 我们要证明B是A1和A2的逻辑结果,即公式A1A2~B是不可满足的。
6
7/9/2014
应用归结原理进行定理证明-习题3
练习: (1)马科斯(Marcus)是男人;(2)马科斯是庞贝人; (3)所有庞贝人都是罗马人;(4)恺撒(Caesar)是一位统治者; (5)所有罗马人忠于或仇恨恺撒;(6)每个人都忠于某个人; (7)男人们只想暗杀他们不忠于的统治者;(8)马科斯试图暗杀恺撒。 证明:马科斯仇恨恺撒。 定义谓词: Man(x):x是男人; Pompeian(x):x是庞贝人; Roman(x):x是罗马人; Ruler(x):x是统治者; Loyalto(x,y):x忠于y; Hate(x,y):x仇恨y; Tryassassinate(x,y):x试图暗杀y。
3
7/9/2014
A1=x (P(x) y(~D(y) L(x, y))) =x y (P(x) (~D(y) L(x, y))) --- y (P(a) (~D(y) L(a, y))) A2=x(P(x) y(~Q(y) ~L(x, y))) =x(~P(x) y(~Q(y) ~L(x, y))) =xy (~P(x) ~Q(y) ~L(x, y)) ~B=~(x(D(x) ~Q(x))) =x (D(x) Q(x)) --- D(b) Q(b) 因此,公式A1A2~B的子句集为 S={P(a),~D(y)L(a,y),~P(x)~Q(y)~L(x, y),D(b),Q(b)}
(3)Father(David,John)。 (4)~Father(u,Peter)∨ANSWER(u)。
15
7/9/2014
第四步:应用归结原理进行归结 (5)~Brother(John,y)∨Father(David,y)
(1)与(3)归结 σ={David/z,John/x}
(6)~Brother(John,Peter)∨ANSWER(David) (4)与(5)归结σ={David/u,Peter/y}
12
7/9/2014
(2) 将已知事实用谓词公式表示出来。 F1 :任何兄弟都有同一个父亲。
xyz (Brother(x,y)∧Father(z,x)→Father(z,y))
F2:John和Peter是兄弟。 Brother(John,Peter) F3: John的父亲是David。 Father(David, John) (3) 将它们化成子句集得: S1={~Brother(x,y)∨~Father(z,x)∨Father(z,y),
(7)ANSWER(David)
(2)与(6)归结
第五步:得到了归结式 ANSWER(David) ,答案即在其中 ,所以 u=David。即Peter的父亲是David。
16
7/9/2014
利用归结原理求取问题答案-习题2
练习: 已知: F1:王先生是小李的老师; F2:小李与小张是同班同学; F3:如果x与y是同班同学,则x的老师也是y的老师。 求:小张的老师是谁? 定义谓词:T(x,y):x是y的老师; C(x,y):x与y是同班同学。
相关主题