人工智能 一种现代方法 第8章 一阶逻辑

一阶逻辑的语法和语义

命题逻辑是我们最先学的逻辑,比较简单,也比较好理解。
因为命题逻辑表达能力不够,所有我们又引入了一阶逻辑(First-order Logic),即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不包括量词。 CNFs do not contain quantifiers!!!

解释
一阶逻辑中的解释把常量符号映射到对象,谓词符号映射成对象之间的关系,函词映射成对象上的函数。

全称量词和存在量词

全称量词通常接蕴含符号⇒ 。例如:所有的国王都是人。∀x King(x) ⇒ Person(x)
存在量词通常接合取符号∧ 。例如:有王冠在King John头上。 ∃x Crown(x) ∧ OnHead(x,John)

嵌套量词
Loves(x,y):x爱y
∀x∃y Loves(x,y):每个人都会爱上某人
∃y∀x Loves(x,y):存在某个人被每个人爱

  • ∀x∀y is the same as ∀y∀x
  • ∃x∃y is the same as ∃y∃x
  • ∃x∀y is not the same as ∀y∃x

等词equality

除了使用谓词和项产生原子语句之外,一阶逻辑还有另一种构造原子语句的方式。可以用等词来表声明两个项指代同一个对象。
例如:Father(John) = Henry

加否定词时表示两个项不是同一个对象。
例如:Richard至少有两个兄弟。可写为:∃x,y Brother(x,Richard) ∧ Borther(y,Richard) ∧ ¬(x = y)

例如:Richard有两个兄弟John和Geoffrey。
错误:Brother(John,Richard) ∧ Borther(Geoffrey,Richard) ∧ ¬(John = Geoffrey)
正确:Brother(John,Richard) ∧ Borther(Geoffrey,Richard) ∧ ¬(John = Geoffrey) ∧ ∀x Borther(x,Richard) ⇒ (x=John ∨ x=Geoffrey)

模型检验在一阶谓词逻辑中是否可行?
如命题逻辑一样,蕴涵、有效性等都根据所有可能模型来定义。由于可能模型的数量是无限的,通过枚举所有可能模型以检验蕴涵在一阶逻辑中是不可行的。即使对象数量有限,各种组合的数量仍然可能非常大。如果有6个或更少对象,语句有2个常量、1个二元关系,会有137,506,194,466个模型。

运用一阶逻辑

一阶逻辑的断言和查询

TELL将语句添加到知识库。这样的语句叫断言
例如,TELL(KB, King(John))

ASK向知识库询问问题。用ASK提出的问题被称为查询或目标
例如,ASK(KB, King(John))

ASKVARS询问什么样的x使得语句为真
例如,ASKVARS(KB, Person(x))

亲属关系论域(the kinship domain)

谓词和函数的区别

  • functions, which return values
  • predicates, which are true or false
    Function: father_of(Mary) = Bill
    Predicate: father_of(Mary, Bill)

一元谓词:Male, Female
二元谓词:Parent 、 Sibling 、 Brother 、Sister 、 Child 、 Daughter 、 Son 、 Spouse、 Wife 、 Husband 、 Grandparent 、Grandchild 、 Cousin 、 Aunt 、 Uncle
函数: Mother、Father

母亲(mother)是指女性(female)家长(parent):∀m, c Mother©=m ⇔ Female(m)∧Parent(m, c)
丈夫(husband)则是指某人的男性(male)配偶(spouse):∀w, h Husband(h, w) ⇔ Male(h)∧Spouse(h, w)
女性(female)和男性(male)是两个不相交的集合:∀x Male(x) ⇔ ¬Female(x)
家长和孩子是反关系:∀p, c Parent(p, c) ⇔ Child(c, p)
祖父母(grandparent)是家长的家长:∀g, c Grandparent(g, c) ⇔ ∃ p Parent(g,p)∧Parent(p, c)
同胞(sibling)是某人家长的另一个孩子:∀x, y Sibling(x, y) ⇔ x ≠ y∧ ∃p Parent(p,x)∧Parent(p, y)

不是所有关于论域的逻辑语句都是公理,有些是定理——它们通过公理推导而来。

总结

本章介绍了一阶逻辑表示语言,它比命题逻辑表达能力更强。 本章的要点如下:

  • 知识表示语言应该是陈述性的、可合成的、有表达力的、上下文无关的以及无歧义的。
  • 逻辑学在本体论约定知识论约定上存在着不同。命题逻辑只是对事实的存在进行限定,而一阶逻辑对于对象和关系的存在进行限定,因此有更强的表达力。
  • 一阶逻辑的语法建立在命题逻辑的基础上。它增加来表示对象,并且使用全称量词和存在量词对变元进行量化来构建断言。
  • 一阶逻辑的可能世界或模型包括通过对象集和解释,解释把常量符号映射到对象,谓词符号映射成对象之间的关系,函词映射成对象上的函数。
  • 原子语句仅在谓词所表示的关系在项所指代的对象上成立时为真。扩展解释将量化的变元映射到对象上,定义了量化语句的真值表。
  • 用一阶逻辑开发知识库是一个细致的过程,包括对领域进行分析、选定词汇表、对推理结论必不可少的公理进行编码。

资源分享

实验代码下载:
https://github.com/yyl424525/AI_Homework
人工智能-一种现代方法中文第三版pdf、课件、作业及解答、课后习题答案、实验代码和报告、历年考博题下载:https://download.csdn.net/download/yyl424525/11310392

猜你喜欢

转载自blog.csdn.net/yyl424525/article/details/95309168