人工智能导论课参考答案第章

———————————————————————————————— 作者:
———————————————————————————————— 日期:
   
第2章 知识表示方法部分参考答案
2.8 设有如下语句,请用相应的谓词公式分别把他们表示出来:
(1) 有的人喜欢梅花,有的人喜欢菊花,有的人既喜欢梅花又喜欢菊花 。
解:定义谓词
P(x):x是人
L(x,y):x喜欢y
其中,y的个体域是{梅花,菊花}。
将知识用谓词表示为:
(x )(P(x)L(x, 梅花)L(x, 菊花)L(x, 梅花)L(x, 菊花))
(2) 有人每天下午都去打篮球。
解:定义谓词
P(x):x是人
B(x):x打篮球
A(y):y是下午
将知识用谓词表示为:
(x )(y) (A(y)B(x)P(x))
(3) 新型计算机速度又快,存储容量又大。
解:定义谓词
NC(x):x是新型计算机
F(x):x速度快
B(x):x容量大
将知识用谓词表示为:
(x) (NC(x)F(x)B(x))
(4) 不是每个计算机系的学生都喜欢在计算机上编程序。
解:定义谓词
S(x):x是计算机系学生
L(x, pragramming):x喜欢编程序
U(x,computer):x使用计算机
将知识用谓词表示为:
¬ (x) (S(x)L(x, pragramming)U(x,computer))
(5) 凡是喜欢编程序的人都喜欢计算机。
解:定义谓词
P(x):x是人
L(x, y):x喜欢y
将知识用谓词表示为:
(x) (P(x)L(x,pragramming)L(x, computer))
2.9 用谓词表示法求解机器人摞积木问题。设机器人有一只机械手,要处理的世界有一张桌子,桌上可堆放若干相同的方积木块。机械手有4个操作积木的典型动作:从桌上拣起一块积木;将手中的积木放到桌之上;在积木上再摞上一块积木;从积木上面拣起一块积木。积木世界的布局如下图所示。
图  机器人摞积木问题
CA
B
A
B
C
解:(1) 先定义描述状态的谓词
    CLEAR(x):积木x上面是空的。 
    ON(x, y):积木x在积木y的上面。
    ONTABLE(x):积木x在桌子上。
    HOLDING(x):机械手抓住x
HANDEMPTY:机械手是空的。
其中,xy的个体域都是{A, B, C}
问题的初始状态是:
ONTABLE(A)
ONTABLE(B)
ON(C, A)
    CLEAR(B)
    CLEAR(C)
    HANDEMPTY
    问题的目标状态是:
    ONTABLE(C)
    ON(B, C)
    ON(A, B)
左岸右岸CLEAR(A)
HANDEMPTY
(2) 再定义描述操作的谓词
在本问题中,机械手的操作需要定义以下4个谓词:
Pickup(x):从桌面上拣起一块积木x
Putdown(x):将手中的积木放到桌面上。
Stack(x, y):在积木x上面再摞上一块积木y
Upstack(x, y):从积木x上面拣起一块积木y
其中,每一个操作都可分为条件和动作两部分,具体描述如下:
Pickup(x)
    条件:ONTABLE(x)HANDEMPTYCLEAR(x)
    动作:删除表:ONTABLE(x)HANDEMPTY
          添加表:HANDEMPTY(x)
Putdown(x)
    条件:HANDEMPTY(x)
    动作:删除表:HANDEMPTY(x)
          添加表:ONTABLE(x)CLEAR(x) HANDEMPTY
Stack(x, y)
    条件:HANDEMPTY(x)CLEAR(y)
    动作:删除表:HANDEMPTY(x)CLEAR(y)
          添加表:HANDEMPTYON(x, y)CLEAR(x)
Upstack(x, y)
    条件:HANDEMPTYCLEAR(y)ON(y,x)
    动作:删除表:HANDEMPTYON(y, x)