人工智能第九章——一阶逻辑的推理(待补充)

摘要

本文旨在讲明:
1)代换,全称量词实例化,存在量词实例化
2)合一,CNF,归结推理
3)前向链接和后向链接

前言

一、温故知新(回顾)

命题逻辑是我们最先学的逻辑,比较简单,也比较好理解。
因为命题逻辑表达能力不够,所有我们又引入了一阶逻辑,即FOL。FOL多了很多新概念新成分,比如全称量词和存在量词。

全称量词通常接蕴含符号。
存在量词通常接合取符号。

FOL中的句子:
1)term(项)
常数符号,变量符号,或者函数符号
2)atomic sentence (原子语句)
谓词符号(with value true or false)
represents a relation between terms
3)complex sentence (复合语句)
Atom(s) joined together using logical connectives(逻辑连接词,与或非蕴含等价) and/or quantifiers

Concepts(FOL的一些概念):
1)Literal(文字)
原子,原子的否定
2)Clause and Clause set(从句和从句集合)
disjunctions of literal (文字的析取)
3)CNF(conjunctive normal form,合取范式)
conjunction of disjunctions of literal (文字析取的合取范式)
CNFs不包括量词。

二、代换,量词实例化

2.1 问题:已知命题逻辑的推理策略,一阶逻辑下如何推理?

答:我们先要弄清楚这些方面:
1)这个世界(逻辑推理世界)存在些什么?
对于命题逻辑(Propositional Logic,PL),facts(事实) hold or do not hold。
对于一阶逻辑(First Order Logic,FOL),objects with relations between them that hold or do not hold。

2)一阶推理(First order inference,FOI)可以被实现,通过命题逻辑推理(propositional inference)将KB(知识库)转化成PL(命题逻辑)
那么涉及两个问题:

  • 怎么转化全称量词?
  • 怎么转化存在量词?

2.2 一个例子(理发师悖论 Barber paradox)

理发师给给且只给 不给他们自己理发的人理发。

结论:小镇没有理发师。

B(x): x is a baber.
H(x,y): x shave y.

对于所有的x,B(x) 蕴含 (对于所有的y,非H(y,y) 蕴含 H(x,y))
(对于所有的x,B(x) 且 对于所有的y,非H(y,y)) 蕴含 H(x,y)

那么怎么用PL中的resolution(归结)来解决呢?
答案:转成不包含量词的CNF(合取范式),然后用归结规则。

2.3 代换(substitution)

FOL和PL的关键区别:
1)量词 quantifiers
2)变量 variables

所以把这两个处理了,就可以把FOL推理转换成PL推理
1)用terms 代替 variables
2)量词的推理规则:(实例化)
对于全称量词:可以用任意可能的terms(基项)来代替变量
对于存在量词:我们可以用一个KB中的常数符号(没有出现在其他地方),这个常数符号叫做Skolem 常数。

三、合一、CNF、归结

3.1 合一(Unifier)

Unification(合一) is the process of finding substitutions

Unifiy takes two sentences and returns a unifier(合一元) if one exists.

3.2 转成CNF(合取范式)

1)消除蕴含
2)把否定向内提
3)标准化向量
4)Skolemize
5)丢掉全称量词
6)合取中放置析取

把连接词(conjunctions)变成从句(clauses)

3.3 归结

PL版本:
归结反驳:归结到CNF,推导出矛盾(空从句)

FOL版本:
得用到Unifier,合一元
归结反驳

猜你喜欢

转载自blog.csdn.net/weixin_39278265/article/details/80936500
今日推荐