人工智能原理复习--确定性推理

文章目录

  • 上一篇
  • 推理概述
  • 自然演绎推理
    • 合适公式
  • 归结演绎推理
    • 归结原理
    • 归结反演
  • 提升归结效率
  • 下一篇

上一篇

人工智能原理复习–知识表示(二)

推理概述

推理就是按某种策略由已知判断推出另一判断的思维过程

分类:

  1. 演绎推理、归纳推理、默认推理
  2. 确定推理、不确定推理
  3. 单调推理、非单调推理

冲突消解策略:

  1. 按就近原则排序
  2. 按已知事实的新鲜度排序
  3. 按匹配度排序
  4. 按领域问题特点排序
  5. 按上下文限制排序
  6. 按条件个数排序
  7. 按规则的次序排序

自然演绎推理

自然演绎推理是指从一组已知的事实出发,直接运用命题逻辑或谓词逻辑中的推理规则推出结论的过程。
推理规则:

  1. P规则:在推理的任何步骤上都可引入前提,继续进行推理
  2. T规则:推理时,如果前面步骤中有一个或多个公式永真蕴含公式S,则可把S引入推理过程中。
  3. 反证法: P → Q P \rightarrow Q PQ当且仅当前真后假的时候时不可满足的
  4. 假言推理:如果P为真, P → Q P \rightarrow Q PQ,则Q为真
  5. 拒取式推理:如果Q为假, P → Q P \rightarrow Q PQ,则P也为假

注意:避免产生的两类错误:

  1. 如果Q为真,那么 P → Q P \rightarrow Q PQ, 不能推出P的真值
  2. 如果P为假,那么 P → Q P \rightarrow Q PQ, 不能推出Q的真假

合适公式

遵从下列递归定义的是合适公式
单一谓词公式是合适公式,使用 ¬ 、 ∧ 、 ∨ 、 → 、 ↔ 、 ∃ 、 ∀ \lnot、\land、\lor、\rightarrow、\leftrightarrow、\exist、\forall ¬后仍是合适公式

合适公式的性质
重点:

  1. P → Q ⇔ ¬ P ∨ Q P \rightarrow Q \Leftrightarrow \lnot P \lor Q PQ¬PQ
  2. 逆否: P → Q ⇔ ¬ Q → ¬ P P \rightarrow Q \Leftrightarrow \lnot Q \rightarrow \lnot P PQ¬Q¬P
  3. 摩根定律: ( ¬ P ∨ ¬ Q ) ⇔ ¬ ( P ∧ Q ) (\neg P \lor \neg Q) \Leftrightarrow \neg (P \land Q) (¬P¬Q)¬(PQ)
  4. 量词否定: ¬ ( ∃ x ) P ( x ) ⇔ ( ∀ x ) ( ¬ P ( x ) ) \lnot (\exist x)P(x) \Leftrightarrow (\forall x)(\lnot P(x)) ¬(x)P(x)(x)(¬P(x))任意存在互换同理
  5. 量词分配:可以将量词分配到括号里

合适公式的标准化

  1. 首先要以量词前束范式来表示合适公式,前束范式就是在前面将变量量词罗列出来,后面括号里没有任何量词的谓词公式。
  2. Skolem标准型,在前束范式的基础上,消除存在量词,而拿来保证公式的永假性的函数称为Skolem函数,无参时称为Skolem常量,从一阶逻辑公式变换到Skolem标准型不是等值变换,但是保持永假性。
  3. 要求母式(即后面的公式化为合取范式)
    • 消去多余的量词
    • 消去蕴含符号
    • 减少否定的辖域(内移否定符号)
    • 变量标准化(变量换名)(名字相同,辖域不同需要换成不同的名字)
    • 消去存在量词(Skolem变换)
    • 全称量词前束化
    • 消去全称量词
    • 把母式转化为合取范式

消去存在量词方法:

  1. 如果 ∃ \exist ∀ \forall 的辖域内
    ( ∀ z ) ( ∃ w ) [ ¬ Q ( x , z ) ∧ P ( z , w ) ] (\forall z)(\exists w)[\lnot Q(x, z) \land P(z, w)] (z)(w)[¬Q(x,z)P(z,w)]
    如果w依赖于z则可以用w = g(z)来定义这种依赖关系,用g(z)来取代约束变量w,消去存在量词 ∃ w \exist w w
    ( ∀ z ) [ ¬ Q ( x , z ) ∨ P ( z , g ( z ) ) ] (\forall z)[\lnot Q(x,z) \lor P(z, g(z))] (z)[¬Q(x,z)P(z,g(z))]
  2. 如果 ∃ \exist 在多个 ∀ \forall 的辖域内
    ( ∀ x ) ( ∀ y ) ( ∀ z ) ( ∃ w ) P ( x , y , z , w ) (\forall x)(\forall y)(\forall z)(\exist w)P(x, y, z, w) (x)(y)(z)(w)P(x,y,z,w)
    则用多元函数g(x, y, z)来取代w
    ( ∀ x ) ( ∀ y ) ( ∀ z ) ( ∃ w ) P ( x , y , z , g ( x , y , z ) ) (\forall x)(\forall y)(\forall z)(\exist w)P(x, y, z, g(x, y, z)) (x)(y)(z)(w)P(x,y,z,g(x,y,z))
  3. 如果 ∃ \exist ∀ \forall 的辖域外
    ( ∃ w ) ( ∀ z ) [ ¬ Q ( x , z ) ∨ P ( z , w ) ] (\exist w)(\forall z)[\lnot Q(x,z) \lor P(z, w)] (w)(z)[¬Q(x,z)P(z,w)]
    则用任意的常量来取代w
    ( ∃ w ) ( ∀ z ) [ ¬ Q ( x , z ) ∨ P ( z , A ) ] (\exist w)(\forall z)[\lnot Q(x,z) \lor P(z, A)] (w)(z)[¬Q(x,z)P(z,A)]

实质就是找个已知的东西将存在量词的变量取代掉,在 ∀ \forall 辖域内就是Skolem函数,之外就是常量,但是使用的函数不允许重名,同时常量符号也不允许重名。

合取范式就是用合取( ∧ \land )连接,括号内用只能是析取

**合取范式标准化例题**

归结演绎推理

自动定理证明:
一般形式: F 1 ∧ F 2 ∧ F n ⇒ W F_1 \land F_2 \land F_n \Rightarrow W F1F2FnW

反证法:将证明永真改为证明 F 1 ∧ F 2 ∧ F n ∧ ¬ W F_1 \land F_2 \land F_n \land \lnot W F1F2Fn¬W永假

子句就是仅有析取( ∨ \lor )构成的合适公式
合取范式可定义为子句的合取( ∧ \land )
在这里插入图片描述
在这里插入图片描述
合适公式 → 合取范式 → 子句集 S 合适公式 \rightarrow 合取范式 \rightarrow 子句集S 合适公式合取范式子句集S
其中一个重要的性质: 子句集 S 的不可满足性 ↔ 合适公式永假 子句集S的不可满足性 \leftrightarrow 合适公式永假 子句集S的不可满足性合适公式永假

归结原理

在这里插入图片描述
而加入归结式的子句集 S ′ S' S与原来子句集在不可满足性上式等价的
在这里插入图片描述
对子句集的消解规则:

  1. 假言推理 P , ¬ P ∨ Q ⇒ Q P, \lnot P \lor Q \Rightarrow Q P,¬PQQ
  2. 合并 P ∨ Q , ¬ P ∨ Q ⇒ Q P \lor Q, \lnot P \lor Q \Rightarrow Q PQ,¬PQQ
  3. 重言式 P ∨ Q , ¬ P ∨ ¬ Q ⇒ Q ∨ ¬ Q 或者 ( P ∨ ¬ P ) P \lor Q, \lnot P \lor \lnot Q \Rightarrow Q \lor \lnot Q 或者(P \lor \lnot P) PQ,¬P¬QQ¬Q或者(P¬P)注意并不是空
  4. 空子句 P , ¬ P ⇒ N I L P, \lnot P \Rightarrow NIL P,¬PNIL只用一个符号是才为空

子句中的文字知识原子命题公式或其取反,不带变量,这样易于判别那些子句对包含互补文字
在这里插入图片描述

子句中含有变量,不能直接发现和消去互补文字,需要对潜在的互补文字先做变量置换和合一处理。
置换项可以是常量、变量或函数 t / v (置换项后 / 源变量) ,置换就是为了让谓词公式的文字同一确定互补性。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但是如果子句集是永真,可满足的那么归结原理将永无休止的进行下去,得不到任何结果

归结反演

将结论取反与公式集合取,然后将这个 F ∧ ¬ W F \land \lnot W F¬W标准为子句,并合并为子句集S
在这里插入图片描述
在这里插入图片描述

归结反演也可根据归结树的结果提取有效信息
在这里插入图片描述

归结反演可实现提取问题回答
回答问题时,目标公式往往受存在量词约束,这是回答提取,就是给出使W(x)为真的x的某个值。
方法就是建立目标子句G(G是要回答问题的取反)的重言式(永真式) G ∨ ¬ G G \lor \lnot G G¬G,将这个重言式加入归结演绎过程取代原来的G,这时生成的树是修改证明树,此时树根不再是空子句,而是 ¬ G \lnot G ¬G, G被置换项取代,实现问题回答,这个取代的结果就是回答的结果。

但是重言式中的 ¬ G \lnot G ¬G (而这个 ¬ G 就和要回答问题的含义相同 \lnot G就和要回答问题的含义相同 ¬G就和要回答问题的含义相同)并不真正参与归结演绎,只是G中的变量在置换时会跟着置换, 所以为了避免在归结反演的过程中误用 ¬ G \lnot G ¬G就用特殊的符号将它代替掉如 Answer( x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1,x2,...,xn),其中 x i x_i xi ¬ G \lnot G ¬G中的变量。

在这里插入图片描述
特殊情况:

  1. 目标公式也可能会有更复杂的形式,当目标公示取反后的G中有多个合取时,这是将子句分开分别建立重言式寻求答案。
  2. 当目标公式中含有全程量词时,取反后G中就有存在量词需要用Skolmn函数,常量消除存在量词。

在这里插入图片描述
在这里插入图片描述

提升归结效率

为了快速产生空子句有一下策略:

  1. 宽度优先搜索
    会归结出许多无用的子句,既浪费时间又浪费空间,但是当问题有解时能找到最短归结路径,他是一种完备的归结策略。对大问题会组合爆炸,但对小问题是较好的归结策略。

  2. 支持集策略
    要求每次归结都要有目标公式的否定所得到的子句或它们的后裔,完备的归结策略,虽然会限制子句集元素的剧增,但是会增加空子句所在的深度

  3. 删除策略
    在归结过程中把子句集中无用的子句删除掉

    • 纯文字:如果子句集中不存在与其互补的文字可以将这整个子句删掉
      例如 S = { P ∨ Q ∨ R , ¬ Q ∨ R , Q , ¬ R } S = \{ P \lor Q \lor R, \lnot Q \lor R, Q, \lnot R\} S={PQR,¬QR,Q,¬R}其中P没有与其互补的可以将 P ∨ Q ∨ R P \lor Q \lor R PQR删掉
    • 包孕:对于子句C1和C2 如果C1经过置换是C2的子集,就说C1包孕于C2. 将C1删掉对整个子句集的不可满足性没有影响
    • 重言式:如果子句中含有重言式就可以删掉重言式。

    按照这个规则删除的是完备的。

  4. 单文字子句策略
    单文字就是子句中只有一个文字,要求每次参与归结至少有一个是单文字,单文字可以有效减少文字数,所以有较高的归结效率,但是这个策略是不完备的,当子句集是不可满足时,不一定可以归结出空子句。

  5. 线性输入策略
    要求每次参与归结至少应该有一个是初始子句集的子句,可以提高效率,但是是不完备的。

下一篇

未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/210568.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023年第十二届数学建模国际赛小美赛C题雪崩防范求解分析

2023年第十二届数学建模国际赛小美赛 C题 雪崩防范 原题再现: 雪崩是极其危险的现象。现在,我们对雪崩是如何形成的已经有了很好的理解,但是我们还不能详细地预测雪崩发生的原因、时间和地点。村庄和道路可以通过各种方式防止雪崩。避免在脆…

浅析SD-WAN企业组网部署中简化网络运维的关键技术

网络已经成为现代企业不可或缺的基础设施,它为企业提供了连接全球的桥梁。随着全球化和数字化转型的加速推进,企业面临着越来越多的网络挑战和压力。传统的网络组网方式往往无法满足企业规模扩大、分支机构增多、上云服务等需求,导致网络性能…

python datetime 获取特定一天的后一天或者后几天

这里写自定义目录标题 1 获取特定天的时间对象 具体时间格式参考:Python time strptime()和strftime()-CSDN博客 import datetimetimer datetime.datetime.strptime(date, "%Y-%m-%d")2 获取下一天或者【下x天】的数据并进行格式转换 # 下一天数据 ne…

saltstack启用IPV4切、IPV6双栈支持

随着生产系统业务陆续从IPV4切换到IPV6,集中化运维工具saltstack也需要启用双栈支持,以便无缝过渡到IPV6单栈运行。本文记录了saltstack从IPV4切换到IPV6双栈运行需调整的调置。 一、组网现状 因管理的服务器太多,目前采用了多master部署模…

基于c#+mysql+winform学生成绩管理系统-实践作业

基于c#mysqlwinform学生成绩管理系统-实践作业 一、系统介绍二、功能展示四、其它1.其他系统实现五.获取源码 一、系统介绍 分老师与学生两个界面; 老师能查看学生信息并评价,添加,删除学生; 老师能查看学生成绩并修改&#xff0…

pyqt5使用pyqtgraph实现动态热力图

pyqt5使用pyqtgraph实现动态热力图 一、效果图 二、流程 1、打开Designer创建一个UI界面 2、把UI转成py 3、创建一个main.py文件 4、在main文件中渲染画布、创建初始数据、画热力图、创建更新数据线程、绑定按钮触发事件三、UI界面 其中h_map.py代码如下: # -*- coding: ut…

【Python3】【力扣题】383. 赎金信

【力扣题】题目描述: 题解: 两个字符串ransomNote和magazine,ransomNote中每个字母都在magazine中一一对应(顺序可以不同)。 即分别统计两个字符串中每个字母出现的次数,ransomNote中每个字母的个数小于等…

在vue3项目嵌套 导入老项目 jQuery项目,减少重复开发

背景: 公司管理平台项目一直是前辈用jQuery做的,为扩展根据自身的技术栈,将jQuery的老项目嵌套入vue3的框架,新功能用vue开发,旧的功能不动直接在vue3用iframe容器来展示 嵌套步骤 2种方式嵌套,一个是已…

基于Java+Swing+Mysql图书管理系统(含实训报告)

基于JavaSwingMysql图书管理系统-含实训报告 一、系统介绍二、功能展示1.用户登陆 四、其他系统实现五、获取源码 一、系统介绍 该系统实现了查看登录界面、主页界面、图书类别管理、用户借阅记录、用户图书查询、用户图书归还、用户信息修改。 运行环境:idea、jd…

MySql下载和安装

MySql下载和安装 一、概述 MySQL是一个开放源代码的关系型数据库管理系统 ,由瑞典MySQL AB(创始人Michael Widenius)公 司1995年开发,迅速成为开源数据库的 No.1。 二、下载和安装 下载地址:https://dev.mysql.com…

短视频账号矩阵系统源码/saas独立源头技术开发

一、批量剪辑(采用php语言,数学建模) 短视频合成批量剪辑的算法主要有以下几种: 1. 帧间插值算法:通过对多个视频的帧进行插帧处理,从而合成一段平滑的短视频。 2. 特征提取算法:提取多个视频中…

[读论文]meshGPT

概述 任务:无条件生成mesh (无颜色)数据集:shapenet v2方法:先trian一个auto encoder,用来获得code book;然后trian一个自回归的transformermesh表达:face序列。face按规定的顺序&a…

C语言:求十个数中的平均数

分析: 程序中定义了一个average函数,用于计算分数的平均值。该函数接受一个包含10个分数的数组作为参数,并返回平均值。在主函数main中,首先提示输入10个分数,然后使用循环读取输入的分数,并将它们存储在名…

VisualDL:开源AI可视化工具的引领者

在人工智能领域,可视化工具的重要性逐渐被认识到,它们能够帮助人们更好地理解和分析深度学习模型的性能、参数和训练过程。VisualDL是百度开源的一款强大的可视化工具,旨在提供直观、灵活和高效的AI模型可视化支持。本文将重点介绍和解释Visu…

【Element-ui】Link 文字链接 与 Radio 单选框

文章目录 前言一、Link 文字链接1.1 基础用法1.2 禁用状态1.3 下划线1.4 图标 二、Radio 单选框2.1 基础用法2.2 禁用状态2.3 单选框组2.4 按钮样式2.5 带有边框2.6 Radio Eventsinput事件 2.7 Radio-group Attributes 总结 前言 在前端开发中,用户界面的元素设计和…

并行和并发的区别

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、并发2、并行3、异同点 1、并发 当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若…

leetCode 47. 全排列 II + 回溯算法 + 图解 + 笔记

给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列 示例 1: 输入:nums [1,1,2] 输出: [[1,1,2],[1,2,1],[2,1,1]] 示例 2: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2…

springboot虚拟请求——测试

springboot虚拟请求 表现层测试 web环境模拟测试 虚拟请求状态匹配——执行状态的匹配 Testvoid testStatus(Autowired MockMvc mvc) throws Exception { // //http://localhost:8080/books// 创建一个虚拟请求,当前访问的是booksMockHttpServletRequestBui…

【SparkSQL】SparkSQL的运行流程 Spark On Hive 分布式SQL执行引擎

【大家好,我是爱干饭的猿,本文重点介绍、SparkSQL的运行流程、 SparkSQL的自动优化、Catalyst优化器、SparkSQL的执行流程、Spark On Hive原理配置、分布式SQL执行引擎概念、代码JDBC连接。 后续会继续分享其他重要知识点总结,如果喜欢这篇文…

大气多功能工作室个人引导页源码

源码简介 大气多功能工作室个人引导页源码,支持三端自适应,带赞助功能,采用设计配色网站点赞量最高的一个配色方案,一个二次元风格的引导页就此诞生,经过长传美国服务器测试,结果也是很理想,测速…