




免费预览已结束,剩余4页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
人工智能实验报告实验一 图搜索策略一.实验目的 1.加深对各种图搜索策略概念的理解 2.进一步了解启发式搜索 3.比较分析各种搜索策略的异同二.实验内容和步骤 以重排九宫问题为例演示各种搜索策略(包括广度优先搜索、深度优先搜索、有界深度优先搜索、最好优先搜索和局部择优搜索等搜索策略)的搜索过程,要求程序具有一定普适性,重点是要把算法描述清楚。四.重排九宫问题的定义 在一个33的方格棋盘上放置8个标有1、2、3、4、5、6、7、8数字的将牌,留下一个空格(用0表示)。规定与空上下左右相邻的将牌可以移入空格。问题要求寻找一条从某初始状态S0到目标状态Sg的将牌移动路线。五.我对问题的描述 1.结点状态 我采用了一个10元数组A=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)来描述九宫图的每一个状态。将九宫图的九个格子依次编号为1、2、3、4、5、6、7、8、9。数组中的a0代表空格位于九宫图的那个格子,a1-a9九个元素代表了九个格子上分别是什么将牌。例如,数组(5,2,8,3,1,0,4,7,6,5)就代表了如下的状态: 2 8 3 1 4 7 6 5 这种表示法与书上略有差别,我个人认为这样做在编程上会带来方便。 2.发生器函数 我定义的发生器函数由以下的四种操作组成: (1)将当前状态的空格上移 (2)将当前状态的空格下移 (3)将当前状态的空格左移 (4)将当前状态的空格右移 以上的发生器函数,我在程序中(java)分别采用了4个类方法来实现。一个结点最多能够扩展出4个结点,而扩展出的结点也不一定就会被采用,这与具体情况有关。 通过定义结点状态和发生器函数,就解决了重排九宫问题的隐式图的生成问题。接下来就是搜索了。六.图的搜索策略 经过我的分析,重排九宫问题中可采用的搜速策略共有:1.广度优先搜索、2.深度优先搜索、2.有界深度优先搜索、4.最好优先搜索、5.局部择优搜索,一共五种。其中,广度优先搜索法是可采纳的,有界深度优先搜索法是不完备的,最好优先和局部择优搜索法是启发式搜索法。 各种搜索策略的搜索法: 1.广度优先搜索 步1 把初始结点S0放入OPEN表中 步2 若OPEN表为空,则搜索失败,问题无解 步3 取OPEN表中最前面的结点N放在CLOSE表中,并冠以顺序编号n 步4 若目标结点Sg=N,则搜索成功,问题有解 步5 若N无子结点,则转步2 步6 扩展结点N,将其所有子结点配上指向N的放回指针,依次放入OPEN表的尾部,转步2 1.深度优先搜索 步1 把初始结点S0放入OPEN表中 步2 若OPEN表为空,则搜索失败,问题无解 步3 取OPEN表中最前面的结点N放在CLOSE表中,并冠以顺序编号n 步4 若目标结点Sg=N,则搜索成功,问题有解 步5 若N无子结点,则转步2 步6 扩展结点N,将其所有子结点配上指向N的放回指针,依次放入OPEN表的首部,转步2 3.有界深度优先搜索 步1 把初始结点S0放入OPEN表中,置S0的深度d(S0)=0 步2 若OPEN表为空,则搜索失败,问题无解 步3 取OPEN表中最前面的结点N放在CLOSE表中,并冠以顺序编号n 步4 若目标结点Sg=N,则搜索成功,问题有解 步5 若N的深度d(N)=dm(深度限制值),则转步2 步6 若N无子结点,则转步2 步7 扩展结点N,将其所有子结点Ni配上指向N的放回指针,并置d(Ni)=d(N)+1,再依次放入OPEN表的尾部,转步2 4.最好优先搜索 步1 把初始结点S0放入OPEN表中 步2 若OPEN表为空,则搜索失败,问题无解 步3 取OPEN表中最前面的结点N放在CLOSE表中,并冠以顺序编号n 步4 若目标结点Sg=N,则搜索成功,问题有解 步5 若N无子结点,则转步2 步6 扩展结点N,将其所有子结点配上指向N的放回指针,并计算f(Ni),依次放入OPEN表中,然后对OPEN表重新排序(小的在前),转步2 5.局部择优搜索法 步1 把初始结点S0放入OPEN表中 步2 若OPEN表为空,则搜索失败,问题无解 步3 取OPEN表中最前面的结点N放在CLOSE表中,并冠以顺序编号n 步4 若目标结点Sg=N,则搜索成功,问题有解 步5 若N无子结点,则转步2 步6 扩展结点N,将其所有子结点配上指向N的放回指针,并计算f(Ni)。对生成的结点按f(Ni)排序(小的在前),然后将排序后的结点依次放入OPEN表的尾部(f(Ni)小的先放入),转步2 启发式搜索法使用的估计函数 在启发式搜索中,我采用的估计函数是f(n)=d(n)+h(n),d(n)是结点的深度,h(n)由以下计算得到: h(n)=p(n)+3s(n). 其中p(n)的定义是,它是n格局中每个将牌离家的最短距离之和。 s(n)是这样来计算的:沿着周围那些非中心方格上依顺时针方向检查n格局中的每一个将牌,如果其后紧跟着的将牌正好是目标格局中该将牌的后继者,则该将牌得0分,否则得2分;在正中方格上有将牌得1分,否则得0分。所有将牌得分之和即为s(n)。七.各种搜索策略之间得比较 广度优先搜索和深度优先搜索都是效率比较低下的搜索法,两者都能找到解,是完备的,而广度优先搜索法能找到最优解。有界深度优先搜索是对深度优先搜索法的一种改进,但是它可能找不到解。最好优先法和局部择优法都是启发式搜索,搜索效率很高,能很快的找到解,但是找到的不一定是最优解。八.源程序说明 源程序采用Java语言在Eclips环境下编写。 在整个程序中,我分别定义和实现了四个类: 1.“表”类:这个类从Vector类继承而来,实现了表的所有功能,用它可以创建“OPEN表”和“CLOSE表”对象来实现OPEN表和CLOSE表的功能。 2.“九宫图结点”类:这个类代表了九宫图的状态结点,具有状态数据和发生器函数,通过这个类即可生成状态空间图。 3.“九宫图”类:这个类九宫重排这个问题,具有“OPEN表”、“CLOSE表”、“开始状态”、“目标状态”等属性,并在这个类中实现前面所说的所有的五个搜索法。使用这个类就可以完成对九宫重排问题的搜索求解。 4.“程序界面”类:这个类实现了Applet的图形化程序界面,采用了动画技术,并且可以方便的设置各种搜索参数,使用方便。 源程序的所有源代码都在压缩包中可以找到,源代码书写清晰,在适当的地方都加上了注释,可以方便的阅读和理解。九.实验总结和思考 个人认为自己做的还不错,五种搜索法全部都实现了,程序运行的效果也相当良好,使用也很方便。实践中能够更深刻的理解课本上的知识,通过这次实验我对基本的图搜索策略算是“吃透”了。 整个程序大约有3000行左右代码,工程之庞大(对于我来说),要在6个课时内完成,简直是不可能完成的任务,让人吐血。但我还是顶住了压力,连续奋战了三个日日夜夜,终于把它搞定了。这得益于我对编程得狂热追求、平时编程序比较多以及对Java语言的掌握。 应当说,这个实验在各方面都使我获益匪浅,而不光是在人工智能这个课程上。十.关于我 西北工业大学计算机学院 11424班 陈凯 学号 022301 联系方式 附:一组实验结果 以下的数据均是由本程序生成的:系统被初始化!你选择了预设的开始状态系统被初始化!你选择了搜索方法:广度优先搜索法自动搜索开始搜索正在进行,请耐心等待.搜索完成!九宫图搜索开始结点:2 8 3 1 6 4 7 0 5 目标结点:1 2 3 8 0 4 7 6 5 搜索已经完成找到了最优解解路径:2 8 3 1 6 4 7 0 5 2 8 3 1 0 4 7 6 5 2 0 3 1 8 4 7 6 5 0 2 3 1 8 4 7 6 5 1 2 3 0 8 4 7 6 5 1 2 3 8 0 4 7 6 5 操作序列:空格上移空格上移空格左移空格下移空格右移搜索过程中总共生成了2735个结点其中考察了35个结点解路径的长度为6个结点搜索效率为:0.0967741935483871系统被初始化!你选择了随机生成的开始状态系统被初始化!你选择了搜索方法:有界深度优先搜索法你把有界深度优先搜索的有界深度设置为了:10自动搜索开始搜索正在进行,请耐心等待.搜索完成!九宫图搜索开始结点:2 8 3 1 6 4 7 0 5 目标结点:1 2 3 8 0 4 7 6 5 搜索已经完成找到了解解路径:2 8 3 1 6 4 7 0 5 2 8 3 1 0 4 7 6 5 2 0 3 1 8 4 7 6 5 0 2 3 1 8 4 7 6 5 1 2 3 0 8 4 7 6 5 1 2 3 8 0 4 7 6 5 操作序列:空格上移空格上移空格左移空格下移空格右移搜索过程中总共生成了1490个结点其中考察了490个结点解路径的长度为6个结点搜索效率为:0.012219959266802444系统被初始化!你选择了搜索方法:最好优先搜索法自动搜索开始搜索正在进行,请耐心等待.搜索完成!九宫图搜索开始结点:2 8 3 1 6 4 7 0 5 目标结点:1 2 3 8 0 4 7 6 5 搜索已经完成找到了解解路径:2 8 3 1 6 4 7 0 5 2 8 3 1 0 4 7 6 5 2 0 3 1 8 4 7 6 5 0 2 3 1 8 4 7 6 5 1 2 3 0 8 4 7 6 5 1 2 3 8 0 4 7 6 5 操作序列:空格上移空格上移空格左移空格下移空格右移搜索过程中总共生成了66个结点其中考察了6个结点解路径的长度为6个结点搜索效率为:0.5系统被初始化!你选择了搜索方法:局部择优搜索法自动搜索开始搜索正在进行,请耐心等待.搜索完成!九宫图搜索开始结点:2 8 3 1 6 4 7 0 5 目标结点:1 2 3 8 0 4 7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 猫一课优翼课件
- 工厂环保工程改造方案(3篇)
- 东莞工程综合布线方案(3篇)
- 电力工程审计方案(3篇)
- 牧场安全培训课件
- 安全教育培训馆标志课件
- 溧阳工厂面试题库及答案
- 客服行业面试题库及答案
- 科技之星面试题库及答案
- 康复面试题库及答案大全
- 《城市轨道交通车辆 列车 视频监控系统》
- 政府专职消防员入职考试250题及答案
- 砖厂安全生产风险分级管控和隐患排查治理双体系方案全套资料汇编
- 35KV集电线路安全施工措施
- 四川九寨沟国家地质公园规划(2022-2035年)
- 七上数学期末26天复习计划
- 铜矿选矿厂废气净化与能源回收
- 18项护理核心制度
- 部编版小学语文五年级上册课后习题参考答案(可下载打印)
- 2024年高中英语衡水体书法练字字帖
- 装配式结构吊装施工计算书
评论
0/150
提交评论