应用归结原理例-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. 归纳思维:将待证明的命题分解为一系列子命题,并逐个证明这些子命题,最终得到原命题的证明。
二、归结法的步骤归结法通常包括以下步骤:1. 将待证明的命题转化为合取范式(Conjunctive Normal Form, CNF)或析取范式(Disjunctive Normal Form, DNF)。
这样可以将复杂的逻辑表达式转化为简单的合取或析取形式,方便进行后续操作。
2. 对于合取范式,使用反演律将其转化为析取范式;对于析取范式,使用德摩根定律将其转化为合取范式。
这样可以将待证明的命题转化为一系列子命题的析取或合取形式。
3. 对于每个子命题,进行归结操作。
归结操作通过将两个子命题进行归结,得到一个新的子命题。
归结操作的规则包括反演、消解、合一等。
4. 重复进行归结操作,直到得到一个空子句(empty clause),即一个不包含任何文字的子句。
如果能够得到空子句,则原命题为真;如果无法得到空子句,则原命题为假。
三、归结法的应用举例以下是一个简单的例子来说明归结法的应用:假设有以下两个前提:1. 所有人都是动物。
2. 所有猫都是动物。
我们要证明的命题是:所有猫都是人。
将前提转化为合取范式:1. (¬人(x) ∨ 动物(x))2. (¬猫(x) ∨ 动物(x))使用反演律将合取范式转化为析取范式:1. (¬人(x) ∨ 动物(x))2. (¬猫(x) ∨ 动物(x))接下来,我们进行归结操作。
根据第1个前提和第2个前提中的第2个子句,我们可以得到一个新的子命题:3. ¬人(x) ∨ 动物(x)我们再次进行归结操作。
归结原理例题
归结原理例题归结原理是一种重要的逻辑推理方法,它在数学、哲学和计算机科学等领域都有着广泛的应用。
归结原理的核心思想是通过对命题进行合并和简化,从而得出结论。
在解题过程中,我们可以通过归结原理来推导出新的命题,从而解决问题。
下面,我们将通过一些例题来详细介绍归结原理的应用。
例题一:已知命题:1. 如果今天下雨,那么地面会湿。
2. 如果地面湿,那么草会变绿。
3. 如果草变绿,那么太阳会晒。
问题,如果今天下雨,太阳会晒吗?解答,首先,我们可以将问题转化为逆否命题的形式,即“如果太阳不晒,那么今天没有下雨”。
然后,我们可以使用反证法来证明这个命题。
假设今天没有下雨,那么根据第一条命题,地面不会湿;根据第二条命题,草不会变绿;根据第三条命题,太阳不会晒。
因此,我们可以得出结论,如果今天没有下雨,太阳不会晒。
由此可知,如果今天下雨,太阳会晒。
例题二:已知命题:1. 如果小明学习努力,他就能考上理想的大学。
2. 如果小明考上理想的大学,他就能实现自己的梦想。
问题,小明能否实现自己的梦想?解答,根据已知命题,我们可以得出结论,如果小明学习努力,他就能实现自己的梦想。
因此,我们需要证明的是“小明学习努力”。
假设小明没有学习努力,那么根据第一条命题,他就不能考上理想的大学;根据第二条命题,他就不能实现自己的梦想。
因此,我们可以得出结论,小明能够实现自己的梦想。
例题三:已知命题:1. 如果一个人热爱学习,他就会取得好成绩。
2. 如果一个人取得好成绩,他就会被老师表扬。
3. 如果一个人被老师表扬,他就会感到开心。
问题,如果一个人热爱学习,他会感到开心吗?解答,根据已知命题,我们可以得出结论,如果一个人热爱学习,他会感到开心。
假设一个人热爱学习,那么根据第一条命题,他会取得好成绩;根据第二条命题,他会被老师表扬;根据第三条命题,他会感到开心。
因此,我们可以得出结论,如果一个人热爱学习,他会感到开心。
通过以上例题的分析,我们可以看到归结原理在逻辑推理中的重要作用。
应用归结原理例-讲课
8
应用归结原理进行定理证明-习题5
练习--“激动人心的生活” 练习 激动人心的生活”问题 激动人心的生活 假设: 假设: 所有不贫穷并且聪明的人都是快乐的; 所有不贫穷并且聪明的人都是快乐的; 那些看书的人是聪明的; 那些看书的人是聪明的; 李明能看书且不贫穷; 李明能看书且不贫穷; 快乐的人过着激动人心的生活。 快乐的人过着激动人心的生活。 求证:李明过着激动人心的生活。 求证:李明过着激动人心的生活。 定义谓词: 定义谓词: Poor(x):x贫穷; Smart(x):x聪明; Happy(x):x快乐; 贫穷; 聪明; 快乐; 贫穷 聪明 快乐 Read(x):x看书; Exciting(x):x过着激动人心的生活。 看书; 过着激动人心的生活。 看书 过着激动人心的生活
5
12/19/2011
应用归结原理进行定理证明-习题2
练习:设有下列知识: 练习:设有下列知识: F1:自然数都是大于等于零的整数; :自然数都是大于等于零的整数; F2:所有整数不是偶数就是奇数; :所有整数不是偶数就是奇数; F3:偶数除以 是整数。 是整数。 :偶数除以2是整数 求证:所有自然数不是奇数就是其一半为整数的数。 求证:所有自然数不是奇数就是其一半为整数的数。 定义谓词: 定义谓词: N(x):x是自然数;I(x):x是整数;GZ(x):x大于等于零 是自然数; 是整数; 大于等于零; : 是自然数 : 是整数 大于等于零 E(x):x是偶数 是偶数; O(x):x是奇数。 是奇数。 : 是偶数 : 是奇数 定义函数f(x):x除以 。 除以2。 定义函数 : 除以
9
12/19/2011
(二)利用归结原理求取问题答案
利用归结原理求取问题答案的步骤: 利用归结原理求取问题答案的步骤: (1)把已知前提条件用谓词公式表示出来,并化成相应的子句集, )把已知前提条件用谓词公式表示出来,并化成相应的子句集, 设该子句集的名字为S 设该子句集的名字为 1。 (2)把待求解的问题也用谓词公式表示出来,然后将其否定, 并 )把待求解的问题也用谓词公式表示出来,然后将其否定, 与一谓词ANSWER构成析取式 。 谓词 构成析取式。 与一谓词 构成析取式 谓词ANSWER是一个专为求 是一个专为求 解问题而设置的谓词,其变量必须与问题公式的变量完全一致。 解问题而设置的谓词 ,其变量必须与问题公式的变量完全一致。 (3)把(2)中的析取式化为子句集,并把该子句集与 1合并构成 ) )中的析取式化为子句集,并把该子句集与S 子句集S。 子句集 。
人工智能 一般搜索原理---归结原理
第九讲一般搜索原理----归结反演求解
例8 S={p∨q, ∼p∨q, p∨ ∼ q, ∼p∨∼q}
解:选顶子句C0= p∨q (1)p∨q 归结式: (2)∼p∨q (5) q (1)(2) (3) p∨∼q (6) p (3)(5) (4) ∼p∨∼q (7) ∼q (4)(6) (8) nil (6)(7)
第八讲一般搜索原理----归结原理
1.归结推理规则 设有两子句:c1=p∨c1’ c2= ~ p∨c2’ 从中消去互补对p和~ p,所得的新子句: R(c1, c2)= c1’ ∨ c2’ 称为子句c1,c2的归结式.
第八讲一般搜索原理----归结原理
例子: 假言推理:s={p, ~ p∨q} 归结式: q 合并推理 : s={p ∨q, ~ p∨q} 归结式: q 重言式: s={p ∨q, ~ p∨ ~ q} 归结式: p ∨ ~ p q∨~q 空子句: s={p, ~ p} 归结式: nil 三段式: s={~ p ∨q, ~ q∨r} 归结式: ~ p ∨r p→r
归结反演树
第九讲一般搜索原理----归结反演求解
三.归结反演求解
从归结反演中求取对某个问题的解答称反演求解. 若把归结反演过程用一棵反演树表示,答案求取需要将 一棵根部有nil的反演树变换为在根部带有可用作答案 的某一个语句的一棵证明树. 步骤:
(1)把由目标公式的否定产生的每个子句添加到目标公式否定之否 定的子句中. (2)按照反演树,执行和以前相同的归结,直到在根部得到某个子句 为止. (3)用根部的子句作为一个回答语句.
第九讲一般搜索原理----归结反演求解
例2 如果无论John到哪里去,Fido也就去哪里,那 么如果John在school,Fido在school吗? 解: 前提公式集 ∀(x)[AT(John,x)→AT(Fido,x)] 化为子句:∼ AT(John,x) ∨ AT(Fido,x) AT(John,school) 目标公式∃(x)AT(Fido,x) 否定目标: ∼ AT(Fido,x)
(完整版)应用归结原理例-2014
1
4/14/2020
(一)应用归结原理进行定理证明
应用归结原理进行定理证明的步骤: 设要被证明的定理表示为: A1∧A2∧…∧An B
(1)首先否定结论B,并将否定后的公式~B与前提公式集组成如下形 式的谓词公式: G= A1∧A2∧…∧An∧~B
(2) 求谓词公式G的子句集S。 (3) 应用归结原理,证明子句集S的不可满足性。
6
4/14/2020
应用归结原理进行定理证明-习题3
练习: (1)马科斯(Marcus)是男人;(2)马科斯是庞贝人; (3)所有庞贝人都是罗马人;(4)恺撒(Caesar)是一位统治者; (5)所有罗马人忠于或仇恨恺撒;(6)每个人都忠于某个人; (7)男人们只想暗杀他们不忠于的统治者;(8)马科斯试图暗杀恺撒。 证明:马科斯仇恨恺撒。
应用归结原理进行定理证明-习题5
练习--“激动人心的生活”问题 假设:
所有不贫穷并且聪明的人都是快乐的; 那些看书的人是聪明的; 李明能看书且不贫穷; 快乐的人过着激动人心的生活。 求证:李明过着激动人心的生活。
定义谓词:
Poor(x):x贫穷; Smart(x):x聪明; Happy(x):x快乐; Read(x):x看书; Exciting(x):x过着激动人心的生活。
(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)
5
4/14/2020
应用归结原理进行定理证明-习题2
数学分析中的归结原理及其应用
则
可用反证法推出 lim x→ x0
f (x) = A .
事实上,
倘若当 x → x0 时
f
不以 A 为极限,
则
存在 ε 0 > 0 , 对任何δ > 0 (无论多么小)总存在一点 x , 尽管 0 < x − x0 < δ , 但
有 f (x) − A ≥ ε0 .
现依次取 δ
=
δ
′,
δ′ 2
,
δ′ 3
f
(xn )
≠
A ,矛盾!
证明:(3)必要性 设 lim f (x) = A 对 ∀ε > 0, ∃M > 0 ,使得当 x > M 时,有 x→∞
f (x) − A < ε ,另一方面,设 xn → ∞(n → ∞) ,则对上述 M > 0, ∃N > 0 ,使得当
n > N 时,必有 x0
> M ,从而有
lim
x → x0
f
(x)
=
A
⇔
对任何以
x0
为极限的数列 {xn} ,
xn
≠
x0
,总有
lim
x→∞
f
(xn )
=
A
3
2)从归结原理可以得到证明 lim f (x) 不存在的方法: x → x0
(1)
∃{xn },
xn
→
x0 ,
n → ∞ ,使 lim n→∞
f (xn ) 不存在;
(2)
∃{xn '}, {xn "} xn '→ x0 , xn "→ x0 , n → ∞ .
f
(x0 )
归结原理
2.6 利用归结原理求取问题的答案
求解答案的基本思想和定理证明类似。其求解步骤如下: (1)把前提条件用谓词公式表示出来,并且化为相应 的子句集S。 (2)把待求解的问题也用谓词公式表示出来,其中含 有欲求解的变元。 (3)另设一个特殊的一元谓词ANSWER,其变元和求 解问题公式中的变元相同。 (4)把求解公式和ANSWER谓词“或”起来构成析取 式,把此析取式化成子句集后并入条件子句集S中形成新子 句集S'。 (5)对S'用归结原理进行归结。 (6)若归结的结果是ANSWER,则其已实例化的变元 就是问题的答案。
o
o
定义2-32 子句C1和C2的归结式是下列 定义 二元归结式之一: (1)C1与C2的二元归结式 (2)C1与C2的因子的二元归结式 (3)C1的因子与C2的二元归结式 (4)C1的因子与C2的因子的二元归结式
例如,有两个子句 C1=P(x)∨P(f(y))∨R(g(y)) C2= ~ P(f(g(a)))∨Q(b)) (1)子句C1中有可合一的文字 {P(x) ,P(f(y))} , 它们的最一般合一是σ1={f(y)/x} C1的因子是C1σ1 =P(f(y))∨R(g(y)) , C (2)又由于P(f(y))和~ P(f(g(a)))是可合一的文字,它们的最 一般合一是θ={g(a)/y} 所以C1σ1和C2有二元归结式R(g(g(a))) ∨ Q(b) 它就是C1和C2的归结式。
程序常用的方法是水平浸透法,它的做法如下: (a)把S0中的子句排序; (b)在S0中顺序地考虑两个子句的归结式:即第一个子句和其 后各子句归结,然后第二个子句和其后各子句归结,第三个子 句再和其后各子句归结,…,直至倒数第二个子句和最后一个 子句归结,得到子句集S1: S1={C12 | C1∈S0,C2∈S0} 检查S1中是否有空子句,如有空子句,则归结结束,否则继 续步骤(c); (c)将S1并入S0得S0∪S1。再顺序地考虑子句集S0∪S1和S1 的归结式,即一个子句来自子句集S0∪S1,另一个子句来自 S1,得到子句集S2: S2={C12 | C1∈S0∨S1,C2∈S1} 检查S2中是否有空子句,如无空子句则还要重复上述过程…
基于归结原理的自动推理及其应用
基于归结原理的自动推理及其应用[摘要]归结原理使用较广,是定理机器证明的理论基础。
既可以用来证明一些目标公式和逻辑结论的成立,又可以用来求解应用问题的答案。
比如一个目标公式xW(x),有时我们不但要求证明它成立,而且希望知道变元x的一个例,即如果回答x=A,W是否为真?可直接用归结反演证明,但要回答x=? W为真时,就需要问题的答案。
本文给出了归结原理在这两方面的应用,最后指出了使用水平浸透法证明不可满足性所带来的子句冗余,以及避免子句冗余的一个方法。
[关键词]归结原理;人工智能;机器证明;水平浸透法自动定理证明是人工智能科学中的一个重要的研究领域,许多数学问题甚至是非数学问题(如医疗诊断,机器人行动规划)都可以归结为一个定理证明的问题。
在定理机器证明中,已知一公式集F1,F2…Fn,要证明一个公式W是否成立,即要证明W是公式集的逻辑推论时,一种方法是要证明F1∧F2∧…∧Fn→W 为永真,如果直接运用推理规则进行推导,由于演绎技巧等因素,给建立机器证明系统带来困难。
另一种证明方法是采用间接法(反证法),即不去证明F1∧F2∧…∧Fn→W为真,而是去证明F=F1∧F2∧…∧Fn∧~W为永假,这就等价于证明F对应的子句集S=S0∨{~W}为不可满足的。
这时候如果用归结作为推理规则使用时,就可以使机器证明简化了。
归结原理的思想是设法检验扩充的子句集S1是否有空子句。
若S中有空子句,则S为不可满足的,若没有空子句,就进一步用归结法从S导出S1,然后再检验S1是否有空子句,可以证明用归结法导出的扩大子句集S1,其不可满足性是不变的,所以S1中有空子句,也就证明了S的不可满足性。
归结过程可以一直进行下去,就是要通过归结过程演绎出S的不可满足性来,从而使定理得到证明。
一、基本原理对于子句集S中的任意两个子句C1,C2,若在C1中有一个文字L1,它是子句C2中文字L2的补,那么从C1,C2中分别消去L1和L2,并将剩下的子句构成析取,这样的新子句称为C1,C2的归结式。
- 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是同班同学。