2.9 设有如下语句,请用相应的谓词公式分别把它们表示出来:
(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,programming):x喜欢编程序
U(x,computer):x使用计算机
将知识用谓词表示为:
¬(∀x)(S(x)→ L(x,programming)Λ U(x,computer))
(5)凡是喜欢编程序的人都喜欢计算机。
解:定义谓词
P(x):x是人
L(x,y):x喜欢y
将知识用谓词表示为:
(∀x)(P(x)Λ L(x,programming)→ L(x,computer))
2.11 用谓词表示法表示农夫、狼、山羊、白菜问题。
设农夫、狼、山羊、白菜全部在一条河的左岸,现在要把它们全部送到河的右岸去,农夫有一条船,过河时,出农夫外船上至多能载狼、山羊、白菜其中的一种。狼要吃山羊,山羊要吃白菜,除非农夫在那里。试规划出一个确保全部安全过河的计划。请写出所用谓词的定义,并给出每个谓词的功能基变量的个体域。
解:
(1)先定义描述状态的谓词
要先描述这个问题,需要能够说明农夫、狼、山羊、白菜和船在什么位置,为简化问题表示,取消船在河中行驶的状态,只描述左岸和右岸的状态。并且,由于左岸和右岸的状态互补,因此可仅对左岸或右岸的状态进行直接描述的方法,即定义谓词如下:
AL(x):x在左岸,¬ AL(x):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(狼)
R-L(山羊): 农夫带着山羊划船从左岸到右岸
条件:AL(船),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(白菜)
R-L: 农夫划船从右岸到左岸
条件:¬ AL(船),¬ AL(农夫),AL(狼)V AL(山羊),AL(山羊)V 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(农夫),AL(山羊)