猴子拿香蕉 逻辑谓词

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

房内有一只猴子、一个箱子,天花板上挂了一串香蕉,其位置关系如图所示,猴子为了拿到香蕉,它必须把箱子推到香蕉下面,然后再爬到箱子上。请定义必要的谓词,写出问题的初始状态(即图示的状态)、目标状态(猴子拿到了香蕉,站在箱子上,箱子位于位置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)

相关文档
最新文档