一阶谓词逻辑表示法以数理逻辑为基础,是一种重要的知识表示方法。
谓词公式, 用谓词联接符号将一些谓词链接起来所形成的公式。
利用谓词公式既可以表示事物的状态、属性和概念等事实性的知识,也可以表示事物间因果关系等规则性知识。
例如:事实性知识“张三是学生,李四也是学生”可以表示为:
I S S T U D E N T ( 张 三 ) ∨ I S S U D E N T ( 李 四 ) ISSTUDENT(\mathrm{张三})\vee ISSUDENT(\mathrm{李四})\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; ISSTUDENT(张三)∨ISSUDENT(李四)
1、定义谓词及个体,确定每个谓词及个体的确切含义。
2、根据所表达的事物或概念,为每个谓词中的变量赋以特定的值。
3、根据所表达知识的语义,用适当的联接符号将各个谓词联接起来形式谓词公式。
1、事实性知识案例
张晓辉是一名计算机系的学生,但他不喜欢编程序。
C O M P U T E R ( z h a n g x h ) ∧ ∼ L I K E ( z h a n g x h , p r o g r a m m i n g ) COMPUTER(zhangxh)\wedge\sim LIKE(zhangxh,programming) COMPUTER(zhangxh)∧∼LIKE(zhangxh,programming)
须首先定义:
COMPUTER(x) : x是计算机系的学生
LIKE(x,y) :x喜欢y
张晓辉(zhangxh),编程序(programming)
2、规则性知识
人人爱劳动。
首先定义:MAN(x): x是人,LOVE(x,y): x爱y
∀ ( x ) ( M A N ( x ) → L O V E ( x , l a b o u r ) \forall(x)(MAN(x)\rightarrow LOVE(x,labour) ∀(x)(MAN(x)→LOVE(x,labour)
3、机器人搬积木问题表示
在一个房间里,有一个机器人ROBOT,一个壁橱ALCOVE,一个积木块BOX,两个桌子A和B。开始时,机器人ROBOT在壁橱ALCOVE的旁边,且两手是空的,桌子A上放着积木块BOX,桌子B上是空的。机器人ROBOT将把积木块BOX从桌子A移到桌子B上。
1)定义本问题涉及的常量:
机器人:ROBOT; 积木块:BOX; 壁橱: ALCOVE; 桌子:A;桌子:B
2)定义谓词如下:
TABLE(x):x是桌子
EMPTYHANDED(x):x双手是空的
AT(x,y):x在y的旁边
HOLDS(y,w):y拿着w
ON(w,x):w在x的上面
EMPTYTABLE(x):桌子x是空的
3)根据问题的描述将初始状态和目标状态分别用谓词公式表示出来:
问题的初始状态:
A T ( R O B O T , A L C O V E ) ∧ E M P T Y H A N D E D ( R O B O T ) ∧ O N ( B O X , A ) ∧ T A B L E ( A ) ∧ T A B L E ( B ) ∧ E M P T Y T A B L E ( B ) AT(ROBOT,ALCOVE)\wedge EMPTYHANDED(ROBOT)\wedge ON(BOX,A)\wedge TABLE(A)\wedge TABLE(B)\wedge EMPTYTABLE(B) AT(ROBOT,ALCOVE)∧EMPTYHANDED(ROBOT)∧ON(BOX,A)∧TABLE(A)∧TABLE(B)∧EMPTYTABLE(B)
问题的目标状态:
A T ( R O B O T , A L C O V E ) ∧ E M P T Y H A N D E D ( R O B O T ) ∧ O N ( B O X , B ) ∧ T A B L E ( A ) ∧ T A B L E ( B ) ∧ E M P T Y T A B L E ( A ) AT(ROBOT,ALCOVE)\wedge EMPTYHANDED(ROBOT)\wedge ON(BOX,B)\wedge TABLE(A)\wedge TABLE(B)\wedge EMPTYTABLE(A) AT(ROBOT,ALCOVE)∧EMPTYHANDED(ROBOT)∧ON(BOX,B)∧TABLE(A)∧TABLE(B)∧EMPTYTABLE(A)
4)将问题表示出来后如何求解
接下来对问题的求解,就是要找到一组机器人可执行的使状态改变的操作。通过分析发现,操作一般分为先决条件和动作两部分,下面用谓词公式表示。
本例中机器人将BOX从A移动到B所需要执行的操作有3个:
GOTO(x,y):从x处走到y处
PICK-UP(x) :从x处拿起盒子
SET-DOWN(x):在x处放下盒子
这三个操作可分别用条件和动作表示如下:
G O T O ( x , y ) 条 件 : A T ( R O B O T , x ) 动 作 : 删 除 A T ( R O B O T , x ) 增 加 A T ( R O B O T , y ) GOTO\left(x,y\right)\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\\\mathrm{条件}:AT(ROBOT,x)\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\\\mathrm{动作}:\mathrm{删除}\;AT(ROBOT,x)\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\\\;\;\;\;\;\;\;\;\;\;\;\;\;\mathrm{增加}\;AT(ROBOT,y)\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; GOTO(x,y)条件:AT(ROBOT,x)动作:删除AT(ROBOT,x)增加AT(ROBOT,y)
P I C K − U P ( x ) 条 件 : O N ( B O X , x ) ∧ T A B L E ( x ) ∧ E M P T Y H A N D E D ( R O B O T ) 动 作 : 删 除 O N ( B O X , x ) ∧ E M P Y H A N D L E ( R O B O T ) 增 加 H O L D ( R P B O T , B O X ) PICK-UP(x)\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\\\mathrm{条件}:ON(BOX,x)\wedge TABLE(x)\wedge EMPTYHANDED(ROBOT)\\\mathrm{动作}:\mathrm{删除}\;\;ON(BOX,x)\wedge EMPYHANDLE(ROBOT)\;\;\;\;\;\;\;\;\;\;\;\;\;\;\\\;\;\;\;\;\;\;\;\;\;\;\mathrm{增加}\;\;HOLD(RPBOT,\;BOX)\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; PICK−UP(x)条件:ON(BOX,x)∧TABLE(x)∧EMPTYHANDED(ROBOT)动作:删除ON(BOX,x)∧EMPYHANDLE(ROBOT)增加HOLD(RPBOT,BOX)
…
机器人在执行操作之前,总要检查所需的先决条件是否满足才会执行。
1、自然性
2、适宜于精确知识的表示
3、易实现
4、与谓词逻辑表示法相对应的推理方法
参考自《人工智能教程》高等教育出版社