基于归结原理的自动推理及其应用

合集下载

归结原理及其应用

归结原理及其应用
称为 “ 条件 ” “ 含 ” — Q表 或 蕴 。P 图 1 真 值 表 一 : 示“ P蕴 含 Q , 如果 P 则 Q” ” 即“ , 。
其真值 表如 图 1 。 2 2 永真蕴 含 .
可知, 若对子句集 ( 一次或多次) 使用归结原理的
过程 中 , 在某 一步 推 出 了空 子 句 , 就推 出子 句 若 则
度 比只用 C R A T方 法 要 高 。 因此 , 用 P A属 性 应 C 归约 和 C R A T分类 回归 树 的方 法可 以很好 的应 用
[ ] nk nL, hoFn , sw rK e i JsnL co 3 Mi u i S u e g I a .St , ao ui g h h w,
维普资讯
第 3 (0 7 第 5期 5卷 20 )
计算机与数字工程
13 8
归结 原 理及 其 应 用
肖启 莉 肖启 敏
( 浙江万里学院 宁波 3 50 ) 空军第一航空学院 信 阳 44 0 ) 1 10 ( 60 0 摘 要 归结演绎推理是一种在计算机上得到较好实现的基于归结 原理 的推 理技术 , 介绍归结 原理 的基本 思想 以及 归结原理
参 考 文 献
[ ] .B e a , ,H r d a ,R .Ose n ,J 4 L ri n J ,Fi m n .A l nad C . m e h So e l s ct nadR ges nTesM] e o t t .Ca i ai n ersi re[ .B l n , n sf o i o m
集 中至少有 一个 子句 不可满 足 了矛 盾 , 而证 明 了 从
子句 集是不 可满 足 的
定 义 1对 于 渭 词 公 式 P和 Q, 果 P Q 永 : 如 — 真 , 称 P永 真 蕴含 Q, 称 Q 为 P的 逻辑 结 论 , 则 且 称 P为 Q的前提 , 记作 P jQ。 由以上定 义 1 真值 表可 以得 出 : 及

用python做归结演绎推理

用python做归结演绎推理

用python做归结演绎推理归结演绎推理是一种常用的逻辑推理方式,可以用Python实现。

下面我们将介绍Python如何实现归结演绎推理。

归结演绎推理基于逆否命题原理,即若一个命题的逆否命题成立,则该命题也成立。

首先,我们需要定义元素和谓词。

元素是指所涉及的对象,谓词则是描述元素的属性。

例如,元素可以是“苹果”,谓词是“红色”。

接下来,我们需要定义规则集合。

规则是对元素和谓词之间的关系进行描述的语句。

例如,“苹果是红色的”可以表示为规则。

规则集合由多个规则组成,它们共同描述一个问题的特征。

下一步是定义问题的查询语句。

查询语句是指用户想要得出结论的问题。

例如,查询“这个苹果是否是红色的?”就是一个查询语句。

最后,我们将使用Python实现归结演绎推理算法。

该算法通过对规则进行逆否命题,从而向前推导并验证查询语句。

具体实现过程如下:1. 定义元素和谓词:```element = ['苹果', '橙子', '白菜']predicate = ['红色', '橙色', '绿色']```2. 定义规则集合:```rules = [('苹果', '红色'), ('橙子', '橙色'), ('白菜', '绿色')] ```3. 定义逆否命题函数:```def inverse(pred):if "不" in pred:pred = pred[1:]else:pred = "不" + predreturn pred```4. 定义归结函数:```def resolution(goal):new_goal = inverse(goal)while True:flag = Falsefor rule in rules:if rule[1] == new_goal:new_goal = rule[0]flag = Trueif not flag:breakif new_goal == goal:return Trueelse:return False```5. 最终推理过程:```# 查询“这个苹果是否是红色的?”goal = ("苹果", "红色")if resolution(goal):print("是的,这个苹果是红色的!") else:print("不是的,这个苹果不是红色的!") ```至此,我们已经成功实现了用Python进行归结演绎推理的过程。

归结原理的应用

归结原理的应用

归结原理的应用什么是归结原理?归结原理(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的否定进行归结,找到共同项,并将其合并为新的逻辑表达式。

人工智能归结原理的推理系统

人工智能归结原理的推理系统

实验4 基于归结原理的推理系统一、实验目的1. 掌握归结原理的基本原理。

2. 练习基于归结原理的推理。

二、实验方法1.运行给定程序,理解归结原理。

(1) 把欲证明问题的结论否定,并加入子句集S,得到一个扩充的子句集S’。

(2) 设法检验子句集S’是否含有空子句,若含有空子句,则表明S’是不可满足的;(3) 若不含有空子句,则继续使用归结法,在子句集中选择合适的子句进行归结,直至导出空子句,说明子句集S’是不可满足的;或不能继续归结为止。

2.演示基于归结原理的推理系统:10.txt$已知:$ 1. John喜欢所有的食物;$ 2. 橘子是食物;$ 3. 如果某人喜欢某种食物,则他吃该食物; $求证: John吃橘子. ~fruit(x)∨like(John , x) fruit(Orange)~like(x, y)∨eat(x, y) #eat(John , Orange)(1) 否定结论~fruit(x)∨like(John , x) fruit(Orange)~like(x, y)∨eat(x, y)~eat(John , Orange) (2) 改为合取式fruit(x)∧like(John , x) fruit(Orange)like(x, y)∧eat(x, y)~eat(John , Orange) $ 拆分为子句集fruit(x)like(John , x)fruit(Orange)like(x, y)eat(x, y)~eat(John , Orange)三、实验任务1. 运行给定程序,理解归结原理。

2. 运行给定程序,求得归结结果。

附:实验报告。

归结原则总结

归结原则总结

归结原则总结简介归结原则是一种推理和证明方法,常用于数学和逻辑学中。

它可以将一个复杂的问题归结为一系列更简单的子问题,从而更容易理解和解决。

在归结原则中,我们首先将问题表达为一个或多个命题,然后使用归结推理规则对这些命题进行推理。

通过反复应用归结推理规则,最终可以得到一个完整的证明或解答。

归结推理规则归结推理规则是归结原则的核心。

它包括两个基本规则:归结规则和消解规则。

归结规则归结规则是将复杂的命题归结为更简单的命题的方法。

具体来说,如果我们有一个复合命题A,它可以被归结为两个更简单的命题A1和A2。

归结规则的常见形式包括析取归结和合取归结。

析取归结析取归结规则用于将一个复合命题归结为两个获取其中一个成立的更简单的命题。

设有一个复合命题A,它可以被表示为A1或A2,如果我们可以证明其中之一成立,那么就可以说A成立。

形式化表示如下:A = A1 ∨ A2A1为真或A2为真,则A为真合取归结合取归结规则用于将一个复合命题归结为两个同时成立的更简单的命题。

设有一个复合命题A,它可以被表示为A1和A2,如果我们可以证明A1和A2同时成立,那么就可以说A成立。

形式化表示如下:A = A1 ∧ A2A1为真且A2为真,则A为真消解规则消解规则是归结推理中另一个重要的规则。

它可以用于推导出新的命题,从而进一步简化问题。

消解规则的基本思想是消除归结规则中的冗余部分,从而得到更简洁的表达。

具体来说,消解规则通过删除具有相反符号的命题,产生新的命题。

形式化表示如下:A1 ∨ P¬P ∨ A2———A1 ∨ A2归结原则的应用归结原则在数学和逻辑学中有广泛的应用,特别是在证明和解答复杂问题时。

在数学中,归结原则可以用于证明定理和解决问题。

通过将问题归结为更简单的子问题,我们可以逐步推导出定理的证明或问题的解答。

在逻辑学中,归结原则可以用于构建逻辑推理系统和推理引擎。

通过应用归结推理规则,我们可以自动推理出命题的真值,从而实现自动推理和证明。

人工智能第三章归结推理方法

人工智能第三章归结推理方法
自动化推理
归结推理是人工智能中实现自动化推理的重要方法之一。 它能够将复杂的逻辑问题转化为计算机可处理的简单形式, 并通过计算机程序实现自动化推理。
知识表示与推理
在人工智能中,知识表示和推理是两个核心问题。归结推 理作为一种逻辑推理方法,为知识的表示和推理提供了有 效的工具。
专家系统与智能决策
专家系统和智能决策是人工智能的重要应用领域。归结推 理在这些领域中发挥着重要作用,能够帮助专家系统和智 能决策系统实现更加准确、高效的决策。
推理步骤不同
演绎推理通常包括大前提、小前提和结论三个步骤,而归结推理则 通过逐步缩小问题范围来逼近结论。
与归纳推理方法的比较
推理基础不同
归纳推理是基于对个别事物的观察和总结,得出一般性结论的推理方法;而归结推理则是基于已知事实和规 则,通过逻辑推导得出结论的推理方法。
结论的确定性不同
归纳推理得出的结论通常具有一定的或然性,因为个别事物的观察可能无法完全代表整体;而归结推理得出 的结论则具有必然性,只要前提真实且推理过程正确,结论就一定成立。
线性归结与锁归结
线性归结
通过消除冗余子句和简化归结过程,提 高归结效率。线性归结方法将子句按照 一定顺序排列,每次只考虑两个子句进 行归结,从而降低了归结的复杂性。
锁归结
在归结过程中引入锁机制,避免对已经归 结过的子句进行重复归结。锁归结方法通 过标记已归结的子句,确保每个子句只被 归结一次,从而提高了归结效率。
并行化处理
利用并行计算技术,同时处理多个子句的归结。并行化处 理方法能够充分利用计算资源,加速整个归结过程。
05 归结推理方法与其他推理 方法的比较与演推理方法的比较推理方向不同
演绎推理是从一般到特殊的推理过程,而归结推理则是从特殊到 一般的推理过程。

人工智能归结原理的推理系统

人工智能归结原理的推理系统
人工智能归结原理的推理系统是一类实现计算机智能而设计出来的推
理技术。

归结原理是一种逻辑推理的方法,即基于预先定义的一些规则,
从给定的前提得出结论。

它能够帮助计算机在复杂情况下进行数据处理、
规则推理和解决问题。

归结技术,是一种非形式的推理技术,它不是基于形式推理技术(如
谓词演算)的逻辑实现,而是一种在一定关系(如同义关系)下的实际应用。

如果一个推理需要从已知的一些事实中推断出未知的事实,则必须建
立一种关系。

归结技术建立这种关系,以推理出所需要的结果。

归结技术的应用环境可以是单一领域,也可以是泛化的领域,包括人
工智能系统的特定领域和基于知识表示的非形式专项知识库系统。

归结技术的构建需要定义和收集大量的数据,同时确定推理步骤和规则,以及如何使用这些数据和规则进行推理。

此外,需要定义推理等级和
推理阶段,以确定哪些推理步骤应出现在哪个等级和阶段的哪个位置中。

归结原理的推理系统运用了计算机、知识表示技术、数学模型和算法,为计算机提供强大的推理能力。

离散数学 第3章 基于归结原理的推理证明


4
第三章:基于归结原理的推理证明
主要内容:谓词公式与子句集的概念,斯柯林(Sko
lem)标准范式及其求取过程,海伯伦(Herbrand) 理论的H域及其解释,置换与合一,命题和谓词归结 原理,归结过程的控制策略。
教学要求:深刻理解和掌握归结原理的基本概念
和基本归结过程。
重点:归结原理的基本概念和基本归结方法 难点:归结原理的实现方法 。 实践活动:归结原理的程序实现
离散数学讲义之
数理逻辑
主讲:邱晓红
数理逻辑简介
• 数理逻辑是用数学方法研究形式逻辑的科学。 数学方法即符号方法,故数理逻辑又称符号 逻辑。包含命题逻辑、谓词逻辑、证明论、 模型论、递归函数、公理化集合论、归纳逻 辑、模态逻辑、多值逻辑和时态逻辑等内容, 与计算机有密切关系。
2
各知识点关联图
命题逻辑 简单命题 命题 复合命题 对偶式 命题公式 真值表 主合取范式 主析取范式 合取范式 析取范式 蕴含式 前提引入 P 规则 置换等 T 规则 推理规则 推理系统 置换 归结原理 自动推理 合一 量词引入规则 量词消去规则
9
(5)把全称量词全部移到公式的左边,并使每个量词的辖域包括这个量词后面公式的整 个部分。 (6)母式化为合取范式:任何母式都可以写成由一些谓词公式和谓词公式否定的析取的 有限集组成的合取。 需要指出的是,由于在化解过程中,消去存在量词时作了一些替换,一般情况下,公式 G 的 Skolem 标准型与 G 并不等值。
(x1 )(x2 )...(xn )M ( x1, x2 ,...,xn )
其中,M(x1,x2,…,xn)是一个合取范式,称为 Skolem 标准型的母式。
8
将谓词公式 G 化为 Skolem 标准型的步骤如下: (1)消去谓词公式 G 中的蕴涵(→)和双条件符号() ,以A∨B 代替 A→B,以(A∧ B)∨(A∧B)替换 AB。 (2)减少否定符号()的辖域,使否定符号“”最多只作用到一个谓词上。 (3)重新命名变元名,使所有的变元的名字均不同,并且自由变元及约束变元亦不同。 (4)消去存在量词。这里分两种情况,一种情况是存在量词不出现在全称量词的辖域内,此 时,只要用一个新的个体常量替换该存在量词约束的变元,就可以消去存在量词;另一种情况 是,存在量词位于一个或多个全称量词的辖域内,这时需要用一个 Skolem 函数替换存在量词 而将其消去。

人工智能中的自动化推理与证明技术

人工智能中的自动化推理与证明技术人工智能(Artificial Intelligence,AI)是当今科技领域的热门话题,其不断发展和普及正在深刻地改变着人类社会的方方面面。

在人工智能的众多分支领域中,自动化推理与证明技术(Automated Reasoning and Proof Technology)作为其中的重要组成部分,其在推理和证明过程中的应用正在逐渐受到重视和应用。

自动化推理与证明技术是指利用计算机技术,通过对逻辑规则和知识库的深度分析和推理,自动化地生成推论和证明结果的过程。

这种技术不仅在人工智能领域中具有重要意义,同时也在数学、计算机科学、哲学等领域中有着广泛的应用和价值。

在人工智能领域,自动化推理与证明技术主要通过逻辑推理、规则推理、知识表示等方式,帮助计算机系统模拟人类的推理和决策过程,实现智能化的功能。

通过对大量已知的事实和规则进行深度学习和分析,计算机系统可以自动化地生成推论和结论,从而为人类在决策、问题解决、智能控制等方面提供强大的支持和帮助。

自动化推理与证明技术的应用范围非常广泛,涵盖了人类社会生活中的各个领域。

在工业生产中,自动化推理技术可以帮助企业优化生产流程,提高效率和质量;在医疗健康领域,这种技术可以辅助医生进行诊断和治疗决策,提高医疗水平和效率;在交通运输领域,自动化推理技术可以帮助交通管理部门实现智能交通管控,缓解交通拥堵问题。

除了在应用领域中的重要作用外,自动化推理与证明技术在学术研究领域也具有重要意义。

通过对逻辑规则和知识库的深度分析和推理,研究人员可以深入探讨数学、哲学等领域中的一些复杂问题,推动学科的发展和进步。

例如,在人工智能领域中,研究人员通过对博弈论、逻辑推理等问题的深入研究,推动了智能算法和智能系统的发展和应用。

自动化推理与证明技术的发展壮大离不开相关领域的学术研究和产业实践的支持。

在学术界,研究人员们通过对不同领域中的逻辑规则和知识库的深入挖掘和分析,推动了自动化推理技术的不断创新和进步。

人工智能归结原理的推理系统

人工智能归结原理的推理系统
人工智能归结原理的推理系统是一种基于经典逻辑原理构建的基础归
结原理的推理系统,它的意义在于对逻辑表达和推理进行模型化的抽象。

经典逻辑是一种构建准确且明确的语义表达式的方法。

经典逻辑表达式在
交互过程中能够解释和评估一切可能出现的逻辑变量,从而深入探索一个
问题的关键原因和结果。

人工智能归结原理的推理系统能够协助人们跳出
经典逻辑中给定的语义表达式,从而更好地理解一个问题的基本归结原理。

归结原理是计算机推理系统涉及到的基本原理。

归结原理允许我们采
用一种“从特殊到一般”的策略,让计算机可以从具体的实例推知一般的
概念,以及从已知的一般的概念推知特殊的实例。

在人工智能归结原理的
推理系统中,我们可以将数据转换成一组具有归结原理表达能力的逻辑表
达式,从而将信息转换成可以推理的形式,它可以帮助人们从实例中提取
出它们所描述的模式,并使用这些模式进行复杂的计算。

归结原理是人工智能领域的基础,也是今天各种机器学习和有效决策
手段的基础,它有助于将信息处理问题转换为具备推理能力的逻辑表达式,降低解决复杂问题的门槛。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于归结原理的自动推理及其应用
[摘要]归结原理使用较广,是定理机器证明的理论基础。

既可以用来证明一些目标公式和逻辑结论的成立,又可以用来求解应用问题的答案。

比如一个目标公式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的归结式。

定理:设两个子句C1,C2,它们的归结式是C12,则C12是C1和C2的有效逻辑推论。

推论:子句集S={C1,C2,…,Cn}与子句集S1={C,C1,C2…,Cn}的不可满足性是相同的S1中的C是C1,C2的归结式,即S1是对S应用归结法后导出的子句集。

二、归结过程
对于公理集F和命题P,则归结过程如下:
(1)把F转化为子句集形式,得到子句集S0。

(2)把命题的否定也转化为子句集表示,并加入到S0中,得S=S0∨{S~p}。

(3)对子句集反复使用归结规则,直到导出含有空子句的子句集为止。

即出现归结式为空子句情况是,表明矛盾产生,证明结束。

(4)对有需要的地方分别使用替换或合一替换规则。

下面以例子来说明上述思想。

例:(1)会朗读的人是识字的(2)海豚都不识字(3)有些还豚是很机灵的
求证:有些机灵的东西不会朗读。

证明:首先把上述知识用谓词逻辑对应表示如下:
(1)x(R(x)→L(x))
(2)x(D(x)→~ L(x))
(3)x(D(x)∧I(x))
目标公式表示为:x(I(x)∧~ R(x))
然后将(1)(2)(3)化为如下的子句集:
1. ~R(x)∨L(x)
2. ~D(y)∨~ L(y)
3.D(A)
4.I(A)
目标公式的否定化为子句集
5.~I(w)∨R(w)
归结过程如下:
6. R(A)4、5
7.L(A)6、1
8. ~D(A)7、2
9. NIL 8、3
故得证。

上述的反演一般可以用来证明目标公式的成立,但如果含有存在量词量化变元的目标公式,如xW(x),有时我们不但要求证明它成立,而且希望知道变元X的一个例,可以直接用反演法证明,但要回答X=?W为真,就需要问题的答案。

这种问题的解答步骤如下:
(1)把已知前提的谓词公式化为相应的子句集,设为S
(2)把待求解的问题也用谓词公式表示出来,然后把它否定
(3)设一个ANSWER谓词,其变元与问题公式的变元完全相同,把它与(2)析取,并化为子句集,然后把它并入S中。

(4)对S应用归结原理进行归结。

(5)若得到的归结式是ANSWER,则答案就在ANSWER中。

例已知:王先生是小李的老师,小李是小张的同班同学,如果X与Y是同班同学,则X的老师也是Y 的老师。

求:小张的老师是谁?
解:T(x,y):x 是y的老师
C(x,y)x 是y的同学
则根据上述条件有:(1)T(wang ,li);
(2) C (li ,zhang);
(3)x y z(C(x,y)∧T(z,x)→T(z,y))
(4)~ xT(x,zhang)∨ANSWER(x)
把上述化为子句S有:
(1)T (wang ,li)
(2) C (li ,zhang);
(3)~C(x,y)∨~ T(z,x)∨T(z,y)
(4)~T(u,zhang)∨ANSWER(wang)
对上述子句集进行归结有:
(5)~C(li,y)∨T(wang,y)(1)(3)
(6)~C(li,zhang)∨ANSWER(wang)(4)(5)
(7)ANSWER(wang)(2)(6)
所以得出结论:小张的老师是王老师。

上述例子都是基于水平浸透法的归结证明,会产生大量不相干的和多余的子句,再如下例:
令S={~P∨~Q∨R,P∨R,Q∨R,~R}。

用水平浸透法证明S的不可满足性,过程如下:S0:(1)~P∨~Q∨R
(2)P∨R
(3)Q∨R
(4)~R
S1:(5)~Q∨R(1),(2)
(6)~P∨R(1),(3)
(7)~P∨~Q (1),(4)
(8)P(2),(4)
(9)Q(3),(4)
S2:(10)~Q∨R(删除)(1),(8)
(11)~P∨R(删除)(1),(9)
(12)R (2),(6)
(13)~Q∨R(删除)(2),(7)
(14)R(删除)(3),(5)
(15)~Q(4),(5)
(16)~P(4),(6)
(17)R(删除)(5),(9)
(18)R(删除)(6),(8)
(19)~Q(删除)(7),(8)
(20)~P(删除)(7),(9)
(21)R(删除)(2),(16)
(22)R(删除)(3),(15)
(23)□(4),(12)
可以看出,在整个证明过程中,有用的子句只有(6)和(12),其他子句都是不相干的和多余的。

如果用某种方法将子句集S分成两部分,S1和S2,并且同一集合里的子句不允许进行归结,那就能阻止很多子句的产生,当然条件是不能阻止空子句的产生。

在上面的例子里,如果将S分为:
S1={(2),(3)},S2={(1),(4)}
则就阻止了(1)和(4)进行的归结,但是(2),(3)仍然能和(4)归结。

如果我们也能阻止(2),(3)和(4)的归结,则在S1中就只剩下子句(5),(6),阻止了子句(7),(8),(9)的产生。

[参考文献]
[1] 王宪钧.数理逻辑引论〔M〕.北京:北京大学出版社,1988.
[2] 何华灿.人工智能导论〔M〕.西安:西北工业大学出版社,1988.。

相关文档
最新文档