10.4图的连通性(Connectivity)

10.4图的连通性(Connectivity)

如果存在一条路径,使得从u到v,那么顶点u和v就是连通的

  1. 如果能存在一条路径从u到u,那么这样的路径称为自环(circuit)
  2. 路径可以视作穿过点(through the vertices),也可视为遍历边(traverses the edges)
  3. 如果这条路径穿过的边都是一次的(无重复穿过同一条边),那么我们称其为简单路径

图连通

针对于无向图而言,如果任意两个顶点都能够连通,那么称这个图为连通图

定理:

  1. 无向连通图的每对顶点都存在简单路径(simple path)
  2. 无向图G的连通分量是指G的最大连通子图
  3. 割点(cut vertex)或割边(cut edge)能将连通图分为两部分

点连通(Vertex Connectivity)

  1. 不可分割图(Nonseparable graphs)

    无割点的图称为不可分割图

  2. 点割集

    去掉点割集V‘后,使得连通图G变为G-V’不再连通

  3. 点连通性(Vertex connectivity)

    非完全图G的点连通性,指的是存在的点割集的顶点最小数;记为??(G);通俗的说,就是最少去掉多少个点使得G不再是连通图

边连通(Edge Connectivity)

  1. 边割集

    去掉边割集E‘后,使得连通图G变为G-E’不再连通

  2. 边连通性(Edge connectivity)

    非完全图G的边连通性,指的是存在的边割集的边的最小数;记为??(G);通俗的说,就是最少去掉多少条边使得G不再是连通图

有向图的连通性

有向图中,路径只能沿着箭头出发
强连通(strongly connected):a和b强连通,指存在路径从a连通到b,也存在路径从b到a
弱连通(weakly connected):a和b弱连通,指存在路径从a连通到b或存在路径从b到a(强连通必定弱连通)

NOTE:连通性以及路径都是图同构中的同构不变量
NOTE:用tarjan算法求有向图的强连通分量极其有效

通过邻接矩阵计算路径数

如果A是图G的邻接矩阵,那么\((A^k)_{i,j}\)表示\(v_i\)到\(v_j\)的路径为k的数目(1的数目)

NOTE:注意这里求路径为k和之前沃舍尔算法求连通性的区别

原文地址:https://www.cnblogs.com/SpicyArticle/p/12151064.html

时间: 2024-10-10 09:18:36

10.4图的连通性(Connectivity)的相关文章

图的连通性问题的小结 (双连通、2-SAT)

图的连通性问题包括: 1.强连通分量. 2.最小点基和最小权点基. 3.双连通. 4.全局最小割. 5.2-SAT 一.强连通分量 强连通分量很少单独出题,一般都是把求强连通分量作为缩点工具. 有三种算法: 1.Kosaraju算法.对原图和反图分别进行一次深度优先搜索. 2.Tarjan算法.用了时间戳. 3.Garbow算法.与Tarjan算法是同一思想,但更精妙. 三种算法的模版我已经贴过了  http://www.cnblogs.com/Potato-lover/p/3956604.ht

POJ2513(字典树+图的连通性判断)

//用map映射TLE,字典树就AC了#include"cstdio" #include"set" using namespace std; const int MAXN=510005; const int N=26;//26个小写英文字母 struct node{ int val;//存放字符串的hash值 node* next[N]; }; node memory[MAXN]; int ant; node* root; node* create_tree() {

49. 蛤蟆的数据结构笔记之四十九图的连通性问题

49. 蛤蟆的数据结构笔记之四十九图的连通性问题 本篇名言:"我们不得不饮食.睡眠.游惰.恋爱,也就是说,我们不得不接触生活中最甜蜜的事情:不过我们必须不屈服于这些事物 .....--约里奥?居里"     此篇就作为数据结构入门笔记的最后一篇吧. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47135259 设图G=(V,E)是一个无向图,G的一个连通分支是一个最大的连通子图,即一个连通分支是不包含在任何更大的

uml精粹——10.状态机图

10.状态机图state machine diagram 状态机图是常见的描述一个系统行为的技术.在面向对象的方法中,为单个类绘制一个状态机图来展示单个对象的生命周期行为. 见图10.1 图中显示了管理我不同寻常的安全系统的控制类的一个状态机图.它从控制对象被创建时的状态开始:等待状态wait state.图中暗示这个为初始伪状态initial pseudostate,虽然不是状态但又一个箭头指向初始状态. 图中显示控制器可处于3个状态:wait.lock和open.该图还提供规则表示状态间的改

POj 1386 Play on words 欧拉回路/通路,图的连通性判断

题目链接: #include<iostream> #include<cstdio> #include<cstring> #define M 28 using namespace std; int fa[M]; int Find(int x) { return x==fa[x]?x:fa[x]=Find(fa[x]); } int main() { int T,n; char str[1005]; int in_degree[M],out_degree[M]; int v

编程开发必读书籍:每个Web开发人员都应该阅读的10本书[图]

编程开发必读书籍:每个Web开发人员都应该阅读的10本书[图]:当开发人员问我他们应该阅读哪些书籍的时候,我通常都是告诉他们:让你读的下去的书.许多开发人员会阅读其他人的代码,实际上你提升自己最好的途径就是阅读,你的读书效率越高,那么你在日常工作中的效率也会越高.本文我们将来讨论:每个Web开发人员都应该阅读的10本书:1.<与爱因斯坦月球漫步>为什么推荐一本记忆力训练相关的书籍呢?因为现在的绝大多数开发人员都没有想过要提高自己的记忆能力,结果全部依赖于移动设备,实际上,现如今的程序员很难在脱

天梯赛 L2-013. 红色警报 图的连通性

L2-013. 红色警报 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 战争中保持各个城市间的连通性非常重要.本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报.注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报. 输入格式: 输入在第一行给出两个整数N(0 < N <=500)和M(<=5000),分别为城市个数(

USACO Section 4.3 Street Race(图的连通性+枚举)

虽说是IOI'95,但是也是挺水的..for 第一问,n最大为50,所以可以直接枚举起点和终点之外的所有点,然后dfs判断是否连通:for 第二问,易知答案一定是第一问的子集,所以从第一问中的答案中枚举,也是用dfs判断. #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<vector> #define rep(i,r) for(i

算法系列笔记10(有关图的算法三—最大流与二分图)

本次主要记录流网络以及最大流的简单概念(以后可能会将最大流的实现算法补充),重点讲解用匈牙利算法来求二分图的最大匹配. 1:流网络 流网络是G(V, E)是一个有限的有向图,它的每条边(u, v)∈E都有一个非负值实数的容量c(u, v)≥0.如果(u, v)不属于E,我们假设c(u, v) = 0.我们区别两个顶点: 一个源点s和一个汇点t..并假定每个顶点均处于从源点到汇点的某条路径上. 形式化的定义:一道网络流是一个对于所有结点u和v都有以下特性的实数函数::满足下面两条性质: 容量限制: