【人工智能】3.谓词与机器推理
(来源:王岩老师ppt)
一、谓词逻辑表示法
1.谓词逻辑表示法中的一些基本概念
1)命题:一个陈述句称为一个断言,凡有真假意义的断言称为命题。
2)谓词:带有参数的命题叫谓词。
谓词由谓词名和个体两部分组成P(x1,x2,……,xn)
个体又可以是常量、变元、函数等
谓词和函数是两个完全不同的概念:
①谓词的真值是真和假,而函数无真值可言,其值是个体域中
的某个个体。
②谓词实现的是从个体域中的个体到T或F的映射,而函数所
实现的是同一个体域中从一个个体到另一个个体的映射。
③在谓词逻辑中,函数本身不能单独使用,它必须嵌入到谓词
之中
3)连接词:¬\neg¬ ∧\wedge∧ ∨\vee∨ →\to→ ↔\leftrightarrow↔
4)量词:量词是由量词符号和被其量化的变元所组成的表达式,用来对谓词中的个体作出量的规定。
全称量词∀x\forall x∀x
存在量词∃x\exists x∃x
2.谓词公式
在一阶谓词演算中,合法的表达式称为合式公式,即谓词公式。通常把单个谓词公式P(x1,x2,……,xn)叫做原子谓词公式。
3.变元
辖域:位于量词后面的单个谓词或者用括号括起来的合式公式。
约束变元:辖域内与量词中同名的变元称为约束变元,不受约束的变元称为自由变元。
换名规则:将辖域中出现的某个约束变元改成此辖域中另一个未曾出现过得个体变量符号。
替代规则:对自由出现的个体变元用与原公式中所有个体变元符号不同的变量符号去替代。
4.谓词逻辑表示法描述
表示方法:
(1)定义谓词:谓语做谓词,主语做个体。
(2)用连词或量词把谓词公式连接起来,形成谓词公式。
(3)从外到里层层细化。
例:凡是计算机系学生都喜欢编程序
(∀x\forall x∀x)(COMPUTER(x) →LIKE(x,programing))
二、谓词公式与子句集
1.谓词演算:等价式和永真蕴含
等价式:真值相同
永真蕴含式:对于谓词公式P和Q,如果P->Q,则P永真蕴含Q, Q是P的逻辑结论,P是Q的前提。
如果用永真蕴含式对谓词进行演算,演算后的谓词与之前的谓词不再是等价的,所有常常要用反证法进行结论的求证。
2.什么是子句集
文字:原子谓词公式及其否定统称为文字。
子句:任何文字的析取式称为子句。
空子句:不包含任何文字的子句称为空子句,记为NIL。
子句集:由子句和空子句所构成的集合称为子句集(合取)。
3.子句集的求取
1)消去蕴含和双条件符号:常用连接词化归律。
2)将否定符合靠紧谓词(否定进入量词辖域内)。
3)变量名根据辖域约束等修改。
4)消去存在量词:变为常量或者函数。
5)量词左移:使得每个全称量词的辖域都是整个公式。
6)化为合取式。
7)消去全称量词。
8)消去合取词,分解为子句。
4.反证法、子句集的应用
不可满足的等价性:当原谓词公式为永假(即不可满足)时,其标准子句集则一定是永假的。反之亦然。即,F与S不等价,但在不可满足的意义上两者是等价的
定理:设有谓词公式F,其标准子句集为S,F为不可满足的充要条件是S为不可满足的。
三、一阶谓词逻辑推理及应用
1.归结原理
根据之前得知的谓词和子句集不可满足的等价性,把欲证明问题的结论否定,并加入子句集,得到扩充的子句集S‘,然后,设法检验子句集S’是否含有空子句,若含有空子句,则表明S’是不可满足的,这就是归结原理的基本思想。
1)置换:在一个谓词公式中用置换项去置换变量。置换是形如{t1/x1, t2/x2, …, tn /xn}的有限集合。用ti替换xi,要求xi与ti不同。注意:xi只能是变量,但是ti可以是常量、变量、函数
合一:寻找相对变量的置换,使两个谓词公式一致。例如:公式集F={P (x, y, f(y)), P (a, g(x), z)},则S={a/x, g(a)/y, f(g(a))/z}是它的一个合一。
2)归结原理:设C1和C2是子句集中的任意两个子句,如果C1中的文字L1与C2中的文字L2互补,那么可从C1和C2中分别消去L1和L2,并将C1和C2中余下的部分按析取关系构成一个新的子句C12。
例如:C1=P∨Q∨RC2=¬Q∨SC3=¬RC123=P∨S\begin{aligned} & C1=P\vee Q\vee R \\ & C2=\neg Q\vee S \\ & C3=\neg R \\ & C123=P\vee S \\ \end{aligned}C1=P∨Q∨RC2=¬Q∨SC3=¬RC123=P∨S
3)总结:这样结合上述谓词演算、置换合一、反证法(不成立的一致性),就可以对命题进行证明。
2.归结反演
1)归结反演:
① 否定L, 得到¬L;
② 把¬L添加到S中去;
③ 把新产生的集合{¬L, S}化成子句集;
④ 应用归结原理, 力图推导出一个表示矛盾的空子句。
2)应用归结原理求取问题答案:
① 把已知条件用谓词公式表示,并化为相应的子句集S;
② 把目标的否定用谓词公式表示,并化为子句集;
③ 构造目标否定子句的重言式, 并代替原子句;
④ 将③得到的子句集加入前提子句集中;
⑤ 对新子句集G应用归结原理求出反演树;
⑥ 用根子句作为回答语句,答案就在此根子句中。
3.归结过程中的策略
控制策略要解决的问题是:使归结点尽量少。避免多余的、不必要的归结式出现。
1)删除策略:(完备)
①纯文字删除法:如果某文字L在子句集中不存在可与其互补的,则称该文字为纯文字。
②永真式(重言式)删除法
2)支持集策略 (完备)
3)单文字子句策略 (不完备)
4)输入归结策略 (不完备)
5)线性归结策略 (不完备)
6)语义归结策略:与支持集类似 (完备)
四、简单例子
以下通过一个很简单的经典例子理解归结推理:
1)问题描述
设A,B,C三人中有人从不说真话,也有人从不说假话,某人向三人分别提出一个问题 :谁是说谎者?
A答:“B和C都是说谎者”;B答:“A和C都是说谎者”;C答:“A和B至少有一个是说谎者”
求问谁是老实人,谁是说谎者?
2)问题分析
首先注意写谓词描述时,这里每一件话都隐含两个情况,例如:如果A说的是真的,那么B和C都说谎;如果A说的是假的,则B和C有一个说真话,即 L(x)L(x)L(x)表示x是说谎者的话:
¬L(A)→L(B)∧L(C)L(A)→¬L(B)∨¬L(C)\begin{aligned} & \neg L(A)\to L(B)\wedge L(C) \\ & L(A)\to \neg L(B)\vee \neg L(C) \\ \end{aligned}¬L(A)→L(B)∧L(C)L(A)→¬L(B)∨¬L(C)
这样再通过化子句集,将L(x)∨¬L(x)L(x)\vee \neg L(x)L(x)∨¬L(x)永真重言式加入子句集就可以求出说谎者。
【人工智能】3.谓词与机器推理相关推荐
- 《人工智能》之《确定性推理》习题解析
教材:<人工智能及其应用>,蔡自兴等,2016m清华大学出版社(第5版) 参考书: 对应同系列博客:<人工智能>之<确定性推理> <人工智能>之< ...
- 机器推理文本+视觉,跨模态预训练新进展
作者 | 李根.段楠.周明 来源 | 微软研究院AI头条(ID:MSRAsia) [导读]机器推理要求利用已有的知识和推断技术对未见过的输入信息作出判断,在自然语言处理领域中非常重要.本文将介绍微软亚 ...
- 机器推理系列文章概览:七大NLP任务最新方法与进展
作者 | 段楠,唐都钰,周明 来源 | 微软研究院AI头条(ID: MSRAsia) 导读:自然语言处理的发展进化带来了新的热潮与研究问题,研究者们在许多不同的任务中推动机器推理(Machine R ...
- 人工智能的编程示例 爱因斯坦推理题
人工智能的编程示例 爱因斯坦推理题 1.在一条街上,有5座房子,喷了5种颜色. 2.每个房里住着不同国籍的人. 3.每个人喝不同的饮料,抽不同品牌的香烟,养不同的宠物. 其中: (1).英国人住在红色 ...
- 受中国刺激,美国国防部又出AI计划!20亿美元推动机器推理
雷刚 发自 凹非寺 量子位 报道 | 公众号 QbitAI 可能你都眼花缭乱了. DARPA--美国国防部高等研究计划局,又双叒叕宣布了一个AI投资新计划,要在未来5年,拿20亿美元出来,用以推动A ...
- 2018AI人工智能基础实战python机器深度学习算法视频教程
人工智能(Artificial Intelligence),英文缩写为AI.它是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学. 6 M3 T7 T9 K$ Q6 ...
- 【大数据AI人工智能】图灵:计算机器与智能 - 经典AI论文系列
目录 引言 模仿游戏 机器 谁反对? 学习机 引言 经典AI论文这个系列的产生主要是出于这样一个想法: 现在每年人工智能相关的顶会文章, 一年下来都有上万篇, 论文似乎永远都读不完. 然而, 这些论文 ...
- 阅面科技赵京雷:人工智能时代,智能机器需要怎样的眼睛?
人工智能是当今最热门的领域,作为人工智能问题最重要的一环,计算机视觉的重要性无需赘言.达芬奇曾说眼睛是人类心灵的窗户,对计算机来说亦是如此,如果我们赋予计算机视觉感知能力,使得计算机能够像人类一样看到 ...
- 英剧《Humans》:人工智能的人性多于机器性么
据百度百科介绍,<真实的人类(Humans)>是由出品过<广告狂人>.<绝命毒师>.<谋杀>.<行尸走肉>等名剧的AMC与出品过<乌托 ...
最新文章
- 03系统多界面_【part two】操作说明——系统管理、公司管理、客户管理
- Ubuntu/CentOS下使用脚本自动安装 Docker
- Kettle使用_13 表输入并发运行与复制数量
- android 仿360浮动,Android--模仿360底部导航按钮
- Webpack进阶(二)代码分割 Code Splitting
- 数据库---查询(详细)
- Hibernate中使用Criteria查询及注解——(Emp.java)
- Linux给Java程序设置端口_扫描服务端口的Java程序
- 作者:​惠丹(1991-),男,兰州大学资源环境学院硕士生。
- 容器编排技术 -- Kubernetes Volume
- PDF reference 1.0-1.7 下载(免费)以及PDF结构介绍
- 微信JSAPI之V3版本支付踩坑
- git add 后,如何撤销add?
- win11安装wsl2
- 多目标优化算法:多目标黄金搜索优化算法MOGSO(提供MATLAB代码)
- 村田晶振的料号暗藏什么意义呢
- 怎样禁止macOS 在Safari下载的ZIP文件自动解压?
- 将图片转换成svg文件,自定义icon小图标,svg速成
- HDU6217 BBP Formula
- mysql多实例部署
热门文章
- GIS+=地理信息+行业+大数据——纽约公开11亿条出租车和Uber原始数据下载及分析
- 定投基金,如何计算年化收益率
- Bat脚本多开微信分析
- MacBookPro 2015电池召回
- 关于Android模块化我有一些话不知当讲不当讲
- unity可以直接转h5吗_Unity对H5小游戏开发的支持—Project Tiny
- 埃尔米特多项式 (Hermite Polynomials)简介(2)
- 住院病人主要由护士护理,这不仅需要大量的护士,而且不能随时观察危重病病情,会延误抢救时机以计算机为中心的患者监护系统,写出系统的可行性。并可以系统印出某个指定病人的病情报告。...
- 线上线下协同发展,020 商业解析
- kubernetes—ConfigMap 与 Secret