机器智能(八)

1、两个著名的命题搜索推理算法:
a、DPLL算法
b、不完备的局部搜索算法(walksat algorithm)
2、DPLL算法:
a、目标:判断逻辑语句(CNF)是否是可满足的。
b、实际上也是枚举算法,即改进的真值表枚举算法。首先找到纯符号、递归,再找单元子句、递归,最后去除了纯符号和单元子句后的语句进行枚举。思想是只要部分符号有效就可以推导出语句有真值,而不需要讨论全部符号。
c、比枚举算法的改进
①、及早终止算法:
如果其中任意一个文字为真则一个子句是真;如果搜索的文字都为假则一个子句为假
②、纯符号启发式:
纯符号是某个文字在所有的子句中都是正或者负(只有一种情况)。找到纯符号可以通过对纯符号的赋值使语句为真,即只要进行一次赋值就可以把带有纯符号的所有子句全部消掉。纯符号可以优先进行赋值。
③、单元子句启发式:
单元子句是指子句中除了某个文字外其他文字都是假的子句。可知单元子句中的文字必须为真。单元子句可以优先进行赋值,需要已知某个值为真。
d、注意,伪代码中的renturn中的连接词是or而不是and,因为验证的是可满足性,只要找到一条即可,如果是and是验证所有的即验证有效性。
e、时间复杂度为2^n
3、walksat算法:
a、判断是否可满足
b、和爬山法类似,是不完整的局部搜索算法
c、评估函数是最小化不满足的子句数量(可理解为当前有几个子句为真)
d、加入随机概率P进行反转后就属于一种典型的模拟退火算法
e、接近线性时间复杂度,与命题个数有关
f、步骤:
①、随机生成一个模型(对变量赋值)
②、考察子句的真假情况
③、考察他的邻近状态(对某一个变量的值进行翻转,注意设置一个最大的翻转次数),考察邻近状态下的子句的真假情况
④、跳转到评估函数最好的邻近状态,继续
⑤、可以加入一个概率导致对某一个变量随机发生翻转,从而实现退火
g、过约束问题:使得语句得到满足的模型数量很少且很可能无解,设置m/n,m为子句的数目,n为变量的数目,这个指标越小越容易满足。
4、命题逻辑假定世界由一个个事实组成
5、一阶逻辑假定世界包含对象、函数、关系,相当于进行了细化
在这里插入图片描述
6、一阶逻辑的基本元素:
a、常量符号(命题逻辑有)
b、谓词符号
c、函数涵词
d、变量(命题逻辑有)
e、连接符(命题逻辑有)
f、量词:全部,存在
7、涵词与谓词的区别:谓词返回的都是true或false,涵词返回对象。
8、一阶逻辑的原子语句:
a、返回的是true和false
b、项是对象的逻辑表达式,包含常数符号、复合项(涵词+参数)
c、原子语句=对象的项+谓词
d、一个模型包含一些对象和对象之间的关系:
常数符号对应于对象
谓词符号对应于对象之间的关系
涵词符号对应于函数关系
e、一个带谓词的原子语句为真当且仅当该原子语句中的所有对象满足谓词关系
9、一阶逻辑的复合语句是由原子语句用逻辑连接词连接而成
10、举例:
在这里插入图片描述
a、person是谓词,且是一阶谓词,参数有一个,用来判断对象是否是人
b、king和crown都是谓词,用来判断对象的身份
c、brother是谓词,且是二阶谓词,参数有两个,用来判断对象之间的关系
d、leftleg是涵词,用来返回某个对象(人名)的左腿(对象)
11、全称量词:
a、对于所有的变量取值(任意一个变量取值),都为真
b、对应于有效性
c、在这里插入图片描述在模型m中是真当且仅当对于x在模型m中的所有可能取值P都为真
d、=>符号,即使前提条件为假,整体也是真,即TT、FT、FF,只有TF的情况下,语句才为假
e、通常,=>是全称量词的主要逻辑连接符
12、存在量词:
a、存在一个模型满足条件
b、对应可满足性
c、在这里插入图片描述在模型m中是真当且仅当对于x在模型m中存在一个取值使得P为真
d、通常,∩是存在量词的主要逻辑连接符
13、两次的属性:
在这里插入图片描述
14、存在一个x喜欢所有的y!=对于任何一个y都有一个x喜欢。这是由于“存在所有”是“所有存在”的一种特殊情况,而“所有存在”有不满足“存在所有”的情况,所以不能划等号。
15、翻译语句的时候不能出现x和y(即不能出现变量)
16、量词等价性变换:
在这里插入图片描述
a、“所有”=“不存在非”
b、“存在”=“不是所有非”
17、一阶逻辑断言与查询
a、TELL:将语句添加到知识库中,又称为断言
b、ASK:查询知识库语句的真假
18、亲属关系域:
a、兄弟是兄弟姐妹在这里插入图片描述
b、一个人的母亲是一个人的女性父母在这里插入图片描述
c、兄弟姐妹也是对称的在这里插入图片描述
19、命题化:
a、全称量词实例化
b、目的:把一阶逻辑转化为命题逻辑,进行逻辑证明;用常量代替变量
20、全称量词实例化:
在这里插入图片描述
a、可以用任何常数项置换变量得到语句
b、分子为已知条件,分母为结论
c、对于一个变量,如果一个语句成立,可以把变量置换成一个常量,使语句也成立。即“所有的国王是坏人”可化为“国王k是坏人”
21、存在量词实例化
在这里插入图片描述
a、对于语句和变量和常数,只要常数没有在知识库外的地方出现,则可以把变量换成常量,而这个常量是不确定的。
b、即“存在国王是好人”可化为“国王C是好人”
22、一阶逻辑退化到命题逻辑:
a、每一个一阶逻辑的知识库都能被命题化
b、思路:实例化KB和查询(即实例化);归结;返回结果
c、命题逻辑导致的知识库的扩张可能是无限的(当包含涵词的时候,对象无限多可能会导致知识库无限扩张)
d、命题化可能产生许多无关语句
e、对于p个k阶谓词(谓词中有多少个参数)和n个常数(参数可以用多少个常数代替),共产生pn^k个实例化
23、合一操作:unitfy(p,q)=θ,θ为一种变量关系,即变量的一种取值模型。
a、使得两个谓词相等的一种变量置换操作(找到一种合理的模型)
b、两条语句为输入,合一置换存在则返回他们的合一置换
c、举例:
若p=know(john,x),q=know(john,jane)则合一置换结果为x=jane
若p=know(john,x),q=know(y,oj)则合一置换结果为x=oj,y=john
若p=know(john,x),q=know(y,mather(y))则合一置换结果为x=mather(john),y=john
若p=know(john,x),q=know(x,oj)则合一置换结果为fail
若p=know(john,x),q=know(y,z)则合一置换结果为y=john,x=z或y=john,x=john,z=john,选择第一种更一般的置换
d、合一操作的置换结果可能不唯一,但存在唯一的一个最一般合一置换,其他的合一置换都由最一般的衍生而来
24、一般性假言推理规则
a、对于原子语句pi,pj,q存在置换是的所有的i都有SUBST(θ,Pj)=SUBST(θ,pi)成立,则有:
在这里插入图片描述
b、θ为一个可能的模型(结果),如果该结果同时让所有的P成立,且P可以推出q,则θ能让q成立,即存在SUBST(θ,q),就是把结果θ带入后的实例化后的语句。

发布了317 篇原创文章 · 获赞 194 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_40851744/article/details/105301262