第5章(5.1 穷举、5.2 广度、深度优先搜索)(精品).ppt
《第5章(5.1 穷举、5.2 广度、深度优先搜索)(精品).ppt》由会员分享,可在线阅读,更多相关《第5章(5.1 穷举、5.2 广度、深度优先搜索)(精品).ppt(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章第五章 搜索算法搜索算法 搜搜索索算算法法:是是利利用用计计算算机机的的高高性性能能来来有有目目的的地地枚枚举举一一个个问问题题的的部部分分或或所所有有可可能能情情况况,从从而而找找到到解解决决问问题的一种方法。题的一种方法。该该方方法法策策略略的的适适应应性性很很强强,只只要要问问题题有有解解,它它肯肯定定能将其解找到;但其搜索效率不是太好。能将其解找到;但其搜索效率不是太好。5.1 穷举搜索穷举搜索穷举搜索穷举搜索是最基本的搜索算法,是是最基本的搜索算法,是蛮力策略蛮力策略的一种表的一种表现形式。现形式。(蛮力策略有(蛮力策略有2种表现形式:枚举法,穷举搜索;)种表现形式:枚举法,穷
2、举搜索;)穷举搜索基本思想:穷举搜索基本思想:针对问题的可能解是有限种的情况,逐一检查所有针对问题的可能解是有限种的情况,逐一检查所有可能的情况,从中找到问题真正的解。可能的情况,从中找到问题真正的解。例例51:给定一个有向带权图给定一个有向带权图G=(V,E),权非负,如图,权非负,如图5-1所示。找出顶点所示。找出顶点15的最短路径及其长度。的最短路径及其长度。问题分析问题分析该问题所有可能的路径只有三条,分别是:该问题所有可能的路径只有三条,分别是:12451345145采用穷举搜索的方法采用穷举搜索的方法逐一检查这三条路径的长度逐一检查这三条路径的长度。最短路径为最短路径为1245,其
3、长度为,其长度为3。例例52 给定一艘船和三个集装箱,船的载重为给定一艘船和三个集装箱,船的载重为10,三个集,三个集装箱的重量分别为装箱的重量分别为5,8,3。在体积不受限制的情况。在体积不受限制的情况下,如何将尽可能多的集装箱装上船?下,如何将尽可能多的集装箱装上船?问题分析:问题分析:每个集装箱要么装上船,要么不装;每个集装箱要么装上船,要么不装;0表示不装,表示不装,1表示装;表示装;则问题的所有可能解可以用则问题的所有可能解可以用8个个3元元01向量表示:向量表示:即即(0,0,0)、(0,0,1)、(0,1,0)、(0,1,1)、(1,0,0)、(1,0,1)(1,1,0)、(1,
4、1,1)采用采用穷举搜索的方法逐一检查穷举搜索的方法逐一检查容易得出问题的解容易得出问题的解(1,0,1)利用搜索法解题时,需要把问题的所有可能的解(利用搜索法解题时,需要把问题的所有可能的解(解解空间空间)描述出来,如何描述问题的所有可能解?)描述出来,如何描述问题的所有可能解?解空间通常有解空间通常有2 2表示形式:表示形式:1)1)子集树子集树 2 2)排列树)排列树1)子集树)子集树 当要求解的问题需要是在当要求解的问题需要是在n n 个元素的子集中进行搜索,其搜索个元素的子集中进行搜索,其搜索空间树被称作空间树被称作子集树子集树(subset treesubset tree)。某个元
5、素某个元素xi=xi=1 1表示该元素表示该元素在在要找的子集中,要找的子集中,xi=0 xi=0表示该元素表示该元素不在不在要找的子集中要找的子集中,这样搜,这样搜索空间为:索空间为:(0 0,0 0,0 0,0 0),(),(0 0,0 0,0 0,1 1),),(0 0,0 0,1 1,0 0),(),(0 0,0 0,1 1,1 1),),(1 1,1 1,1 1,1 1)。共)。共2 2n n 个状态。个状态。如如例例52若表示为树形结构就是一棵有若表示为树形结构就是一棵有2n个叶结点的二叉树,个叶结点的二叉树,对树中所有分支进行遍历的算法都必须耗对树中所有分支进行遍历的算法都必须耗
6、O(2n).下图就是一个下图就是一个n3时的子集树时的子集树:树的树的根节点根节点表示初始状态;表示初始状态;中间节点中间节点表示某种情况下的表示某种情况下的中间状态;中间状态;叶子节点叶子节点表示结束状态;表示结束状态;从根节点到叶子节点的路径表示一个可能的解。从根节点到叶子节点的路径表示一个可能的解。2)排列树)排列树 当当要要求求解解的的问问题题需需要要在在n n 元元素素的的排排列列中中搜搜索索问问题题的的解解时时,相相应的解空间树被称作应的解空间树被称作排列树排列树(permutation treepermutation tree)。)。搜索空间为:搜索空间为:(1 1,2 2,3
7、3,n-1n-1,n n),(2 2,1 1,3 3,n-1n-1,n n),(2 2,3 3,1 1,n-1n-1,n n),(2 2,3 3,4 4,1 1,n-1n-1,n n),(n n,n-1n-1,3 3,2 2,1 1)第一个元素有第一个元素有n种选择,第二个元素有种选择,第二个元素有n-1种选择,第三个元种选择,第三个元素有素有n-2种选择,种选择,第,第n个元素有个元素有1种选择,共计种选择,共计n!个状态个状态。若表示为树形就是一个若表示为树形就是一个n度树度树,这样的树有,这样的树有n!个叶结点个叶结点,所以每,所以每一个遍历树中所有节点的算法都必须耗时一个遍历树中所有节
8、点的算法都必须耗时O(n!)下图为下图为n=4时的排列树时的排列树;图图5-3 n=4的的部分子集树部分子集树 补充:补充:广度优先搜索(自学)广度优先搜索(自学)1、算法的基本思想、算法的基本思想首先,构造问题的解空间;首先,构造问题的解空间;然然后后,从从初初始始节节点点S0开开始始,逐逐层层地地对对节节点点进进行行扩扩展展并并考察它是否为目标节点。考察它是否为目标节点。在在第第n层层的的节节点点没没有有全全部部扩扩展展并并考考察察之之前前,不不对对第第n+1层的节点进行扩展层的节点进行扩展。2 2、算法分析与描述、算法分析与描述 从从广度优先搜索定义可以看出活结点的扩展是按广度优先搜索定
9、义可以看出活结点的扩展是按先来先处先来先处理的原则进行的理的原则进行的,所以在算法中要用,所以在算法中要用“队队”来存储每个来存储每个E-E-结点结点扩展出的活结点。为了算法的简洁,抽象地定义:扩展出的活结点。为了算法的简洁,抽象地定义:queuequeue为队列类型,为队列类型,InitQueueInitQueue()()为队列初始化函数,为队列初始化函数,EnQueue(QEnQueue(Q,k)k)为入队函数,为入队函数,QueueEmpty(QQueueEmpty(Q)为判断队空函数,为判断队空函数,DeQueue(QDeQueue(Q)为出队函数。为出队函数。实际应用中,用数组或链表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章5.1 穷举、5.2 广度、深度优先搜索精品 5.1 穷举 5.2 广度 深度 优先 搜索 精品
限制150内