猴子和香蕉问题(monkey and banana problem)
在一个房间内有一只猴子(可把这只猴子看做一个机器人)、一个箱子和一束香蕉。香蕉挂在天花板下方,但猴子的高度不足以碰到它。那么这只猴子怎样才能摘到香蕉呢?图2.1.1
表示出猴子、香蕉和箱子在房间内的相对位置。用一个四元
表列(W,x,Y,z)来表示这个问题的状态,
其中
W-猴子的水平位置
x-当猴子在箱子顶上时取x=1;否则取x=0
Y-箱子的水平位置
z-当猴子摘到香蕉时取z=1;否则取z=0
这个问题中的操作(算符)如下:
(1) goto(U)猴子走到水平位置U,或者用产生式规则表示为
(W,0,Y,z) (U ,0 ,Y ,z )(2.3)
即应用操作goto(U),能把状态(W,0,Y,z)变换为状态(U,0,Y,z)。
(2) pushbox(V)猴子把箱子推到水平位置V,即有
(W,0,W,z)(V ,0 ,V ,z )(2.4)
应当注意的是,要应用算符 pushbox(V),就要求
产生式规则的左边,猴子与箱子必须在同一位置上,并且,猴子不是在箱子顶上。这种强加于操作的适用性条件,叫做产生式规则的先决条件。
(3)climbbox猴子爬上箱顶,即有