侯越先, yxhou@tju ,25 楼 b-1223 室 一般性参考:...
DESCRIPTION
图论. 侯越先, [email protected] ,25 楼 B-1223 室 一般性参考: 《离散数学》,左孝凌等,上海科学技术出版社 《现代图论》英文版, Bollobas 等,科学出版社 《算法导论》英文版, Cormen 等,高教出版社 本 ppt 下载: acm.tju.edu.cn/lab/people/hyx.html. 1.图的基本概念. - PowerPoint PPT PresentationTRANSCRIPT
1
图论 侯越先, [email protected], 25楼 B-1223 室 一般性参考:《离散数学》,左孝凌等,上海科学技术出版社《现代图论》英文版, Bollobas 等,科学出版社《算法导论》英文版, Cormen 等,高教出版社 本 ppt 下载: acm.tju.edu.cn/lab/people/hyx.h
tml
2
1. 图的基本概念 引入:实体和实体之间的关系是现实世界的两个
基本要素。图论( Graph Theory, GT )有效地刻画了实体与实体之间的关系,是研究现实世界的有力数学工具,在算法理论、人工智能、软件理论和软件工程、计算机网络等计算机科学的不同分支中均有重要应用。
例子:聚会握手问题 例子:柯尼斯堡 7 桥问题
3
1 图的基本概念 定义 1 :一个图G 是一个序偶 <V(G),E(G)> ,其中 V(G) 是一个非空的结点( vertex )集合, E(G) 是边( edge )集合,且 E(G)V×V 。通常,可以将图G 简记为 <V,E>。
例: <{a,b, c,d } ,{<a,b><b, c><c,d><d, a>}> 注 : 1. 若边 ei 与结点的序偶 <vj,vk> 相关联,称该边为有向边。 2. 若边 ei 与结点的无序偶 (vj,vk) 相关联,称该边为无向边;若无需区别边的
方向,可以用 (vj,vk) 指代有向边或者无向边。 3. 邻接点:由一条边关联的两个结点。 4. 孤立结点:不与任何结点相邻接的点。 5. 零图:仅由孤立结点组成的图。 6. 平凡图:仅由一个孤立结点组成的图。 7. 邻接边:关联于同一结点的两条边。
4
1 图的基本概念 8. 环( loop):关联于同一结点的边,也称为自回路 9. 有向图、无向图和混合图:本课程只涉及有向图和无向
图 定义 2 :设 G=<V,E> 是一个图,则 |V| 称为 G 的阶
数( order), |E| 称为 G 的规模( size)。 定义 3 :在图 G= <V,E> 中,与结点 v (v ∈ V) 关联的
边数,称为该结点的度数( degree),记作 deg(v)。
5
1. 图的基本概念 注: 1 每个环在其对应的结点上增加两度。 2 记△ (G)=max{deg(v)|v∈V} δ(G)=min{deg(v)|v∈V} △(G)和 δ(G) 分别称为图 G 的最大度和最小度 定理 1 :每个图中,结点度数的总和等于边数的两倍。
定理 2 :在任何图中,度数为奇数的结点必定是偶数个。 定义 4 :在有向图中,射入一个结点的边数称为该结点
的入度,由一个结点射出的边数称为该结点的出度。结点的出度与入度的和就是该结点的度数。
Vv
Ev 2)deg(
6
1. 图的基本概念 定理 3 :在任何有向图中,所有结点的入度之和等于
出度之和。 定义 5 :连接同一对结点的边称为平行边( parallel
edge),含有平行边的图称为多重图(multigraph);不含有平行边和自回路的图称为简单图 (simple graph)。
定义 6 :简单图 G=<V,E> 中,若每一对结点间都有边相连,称该图为完全图( complete graph)。通常将有 n 个结点的无向完全图记作 Kn。
例子 定理 4: Kn 的边数为 n(n-1) /2
7
1. 图的基本概念 定义 7 :设图 G=<V,E> ,如果图 G’=<V’,E’>
满足 E’ E, V’ V ,则 G’ 称为 G 的子图( subgraph)
若 G’ 包含了 E 中所有连接了 V’ 中任意两个点的边,则 G’ 称为 V’ 的导出子图( induced subgraph)
若 V’=V ,则称 G’为 G 的一个生成子图( spanning subgraph)
例子
8
1. 图的基本概念 定义 10 :给定一个图 G ,由 G 中所有结点和所有能使
G 成为完全图的添加边组成的图,称为 G 相对于完全图的补图,简称 G 的补图,记作
问题: G 相对于完全图的补图是否可能是 G 的生成子图? 定义 11 :设 G’=<V’,E’>是G=<V,E> 的子图,若给
定另外一个图 G”=<V”,E”> 使得 E”=E-E’ ,且 V” 中仅包含 E” 的边所关联的结点。则称 G” 是子图 G’ 的相对于 G 的补图。
注:相对于完全图的补关系是对称的;相对于任意图 G的补关系则不是对称的。
例子
G
9
1. 图的基本概念 定义 12 :设图 G=<V,E> 及图 G’=<V’,E’> ,如
果存在双射 f: V→ V’ ,使得 e=(vi ,vj ) 是 G 的一条边,当且仅当 e’ = (f(vi), f(vj)) 是 G’ 的一条边,则称 G 与 G’ 同构,记作 G G’。
例子 图同构的必要条件:结点数相同;边数相同;度数
相同的结点数目相同。 问题:可否用代数系统之间的同构来表达图之间的
同构?反之呢?
10
1. 图的基本概念 定理 5 :设 G=<V,E> 是简单图, ,则 G
中必包含一个三角。 问题:定理 5 给出的边界是否是紧的? 为便于讨论图算法,给出算法复杂性的几个基本定义 定义 13 :对于给定的函数 g(n) ,定义如下的函数集合 O(g(n)):={f(n)|存在正常数 c和 n0 ,使得对于所有 n≥
n0, 0≤f(n) ≤cg(n)} ,称 g(n)为O(g(n)) 中任意函数f(n) 的渐近上界(注:一般要求 g(n)和 f(n) 定义于 N)
4
||,||2n
EnV
11
1. 图的基本概念 注:算法的时间复杂性,可通过计算开销对于输入长
度的函数的渐近上界来刻画 例子:给定图 G=<V,E> ,构造一个求△ (G) 的算
法,使其最坏时间复杂性的渐近上界为O(n+m) ,这里 n=|V| , m=|E| 。
定义 14 :如果一个算法的时间复杂性的渐近上界是输入长度的多项式函数,则称该算法是有效的,
思考题:尝试给出一个判定图同构的算法,说明该算法的在时空效率方面是否是有效的。
12
2. 路与回路 定义 1 :给定图 G=<V,E> ,设 v0,v1,…,vn ∈ V, e1,e2,…,en
∈ E ,其中 ei 是关联于结点 vi-1, vi 的边,交替序列 v0 e1 v1 e2
… en vn 称为结点 v0到 vn 的路 (walk)。 注: v0和 vn 分别称作路的起点和终点。 边的数目 n 称作路的长度。 当 v0 = vn时,这条路称作回路 (closed walk)。 若一条路中所有的边 e1,e2,…,en 均不相同,称作迹 (trail) 。起点和终点重合的迹称为闭迹 (closed trail or circuit) 。
若一条路中所有的结点 v0,v1,…,vn 均不相同,称作通路(path) 。闭的通路,即除 v0 = vn外,其余的结点均不相同的路,称作圈 (cycle)。
13
2. 路与回路 长度为 L的通路记为 PL
长度为 L的圈记为 CL, C3 称为三角, C4 称为四边形, C5 称为五边形…
简单图路中,路可以由其结点序列 v0v1…vn表示;结点数大于 1 的路也可由边序列 e1e2…en表示。
例子 定理 1 :无向图 G=<V,E> 的边集合 E 可以被划分
为一组圈,当且仅当V 中的任意结点 v的具有偶数度。 问题:定理 1 如何推广到有向图?
14
2. 路与回路 定理 2 :在一个具有 n 个结点的图中,若从结点 vj到结点 vk存
在一条路,则从 vj到 vk必存在一条不多于 n- 1 条边的通路。 定义 2 :无向图 G 中,结点 u和 v之间若存在一条路,则称结点 u 与结点 v是连通的 (connected)。
注:结点之间连通性是 G 的结点集 V 上的等价关系;由此等价性,可决定 V 上的一个划分 V1,V2 ,…, Vk,使得属于同一分块的结点之间互相连通,将这样的分块称为图 G 的一个连通分支(connected component) 。以W(G)表示图 G 的连通分支数
例子
15
2. 路与回路 定义 3 :若图 G 只有一个连通分支,则称 G 是连通图 在图中删除点 v ,即是把v以及与 v关联的边都删去; 在图中删除边 e ,仅需把该边删去。 定义 4 :设无向图 G=<V,E> 为连通图,若有点集 V1V, 使图 G删除了 V1 的所有结点后,所得的子图不是连通图,而删除了 V1 的任何真子集后,所得的子图仍是连通图,则称 V1是 G 的一个点割集。若某一结点构成点割集,则称其为割点 (cut vertex)。
问题:一个图是否可能有多个点割集? 注:若 G 不是完全图,定义 k(G)=min{|V1|| V1是 G 的点割集 }为 G
的点连通度。 k(G) 是为了产生一个不连通图需要删去的最少结点数。 不连通图或平凡图的点连通度约定为 0 ,存在割点的图的点连通度为 1 。
16
2. 路与回路 完全图 Kp 中,删去任何 m 个 (m<p-1) 点后仍是连通图,但
是删去个 p-1 个点后产生了一个平凡图,故定义 k(Kp)为 p-1 定义 5 :设无向图 G=<V,E> 为连通图,若有边集 E1E,
使图 G 删除了 E1 的所有边后,所得的子图是不连通图,而删除了 E1 的任一真子集后,所得的子图是连通图,则称 E1是 G的一个边割集。若某一个边构成边割集,则称该边为割边(或桥 bridge)。
问题:一个图是否可能有多个边割集? 注:非平凡图 G 的边连通度定义为: λ(G)=min{|E1|| E1是
G 的边割集 }。 λ(G) 是为了产生一个不连通图需要删去的最少边数。
对平凡图 G 或一个不连通图 G ,定义其 λ(G) 为 0 问题: λ(Kp)=?
17
2. 路与回路 定理 3 :若 W(G)=n ,在 G 中删除一边获得 G’ ,则W(G’)
≤ n+1 定理 4 :对于任何一个图 G ,有 k(G) ≤λ(G) ≤ δ(G) 定理 5 :一个连通无向图 G 中的结点 v 是割点存在两个结点 u和w ,使得结点 u和w的每一条路都通过 v。 定义 6 :若 u 可达 v ,它们之间所有路中,最短路的长度称
为结点 u和 v 之间的距离,记作 d<u,v> ,若从 u到 v 不可达, d<u,v>=∞。称 D=max{d<u,v>|u,v∈V} 为图G=<V,E> 的直径
注: d<u,v> ≥ 0, d<u,u>= 0 d<u,v> + d<v,w> ≥ d<u,w>
18
2. 路与回路 对于无向图, d(u,v)=d(v,u) 定义 7 :在简单有向图 G 中,任一对结点间,至少
有一个结点到另一个结点是可达的,则称这个图是单侧连通的。若对于图 G 中任一对结点两者之间是相互可达的,则称这个图是强连通的。若在图 G 中略去边的方向,将它看成无向图后,图是连通的,则称该图为弱连通的。
例子 注:若图 G 是强连通的,则必是单侧连通的; 若图 G 是单侧连通的,则必是弱连通的。 以上两命题,其逆不真。
19
2. 路与回路 定理 6 :一个有向图是强连通的当且仅当 G 中有一个
回路,它至少包含每个结点一次。 定义 7 :在简单有向图中,具有强连通性质的极大子图
称为强分图;具有单侧连通性质的极大子图称为单侧分图;具有弱连通性质的极大子图称为弱分图。
问题:简单有向图是否可能有多个强(弱、单侧)分图? 定理 7 :在有向图 G=<V,E> 中,它的每一结点位于
且只位于一个强分图中。
20
2. 路与回路 定理 8 :若无向图 G 恰有两个奇数度结点,则此两点间必有一条路
定义 8 :如果图 G=<V,E> 的结点集合 V 可划分为两个非空集合 V1 、 V2 的并,使得任意e∈E 均连接了分处 V1和 V2 中的两个结点,则称其两分图( bipartite graph)。
例子 定理 9 :简单图 G=<V,E> 是两分图 iff 不包
含任何奇圈。
21
3. 图的矩阵表示 定义 1 :设 G=<V,E> 是一个简单图,它有 n 个结点
V={v1,v2,…vn} ,定义 n 阶方阵 A(G)=(aij)为 G 的邻接矩阵: 若 G 是无向图, aij=1, iff vi adj vj,aij=0, if vi nadj
vj 或 i=j ,这里 adj表示邻接, nadj表示不邻接。 若 G 是有向图, aij=1 iff <vi , vj>∈E 注:如无特别说明,只考虑简单图的邻接矩阵。 无向图 G 的邻接矩阵 A(G) 是对称的;有向图的邻接矩阵则
一般不对称。 对于有向图,邻接矩阵第 i 行的元素和等于结点 vi 的出度;第 j列的元素和等于结点 vj 的入度。
22
3. 图的矩阵表示 例子 定义 2 :将 n 阶方阵A 的列作一置换,再将相应的行
作同样的置换,得到一个新的 n 阶方阵 A’ ,则称 A’与A 置换等价。
注:任意置换可分解为一组初等置换的复合;任意置换矩阵可表示为一组初等置换矩阵的乘积。所以任意置换可由置换矩阵表示
置换等价是 n 阶布尔矩阵集合上的等价关系。 图的结点按不同次序所写出的邻接矩阵是彼此置换
等价的,可取图的任一邻接矩阵作为该图的矩阵表示
23
3. 图的矩阵表示 可由图的邻接矩阵求得图上点与点之间路的数目:设有向图 G 的结点集合 V={v1,v2,…vn} ,它的邻接矩阵为A(G)=(aij)n×n ,则从结点 vi到结点 vj 的长度为 2 的路的数目为:
ai1a1j+ ai2a2j+…+ ainanj=∑kaikakj
这恰好等于矩阵 (A(G))2 中第 i 行,第 j列的元素。 以 表示。 类似地,从 vi到 vj长度为 3 的路可以看做由 vi到 vk的长
度为 1 的路,再联结由 vk到 vj长度为 2 的路所形成的,即: 。上述结论可以推广到任意长度为 n 的路
)2(ija
k kjikij aaa )2()3(
24
3. 图的矩阵表示 定理 1 :设 A(G) 是图 G 的邻接矩阵,则 (A(G))l 中的 i行 j列元素等于 G 中联结 vi与 vj 的长度为 l 的路的数目。
问题: (A(G))l的 i行 j列元素所表示的是路的数目还是通路的数目?
定义 3 :设G=<V,E> 是一个简单图,它有 n 个结点V={v1,v2,…vn} ,定义 n 阶方阵 P(G)=(pij) ,其中,
pij = 1 从 vi到 vj至少存在一条路 = 0 从 vi到 vj 不存在任何路 称矩阵P是图 G 的可达性矩阵 注:无向图的可达性矩阵是对称的,有向图的可达性矩阵则一般不对称。
25
3. 图的矩阵表示 可由图 G 的邻接矩阵A 得到可达矩阵 P ,即令 P=A+A2+…+An-1, 再将 P中不为 0 的元素改换为 1 ,即得可达矩阵
P (或者,在计算 P和 Ai时可采用布尔运算规则)。
若把邻接矩阵看作点集 V 上关系 R的关系矩阵,则求可达矩阵即为求R的传递闭包,可用 Floyd-Warshall 算法求解
问题:利用 Floyd 算法的思想,构造一个求解权重图最短路径长度的算法,并说明算法复杂性
26
3. 图的矩阵表示 问题:求解可达性矩阵或传递闭包的算法是否可能进一步优化? 动态规划 (dynamic programming) 的基本原则 对于特定问题,可否应用动态规划? 1 动态规划能否求解特定问题? 2 动态规划能否有效求解特定问题? 例子: Viterbi、 SAT 思考题: 2-SAT 是否存在有效解法? Aspvall, Bengt; Plass, Michael etc. (1979), "A linear-time
algorithm for testing the truth of certain quantified boolean formulas", Information Processing Letters 8 (3): 121–123
27
3. 图的矩阵表示 定义 4 :给定简单无向图, G=<V,E>, |V|
=n ,定义 n×n矩阵 L(G)=(lij), 其中 - 1 若在 G 中 (vi, vj)是 G 的边 lij = deg(vi ) i=j 0 其他 称 L(G) 为无向图 G 的拉普拉斯矩阵 (Laplacian)。 例子 注: Laplacian矩阵必有一个特征值为 0 Laplacian矩阵半正定
28
3. 图的矩阵表示 引理:简单无向图 G 与 H同构,当且仅当存在置换矩阵 P使得 L(G)=PL(H)PT ,这里置换矩阵P是初等置换矩阵的乘积
注:类似可证简单无向图 G 与 H同构 iff存在置换矩阵P使得 A(G)=PA(H)PT
定理 2 :简单无向图 G 与 H同构的必要条件是 L(G)与L(H) 具有完全相同的特征值
注:类似可证简单无向图 G 与 H同构的必要条件是A(G)与 A(H) 具有完全相同的特征值
定理 3 :若 G 与 H同构,设 ui和 vi 分别是无向图 A(G)和 A(H) 的第 i 个最小特征值 λi 所对应的特征向量, λi 孤立且 ui和 vi 同模,则存在置换 π,使得 ui(j)=vi(π(j))
29
应用例子: Laplacian Eigenmap
背景:流形学习(信息抽象) 科学理论是对经验数据的约简和压缩描述。 “Physics is experience, arranged in
economical order” (物理学是以思维经济的原则组织经验材料 )
Ernst Mach
31
应用例子: Laplacian Eigenmap
例子:牛顿万有引力的发现 观测量:行星绕太阳运行的周期 T 行星距太阳的距离 r(t), t=1,2,…,T 行星的角速度 ω(t), t=1,2,…,T (以上观测量总结为经验规律:开普勒三定律) 每个行星需要 2T+1 个观测量加以描述 牛顿发现这 2T+ 1 个观测量由更少的隐变量所决定
32
应用例子: Laplacian Eigenmap
由 F(t)=km/r(t)2 ,有 r(t)=(km/F(t))^(1/2), t=1,2,…,T ω(t)=(F(t)/mr(t)) ^(1/2), t=1,2,
…,T T=2π/ ω , ω是ω(t) 的均值 即有
r(t) km / F f (F(t),m)
(t) F / mr(t) g(F(t),m)
T 2 / h(F(t),m)
33
应用例子: Laplacian Eigenmap
原理:给定 D 维空间中 n 个点,假定已经建立了相应的图表示 G = <V, E> 。
首先考虑将这 n 个映射到一条直线之上,使得在 G 中相邻的点尽可能地靠近,因此我们希望最小化
这里 yi 是第 i 个样本点在直线上的嵌入。 记 注意到对于任意的 y 有
34
应用例子: Laplacian Eigenmap
原理(续) 由此,最小化问题可归约为 这里的约束 是为了去除任意的尺度缩放
这样,一般化特征值问题 的次小特征值所对应的特征向量,即为所求
由于 1 是特征值 0 所对应的特征向量,所以问题可更精确地表述为
35
应用例子: Laplacian Eigenmap
原理(续) 更一般地,由 RD到 Rd 的嵌入由 n×d矩阵 Y = [y1, y2, …, yd]
给出,其每一行对应一个样本点的 d维嵌入。 这里 y1, y2, …, yd 分别是除 0 之外最小 d 个特征值所对应的满足约束的特征向量 更形式地,问题需最小化 即求解 ,且 yi正交于 1
36
应用例子: Laplacian Eigenmap
参考: 1 Laplacian Eigenmaps and Spectral
Techniques for Embedding and Clustering
2 Nonlinear Dimensionality Reduction by Locally Linear Inlaying
37
3. 图的矩阵表示 定义 5 :给定无向图 G, v1,v2,…,vp和 e1,e2,…,eq分别是
G 的结点和边,定义矩阵M(G)=(mij), 其中 mij = 1 若 vi 关联 ej
0 若 vi 不关联 ej 称M(G) 为无向图 G 的完全关联矩阵。需注意的是 : 无向图
的关联矩阵不考虑自回路,若有自回路则删去 例子 注:图中每一边关联两个结点,故M(G) 的每一列中只有两
个 1 。 每一行中元素和是对应结点的度数。 一行中元素全为 0 ,其对应的结点为孤立结点。
38
3. 图的矩阵表示 两个平行边对应的两列相同。 同一个图当结点或边的编序不同时,其对应的 M(G) 仅有行序
或列序的差别。 定义 6 :给定有向图, G=<V,E>,V={v1,v2,
…,vp }, E={e1,e2,…,eq } ,定义 p×q阶矩阵M(G)=(mij), 其中
1 若在 G中 vi是 ej 的起点 mij = - 1 若在 G中 vi是 ej 的终点 0 若 vi与 ej 不关联 称M(G) 为有向图 G 的完全关联矩阵。需注意的是 : 有向图的关
联矩阵不考虑自回路,若有自回路则删去
39
3. 图的矩阵表示 完全关联矩阵M(G) 中,若记 vi 对应的行是 ,
则可如下定义第 i 行与第 j 行的相加:对有向图,第 i 行与第 j 行的相加是指对应分量的普通加法运算;对无向图是指对应分量的模 2 加法运算。有向图和无向图的行相加均记为 ,其意义是将 G 的结点 vi与 vj 合并。
例子ijji vvv
iv
40
3. 图的矩阵表示 定理 4 :若一个无向连通图 G 有 r个结
点,则其完全关联矩阵M(G) 的秩为 r-1 ,即 rank M(G) = r- 1 (这里的秩计算是在完全关联矩阵加法和乘法意义下的) 。
推论:设无向图 G 有 r个结点, w个连通分支,则图 G 完全关联矩阵的秩为 r-w。
41
4. 欧拉图与汉密尔顿图 定义 1 :给定无孤立结点图 G ,若存在一条路,经过图中
每边一次且仅一次,该条路称为欧拉路( Euler trail);若存在一条回路,经过图中每边一次且仅一次,该回路称为欧拉回路( Euler circuits ) 。
注:欧拉路和欧拉回路分别是迹和闭迹 具有欧拉回路的图称为欧拉图。 定理 1 :无向图 G 具有一条欧拉路 iff G 是连通的,且有零个或两个奇数度结点。 推论:无向图 G 具有一条欧拉回路 iff G 是连通的,且所有结点度数均为偶数。
42
4. 欧拉图与汉密尔顿图 定义 2 :给定有向图 G ,通过图中每边一次且仅一次的一条单向路(回路),称为单向欧拉路(回路)。
定理 2 : 1 )有向图 G 具有一条单向欧拉回路 iff G 是连通的,且每个结点入度等于出度。
2 )一个有向图 G 具有单向欧拉路 iff G 是连通的,且除两个结点外,每个结点入度等
于出度,但这两个结点中,一个结点的入度比出度大 1 ,另一个结点的入度比出度小 1 。
43
4. 欧拉图与汉密尔顿图 定义 3 :给定图 G ,若存在一条路或回路,经过图中每
个结点恰好一次,称这条路为汉密尔顿路( Hamilton paths )或汉密尔顿回路( Hamilton cycles)。
注:汉密尔顿路和汉密尔顿回路分别是通路和圈 具有汉密尔顿回路的图称为汉密尔顿图。 定理 3 :若图 G=<V,E> 具有汉密尔顿回路,则对于结
点集 V 的每个非空子集 S均有 W(G- S) ≤|S| 成立。其中 W(G- S)是G- S中连通分支数。
定理 4 :设 G 是具有 n 个结点的简单图,若 G 中每一对结点度数之和大于等于 n- 1 ,则在 G 中存在一条汉密尔顿路(充分条件)。
44
4. 欧拉图与汉密尔顿图 定理 5 :设 G 是具有 n 个结点的简单图,若 G 中每一对结
点度数之和大于等于 n ,则在 G 中存在一条汉密尔顿回路。 例子:在 7天安排 7门课的考试,要求由同一教师担任的
课程不在连续的两天中考试。求证若没有教师担任 4门以上课程,则可做出符合要求的考试安排
定义 4 :给定图 G=<V,E>有 n 个结点,若将图 G 中度数之和至少是 n 的非邻接结点连接起来得图 G’, 对图 G’ 重复上述步骤,直到不再有这样的结点对存在为止,所得到的图,称为原图 G 的闭包,记作 C(G)。
例子
45
4. 欧拉图与汉密尔顿图 定理 6 :当且仅当一个简单图的闭包是汉密尔顿图时,这个简单图是汉密尔顿图。
给定任意图 G ,不存在有效的算法判定其中是否有汉密尔顿路或回路(假设 P不等于 NP);事实上,汉密尔顿路或回路的存在性判定是 NP 完全问题
以标记法判定汉密尔顿路的存在性: 相邻点分别采用不同标记 若两个相邻点的标记相同,则在其间插入采用不同标记
的新点(例子: p310 图 7-4.13 ) 问题:上述方法是否可以作为判定汉密尔顿路存在性的充要判据?
46
5. 平面图 定义 1 :设 G=<V,E> 是一个无向图,若能够把 G 的
所有结点和边画在平面上,且使得任何两条边除了端点外没有其他的交点,则称 G 为平面图 (planar graph) 。
注:某些表面上有边相交的图实际上是平面图;某些图无论如何改画都存在相交的边,这类图不是平面图
定义 2 :设 G 是一连通的平面图,由图中的边所围成的区域,在区域内既不包含图的结点,也不包含边,这样的区域称为 G 的一个面 (face) ;包围该面的诸边所构成的图形称为这个面的边界。
注:本课程只对连通平面图讨论面
47
5. 平面图 例子( p313 图 7-5.3 ) 注: 两个点属于同一个面的充要条件是这两
个点之间可由一条连续曲线相连,且此曲线不经过图的任何点或边。
面的边界是回路( Closed Walk) 构成面 r边界的回路长度称作该面的次数,记 deg(r) 。
对于只是一个面 r的边界的边,计算 r的次数时应两次计算此边
48
5. 平面图 定理 1 :一个有限(连通)平面图,面的次数之和等于其边
数的两倍。(例子: p313 图 7-5.3 ) 定理 2 (图论欧拉定理):设有一个连通的平面图 G ,共有v个结点, e 条边和 r个面,则欧拉公式 v- e+ r = 2 成立。
定理 2*(拓扑欧拉定理):设凸多面体有 v个结点, e 条棱和 r个面,则 v- e+ r= 2 成立(证明作为思考题)。
注:定理 2*的结论可扩展到满足下列条件的多面体 P 1 ) P的任何两个顶点可以用一串棱相连 且 2 ) P表面上的任何直线段构成的圈将 P的表面分成不
连通的两部分
49
5. 平面图 平面图与凸多面体的关系? 任何凸多面体决定了一个画于平面上的 3-连通简单
平面图表示;反之,任何 3-连通简单平面图决定了一个凸多面体。 Duijvestijn, A. J. W. and Federico, P. J. "The Number of Polyhedral (-Connected Planar) Graphs." Math. Comput. 37, 523-532, 1981
注:点连通度大于等于 3 的图称为 3-连通图 定理 3 :设 G 是一个有 v 个结点, e 条边的连通简单
平面图,若 v≥3 ,则 e≤3v- 6。
50
5. 平面图 注:此定理的条件是必要条件 例子:求证 K5和 K3,3 不是平面图 定义:图的围长( girth )定义为其最短圈的长度。若图中无圈,约定其围长为无穷大
定理 4 :设 G 是有 v≥3 个结点, e 条边的连通简单平面图,若 G 的围长为 g ,则 e≤max{ (n-2)*g/(g-2),n-1}
平面图的判定问题:在给定图 G 的边上,插入一个新的度数为 2 的结点,使一条边分成两条边,或者对于关联于一个度数为 2 的结点的两条边,去掉这个结点,使两条边化成一条边,都不会影响图的平面性。
定义 3 :给定两个图 G1和 G2 ,若它们是同构的,或者在反复插入或除去若干 2 度结点后同构,则称 G1和 G2 是在 2 度结点内同构的。
51
5. 平面图 定理 4( Kuratowski ):一个图是平面图
iff 它不包含与 K3,3或 K5 在 2 度结点内同构的子图。
注: K3,3或 K5 常称作库拉托夫斯基图。 思考题:尝试给出一个判定平面图的算法。你给出的算法是有效的吗?
(线索: Hopcroft & Tarjan 1974)
52
6 对偶图与着色 引入:资源任务分配问题 地图着色问题,四色问题 定义 1 :给定平面图 G=<V,E> ,它具有面 F1 ,F2,…Fn ,
若有图 G*=<V*,E*> 满足:a) 对于图 G 的任一面 Fi ,内部有且仅有一个结点 vi*∈V*。b) 对于图 G 的面 Fi ,Fj 的公共边界 ek ,存在且仅存在一条边
ek* ∈ E* ,使 ek* =(vi* , vj* ) ,且 ek*与 ek相交。c)当且仅当 ek只是一个面 Fi 的边界时, vi*上存在且仅存在
一个环 ek*和 ek相交。则称图 G* 是图 G 的对偶图。
53
6 对偶图与着色 注:定义 1 中的“相交”,均指相交于一点; 对偶图的任一边与且仅与原图中的一条边相交 例子 注:若 G* 是连通平面图 G 的对偶图,则 G 是G* 的对偶
图 一个连通平面图 G 的对偶图 G* 也是平面图 定义 2 :如果图 G 的对偶图 G* 同构于 G ,则称 G 是自对
偶图。 例子
54
6 对偶图与着色 注: 1. 对于地图的着色问题可以归结为对其对偶图的
结点的着色问题;四色问题可以归结为证明:一定可以用四种颜色,对地图的对偶图进行结点着色,使得邻接的结点都有不同的颜色。
2. 如果图 G 在着色时用了 n种颜色,称 G 为 n-色图。 3. 对于图 G 着色时,需要的最少颜色数称为 G 的着色
数,记作 x(G)。 不存在有效算法一般地判定图是否是 n-色的 (n≥
3), 有一些图着色的启发,例如:
55
6 对偶图与着色 Welch Powell启发 a) 将图 G 中的结点按照度数的递减次序进行排列。(排列
可能不是唯一的,因为可能序某些点度数相同) b) i:=1 c) 用第 i种颜色对当前度数最大的未着色点着色;并按排列次序,对所有与目前已被颜色 i着色的点不邻接的点着上颜色 i。
d) 若 V 中仍有未着色的点 then i:=i+1 ,返回 c); else 结束
56
6 对偶图与着色 定理 1 :对于任意图 G, Powell启发最多使用 Δ(G)+ 1 种颜色,即可完成着色
问题:上述启发的时间复杂性? 此启发与“不存在有效算法判定图是否是 n-色的” 矛盾吗?
问题: Powell启发为什么按照结点度数递减的次序着色?
定理 2 :对于 n 个结点的完全图 Kn ,有 x(Kn)=n。 定理 3 :设 G 为一个至少具有三个结点的简单连通平面图,则 G 中必有一个结点 u ,使得 deg(u) ≤ 5。
57
6 对偶图与着色 定理 4 :任意简单平面图 G 最多是 5- 色的。 问题:定理 4 能否推广到任意平面图? 注:无飞地的四色地图问题于 1976年被证明(阿佩尔 &黑肯)
思考题:是否存在有效算法判定任意图能否被两种颜色正常着色?
练习:证明任意 6 个人中,总有 3 个人互相认识,或 3 个人互相不认识。
58
7. 树与生成树 定义 1 :一个连通且无回路的无向图称为树。树中度数为 1 的结
点称为树叶,度数大于 1 的结点称为分枝点或内点。一个无回路的无向图称作森林,它的每个连通分支是树。
定理 1 :定理 1 :给定图 G ,以下关于树的定义是等价的。 1) 无回路的连通图。 2) 无回路且 e= v- 1 ,其中 e 是边数, v是结点数。 3) 连通且 e= v- 1。 4) 无回路,但增加一条新边,得到一个且只有一个回路。 5) 连通,但删去任一边后便不连通。 6) 每一对结点之间有一条且仅有一条路。 注:定义 1 和定理 1 中的“回路”指“圈”
59
7. 树与生成树 例子 定理 2 :任一棵树中至少有两片树叶。 定义 2 :若图 G 的生成子图是一棵树,则称该树为生
成树。 注: 1) 设图 G 有一棵生成树 T ,则 T中的边称作树枝。 2) 图 G 中不在生成树中的边称作弦。 3) 所有弦的集合称作生成树T的补。 例子 注:图的生成树一般不唯一 定理 3 :连通图至少有一棵生成树。
60
7. 树与生成树 设 G 为一个有 n 个结点和 m 条边的连通图,则 G 的生
成树正好有 n- 1 条边。因此要确定 G 的一棵生成树,必须删去 G 的m-(n-1)=m-n+1 条边,将 m-n+1 称为连通图 G 的秩。
连通图 G 的生成树的构造算法 1) 从 V 中任取一点 x ,依据V 中各点与 x 的最短距离,将V 划分为 V0,V1,V2,… ,其中 Vi 中的点与 x 的距离为 i
2) 对于 Vi,i>0 中任意一点 y ,在 G 中必与 Vi- 1 中的某些点相邻,将某一个这样的点 z与 y 相连。
3) 重复上步,直到每个 Vi,i>0 中的点均与某一 Vi- 1,i>0中的点相连,以此获得的生成图即为图 G 的生成树
61
7. 树与生成树 问题:上述算法的时间复杂性? 例子: Dijkstra 算法的求解结果中所包含的边是连通
图的一个生成树 定理 4: G 的任一条回路和 G 的任何一棵生成树的补至少有一条公共边。
定理 5 :任一边割集和任何生成树至少有一条公共边。 设 G 是具有 n 个结点的连通图。对应于 G 的每一条边
e ,指定一个正数 C(e) ,称为边 e 的权。 G 的生成树T也有一个树权,它是 T的所有边权的和。
62
7. 树与生成树 定义 3 :在图 G 的所有生成树中,树权最小的那棵生
成树,称作最小生成树。 定理 6 :设图 G 有 n 个结点,以下算法( Kruskal
算法)产生的是最小生成树。 a) 选取最小权边 e1 ,置边数 i:=1; b) 若 i = n-1 结束,否则转 c); c) 设已选择边为 e1, e2,… ei ,在 G 中选取不同于 e1,
e2,… ei 的边 ei+1 ,使 {e1, e2,… ei, ei+1}中无回路且ei+1 是满足此条件的最小边(若有多条边满足此条件,则选择其中任意一条)。
d) i:= i + 1 ,转 b) 。
63
7. 树与生成树 例子 贪婪原则 算法二 1) 将 G 所有的边依照权重的降序排列 2) i:=1 3) 若删除边 ei 不会导致 G 不连通,则删除之 4) 若当前剩余的边形成一个树,则算法结束 否则 i:=i+1 ;返回 3) 定理 7 :算法二产生的结果是 G 的最小生成树
64
7. 树与生成树 例子:连通图 G 的结点集合由黑白两色结点构
成,是否存在有效算法,使用数目最少的白色结点,使得所有黑色结点之间互相可达?
回答:不存在(除非 P=NP ),实际上该问题是 NPC 的,因为 NP 完全问题最小 Steiner树的求解可多项式地归约为该问题的求解。
最小 Steiner树问题:给定图 G = < V, E> 和V 的子集 R , E 中的每条边 e 有正整数边权w(e) ,求解包含 R 中所有结点的最小权重子树。
思考题:给出归约的过程
65
8. 根树及其应用 定义 1 :如果一个有向图在不考虑边的方向时是一棵树,则称其为有向树。
定义 2 :一棵有向树,若恰有一个结点的入度为 0 ,其余所有结点的入度都为 1 ,则称为根树。根树中,入度为 0 的结点称为根,出度为 0 的结点称为叶,出度不为 0 的结点称为分枝点或内点。
例子 注:在根树中,任意结点 v 的层次,就是从根到该结
点的单向通路长度。 根树可有不同的画法
66
8. 根树及其应用 从根树的结构中可以看到,树中每一个结点都可以看作是原来树
中的某一棵子树的根,由此,根树可递归定义 定义 3 :根树包含一个或多个结点,其中有唯一满足如下两个条
件的结点称为根 1 )根的入度为 0 2 )根到所有结点是可达的 树根之外的结点被分成树根的出度个子根树。 注: 1. 这个定义把 n 个结点的根树用结点数少于 n 的根树来定
义,最后归约为一组只包含一个结点的根树,它们就是原来那棵树的叶。
2. 若指明根树中的结点或边的次序,则称其为有序树。 3. 结点之间的关系称谓
67
8. 根树及其应用 定义 4 :在根树中,若每一个结点的出度小
于或等于 m ,则称这棵树为 m叉树。若每一个结点的出度恰好等于 m 或 0 ,则称这棵树为完全 m叉树,若其所有树叶层次相同,称为正则 m叉树。当m= 2 时,称为二叉树。
例子 以完全 m叉树表示实际问题( p330 图 7-8.
4 )
68
8. 根树及其应用 有序树与二叉树由下述改画方法可建立一一对应。1) 除了最左边的分枝点外,删去从每一个结点长出的所有分枝。在同一层次中,兄弟结点之间用从左到右的有向边连接。
2)选定二叉树的左子和右子如下:直接处于给定结点下面的结点,作为左子,对于同一水平线上与给定结点右邻的结点,作为右子,以此类推。
问题:为什么要将一般的有序树改画为二叉树? 给定某有序树的二叉树表示,如何访问树中 某结点的第三子(如果存在)? 注:上述方法可推广到有向森林的改画
69
8. 根树及其应用 定理 1 :设有完全 m叉树,其树叶数为 l ,分枝点数为
i ,则 (m- 1)i= l- 1。 推论:存在 l 个树叶的完全 m叉树,当且仅当 i=(l-
1)/(m- 1) 是正整数。 例子: 28 个电灯,用四插座接线板级联,需几个接线板?
问题:给定 l和m ,完全 m叉树是否唯一? 定义 5 :在根树中,一个结点的通路长度,就是从树根到此结点的通路中的边数。分枝点的通路长度称为内部通路长度,树叶的通路长度称为外部通路长度。
70
8. 根树及其应用 定理 2 :若完全二叉树有 n 个分枝点,且内部
通路长度的总和为 I ,外部通路长度的总和为E ,则: E=I+2n
问题:对于完全 m叉树,是否有 E=I+mn ? 给定一组权w1,w2,…, wt ,设w1≤w2 ≤ … ≤
wt 。设有一棵二叉树,共有 t片树叶,分别带权w1, w2,…, wt ,该二叉树称为带权二叉树。
71
8. 根树及其应用 定义 6 :在带权二叉树中,若带权为 wi 的树叶,其
通路长度为 L(wi) ,我们把w(T)=∑ ti=1wiL(wi) ,
称为该带权二叉树的权。在所有带权w1, w2,… , wt
的二叉树中, w(T) 最小的那棵树,称为最优树。 最优树的应用例子:压缩编码 注:最优树必是完全的 定理 3 :设 T为带权w1 ≤w2 ≤…≤wt 的最优树,则:
a) 以树叶 vw1,vw2 为子的分枝点,其通路长度最长。
b)带权的 w1, w2树叶 vw1,vw2 是兄弟。
72
定理 4 :设 T为带权w1 ≤w2 ≤…≤wt 的最优树,若将以带权w1和w2 的树叶为儿子的分枝点改为带权w1+w2 的树叶,得到一棵新树T’,则 T’也是最优树。
根据定理 3 和定理 4 ,要画一棵带有 t 个权的最优树,可简化为画一棵带有 t-1 个权的最优树,而这又可简化为画一棵带有 t-2 个权的最优树,依此类推。具体做法:首先找出两个最小的权值,设为 w1和w2 ,然后对 t-1个权w1+w2,w3,… ,wt求作一棵最优树,并将这棵最优树的结点
代之以 w1+w
2 w1 w2
8. 根树及其应用
73
8. 根树及其应用 二叉树的另一个应用-前缀码问题 定义 7 :给定一个序列的集合,若没有一个
序列是另一个序列的前缀,该序列集合称为前缀码。
定理 5 :任意一棵二叉树的树叶可对应一个前缀码。
定理 6 :任何一个前缀码都对应一棵二叉树。 注:如果给定前缀码对应的二叉树是完全二叉树,则给定任意 bit 序列,均可对其译码。
74
9. 有向图的流理论 问题引入:电网的传输能力问题 交通网的运输能力问题 定义 1 :给定有向连通图 G=<V,E>, f是定义于 E
之上的非负函数,若除了 V 中两个特殊结点之外, f在其余每个结点之上均满足 Kirchhoff 条件:
∑ yf(x,y) = ∑ z f(z,x) y∈K+ (x) z∈K-(x) 其中 K+ (x)={y|y∈V,<x,y>∈E}, K-(x)={y|y∈V,<y,x>∈E}, f(x,y)表示 f(<x,y>) 的值 则称 f是 G 上的流 (flow)
75
9. 有向图的流理论 注:若 <x,y> 不属于 E ,则 f(x,y)= 0 易证两个特殊结点中,一个结点的流出量大于等于流
入量,记该点为 s ;另一个结点的总流入量大于等于总流出量,记该点为 t 。由此 f通常称为从 s到 t 的流。
流出 s的总流量等于流入 t 的总流量,即有 ∑ f(s,y) - ∑ f(y,s) = ∑ f(y,t) - ∑ f(t,y) y∈K+ (s) y∈K-(s) y∈K-(t) y∈K+ (t) 记 s的总流出量(或 t 的总流入量)为 v(f) ,称为流 f的值
例子 网络的最大流问题在给定 G 的各边容量限制的情况下求从 f到 t 的流 f的最大值
76
9. 有向图的流理论 定义 2 :给定有向连通图 G=<V,E> ,容量 c 是定
义于 E 之上的非负函数, c 规定了流过各边的流量上界,称为容量 (capacity)
注:以 c(x,y)表示 c(<x,y>) 的值 若 <x,y> 不属于 E ,则约定 c(x,y)= 0 定义 3 :给定有向连通图 G=<V,E> ,若 S是 V 的
子集,且 s属于 S, t 不属于 S ,则 E(S,~ S)={<x,y>∈E|x∈S, y∈~ S} 称为 E 的截 (cut) 例子
77
9. 有向图的流理论 注:若删除一个截中的所有边,则不会有从 s到 t 的正值流存在;反之,若 F是 E 的某个子集,且删除 F后不存在从 s到 t 的正值流,则 F必包含某个截
定义截 E(S,~ S) 的容量为: c(S,~ S) =∑ c(x,y), <x,y>∈E(S,~ S) 显然,任何截的容量至少不应小于最大流的值 定理 1 (最大流最小截定理):从 s到 t 的最大流等
于最小截的容量
78
9. 有向图的流理论 证明概要:假设最大流 v(f) 有限,如下定义集合 S: 1 ) 令 s属于 S 2 ) 若 x 属于 S,且 c(x,y)>f(x,y) or f(y,x)>0 则加 y 加入 S 3 ) 重复上步,直到 V 中没有元素可添加 显然, t 不属于 S,即 E(S,~ S)是 V 的一个截。否则必存在
s=x0,x1,…,xk=t ,使得对 0<=i<=k-1 , di=max{c(xi, xi+1)-f(xi, xi+1),f(xi+1, xi)}>0 ,令 d=minidi ,
则流的值可以增加到 v(f)+d ,矛盾。 由此流 f在截 E(S,~ S) 上的值可以由如下公式获得: ∑ f(x,y) - ∑ f(y,x) = c(S,~ S) x∈S, y∈~ S x∈S, y∈~ S
79
9. 有向图的流理论 最大流构造算法(假设各边的容量是整数) 1) i:=0 2) fi(x,y)=0 ,任意 <x,y>属于 E
3) 由定理 1 证明中的过程,构造 Si
4) 若 t属于 Si , 则利用定理 1 证明的过程,获得新流 fi+1=fi+n, n 是一个正整数; i:=i+1 ;更新 fi(x,y) ,返回 3)
否则,结束算法,此时的 fi即为最大流 注:若各边的容量不是整数,则通过做同比的缩放,可以任意
的精度近似求解最大流 显然,若各边的容量为整数,则必存在各边流值均为整数的
最大流
80
9. 有向图的流理论 定理 2 :从一组源结点到一组汇结点的最大流等于分割所有源和汇的最小截中的容量
定义 3 :给定有向连通图 G=<V,E> ,容量 c 是定义于 V-{s, t} 之上的非负函数, c 规定了流过各点的流量上界,称为点容量 (vertex-capacity)
定义 4 :给定有向连通图 G=<V,E> ,若 S是 V-{s,t} 的子集,且删除S后 s和 t在 G-S 中不再连通,则S称为 V 的点截 (vertex-cut)
定理 3 :给定有向图 G 及其上的点容量 c, s和 t 分别是源和汇,则从 s到 t 的最大流等于容量最小的点截的容量
81
10. 连通性和 Menger 定理 定义 1 :一个图 G 是 k- 连通( k-connected )的,当且仅当它至少有 k+1 个结点,且删除其中任何 k-1个结点不会导致不连通
注:通常所说的“连通的”可理解为 1-连通 一个 k- 连通的图( k>1 )显然也是 k-1 连通的 定义 2 :若图 G 是 k- 连通的,但不是 (k+1)- 连通的,
则称 k是 G 的连通度 (connectivity)。 定义 3 :一个图 G 是 k- 边 -连通( k-edge-
connected )的,当且仅当它至少有 2 个结点,且删除 G 中任何 k- 1 条边不会导致不连通
82
10. 连通性和 Menger 定理 定理 1 :若 G1和G2 都是图 G 的 k- 连通子图,且 G1和
G2至少有 k个公共点,则 G1+G2 也是 k- 连通的 定义 4 :设 G=<V,E> 连通,W 包含于 V ,若图 G-W
不再连通,则称W 分割了G ;如果 V-W 中的两个点 s和 t属于图 G-W 的不同连通分支,则称W 分割了 s和 t
定理 2(Menger 定理): 1) 若 s和 t 是图 G 中的两个非邻接的点,则分割 s和 t 的最小结点数等于从 s到 t的最大独立通路数。 2) 若 s和 t 是图 G 中的两个点,则分割 s和 t 的最小边数等于从 s到 t 的最大独立迹数。
注:独立通路指没有相同的结点的通路 独立迹指没有相同边的迹
83
10. 连通性和 Menger 定理 推论:若 s和 t 是图 G 中的两个非邻接的点,则分割 s和 t 的最小结点数小于等于:
min{deg(s),deg(t)} 定理 3 : 1) 图 G=<V,E>是 k- 连通的,当且仅当
|V|>1 ,且 G 中任何两点之间至少存在 k条独立通路。 2) 图 G=<V,E>是 k- 边 -连通的,当且仅当 |V|>1 ,且 G 中任何两点之间至少存在 k条独立迹。
练习:两分图的最大匹配问题
84
10. 连通性和 Menger 定理 思考题:是否存在算法有效求解有向图的最小
点割集? 线索:有向图的 k-cut 问题存在有效算法,这里 k-cut 问题定义如下:
给定有边权的图 G=<V,E> ,求解 V 的一个划分 V1,V2,…, Vk ,最小化 ∑ w(x,y), x∈Vi, y∈Vj, i 不等于 j。
85
11 两分图的匹配 问题引入: 1 给定 X 的一族子集 A={A1,A2,…,Am} ,是否
可能找到 X 的m 个不同的元素,使得每个元素恰好属于某个 Ai ,以作为 Ai 的代表元素?
2 婚礼问题: m 个女人, n 个男人,每个女人认识若干个男人,是否可能让每个女人找到一个认识的男人做新郎?
两分图 G(m,n) 的完全匹配问题:是否存在 m个独立边?
86
11 两分图的匹配 定理 1 :若两分图 G 的结点集 V=V1∪V2 ,则 G 包
含一个从 V1到 V2 的完全匹配 iff 如下条件成立: |K(S)| ≧ |S| ,对于 V1 的任意子集 S 注:定理 1 中, K(S) 定义为结点集 S的邻接结点集 推论 1 : X 的一族子集 A={A1,A2,…,Am} 具有 m
个代表元素, iff 如下条件成立: |∪i属于 F Ai| ≧ |F| ,对于任意{ 1, 2,…, m}的真
子集 F
87
11 两分图的匹配 推论 2 :若两分图 G 的结点集 V=V1∪V2 ,则 G 中
包含 |V1|-d 条独立边 iff G 满足如下条件: |K(S1)| ≧ |S1|-d ,对于 V1 的任意子集 S1
定理 2 :若两分图 G 的结点集 V=V1∪V2, |V1|=m, |V2 |=n ;记 h为 G 中的最大独立边数, i为 G 中的最大独立点数, j 为覆盖 G 中所有结点的最小边和点的数目,则以下关系成立:
i=j=m+n-h 注:独立点指不邻接的点
88
11 两分图的匹配证明:1) j=m+n-h ,令 E’∪V’ 是覆盖了所有结点的最小集合。
如果 E’ 的两个元素 e和 f有公共端点,则可以简单地用f的另一个端点代替 f。因此,可假定 E’ 只包含独立边。由于 E’显然应最大化,即 E’=h ,故有 j=m+n-h
2) i=m+n-h i)假设 VI是 G 的一个最大独立结点集, EI是 G 的一个最
大独立边集。 i≦m+n-h, EI 中任意边至少与 V- VI中的一个点相邻,且 EI 中的任意两个边无相邻的结点,故有 m+n-i≧h ,即 i≦m+n-h
89
11 两分图的匹配ii) 由于 G 的最大独立边集的势为 h ,根据推论 2 ,必存在 V1 的子集 S1 ,有 |K(S1)|=|S1|-(m-h) 。记
T= V2 -K(S1)
则 S1∪T 是独立结点集,且有 | S1∪T|=|S1|+n-|K(S1)|=m+n-h
即 i≧m+n-h
90
11 两分图的匹配 定理 3 :令 G 是两分图,且具有结点集合
V1={x1,…,xm} 和 V2={y1,…,yn} ,则 G 包含一个子图 H使得 dH(xi)=di, 0≦dH(yi)≦1 iff 对于任意 S的子集 V1
|K(S)| ≧∑ di
xi∈S 定义 1 :称图 G 的生成子图 H为 r-因子,如果 H中的每个结点均为 r度
例子: 1-因子