2.2 一阶谓词逻辑表示法
一阶谓词逻辑表示法是一种基于数理逻辑的知识表示方式。数理逻辑是一门研究推理的科学,它作为人工智能的基础,在人工智能的发展中占有重要地位。人工智能中用到的逻辑包括一阶经典逻辑和除一阶经典逻辑以外的一些非经典逻辑。其中,一阶经典逻辑又包括一阶命题逻辑和一阶谓词逻辑。本节主要讨论基于一阶谓词逻辑的知识表示方法。
2.2.1 逻辑基础
1.命题与真值
定义2.1 一个陈述句称为一个断言。凡有真假意义的断言称为命题。
命题的意义通常称为真值,它只有真、假两种情况。当命题的意义为真时,则称该命题的真值为真,记为T;反之,则称该命题的真值为假,记为F。在命题逻辑中,命题通常用大写的英文字母来表示。
一个命题不能同时既为真又为假。例如,“天安门城楼在长安街的北面”是一个真值为T的命题,“天安门广场在长安街的南面”是一个真值为F的命题。
一个命题可在一定条件下为真,在另一种条件下为假。例如,命题“北京今天有雨”,需要根据当天的实际情况来决定其真值。
没有真假意义的感叹句、疑问句等都不是命题。例如,“今天好冷啊!”和“今天的温度有多少度?”都不是命题。
命题的优点是简单、明确。其主要缺点是无法描述客观事物的结构及其逻辑特征,也无法表示不同事物间的共性。
2.论域和谓词
论域是由所讨论对象之全体构成的非空集合。论域中的元素称为个体,论域也常称为个体域。例如,整数的个体域是由所有整数构成的集合,每个整数都是该个体域中的一个个体。
在谓词逻辑中,命题是用谓词来表示的。一个谓词可分为谓词名和个体两部分。其中,个体是命题中的主语,用来表示某个独立存在的事物或者某个抽象的概念;谓词名是命题的谓语,用来表示个体的性质、状态或个体之间的关系等。例如,对于命题“王宏是学生”可用谓词表示为STUDENT(WangHong)。其中,WangHong是个体,代表王宏;STUDENT是谓词名,说明王宏是学生这一特征。通常,谓词名用大写英文字母表示,个体用小写英文字母表示。
谓词可形式地定义如下:
定义2.2 设D是个体域,P:Dn→{T,F}是一个映射,其中
Dn={(x1,x2,…,xn)|x1,x2,…,xn∈D}
则称P是一个n元谓词(n=1,2,…),记为P(x1,x2,…,xn)。其中,x1,x2,…,xn为个体变元。
在谓词中,个体可以是常量、变元或函数。例如,“x>6”可用谓词表示为GREATER(x,6),其中x是变元。再如,“王宏的父亲是教师”可用谓词表示为TEACHER(father(Wang Hong)),其中father(Wang Hong)是一个函数。
函数可形式地定义如下:
定义2.3 设D是个体域,f:Dn→D是一个映射,则称f是D上的一个n元函数,记为
f(x1,x2,…,xn)
其中,x1,x2,…,xn是个体变元。
谓词和函数从形式上看很相似,容易混淆。但是,它们是两个完全不同的概念。谓词的真值是真和假,而函数无真值可言,其值是个体域中的某个个体。谓词实现的是从个体域中的个体到T或F的映射,而函数所实现的是同一个体域中从一个个体到另一个个体的映射。在谓词逻辑中,函数本身不能单独使用,它必须嵌入到谓词之中。
在谓词P(x1,x2,…,xn)中,如果xi(i=1,2,…,n)都是个体常量、变元或函数,称它为一阶谓词。如果某个xi本身又是一个一阶谓词,则称它为二阶谓词。本书仅讨论一阶谓词。
3.连接词和量词
一阶谓词逻辑共有五个连接词和两个量词。由于命题逻辑可看成是谓词逻辑的一种特殊形式,因此谓词逻辑中的五个连接词也都适用于命题逻辑,但两个量词仅适用于谓词逻辑。
(1)连接词
连接词是用来连接简单命题,并由简单命题构成复合命题的逻辑运算符号。
①¬:称为“非”或者“否定”。它表示对其后面的命题的否定,使该命题的真值与原来相反。例如,对命题P,若其原来的真值为T,则¬P(读为非P)的真值为F;若其原来的真值为F,则¬P的真值为T。
②∨:称为“析取”。它表示所连接的两个命题之间具有“或”的关系。
③∧:称为“合取”。它表示所连接的两个命题之间具有“与”的关系。
④→:称为“条件”或“蕴涵”。它表示“若……,则……”的语义。例如,对命题P和Q,蕴涵式P→Q表示“P蕴涵Q”,读为“如果P,则Q”,其中P称为条件的前件,Q称为条件的后件。
⑤↔:称为“双条件”。它表示“当且仅当”的语义。例如,对命题P和Q,P↔Q表示“P当且仅当Q”,即读为“P当且仅当Q”。
对以上连接词的定义,可用表2.1所给出的谓词逻辑真值表来表示。
表2.1 谓词逻辑真值表
(2)量词
量词是由量词符号和被其量化的变元所组成的表达式,用来对谓词中的个体做出量的规定。在一阶谓词逻辑中引入了两个量词符号,一个是全称量词符号“∀”,意思是“所有的”、“任一个”;另一个是存在量词符号“∃”,意思是“至少有一个”、“存在有”。例如,∀x是一个全称量词,表示“对论域中的所有个体x”,读为“对于所有x”;∃x是一个存在量词,表示“在论域中存在个体x”,读为“存在x”。
全称量词的定义:命题(∀x)P(x)为真,当且仅当对论域中的所有x,都有P(x)为真。命题(∀x)P(x)为假,当且仅当至少存在一个x0∈D,使得P(x0)为假。
存在量词的定义:命题(∃x)P(x)为真,当且仅当至少存在一个x0∈D,使得P(x0)为真。命题(∃x)P(x)为假,当且仅当对论域中的所有x,都有P(x)为假。
4.项与合式公式
在一阶谓词演算中,合法的表达式称为合式公式(即谓词公式)。对合式公式的定义将涉及“项”的概念,下面分别给出它们的定义。
定义2.4 项满足如下规则:
(1)单独一个个体是项;
(2)若t1,t2,…,tn是项,f是n元函数,则f(t1,t2,…,tn)是项;
(3)由(1)、(2)生成的表达式是项。
可见,项是把个体常量、个体变元和函数统一起来的概念。
定义2.5 原子谓词公式的含义为:
若t1,t2,…,tn是项,P是谓词符号,则称P(t1,t2,…,tn)为原子谓词公式。
定义2.6 满足如下规则的谓词演算可得到合式公式:
(1)单个原子谓词公式是合式公式;
(2)若A是合式公式,则¬A也是合式公式;
(3)若A,B都是合式公式,则A∨B,A∧B,A→B,A↔B也都是合式公式;
(4)若A是合式公式,x是项,则(∀x)A和(∃x)A也都是合式公式。
这个定义实际上是合式公式的形成规则,按照这些规则可以形成任意复杂的合式公式。例如,¬P(x,y)∨Q(y),(∀x)(A(x)→B(x)),(∃x)A(x)→(∀y)R(x,y)∧B(y)都是合式公式。
在合式公式中,连接词的优先级别是:
¬,∧,∨,→,↔
5.自由变元和约束变元
当一个谓词公式含有量词时,区分个体变元是否受量词的约束是很重要的。通常,把位于量词后面的单个谓词或者用括弧括起来的合式公式称为该量词的辖域,辖域内与量词中同名的变元称为约束变元,不受约束的变元称为自由变元。例如,
(∀x)(P(x,y)→Q(x,y))∨R(x,y)
式中,(P(x,y)→Q(x,y))是(∀x)的辖域,辖域内的变元x是受(∀x)约束的变元;R(x,y)中的x是自由变元;公式中所有的y都是自由变元。
在谓词公式中,变元的名字是无关紧要的,可以把一个名字换成别的名字。但在换名时需注意以下两点:第一,当对量词辖域内的约束变元更名时,必须把同名的约束变元都统一换成另外一个相同的名字,且不能与辖域内的自由变元同名。例如,对公式(∀x)P(x,y),可把约束变元x换成z,得到公式(∀z)P(z,y)。第二,当对辖域内的自由变元更名时,不能改成与约束变元相同的名字。例如,对公式(∀x)P(x,y),可把自由变元y换成t(但不能换成x),得到公式(∀x)P(x,t)。
命题公式是谓词公式的一种特殊情况,也可用连接词把单个命题连接起来,构成合式公式。例如,
¬(P∨Q),P→(Q∨R),(P→Q)∧(Q↔R)
都是命题公式。
2.2.2 谓词逻辑表示方法
谓词逻辑不仅可以用来表示事物的状态、属性、概念等事实性知识,也可以用来表示事物的因果关系,即规则。对事实性知识,通常是用否定、析取或合取符号连接起来的谓词公式表示。对事物间的因果关系,通常用蕴涵式表示,例如,对“如果x,则y”可表示为“x→y”。
当用谓词逻辑表示知识时,首先需要根据所表示的知识定义谓词,然后再用连接词或量词把这些谓词连接起来,形成一个谓词公式。
例2.1 用谓词逻辑表示知识“所有教师都有自己的学生”。
解:首先定义谓词。TEACHER(x):表示x是教师。
STUDENT(y):表示y是学生。
TEACHES(x,y):表示x是y的老师。此时,该知识可用谓词表示为:
(∀x)(∃y)(TEACHER)(x)→TEACHES(x,y)∧STUDENT(y)
该谓词公式可读为:对所有x,如果x是一个教师,那么一定存在一个个体y,x是y的老师,且y是一个学生。
例2.2 用谓词逻辑表示知识“所有的整数不是偶数就是奇数”。
解:首先定义谓词。I(x):x是整数。
E(x):x是偶数。
O(x):x是奇数。
此时,该知识可用谓词表示为:
(∀x)(I(x)→E(x)∨O(x))
例2.3 用谓词逻辑表示如下知识:
王宏是计算机系的一名学生。
王宏和李明是同班同学。
凡是计算机系的学生都喜欢编程序。
解:首先定义谓词。COMPUTER(x):表示x是计算机系的学生。
CLASSMATE(x,y):表示x和y是同班同学。
LIKE(x,z):表示x喜欢z。
此时,可用谓词公式把上述知识表示为:
COMPUTER(Wang Hong)
CLASSMATE(Wang Hong,LiMing)
(∀x)(COMPUTER(x)→LIKE(x,programing))
实际上,关系数据库也可以用一阶谓词表示。
例2.4用一阶谓词逻辑表示下列关系数据库。
解:表中有两个关系。
OCCUPANT(给定住户和房间的居住关系)
TELEPHONE(给定电话号码和房间的电话关系)用一阶谓词表示为:
OCCUPANT(Zhang,201),OCCUPANT(Li,201),…
TELEPHONE(491,201),TELEPHONE(492,201),…
2.2.3 一阶谓词逻辑表示法的特点
1.一阶谓词逻辑表示法的优点
(1)自然性
谓词逻辑是一种接近自然语言的形式语言,用它表示的知识比较容易理解。
(2)精确性
谓词逻辑是二值逻辑,其谓词公式的真值只有“真”与“假”,因此可用它表示精确的知识,并可保证演绎推理所得结论的精确性。
(3)严密性
谓词逻辑具有严格的形式定义及推理规则,利用这些推理规则及有关定理证明技术可从已知事实推出新的事实,或证明所作的假设。
(4)容易实现
用谓词逻辑表示的知识可以比较容易地转换为计算机的内部形式,易于模块化,便于对知识进行增加、删除及修改。
2.一阶谓词逻辑表示法的局限性
(1)不能表示不确定的知识
谓词逻辑只能表示精确性的知识,不能表示不精确、模糊性的知识,但人类的知识不同程度地具有不确定性,这就使得它表示知识的范围受到了限制。
(2)组合爆炸
在其推理过程中,随着事实数目的增大及盲目地使用推理规则,有可能形成爆炸。目前人们在这一方面做了大量的研究工作,出现了一些比较有效的方法,如定义一个过程或启发式控制策略来选取合适的规则等。
(3)效率低
用谓词逻辑表示知识时,其推理是根据形式逻辑进行的,把推理与知识的语义割裂开来,这就使得推理过程冗长,降低了系统的效率。
尽管谓词逻辑表示法有以上一些局限性,但它仍是一种重要的表示方法,许多专家系统的知识表达都采用谓词逻辑表示。例如,格林等人研制的用于求解化学等方面问题的QA3系统,菲克斯等人研制的STRIPS机器人行动规划系统,菲尔曼等人研制的FOL机器证明系统。