ImageVerifierCode 换一换
格式:DOC , 页数:16 ,大小:543.65KB ,
资源ID:2916483      下载积分:9 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2916483.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(哈工大人工智能导论实验报告.doc)为本站会员(tangtianxu1)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

哈工大人工智能导论实验报告.doc

1、人工智能实验报告1人工智能导论实验报告学院:计算机科学与技术学院专业:计算机科学与技术2016.12.20人工智能实验报告2目录人工智能导论实验报告 1一、 简介(对该实验背景,方法以及目的的理解) 31. 实验背景 32. 实验方法 33. 实验目的 3二、 方法(对每个问题的分析及解决问题的方法) 4Q1: Depth First Search.4Q2: Breadth First Search4Q3: Uniform Cost Search.5Q4: A* Search6Q5: Corners Problem: Representation .6Q6: Corners Problem:

2、Heuristic.6Q7: Eating All The Dots: Heuristic .7Q8: Suboptimal Search 7三、 实验结果(解决每个问题的结果) 7Q1: Depth First Search.7Q2: Breadth First Search9Q3: Uniform Cost Search.10Q4: A* Search12Q5: Corners Problem: Representation .13Q6: Corners Problem: Heuristic.14Q7: Eating All The Dots: Heuristic .14Q8: Subop

3、timal Search 15自动评分 15四、 总结及讨论(对该实验的总结以及任何该实验的启发) 15人工智能实验报告3、 简介(对该实验背景,方法以及目的的理解)1. 实验背景1) 自人工智能概念被提出,人工智能的 发展就受到了很大的关注,取得了长足的发展,成为一门广泛的交叉和前沿科学。到目前,弱人工智能取得了长足的发展,而强人工智能则暂时处于瓶颈。2) 吃豆人 Pacman 居住在亮蓝色的世界里,在这个世界有弯曲的走廊和美味佳肴。游戏的目的就是控制游戏的主角小精灵吃掉藏在迷宫内所有的豆子,并且不能被幽灵抓到。高效地浏览世界将是吃豆人掌握世界的第一步。3) 通过本学期的学习我们已经初步掌握

4、了人工智能的基本知识,在实验中则应用这些知识使用人工智能操纵吃豆人游戏。2. 实验方法1) 在本实验中, Pacman 智能体将找到通过迷宫世界的路径, 既包括到达一个指定的位置,也包括高效地搜集食物。我们编辑 文件 search.py 和 searchAgents.py,编写一系列吃豆人程序,包括到达指定位置以及有效的吃豆,并将其应用到 Pacman 场景,完成对相关人工智能功能的完善。2) 在本实验中,我们对下面 8 个问题进行研究, 针对每个 问题提出解决方法,逐步完成吃豆人游戏: Q1: Depth First Search Q2: Breadth First Search Q3: U

5、niform Cost Search Q4: A* Search Q5: Corners Problem: Representation Q6: Corners Problem: Heuristic Q7: Eating All The Dots: Heuristic Q8: Suboptimal Search3. 实验目的1) 完成实验报告中的问题,编写一系列吃豆人程序,包括到达指定位置以及有效的吃豆;2) 通过分析吃豆人游戏巩固课堂上所学内容;3) 复习 python 语言的使用。人工智能实验报告4、 方法(对每个问题的分析及解决问题的方法)Q1: Depth First Search应用

6、深度优先算法找到一个特定的位置的豆,我们通过 depthFirstSearch 函数实现深度优先搜索的功能。深度优先遍历的方法是,从图 中某顶点 v 出发:1) 访问顶点 v;2) 依次从 v 的未被访问的邻接点出发,对图进行深度优 先遍历;直至图中和 v 有路径相通的顶点都被访问;3) 若此时图中尚有顶点未被访问,则从一个未被访问的 顶点出发,重新 进行深度优先遍历,直到图中所有顶点均被访问过为止。 深度优先搜索的顺序如下图所示:在 depthFirstSearch 中,由于搜索过程中火重复访问到部分节点,所以需要对于每个节点设置标记,以指示该节点是否被 访问过。 先将每个后继节点压入搜索栈

7、中,然后以深度优先的顺序进行搜索,判定是否符合目 标状态,并将符合 结果的节 点放入结果集。Q2: Breadth First Search应用宽度优先算法找到一个特定的位置的豆,我们通过 breadthFirstSearch 函数实现深度优先搜索的功能。广度优先搜索算法的思想是:从图中某顶点 v 出发,在 访问 了 v 之后依次访问 v 的各个未曾访问过的邻接点,然后分别从 这些邻接点出发依次访问它 们的邻接点,并使得 “先被访问的顶点的邻接点先于后被访问的顶点的邻接点被访问,直至图中所有已被访问的顶点的邻接点都被访问到。如果此时图中尚有 顶点未被访问, 则需要另 选一个未曾被访问过的顶点作

8、为人工智能实验报告5新的起始点,重复上述过程,直至图中所有顶点都被访问到 为止。如下图:在 breadthFirstSearch 中,大体的搜索思路与深度优先算法一致,只是搜索的次序发生了变化。在这里注意,在深度优先搜索和广度 优先搜索方法中,我 们 使用的图搜索算法是一样的,但是涉及到具体的数据结构却是不同的。在深度 优先搜索算法中,我们使用栈进行操作,在深度优先搜索算法中,我们使用 队列进行操作,如下 图所示。这两种数据结构的不同之处就在于其中元素的输出次序,在深度 优先搜索中需要按照压栈顺 序的逆序进行搜索,咋子广度 优先搜索中需要按照入队顺序的顺序进行搜索。Q3: Uniform Co

9、st Search很多情况下,路径中的代价是可以改变的,在 这个问题中,我们完成代价一致搜索方法。代价一致搜索,其实就是一个 贪心搜索,取代 扩展深度最浅的 节点,代价一致搜索扩展的是人工智能实验报告6路径消耗最低的节点 n。如果所有 单步耗散都相等的话, 这 种算法就和广度优先搜索算法是一样的。不过,这样在扩展到一个具有能返回到同一状态的零耗散行 动的节点时就会陷入无限循环。在 uniformCostSearch 函数中,我们计算每条路径的总代价,将总代价作为优先级进行搜索,待搜索序列存储于队列中。对 于每个节点,使用代价函数 getCostOfActions 计算其所产生的代价,并依次作为

10、搜索的优先 级进行搜索。同 样的,对于每个节点添加是否被访问的标记。Q4: A* SearchA*算法是一种静态路网中求解最短路最有效的直接搜索方法,也是许多其他问题的常用启发式算法,对代价一致搜索算法 进行了改进,加入了一个估计代价 h。公式表示为: f(n)=g(n)+h(n),其中 f(n) 是从初始状态经 由状态 n 到目标状态的代价估计,g(n) 是在状态空间中从初始状态到状态 n 的实际代价, h(n) 是从状态 n 到目标状态的最佳路径的估计代价(对于路径搜索问题,状态就是图中的节 点,代价就是距离)。在本实验中,我们使用曼哈顿 距离作为启发函数。在 aStarSearch 函数

11、中,我们首先搜索具有最低组合成本和启发式的节点。 类似于问题三,我 们计算每个 节点的代价,并以此为依据搜索产生结果集,在搜索的过程中,还需要标记节点是否已经 被访问过。Q5: Corners Problem: Representation找到所有的角落,在角落迷宫 的四个角上面有四个豆,通 过这 个函数找到一条访问所有四个角落的最短的路径。在 CornersProblem 类中,我们使用_init_函数存储墙壁的位置,吃豆人的起点和角落位置,定义新的函数 getStartState 用于 获得节点起始状态, isGoalState 函数判断当前节点是否为目标节点,getSuccessors

12、函数返回后继状态,所需的操作以及代价,getCostOfActions 函数计算动作序列所需的代价。查找后继节点时,在四个方向一次遍 历,使用 directionToVector 移动位置,如果没有墙,则把下一个的状态,动作,花费的步数加入下一节点Q6: Corners Problem: Heuristic构建合适的启发函数,完成问题 5 中的角落搜索问题。在问题五使用的 CornersProblem 类中定义 cornersHeuristic 函数,为角落问题构造启发函数。在 cornersHeuristic 函数中使用了 GetNextNodes 函数获取下一个节点,isGoal 函数判断

13、是否为目标。人工智能实验报告7Q7: Eating All The Dots: Heuristic用尽可能少的步数吃掉所有的豆子。这个问题利用之前 A*算法可以很容易找到解,此种方法在这里不再详述。下面在 FoodSearchProblem 类中定义函数 foodHeuristic,构建合适的启发函数完成豆子搜索(启发式)问题。Q8: Suboptimal Search次最优搜索,定义一个优先吃最近的豆子的函数,以此来提高搜索速度。补充 AnyFoodSearchProblem 目标测试函数,并在 ClosestDotSearchAgent 当中添加findPathToClosestDot 函

14、数,用于寻找最近的豆子。、 实验结果(解决每个问题的结果)Q1: Depth First Search python pacman.py -l tinyMaze -p SearchAgentpython pacman.py -l mediumMaze -p SearchAgent人工智能实验报告8python pacman.py -l bigMaze -z .5 -p SearchAgent人工智能实验报告9Q2: Breadth First Search python pacman.py -l mediumMaze -p SearchAgent -a fn=bfs人工智能实验报告10pyth

15、on pacman.py -l bigMaze -p SearchAgent -a fn=bfs -z .5Q3: Uniform Cost Search python pacman.py -l mediumMaze -p SearchAgent -a fn=ucs人工智能实验报告11python pacman.py -l mediumDottedMaze -p StayEastSearchAgentpython pacman.py -l mediumScaryMaze -p StayWestSearchAgent人工智能实验报告12Q4: A* Search python pacman.py

16、 -l bigMaze -z .5 -p SearchAgent -a fn=astar,heuristic=manhattanHeuristic人工智能实验报告13Q5: Corners Problem: Representation python pacman.py -l tinyCorners -p SearchAgent -a fn=bfs,prob=CornersProblempython pacman.py -l mediumCorners -p SearchAgent -a fn=bfs,prob=CornersProblem人工智能实验报告14Q6: Corners Probl

17、em: Heuristic python pacman.py -l mediumCorners -p AStarCornersAgent -z 0.5Q7: Eating All The Dots: Heuristic python pacman.py -l trickySearch -p AStarFoodSearchAgent人工智能实验报告15Q8: Suboptimal Searchpython pacman.py -l bigSearch -p ClosestDotSearchAgent -z .5自动评分、 总结及讨论(对该实验的总结以及任何该实验的启发)1. 在这个实验中,我们对

18、深度 优先搜索、广度 优先搜索、代价一致搜索和 A*算法四种搜索人工智能实验报告16方法进行了 python 代码实现 ,对这四种方法有了进一步的了解。与深度优先搜索和广度优先上搜索方法相比,代价一致搜索方法的效率更高,在代价一致上搜索方法失效时,等同于广度优先搜索。A*算法是最有效的直接搜索算法,使用公式进行预处理, 这样能够省略大量不必要的搜索路径,提高了效率。2. 在启发式搜索中,估价函数非常重要,准确的估价函数能够增大搜索函数的效率并且具有相当高的准确性。由此,在启发式搜索中对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。3. 在本次实验中使用了大量 python 语言中的类, 对之前的 python 知识有了很大的扩展。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报