房内有一只猴子、一个箱子,天花板上挂了一串香蕉,其位置关系如图所示,猴子为了拿到香蕉,它必须把箱子推到香蕉下面,然后再爬到箱子上。请定义必要的谓词,写出问题的初始状态(即图示的状态)、目标状态(猴子拿到了香蕉,站在箱子上,箱子位于位置b)。 定义谓词 AT(x,y): x在y位置上 BOX(y): 箱子在y的位置。 OVER(x): x被挂在天花板上 EMPTY(x): x手中是空的 HOLD(x, z): x拿着z ON (x,w): x在w的上面 NOT_on (x,w) : x在w的上面 BAN(y): 香蕉在y的位置 猴子的位置为: a 香蕉位置为:b 箱子的位置为:c 问题的初始状态: AT(monkey, a)∧BOX(c) ∧BAN(b) ∧OVER(b)∧EMPTY(monkey)∧NOT_on (monkey, box) 问题的目标状态是: AT(monkey, b)∧BOX(b)∧BAN(b)∧HOLD(monkey, banana)∧ONmonkey, box) 操作: GOTO(x, y): 从x处走到y处。 PUSH(x, y): 把箱子从x处推倒y处。 CLIMB(x): 在x处爬上箱子。 GET(x): 在x处得到香蕉。 操作对应的条件与动作如下: GOTO(x, y) 条件:AT(monkey, x)∧NOT_on (monkey, box) 动作:删除:AT(monkey, x) 添加:AT(monkey, y) PUSH(x, y) 条件:AT(monkey, x)∧BOX(x)∧NOT_on (monkey, box) 动作:删除:AT(monkey, x)∧BOX(x) 添加:AT(monkey, y)∧BOX(y) CLIMB(x) 条件:AT(monkey, x)∧BOX(x) ∧NOT_on (monkey, box) 动作:删除:NOT_on (monkey, box) 添加:ON (monkey, box) GET(x) 条件:AT(monkey, x)∧BOX(x)∧ON (monkey, box) 动作:删除:EMPTY(monkey) 添加:HOLD(monkey, banana) 本文来源:https://www.wddqw.com/doc/444576717175a417866fb84ae45c3b3567ecdd81.html