《图搜索基础》PPT课件.ppt
《《图搜索基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《图搜索基础》PPT课件.ppt(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、图搜索基础图搜索基础1树的定义和基本术语树的定义和基本术语 定义:定义:树树(Tree)是是n(n0)个结点的有限集。个结点的有限集。若若n=0,称称为空树;为空树;若若n0,则,则它满足如下两个条件:它满足如下两个条件:(1)有且仅有一个特定的称为有且仅有一个特定的称为根根根根(Root)的结点;的结点;(2)其余结点可分为其余结点可分为m(m0)个互不相交的有限集个互不相交的有限集T1,T2,T3,Tm,其中每一个集合本身又是一棵树,并称为,其中每一个集合本身又是一棵树,并称为根的根的子树子树(SubTree)。树的定义是一个递归的定义。树的定义是一个递归的定义。2树的逻辑结构:树的逻辑结
2、构:树的逻辑结构:树的逻辑结构:树中任一结点都可以有零个或多个直接后继结点树中任一结点都可以有零个或多个直接后继结点但至多只能有一个直接前趋结点。但至多只能有一个直接前趋结点。T3T2T1基本术语:基本术语:结点的结点的度:度:度:度:结点拥有的子树数。结点拥有的子树数。度度=0叶子叶子叶子叶子终端结点终端结点终端结点终端结点 度度0分支结点分支结点分支结点分支结点 非终端非终端非终端非终端 结点结点结点结点 根结点以根结点以 外的分支外的分支 结点称为结点称为 内部结点内部结点内部结点内部结点 树的树的度:度:度:度:树内各结点的度的最大值。树内各结点的度的最大值。双亲双亲孩子孩子兄弟兄弟结
3、点的结点的祖先:祖先:祖先:祖先:从根到该结点所经分支上的所有结点。从根到该结点所经分支上的所有结点。结点的结点的子孙:子孙:子孙:子孙:以某结点为根的子树中的任一结点。以某结点为根的子树中的任一结点。第第1层层第第2层层第第3层层第第4层层堂兄弟堂兄弟双亲在同一层的结点双亲在同一层的结点树的树的深度:深度:深度:深度:树中结点的最大层次。树中结点的最大层次。有序树:有序树:有序树:有序树:树中结点的各子树从左至右有次序树中结点的各子树从左至右有次序(最左边的为第一个孩子最左边的为第一个孩子)。无序树:无序树:无序树:无序树:树中结点的各子树无次序。树中结点的各子树无次序。结点:结点:数据元素
4、数据元素+指向子树的分支指向子树的分支森林:森林:森林:森林:是是m(m0)棵互不相交的树的集合。棵互不相交的树的集合。一棵树可以看成是一个特殊的森林。一棵树可以看成是一个特殊的森林。把根结点删除树就变成了森林。把根结点删除树就变成了森林。给森林中的各子树加上一个双亲结点,森林就变成了树。给森林中的各子树加上一个双亲结点,森林就变成了树。树树森林森林一定是一定是 不一定是不一定是 E F G H I A B C D J K L M 3定义:定义:图图(Graph)是是一种复杂的非线性数据结构,由顶一种复杂的非线性数据结构,由顶点集合及顶点间的关系点集合及顶点间的关系(也称弧或边也称弧或边)集合
5、组成。可集合组成。可以表示为:以表示为:G(V,VR)其中其中V是是顶点顶点的有穷非空集合;的有穷非空集合;VR是是顶点之间关系顶点之间关系的有穷集合,也叫做的有穷集合,也叫做弧弧或或边边集合。弧集合。弧是顶点的有序对,是顶点的有序对,边是顶点的无序对。边是顶点的无序对。图的定义和基本术语图的定义和基本术语 4度:度:度:度:无向图无向图中顶点中顶点v的度是和的度是和v相关联的边的数目,记为相关联的边的数目,记为TD(v)。v2v1v3v4v5入度:入度:入度:入度:有向图有向图中以顶点中以顶点v为终点的弧数目称为为终点的弧数目称为v的入度,记的入度,记ID(v)。出度:出度:出度:出度:有向
6、图有向图中以顶点中以顶点v为起点的弧数目称为为起点的弧数目称为v的出度,记的出度,记OD(v)。度:度:度:度:入度和出度之和,即:入度和出度之和,即:TD(v)=ID(v)+OD(v)。v2v1v3v4如果顶点如果顶点vi的度为的度为TD(vi),则一个有,则一个有n个顶点个顶点e条边条边(弧弧)的图,满足如下关系:的图,满足如下关系:终端顶点终端顶点终端顶点终端顶点:有向图中把出度为:有向图中把出度为0的顶点称为终端顶点。的顶点称为终端顶点。5路径:路径:路径:路径:从顶点从顶点v到到v的路径是一个顶点序列的路径是一个顶点序列(v=vi,0,vi,1,vi,m=v),满足满足(vi,j-1
7、,vi,j)VR或或 VR(1 j m)。对于有向图,路径也是有向的。对于有向图,路径也是有向的。v2v1v3v4v5v2v1v3v4路径长度:路径长度:路径长度:路径长度:路径上边或弧的数目。路径上边或弧的数目。回路回路回路回路(环环环环):第一个顶点和最后一个顶点相同的路径。第一个顶点和最后一个顶点相同的路径。简单路径:简单路径:简单路径:简单路径:序列中顶点序列中顶点(两端点除外两端点除外)不重复出现的路径。不重复出现的路径。简单回路简单回路简单回路简单回路(简单环简单环简单环简单环):前后两端点相同的简单路径。前后两端点相同的简单路径。连通:连通:连通:连通:无向图中从顶点无向图中从顶
8、点v到到v有路径,则说有路径,则说v和和v是连通的。是连通的。连通图:连通图:连通图:连通图:无向图中任意两个顶点都是连通的。无向图中任意两个顶点都是连通的。v2v1v3v4v56连通分量:连通分量:连通分量:连通分量:无向图的极大连通子图;任何连通图的连通无向图的极大连通子图;任何连通图的连通分量只有一个,即其本身;非连通图有多个连通分量分量只有一个,即其本身;非连通图有多个连通分量(非连非连通图的每一个连通部分通图的每一个连通部分)。v2v1v3v4v5v2v1v3v4v5强连通图:强连通图:强连通图:强连通图:有向图有向图G中,若对于中,若对于V(G)中任意两个不同的中任意两个不同的顶点
9、顶点vi和和vj,都存在从,都存在从vi到到vj以及从以及从vj到到vi的路径,则称的路径,则称G是是强连通图。强连通图。v2v1v3v4强连通分量:强连通分量:强连通分量:强连通分量:有向图的极大强连通子图;任何强连通图的有向图的极大强连通子图;任何强连通图的强连通分量只有一个,即其本身;非强连通图有多个强连通分强连通分量只有一个,即其本身;非强连通图有多个强连通分量。量。v2v1v3v4v2v1v3v47 对于一个具有对于一个具有n个顶点的图,可用两个数组存储。其中一个顶点的图,可用两个数组存储。其中一个一维数组存储数据元素个一维数组存储数据元素(顶点顶点)的信息,另一个二维数组的信息,另
10、一个二维数组(图图的邻接矩阵的邻接矩阵)存储数据元素之间的关系存储数据元素之间的关系(边或弧边或弧)信息。信息。邻接矩阵:邻接矩阵:邻接矩阵:邻接矩阵:设设G=(V,VR)是具有是具有n个顶点的图,顶点个顶点的图,顶点的顺序依次为的顺序依次为v1,v2,vn,则,则G 的邻接矩阵是具有如下的邻接矩阵是具有如下性质的性质的n阶方阵:阶方阵:图的存储结构之数组表示法图的存储结构之数组表示法(邻接矩阵表示法邻接矩阵表示法)8v2v1v3v4G1v2v1v3v4v5G2v1v2v3v4v1v2v3v4v5v1v2v3v4v1v2v3v4v5特点:特点:无向图的邻接矩阵对称,可压缩存储;有无向图的邻接矩
11、阵对称,可压缩存储;有n个顶点的无向图个顶点的无向图需存储空间为需存储空间为n(n-1)/2。有向图邻接矩阵不一定对称;有有向图邻接矩阵不一定对称;有n个顶点的有向图需存储空个顶点的有向图需存储空间为间为n,空间复杂度空间复杂度O(n2),用于稀疏图时空间浪费严重。,用于稀疏图时空间浪费严重。无向图中顶点无向图中顶点vi的度的度TD(vi)是邻接矩阵中第是邻接矩阵中第i行行1的个数。的个数。有向图中有向图中顶点顶点vi的的出度出度出度出度是邻接矩阵中第是邻接矩阵中第i行行行行1的个数。的个数。顶点顶点vi的的入入入入度度度度是邻接矩阵中第是邻接矩阵中第i列列列列1的个数。的个数。9网的邻接矩阵
12、可定义为:网的邻接矩阵可定义为:v2v1v3v4v5v65489755613v1v2v3v4v5v6v1v2v3v4v5v610顶点表结点顶点表结点 data firstarc 边表结点边表结点 adjvex nextarc info v2v1v3v4v5G2v1v3v4v2v501234314204312021链域链域链域链域,指示下一条边或弧。,指示下一条边或弧。特点:特点:若无向图中有若无向图中有n个顶点、个顶点、e条边,则其邻接表需条边,则其邻接表需n个顶点表结个顶点表结点和点和2e个边表结点。适宜存储稀疏图个边表结点。适宜存储稀疏图。无向图中顶点无向图中顶点vi的度为第的度为第i个单
13、链表中的结点数。个单链表中的结点数。邻接点域邻接点域邻接点域邻接点域,存放与,存放与vi邻接的邻接的结点在表头数组中的位置。结点在表头数组中的位置。图的存储结构之邻接表图的存储结构之邻接表(类似于树的孩子链表表示法类似于树的孩子链表表示法)11v2v1v3v4G101232130v1v3v4v20123302v1v3v4v20邻接表邻接表 逆邻接表逆邻接表 顶点顶点vi的的出度出度出度出度为第为第i个单链个单链表中的结点个数。表中的结点个数。特点:特点:顶点顶点vi 的的入度入度入度入度为整个为整个单链表单链表中邻接点域值是中邻接点域值是i-1的结点的结点个数个数。找出度易,找入度难。找出度易
14、,找入度难。找入度易,找出度难。找入度易,找出度难。顶点顶点vi的的入度入度入度入度为第为第i个单链个单链表中的结点个数。表中的结点个数。顶点顶点vi 的的出度出度出度出度为整个为整个单链表单链表中邻接点域值是中邻接点域值是i-1的结点的结点个数个数。12从图的任意指定顶点出发,依照某种规则去访问图中所从图的任意指定顶点出发,依照某种规则去访问图中所有顶点,且每个顶点仅被访问一次,此过程叫做有顶点,且每个顶点仅被访问一次,此过程叫做图的遍历图的遍历图的遍历图的遍历。图的遍历按照广度优先和深度优先规则去实施,通常有图的遍历按照广度优先和深度优先规则去实施,通常有广度优先遍历法广度优先遍历法广度优
15、先遍历法广度优先遍历法(Breadth_FristSearchBFS)和和深度优先深度优先深度优先深度优先遍历法遍历法遍历法遍历法(Depth_FirstSearchDFS)两种。两种。V1V2V4V5V3V7V6V8图的遍历图的遍历13方法:方法:方法:方法:从图的某一结点出发,首先依次访问该结点的从图的某一结点出发,首先依次访问该结点的所有邻接顶点所有邻接顶点Vi1,Vi2,Vin,再依次访问与再依次访问与Vi1,Vi2,Vin 相邻接的所有未被访问的顶点,重复此过程,直至所有相邻接的所有未被访问的顶点,重复此过程,直至所有顶点均被访问为止。顶点均被访问为止。例:例:V1V2V4V5V3V
16、7V6V8广度优先遍历:广度优先遍历:V1V2V3V4V5V6V7V8V1V3V2V7V6V5V4V8V1V2V3V5V4V7V6V8图的遍历之广度优先遍历图的遍历之广度优先遍历(BFS)14方法:方法:方法:方法:首先访问指定的起始顶点,然后在与该顶点邻接的首先访问指定的起始顶点,然后在与该顶点邻接的顶点中选择一个未被访问的顶点进行访问,接着再从现在访问顶点中选择一个未被访问的顶点进行访问,接着再从现在访问的顶点的的顶点的邻接顶点中邻接顶点中任意选择一个未被访问的顶点任意选择一个未被访问的顶点任意选择一个未被访问的顶点任意选择一个未被访问的顶点进行访问,进行访问,如此继续,若如此继续,若到达
17、无未被访问的邻接顶点的顶点时,则到达无未被访问的邻接顶点的顶点时,则退回退回退回退回到到最近访问过的那最近访问过的那个顶点,若它还有未被访问的邻接顶点,则选个顶点,若它还有未被访问的邻接顶点,则选择一个进行访问。重复上述过程,直到全部顶点都访问完毕择一个进行访问。重复上述过程,直到全部顶点都访问完毕。例:例:V1V1V2V4V5V3V7V6V8深度优先遍历:深度优先遍历:V2V4V8V5V3V6V7V1V2V5V8V4V3V6V7V1V2V4V8V5V3V7V6V1V2V5V8V4V3V7V6V1V3V6V7V2V4V8V5图的遍历之深度优先遍历图的遍历之深度优先遍历(DFS)152 显式图显
18、式图&隐式图隐式图n在路径问题、连通性问题和网络优化等问题中,在路径问题、连通性问题和网络优化等问题中,图的结构图的结构是显式给出是显式给出的,包括图中的顶点、边及权重,这类图称为的,包括图中的顶点、边及权重,这类图称为显式图显式图,即一般意义上的图。,即一般意义上的图。n隐式图隐式图是由问题的初始结点,为了求解或求证问题,是由问题的初始结点,为了求解或求证问题,根据根据问题的规则问题的规则(一般是由题目的意思隐含给出的一般是由题目的意思隐含给出的),也就是生,也就是生成子结点的约束条件,成子结点的约束条件,逐步扩展结点逐步扩展结点,直至得到目标结点,直至得到目标结点为止的一个隐式的图。为止的
19、一个隐式的图。q两种典型的隐式图:子集树,排列树两种典型的隐式图:子集树,排列树162 显式图显式图&隐式图隐式图-子集树子集树n当要求解的问题需要在当要求解的问题需要在n个元素的个元素的子集子集中进行搜索,其中进行搜索,其搜索空间树被称作搜索空间树被称作子集树子集树(subsettree)。这。这n个元素都个元素都在子集中或被选取记为在子集中或被选取记为1,不在子集中或被舍去记为,不在子集中或被舍去记为0,这样搜索空间为:这样搜索空间为:(0,0,0,0),(0,0,0,1),(0,0,1,0),(0,0,1,1),(1,1,1,1)。172 显式图显式图&隐式图隐式图-子集树子集树n共共2
20、n个状态。若表示为树形结构就是一棵有个状态。若表示为树形结构就是一棵有2n个叶结点的个叶结点的二叉树,对树中所有分支进行遍历的算法都必须耗时二叉树,对树中所有分支进行遍历的算法都必须耗时O(2n)182 显式图显式图&隐式图隐式图-排列树排列树n当要求解的问题需要在当要求解的问题需要在n个元素的个元素的排列排列中搜索问题的解时,中搜索问题的解时,解空间树被称作解空间树被称作排列树排列树(permutationtree)。n搜索空间为:搜索空间为:(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第一
21、个元素有第一个元素有n种选择,第二个种选择,第二个元素有元素有n-1种选择,第三个元素种选择,第三个元素有有n-2种选择,种选择,第,第n个元素个元素有有1种选择,共计种选择,共计n!个状态。若个状态。若表示为树形就是一个表示为树形就是一个n度树,这度树,这样的树有样的树有n!个叶结点,所以每一个叶结点,所以每一个遍历树中所有节点的算法都必个遍历树中所有节点的算法都必须耗时须耗时O(n!)192 显式图显式图&隐式图隐式图-排列树排列树203 图搜索术语图搜索术语&方法分类方法分类q穷举搜索(盲目搜索)穷举搜索(盲目搜索)是对图的最基本的搜索算法,是对图的最基本的搜索算法,是蛮力策略的一种表现
22、形式。即不考虑给定问题的特是蛮力策略的一种表现形式。即不考虑给定问题的特有性质,按事先定好的顺序,依次运用规则,盲目搜有性质,按事先定好的顺序,依次运用规则,盲目搜索的方法。索的方法。q启发式搜索启发式搜索是利用一些启发信息,提前判断出先搜索是利用一些启发信息,提前判断出先搜索哪些状态可能尽快找到问题的解或某些情况不可能取哪些状态可能尽快找到问题的解或某些情况不可能取到最优解,从而可以提前舍弃对这些状态的尝试。即到最优解,从而可以提前舍弃对这些状态的尝试。即考虑给定问题的特有性质,选用合适的细则,提高搜考虑给定问题的特有性质,选用合适的细则,提高搜索的效率。索的效率。n搜索分为两大类:搜索分为
23、两大类:隐含地检查所有可能情况隐含地检查所有可能情况213 图搜索术语图搜索术语&方法分类方法分类n问题状态问题状态:树中的每一个结点确定所求解问题的一个问题树中的每一个结点确定所求解问题的一个问题状态。状态。n状态空间状态空间:由根结点到其它结点的所有路径(分支),就由根结点到其它结点的所有路径(分支),就确定了这个问题的状态空间。确定了这个问题的状态空间。n解状态解状态:是这样一些问题状态是这样一些问题状态S,对于这些问题状态,由,对于这些问题状态,由根到根到S的那条路径确定了该解空间中的一个元组。的那条路径确定了该解空间中的一个元组。n答案状态答案状态:是这样一些解状态是这样一些解状态S
24、,对于这些解状态而言,对于这些解状态而言,由根到由根到S的这条路径确定了这问题的一个解(即它满足隐的这条路径确定了这问题的一个解(即它满足隐式约束条件)。式约束条件)。n状态空间树状态空间树:解空间的树结构,又称隐式图。解空间的树结构,又称隐式图。223 图搜索术语图搜索术语&方法分类方法分类n活结点:活结点:如果已生成一个结点而它的所有儿子结点还没如果已生成一个结点而它的所有儿子结点还没有全部生成,则这个结点叫做活结点。有全部生成,则这个结点叫做活结点。nE-结点:结点:当前正在生成其儿子结点的活结点叫当前正在生成其儿子结点的活结点叫E-结点结点(正在扩展的结点)。(正在扩展的结点)。n死结
25、点死结点:不再进一步扩展或者其儿子结点已全部生成的不再进一步扩展或者其儿子结点已全部生成的结点就是死结点结点就是死结点。233 图搜索术语图搜索术语&方法分类方法分类nn n皇后问题皇后问题q要在要在n*nn*n的国际象棋棋盘中放的国际象棋棋盘中放n n个皇后,使任意两个皇后个皇后,使任意两个皇后都不能互相吃掉。规则:皇后能吃掉同一行、同一列、都不能互相吃掉。规则:皇后能吃掉同一行、同一列、同一对角线的任意棋子。求所有的解。同一对角线的任意棋子。求所有的解。问题状态问题状态状态空间状态空间解状态解状态答案状态答案状态24二、广度优先搜索二、广度优先搜索n1图的广度优先遍历图的广度优先遍历/搜索
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图搜索基础 搜索 基础 PPT 课件
限制150内