2.2.3谓词逻辑表示的应用 机器人移盒子问题(3/6) ⑩描述操作的谓词 条件部分:用来说明执行该操作必须具备的先决条件 可用谓词公式来表示 动作部分:给出了该操作对问题状态的改变情况 通过在执行该操作前的问题状态中删去和增加相 应的谓词来实现 需要定义的操作: Goto(x,y):从x处走到y处 Pickup(x):在x处拿起盒子。 Setdown(y):在x处放下盒子
21 2.2.3 谓词逻辑表示的应用 机器人移盒子问题(3/6) 描述操作的谓词 条件部分:用来说明执行该操作必须具备的先决条件 可用谓词公式来表示 动作部分:给出了该操作对问题状态的改变情况 通过在执行该操作前的问题状态中删去和增加相 应的谓词来实现 需要定义的操作: Goto(x, y):从x处走到y处。 Pickup(x):在x处拿起盒子。 Setdown(y):在x处放下盒子
22.3谓词逻辑表示的应用 机器人移盒子问题(46) ⑩各操作的条件和动作 Goto(x, y) 条件:AT(obot,x 动作:删除表:AT( robot,x) ⑩⑩ 添加表:AT( robot,y) Pickup(x) A1: 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(obot,box) 添加表: EMPTY(obot),ON(box,x) 机器人每执行一操作前,都要检查该操作的先决条件是否可以满足。如果满足,就执行相应的 操作;否则再检查下一个操作
22 2.2.3 谓词逻辑表示的应用 机器人移盒子问题(4/6) 各操作的条件和动作: 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) 机器人每执行一操作前,都要检查该操作的先决条件是否可以满足。如果满足,就执行相应的 操作;否则再检查下一个操作
22.3谓词逻辑表示的应用 机器人移盒子问题(5/6) 这个机器人行动规划问题的求解过程如下 态1初始状态 ⑩⑩⑩⑩⑩⑩ AT(robot, c) 开始 EMPTY(robot) =====>ON(bx,a) TABLE(a) TABLE(b) 状态2 AT(robot, a) o Goto(c, a) EMP TY(robot) ON(bOX, a TABLE(a) TABLE(b) AT(robot, a) Pickup(a) HOLDS(robot, box) e> TABLE(a) TABLE(b)
23 2.2.3 谓词逻辑表示的应用 机器人移盒子问题(5/6) 这个机器人行动规划问题的求解过程如下: 状态1(初始状态) AT(robot, c) 开始 EMPTY(robot) =========> ON(box, a) TABLE(a) TABLE(b) 状态2 AT(robot, a) Goto(c, a) EMPTY(robot) ==========> ON(box, a) TABLE(a) TABLE(b) 状态3 AT(robot, a) Pickup(a) HOLDS(robot,box) =========> TABLE(a) TABLE(b)
22.3谓词逻辑表示的应用 机器人移盒子问题(6/6) 状态4 A oDo Goto(a, b) HOLDS(robot, box) ②========> TABLE(a) TABLE(b) 状态5 T(robot, b) (D Setdown(b) EMPTY(robo ON(box, b) TABLE(a) TABLE(b) 状态6目标状态 AT(robot, c) Goto(b, C) EMPTY(robot ========>ON(box,b) TABLE(a) TABLE(b)
24 2.2.3 谓词逻辑表示的应用 机器人移盒子问题(6/6) 状态4 AT(robot, b) Goto(a, b) HOLDS(robot,box) ==========> TABLE(a) TABLE(b) 状态5 AT(robot, b) Setdown(b) EMPTY(robot) ==========> ON(box, b) TABLE(a) TABLE(b) 状态6(目标状态) AT(robot, c) Goto(b, c) EMPTY(robot) =========> ON(box, b) TABLE(a) TABLE(b)
223谓词逻辑表示的应用 猴子摘香蕉问题(13) ●描述状态的谓词: AT(x,y):x在y处 ONBOX:猴子在箱子上 HB:猴子得到香蕉 个体域: X: monkey, box, banana Y: a, b, c 问题的初始状态 aT(monkey, a) AT(box, b) a ONBOX, -HB 问题的目标状态 AT(monkey, c), AT(box, c) ONBOX I HB
⚫ 描述状态的谓词: ⚫ AT(x, y):x在y处 ⚫ ONBOX:猴子在箱子上 ⚫ HB:猴子得到香蕉 ⚫ 个体域: ⚫ x :{monkey,box, banana} ⚫ Y:{a, b, c} ⚫ 问题的初始状态 ⚫ AT(monkey, a) ⚫ AT(box, b) ⚫ ¬ONBOX , ¬HB ⚫ 问题的目标状态 ⚫ AT(monkey, c) ,AT(box, c) ⚫ ONBOX , HB a c b 25