ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

图论相关总结

2019-09-06 17:56:53  阅读:264  来源: 互联网

标签:总结 图论 结点 连通 割边 回路 相关 欧拉 分量


图的构成:

1)图:

G = (V,E) vertex,edge

集合表示: V={ } E={ };//这也就是向前星存图的基础

2)有向图与无向图:

3)有向图:

顶点度 (deg)= 出度(indeg) + 入度(outdeg)

欧拉回路:

欧拉回路:图G中经过每条边一次的回路。
欧拉路径:图G中经过每条边一次的路径。
欧拉图:存在欧拉回路的图。
半欧拉图:存在欧拉路径且不存在欧拉回路的图。

定理1:无向图G为欧拉图,当且仅当G连通且每个点的度数均为偶数。
推论1:无向图G为半欧拉图,当且仅当G连通且除了两个点度数为奇数外,其余个点度数均为偶数。
定理2:有向图G为欧拉图,当且仅当G的基图连通且每个点入度等于出度。
推论2:有向图G为半欧拉图,当且仅当G连通且除了uu入度比出度大11,vv出度比入度大一外,其余个点入度均等于出度。

性质1:设C为欧拉图G中一条简单回路,将C中的边从图GG中删去后得到G′′,G

的每个极大连通子图均为欧拉图。
性质2:设C1、C2

C1​、C2​为图G中没有公共边,但至少有一个公共点的简单回路,则C1、C2​可以合成一个新的回路。

 

Tarjan算法:

基于图的DFS遍历。

时间

在DFS时,按照每个点第一次被访问的顺序,标记每个结点。该标记称为时间戳,记作dfn(u)

搜索树

在DFS时,每个结点只会被遍历一次。若图连通,则所有连接一个未访问结点的边会构成一棵树,不连通则构成一个森林。

追溯值

u出发能访问到的点中,dfndfn的最小值,称为追溯值,记作low(u)

强连通分量

定义

有向图的极大强连通子图,称为强连通分量,简称SCC。

算法流程

枚举每个为访问的结点进行DFS,并将结点压入栈中。

在DFS时计算dfn,low。

若当前访问结点u满足dfn(u)=low(u),则栈中u及其之后的结点从栈中弹出,这些结点构成一个强连通分量。 重复以上过程,直至所以结点都被访问。

割点

无向图中,如果有一个顶点集合,删除这个顶点集合以及这个集合中所有顶点相关联的边以后,图的连通分量增多,就称这个点集为割点集合

判定:

1.u为当前搜索树的根结点且uu的子树数量大于1。

2.u不为根且存在树边(u,v)使dfn(u)<=low(v)

割边

在一个无向图中,如果有一个边集,删除这个边集以后,图的连通分量增多,就称这个边集为割边集合。
如果某个割边集合只含有一条边(u,v),那么(u,v)称为一条割边

判定:

  1. 一条边(u,v)(u,v)为割边,当且仅当(u,v)(u,v)在搜索树中且dfn(u)<low(v)

点双连通分量

对于一个连通图,若任意两点之间至少存在两条“点不重复”的路径,则称该图是点双连通的。
对于一个图,点双连通的极大子图称为点双连通分量

不同的点双连通分量最多只有一个公共点,而这个公共点一定是割点。
任意的割点至少是两个不同点双连通分量的公共点。

判定:

仿照求解强连通分量的方法,在dfs时维护一个栈,若当前边(u,v)满足dfn(u)≤low(v)
说明u为割点。将栈中的结点依次弹出,但u不弹出。
注意割点属于多个点双连通分量。

边双连通分量

对于一个连通图,若任意两点之间至少存在两条“边不重复”的路径,则称该图是边双连通的。
对于一个图,边双连通的极大子图称为边双连通分量

割边不属于任何一个边双连通分量

根据变双联通分量的定义,只需求一遍割边。然后删去割边,原图会分裂成若干个连通块,每个连通块就是一个边双连通分量。

DAG :有向无环图

拓扑排序

扫描每个结点,把入度为 0的结点加入队列。

从队列开始,每次取出队首元素,扫描其出边,将其到达的顶点入度减1

重复2,直到队列为空。

 

其他连通相关

https://blog.csdn.net/lin375691011/article/details/18092577

强连通图,强连通子图(分支)

https://blog.csdn.net/lixiaoguai2017/article/details/85457160

距离与连通性

标签:总结,图论,结点,连通,割边,回路,相关,欧拉,分量
来源: https://www.cnblogs.com/Tianwell/p/11477199.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有