应用归结原理例-2014
归结原理

置换(substitution)
定义: 置换是一个形如{t1/v1,…, tn/vn}的有 限集,其中每个vi是变量,ti是不同于vi的项 (常量、变量或函数)(vi≠ti)。当i≠j时, vi≠vj。
无元素组成的置换称为空置换,记为ε;
例子:
{a/x, w/y, f(s)/z}, {g(x)/x}是置换; {x/x}, {y/f(x)}不是置换;
S={P∨Q,~P∨Q,P∨~Q,~P∨~Q} P∨Q ~P∨Q P∨~Q ~P∨~Q Q (1,2) ~Q (3,4) nil (5,6)
定义: 推演
给定一个子句集合S,从S到子句C的一个推演是 一个有限的子句序列C1 ,…, Ck,使得每个Ci 或是 S中的一个子句,或是C1到Ci-1中的某些子句的一 个归结式,而Ck=C。如果C=nil,则这个推演 (推导)称为S的一个证明,或反演。
推演树(deduction tree)
S={P∨Q,~P∨Q,P∨~Q,~P∨~Q}
P∨Q ~P∨Q P∨~Q ~P∨~Q
Q
~Q
nil
归结定理完备性
如果S不相容,则一定存在一个S的反演。
三. 置换与合一
例:
C1:P(x) ∨ Q(x) C2:~P(f(x)) ∨ R(x)
没有互补对; 例:
C1:P(y) ∨ Q(y) {y/x} C1:P(f(x)) ∨ Q(f(x)) {f(x)/y} C:R(x) ∨ Q(f(x))
子句集S是不可满足的,当且仅当存在一个 有限不可满足的S的基础实例集合S’。 Gilmore的方法(1960) Davis-Putnam: 提高效率
困难:
生成基础实例集合是指数复杂性的.
例子
例子
数学分析中的归结原理应用

数学分析中的归结原理应用什么是归结原理归结原理是数学分析中的一个重要概念,它是描述事物从复杂到简单的演化过程。
在数学分析中,归结原理是一种分解问题的方法,将复杂的问题分解为若干个简单的子问题,然后逐个解决这些子问题,最后将它们的解合成原来问题的解。
归结原理的应用归结原理在数学分析中有广泛的应用,下面列举一些常见的例子:1.级数求和:在数学分析中,级数求和是一个常见的问题。
归结原理可以将一个级数分解为多个简单的子级数,然后分别求解这些子级数,最后将它们的和合并为原级数的和。
这样可以降低求解级数的复杂度,提高计算效率。
2.极限计算:在数学分析中,极限计算是一个重要的内容。
归结原理可以将一个复杂的极限问题分解为多个简单的子问题,然后逐个解决这些子问题,最后将它们的解合并为原问题的解。
这样可以将一个复杂的计算过程简化为多个简单的计算步骤,提高计算的准确性和效率。
3.函数求导:在数学分析中,函数求导是一个常见的问题。
归结原理可以将一个复杂的函数求导问题分解为多个简单的子问题,然后逐个求解这些子问题,最后将它们的结果合并为原函数的导数。
这样可以简化函数求导的过程,提高计算的准确性和效率。
4.微分方程求解:在数学分析中,微分方程求解是一个重要的内容。
归结原理可以将一个复杂的微分方程分解为多个简单的子方程,然后逐个解决这些子方程,最后将它们的解合并为原方程的解。
这样可以降低求解微分方程的复杂度,提高计算的准确性和效率。
5.数列递推:在数学分析中,数列递推是一个常见的问题。
归结原理可以将一个复杂的数列递推问题分解为多个简单的子问题,然后逐个求解这些子问题,最后将它们的结果合并为原数列的递推公式。
这样可以简化数列递推的过程,提高计算的准确性和效率。
通过归结原理,我们可以将复杂的数学分析问题分解为若干个简单的子问题,然后逐个解决这些子问题,最后将它们的解合并为原问题的解。
这样可以降低解决问题的复杂度,提高计算的效率和准确性。
海涅归结原理

海涅归结原理海涅定理是德国数学家海涅(Heine)给出的,应用海涅定理人们可把函数极限问题转化(归结)成数列问题,因而人们又称它为归结原则。
海涅原理搭建起了数列极限和函数极限之间的桥梁,求函数极限问题可以转化成为求数列极限的问题,求数列极限的问题也可以转化成为求函数极限的问题。
同样也可以利用此定理及间接的判断敛散性。
定义:若函数f(x)在Uo(x0)有定义 , limx→x0f(x)=A∈R⟺∀xn∈Uo(x0) limn→∞xn=x0, limn→∞f(xn)=A 注:是子数列(注:xn是子数列)应用一:证明函数极限不存在时可以用海涅定理1∘: 若存在子数列xn∈U∘(x0),limn→∞xn=x0 使{f(xn)} 发散,则limx→x0f(x) 不存在。
2∘: (双子数列方法)若存在xn,yn∈U∘(x0),limn→∞xn=x0,limn→∞yn=x0 ,且满足limn→∞f(xn)=A,limn→∞f(yn)=B ,若A≠B ,则limx →x0f(x) 不存在,反之则存在。
3∘: 若limx→x0f(x) 存在,xn∈U∘(x0), 且xn≠x0 , limn→∞xn=x0,limn→∞f(xn)=A ⟹limx→x0f(x)=A例:求证limx→∞sinx 不存在。
证明:方法一:任取子数列:时xn=π2+nπ(n→∞时,xn→∞)f(xn)=1,−1,1,−1,1,−1,1,−1⋯⋯由于limn→∞f(xn) 不存在,所以limx→∞sinx .方法二:任取两个收敛的子数列,但是可证出极限值不相等——发散令yn=nπ,limn→∞yn=0,xn=2nπ+π2,limn→∞xn=1 ,两个子数列均是收敛的,但是收敛的极限值不同,所以函数f(x)=sinx 是发散的.例:若f(x) 为R 上以t 为周期的周期函数,limx→∞f(x)=A ,求f(x) . 在证明过后应当作结论记住(在证明过后应当作结论记住)注解:利用周期函数的性质找出趋向于∞的子数列.解:xn=x,x+t,x+2t⋯⋯x+ntf(x)=f(x+t)=f(x+2t)=⋯⋯=f(x+nt) , 则当x→∞时,[xn+nt]⟶+∞,∀x0 , limn→∞f(x0+nt)=f(x0) ,所以limn→∞f(x)=f(x0)又∵x0 的任意性∴f(x0)=f(x)=A例:设f(x) 在(0,+∞) 上有定义,∀x∈R+, 有f(x)=f(3x) , limn→0+f(x)=A求f(x)解:∵f(x)=f(x3)=f(x32)=f(x33)=⋯⋯=f(x3n)limn→+∞x3n=0+ ⇒∀x0 , limn→∞f(x03n)=f(x0) ⇒limx→0+f(x)=f(x0)因为x0 的任意性,所以f(x0)=f(x)=A例:设f(x) 在(0,+∞) 上有定义,∀x∈R+, 有f(x)=f(x3) , limx→∞f(x)=A∈R求f(x)解:f(x)=f(3x)=f(32x)=⋯⋯=f(3nx) ,limn→∞3nx→∞∀固定x0 ,有limn→∞f(3nx0)=f(x0) limn→∞f(x)=f(x0)又由于x0 的任意性,推广得到f(x0)=f(x)所以:f(x)=A总结:先依据周期性找到合适的递推公式,先固定任意的x0 ,根据海涅定理得到limx→∞f(x)=f(x0) ,最后根据x0 的任意性推广到所有的x .。
归结原理的应用

归结原理的应用什么是归结原理?归结原理(Resolution Principle)是一种基本的推理规则,常用于自动定理证明和人工智能中的逻辑推理。
它是数理逻辑和计算机科学中一种重要的推理方法。
它的基本思想是通过将问题转化为一个逻辑蕴含问题,寻找到逻辑上的矛盾,从而证明问题的可解性。
归结原理的基本原理归结原理的基本原理是使用反证法。
假设我们要证明某个命题P成立,我们假设P不成立,即假设P的否定Q成立。
然后,我们将命题P和Q转化为它们的逻辑表达式形式,如用命题变元和逻辑连接词表示。
接下来,我们将P和Q的否定进行归结,即通过合并两个逻辑表达式,找到它们的共同项,并化简为新的逻辑表达式。
最后,我们检查新的逻辑表达式是否包含矛盾项,如果包含矛盾项,则我们得出结论:P成立。
归结原理的应用领域归结原理在人工智能、计算机科学、数理逻辑等领域有广泛的应用。
下面列举了一些常见的应用领域:1.自动定理证明:归结原理作为一种常用的推理方法,广泛应用于自动定理证明中。
通过将待证明的命题转化为一个逻辑蕴含问题,并应用归结原理进行逻辑推理,可以自动证明命题的可解性。
2.人工智能:归结原理在人工智能中也有重要的应用。
以逻辑编程语言Prolog为代表的基于归结原理的推理系统,可以处理复杂的推理问题,例如知识库查询、推理规则执行等。
3.硬件验证:归结原理在硬件验证领域也有广泛应用。
通过将设计规约转化为逻辑蕴含问题,并应用归结原理进行推理,可以验证硬件设计的正确性。
4.自然语言处理:归结原理在自然语言处理中也有应用。
通过将自然语言句子转化为逻辑表达式,并利用归结原理进行推理,可以进行语义解析、推理和逻辑推理等任务。
如何应用归结原理?应用归结原理进行推理,需要遵循以下步骤:1.将待证明的命题转化为逻辑蕴含问题形式,即将待证明的命题P和它的否定Q转化为逻辑表达式形式。
2.对P和Q的逻辑表达式进行化简,消除冗余项。
3.使用归结原理,将P和Q的否定进行归结,找到共同项,并将其合并为新的逻辑表达式。
第三章 谓词逻辑与归结原理

以正向推理所得结果作为假设进 行反向推理
退出
是 还需要正向推理吗?
否
2014-4-9
18
华北电力大学
概述-推理的控制策略
搜索策略
推理时,要反复用到知识库中的规则,而知识库中 的规则又很多,这样就存在着如何在知识库中寻找 可用规则的问题 为有效控制规则的选取,可以采用各种搜索策略 常用搜索策略:
归结推理方法在人工智能推理方法中有着很重 要的历史地位,是机器定理证明的主要方法
2014-4-9
25
华北电力大学
归结法的特点
归结法是一阶逻辑中,至今为止的最有效的半可 判定的算法。也是最适合计算机进行推理的逻辑 演算方法 半可判定 一阶逻辑中任意恒真公式,使用归结原理,总 可以在有限步内给以判定(证明其为永真式) 当不知道该公式是否为恒真时,使用归结原理 不能得到任何结论
(5) 上下文限制
上下文限制就是把产生式规则按它们所描述的上下文分组,在某种 上下文条件下,只能从与其相对应的那组规则中选择可应用的规则
2014-4-9
22
华北电力大学
概述-推理的控制策略
推理的控制策略
3.冲突解决策略
(6) 按匹配度排序
在不精确匹配中,为了确定两个知识模式是否可以进行匹配,需要 计算这两个模式的相似程度,当其相似度达到某个预先规定的值时,就 认为它们是可匹配的。若有几条规则均可匹配成功,则可根据它们的匹 配度来决定哪一个产生式规则可优先被应用
如专家系统、智能机器人、模式识别、自然语言理解等
推理
按照某种策略从已有事实和知识推出结论的过程。 推理是由程序实现的,
称为推理机
医疗诊断专家系统
• 知识库中存储经验及医学常识 • 数据库中存放病人的症状、化验结果等初始事实 • 利用知识库中的知识及一定的控制策略,为病人诊治疾病、开出医疗处方就 是推理过程
应用归结原理例讲课教学文案

任何肯学习或幸运的人都可以通过所有考试; 张不肯学习但他是幸运的; 任何幸运的人都能获奖。 证明:张是快乐的。
定义谓词 Pass(x,y):x通过考试y;Win(x,prize):x获奖;Happy(x):x快乐;
7 Study(x):x肯学习; 6/19L/20u20cky(x):x幸运。
(3) 将它们化成子句集得:
S1={~Brother(x,y)∨~Father(z,x)∨Father(z,y),
Brother(John,Peter), Father(David,John)}
12
6/19/2020
第二步:把问题用谓词公式表示出来, 并将其否定与谓词ANSWER作析取。
设Peter的父亲是u,则有:Father(u,Peter)。 将其否定与ANSWER作析取,得:
8
6/19/2020
(二)利用归结原理求取问题答案
利用归结原理求取问题答案的步骤:
(1)把已知前提条件用谓词公式表示出来,并化成相应的子句集, 设该子句集的名字为S1。
(2)把待求解的问题也用谓词公式表示出来,然后将其否定,并 与一谓词ANSWER构成析取式。谓词ANSWER是一个专为求 解问题而设置的谓词,其变量必须与问题公式的变量完全一致。
(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)
4
6/19/2020
函数极限的归结原理应用

函数极限的归结原理应用1. 什么是函数极限的归结原理函数极限的归结原理,也称为函数极限的替换原理,是数学分析领域的基本理论之一。
它是一种用来确定函数在某一点的极限值的方法。
归结原理的核心概念是,如果函数在某一点处的极限存在,并且在该点附近的所有邻域内,函数与另一个函数的差的绝对值可以任意小,则这两个函数具有相同的极限值。
2. 函数极限的归结原理的应用范围函数极限的归结原理在数学分析的各个领域都有广泛的应用。
以下是一些应用范围的例子:•极限计算:函数极限的归结原理是计算极限值的重要工具。
通过将给定函数与一个已知函数的差化为极限较为容易计算的形式,可以简化极限计算的过程。
•导数计算:在微分学中,导数是一个函数在某一点处的变化率。
函数极限的归结原理可以用于计算导数。
通过将函数化为极限的形式,可以得到函数在该点的导数。
•积分计算:在积分学中,积分是计算函数面积的一种方法。
函数极限的归结原理可以用于计算积分。
通过将函数化为极限的形式,可以得到函数的积分。
•级数求和:在级数学中,级数是一系列数的无穷和。
函数极限的归结原理可以用于求和级数。
通过将级数拆分为两个或多个级数的差,可以简化级数的求和计算。
3. 函数极限的归结原理的实例应用为了更好地理解函数极限的归结原理的应用,以下是一些实例应用的情况。
3.1 极限计算问题描述计算函数 f(x) = (3x^2 + 2x + 1) / (x - 1) 在 x = 1 处的极限。
解决方法首先,我们可以将函数化简为以下形式:f(x) = (3x^2 + 2x + 1) / (x - 1) = (x + 1)(3x + 1) / (x - 1)接下来,我们可以通过函数极限的归结原理来计算极限。
我们选择一个与函数中的 (x - 1) 相同的函数 g(x) = x - 1,并进行化简:f(x) = ((x + 1)(3x + 1) / (x - 1)) * (g(x) / g(x))化简后得到:f(x) = ((x + 1)(3x + 1) * g(x)) / ((x - 1) * g(x))在 x = 1 处,g(x) = 1 - 1 = 0,而分子 ((x + 1)(3x + 1) * g(x)) 在 x = 1 处等于 2,分母 ((x - 1) * g(x)) 在 x = 1 处等于 0。
归结原理例题

归结原理例题归结原理是一种常用的逻辑推理方法,它通过排除所有可能性来证明一个命题的真实性。
归结原理的应用范围非常广泛,不仅在数学和逻辑学中有着重要的地位,而且在人工智能、计算机科学等领域也有着重要的应用。
在本文中,我们将通过一些例题来详细介绍归结原理的具体应用。
例题1:命题,如果今天下雨,那么小明不会去游泳。
已知,今天小明去了游泳。
问题,能否得出今天没有下雨的结论?解答,首先,我们将原命题进行否定,得到“今天下雨,小明去了游泳”。
然后,我们将这个命题与已知条件进行合取,得到一个矛盾的命题,“今天下雨,小明去了游泳,今天没有下雨”。
由此可见,根据归结原理,我们可以得出结论,今天没有下雨。
例题2:命题,如果小明学习了,那么他会通过考试。
已知,小明没有通过考试。
问题,能否得出小明没有学习的结论?解答,同样地,我们首先将原命题进行否定,得到“小明学习了,他通过了考试”。
然后,我们将这个命题与已知条件进行合取,得到一个矛盾的命题,“小明学习了,他通过了考试,小明没有通过考试”。
根据归结原理,我们可以得出结论,小明没有学习。
通过以上两个例题的分析,我们可以看到归结原理在逻辑推理中的重要作用。
它通过排除所有可能性,从而得出最终的结论。
在实际应用中,归结原理常常与其他逻辑推理方法相结合,共同解决各种复杂的问题。
除了上述例题外,归结原理还有许多其他应用,比如在人工智能中,归结原理被广泛应用于知识表示和推理领域;在计算机科学中,归结原理被应用于程序验证和形式化验证等方面。
可以说,归结原理是一种非常强大的逻辑推理方法,它在各个领域都有着重要的作用。
总之,归结原理是一种非常重要的逻辑推理方法,它通过排除所有可能性来证明一个命题的真实性。
通过本文的例题分析,相信读者对归结原理有了更深入的理解,也希望读者在实际应用中能够灵活运用归结原理,解决各种复杂的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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是同班同学。