《图搜索基础》PPT课件.ppt
《《图搜索基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《图搜索基础》PPT课件.ppt(55页珍藏版)》请在三一办公上搜索。
1、1,图搜索基础,2,树的定义和基本术语,定义:,树(Tree)是 n(n0)个结点的有限集。若 n=0,称 为空树;若 n 0,则它满足如下两个条件:(1)有且仅有一个特定的称为根(Root)的结点;(2)其余结点可分为 m(m0)个互不相交的有限集 T1,T2,T3,Tm,其中每一个集合本身又是一棵树,并称为 根的子树(SubTree)。,树的定义是一个递归的定义。,3,树的逻辑结构:树中任一结点都可以有零个或多个直接后继结点 但至多只能有一个直接前趋结点。,T3,T2,T1,基本术语:,结点的度:结点拥有的子树数。,度=0叶子 终端结点,度 0分支结点 非终端 结点 根结点以 外的分支 结
2、点称为 内部结点,树的度:树内各结点的度的最大值。,结点的祖先:从根到该结点所经分支上的所有结点。,结点的子孙:以某结点为根的子树中的任一结点。,第 1 层,第 2 层,第 3 层,第 4 层,堂兄弟 双亲在同一层的结点,树的深度:树中结点的最大层次。,有序树:树中结点的各子树从左至右有次序(最左边的为第一个孩子)。,无序树:树中结点的各子树无次序。,结点:数据元素+指向子树的分支,森林:是 m(m0)棵互不相交的树的集合。,一棵树可以看成是一个特殊的森林。,把根结点删除树就变成了森林。,给森林中的各子树加上一个双亲结点,森林就变成了树。,树,森林,一定是,不一定是,4,定义:,图(Graph
3、)是一种复杂的非线性数据结构,由顶 点集合及顶点间的关系(也称弧或边)集合组成。可 以表示为:G(V,VR)其中 V 是顶点的有穷非空集合;VR 是顶点之间关系 的有穷集合,也叫做弧或边集合。弧是顶点的有序对,边是顶点的无序对。,图的定义和基本术语,5,度:无向图中顶点 v 的度是和 v 相关联的边的数目,记为TD(v)。,入度:有向图中以顶点 v 为终点的弧数目称为 v 的入度,记ID(v)。,出度:有向图中以顶点 v 为起点的弧数目称为 v 的出度,记OD(v)。,度:入度和出度之和,即:TD(v)=ID(v)+OD(v)。,如果顶点 vi 的度为 TD(vi),则一个有 n 个顶点 e
4、条边(弧)的图,满足如下关系:,终端顶点:有向图中把出度为 0的顶点称为终端顶点。,6,路径:从顶点v到v的路径是一个顶点序列(v=vi,0,vi,1,vi,m=v),满足(vi,j-1,vi,j)VR 或 VR(1 j m)。,对于有向图,路径也是有向的。,路径长度:路径上边或弧的数目。,回路(环):第一个顶点和最后一个顶点相同的路径。,简单路径:序列中顶点(两端点除外)不重复出现的路径。,简单回路(简单环):前后两端点相同的简单路径。,连通:无向图中从顶点v到v有路径,则说v和v是连通的。,连通图:无向图中任意两个顶点都是连通的。,7,连通分量:无向图的极大连通子图;任何连通图的连通分量只
5、有一个,即其本身;非连通图有多个连通分量(非连通图的每一个连通部分)。,强连通图:有向图G中,若对于V(G)中任意两个不同的顶点vi和vj,都存在从vi到vj以及从vj到vi的路径,则称G是强连通图。,强连通分量:有向图的极大强连通子图;任何强连通图的强连通分量只有一个,即其本身;非强连通图有多个强连通分量。,8,对于一个具有n个顶点的图,可用两个数组存储。其中一个一维数组存储数据元素(顶点)的信息,另一个二维数组(图的邻接矩阵)存储数据元素之间的关系(边或弧)信息。,邻接矩阵:设 G=(V,VR)是具有 n 个顶点的图,顶点的顺序依次为 v1,v2,vn,则 G 的邻接矩阵是具有如下性质的
6、n 阶方阵:,图的存储结构之数组表示法(邻接矩阵表示法),9,v1 v2 v3 v4,v1 v2 v3 v4 v5,v1 v2 v3 v4,v1 v2 v3 v4 v5,特点:,无向图的邻接矩阵对称,可压缩存储;有n个顶点的无向图需存储空间为 n(n-1)/2。,有向图邻接矩阵不一定对称;有n个顶点的有向图需存储空间为n,空间复杂度O(n2),用于稀疏图时空间浪费严重。,无向图中顶点vi的度 TD(vi)是邻接矩阵中第i行1的个数。,有向图中,顶点vi的出度是邻接矩阵中第i行1的个数。,顶点vi的入度是邻接矩阵中第i列1的个数。,10,网的邻接矩阵可定义为:,v1 v2 v3 v4 v5 v6
7、,v1 v2 v3 v4 v5 v6,11,顶点表结点,边表结点,3,1,4,2,0,4,3,1,2,0,2,1,特点:,若无向图中有n个顶点、e条边,则其邻接表需n个顶点表结点和2e个边表结点。适宜存储稀疏图。,无向图中顶点 vi 的度为第 i 个单链表中的结点数。,图的存储结构之邻接表(类似于树的孩子链表表示法),12,0,1,2,3,2,1,3,0,v1,v3,v4,v2,邻接表,逆邻接表,顶点 vi 的出度为第 i 个单链 表中的结点个数。,特点:,顶点 vi 的入度为整个单链表 中邻接点域值是i-1的结点 个数。,找出度易,找入度难。,找入度易,找出度难。,顶点 vi 的入度为第 i
8、 个单链 表中的结点个数。,顶点 vi 的出度为整个单链表 中邻接点域值是i-1的结点 个数。,13,从图的任意指定顶点出发,依照某种规则去访问图中所有顶点,且每个顶点仅被访问一次,此过程叫做图的遍历。,图的遍历按照广度优先和深度优先规则去实施,通常有广度优先遍历法(Breadth_Frist SearchBFS)和深度优先遍历法(Depth_First SearchDFS)两种。,图的遍历,14,方法:从图的某一结点出发,首先依次访问该结点的所有邻接顶点 Vi1,Vi2,Vin,再依次访问与 Vi1,Vi2,Vin 相邻接的所有未被访问的顶点,重复此过程,直至所有顶点均被访问为止。,例:,广
9、度优先遍历:,V1,V2,V3,V4,V5,V6,V7,V8,V1,V3,V2,V7,V6,V5,V4,V8,V1,V2,V3,V5,V4,V7,V6,V8,图的遍历之广度优先遍历(BFS),15,方法:首先访问指定的起始顶点,然后在与该顶点邻接的顶点中选择一个未被访问的顶点进行访问,接着再从现在访问的顶点的 邻接顶点中任意选择一个未被访问的顶点进行访问,如此继续,若 到达无未被访问的邻接顶点的顶点时,则退回到最近访问过的那 个顶点,若它还有未被访问的邻接顶点,则选择一个进行访问。重复上述过程,直到全部顶点都访问完毕。,例:,V1,深度优先遍历:,V2,V4,V8,V5,V3,V6,V7,V1
10、,V2,V5,V8,V4,V3,V6,V7,V1,V2,V4,V8,V5,V3,V7,V6,V1,V2,V5,V8,V4,V3,V7,V6,V1,V3,V6,V7,V2,V4,V8,V5,图的遍历之深度优先遍历(DFS),16,2 显式图&隐式图,在路径问题、连通性问题和网络优化等问题中,图的结构是显式给出的,包括图中的顶点、边及权重,这类图称为显式图,即一般意义上的图。,隐式图是由问题的初始结点,为了求解或求证问题,根据问题的规则(一般是由题目的意思隐含给出的),也就是生成子结点的约束条件,逐步扩展结点,直至得到目标结点为止的一个隐式的图。,两种典型的隐式图:子集树,排列树,17,2 显式图
11、&隐式图-子集树,当要求解的问题需要在n 个元素的子集中进行搜索,其搜索空间树被称作子集树(subset tree)。这n个元素都在子集中或被选取记为1,不在子集中或被舍去记为0,这样搜索空间为:(0,0,0,0),(0,0,0,1),(0,0,1,0),(0,0,1,1),(1,1,1,1)。,18,2 显式图&隐式图-子集树,共2n 个状态。若表示为树形结构就是一棵有2n个叶结点的二叉树,对树中所有分支进行遍历的算法都必须耗时O(2n),19,2 显式图&隐式图-排列树,当要求解的问题需要在n个元素的排列中搜索问题的解时,解空间树被称作排列树(permutation tree)。搜索空间为
12、:(1,2,3,n-1,n),(2,1,3,n-1,n),(2,3,1,n-1,n),(2,3,4,1,n-1,n),.(n,n-1,3,2,1),第一个元素有n 种选择,第二个元素有n-1种选择,第三个元素有n-2种选择,第n个元素有1种选择,共计n!个状态。若表示为树形就是一个n度树,这样的树有n!个叶结点,所以每一个遍历树中所有节点的算法都必须耗时O(n!),20,2 显式图&隐式图-排列树,21,3 图搜索术语&方法分类,穷举搜索(盲目搜索)是对图的最基本的搜索算法,是蛮力策略的一种表现形式。即不考虑给定问题的特有性质,按事先定好的顺序,依次运用规则,盲目搜索的方法。,启发式搜索是利用
13、一些启发信息,提前判断出先搜索哪些状态可能尽快找到问题的解或某些情况不可能取到最优解,从而可以提前舍弃对这些状态的尝试。即考虑给定问题的特有性质,选用合适的细则,提高搜索的效率。,搜索分为两大类:,隐含地检查所有可能情况,22,3 图搜索术语&方法分类,问题状态:树中的每一个结点确定所求解问题的一个问题状态。状态空间:由根结点到其它结点的所有路径(分支),就确定了这个问题的状态空间。解状态:是这样一些问题状态S,对于这些问题状态,由根到S的那条路径确定了该解空间中的一个元组。答案状态:是这样一些解状态S,对于这些解状态而言,由根到S的这条路径确定了这问题的一个解(即它满足隐式约束条件)。状态空
14、间树:解空间的树结构,又称隐式图。,23,3 图搜索术语&方法分类,活结点:如果已生成一个结点而它的所有儿子结点还没有全部生成,则这个结点叫做活结点。E-结点:当前正在生成其儿子结点的活结点叫E-结点(正在扩展的结点)。死结点:不再进一步扩展或者其儿子结点已全部生成的结点就是死结点。,24,3 图搜索术语&方法分类,n皇后问题要在n*n的国际象棋棋盘中放n个皇后,使任意两个皇后都不能互相吃掉。规则:皇后能吃掉同一行、同一列、同一对角线的任意棋子。求所有的解。,问题状态,状态空间,解状态,答案状态,25,二、广度优先搜索,1 图的广度优先遍历/搜索算法2 广度优先搜索的应用例7.1 求经过城市最
15、少的路线问题例7.2 走迷宫问题,26,1 广度优先搜索,广度优先搜索,首先访问出发点V,接着依次访问V的所有邻接点Wi,再依次访问分别与Wi邻接的所有未曾访问过的顶点,直至与V相通的顶点都已访问,若此时还有未访问的顶点,则按相同的过程继续。,活结点的扩展是按先来先处理的原则进行。,“先被访问的顶点”的邻接点先于“后被”被访问,27,1 广度优先搜索-算法要素,广度优先搜索:活结点的扩展是按先来先处理的原则进行;但搜索过程中还需暂时保存部分活结点。在算法中用“队”来存储每个E-结点扩展出的活结点。实际应用中,用数组或链表实现队列。开辟数组visited 记录结点的搜索情况。,28,2 广度优先
16、搜索-算法的基本思路,算法设计的基本步骤,1)确定图的存储方式;2)图的遍历过程中的操作,其中包括为输出问题解而进行的存储操作;3)输出问题的结论。,29,1 广度优先搜索-一般算法,图的搜索的不同实现图:邻接表/邻接矩阵队列:链表/数组机制:递归/非递归,广度优先搜索用非 递归实现方便。,/从顶点v 开始的广度优先搜索把顶点v标记为已到达顶点;初始化队列Q,其中仅包含一个元素v;while(Q不空)从队列中删除顶点w;令u 为邻接于w 的顶点;while(u)if(u 尚未被标记)把u 加入队列;把u 标记为已到达顶点;u=邻接于w 的下一个顶点;,30,1 广度优先搜索-邻接表表示图的算法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图搜索基础 搜索 基础 PPT 课件
链接地址:https://www.31ppt.com/p-5678627.html