《人工智能》 一阶逻辑推理

一阶逻辑推理

《人工智能》 一阶逻辑推理
《人工智能》 一阶逻辑推理

inference rules for quantifiers {9.1.1}

《人工智能》 一阶逻辑推理
对于存在量词,

如果知识库里面有, 存在V ,α, 这样的于是, v 就可以代换为k 。 k 是没有出现过的常量。

《人工智能》 一阶逻辑推理

《人工智能》 一阶逻辑推理
如果存在量词前面有全称量词, 就不能替换:
《人工智能》 一阶逻辑推理

如果存在量词被全称量词约束了, 要对这个量词进行实例化, 怎么办? x 和y 一定有 一个函数关系, x 依赖于y , 所以对x实例化时 ,x 变成y 的函数。
m(y) 是skolem function , 是其他地方没有出现过的函数。
《人工智能》 一阶逻辑推理
如果存在量词前面有任意多个 全称量词, 于是把xk代换成f(x1, …xk-1)的函数
《人工智能》 一阶逻辑推理

全称量词和存在量词能否代换多次?

如果存在x , 代表可能存在1个也可能存在两个, 如果代换量词, 代表着至少存在两次。
所以对于存在量词, 只能代换一次

《人工智能》 一阶逻辑推理

合一 、 CNF、归结

《人工智能》 一阶逻辑推理
如果x 和y 都是

《人工智能》 一阶逻辑推理

所谓合一: 找到两条语句合一元的过程。

假设UNIFY 的输入
《人工智能》 一阶逻辑推理
求 α和β的合一元。
《人工智能》 一阶逻辑推理
如果输入的两条语句, 他们的合一元可能不唯一
《人工智能》 一阶逻辑推理
通常在找合一元时, 要找到最简单的合一元 ,叫做MGU 。
《人工智能》 一阶逻辑推理

《人工智能》 一阶逻辑推理
两条语句的变量要做一个标准化, 把其中一个变量改一个名字, 如, 把x 改成x1 ,
《人工智能》 一阶逻辑推理

《人工智能》 一阶逻辑推理
例子:

第一步消去蕴含,
《人工智能》 一阶逻辑推理
第二部,把全称量词前面的非移入里面, 全称量词和存在量词之间的相互转化,
《人工智能》 一阶逻辑推理
《人工智能》 一阶逻辑推理

第三步骤, 同名转换, 变名。 这两个y 是不同的y, 将其中一个y 改名字
《人工智能》 一阶逻辑推理
第四步, 考虑skolemize 化, 这个存在z 是在任意x 的辖域内, 然后把它转化成关于x的函数。
《人工智能》 一阶逻辑推理

这里得到这条语句之后, 目前这个形式是不是是
《人工智能》 一阶逻辑推理

《人工智能》 一阶逻辑推理

把这个CNF变成三个子句 :
《人工智能》 一阶逻辑推理
一旦把一阶逻辑变成子句集合,
在命题逻辑里面归结时, 对于两条给定子句, 寻找他们的互补文字, 消去互补文字, 剩余部分进行析取。

给定KB, 的情况下导出矛盾。 这样的情况对应到一阶逻辑里面。
在一阶逻辑中, 归结过程如下。
《人工智能》 一阶逻辑推理

通过li , 和mj 的代换, 得到互补文字。
《人工智能》 一阶逻辑推理

例子:
1、 B 和非B 互补 , 进行归结, 得(3)
《人工智能》 一阶逻辑推理
2、
《人工智能》 一阶逻辑推理
3、
《人工智能》 一阶逻辑推理
《人工智能》 一阶逻辑推理
《人工智能》 一阶逻辑推理

1、问题转换成逻辑语句
2、 逻辑于娟转化为CNF
3、把非阿尔法转化为CNF
4、归结推理导出新的语句, 直到产生矛盾, 归结出空语句。
5、

《人工智能》 一阶逻辑推理
前面黑色的是知识库, 后面红色的是要证明的结论。
1、 转化为CNF
《人工智能》 一阶逻辑推理
2、 这里面的两个x 和y 是不同的x 和y , 在必要时需要标准化。
结论的

3、 二三归结, y 代换成a ,
《人工智能》 一阶逻辑推理
例子2 , 证明它是不可满足的, 要归结出空子句。
首先转化为CNF ,
《人工智能》 一阶逻辑推理

例子3:

《人工智能》 一阶逻辑推理
《人工智能》 一阶逻辑推理
1、2 语句归结, 如果把y 代换成x , 第二句中的y , 代换成x .

例子4:
每一个病人喜欢每一个医生, 没有人喜欢quack 。
1、 翻译成逻辑语句, 找到前提和结论, so前面是前提, 后面是结论。
《人工智能》 一阶逻辑推理
任意y 和蕴含配套, 任意y 如果y 是医生, 那么x 喜欢医生 。
全称量词和蕴含配套, 合取和存在量词配套。
《人工智能》 一阶逻辑推理
《人工智能》 一阶逻辑推理
《人工智能》 一阶逻辑推理
《人工智能》 一阶逻辑推理
《人工智能》 一阶逻辑推理
有一些简单的策略可以帮我们提高归结销量, 单元优先,单文字语句优先归结《人工智能》 一阶逻辑推理

每一个限定字句都可以转化为正文字