



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
机器人搬箱子问题设在房内c处有一机器人,在a及b处各有一张桌子,a桌子上有一个箱子。为了让机器人从c处出发把箱子从a处拿到b处的桌上,然后再回到c处,需要制定相应的行动规划。现在用一阶为此逻辑来描述机器人的行动过程。相关谓词定义TABLE(x):x是桌子EMPTY(y):y手中是空的AT(y,z):y在z附近HOLDS(y,w):y拿着wON(w,x):w在x上面问题初始状态TABLE(a)TABLE(b)EMPTY(robot)AT(robot,c)ON(box,a)问题目标状态TABLE(a)TABLE(b)EMPTY(robot)AT(y,z)ON(box,a)任务执行过程初始状态机器人在c处;机器人从c移动到a;在a处拿起了箱子;从a移动到b;在b处放下箱子;从b回到c。问题实现思路定义3个变量描述问题状态,robot_site表示机器人位置,取值为a,b,c;is_robot_block描述机器人手中是否拿着箱子,取值为Y、N;block_site描述箱子的位置取值为a,b。定义函数改变问题状态。运行结果实现程序#include #include /* author lizm */ / 描述系统状态 typedef struct Problemchar robot_site; /描述机器人的位置 char is_robot_block; / 机器人手中是否拿着箱子 char block_site; / 箱子所在位置 SProblem;/ 初始化系统初始状态和目标状态 int init_status(SProblem *obj, SProblem *p, int *status_number)obj- robot_site = c;obj- is_robot_block = N;obj- block_site = b;p- robot_site = c;p- is_robot_block = N;p- block_site = a;printf(状态%d:n机器人当前所在位置: %c, 机器人是否拿着箱子:%c,箱子所在位置:%c。nn, *status_number, p-robot_site, p-is_robot_block, p-block_site);*status_number += 1;/ 机器人移动 int robot_move(SProblem *p, char robot_object_site, int *status_number)char temp_robot_site = p- robot_site;p- robot_site = robot_object_site;printf(状态%d:n机器人从%c移动到了%c。nn, *status_number,temp_robot_site, p- robot_site);*status_number += 1;/ 机器人搬起箱子 int pick_up_block(SProblem *p, char is_robot_block, char block_site, int *status_number)p- is_robot_block = is_robot_block;p- block_site = block_site;if(p- is_robot_block = Y)printf(状态%d:n机器人拿起了箱子。nn, *status_number);*status_number += 1;/ 机器人放下箱子 int set_down_block(SProblem *p, char is_robot_block, char block_site, int *status_number)p- is_robot_block = is_robot_block;p- block_site = block_site;if(p- is_robot_block = N)printf(状态%d:n机器人将箱子放在了%c。nn, *status_number, p- block_site);*status_number += 1;/ 判断机器人是否完成任务 int judeg_obj(const SProblem obj, const SProblem p)if(obj.robot_site = p.robot_site & obj.is_robot_block = p.is_robot_block & obj.block_site = p.block_site)printf(机器人完成任务。n);int main(int argc, char *argv) SProblem sp;SProblem obj;int status_number = 1;char robot_object_site = a;char block_site = r;char is_robot_block;/ 状态1:机器人位置c 是否拿着箱子N 箱子位置a init_status(&obj, &sp, &status_number); / 状态2:机器人位置a 是否拿着箱子N 箱子位置a robot_move(&sp, robot_object_site, &status_number);block_site = r;is_robot_block = Y;/ 状态3:机器人位置a 是否拿着箱子Y 箱子位置robot pick_up_block(&sp, is_robot_block, block_site, &status_number); robot_object_site = b;/ 状态4:机器人位置b 是否拿着箱子Y 箱子位置robot robot_move(&sp, robot_object_site, &status_number);block_site = b;is_robot_block = N;/ 状态5:机器人位置b 是否拿着箱子N 箱子位置b set_down_block(&sp, is_robot_block, block_site, &status_number); robot_obj
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 硬质合金混合料工工艺考核试卷及答案
- 食醋醋酸菌分离工艺考核试卷及答案
- 琴弦制作工招聘考核试卷及答案
- 印染烧毛工数字化技能考核试卷及答案
- 贝雕工岗位操作技能考核试卷及答案
- 2024新版2025秋人美版美术二年级上册教学课件:第1单元第1课 我画自己 2课时
- 服务心理学(第四版)课件 项目一 任务一 认 识 服 务 行 业
- 银行选拔考试题及答案
- 银行行测考试题库及答案
- 小学语文人教部编版六年级下册《第2课时鲁滨逊漂流记》课件
- 门卫岗位培训试题及答案
- DB31/T 1052-2017临床核医学工作场所放射防护与检测评价规范
- 陪玩俱乐部转让合同协议
- 2025年银行从业资格证基础知识试题及答案
- GB/T 37507-2025项目、项目群和项目组合管理项目管理指南
- 2025年人教部编版小学三年级语文上册全册单元测试题及答案(全套)
- 城市轨道交通车站平面设计要点课件
- 生产计划与调度操作手册
- 食品防欺诈培训课件
- 室内墙体拆除合同全文
- 江苏苏州历年中考语文现代文之散文阅读13篇(截至2024年)
评论
0/150
提交评论