以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 C/C++编程思想 』 (http://bbs.xml.org.cn/list.asp?boardid=61) ---- 机器人搬弄积木问题 (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=78311) |
-- 作者:showin -- 发布时间:11/25/2009 2:03:00 PM -- 机器人搬弄积木问题 问题描述:设在房间里,有一个机器人Robot,一个壁橱Alcove,一块积木BOX、两张桌子A和B。开始时,机器人Robot在壁橱的旁边,且两手空空,桌子A上放着积木块BOX,桌子B上是空的。机器人Robot将把木块BOX从桌子A上转到桌子B上。其中,机器人可以行走,机器人一次只能搬动一块积木。用三种知识表示方法描述该问题,并给出问题的求解过程,并对其中一种求解方法给出计算机推理结果,要求程序运行后能给出求解的过程。 大家发发言啊 |
-- 作者:showin -- 发布时间:11/25/2009 2:04:00 PM -- 引入谓词 TABLE(A) 表A是桌子 EMPTYHANDED(ROBOT) 表机器人双手是空的 AT(ROBOT,A) 表机器人在A旁 HOLDS(ROBOT,BOX) 表机器人拿着积木块 ON(BOX,A) 表积木块BOX在A上 设定初始状态是 AT(ROBOT,ALCOVE) EMPTYHANDED (ROBOT) ON(BOX,A) TABLE(A) TABLE(B) 目标状态是 AT(ROBOT,ALCOVE) EMPTYHANDED(ROBOT) ON(BOX,B) TABLE(A) TABLE(B) 问题是依机器人可进行的操作,实现一个由初始状态到目标状态的机器人操作过程。 机器人的每个操作的结果所引起的状态变化,可用对原状态的增添表和删除表来表示。如机器人由初始状态把BOX从A桌移到B桌上,然后仍回到壁室,这时同初始状态相比有 增添表 ON(BOX,B) 删除表 ON(BOX,A) 又如机器人由初始状态,走近A桌,然后拿起BOX,这时同初始状态相比有 增添表 AT(ROBOT,A) HOLDS(ROBOT,BOX) 删除表 AT(ROBOT,ALCOVE) EMPTYHANDED(ROBOT) ON(BOX,A) 进一步说,机器人的每一操作还需有先决条件。如机器人拿起A桌上的BOX这一操作,先决条件是 ON(BOX,A),AT(ROBOT ,A) EMPTYHANDED (ROBOT) 而先决条件成立与否的验证可使用归结法。如将初始状态视作已知条件,而将要验证的先决条件视作结论,便可使用归结法了。有如下归结过程: (1) AT(ROBOT,A) (2) EMPTYHANDED(ROBOT) (3) ON(BOX,A) (4) TABLE (A) (5) TABLE (B) (6) ~ON (BOX,A)∨~AT(ROBOT,A) ∨~EMPTYHANDED(ROBOT)(先决条件的否定) (7)~AT(ROBOT,A)∨~EMPTYHANDED (ROBOT)(3,6) (8)~EMPTYHANDED (ROBOT)(1,7) (9)□ (2,8) |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
31.250ms |