一阶谓词逻辑表示法以数理逻辑为基础,是一种重要的知识表示方法。
知识的谓词逻辑表示方法
谓词公式, 用谓词联接符号将一些谓词链接起来所形成的公式。
利用谓词公式既可以表示事物的状态、属性和概念等事实性的知识,也可以表示事物间因果关系等规则性知识。
例如:事实性知识“张三是学生,李四也是学生”可以表示为:
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、与谓词逻辑表示法相对应的推理方法
参考自《人工智能教程》高等教育出版社