- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(课程项目报告
图搜索算法对比研究
摘要:图搜索算法的研究是人工智能的核心课题之一,在人工智能领域,所提供的每种问题求解方法都需要某种对解答的搜索,从提出问题(即初始状态)到问题的解决(即目标状态),有个求解的过程,事实上就是一个状态空间搜索的过程.在这一过程中,采用适当的搜索技术,包括规则过程和算法等推理技术,力求找到问题的解答,到目前为止,已提出了许多具体的搜索方法,其中深度优先和广度优先是两种重要且常用的图搜索算法方法,如果问题有解,这两种方法都可以保证找到解.
关键词:图搜索算法;人工智能;广度优先;深度优先
本组成员:
本人分工:研究对比深度优先算法和广度优先算法
1 引言
人工智能在计算机、自动化等信息类专业中占有重要地位[1]。搜索过程即问题求解过程[2,3]。从问题的初始状态出发,构造一条使问题得到解决的推理路径,称为搜索。从初始状态So向目标状态Sg的扩展,形成状态节点网络,因此搜索算法也称图搜索策略[4]。图搜索策略有两种,盲目搜索和启发式搜索,盲目搜索按照预定策略进行,很少考虑问题相关的信息,本文讨论广度优先、深度优先这两种搜索策略。广度优先搜索的定义;如果搜索是以接近起始节点的 程度依次扩展节点的那么这种搜索就叫做广度优先搜索;这种搜索是逐层进行的;在对下一层的任一节点进行搜索之前,必须搜索完本层的所有节点。另一种盲目搜索叫做深度优先搜索 ,在深度优先搜索中,我们首先扩展最新产生的(即最深的)节点。深度相等的节点可以任意排列[5]。 它们最终都会到达所有连通的顶点。深度优先搜索通过栈来实现,而广度优先搜索通过队列来实现。本文通过八数码问题来对比广度优先算法和深度优先算法。
2 算法原理与系统设计
八数码游戏问题的搜索技术
广度优先搜索[5]:
1、定义
如果搜索是以接近起始节点的程度依次扩展节点的,那么这种搜索就叫做广度优先搜索(breadth-first search)。
2、特点
这种搜索是逐层进行的;在对下一层的任一节点进行搜索之前,必须搜索完本层的所有节点。
3、广度优先搜索算法
(1) 把起始节点放到OPEN表中(如果该起始节点为一目标节点,则求得一个解答)。
(2) 如果OPEN是个空表,则没有解,失败退出;否则继续。
(3) 把第一个节点(节点n)从OPEN表移出,并把它放入CLOSED的扩展节点表中。
(4) 扩展节点n。如果没有后继节点,则转向上述第(2)步。
(5) 把n的所有后继节点放到OPEN表末端,并提供从这些后继节点回到n的指针。
(6) 如果n的任一个后继节点是个目标节点,则找到一个解答,成功退出;否则转向第(2)步。
具体流程图如下:
性质:
当问题有解时,一定能找到解。
当问题为单位消耗值,且问题有解时,一定能找到最优解。
算法与问题无关,具有通用性。
时间效率和空间效率都比较低。
深度优先搜索:
1、定义
在此搜索中,首先扩展最新产生的(即最深的)节点。深度相等的节点可以任意排列。这种盲目(无信息)搜索叫做深度优先搜索(depth-first search)。
2、特点
首先,扩展最深的节点的结果使得搜索沿着状态空间某条单一的路径从起始节点向下进行下去;只有当搜索到达一个没有后裔的状态时,它才考虑另一条替代的路径。
3、深度界限
为了避免考虑太长的路径(防止搜索过程沿着无益的路径扩展下去),往往给出一个节点扩展的最大深度界限。任何节点如果达到了深度界限,那么都将把它们作为没有后继节点处理。
4、深度优先搜索算法
(1) 把起始节点放到OPEN表中(如果该起始节点为一目标节点,则求得一个解答)。
(2) 如果OPEN是个空表,则没有解,失败退出;否则继续。
(3) 把第一个节点(节点n)从OPEN表移出,并把它放入CLOSED的扩展节点表中。
(4) 考察节点n是否为目标节点,若是,则找到问题的解,用回溯法求解路径,退出
(5)如果没有后继节点,则转向上述第(2)步。
(6) 扩展节点n,把n的所有后继节点放到OPEN表前端,并提供从这些后继节点回到n的指针。转向第(2)步。
具体流程图如下:
性质:
一般不能保证找到最优解。
当深度限制不合理时,可能找不到解。
最坏情况时,搜索空间等同于穷举。
3 系统实现
(1)八数码游戏问题的状态空间法表示
①建立一个只含有初始节点S0的搜索图G,把S0放入OPEN表中
②建立CLOSED表,且置为空表
③判断OPEN表是否为空表,若为空,则问题无解,退出
④选择OPEN表中的第一个节点,把它从OPEN表移出,并放入CLOSED表中,将此节点记为节点n
⑤考察节点n是否为目标节点,若是,则问题有解,成功退出。问题的解就是沿着n到S0的路径得到。若不是转⑥
文档评论(0)