人工智能 -prolog机器人搬箱子

问题:

机器人搬盒子问题:设在一个房间里,有一个机器人ROBOT ,一个壁橱ALCOVE,一个积木块BOX,两个桌子A和B。开始时,机器人ROBOT在壁橱ALCOVE旁边,且两手空空,桌子A放着积木块BOX,桌子B是空的。机器人可把积木块BOX从一种状态桌子A上变换成另一种状态桌子B上,然后回到壁橱。

代码:

%state(Robot,Table,Box,Hold,On,Move).
%robot:机器人位置,可以是a、b、alcove
%table:目标桌子,b
%box:盒子位置,开始在a,后来在b
%hold:1机器人手中有盒子0没有盒子
%on:1目标桌子上有盒子0目标桌子上没有盒子,b上有没有盒子
%move:是否刚刚移动过,0没有,1move_field(X):-member(X,[a,b,alcove]).
rules(state(X,Y,Z,_,_,0),state(W,Y,Z,_,_,1),move_robot(X,W)):-move_field(X),move_field(Y),move_field(Z),move_field(W),X\=W.
rules(state(X,Y,X,0,0,1),state(X,Y,X,1,0,0),pickup_robot(box)):-move_field(X),move_field(Y).
rules(state(X,X,Y,1,0,1),state(X,X,X,0,1,0),setdown_robot(box)):-move_field(X),move_field(Y).
rules(X,Y,Z):-rules(X,W,A),rules(W,Y,B),Z=[A,B].

结果

在这里插入图片描述

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值