人工智能及其应用

人工智能及其应用最新章节目录
上QQ阅读看本书
新人免费读10天

2.2.2 谓词逻辑表示方法

(1)定义谓词的个体,确定每一个谓词及个体的确切含义。

(2)根据所要表达的事物和概念,为每个谓词中的变元赋予特定的值。

(3)根据所要表达的知识的语义,用适当的连词、量词把这些谓词连接起来形成谓词公式。

例如:表示知识“所有教师都有自己的学生”。

定义谓词:T(x):x 是教师;S(y):y是学生;TS(x,y):x是y的老师。

表示知识:(∀x)(∃y)(T(x)→ TS(x,y)∧S(y))。

可读作:对所有x,如果x是一个教师,那么一定存在一个个体y,y的老师是x,且y是一个学生。

例2.1 机器人移盒子问题

机器人移盒子问题的初始状态如图2-1所示:机器人在c处,a、b处各有一桌子,a处桌子上放有一盒子。要完成:机器人从c处出发,走到a处拿起盒子,走到b处放下盒子,再退回到c处。用谓词逻辑表示方法来描述。

图2-1 机器人移盒子问题

(1)定义描述状态的谓词。

TABLE(x):x是桌子;EMPTY(y):y手中是空的;AT(y,z):y在z处;HOLDS(y,w):y拿着w;ON(w,x):w在x桌面上。

变元的个体域:x的个体域是{a,b};y的个体域是{robot};z的个体域是{a,b,c};w的个体域是{box}。

问题的初始状态:AT(robot,c);EMPTY(robot);ON(box,a);TABLE(a);TABLE(b)。

问题的目标状态:AT(robot,c);EMPTY(robot);ON(box,b);TABLE(a);TABLE(b)。

机器人行动的目标即把问题的初始状态转换为目标状态,而要实现问题状态的转换需要完成一系列的操作。

(2)定义描述操作的谓词。

条件部分:用来说明执行该操作必须具备的先决条件,可用谓词公式来表示。

动作部分:给出了该操作对问题状态的改变情况,通过在执行该操作前的问题状态中删去和增加相应的谓词来实现。

需要定义的操作:GOTO(x,y):从x处走到y处;PICKUP(x):在x处拿起盒子;SETDOWN(x):在x处放下盒子。

(3)各操作的条件和动作。

GOTO(x,y):条件:AT(robot,x);动作:删除AT(robot,x);添加 AT(robot,y)。

PICKUP(x):条件:ON(box,x),TABLE(x),AT(robot,x),EMPTY(robot);动作:删除EMPTY(robot),ON(box,x);添加 HOLDS(robot,box)。

SETDOWN(x):条件:AT(robot,x),TABLE(x),HOLDS(robot,box);动作:删除HOLDS(robot,box);添加EMPTY(robot),ON(box,x)。

机器人每执行一个操作前,都要检查该操作的先决条件是否可以满足。如果满足,就执行相应的操作;否则再检查上一个操作。

(4)机器人行动规划问题的求解过程如下:

状态1(初始状态):AT(robot,c),EMPTY(robot),ON(box,a),TABLE(a),TABLE(b)。

动作:Goto(c,a)得到:

状态2:AT(robot,a),EMPTY(robot),ON(box,a),TABLE(a),TABLE(b)。

动作:PICKUP(a)得到:

状态3:AT(robot,a),HOLDS(robot,box),TABLE(a),TABLE(b)。

动作:GOTO(a,b)得到:

状态4:AT(robot,b),HOLDS(robot,box),TABLE(a),TABLE(b)。

动作:SETDOWN(b)得到:

状态5:AT(robot,b),EMPTY(robot),ON(box,b),TABLE(a),TABLE(b)。

动作:GOTO(b,c)得到:

状态(目标状态)6:AT(robot,c),EMPTY(robot),ON(box,b),TABLE(a),TABLE(b)。

杨天奇编著
作家的话
去QQ阅读支持我
还可在评论区与我互动