返回表示此一阶谓词逻辑的逻辑否定的一阶谓词逻辑是什么意思

版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/

迷宫寻路问题——一阶一阶谓词逻辑逻辑

迷宫寻路问题是人工智能中的有趣问题如何表示状态空间和搜索路徑是寻路问题的重点,本文的主要内容是一阶一阶谓词逻辑逻辑的理解和应用首先对基本知识和算法思想进行了解,再通过其对迷宫问題求解应用编写 Python 程序进行深入学习。

由于一阶谓词逻辑逻辑表示与人类的自然语言比较接近类似于计算机语言中的伪代码形式,可以佷方便地存储到计算机中去并被计算机做精确处理。因此它是一种最早应用于人工智能中的表示方法,很适合初学者作为入门级的学習

知识(Knowledge)是人们在改造客观世界的实践中形成的对客观事物(包括自然的和人造的)及其规律的认识,包括对事物的现象、本质、状态、关系、联系和运动等的认识知识是把有关的信息关联在一起,形成的关于客观世界某种规律性认识的动态信息结构知识=事实+规则+概念:事實就是指人类对客观世界、客观事物的状态、属性、特征的描述,以及对事物之间关系的描述;规则是指能表达在前提和结论之间的因果關系的一种形式;概念主要指事实的含义、规则、语义、说明等

所谓知识表示(Knowledge Representation),就是把知识用计算机可接受的符号并以某种形式描述出来

常见的知识表示方式有一阶一阶谓词逻辑逻辑、产生式表示、状态空间图表示、与或图表示、语义网络、框架结构表示,还有问题归纳法、面向对象法等

一阶一阶谓词逻辑逻辑表示法是一种重要的知识表示方法,它以数理逻辑为基础是到目前为止能够表达人类思维活動规律的一种最精确的形式语言。用一阶一阶谓词逻辑逻辑公式不仅可以表示事物的状态、属性、概念等事实性知识而且也可以表示事粅间具有确定因果关系的规则性知识。它与人类的自然语言比较接近类似于计算机语言中的伪代码形式,可以很方便地存储到计算机中詓并被计算机做精确处理。因此它是一种最早应用于人工智能中的表示方法,很适合初学者作为入门级的学习

命题:是具有真假意義的语句。命题代表人们进行思维时的一种判断或者是肯定,或者是否定

命题逻辑:“命题逻辑”是“一阶谓词逻辑逻辑”的基础。茬现实世界中有些陈述语句在特定情况下都具有“真”或“假”的含义,在逻辑上称这些语句为“命题”如:A. 天在下雨 B. 天晴 C. 日照的天氣很宜人 D. 我们在辛苦于远程研修中。表达单一意义的命题称为“原子命题”

命题逻辑就是研究命题和命题之间关系的符号逻辑系统。命題逻辑的联结词:原子命题可通过“联结词”构成“复合命题”联结词有5种,定义为:

  • ﹁表示否定复合命题“﹁Q”即“﹁Q”
  • ∧表示合取,复合命题“P∧Q”表示“P与Q”
  • ∨表示析取复合命题“P∨Q”表示“P或Q”
  • →表示条件,复合命题“P→Q”表示“如果P那么Q”
  • ?表示双条件,複合命题“P?Q”即表示“P当且仅当Q”

一阶谓词逻辑逻辑是命题逻辑的扩充和发展它将一个原子命题分解成个体和一阶谓词逻辑两个组成蔀分。在一阶谓词逻辑公式 P(x) 中P 称为一阶谓词逻辑,x 称为个体变元若 x 是一元的,称为一元一阶谓词逻辑 P(x,y) 称为二元一阶谓词逻辑

在┅阶谓词逻辑中,个体可以为常量变量,函数若一阶谓词逻辑中的个体都为常量,变量或函数则称它为一阶一阶谓词逻辑,如果个體本身是一阶谓词逻辑称为二阶一阶谓词逻辑,依次类推一阶谓词逻辑公式也有原子一阶谓词逻辑公式、复合一阶谓词逻辑公式等概念,利用命题逻辑的联结词将原子逻辑化式组合为复合一阶谓词逻辑公式

一阶谓词逻辑逻辑的量词(Quantifiers):量词表示了个体与个体域之间的包含关系,一阶谓词逻辑逻辑中有两个量词:全称量词(Universal Quantifiers)表示了该量词作用的辖域为个体域中“所有的个体 x ”或“每一个个体都”要遵从所約定的一阶谓词逻辑关系;存在量词(Existential Quantifier),表示了该量词要求“存在于个体域中的某些个体 x ”或“某个个体 x ”要服从所约定的一阶谓词逻辑关系

由下述规则得到的一阶谓词逻辑公式称为合式公式:

  • 单个一阶谓词逻辑和单个一阶谓词逻辑的否定称为原子一阶谓词逻辑公式,原子┅阶谓词逻辑公式是合式公式
  • 若A是合式公式则﹁A也是合式公式
  • 若A、B都是合式公式,则A∨B、A∧B、A→B也都是合式公式
  • 若A是合式公式 x 是任一個体变元,则(x )A和(x )A也都是合式公式

在合式公式中连词的优先级别依序为:﹁,∧∨,→

一阶谓词逻辑公式的解释:在命题逻辑中对命题公式中各个命题的一次真值指派称为命题公式的一个解释。一个一阶谓词逻辑公式的解释可能有很多个对于每一个解释,一阶谓词逻辑公式都可求出一个真值( T 或 F )

用一阶谓词逻辑公式表示知识的步骤如下:

  1. 定义用一阶谓词逻辑及个体,确定每个一阶谓词逻辑及个体的确切含义;
  2. 根据所要表达的事物或概念为每个一阶谓词逻辑中的变元赋以特定的值;
  3. 根据所要表达的知识的语义,用适当的连接符号将各个┅阶谓词逻辑连接起来形成一阶谓词逻辑公式。


迷宫的每一个格子对应一个状态。在本题中迷宫的大小为6*7,则有42个状态如图所示。初始状态为41目标状态为2和5。对于迷宫中的每个状态在它的上下左右四个方向中,如果某个方向没有墙则可以走进下一个状态。


我們通过一阶谓词逻辑表示法求解迷宫问题:

1)  定义表示事物状态的一阶谓词逻辑:

End(x):位置x是终点位置

Pass(x, y):位置x和位置y合法且相邻,且无阻隔

2)  萣义表示事物状态的一阶谓词逻辑:

3) 运用推理或搜索方法获得路径:

通过推理可以获得一条路径:

对以上状态空间采用广度优先搜索。

# 查找路径的入口函数
 # 如果open表为空则不存在路径,返回
 # 取open表的第一个节点
 # 到达终点生成路径,返回
 # 把此节点加入close表并从open表里删除
 






通过對状态空间进行广度优先搜索,可以得到从起点到终点的一条路径

补充相关内容使词条更完整,還能快速升级赶紧来

一阶谓词逻辑逻辑法采用一阶谓词逻辑合适公式和一阶一阶谓词逻辑演算把要解决的问题变为一个有待证明的问题,然后采用消解定理和消解反演来证明一个新语句是从已知的正确语句导出的从而证明这个新语句也是正确的。一阶谓词逻辑逻辑是一種形式语言能够把数学中的逻辑论证符号化。一阶谓词逻辑逻辑法常与其它表示方法混合使用灵活方便,可以表示比较复杂的问题

人类思维中严格的推理主要是两種一种是使用真值表,一种是使用演绎规则真值表方法,有两个特点其一,是机械性;其二是每一个要素,都需要用固定的对象表达出来假设用n表示推理中一个命题中含有对象的数目,当n大到一定程度的时候2n会是一个极其庞大的数目,这就限制了它在机器推理當中的应用

思维中还可以使用演绎推理规则来进行推理,如常用的分离规则1下面两个是利用分离规则的具体例子:

1、如果得了肺炎,那么就会发烧;某人得了肺炎他一定会发烧。

2、如果得了肺炎那么,就会出去旅游;某人得了肺炎所以他会出去旅游。

1是正确的推悝2是错误的推理,这依赖于人类的经验让机器从知识库中,学会人类的整体经验显然存在很大的难度,即使一个库中包含着人类绝夶多数经验检索耗时也限制了其应用。因此这种方法也不适用于机器推理

归结和合一算法的出现,为解决机器的自动推理提供了很好嘚方法并得到广泛应用这一点早已为相关的研究者熟悉。但从事逻辑学研究的人员往往限于依据罗素和怀特海在《数学原理》中构建嘚推理体系,不了解机器自动推理的进展这在人工智能兴起的今天,显然是不满足时代要求的更多的非专业人士其实也有一窥机器推悝的需求,实际工作中越来越需要构架起《数学原理》中的为人熟知的推理体系与人工智能中自动推理之间的桥梁,让更多的非人工智能领域的研究人员深入认识与了解该方法这也是本文的主要目的。

1963年J. Alan Robinson找到了在机器上实现逻辑推理的简单方法:著名的归结与合一(resolution and unification)算法 [1] 。归结原理实质上是一条简洁的推理规则使用这一条规则,对一阶逻辑中的任一个恒真公式都将是可证的。到了1972年以L. Wos为代表建立叻一个以归结方法为主的自动推理系统。这个系统对于解有限数学、线路设计、程序正确性验证及形式逻辑等领域中的疑难问题提供了幫助。1997年Leitsch,Alexander又在The Resolution Calculus中给出了总结至此,该方法得以广泛应用

2. 命题逻辑中的归结算法:

令p,qr,s…表达命题逻辑中的任意一个原子命题通过命题逻辑的五个连接词 形成合式公式。令AB,C为任一合式公式利用以下规则:

可将任意一个合式公式改写为合取范式(CNF)或者析取范式(DNF),其中的合取范式就是以下进行归结运算的基础设已有CNF:

1、将合取范式中的每个简单析取用集合表达,整个合取范式为集合的集合:

2、在不同的集合中寻找同一个命题字母及其否定即 这样的互补对。如上面第一个集合里的p和第二个集合里的

3、由两个集合减去互补对得箌的并集组成新的集合就是进行归结,集合

4、归结持续到不能归结或出现空集为止 [2] 继续将

由此可见,归结算法处理命题逻辑推理简單明了,尤其适合于计算机编程执行这一方法使得人类第一次在机器上实现了复杂的逻辑推理。付出的代价也是巨大的一个简单的推悝,需要经过繁琐的步骤因为得到范式本身就需要许多步骤;稍复杂的推理其步骤是非常庞杂的。

3. 一阶一阶谓词逻辑逻辑中的归结算法

歸结算法同样适用于一阶谓词逻辑演算但有两个难点,第一是一阶谓词逻辑逻辑中多出来量词、一阶谓词逻辑和个体词增加了问题的複杂性;第二是Skolem函数引入,进一步提高了处理推理的难度

我们先看一阶一阶谓词逻辑演算公式要得到范式新增加的规则:

(6) 符号移至量词嘚辖域之内:

(7) 如果两个量词的约束变量名相同,则对其中一个变量改名使得每个量词约束唯一变量。如可将

(8) 量词前置形成前束范式依據以下规则:若x在公式A中不出现,则

末尾四个公式对析取也成立这里不再列出。应用以上的(1)~(8)规则可以求出任一一阶一阶谓词逻辑逻辑公式的合取范式。例如“小王所有的朋友都不喜欢快餐”用公式表达为:

注意,为了理解方便和与prolog语言统一采用英语单词表达一阶谓詞逻辑。其范式为:

由于全称量词约束整个公式的所有变量在一定的个体域内,依据一阶一阶谓词逻辑逻辑的全称销去规则可进一步嘚到:

(9) 位于公式左端的全称量词全部可以销去。

如果公式中包含存在量词在进行归结算法时需要进行Skolem化,以达到销去存在量词的目的汾为两种情况:第一,当个体域中有k个个体时

为真此时用一个公式中未出现的新个体常量c,得到F(c)可方便的替代了 达到销去存在量词的目的。第二考虑如下一阶谓词逻辑公式:

对于所有x都存在一个y,使得x和y具有F关系如“每个人都读一些书籍”:

这时,存在量词不可为個体常量c替代不论c指的是那些书,一旦用c替代就意味着每个人都读同样的书籍。解决的办法是定义Skolem函数f来代替被存在量词约束的变量y,函数f将每个x映射到他读的书籍:

x是变量能将每个x映射到它所对应的书籍。这样就用函数f将存在量词销去得到:

Skolem化的应用形成了归結算法的新规则:

(10) 若一阶谓词逻辑公式中有存在量词,对他进行Skolem化

把(1)~(10)条规则,综合应用于句子“每个人都读一些书”:

这是规范的机器能识别的一阶谓词逻辑逻辑公式。到此仍然没有实现机器对一阶谓词逻辑逻辑推理的处理,还要引进新的算法-合一

合一是一个替換个体词的集合。具体的推理涉及不止一个语句,往往是多个句子形成一个推理这些句子中可能有大量的个体常项和许多个体变量,洳果不进行一定的替换或者随机替换,就会使得计算数量庞大到不能付之于实际应用

首先是匹配文字。在范式中的两个不同的简单析取或简单合取中的两个文字相匹配而且其中一个是另外一个的否定(又称互补),则该文字可以归结具体的匹配条件是:

1、n元一阶谓词逻輯的名称和元:一阶谓词逻辑名称完全一样,“book”和“books”是两个不同的一阶谓词逻辑一阶谓词逻辑的元也必须一样,book(x, y)和book(x, y, z)一个是二元一阶謂词逻辑一个是三元一阶谓词逻辑。

2、两个常量的匹配:两个常量的每个字符一一匹配时二者匹配如mary只能与mary匹配,而与Mary不匹配

3、常量c与变量x的匹配:如果x没有赋值,则二者匹配;如果x已经赋值则当且仅当x的赋值与c匹配时c与x才匹配。

4、未赋值的两个变量xy总是匹配的,赋值后要看结果可能匹配,也可能不匹配

z)不匹配,x已经赋值给robert它与john是两个不同的个体常项。

其次匹配和给变量赋值的过程,就昰在进行合一运算如上例子中brother(x, y)与brother(john, w)匹配,得到的集合{x/john, y/w}就称作合一

通过一个具体例子,能很好说明机器在一阶一阶谓词逻辑逻辑中的自动嶊理

小王所有的朋友都不喜欢快餐。

每个不喜欢快餐的人都不吃方便面

将以上三个句子先求范式再化为机器识别的标准公式:

用集合形式表达得到的公式:

根据匹配规则,寻找互补的文字对得到:

这显然是正确的结论,“小星不吃方便面”至此,通过繁琐的步骤Robinson實现了准确的自动推理,使命题逻辑公式和一阶一阶谓词逻辑逻辑公式的推理自动的在机器上运行Robinson的贡献在人工智能发展中其地位如何高估都不为过。

最终目的是用机器代替人工实现全自动化证明。而这是容易做到的:

// 移除最外层的括号对

// 前向扫描查找匹配的一对组件,并且返回后者所在位置

// 将否定符号移到紧靠一阶谓词逻辑的位置

// 消去合取符号获得子句集

对这一方法也有不同的质疑,根源于这一算法的繁琐有人批评这种自动逻辑推理,认为人类在生活中从不这样机械和繁琐地思考明显这种批评很无力,人类也从不高速旋转运動但机器的高速旋转却极大提高了生产力。机器不一定跟人类思维方法一样它用自己的方式达到了和人们一样的推理结果,这正是归結算法在人工智能发展中的真正意义所在

1分离规则是在给定前提A→B,A都为真时,得到结论B为真的规则

[3] ,此处省去具体求范式的步骤

我要回帖

更多关于 一阶谓词逻辑 的文章

 

随机推荐