无向图的连通性
判断图的连通性
判断图的连通性连通性判断【试题描述】⽆向图,包含n个节点编号1⾄n,初始没有边。
现在逐次向图中添加m条边,你需要在添加边之前判断该两点是否连通。
【输⼊要求】第⼀⾏两个正整数n、m。
接下来m⾏,每⾏两个正整数x、y。
【输出要求】m⾏,每⾏包含⼀个整数0或1,0表⽰添加这条边之前两个点不连通,1表⽰连通。
【输⼊实例】4 51 21 32 34 43 4【输出实例】11【其他说明】n,m<=300000。
【试题分析】⽤并查集做,这是⼀道全世界最⽔的图论题,直接不⽤说,上代码……【代码】#include<iostream>using namespace std;int x,y,f[301001],n,m;int find(int x){if (f[x]==x) return f[x];return f[x]=find(f[x]);}void merge(int v,int u){int t1,t2;t1=find(v);t2=find(u);if(t1!=t2) f[t2]=t1;return ;}inline int read(){int x,f=1;char ch=getchar();for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-1;for(x=ch-'0';isdigit(ch=getchar());x=x*10+ch-'0');return x*f;}inline void write(int x){if(x==0){putchar('0');return;}if(x<0)putchar('-'),x=-x;int len=0,buf[15];while(x)buf[len++]=x%10,x/=10;for(int i=len-1;i>=0;i--)putchar(buf[i]+'0');return;}int main(){n=read(),m=read();for(int i=1;i<=n;i++) f[i]=i;for(int i=1;i<=m;i++){bool w=false;x=read(),y=read();if(find(x)!=find(y)) w=true;//如果x和y的根⼀样那么就可以知道这两条边加进去以后图是连通的 if(w==false)write(1),printf("\n");else write(0),printf("\n");merge(x,y);//把x和y连起来}}。
图的连通性问题
G
H
图1 有向图G
A C
B D
F
G H
E
图2 逆置图G’
Step3:根据步骤1得到的遍历序列,按照结点结束访问时间递减 排序后的结果 EFGHACBD 下面,按照该结点序列顺序对逆置图G’所深度优先遍历,得到 的深度优先遍历森林如图3所示。森林中共有4棵树,其中(a)和(d) 只有一个结点,这里认为单结点也是一个强联通分量(在实际应 用中可以根据实际需要将这种情况过滤掉)。 A C E B D 图2 逆置图G’ F G A B D F G H
二、Kosaraju算法求解过程实 例
下面结合实例说明Kosaraju算法的基 本策略。图1给出了一个有向图G。
A
C
B
D
图1 有向图G
F
E
G H
Step1:假设从DFS在遍历时按照字母顺序进行,根据 Kosaraju算法,在步骤1中我们得到的遍历顺序可以表达为 [A,[C,[B,[D,D],B],C],A][E,[F,[G,[H,H],G],F],E] 越后出栈的点先访问 第一步所得到的顺序即为:EFGHACBD Step2:根据算法第2步,将图G逆置,得到对应的反向图G’ 如图2所示。 A C B D F E
有向图和它的转置的 强连通分量相同
所有SCC构成一个 DAG
求强连通分量使用 Kosaraju算法
一、Kosaraju算法步骤: Step1、对有向图G做dfs(深度优先遍历),记录每个结点结束访 问的时间(即节点出栈顺序,后出栈的点第二次先扫描) Step2、将图G逆置,即将G中所有弧反向。 Step3、按Step1中记录的结点结束访问时间从大到小对逆置后的 图做dfs Step4、得到的遍历森林中每棵树对应一个强连通分量。
离散数学 7-1图概念7-2路与回路
例如
路:v1e2v3e3v2e3v3e4v2e6v5e7v3 迹:v5e8v4e5v2e6v5e7v3e4v2 通路:v4e8v5e6v2e1v1e2v3
学习本节要熟悉如下术语(22个): 路、 路的长度、 回路、 迹、 通路、 圈、 割点、
连通、连通分支、 连通图、 点连通度、
点割集、
边割集、 割边、 边连通度、 可达、 弱分图、
单侧连通、 强连通、 弱连通、 强分图、 单侧分图 掌握5个定理,一个推论。
7-2 路与回路
路
无向图的连通性
7-1 图的基本概念
图的定义
点的度数
特殊的图 图同构
三、特殊的图
1、多重图 定义7-1.4:含有平行边的图称为多重图。 2、简单图:不含平行边和环的图称为简单图。 3、完全图 定义7-1.5:简单图G=<V,E>中,若每一对结点 间均有边相连,则称该图为完全图。 有n个结点的无向完全图记为Kn。 无向完全图:每一条边都是无向边 不含有平行边和环 每一对结点间都有边相连
3、图的分类:
①无向图:每条边均为无向边的图称为无向图。 ②有向图:每条边均为有向边的图称为有向图。
③混合图:有些边是无向边,有些边是有向边的图称
为混合图。
v1 (孤立点) v5 V1’ v1 环
v2
v4 v3 (a)无向图
V2’
V3’ (b)有向图 V4’
v2
v4 v3 ( c ) 混合图
4、点和边的关联:如ei=(u,v)或ei=<u,v>称u, v与ei关联。 5、点与点的相邻:关联于同一条边的结点称为邻 接点。
图连通性算法及应用
图连通性算法及应用图是计算机科学领域中常见的数据结构,用于表示对象之间的关系。
在图论中,图的连通性是一个重要的概念,指的是在图中任意两个顶点之间是否存在路径。
图连通性算法是为了判断图中的连通性而设计的算法,并且在实际应用中有着广泛的应用。
一、连通性的定义与分类在图论中,连通性有两种常见的定义方式:强连通性和弱连通性。
强连通性是指在有向图中,任意两个顶点之间存在互相可达的路径;弱连通性是指在有向图中,将其所有有向边的方向忽略后,剩下的无向图是连通的。
本文将重点介绍无向图的连通性算法及其应用。
二、连通性算法的原理1. 深度优先搜索(DFS)深度优先搜索是最常用的连通性算法之一。
它从图中的一个顶点开始,沿着一条未访问过的边深入图中的下一个顶点,直到无法深入为止,然后回溯至上一个顶点,继续深入其他未访问过的顶点。
通过深度优先搜索算法,我们可以得到一个图的连通分量,从而判断图是否连通。
2. 广度优先搜索(BFS)广度优先搜索同样是常用的连通性算法之一。
它从图中的一个顶点开始,沿着一条未访问过的边遍历与该顶点直接相邻的所有顶点,然后再以这些相邻顶点为起点,继续遍历它们的相邻顶点,直到遍历完所有连通的顶点。
通过广度优先搜索算法,我们可以得到一个图的层次遍历树,从而判断图是否连通。
三、连通性算法的应用1. 社交网络分析在社交网络分析中,连通性算法可以用来判断一个社交网络中是否存在分割成多个互不相连的社群。
通过判断社交网络的连通性,我们可以发现隐藏在社交网络背后的关系网络,从而更好地理解和分析社会关系。
2. 网络路由优化在计算机网络中,连通性算法可以用来判断网络节点之间的连通性。
通过分析网络的拓扑结构,我们可以选择合适的路由算法,从而实现快速且可靠的数据传输。
3. 图像分割在计算机视觉和图像处理中,连通性算法可以用来判断图像中的连通区域。
通过判断图像的连通性,我们可以对图像进行分割和提取,从而实现目标检测和图像识别等应用。
3图的连通性
• 设G=<V,E>为无向图,对于任意的 v∈V, 为无向图, 为无向图 对于任意的u, ∈ , 是连通的, 若u和v是连通的,则称 v之间长度最短的通 和 是连通的 则称u, 之间长度最短的通 路为u, 之间的短程线 短程线的长度为u, 之间的短程线, 路为 v之间的短程线,短程线的长度为 v 距离, 之间的距离 记为d(u, v)。规定当 和v不连 。规定当u和 不连 之间的距离,记为 通时, 通时,d(u, v) = ∞ 。 • 在无向图 中,任何两点之间的距离最大值 在无向图G中 称为G的直径,记为d(G)。 称为 的直径,记为 。 在下图中, 【例】在下图中,d(2, 6)=2,d(2, 7)=3,而d(G) , , = 4正是图中的最大距离 正是图中的最大距离d(1, 7)。 正是图中的最大距离 。
存在一条通路, 到vj (vi≠vj)存在一条通路,则从 i到vj存在一条长 存在一条通路 则从v 度不大于n 的通路 的通路。 度不大于 −1的通路。 设在一个具有n个顶点的图中存在一条长度 证明 设在一个具有 个顶点的图中存在一条长度 的通路v 其中v 为m的通路 0v1…vm,其中 0=vi,vm=vj。 的通路 若m ≤n − 1,则存在所求的通路; ,则存在所求的通路; 若m >n − 1,则通路上的顶点数 +1 >n,因 ,则通路上的顶点数m , 为图中只有n 个顶点,所以必然有m 为图中只有 个顶点,所以必然有 +1 − n个顶点 个顶点 在通路中重复出现,即存在回路。 在通路中重复出现,即存在回路。在通路中去掉 的通路, 回路所得到的仍然是从v 回路所得到的仍然是从 i到v j的通路,且长度至少 比原通路少1。重复以上过程, 比原通路少 。重复以上过程,将通路中的所有回 路去掉,必然可得到一条长度不多于n 的通路。 路去掉,必然可得到一条长度不多于 − 1的通路。 的通路
8.2 路径和回路
有两个强连通分支 G1=<{V1,V2,V3,V4},{<1,2>,<2,3><3,4>,<4,1><2,3>}> G2=<{V5}, Φ> 有一个单向连通分支
G3=G =<{V1,V2,V3,V4,V5},
{<1,2>,<2,3><3,4>,<4,1><2,3>,<3,5>,<4,5>}> 有一个弱连通分支 G4=G =<{V1,V2,V3,V4,V5}, {<1,2>,<2,3><3,4>,<4,1><2,3>,<3,5>,<4,5>}>
2014年3月12日星期三 南京信息工程大学数理学院 14
• 定理2:设G是具有n个结点的简单无向图, 如果图中每对结点度数之和大于或等于n-1, 则G是连通图。 • 证明:假设G不连通,则至少有两个连通分支G1和G2。 设G1有n1个结点,G2有n2个结点。 任取v1G1, v2G2, 因图G是简单图, 则deg(v1)n1-1, deg(v2)n2-1 , 从而有deg(v1)+deg(v2)n1+n2 -2< n-1,与题设矛盾。
2014年3月12日星期三
南京信息工程大学数理学院
16
• 显然:强连通要求高于单向连通 单向连通要求高于弱连通 三者统称为连通有向图 • 若有向图G不是弱连通图,则称为非连通图。 • 定理1 (有向图的连通性的判定) • 一个有向图是强连通的,当且仅当G中有一条 经过所有结点的回路。 • 一个有向图是单向连通的,当且仅当G中有一 条经过所有结点的路径。
(无向)树没有回路的连通图
该树有9片树叶。
定理 树中任意加一条边就形成回路 证明: 证明:若在连通图G中两个不相邻的结点vi和vj之间添 加一条边{vi, vj},因为G中原来存在vi到vj的通路,故此时 形成一条经过vi和vj的回路。
第六章 树
(无向)树:没有回路的连通图 无向) 根树是计算机科学最常用的概念之一 根树 根树以(无向)树为基础 6.1树 树 定义1 无向) 定义 (无向)树:无简单回路的连通图 树叶:树中度为1的顶点 树叶 森林:无简单回路的图(多棵树) 森林 树必定不是多重图、伪图 森林的每个连通分支都是树
例
定理1 定理 无向图是树⇔每对顶点之间存在唯一的基本通路 证明: 证明:首先假定T是树。则T是没有简单回路的连通图。 设x和y是T的两个顶点。因为T是连通的,根据连通性定理 1,在x和y之间存在一条简单通路。另外,这两条通路必 然是唯一的,因为假如存在第二条这样的通路,则组合从 x到y的第一条这样的通路以及经过倒转从x到y的第二条通 路的顺序所得到的从y到x的通路,就形成了回路。利用 5.4节习题5,这蕴含着在T中存在简单回路。因此,在树 的任何两个顶点之间存在唯一简单通路。 现在假定在图T的任何两个点顶点之间存在唯一简单 通路。则T是连通的,因为在它的任何两个顶点之间存在 通路。另外,T没有简单回路。为了看出这句话是真的, 假定T有包含顶点x和y的简单回路。则在x和y之间就有两 条简单通路,因为这条简单回路包含一条从x到y的简单通 路和一条从y到x的简单通路。因此,在任何两个顶点之间 存在唯一简单通路的图是树。
习题
证明:简单图是树,当且仅当它是连通的,但是删除它的 任何一条边就产生不连通的图。
图的连通性
有向图中,极大强连通子图=强连通分量
G1的两个强连通分量 G1
V’是连通图G的一个顶点子集。在G中删去V’及与V’ 相关联的边后图不连通,则称V’是G的割顶集。 最小割顶集中顶点的个数,记成K(G),叫做G的连通度。
规定: K(完全图)=顶点数-1 K(不连通图)=K(平凡图)=0
K(G)=l时,割顶集中的那个顶点叫做割顶。 没有割顶的图叫做块,G中成块的极大子图叫做G的块。
LOW(U)值的计算步骤如下:
在算法执行中,对任何顶点U计算LOW(U)值是不断修改 的,只有当以U为根的dfs子树和后代的LOW值、dfn值产 生后才停止。
图中(7,1)应为(7,7)
如r被选为根,则r 成为割顶当且仅当 它有不止一个儿子 点。
顶点U的标号函数LOW(U): LOW(U)=min{dfn(),LOW(s),dfn(W)} 其中:S是U的一个儿子,(U,W)是后向边
LOW(U)是U或U的后代所能追溯到的最早 (序号小)的祖先结点序号。
顶点U<>r作为图的割顶当且仅当U有一个儿子, 使得LOW(S)>=dfn(U),即S和S的后代不会追溯 到比U更早的祖先点。
G1 K(G1)=0
G2 K(G2)=1
G3 K(G3)=3
G4 K(G4)=5-1=
威廉王迷宫
前向边(实线部分) 后向边(虚线部分) Dfn(x):顶点x被首次访问的次序。 Dfn(x)=I表示x是第I个首次被访问的节点 称为深度优先搜索序数。
Dfs树
如U不是根,U成 为割顶当且仅当 存在U的某一个儿 子顶点S,从S或S 的后代点到U的祖 先点之间不存在 后向边
图的连通性
G1
G2
在无向图中,如果从顶点V到V’有路径,则称V和V’是连通的。 在有向图中,如果从顶点V到V’有路径,并且从V’到V有路径, 则称V和V’是强连通的。 如果对于图中任意两个顶点Vi,Vj,Vi和Vj都是连通的,则称连通图。
Ch 7.4 无向图的连通度
引理1
引理1: 设E’是边割集,则 p(G-E’)=p(G)+1. 证明: 如果p(G-E’)>p(G)+1, 则E’不是边割集, 因为 不满足定义中的极小性. # 说明: 点割集无此性质
16
引理2
引理2: 设E’是非完全图G的边割集, λ(G)=|E’|, G-E’的2个连通分支是G1,G2,则 存在u∈V(G1),v∈V(G2),使得(u,v)∉E(G) 证明: (反证) 否则, λ(G)=|E’| =|V(G1)|×|V(G2)|≥|V(G1)|+|V(G2)|-1=n-1, 即需要至少删n-1条边才能破坏G的连通性,与G非完全 图相矛盾. # 说明: a≥1∧b≥1
λ(G)≤n1-2 #
33
定理7.12(λ=δ的充分条件)
定理7.12: G是6阶以上连通简单无向图. (1) δ(G)≥ n/2 ⇒ λ(G)=δ(G) (2) 若任意一对不相邻顶点 u, v 都有
d(u)+d(v)≥n-1, 则λ(G)=δ(G). (3) d(G)≤2 ⇒ λ(G)=δ(G). 证明:由定理7.11和推论可得. #
G1
G2
Kn1
Kn2
E1
31
定理7.11(证明)
证明(续): λ(G)<δ(G)≤δ(G*)≤n1-1+ λ(G)/n1 (抽屉原理) ⇒ λ(G)<n1-1+λ(G)/n1 ⇔ (n1-1)(n1-λ(G))>0 ⇒ λ(G)<n1 ⇒ λ(G) ≤ n1-1. 若 λ(G)=n1-1 ⇒ λ(G)=n1-1+ λ(G)/n1 . ⇒ λ(G)<δ(G)≤δ(G*)≤λ(G) (矛盾!) λ(G)<n1-1 ⇒ λ(G) ≤ n1-2 ⇒ λ(G)+2≤n1. #
离散数学第七章图的基本概念
4.无向图的连通性
若无向图G中任何两顶点都连通,则称G是连通图.
对于任意的无向图G.设V1,V2,…,Vk是顶点之间连通关系的 等价类,则称他们的导出子图为G的连通分支.用p(G)表示G 的连通分支数.
V1 e1
e2 e3
V3
e4 V2
V4
a
de
h
i
b
c
f
g
5.有向图的连通性
若略去有向图D中各边的键头,所得无向图是无向连通图,则 称D是弱连通图(或称D是连通图).
(2) mij d (vi )(i 1,2,..., n)
j 1
mn
nm
n
(3) mij mij d(vi ) 2m
j1 i1
i1 j1
i 1
m
(4) mij 0 vi是孤立点 j 1
(5)若第j列与第k列相同, 则说明e j与ek为平行边.
2.有向图的关联矩阵
设有向图D=<V,E>,V={v1,v2,…,vn},E={e1,e2,…,em} 1, vi为ej的始点
e1,e2,e3},{e1,e2,
e2
e4},{e9}等边割集 ,e9是桥.
e3 V4
e5 e6
V5 e4
V6
e9
V7
7.3 图的矩阵表示
1.无向图的关联矩阵
设无向图G=<V,E>,V={v1,v2,…,vn},E={e1,e2,…,em}
令mij为顶点vi与ej的关联次数, 则称(mij)n×m为G的关联矩阵.记为M(G)
若Γ 满足:vi-1,vi为ei的端点(若G为有向图,vi-1是ei的始 点,vi是ei的终点)i=1,2,…,k,则称Γ 为G中通路,v0,vk分 别称为通路的始点和终点,Γ 中边的数目k称为通路长度.
图论II 图的基本概念
单向连通
弱连通
定理(强连通判别法) D强连通当且仅当D中存在经 过每个顶点至少一次的回路 定理(单向连通判别法) D单向连通当且仅当 D中存 在经过每个顶点至少一次的路
13
1.3 带权图、最短路径、图着色
带权图与最短路径 图着色问题
14
最短路径
带权图G=<V,E,w>, 其中w:ER. eE, w(e)称作e的权. 若e=(vi,vj), 记w(e)=wij . 若vi,vj不相邻, 记wij =. 路L的权: L的所有边的权之和, 记作w(L). u和v之间的最短路径: u和v之间权最小的路.
按通畅性要求由高到低: 通路 > 迹 > 路
按可能的复杂或曲折程度由高到低:路 > 迹 >通路
2
路与回路
试分别画出:
一条通路 一条非通路的迹 一条非迹的路 从中直观感受一下路、迹和通路对通畅程度的
不同要求
路与回路实例
4
路与回路(续)
说明: 表示方法 ① 用顶点和边的交替序列(定义), 如=v0e1v1e2…elvl ② 用边的序列, 如=e1e2…el ③ 简单图中, 用顶点的序列, 如=v0v1…vl ④ 非简单图中,可用混合表示法,如=v0v1e2v2e5v3v4v5 环是长度为1的圈, 两条平行边构成长度为2的圈. 在无向简单图中, 所有圈的长度3; 在有向简单图 中, 所有圈的长度2.
1.2 路、回路、图的连通性
路,通路,迹 无向图的连通性
无向连通图, 连通分支
有向连通图
弱连通图, 单向连通图, 强连通图
点割集与割点 边割集与割边(桥)
1
路与回路
图论
D 是偶数之和,必为偶数, 是偶数。 由于∑ deg(v)是偶数之和,必为偶数,而2 E 是偶数。故得
v∈V2
C
是
v∈V1
偶数, ∑ deg(v) 偶数,即
V1 是偶数。 是偶数。
9
图的基本概念
(8)入度,出度:在有向图中,射入一个结点的边数称为该结 )入度,出度:在有向图中, 点的入度。由一个结点射出的边数称为该结点的出度。 点的入度。由一个结点射出的边数称为该结点的出度。 结点的出度与入度和是该结点的度数。 结点的出度与入度和是该结点的度数。 度数 定理:在任何有向图中,所有结点的入度和等于所有结点的 定理:在任何有向图中,所有结点的入度和等于所有结点的 结点的入度和 出度之和。 出度之和。 a d 证:∵每一条有向边必对应一个入度和出度,若一个结点具有 每一条有向边必对应一个入度和出度, 一个入度或出度,则必关联一条有向边,所以, 一个入度或出度,则必关联一条有向边,所以,有向图中各 b 结点入度和等于边数,各结点出度和也是等于边数,因此, 结点入度和等于边数,各结点出度和也是等于边数,因此, c 任何有向图中,入度之和等于出度和。 任何有向图中,入度之和等于出度和。
10
图的基本概念
是平行的。 (9)连接于同一对结点间的多条边称为是平行的。 )连接于同一对结点间的多条边称为是平行的 定义:含有平行边的任何一个图称为多重图。 定义:含有平行边的任何一个图称为多重图。 多重图 不含有平行边和环的图称作简单图。 不含有平行边和环的图称作简单图。 简单图
a b a b a b
1 n(n − 1) 2
证明:在有 个结点的无向完全图中 任意两点间都有边连接, 个结点的无向完全图中, 证明:在有n个结点的无向完全图中,任意两点间都有边连接, n个结点中任意取两点的组合为: 个结点中任意取两点的组合为: 个结点中任意取两点的组合为
第十四章 图的基本概念
(5)(4,4,3,3,2,2)
v4 v1
v3 v2 v1
v6
v2 v3
v6
v5
v4
v5
在画图时,由于顶点位置的不同,边的直、 曲不同,同一个图可能画出不同的形状。 像这种形状不同,但本质上是同一个图的现 象称为图同构。 定 义 1 4 . 5 设 两 个 无 向 图 G1=<V1,E1>, G2=<V2,E2>,如果存在双射函数f:V1→V2, 使得对于任意的e=(vi,vj)E1当且仅当e’=( f(vi),f(vj))E2,并且e与e’的重数相同,则称 G1和G2是同构的,记作G1≌G2。 对于有向图可类似定义。
d (vi ) 2m且 d (vi ) d (vi ) m
i 1 i 1 i 1 n n n
推论 任何图(无向的或有向的)中,奇度顶 点的个数是偶数。
定义 设G=<V,E>是n阶无向图,V={v1,v2,… ,vn},称d(v1),d(v2),…,d(vn)为G的度数列.对于顶点 标定的无向图,它的度数列是唯一的. 同样可定义有向图的度数列、出度列和入度列。 图G的度数列为 4,4,2,1,3 图D的度数列为 5,3,3,3 出度列为4,0,2,1 入度列为1,3,1,2
定义14.1(无向图) 一个无向图是一个有序的二元组<V,E>, 记作G,即G=<V,E>,其中 ⑴ V={v1,v2,…,vn}是非空集合,称为G 的顶点集,V中元素称为顶点或结点; ⑵ E={e1,e2,…,en}是无序积V&V的一个 多重子集,称为的边集,E中的元素称为无向边 ,简称边。 由定义知,图G中的边ek是V的两个元素vi, vj的无序对(vi ,vj),称vi,vj是ek的端点. 当vi=vj时,称ek为环(loop).
图的连通性
有关割边的四个等价命题
以下四个命题等价:
(1) e是割边。 (2) e不在G的任一简单回路上。(注意:割点没有相应结论) (3) 存在V的分划{V1, V2}, 使得u∈V1, w∈V2, uw-通路均
包含e。 (4) 存在顶点u,w,使得任意的uw-通路均包含e。
17
连通图“连接的牢固度”不一样
图的连通性
离散数学─图论初步 南京大学计算机科学与技术系
内容提要
通路与回路 通路与同构 无向图的连通性
连通度 2-连通图
有向图的连通性
无向图的定向
2
通路的定义
定义:图G中从v0到vn的长度为n的通路是G的n条边 e1,…, en的序列,满足下列性质
存在viV (0in), 使得vi-1和vi是ei的两个端点 (1in)。
同构图的不变量:长度为k的回路的存在性。
7
通路与同构
u1
u6
u2
v1
v6
v2
u5
u3
v5
u4
u2
v3 v4 v2
u1
u3
v1
v3
u5
定义:无向图G称为是连通的,如果G中任意两个不 同顶点之间都有通路。
b
a
c
b
a
c
e
d
G1
e
d
G2
9
连通分支
连通分支
极大连通子图
定义:使非平凡连通图G成为不连通图或者平凡图需要 删除的最少顶点数称为图G的(点)连通度,记为κ(G)。
(注意:这不意味着任意删除κ(G)个点就一定会使该图不连通)
约定:不连通图或平凡图的连通度为0,而κ(Kn)=n-1 若图G的连通度不小于 k, 则称G是k-连通图;
数据结构——图的连通性
稀疏图、稠密8.4 图的连通性判定一个图的连通性是图的一个应用问题,我们可以利用图的遍历算法来求解这一问题。
本节将重点讨论无向图的连通性、有向图的连通性、由图得到其生成树或生成森林以及连通图中是否有关节点等几个有关图的连通性的问题。
8.4.1 无向图的连通性在对无向图进行遍历时,对于连通图,仅需从图中任一顶点出发,进行深度优先搜索或广度优先搜索,便可访问到图中所有顶点。
对非连通图,则需从多个顶点出发进行搜索,而每一次从一个新的起始点出发进行搜索过程中得到的顶点访问序列恰为其各个连通分量中的顶点集。
例如,图8.5 (a)是一个非连通图G3,按照图8.18 所示G3 的邻接表进行深度优先搜索遍历,需由算法8.5调用两次DFS(即分别从顶点A 和D出发),得到的顶点访问序列分别为:A B F E C E这两个顶点集分别加上所有依附于这些顶点的边,便构成了非连通图G3的两个连通分量,如图8.5(b) 所示。
因此,要想判定一个无向图是否为连通图,或有几个连通分量,就可设一个计数变量count,初始时取值为0,在算法8.5的第二个for循环中,每调用一次DFS,就给count增1。
这样,当整个算法结束时,依据count的值,就可确定图的连通性了。
序号图8.18 G3的邻接表8.4.3 生成树和生成森林在这一小节里,我们将给出通过对图的遍历,得到图的生成树或生成森林的算法。
设E(G)为连通图G中所有边的集合,则从图中任一顶点出发遍历图时,必定将E(G)分成两个集合T(G)和B(G),其中T(G)是遍历图过程中历经的边的集合;B(G)是剩余的边的集合。
显然,T(G)和图G 中所有顶点一起构成连通图G 的极小连通子图。
按照8.1.2节的定义,它是连通图的一棵生成树,并且由深度优先搜索得到的为深度优先生成树;由广度优先搜索得到的为广度优先生成树。
例如,图8.17(a)和(b)所示分别为连通图G5的深度优先生成树和广度优先生成树。
Ch 7.2 3 5 通路与回路 图的连通性
扩大路径法
设G=<V,E>为n阶无向图,E≠,设Гl 为G中一条长度 为l的通路,若此通路的始点或终点与通路外的顶点相 邻,就将该顶点及关联的边扩到Гl中来。继续这一过程, 直到最后得到的通路的两个端点不与通路外的顶点相 邻为止。设最后得到的通路为Гl+k (长度为l的路径扩大 成了长度为l+k的路径),称Гl+k 为“极大路径”。
|V(Ei)|=mi, i=1,2,…,s, 则ni k, 因此mi ni-1. 由于删除v后产生了s个连通分支,因此至少删除了G中的s
条边,故m (i=1s mi )+s (i=1s ni)-s+s=n-1.
7.5 有向图的连通性
设有向图D=<V,E> u可达v(u→v): u到v有一条路. 规定u到自身总是可达的. 互相可达(u↔v):u→v且v→u 可达具有自反性和传递性,但不一定具有对称性。
始点:vi0, 终点: ,vil , 长度:边数 回路: vi0 = vil 简单通路:若Γ中所有的边互异. 简单回路:若Γ中所有的边互异且vi0 = vil 初级通路(路径):若Γ中所有边互异,所有的顶点互异. 初级回路(圈): vi0 = vil的初级通路.长度为奇数的圈称为奇圈,
通路:v1e2v3e3 v2e4 v3e3 v2e6 v5e7 v3 简单通路:v5e8v4e5v2e6v5e7v3e4v2 初级通路:v4e8v5e6v2e1v1e2v3 回路:v2e3v3e4v2e1v1e2v3e4v2 圈:v2e1v1e2v3e7v5e6v2
3.图的连通性和4图的矩阵表示
3
思考题 (1)n阶非连通的简单图的边数最多有多少
条?最少呢?
(2)证明:若无向图G中恰有两个奇度顶点,
这两个奇度顶点必然连通。
4
下面讨论有向图的连通性 定义3.4在一个有向图D=<V,E>中,如果顶 点u,v之间存在通路,则称u可达v,记作u→v。 规定任意的顶点总是可达自身的,即uV, u→u。 若u→v且v→u,则称u与v是相互可达的, 记作uv,规定uu。
2
定义3.2(无向连通图)若无向图G是平凡图 或G中的任何两个顶点都是连通的,则称G是连通图 (connected graph),否则称G为非连通图或分离 图(disconnected graph)。 (n2例)都:是完分全离图图Kn。(n1) 为 连 通 图 , 而 零 图 Nn
定义3.3(连通分支)若无向图G由若干彼此 不连通的子图组成,而每个子图是连通的,称这些 子图为G的连通分支(connected component),连 通分支数k常记为p(G)。
14.3 图的连通性
1
首先讨论无向图的连通性。 定义3.1(连通) 在一个无向图G=<V,E>中, 如果顶点u,v之间存在通路,则称u,v是连通的 (connected),记作uv。vV,规定vv。 由定义可知无向图中顶点之间的连通关系:
={<u,v>|u,vV∧u与v之间有通路} 显然是自反的、对称的、传递的,所以是V 上的等价关系。
5
Hale Waihona Puke 向图有三种不同类型的连通图 定义3.5(弱、单向、强连通图)
在一个有向图D中, 如果D的基图是连通图,则称D是弱连通图 (weakly connected graph )。 如 果 对 于 任 意 的 两 个 顶 点 u,v,u→v 与 v→u 至少成立其一 ,则称D是单向连通图(unilateral connected graph )。 如 果 对 于 任 意 的 两 个 顶 点 u,v, 均 有 uv, 则称D是强连通图(strongly connected graph )。 说明:强连通图一定是单向连通图,单向连 通图一定是弱连通图。
第五章 图论
5.4.5 通路的计数
定理2 G=(V, E),V={v1,v2…,vn},A是其邻接矩阵,A
r
(a )
a
(r) 是vi到vj长度为r的不同的通路的数目。 ij
(r) ij nn
证明:利用数学归纳法。 设G是带有相邻矩阵A的图(假设G的顶点具有顺序v1, v2, …, vn )。从vi 到vj 长度为1的通路数是A的第(i,j)项,这 是因为该项是从vi 到vj的边数。 假设Ar 的第(i,j)项是从vi到v的长度为r的不同通路的个数。 这是归纳假设。因为Ar+1= Ar A,所以Ar+1的第(i,j)项等于 bi1a1j + bi2a2j + … + binanj 其中bik 是Ar 的第(i, k)项。根据归纳假设,bik是从vi 到vk 的长度为r的通路数。 从vi 到vj的长度为r+1的通路,包括从vi到某个中间顶点vk 的 长度为r的通路以及从vk到vj的边。根据计数的乘法规则,这样 的通路的个数是从vi 到vk的长度为r的通路数(即bik)与从vk 到 vj 的边数(即akj)之积。当对所有可能的中间顶点vk 求这些乘 积之和时,根据计数的加a, d, c, f, e 是长度为4的简单通 路,因为{a,d},{d,c} ,{c,f}和{f,e}都是边。但 是d, e, c, a不是通路,因为{e, c}不是边。注意b, c, f, e, b是长度为4的回路,这是因为{b, c},{c, f},{f, e} 和{e, b}都是边,这条通路在b上开始和结束。长度为5 的通路a, b, e, d, a, b不是简单的,因为它两次包含边{a, b}。
基本通路是简单通路,反之不一定 基本回路是简单回路,反之不一定 起点和终点相同的简单通路是简单回路 起点和终点相同的基本通路是简单回路? 定义2 有向图中的通路 通路:边的序列,对相邻的两条边,前一条的终点是后一 条的起点 简单通路:没有边重复 基本通路:没有顶点重复 若不必区分多重边(如在简单图中),可用顶点的序 列表示通路 回路:起点和终点相同的通路 简单回路:没有边重复 基本回路:除起点和终点外,没有其他顶点重复 上述类似的性质在有向图中也有
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
小结
1 理解无向图的连通性、连通分支等概念;理解距离的概念和性质。 2深刻理解无向图的点连通度、边连通度等概念及其之间的关系,并能熟练地求出给 定 的较为简单的图的点连通度与边连通度。关于无向图的连通性的思维形式注记图如下:
u、v是关节点 充要条件
u 存在路
无向图
连通
所有结点
v
结点 连通图
边
删 删真子集
删 删真子集
子图不连通 子图连通
子图不连通 子图连通
点割集 点连通度 边割集 边连通度
ቤተ መጻሕፍቲ ባይዱ
定理11.2 对于任何无向图G=<V, E>,有(G)≤λ(G)≤(G)
证:(1)若G 不连通,则(G)=λ(G)=0,故上式成立。
(2)若G 连通, ① 证明λ(G)≤δ(G) 若G 是平凡图,则λ(G)=0≤δ(G),若G 是非平凡图,则因每一结点的所有关联边构成的集合必 包含一个边割集,故λ(G)≤δ(G)
根据上述定义可知,图(a)的割点分别为b, c, e,点割集 分别为{b}, {c}, {e}。图(b) 为边割集。
定义11.4
• 若G 无向连通图且不是完全图,定义(G)=min{|V’| |V’是G 的点割集}为G 的点连通度(或 连通度)。
• (G)是使G 不连通需要删去的最少的结点数。 • 规定:
• 短程线与距离 • u与v之间的短程线:uv,u与v之间长度最短的通路 • u与v之间的距离:d(u,v)——短程线的长度 • d(u,v)的性质: • d(u,v)0, u≁v时d(u,v)= • d(u,v)=d(v,u) • d(u,v)+d(v,w)d(u,w)
连通分支:
根据图G 中的一个结点v定义图G 的子图 如下:
第十一章 图的连通性
11. 2 无向图的连通性
定义11.2
在无向图G=<V, E>中, u,vV,若 u与 v之间存在通路,则称u,v是连通的。
结点u和v之间连通,用[u, v]表示(或uv 表示)。
规定: vV, [v, v].
若图G=<V, E>的任意两个结点皆是连通的,则G 称为连通图。否则称成G 为非 连通图或分离图。 无向图中顶点间的连通关系是V 上的等价关系,具有自反性、对称性 和传递性。
定义11.3
设无向图G=<V, E>为连通的,若有结点集V1 V,使得图G 删除了V1所有结点后,所得的子 图是不连通的,而删除了V1的任意真子集后,所得的子图仍然是连通图。则称集合V1为图G 的点割集。若某一结点就构成点割集,则称该结点为割点。
设无向图G=<V, E>为连通的,若有边集E1E,使得图G 删除了E1所有边后,所得的子图是不 连通的,而删除了E1的任意真子集后,所得的子图仍然是连通图。则称集合E1为图G 的边割 集。若某一边构成边割集,则称该边为割边(或桥)。G 的割边也就是G 中的一条边e使得 W(G−e)>W(G)。
• (Kn) = n-1 ; • G 非连通:(G)=0;
• 若(G) k,则称G 是k-连通图,k为非负整数。 • 与点连通度相似,我们定义非平凡图G 的边连通度为:λ(G)=min{{ |E’||E’是G 的边割集}。 • λ(G)是使G 不连通需要删去的最少的边数。 • 规定: G 非连通,(G)=0 • 若λ(G) r,则称G 是r边-连通图。
② 再证(G)≤λ(G) 设E’是边割集,|E’|=,从V(E’)中找出点割集V’,使得|V’|λ(G),所以(G)|V’|λ(G) 。 设λ(G)=1,即G 有一割边,显然此时(G)=1,上式成立。
设λ(G)≥2,则必可删去某λ(G)条边,使G 不连通,而删除λ(G)−1条边,它仍然连通,而且有 一条桥e=(u, v)。对λ(G)−1条边中每一条边都选取一个不同于u,v的端点,将这些端点删去必
=<V(v), E(v)> 其中V(v)={x|[v, x]为真};E(v)包含所有连接V(v)中结点的边。V(v)是V 关于顶点
之间的连通关系的一个等价类,称
为G 的一个连通分支。图G 中包含的连
通分支数记为W(G)。
设无向图G=<V, E>为连通的,若对于图G 中的两个结点x, y的任何通路,皆通过 结点a,则称结点a为结点x, y的关节点。
证:先证明必要性,再证明充分性。 1必要性:若结点v是G 的割点,则删去它后,必然有两个以上的连通分支。u和w 分别 在 不同的连通分支上取,显然v是结点u, w 的关节点。 2 充分性:若v是结点u, w 的关节点,则u到w 的每一条路都通过v,删除v后u到w 已不连 通,故v是图G 的割点。 证毕。
至少删去λ(G)−1条边。若这样产生的图是不连通的,则 (G)≤λ(G) −1≤λ(G),若这样产生的 图是连通的,则e=(u, v)仍然是桥,此时再删去u或v,就必产生一个不连通图,故 (G) ≤λ(G)。 根据①和②得: (G) ≤λ(G)≤δ(G) 。证毕。
定理11.3
(割点的充要条件) 一个连通无向图G=<V, E>的某一点v是图G 的割点,当且仅当它是某对结 点 u, w 的关节点。