九宫格问题人工智能应用技术.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
九宫格问题人工智能应用技术

实 验 报 告 课程名称 《人工智能应用技术》 实验项目 搜索技术程序设计 实验仪器 微机 学 院 信息管理学院 专 业 信息管理与信息系统 班级/学号 学生姓名 实验日期 成 绩 指导教师 杨孔雨 XXXXXXXX 信息管理学院 (课程上机)实验报告 实验课程名称:《人工智能应用技术》专业: 信息管理与信息系统 班级: XXX 学号: 2010012020 姓名: XXX 成绩: 实验名称 搜索技术程序设计 实验地点 计算中心 实验时间 2012-5-11 实验目的: 通过实验可以使学生面向实际的应用问题而着手进行设计,提高学生的动手能力,丰富其软件设计经验,为学生今后从事人工智能应用技术的设计工作打下基础。本实验使学生掌握搜索技术中重点方法的程序设计能力,加强对搜索技术主要技术的理解,提高对相关人工智能技术的认识。 实验内容:(任选一题) 1、传教士和野人问题(The Missionaries and Cannibals Problem)。寻找过河方案。 2、重排九宫问题。如书139页图6-12所示,在3(3的方格棋盘上,分别放置标有数字1、2、3、4、5、6、7、8共8个棋子,初始状态为S0,目标状态为Sg。要求寻找出从初始状态到达目标状态的搜索路径。 分别用宽度搜索或深度搜素和一种启发式搜索实现寻找该问题搜索路径的程序设计。 实验要求: (1)认真阅读教材相关实例求解步骤,作为实验内容,并准备好实验预习报告; (2)要求须课前编好程序代码; (3)独立完成实验过程,认真回答教师的随堂提问。并做好相关实验记录。 实验准备:(画出求解问题的程序流程图和相关数据结构) 广度优先搜索的基本思想: 从初始节点S0开始,逐层地对节点进行扩展,并考察它是否为目标节点。在第n层的节点没有全部扩展并考察之前,不对第n+1层的节点进行扩展。 OPEN表中节点总是按进入的先后顺序排列,先进入的节点排在前面,后进入的排在后面。 算法描述: 1. 把初始节点S0放入OPEN表。 2. 如果OPEN表为空,则问题无解,退出。 3. 把OPEN表的第一个节点(记为节点n)取出放入CLOSE表。 4. 考察节点n是否为目标节点。若是,则求得了问题的解,退出。 5. 若节点n不可扩展,则转第2步。 6. 扩展节点n,将其子节点放入OPEN表的尾部,并为每一个子节点都配置指向父节点的指针,然后转第2步。 A*搜索: 如果一般搜索过程满足如下限制,则它就称为A*算法: (1) 把OPEN表中的节点按估价函数: f(x)=g(x)+h(x) f(x)的值从小至大进行排序(一般搜索过程的第7步)。 (2) g(x)是从初始节点S0到节点x的路径的代价,g(x)是对g*(x)的估计,g(x)0。 (3) h(x)是h*(x)的下界,即对所有的x均有:h(x)≤h*(x)。 其中,g*(x)是从初始节点S0到节点x的最小代价;h*(x)是从节点x到目标节点的最小代价。 算法描述: 1. 把初始节点S0放入OPEN表,并建立目前只包含S0的图,记为G; 2. 检查OPEN表是否为空,若为空则问题无解,退出; 3. 把OPEN表的第一个节点取出放入CLOSE表,并计该节点为n; 4. 考察节点n是否为目标节点。若是,则求得了问题的解,退出; 5. 扩展节点n,生成一组子节点。把其中不是节点n先辈的那些子节点记做集合M,并把这些子节点作为节点n的子节点加入G中; 6. 针对M中子节点的不同情况,分别进行如下处理: 1. 对于那些未曾在G中出现过的M成员设置一个指向父节点(即节点n)的指针,并把它们放入OPEN表;(不在OPEN表) 2. 对于那些先前已经在G中出现过的M成员,确定是否需要修改它指向父节点的指针;(在OPEN表中,对g(x)进行更新) 3. 对于那些先前已在G中出现并且已经扩展了的M成员,确定是否需要修改其后继节点指向父节点的指针;(在CLOSE表中, 对节点n子节点的子节点更新g(x) ) 7. 对OPEN表中的节点按估价函数进行排序; 8. 转第2步。 实验过程: 实验结果: 输入初始矩阵: 输入目标矩阵: 广度优先搜索结果:(红色标记处了搜索路径) A*搜索结果:(红色标记处了搜索路径): 实验总结: 广度优先搜索算法比较可靠,只要问题有解,这种算法总可以得到解,而且得到的是最优解。但同时也有很大的缺点,例如它的盲目性较大,当目标

文档评论(0)

cgtk187 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档