网站大量收购闲置独家精品文档,联系QQ:2885784924

人工智能第一次实验报告.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
人工智能第一次实验报告

图搜索实验报告 班级 姓名:魏苗凤 学号:2010302565 一 实验题目 图搜索与问题求解 二 实验目的 1 熟悉和掌握启发式搜索/A*搜索的定义、估价函数和算法过程; 2 理解和掌握搜索过程,能够用选定的编程语言求解八数码问题,理解求解流程和搜索顺序; 3 比较并分析图搜索策略的实质,通过实验理解启发式搜索/A*搜索的意义。 三 实验要求 1以九宫问题/八数码问题为例,以某种启发式搜索/A*搜索策略编程演示其搜索过程; 算法的步骤如下: 1)建立一个队列,计算初始结点的估价函数f,并将初始结点入队,设置队列头和尾指针。 2)取出队列头(队列头指针所指)的结点,如果该结点是目标结点,则输出路径,程序结束。否则对结点进行扩展。 3)检查扩展出的新结点是否与队列中的结点重复,若与不能再扩展的结点重复(位于队列头指针之前),则将它抛弃;若新结点与待扩展的结点重复(位于队列头指针之后),则比较两个结点的估价函数中g的大小,保留较小g值的结点。跳至。 4)如果扩展出的新结点与队列中的结点不重复,则按照它的估价函数f大小将它插入队列中的头结点后待扩展结点的适当位置,使它们按从小到大的顺序排列,最后更新队列尾指针。 5)如果队列头的结点还可以扩展,直接返回。否则将队列头指针指向下一结点,再返回。估价函数中的h就是全体数字偏移距离之和。例如在一个状态中,数字8的位置是3,在另一状态中位置是7,那么从矩阵的3行7列可找到2,它就是8在两个状态中的偏移距离。open表为空,找不到目标节点 四 数据结构 请说明八数码状态、OPEN表和CLOSE表是如何定义的。 首先定义两个表,open表用于存放已经生成,且已用启发式函数进行过估计或评价,但尚未产生它们的后继节点的那些结点,这些结点也称未考察结点; closed表用于存放已经生成,且已考察过的结点。设S0为初态,Sg为目标状态。 五 实验算法 1 说明有解和无解如何判定; 无解是因为open表为空,找不到目标节点.通过以上的结果表明A算法是一种最佳优先算法,其特点在于对估价函数的定义上.对于一般的有序搜索,总是选择f值最小的节点作为扩展节点.因此,f是根据需要找到一条最小代价路径的观点来估算节点的.可考虑的每个节点n的估价函数值分为两个分量:从开始节点到节点n到达目标节点的代价.Open表存放待考察节点,以及为空时表明此问题无解;close表存放已经考察过的节点,最后搜索成功后输出最优路径。 4 说明实验中采用的搜索算法。 struct node{ int a[3][3];//用二维数组存放8数码 int b[3][3]; int hx;//函数h(x)的值,表示与目标状态的差距 struct node *parent;//指向父结点的指针 struct node *next;//指向链表中下一个结点的指针 }; 六 实验结果 1 要求有实验运行结果截图,以及必要的说明; 解决八数码问题的常用方法为图搜索法,可用广度优先、深度优先和A*算法实现,其中A算法又因估价函数的不同而有着不同的搜索时间。这三种算法各有各自的特点。 七 实验总结及体会 复习了C语言和面向对象程序设计的相关知识,经过许多次的尝试和努力才有点眉目.对简单的语法语句能说出来其功能.

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档