资源描述
第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个操作积木的典型动作:从桌上拣起一块积木;将手中的积木放到桌之上;在积木上再摞上一块积木;从积木上面拣起一块积木。积木世界的布局如下图所示。
A
B
C
CA
B
图 机器人摞积木问题
解:(1) 先定义描述状态的谓词
CLEAR(x):积木x上面是空的。
ON(x, y):积木x在积木y的上面。
ONTABLE(x):积木x在桌子上。
HOLDING(x):机械手抓住x。
HANDEMPTY:机械手是空的。
其中,x和y的个体域都是{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),HANDEMPTY,CLEAR(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)
添加表:HANDEMPTY,ON(x, y) ,CLEAR(x)
Upstack(x, y)
条件:HANDEMPTY,CLEAR(y) ,ON(y,x)
动作:删除表:HANDEMPTY,ON(y, x)
添加表:HOLDING(y),CLEAR(x)
(3) 问题求解过程
利用上述谓词和操作,其求解过程为:
ONTABLE(A)
ONTABLE(B)
ONTABLE(C)
CLEAR(A)
CLEAR(B)
CLEAR(C)
HANDEMPTY
ONTABLE(A)
ONTABLE(B)
ON(C, A)
CLEAR(B)
CLEAR(C) HANDEMPTY
ONTABLE(A)
ONTABLE(B)
HOLDING(C)
CLEAR(A)
CLEAR(B)
CLEAR(C)
Upstack(A,C)
Putdown(C)
Pickup(B)
ONTABLE(A)
ONTABLE(C)
ON(B,C)
CLEAR(A)
CLEAR(B)
HANDEMPTY
ONTABLE(A)
ONTABLE(C)
HOLDING(B)
CLEAR(A)
CLEAR(B)
CLEAR(C)
ONTABLE(C)
ON(B,C)
ON(A,B)
CLEAR(A)
HANDEMPT
ONTABLE(C)
ON(B,C)
CLEAR(A)
CLEAR(B)
HOLDING(A)
Stack(B,A)
Stack(C,B)
Pickup(A)
2.10 用谓词表示法求解农夫、狼、山羊、白菜问题。农夫、狼、山羊、白菜全部放在一条河的左岸,现在要把他们全部送到河的右岸去,农夫有一条船,过河时,除农夫外船上至多能载狼、山羊、白菜中的一种。狼要吃山羊,山羊要吃白菜,除非农夫在那里。似规划出一个确保全部安全过河的计划。请写出所用谓词的定义,并给出每个谓词的功能及变量的个体域。
解:(1) 先定义描述状态的谓词
要描述这个问题,需要能够说明农夫、狼、羊、白菜和船在什么位置,为简化问题表示,取消船在河中行驶的状态,只描述左岸和右岸的状态。并且,由于左岸和右岸的状态互补,因此可仅对左岸或右岸的状态做直接描述。本题选择对左岸进行直接描述的方法,即定义谓词如下:
AL(x):x在左岸
其中,x的个体域是{农夫,船,狼,羊,白菜}。对应地,¬AL(x)表示x在右岸。
问题的初始状态:
AL(农夫)
AL(船)
AL(狼)
AL(羊)
AL(白菜)
问题的目标状态:
¬AL(农夫)
¬AL(船)
¬AL(狼)
¬AL(羊)
¬AL(白菜)
(2) 再定义描述操作的谓词
本题需要以下4个描述操作的谓词:
L-R:农夫自己划船从左岸到右岸
L-R(x):农夫带着x划船从左岸到右岸
R-L:农夫自己划船从右岸到左岸
R-L(x) :农夫带着x划船从右岸到左岸
其中,x的个体域是{狼,羊,白菜}。
对上述每个操作,都包括条件和动作两部分。它们对应的条件和动作如下:
L-R:农夫划船从左岸到右岸
条件:AL(船),AL(农夫),¬AL(狼)∨¬AL(羊),¬AL(羊)∨¬AL(白菜)
动作:删除表:AL(船),AL(农夫)
添加表:¬AL(船),¬AL(农夫)
L-R(狼):农夫带着狼划船从左岸到右岸
条件:AL(船),AL(农夫),AL(狼),¬AL(羊)
动作:删除表:AL(船),AL(农夫),AL(狼)
添加表:¬AL(船),¬AL(农夫),¬AL(狼)
L-R(羊):农夫带着羊划船从左岸到右岸
条件:AL(船),AL(农夫),AL(羊), AL(狼),AL(白菜)
或:AL(船),AL(农夫),AL(羊),¬AL(狼),¬AL(白菜)
动作:删除表:AL(船),AL(农夫),AL(羊)
添加表:¬AL(船),¬AL(农夫),¬AL(羊)
L-R(白菜):农夫带着白菜划船从左岸到右岸
条件:AL(船),AL(农夫),AL(白菜),¬AL(狼)
动作:删除表:AL(船),AL(农夫),AL(白菜)
添加表:¬AL(船),¬AL(农夫),¬AL(白菜)
R-L:农夫划船从右岸到左岸
条件:¬AL(船),¬AL(农夫),AL(狼)∨AL(羊),AL(羊)∨AL(白菜)
或:¬AL(船),¬AL(农夫) ,¬AL(狼),¬AL(白菜),AL(羊)
动作:删除表:¬AL(船),¬AL(农夫)
添加表:AL(船),AL(农夫)
R-L(羊) :农夫带着羊划船从右岸到左岸
条件:¬AL(船),¬AL(农夫),¬AL(羊) ,¬AL(狼),¬AL(羊),AL(白菜)
动作:删除表:¬AL(船),¬AL(农夫),¬AL(羊)
添加表:AL(船),AL(农夫),AL(羊)
(3) 问题求解过程
AL(白菜)
¬AL(农夫)
¬AL(船)
¬AL(狼)
¬AL(羊)
AL(农夫)
AL(船)
AL(狼)
AL(白菜)
¬AL(羊)
AL(狼)
AL(白菜)
¬AL(农夫)
¬AL(船)
¬AL(羊)
AL(农夫)
R-L
R-L(羊)
L-R(狼)
L-R(羊)
AL(船)
AL(狼)
AL(羊)
AL(白菜)
AL(农夫)
AL(船)
AL(羊)
AL(白菜)
¬AL(狼)
AL(农夫)
AL(船)
AL(羊)
¬AL(白菜)
¬AL(狼)
AL(羊)
¬AL(农夫)
¬AL(船)
¬AL(白菜)
¬AL(狼)
L-R(羊)
¬AL(农夫)
¬AL(船)
¬AL(羊)
¬AL(白菜)
¬AL(狼)
R-L
L-R(白菜)
2.11 用谓词表示法求解修道士和野人问题。在河的北岸有三个修道士、三个野人和一条船,修道士们想用这条船将所有的人都运过河去,但要受到以下条件限制:
(1) 修道士和野人都会划船,但船一次只能装运两个人。
(2) 在任何岸边,野人数不能超过修道士,否则修道士会被野人吃掉。
假定野人愿意服从任何一种过河安排,请规划出一种确保修道士安全的过河方案。要求写出所用谓词的定义、功能及变量的个体域。
解:(1)定义谓词
先定义修道士和野人人数关系的谓词:
G(x,y,S): 在状态S下x大于y
GE(x,y,S):在状态S下x大于或等于y
其中,x,y分别代表修道士人数和野人数,他们的个体域均为{0,1,2,3}。
再定义船所在岸的谓词和修道士不在该岸上的谓词:
Boat(z,S):状态S下船在z岸
EZ(x,S): 状态S下x等于0,即修道士不在该岸上
其中,z的个体域是{L,R},L表示左岸,R表示右岸。
再定义安全性谓词:
Safety(z,x,y,S)≡(G(x,0,S)∧GE(x,y,S))∨(EZ(x,S))
其中,z,x,y的含义同上。该谓词的含义是:状态S下,在z岸,保证修道士安全,当且仅当修道士不在该岸上,或者修道士在该岸上,但人数超过野人数。该谓词同时也描述了相应的状态。
再定义描述过河方案的谓词:
L-R(x, x1, y, y1,S):x1个修道士和y1个野人渡船从河的左岸到河的右岸
条件:Safety(L,x-x1,y-y1,S’)∧Safety(R,3-x+x1,3-y+y1,S’)∧Boat(L,S)
动作:Safety(L,x-x1,y-y1,S’)∧Safety(R,3-x+x1,3-y+y1,S’)∧Boat(R,S’)
R-L (x, x1, y, y1,S):x2个修道士和y2个野人渡船从河的左岸到河的右岸
条件:Safety(R,3-x-x2,3-y-y2,S’)∧Safety(L,x+x2,y+y2,S’)∧Boat(R,S)
动作:Safety(R,3-x-x2,3-y-y2,S’)∧Safety(L,x+x2,y+y2,S’)∧Boat(L,S’)
(2) 过河方案
Safety(L,3,3,S0)∧Safety(R,0,0,S0)∧Boat(L,S0)
L-R(3, 1, 3, 1,S0) L-R(3, 0, 3, 2,S0)
Safety(L,2,2,S1)∧Safety(R,1,1,S1)∧Boat(R,S1)
Safety(L,3,1,S1’)∧Safety(R,0,2,S1’)∧Boat(R,S1’)
R-L (2, 1, 2, 0,S1) R-L (3,0, 1, 1,S1’)
Safety(L,3,2,S2)∧Safety(R,0,1,S2)∧Boat(L,S2)
L-R(3, 0, 2, 2,S2)
Safety(L,3,0,S3)∧Safety(R,0,3,S3)∧Boat(R,S3)
R-L (3, 0, 0, 1,S3)
Safety(L,3,1,S4)∧Safety(R,0,2,S1)∧Boat(L,S4)
L-R(3, 2, 1, 0,S4)
Safety(L,1,1,S5)∧Safety(R,2,2,S5)∧Boat(R,S5)
R-L (1, 1, 1, 1,S5)
Safety(L,2,2,S6)∧Safety(R,1,1,S6)∧Boat(L,S6)
L-R(2, 2, 2, 0,S6)
Safety(L,0,2,S7)∧Safety(R,3,1,S7)∧Boat(R,S7)
R-L (0, 0, 2, 1,S7)
Safety(L,0,3,S8)∧Safety(R,3,0,S8)∧Boat(L,S8)
L-R(0, 0, 3, 2,S8)
Safety(L,0,1,S9)∧Safety(R,3,2,S9)∧Boat(R,S9)
R-L (0, 1, 1, 0,S9)
Safety(L,1,1,S10)∧Safety(R,2,2,S10)∧Boat(L,S10)
L-R(1, 1, 1, 1,S10)
Safety(L,0,0,S11)∧Safety(R,3,3,S11)∧Boat(R,S11)
2.18 请对下列命题分别写出它们的语义网络:
(1) 每个学生都有一台计算机。
g
GS
g
GS
GS
解:
占有权
计算机
学生
AKO
ISA
ISA
F
Owns
Owner
c
o
s
g
(2) 高老师从3月到7月给计算机系学生讲《计算机网络》课。
解:
7月
8月
Start
End
老师
ISA
Object
Subject
高老师
计算机系学生
讲课事件
Action
Caurse
计算机网络
讲课
(3) 学习班的学员有男、有女、有研究生、有本科生。
解:参例2.14
(4) 创新公司在科海大街56号,刘洋是该公司的经理,他32岁、硕士学位。
解:参例2.10
(5) 红队与蓝队进行足球比赛,最后以3:2的比分结束。
解:
比赛
AKO
Participants1
Outcome
3:2
2
足球赛
红队
Participants 2
蓝队
2.19 请把下列命题用一个语义网络表示出来:
(1) 树和草都是植物;
植物
解:
AKO
AKO
草
树
(2) 树和草都有叶和根;
根
叶
解:
Have
Have
植物
是一种
是一种
草
树
(3) 水草是草,且生长在水中;
解:
Live
AKO
AKO
水草
水中
植物
草
(4) 果树是树,且会结果;
解:
Can
AKO
AKO
果树
结果
植物
树
(5) 梨树是果树中的一种,它会结梨。
解:
Can
AKO
AKO
梨树
树
果树
结梨
2.25 假设有以下一段天气预报:“北京地区今天白天晴,偏北风3级,最高气温12º,最低气温-2º,降水概率15%。”请用框架表示这一知识。
解:
Frame<天气预报>
地域:北京
时段:今天白天
天气:晴
风向:偏北
风力:3级
气温:最高:12度
最低:-2度
降水概率:15%
2.26 按“师生框架”、“教师框架”、“学生框架”的形式写出一个框架系统的描述。
解:师生框架
Frame <Teachers-Students>
Name:Unit(Last-name,First-name)
Sex:Area(male,female)
Default:male
Age:Unit(Years)
Telephone:Home Unit(Number)
Mobile Unit(Number)
教师框架
Frame <Teachers >
AKO<Teachers-Students >
Major:Unit(Major-Name)
Lectures:Unit(Course-Name)
Field:Unit(Field-Name)
Project :Area(National,Provincial,Other)
Default:Provincial
Paper:Area(SCI,EI,Core,General)
Default:Core
学生框架
Frame <Students>
AKO< Teachers-Students >
Major:Unit(Major-Name)
Classes:Unit(Classes-Name)
Degree:Area(doctor,mastor, bachelor)
Default:bachelor
展开阅读全文