欢迎来到天天文库
浏览记录
ID:29796728
大小:20.78 KB
页数:12页
时间:2018-12-23
《人工智能搜索实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划人工智能搜索实验报告 昆明理工大学信息工程与自动化学院学生实验报告 课程名称:人工智能导论开课实验室:信自楼234室年月日 一、实验内容和要求 八数码问题:在3×3的方格棋盘上,摆放着1到8这八个数码,有1个方格是空的,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态到目标状态。 例如: (a)初始状态(b)目标状态图1八数码问题示意图 请任选一种盲目搜索算法
2、或任选一种启发式搜索方法编程求解八数码问题。选择一个初始状态,画出搜索树,填写相应的OPEN表和CLOSED表,给出解路径,对实验结果进行分析总结,得出结论。 实验报告内容格式要求:XXXXXXXXXXXX。 二、实验目的 1.熟悉人工智能系统中的问题求解过程; 2.熟悉状态空间的盲目搜索和启发式搜索算法的应用;3.熟悉对八数码问题的建模、求解及编程语言的应用。 三、实验算法启发函数设定目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战
3、略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 由八数码问题的部分状态图可以看出,从初始节点开始,在通向目标节点的路径上,各节点的数码格局同目标节点相比较,其数码不同的位置个数在逐渐减少,最后为零,因此可以把数码不同的位置个数作为标志一个节点到目标节点距离远近的一个启发性信息,利用这个信息来扩展节点的选择,减少搜索范围,提高搜索速度。 2、数据结构与算法设计数码结构体 typedefstructnode//八数码结构体{ intform[N][N];//数码组 intevalu
4、e;//评估值,差距 intudirec;//所屏蔽方向,防止往回推到上一状态,1上2下3左4右 structnode*parent;//父节点}Graph; Graph*Qu[MAX];//队列Graph*St[MAX];//堆栈搜索过程:) a、把初始数码组压入队列; b、从队列中取出一个数码组节点; c、扩展子节点,即从上下左右四个方向移动空格,生成相应子节点: d、对子节点数码组作评估,是否为优越节点,即其评估值是否小于等于其父节点加一,是则将其压入队,否则抛弃。目的-通过该培训员工可对保安行业有初步了解,并感受到
5、安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 e、判断压入队的子节点数码组的评估值,为零则表示搜索完成,退出搜索; f、跳到步骤2;四、程序框图 五、实验结果及分析 采用深度优先搜索方式并简化搜索 六、结论 人工智能 九宫格重移——搜索 成员:赵春杰XX 羊森XX黄鑫XX210周成兵XX王素娟XX 1.问题描述: 八数码问题也称为九宫问题。在3×3的棋盘,摆有八个棋子,每个棋
6、子上标有1至8的某一数字,不同棋子上标的数字不相同。棋盘上还有一个空格,与空格相邻的棋子可以移到空格中。要求解决的问题是:给出一个初始状态和一个目标状态,找出一种从初始转变成目标状态的移动棋子步数最少的移动步骤。所谓问题的一个状态就是棋子在棋盘上的一种摆法。棋子移动后,状态就会发生改变。解八数码问题实际上就是找出从初始状态到达目标状态所经过的一系列中间过渡状态。 2.九宫重移有无答案检查目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展
7、,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 我们把每个9宫格横向展开,如第一个,我们把左边数大于右边数的组数称为这个九宫格的逆序数,显然的逆序数为0;考虑横向平移,那么逆序数的增量为2或0或-2;纵向平移,逆序数的增量为4或0或-4;但的逆序数为奇数。所以是无解的情况。由此也可以类推当将9宫格展开后,如果数据序列的逆序数为奇数,则此数据序列对应的九宫格是无解的。 算法 队列:Queueopen=newQueue();存放待扩展的节点 List:Listclosed=newList()
8、;存放已被扩展过的节点ArrayListmap=newArrayList();//存放答案 HashTale:Hashtabletable=newHashtable();构造哈希表以方便查找 .BFS算
此文档下载收益归作者所有