第五篇 图论

182
第第第 第第

Upload: jeanette-holt

Post on 02-Jan-2016

37 views

Category:

Documents


9 download

DESCRIPTION

第五篇 图论. 第 11 章 无向图. 11.1 节 基本概念. 【 定义 11.1】 称二元组 G=(V,E) 是一个 无向图 ,如果 V 是一个非空有限集合, E 是 V 中元素的无序对所组成的集合。 并把 V 的元素叫做图的 顶点 , E 的元素叫做图的 边 。 V(G) 表示图 G 的顶点集, E(G) 表示图 G 的边集。 若 |V(G)|=n, 则称 G 为 n 阶图。. 若边 e 是顶点 u 和 v 的无序对,则记 e = (u, v) 或 e = (v, u) ,称 u 和 v 是 e 的 端点 , 或 e 连接 u 和 v 。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第五篇  图论

第五篇 图论

Page 2: 第五篇  图论

第 11 章 无向图

Page 3: 第五篇  图论

11.1 节 基本概念

【定义 11.1 】 称二元组 G=(V,E) 是一个无向图,如果

V 是一个非空有限集合,E 是 V 中元素的无序对所组成的集合。 并把 V 的元素叫做图的顶点, E 的元素叫做图

的边。V(G) 表示图 G 的顶点集, E(G) 表示图 G 的

边集。若 |V(G)|=n, 则称 G 为 n 阶图。

Page 4: 第五篇  图论

若边 e 是顶点 u 和 v 的无序对,则记 e = (u, v)或 e = (v, u) ,称 u 和 v 是 e 的端点,或 e 连接 u 和 v 。

两个端点重合的边称为环。若两条或两条以上的边有相同的端点,则这些边称为重边。

若顶点 u 是边 e 的一个端点,则称顶点 u 与边 e 关联。不与任何边关联的顶点称为孤立点。如果两个顶点与一条边关联,那么称这两个顶点相邻。如果两条边与同一个顶点关联,那么称这两条边相邻。

Page 5: 第五篇  图论

没有环与重边的图称为简单图。只有一个顶点的图称为平凡图。任意不同的两个顶点都相邻的简单图称为

完全图,有 n 个顶点的完全图记作 Kn 。边数为零的图称为零图。

Page 6: 第五篇  图论

【定义 11.2】 在无向图 G 中,对于每个 G中的顶点 v ,与 v 相关联的边的数目称为 v的度,记为 dG(v) ,或 d(v) 。并规定在计算关联边数目时,环算作两条边。

注:度为 1 的顶点称为悬点,与悬点关联的边称为悬边。度为奇数的点称为奇点,度为偶数的点称为偶点。每个顶点的度都相同的图称为正则图,若其顶点的度均为 k ,则称为k- 正则图。易知完全图 Kn是 (n-1)- 正则图。

Page 7: 第五篇  图论

握手定理

【定理 11.1 】在无向图 G=(V,E) 中,结点度数的总和等于边数的两倍,即 。

【证 】 当对图 G=(V,E) 的所有顶点的度求和时,每条边都为顶点的度之和贡献 2 ,因为一条边恰好关联 2 个(可能相同)顶点。这意味着顶点的度之和是边数的 2 倍。定理得证。上述定理有时也称为握手定理。

Vv

Evd 2)(

Page 8: 第五篇  图论

【推论 11.1 】 无向图中奇点数目是偶数。【推论 11.2 】

【例 11.2 】 设图 G 有 10 个顶点,每个顶点的度为 6 ,那么图中共有多少条边?

【解】 由定理 11.1.1 得,在 G 中所有顶点的度的

总和为 6·10 = 60 ,因此图 G 中共有 30条边。

( 1)nK n n 1

的边数是 。2

Page 9: 第五篇  图论

二部图

【定义 11.3 】设 G 是简单图,若其顶点集V 可以划分为两个不相交的非空集合 V1和 V2 ,而 G 中所有边都连接 V1 中的一个顶点和 V2 中的一个顶点(也就是说 G 中没有边连接着 V1 中的两个顶点或 V2 中的两个顶点),那么将 G 称作二部图或偶图。

若图可以划分为两个不相交的非空集合,其元素个数分别为 m 和 n ,而在两个顶点之间有边相连当且仅当这两个顶点分属两个集合,则将图称为完全二部图,记作 。nmK ,

Page 10: 第五篇  图论

【例 11.3 】 判断下图 G 和 H 是否二部图。

答: G 的顶点集可以分为两个不相交的集合 {a, b, d}和{c, e, f, g} ;而 H 不是二部图,因为 H 中 a,e,f 三个顶点两两相邻,根据鸽笼原理,它们不可能分配到两个子集中使得边 (a,e) 、( e,f )、 (a,f) 均连接不同子集的两个顶点。

Page 11: 第五篇  图论

【例 11.5 】 K3 不是二部图。注意若把 K3的顶点集分成两个不相交的集合,则两个集合之一必然包含两个顶点。假如这个图是二部图,那么这两个顶点就不能用边连接,但是在 K3 里每一个顶点都用边连接着其他每个顶点。同理可知 Kn 也不是二部图。

Page 12: 第五篇  图论

【定义 11.4 】 若 , ,则称图 H 是图 G 的子图,记作 。若 , ,则称 H是 G 的真子图,记为 。若 ,则称H 是 G 的生成子图或支撑子图。如果 ,且中包含了 G 在在节点集 V(H) 中的所有边,则称 H 是 G 的导出子图。

V(H) V(G) E(H) E(G)H G

H GH G

H G H G,V(H) V(G)

V(H) V(G)

Page 13: 第五篇  图论

【定义 11.5 】 设G1 = (V1,E1) 和G2 = (V2, E2) 是两个简单图,则它们的并定义为G = (V,E) ,其中 。它们的交定义为 G = (V, E) ,其中 。它们的对称差定义为 G = V,E) ,其中

【例 11.6 】 图 11.4中G1 和G2 并、交和对称差分别是 (a), (b) 和( c) 。

1 2 1 2 1 2V=V UV , E=E UE G=G UG,记做

1 2 1 2 1 2V=V V , E=E E G=G G ,记做

1 2 1 2 1 2V=V V , E=E E G=G G ,记做

Page 14: 第五篇  图论
Page 15: 第五篇  图论

在 G 中删除一个子图 H ,指删除掉 H 中的各条边 , 记做 G-H ,特别的 , 对于简单图 G ,称 Kn-G为 G 的补图。例如 G1

中补图是 (d) 。从 G 中删去某个结点 υ 及其关联的边所得

到的图记作 G-v 。从 G 中删去某条特定的边 e = (u, v), 记做 G-e 。显见 G-v是G 的导出子图 , 而G-e是 G 的生成子图。

如果在 G 中增加某条边 eij, 可记做 G+eij 。

Page 16: 第五篇  图论

图的同构

【定义 11.6 】 对于简单图 G1= (V1, E1) ,G2= (V2, E2) ,如果能建立 V1到 V2 的双射 f ,其中 G1 中的顶点 a 和 b 相邻,当且仅当 G2 中的顶点 f(a)和 f(b) 也相邻,则称图 G1与G2 同构,记作 。1 2G G

Page 17: 第五篇  图论

Homework

习题 11.1 , P2702 ,3 ,4 ,8 ,12 ,14

Page 18: 第五篇  图论

11.2 无向图的表示

【定义 11.7 】 设图 G=(V,E) 是一个简单图, V = {v1, v2,…, vn} , G 的邻接矩阵定义为 ,其中

邻接矩阵总是对称的 邻接矩阵也能用来表示有环和重边的无向

图 ,其中 (i ,j) 项将用来表示联结 vi和 vj的边数

nnijaA )(

.),(,0

,),(,1

Ej

vi

v

Ej

vi

v

ija

Page 19: 第五篇  图论

举例 1

【例 11.9 】 用邻接矩阵表示简单图 v1 v2

v3 v4

0001

0011

0101

1110

A

Page 20: 第五篇  图论

举例 2

【例 11.10 】 用邻接矩阵表示非简单图

v1 v2

v3v4

0212

2110

1103

2030

A

Page 21: 第五篇  图论

关联矩阵

【定义 11.8 】令图 G=(V,E) 是一个无向简单图, V = {v1, v2,…, vn} , E={e1, e2,…, em} 。那么其关联矩阵定义为

关联矩阵也能用来表示有重边和环的图。图中的重边在矩阵中以相同的列矢量表示,而环所在的列则必定只有一项为 1 ,其他项都为零。

( ) ,M mij n m

其中

.,0

,,1

不关联和顶点边

关联和顶点边

iv

je

iv

je

ijm

Page 22: 第五篇  图论

举例

【例 11.11 】 用关联矩阵表示下图:

v1 v2 v3

v4 v5

e1

e2

e3

e4 e5

e6

011010

000101

110000

101100

000011

M

Page 23: 第五篇  图论

Homework

习题 11.2 , P272

2 ,4 ,5

Page 24: 第五篇  图论

11.3 无向图的连通性

【定义 11.9 】设 G 是一个无向图, G 的一个顶点和边的非空有限交错序列满足,则称W 为一条从 v0到 vk 的通道, v0为起点,vk 为终点,通道上的其它顶点称为内顶点,通道的长度为 k 。如果起点与终点不同,则称为开通道,若相同则称为闭通道

Page 25: 第五篇  图论

没有重复边的通道称为迹(或简单通道),起点和终点不同的迹称为开迹,起点与终点重合的迹称为闭迹。

没有重复顶点的迹称为路(或路径,或初级通道)。一条路显然是一条迹,但反之不成立。起点和终点重合的路称为圈。长度为奇数的圈称为奇圈,长度为偶数的圈称为偶圈。

Page 26: 第五篇  图论

举例

【例 11.12 】 列举下图的开通道、闭通道、开迹、闭迹和路。

e1

e2v2v1

e8

v5v4v3

e6

e5

e4

e3

e7

1 1 1 2 2 2 1 3 3v e v e v e v e v开通道:

1 1 1 2 2 2 1v e v e v e v闭通道:

1 1 1 3 3 4 1 2 2v e v e v e v e v开迹:

1 1 1 2 2 6 4 5 1v e v e v e v e v闭迹:

1 2 2 6 4 7 3v e v e v e v路:

Page 27: 第五篇  图论

【定义 11.10 】 在含圈的无向简单图 G 中,称 G 中最长圈的长度为 G 的周长,记做

。 G 中最短圈的长度记为 G 的围长,记做 。

无向完全图的周长为 n ,围长为 3 。完全二部图的周长为 2n ,围长为 4 。

( )c G

g( )G

Page 28: 第五篇  图论

【定义 11.12 】 设 u , v 为图 G 中的任意两个顶点,若 u , v 连通,称设 u , v 之间长度最短的通道为 u , v 之间的短程线,短程线的长度称为 u , v 之间的距离,记做 d ( u , v ),当 u , v 不连通时,定d ( u , v )=∞。

Page 29: 第五篇  图论

容易看出,图的顶点间的连通关系是顶点集中的一个等价关系。因此,图的顶点集可以按连通关系划分等价类。则一个不连通图是若干个连通子图的并,连通子图之间边集的交为空。这些不相交的连通子图称为图的连通分量或连通支。

Page 30: 第五篇  图论

连通分量

【例 11.13 】指出下图的连通分量。

【解】

根据定义,可以看出上图共有 3 个连通分量,分别为 ({a, b, c}, {(a, b), (a, c), (b, c)}), ({d, e}, {(d, e)}), ({f, g, h}, {(h, g), (f, g)}) 。

a

b d e f

ghc

Page 31: 第五篇  图论

【例 11.14 】设G=(V,E)( |V|=n, |E|=m) 是简单图,证明当 时, G是连通图。

1( 1)( 2)

2m n n

1 1 1 2 2 2 1 1 2 2 1 2

1 1 1 2 2 2

1 1 2 2 1 2

1 2

G G

( , ) ( , ) | | ,| | , G

1 1| | ( 1),| | ( 1),

2 21 1

( 1) ( 1), 1, 1,2 21 1

( 1)( 1 1 ( 1)( 2)2 2

G

G V E G V E V n V n n n n

E n n E n n

m n n n n n n n n

m n n n n n

假定 是非连通图,则 至少含有两个连通分量,设分别为, , ,由 是简单图知:

假设 由于

因此 )

与已知矛盾,故 是连通 .图

Page 32: 第五篇  图论

【定理 11.2 】设G=(V,E)( |V|=n, |E|=m) 是连通图, m≥n-1

【证】若 G 为简单图时, G 连通必有 m≥n-1;当 G 为非简单图时, G 连通更要要求 m≥n-1 ,下面仅就 G 为简单图时加以证明。

对顶点数 n 作归纳法。 n=1 时, G 为平凡图,此时 m = 0 ,所以

结论成立。

Page 33: 第五篇  图论

设 n≤k ( k ≥1) 时结论成立,下面证明n=k+1 时结论成立 。

设 v 为 G 中任意一个顶点,记 G’=G-v ,设G’有 s 个连通分量 G1,G2,…,Gs ,设 |Vi|=ni,|Ei|=mi( i=1,2,…,s),则 ni ≤k 。由归纳假设可知 mi ≥ ni-1 ,由于从 G中删除 v 产生 s 个连通分支,所以至少同时删除了 s 条边,于是

1 1 1

1s s s

i i ii i i

m m s n s s n n

Page 34: 第五篇  图论

【定理 11.3 】设G=(V,E)( |V|=n), 若顶点 u 和 v 之(u≠v) 间若有通道,则它们之间存在长度小于 n 的通道。

【证】设 为 G 中长度为 k 的通道,且 若 k<n ,则W 为满足要求的通道 ; 否则即

k≥ n ,或 k>n+1, 即W 上顶点数大于 G 中的顶点数,于是必存在 即在W 中存在到自身的闭通道 Cst ,在W 中删除 Cst 中的一切边和除外 vs的所有顶点,得到 W’ ,则 W’仍然为顶点 u 到 v 的通道,且W’ 的长度比W 至少减少 1 。则若 W’ 的长度小于 n ,则W’满足要求,否则对重复上述过程,因为 G 是有限图,经过有限步后,必得 u 到 v 长度小于 n 的通道。

0 1 1 ,k kW v e v e v

0 , kv u v v 始点 终点 。

, ,0 s ts t s t k v v ,使得

Page 35: 第五篇  图论

【推论 11.3 】图G=(V,E)( |V|=n) 中,若顶点 u 和 v 之 (u≠v) 间若有通道,则它们之间存在长度小于 n 的路。

【定理 11.4 】图G=(V,E)( |V|=n) 中,若存在顶点 u 到自身的闭通道,则一定存在 u 到自身的长度小于等于 n 的闭通道。

【推论 11.4 】图G=(V,E)( |V|=n) 中,若存在顶点 u 到自身的闭迹,则一定存在u 到自身的长度小于等于 n 的闭迹。

Page 36: 第五篇  图论

下面介绍一种图论中很有用的证明方法,叫做“扩大路法”。

设为 G=(V,E)为 n 阶无向图, ,设 为 G中一条路,若此路的始点或终点与通道外的顶点相邻,就将它们扩到通道中来,继续这一过程,直到最后得到的通道的两个端点不与通道外的顶点相邻为止,设最后得到的路径为 (长度为 k 的路扩大成了长度为 k+r 的路径),称 为“极大路”,称使用此种方法证明问题的方法为“扩大路法”。

E k

k r

k r

Page 37: 第五篇  图论

【例 11.15 】设 G 为 n ( n≥4 )阶无向简单图, G 中任何一个顶点的度数均不小于 3 。证明 G 中存在长度大于或等于 4 的圈。

【证】不妨设 G 是连通图,否则,因为 G 的各连通分支的最小度 (min{d(v)|v∈V})也都大于或等于 3 ,因而可对它的某个连通分支进行讨论。设 u,v为 G 中任意两个顶点,由 G 是连通图,因而 u,v 之间存在通道,由推论 11.3 可知, u,v 之间存在路 ,用“扩大路法”扩大这条路,

Page 38: 第五篇  图论

设最后得到的“极大路”为 , 易知k≥3 ,若 v0与 vk 相邻,则 为长度大于或等于 4 的圈。若 v0与 vk 不相邻,由于 d(v0)≥3 ,因而 v0除与 上的 vk 相邻外,还存 上的顶点 vr(2≤r<k)和vt(r<t<k)与 v0相邻,则 为一个圈且长度大于或等于 4 ,见下图所示。

0 1k

kv v v

0 1 0( , )kk kv v v v v

k

0 1 0k

r tv v v v v

v1 vr vt vkv0

Page 39: 第五篇  图论

【定理 11.5 】一个图为二部图当且仅当图 G中无奇圈。

必要性。设二部图 G=(V1,V2,E),若 G 中无圈,结论成立,否

则,设 C 为 G 中任意一个圈,设 不妨设 则 均属于 V1 , 而 均属于 V2 ,于是 k 是偶数,且 k是 C 的长度,因而 C 是偶圈,由于 C 的任意性,结论成立。

1 2 1 1k kC u u u u u ,1 1u V , 3 5 k 1,u u u ,

2 4 k,u u u,

Page 40: 第五篇  图论

充分性。设 G 中无奇圈,不妨设 G 是连通的,否则可对它的

每个连通分量进行讨论。设 u为 G 中任意一个顶点,令

下面只要证明 ,则 e 的一个端点在 V1 中,另一个端点在 V2 中,若不然,存在边, e=(ur,us) ,其中 ur, us均属于 V1 ( 或者V2) ,设, Wu,ur

Wu,us分别为 u到 ur和 u到 us到的短程线,显然

Wur和Wus

的长度均为偶数。

2 { | ( ) ( , ) }V u u V G d u v 为奇数,

1 { | ( ) ( , ) }V u u V G d u v 为偶数,

1 2 1 2,V V V V V 则 且 。

e E

Page 41: 第五篇  图论

如果 Wur和Wus

无交点,则

为图 G 中一个奇圈,这与 G 中无奇圈矛盾。如果 有交点,则由于 的长度为奇数,易知其中必含图 G 的奇圈,仍得出矛盾。证毕。

, ,r su u u uW W和

, ,( , )r su u r s u uW u u W

, ,( , )r su u r s u uW u u W

Page 42: 第五篇  图论

有时,如果移除某个顶点及所有与该顶点相关联的边,所产生的子图比原图有更多的连通分量,这样的顶点称为割点。显然,从一个连通图中移除一个割点就会产生一个不连通的子图。类似地,将一条边移除后所产生的子图比原图有更多的连通分量,这样的边称为割边或桥。

Page 43: 第五篇  图论

【例 11.16 】 指出下图中的割点和桥。

割点为: b, c和 e 桥: {a, b} 和 {c, e}

a

b c

d f g

he

Page 44: 第五篇  图论

【定理 11.6 】 设 G 是带有相对于顶点顺序 的邻接矩阵 A 的图(允许带有多

重边和环)。从 vi的 vj长度为 r的不同通道的数目等于 Ar的第 (i,j) 项,其中 r是正整数。

证明用数学归纳法。

1 2, , , nv v v

Page 45: 第五篇  图论

【例 11.17 】在图所示的简单图 G 中,从 a到 d 的长度为 4 的通道有多少条?

【解 】G 的邻接矩阵(顶点顺序 a,b,c,d )

0 1 1 0

1 0 0 1

1 0 0 1

0 1 1 0

A

4

8 0 0 8

0 8 8 0

0 8 8 0

8 0 0 8

A

Page 46: 第五篇  图论

从 a 到 d的长度为 4 的通道数是的第 (1,4) 项, a , b, a , b, d ; a , b, a , c, d ;a , b, d, b, d ; a , b, d, c, d ;a , c, a , b, d ; a , c, a , c, d ;a , c, d, b, d ; a , c, d, c, d ;

Page 47: 第五篇  图论

Homework

习题 11.3 , P277

2 ,6 ,9 ,11 ,12

Page 48: 第五篇  图论

11.4欧拉图与哈密顿图

11.4.1欧拉图普雷格尔河从哥尼斯堡镇中穿过,而河中

有两个小岛,小岛与河岸间由 7 座桥彼此连接,如下图。于是有游客提出问题:能否从河岸或小岛出发,通过每一座桥,而且仅仅通过一次,最后回到原地。

哥尼斯堡 (Konigsberg)七桥问题 A

C

B

D

Page 49: 第五篇  图论

瑞士数学家欧拉 (Euler)在 1736年对这个问题给出了否定的回答。他将河岸和小岛作为图的顶点,七座桥为边,构成一个无向图,则问题化为图论中的问题。这是用图论方法建立的第一个模型:

C

A

B

D

Page 50: 第五篇  图论

定义

【定义 11.15 】包含图 G 的所有边的迹称为欧拉迹 ( 或欧拉通道 ) ,包含图 G 的所有边的闭迹称为欧拉闭迹 ( 或欧拉回路 ) 。假设 G 没有孤立点,若 G 含有欧拉闭迹,则称 G 是欧拉图。

Page 51: 第五篇  图论

【定理 11.7 】图 G 是欧拉图的充要条件是G 连通且没有奇点。

【证】必要性: 若 G 中有欧拉闭迹 C,则 C 过每一条边有且仅有

一次。对任一结点 v, 如果 C 由 ei进入 v, 则一定通过另一条边 ej从 v 离开。因此 v 的度是偶数。

充分性:由于 G 是有穷图,因此可断定从 G 的任一结点 v0出发一定存在 G 的一条闭迹C 。这是因为各结点的度都是偶数,所以这条记迹不可能停留在 v0以外的某个结点,而不能再向前伸延以构成闭通道C 。

Page 52: 第五篇  图论

如果 E=C, 则 C 就是欧拉回路,充分性得证。否则在 G 中删去 C 得各边,得到 G1=G-C。G1 可能是非连通图,每个顶点的度保持为偶数。这时,G1 中一定存在某个度非零得结点 vi ,同时也是 C中顶点。否则 C 的顶点与的顶点之间无边相连,与 G 是连通图矛盾。同理,从 vi 出发, G1 中所在的连通分量内存在一条简单闭通道 C1 。 C ∪ C1仍然是 G 的一条简单闭通道 , 但它包括的边数比 C 多。继续构造,最终有 C’=C ∪ C1 ∪ … ∪ Ck 是一条欧拉闭迹。

Page 53: 第五篇  图论

【推论 11.5 】若无向连通 G 中只有 2 个度为奇数的顶点。则 G 中存在欧拉迹。

Page 54: 第五篇  图论

【定义 11.14 】如果一个图可以从某个顶点出发,每条边恰好经过一次,最后终止在出发点或另一个顶点,则称该图可以一笔画。也就是说,可以一笔画的图含有欧拉迹,但不一定有欧拉闭迹。显然欧拉图一定可以一笔画成,反之则一般不然。

Page 55: 第五篇  图论

【定理 11.8 】一个图能一笔画成的充要条件是, G 连通且奇顶点数为 0 或 2 。若奇点数为 2 ,则从其中一个奇顶点出发,终止于另一个奇顶点上,完成一笔画。

Page 56: 第五篇  图论

【例 11.18 】 判断下图是否欧拉图:

a b

cd

e

G

a b

cdH

Page 57: 第五篇  图论

【例 11.19 】 判断下图是否可以一笔画成:

a b

cd eG

a b

cd

e

H

Page 58: 第五篇  图论

11.4.2哈密顿图

1859年,爱尔兰科学家哈密顿(Hamilton)发明了一种游戏:在一个实心的正十二面体, 20 个顶点标上世界著名大城市的名字,要求游戏者从某一城市出发,遍历各城市一次,最后回到原地。

这就是“绕行世界”问题,即找一条经过所有顶点 ( 城市 ) 的圈。

Page 59: 第五篇  图论

【定义 11.15 】在图 G 中,包含 G 中所有顶点的圈(路)称为哈密顿圈(路) 。含有哈密顿圈的图称为哈密顿图,反之则称为非哈密顿图。

Page 60: 第五篇  图论

【定理 11.9 】设 G 是有 n ( n≥3 )个顶点的简单图,如果对于 G 中任意两个不相邻的顶点 u 和 v ,均有 d(u)+d(v) ≥ n-1 ,则 G 是哈密顿路。

【推论 11.6】 (Ore 定理 ) 设 G 是有 n ( n≥3 )个顶点的简单图,如果对于 G中任意两个不相邻的顶点 u 和 v ,均有d(u)+d(v) ≥ n ,则 G 是哈密顿图。

Page 61: 第五篇  图论

【推论 11.7 】(Dirac 定理) 设 G 是有n ( n≥3 )个顶点的简单图,若每个顶点的度不小于 n/2 ,则 G 是哈密顿图。

Page 62: 第五篇  图论

【定理 11.10 】设 G 是哈密顿图,则对于G 的顶点集的任意子集 S ,在 G 中移除 S中的顶点及所有与这些顶点相关联的边,所产生子图中的连通分量数必定不大于 |S| 。即对于 , 其中 为的 G-S的连通分支数。

【推论 11.8 】每个哈密顿图都没有割点。【推论 11.9 】有奇数个顶点的二部图必定

不是哈密顿图。

, ( ) | |S V p G S S ( )p G S

Page 63: 第五篇  图论

Homework

习题 11.4 P281

2,4,5,7,12

Page 64: 第五篇  图论

11.5最短通道问题(

A A

S

( ) 0

{ }, 0

BFS

S S

L L

a S S

b L S k

repeat

广度优先搜索算法)本算法确定了图中从 到其它各个顶点的距离和最短通道(若 到这些顶点有通道).

在这个算法中, 表示已被标记的顶点的集合,顶点 的前驱是用来对 做标记的 中的一个顶点。 步骤1(对 所标记) 将 标记为 ,使 没有前驱 ( ) 令 步骤2 (对其它顶点做标记)

步骤2. 1(增1

1

( )

( )

( )

k k

while L k V L W

a W k

b V W

c W L

endwhile

加标记值) 令 步骤2. 2(扩大做标记的范围) 包含一个标记为 顶点 ,它与不在 中的顶点 相邻。 把 标记为 指定 为的 前驱 把 加入到 中去

until L L 中没有与不属于 的顶点相邻的顶点

Page 65: 第五篇  图论

if T L

T S T T T T

S S T

otherwise

S T

endif

步骤3(构造到达一个顶点的最短通道) 顶点 属于 上的标记是从 到 距离。按照逆序: , 的前驱, 的前驱的前驱, 直到 ,生成从 到 的一条最短通道。

从 到 不存在通道。

Page 66: 第五篇  图论

0 1

( : )

{ , , , ( , ) { , }

( , ) }

1

( )

( ) 0

{

n i j i j

i j

i

Dijkstra

Procedure Dijkstra G

G a v v v z w v v v v G

w v v

for i to n

L v

L a

S

a

算法 算法 所有权为正数的带权连通简单图 带有顶点 和权 ,其中若 不是 的边,则

现在初始化标记,使得 的标记为0而所有其余标记为 }

( )

{ }

( ) ( , ) ( ) ( ) ( ) ( , )

{ }

{ ( )

S

While z S

begin

u S L u

S S u

for S v

if L u w u v L v then L v L u w u v

S

end L z a

,而 是空集合

不属于 的 最小的一个顶点

所有不属于 的顶点

这样就给中添加带最小标记的顶点并且更新不在 中的顶点的标记从 到 }z的最短通道的长度

Page 67: 第五篇  图论

【定理 11.11】Dijkstra 算法求出连通简单无向带权图中两个顶点之间最短通道的长度。

【定理 11.12】Dijkstra 算法使用 O(n2)次运算(加法和比较)来求出连通简单无向带权图中两个顶点之间最短通道的长度。

Page 68: 第五篇  图论

旅行商问题

与带权图有关的另外一个重要问题是:求访问完全图每个顶点恰好一次的而总长度最短的路。这就是著名的旅行商问题或货郎担问题。

Page 69: 第五篇  图论

Homework

习题 11.5, P2851,4,7

Page 70: 第五篇  图论

第 12 章 平面图与图着色

Page 71: 第五篇  图论

12.1 平面图的基本概念

【定义 12.1 】若能把一个图 G 的图形画在曲面S 上,使图的边在顶点之外都不相交,则称图 G 可嵌入曲面 S 。可嵌入平面的图称为可平面图,否则称为不可平面图。已经嵌入一张平面的图称为平面图。

Page 72: 第五篇  图论

举例

【例 12.1 】 判断下图是否为可平面图

b

a

e d

c

G

a

e d

c

H

b

Page 73: 第五篇  图论

【例 12.2 】 K1( 平凡图 ) , K2, K3, K4都是平面图,其中, K1, K2, K3 本身就已经是平面嵌入, K4 的平面嵌入为下图 (4)所示。 K5- e (K5删除任意一条边 ) 也是平面图,它的平面嵌入可表示为下图中 (5). 完全二部图 K1,n(n≥1), K2,n(n≥2), 也都是平面图,其中标准画法画出的 K1,n已经是平面嵌入, K2,3 的平面嵌入可由图 12.1.2中(6)给出。图 12.1.2中 (1), (2), (3)分别为 K4, Ky- e, K2,3 的标准画法。

Page 74: 第五篇  图论
Page 75: 第五篇  图论

【定义 12.2 】设 G 是平面图,若 G 的边围成一个封闭区域,该区域内的任意两点间都可以作一条曲线相连接,此曲线不遇到 G 的任何边和顶点,则此区域称为 G 的一个面。界定一个面的所有边称为该面的边界。边界中的边数称为该面的度,并规定桥在计算度时算作两条边。对于面 f 的边界上的一条边 e ,也称是 f 的一条边界。面 f 的周线是由面 f 的边界构成且把面 f 包含在内的圈。两个面若有公共边则称它们相邻。一个面与它边界上的边和点称为相关联。

Page 76: 第五篇  图论

每个平面图恰有一个无界面,称为外部面,其余的面都是有界面,称为内部面

由定义,外部面没有周线,内部面有一条周线。

Page 77: 第五篇  图论

【例 12.3 】 找出下图的面及其度、边界和周线:

f1 的边界为 e1e3e3e4e5e2 ,度为 6 ,周线为 e1e4e5e2

f2 的边界为 e7e8 ,度为 2 ,周线为 e7e8

f3 的边界为 e10 ,度为 1 ,周线为 e10

f4 的边界为 e1e4e6e7e9e10e9e8e6e5e2 ,度为 11 ,没有周线

其中 f4 是外部面,其他都是内部面。

e1

e2 e5

e4

e3 e6

e7

e8

e9 e10

Page 78: 第五篇  图论

【定理 12.1 】设 G 是平面图,则

其中 F(G) 表示 G 的所有面的集, d(f) 表示f 的度。

【推论 12.1 】平面图中奇度面数必为偶数。

)(

)(2)(GFf

GEfd

Page 79: 第五篇  图论

12.2 欧拉公式和极大平面图=

【定理 12.1 】设 G 是连通平面图,共有 n个顶点, m 条边, r个面,则 n – m + r =2 。

【证】首先构造图 G 的一系列图子图, G1,G2,…,Gm=G ,使得 Gk 是恰含有 k( k=1, 2 , …, k )条边的连通图。构造方法如下:

( 1 )任意选择Gk-1 中的一条边来获得 Gk :任意的添加一条与 Gk-1 边中某个顶点相关联的边,若与这条边关联的另一个顶点不在 Gk-1 里,则添加这个顶点。

Page 80: 第五篇  图论

这样的构造是可能的,因为 G 是联通的。在添加m 条边之后就获得 G 。设 rk,mk,nk 和分别为Gk 的面数、边数和顶点数。

现在用归纳法来进行证明。对 G1 来说关系r1=m1-n1 +2 为真,因为 m1=1, n1=2而r1=1 。

现在假定 rk=mk-nk +2 ,我们来考虑Gk+1 。设Gk+1= Gk + ( ak+1,bk+1 ),此时分两种情况来讨论。

Page 81: 第五篇  图论

第一种情形: ak+1,bk+1 都是 Gk 的顶点 ,则 rk+1=rk+1,mk+1=mk+1,且 nk+1=nk 。

因此 rk+1=mk+1-nk+1 +2 成立。

bk+1

ak+1

a)

bk+1

ak+1

b)

Page 82: 第五篇  图论

第二种情形:新边( ak+1,bk+1 )的两个顶点之一不在 Gk 中。假定 ak+1在Gk 中,但是 bk+1 不在 Gk 中,添加这条边不产生任何面,因为 bk+1 必然是在边界上有 ak+1

的一个面中,所以 rk+1=rk 。另外, mk+1=mk+1 ,而且 nk+1=nk+1 。所以 rk+1=mk+1-nk+1 +2仍然成立

Page 83: 第五篇  图论

【定理 12.3 】若 G 的每个面的边界至少含k 条边,则

【例 12.4 】 证明 K5是不可平面图 。【例 12.5 】 证明 K3, 3 是不可平面图。

( 2)2 2

kr km n

k

Page 84: 第五篇  图论

【定义 12.3 】在图 G 的边 (u, v) 上添加 k个顶点 v1,v2,…,vk ,从而使得边 (u, v)变为 (k+1) 条边 (u,v),(v1, v2), …,( vk, v) ,则称为对边 (u, v) 的加细。两个图称为同胚的,其中一个图是另一个图的加细图。

【定理 12.4 】一个图 G 是可平面图的充要条件是 G 没有同胚于 K5或 K3, 3 的子图。

此定理称为 Kuratowski 定理。

Page 85: 第五篇  图论

【例 12.7 】对 K5插入 2 度顶点,或在 K5外放置一个顶点使其与 K5上的若干个顶点相邻,共可产生多少个 6 阶简单连通非同构的非平面图?

(a) (b) (c)

(d) (e) (f)

Page 86: 第五篇  图论

【例 12.8 】由 K3,3 加若干条边能生成多少个 6 阶连通的简单的非同构的非平面图?

(e) (f) (h)(g)

(i) (j)

(a) (b) (c) d)

Page 87: 第五篇  图论

【定义 12.4 】设 G 为平面图 , 如果任意两个互不邻接的顶点 u , v ,使得 G +( u , v )成为不可平面图,则称图 G 是极大可平面图。

Page 88: 第五篇  图论

【定理 12.5】 G 为 n ( n 3 )阶简单的连通平面图, G 为极大可平面图当且仅当 G 的每个面的次数均为 3 。

【证】必要性: 因为 G 为简单平面图,所以 G 中无环无重边。又

因为 G 是至少 3 个顶点的极大平面图,所以 G无割点和桥,于是 G 中各面的边界均为圈且次数均大于等于 3 。下面只需证明各面的次数不会大于 3 。

Page 89: 第五篇  图论

否则,假设存在面 Ri, deg(Ri)>3 ,见下图。在 G (平面嵌入)中,若 v1与 v3 不相邻,在 Ri

内部添加边 (v1,v3) 不破坏平面性,这和 G 是极大平面图相矛盾,因而 v1与 v3 必然相邻,由于Ri 的存在,此时边( v1,v3 )必然在 Ri 的外部。类似地, v2与 v4 也必然相邻而且边( v2,v4 )也在 Ri 的外部。此时,无论怎样画,边( v1,v

3 )必然与边( v2,v4 )相交。这与 G 的平面性矛盾。故假设不成立。

Page 90: 第五篇  图论

v3 v4

Ri

v1 v5

v2

……

Page 91: 第五篇  图论

充分性: 这是显然的,次数为 3 的面构成一个 K3 ,其中任

何两个顶点都已经相邻。所以,把 G 进行平面嵌入之后,在任何一个内部面之内都无法再增加新边了,否则就会出现重边,跟 G 是简单平面图矛盾。而如果试图横跨两个内部面增加一条边时,必然跟这两个内部面的某些边产生交叉,而如果试图把该边画到无限面中时,也必然与围成无限面的某条边发生交叉或出现重边,因为无限面也是 3 次的。所以, G 中不能再增加任何一条边还能保持其平面性和简单性。故, G 是极大平面图。

Page 92: 第五篇  图论

【推论 12.2】 G 为 n ( n 3 )阶 m 条边的简单平面图,则 m 3n – 6 ,且等号成立当且仅当 G 是极大平面图。

【推论 12.3】 G 简单的平面图,则 G 中至少有一个顶点其度数小于等于 5 。

【定义 12.5 】若在非平面图 G 中删除一条边,所得图为平面图 , 则称图 G 是极小非平面图。

例如, K5, K3,3 都是极小非平面图。

Page 93: 第五篇  图论

Homework

习题 12.1, P292

2,5,6

Page 94: 第五篇  图论

12.3 平面图的对偶图

【定义 12.6 】 设 G 是平面图的某一个平面嵌入,其几何对偶图 G*构造如下:( 1 )在 G 的每个面 Ri 中放置G*的一个顶点 vi;( 2 )设 e 为 G 的一条边,若 e 在 G 的面 Ri和

Rj 的公共边界上,作 G*的边 e*与 e 相交,且e*关联 G*的顶点 和 ,即 ,不与其它任何边相交;若 e 是 G 的桥且在 Ri 的边界上,则 e*是以 为顶点的环,即 。

*iv

*iv * * *( , )i je v v

* * *( , )i ie v v

*jv

Page 95: 第五篇  图论

平面图的某个平面嵌入 G 的对偶图 G*有下列性质:

( 1 )G*为平面图,而且是平面嵌入;( 2 )G*是连通的;( 3 )同构的图的对偶图不一定是同构的。

v3 v4

v1 v5

v2

v3 v4

v1 v5

v2

G1及其对偶图 G2及其对偶图

Page 96: 第五篇  图论

【定理 12.6 】设G*是连通平面图 G 的对偶图, n*,m*,r*和 n,m,r 分别为 G*和 G 的顶点数、边数和面数,则有 n*=r,m*=m,r*=n 成立。

【证】首先, n*=r, r*=n 是显然的。由于 G 和

G*都是连通的平面图,因而都满足欧拉公式,即 n-m+r=2= n*- m*+r*, 故r*=2-n*+ m*=2+m-r=n 。证毕。

Page 97: 第五篇  图论

12.4 图着色

【定义 12.7 】 对无环图 G 的每个顶点涂上一种颜色,使相邻的顶点涂不同的颜色,称为对图 G 的一种着色。若能用 k 种颜色给 G 的顶点着色,就称对 G 进行了 k 着色,也称 G 是 k- 可着色的。若 G 是 k- 可着色的,但不是 (k-1)- 可着色的,就称 G 是 k色图,并称这样的 k 为 G 的色数,记作 ,不混淆时,色数 也可简记作 。

χ(G)=K

χ(G) χ

Page 98: 第五篇  图论

【定理 12.7 】 当且仅当 G 是零图。【定理 12.8 】 。

【定理 12.9 】奇圈色数均为 3 。 【定理 12.10 】 设 G 中至少含一条边,则 当且仅当 G 为二部图。

χ(G)=1χ(Kn)=n

χ(G)=2

Page 99: 第五篇  图论

【定理 12.11 】任何平面图都是 5- 可着色的。

【例 12.10 】如何安排一所大学里的期末考试,使得没有学生在同一时间有两门课考试?

Page 100: 第五篇  图论

【定义 12.8 】图 G 的边着色是指对 G 的各边指定颜色,使得关联到相同顶点的边指定不同的颜色。图的边色数是该图的边着色里可以使用的最少的颜色数,记为

【定理 12.12 】( Vizing )设 G 是简单图,则

χ’(G) 。

( )( ) '( ) ( ) 1, ( ) max ( )

v V GG G G G d v

这里

Page 101: 第五篇  图论

【例 12.10 】证明:世界上任何 6 个人中,一定有 3 个人或者互相认识或者互相都不认识。

【证】首先,给 K6 及其边着色赋予语义解释:6 个顶点表示任意的 6 个人,如果两个人互相认识,就将对应的边着红色,否则着蓝色。其次,证明:用红篮两种颜色对完全图 K6 的边进行着色后,一定由红色的K3 或者蓝色的 K3

Page 102: 第五篇  图论

在K6 中,顶点 u 关联 5 条边,根据鸽笼原理,至少有 3 条边着同一色。不失一般性,假设边( u , v1 ),( u , v2 )和( u , v5 )着红色,用虚线表示,见下图 (a) 。现在考虑边( v1, v

2 ),( v1, v5 )和( v2, v5 )的着色情况,如果它们均着蓝色(用实线表示),则已经构成一个蓝色的 K3 ,见下图 (b)命题成立;如果它们中任何一条(不失一般性,假设为边( v1, v2 ))着红色(即虚线),则也必然出现由顶点 v1、 v2和 u 构成的 K3 ,其每条边均着红色,命题亦成立。

Page 103: 第五篇  图论

(a) (b)

Page 104: 第五篇  图论

Homework

习题 12.2 , P295

2,5,7

Page 105: 第五篇  图论

第 13 章 图论

Page 106: 第五篇  图论

第十三章 有向图

13.1 有向图的基本概念 13.2 有向图的连通性

Page 107: 第五篇  图论

13.1 有向图的基本概念 【定义 13.1 】称D=(V,E) 是一个有向图,

如果(1) V 是一个非空有限集合;(2) E是 V 中元素的有序对所组成的有限集合。 并把 V 的元素叫做图 G 的顶点, E 的元素

叫做图 G 的有向边或边。 设 G 是有向图, e=(u,v)是 E 中元素,则称 u 为 e 的起点或尾, e 为 u 的出边;并称v 为 e 的终点或头, e 为 v 的入边。对于环而言,起点和终点是重合的。若两条或两条以上的边有相同的头和尾,则这些边称为重边。没有重边和环的有向图称为简单有向图。

Page 108: 第五篇  图论

若对任意的 u,v∈V ,均有 (u,v)∈E和(v,u)∈E ,则称 D 为有向完全图。设 D为有向简单图,若对任意的 u,v∈V ,有向边 (u,v)∈E和 (v,u)∈E 有且仅有一个成立,则称 D 为竞赛图。

Page 109: 第五篇  图论

13.1 有向图的基本概念

【定义 13.2 】在有向图中,顶点 v 的出边数称为 v 的出度,记作 d+(v) 。顶点 v 的入边数称为 v 的入度,记作 d-(v) 。顶点v 的关联边数称作 v 的度,记为 d(v) ,即

)()()( vdvdvd

Page 110: 第五篇  图论

13.1 有向图的基本概念

【例 13.1 】写出下图各顶点的出度和入度:

( ) 3, ( ) 1, ( ) 1, ( ) 1, ( ) 1, ( ) 0

( ) 1, ( ) 2, ( ) 1, ( ) 1, ( ) 2, ( ) 0

d a d b d c d d d e d f

d a d b d c d d d e d f

a b c

ed f

Page 111: 第五篇  图论

§13.1 有向图的基本概念

【例 13.2 】下图中 a)为 3 阶有向完全图, b)为 4 阶竞赛图 , 易知 n 阶有向完全图, n 阶竞赛图的边数分别为 n(n-1)/2, n(n- 1), n(n-1)/2

b)a)

Page 112: 第五篇  图论

§13.1 有向图的基本概念

【定理 13.1 】对有向图,有

【证】因为每条边都有一个起点和一个终点,所以在带有有向边的图里,所有顶点的入度之和等于出度之和。显然也等于图的边数。

Vv Vv

Evdvd )()(

Page 113: 第五篇  图论

§13.1 有向图的基本概念

【定义 13.3 】设 D 是有向图,若略去边的方向,则得到一个无向图,称其为图 D 的基础图。如果 D 是无向图,给所有的边任意定方向后,则得到一个有向图,称为图D 的定向图。

Page 114: 第五篇  图论

§13.1 有向图的基本概念

【例 13.3】 给出以下有向图的基础图,并给出其基础图的另一个定向图。

【解】上图的基础图为以下左图,再为其边指定方向,得到另外的定向图之一,如右图所示:

a) b)

Page 115: 第五篇  图论

§13.1 有向图的基本概念

【定义 13.4 】设图 是一个简单有向图, V = {v1, v2,…, vn} ,则 D 的邻接矩阵用方阵 来表示,

其中

显然,有向图的邻接矩阵不再是对称矩阵。对于非简单的有向图,则可以用与无向图中类似的方式进行扩展。

( , )D V E

1, ( , ) ,

0, ( , ) .

i j

ij

i j

v v Da

v v D

是 中一条有向边

不是 的有向边

nnijaA )(

Page 116: 第五篇  图论

§13.1 有向图的基本概念

【例 13.4 】 用邻接矩阵表示下图:

【解】上图的邻接矩阵

v1

v4v3

v2

0000

0001

0100

1010

A

Page 117: 第五篇  图论

§13.1 有向图的基本概念

【定义 13.5 】对于无环有向图 D ,若其顶点数为 n ,边数为 m ,则其关联矩阵 M是矩阵,其中

.,1

,,1

,,0

的入边是顶点边

的出边是顶点边

不关联和顶点边

ij

ij

ij

ij

ve

ve

ve

m

Page 118: 第五篇  图论

§13.1 有向图的基本概念

【例 13.5 】 用关联矩阵表示下图:

【解】其关联矩阵为

v1

v3 v4

v2

v5

e2

e1

e3

e4

e5 e6

e7

1000000

1101000

0011000

0100111

0010111

M

Page 119: 第五篇  图论

§13.1 有向图的基本概念

M(D) 有如下各条性质: 1 . ,说明M(D) 中所有元

素之和为 0. 2 .M(D) 中负 1 的个数等于正 1 的个数,

都等于边数 m ,这正是定理 13.1 的内容。

3 .第 i行中,正 1 的个数等于 ,负 1的个数等于 。

1 1 1

0, 1,2 0n m n

ij iji j i

m j m m

,从而

( )id v

( )id v

Page 120: 第五篇  图论

Homework

习题 13.1 P298

12

Page 121: 第五篇  图论

§13.2 有向图的连通性

【定义 13.6 】 设 是一个有向图, G的一个顶点和边的非空有限交错序列

满足 则称W为一条从 v0到 vk的有向通道。若 则称为有向开通道,若 ,则称为有向闭通道。边不重复的有向通道称为有向迹,顶点不重复的有向迹称为有向路。

),( EVG

kvv 0

kvv 0

0 1 1 ,k kW v e v e v k N 1( , ), 1,2, ,i i ie v v i k

Page 122: 第五篇  图论

§13.2 有向图的连通性

【定义 13.7 】如果有一条从 u 到 v 的有向通道,则称 u 到 v 可达。若 u 到 v 可达或v 到 u 可达,则称顶点 u 与 v 是单向连通的。若 u 到 v 可达且 v 到 u 可达,则称顶点 u 与 v 是强连通的。

如果有向图 G 的基础图是连通的,称 G 是弱连通的。如果 G 的任意两个顶点都是单向连通的,则称 G 是单向连通的。如果 G的任意两个顶点都是强连通的,则称 G 是强连通的。

Page 123: 第五篇  图论

§13.2 有向图的连通性【例 13.6 】 判断下面两个图是否强连通,

是否弱连通。

【解】 G 是强连通的。 H 不是强连通的,但是,显然 H 是弱连通的。

a b

e d

c

G

a b

e d

c

H

Page 124: 第五篇  图论

§13.2 有向图的连通性

【例 13.7 】 举例说明弱连通不一定单向连通,单向连通不一定强连通。

【解 】 举例如下:

图 G 单向连通,但非强连通。图 H 弱连通,但非单向连通。

a b

c dG

a b

c dH

Page 125: 第五篇  图论

§13.2 有向图的连通性

【定理 13.2 】设 D 为一个 n 阶有向图, D是强连通的当且仅当 D 中存在闭通道。

【定理 13.3 】设 D 是 n 阶有向图, D 是单向连通图当且仅当 D 中存在经过每个顶点至少一次的通道。

Page 126: 第五篇  图论

§13.2 有向图的连通性

【定义 13.8 】对于有向图 G ,顶点间的连通关系是等价关系,顶点间的强连通关系也是等价关系,但单向连通关系不是等价关系。按照无向图中划分连通分量的方法,根据顶点间的连通关系对 G 的基础图进行划分,即得到 G 的弱连通分量。而按照顶点间的强连通关系对 G 的顶点集进行划分,即得到有向图 G 的强连通分量。

Page 127: 第五篇  图论

§13.2 有向图的连通性

【例 13.8 】 给出下图的强连通分量。

【解】分解得到如下 3 个强连通分量: G1,G2和G3 :

G

v1 v2

v4v5

v3

e1

e2 e5

e3

e4

e6

G

v1 v2

v4

e2

e3 e6

1

v5v3

G2 G3

Page 128: 第五篇  图论

§13.2 有向图的连通性

【定理 13.4 】设 A 为有向图 D = (V,E) 的邻接矩阵,则 A 的 k 次幂 中元素 为D 中 到 长度为 k 的有向通道数,其中即 为 到自身长度为 k 的有向闭通道数, 为 D 中长度为 k 的有向通道总数, 为 D中的长度为 k 的有向闭通道总数。

( 1)kA k ( )kija

iv jv( )kiia

iv( )

1 1

n nk

iji j

a

( )

1

nk

iii

a

Page 129: 第五篇  图论

【推论 13.1 】 设 ,则 B 中元素 为 D 中长度不大于 k 的有向通道数,其中 为 D 中长度不大于 k 的有向闭通道数。

1 2 kB A A A ( )

1 1

n mk

iji j

b

( )

1

nk

iji

b

Page 130: 第五篇  图论

§13.2 有向图的连通性

【例 13.9 】计算出下图所示有向图 D 的邻接矩阵 A ,并给出2 3 4, ,A A A

v4

v1

v2v3

Page 131: 第五篇  图论

§13.2 有向图的连通性

【解】

从 A1~ A4 不难看出, D 中 v2到 v4 的长度为 1,2,3,4 的有向通道分别为 0 , 1 , 1 ,2 条。 v4 到自身长度为 1 , 2 , 3 , 4 的有向闭通道分别为 1 , 2 , 3 , 5 条,其中有复杂有向闭通道。 D 中长度小于或等于4 的有向通道有 53 条,其中有 15 条为有向闭通道。

2 3 4

0 2 1 0 0 0 2 1 0 0 1 3 0 0 3 4

0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 2, , ,

0 0 0 1 0 0 1 1 0 0 1 2 0 0 2 3

0 0 1 1 0 0 1 2 0 0 2 3 0 0 3 5

A A A A

Page 132: 第五篇  图论

Homework

习题 13.2 , P301

13457911

Page 133: 第五篇  图论

第 14 章 树

Page 134: 第五篇  图论

第十四章 树

§14.1 基本定义和性质§14.2 生成树与最小生成树§14.3 有根树§14.4 二元树和 Huffman树

Page 135: 第五篇  图论

§14.1 基本定义和性质

【定义 14.1 】无圈连通无向图称为无向树,简称树 ,常用 T表示树。树中最长路的长称为树的高。树的度为 1 的顶点称为树叶,其余的顶点称为分枝点。树的边称为树枝。

平凡图称为平凡树。若无向图 G 至少有两个连通分支,每个连通都是树,则称 G 为森林。

由定义,森林即每个连通分量都是树的图。树的树叶就是悬点。

Page 136: 第五篇  图论

§14.1 基本定义和性质

【定理 14.1 】设G = (V, E) 非平凡无向图,边数为 m ,顶点数为 n ,则下列命题等价:

1. G 是树;2. G 中任意两个顶点之间存在唯一的路径。3. G 无圈且 m=n-1;4. G 连通且 m=n-1;5. G 是连通的且 G 中任何边均为桥。6. G 中没有圈,但在任何两个不同的顶点之间

加一条新边,在所得图中得到唯一的一个含新边的圈。

Page 137: 第五篇  图论

§14.1 基本定义和性质

【例 14.1 】指出下图中哪些是树 ?

【解】G1和G2 都是树, G3 不是树, G4不是树。

a b

c d

e f

G1

a b

c

d

e f

G2

a b

c d

e f

G3

a b

c

d

e f

G4

Page 138: 第五篇  图论

§14.1 基本定义和性质

【推论 14.1 】非平凡树至少有两片树叶。【证】设 T是非平凡树,高为 k 。不妨设路P 的长度为 k ,则 P 是最长路。因此, P的起点 u 和终点 v 都不能与 P 外的顶点相邻。也不能有 P 以外的边使 u 或 v 与 P 中的顶点相邻,否则 T中就出现了圈。因此 , 即 u 和 v 都是 T的树叶。

1)()( vdud

Page 139: 第五篇  图论

【例 14.2 】 7 阶无向图有 3 片树叶和 1 个 3度顶点,其余 3 个顶点的度数均无 1 和 3.试画出满足要求的所有非同构的无向树。

T1 T2 T3

Page 140: 第五篇  图论

Homework

习题 14.1, P304

12589

Page 141: 第五篇  图论

§14.2 生成树与最小生成树

【定义 14.2 】 设 T是无向图 G 的子图并且为树,则称 T为 G 的树。若 T是 G 的树且为生成子图,则称 T是 G 的生成树。设T是 G 的生成树。 ,若 ,则称 e为 T的树枝,否则称 e 为 T的弦。称导出子图 G[E(G)-E(T)]为 T的余树,记作 。

( )e E G ( )e E T

T

Page 142: 第五篇  图论

§14.2 生成树与最小生成树

【定理 14.2 】 无向 G 连通当且仅当 G 有生成树。

【证】充分性显然,下面证明必要性。 若 G 中无圈, G 为自己的生成树。若 G

中含圈,任取一圈,随意地删除圈上的一条边,若再有圈再删除圈上的一条边,直到最后无圈为止,易知所得图无圈(当然无闭通道)、连通且为 G 的生成子图,所以为 G 的生成树。

Page 143: 第五篇  图论

§14.2 生成树与最小生成树

【推论 14.2 】 设 G 为 n 阶m 条边的无向连通图,则 m≥n-1 。

【推论 14.3 】 设 G 是 n 阶m 条边的无向连通图, T为 G 的生成树,则 T的余树中含有 m-n+1 条边(即 T有m-n+1 条弦)。

【推论 14.4 】 设 T是连通图 G 的一棵生成树,为 T的余树, C 为 G 中任意一个圈,则 。

( ) ( )E T E C

Page 144: 第五篇  图论

§14.2 生成树与最小生成树

求生成树的方法有很多。其中一种方法是使用广度优先搜索算法,简记为BFS(Breadth-First-Search) 。

在广度优先搜索算法中,首先从顶点 S 开始。然后找出与 S 相邻的顶点,给它们做标记 1(S)(广度优先搜索算法给出的顶点标记指明了该顶点与 S 之间的距离,以及该顶点的从 S 到它的一条最短路上的前驱)。接下来,考虑每个与标记为 1 的顶点 V 相邻的未标记的顶点;把这些顶点标记为 2(V) 。按这种方式继续进行,直到没有与已标记的顶点相邻的未标记的顶点。

Page 145: 第五篇  图论

§14.2 生成树与最小生成树

【例 14.3 】用 BFS 求下图的生成树。

JK

G

FC

D

HEB

A

Page 146: 第五篇  图论

【解】可以从任意顶点开始 BFS 算法,比如从 K 开始,把它标记为 0(-) 。与 K 相邻的顶点是 A 和 B ,它们被标记为 1(K) 。接下来对邻接于 A 和 B 的未标记的顶点 D和 E 做标记。它们分别被标记为 2(A)和2(B) 。按这样的方法,直到所有的顶点都被标记为止。

Page 147: 第五篇  图论

4(G)J

3(D)G

4(C)F

3(D)C

2(A)D

H3(D)

E2(B)B

1(K)

0(-)K

1(K)A

Page 148: 第五篇  图论

§14.2 生成树与最小生成树

注意 : 在使用 BFS 算法时,有些地方边可任意选取。不同的选择导致不同的生成树。例如可选择边 (E,H) 和( F , G ),而不选择边( D , H )和( C , F )。这样就给出如下图中粗边所示的生成树。

4(G)J

3(D)G

4(C)F

3(D)C

2(A)D

H3(D)

E2(B)B

1(K)

0(-)K

1(K)A

Page 149: 第五篇  图论

§14.2 生成树与最小生成树

【定义 14.3 】 设无向连通带权图G=<V,E,W>, T是 G 的一棵生成树。 T的各边权之和称为 T的权,记作W(T)。 G 的所有生成树中权最小的生成树称为 G 的最小生成树。

Page 150: 第五篇  图论

§14.2 生成树与最小生成树

求最小生成树已经有许多种算法,这里介绍避圈法( Kruskal 算法)。( 1 )设 n 阶无向连通带权图 G=<V,E,W>有

m 条边。不妨设 G 中没有环(否则,可以将所有的环先删去),将 m 条边按权从小到大顺序排列,设为 .( 2 )取 在 T中,然后依次检查 ,若 与T中的边不能构成圈,则取 在 T中,否则弃去( 3 )算法停止时得到的 T为 G 的最小生成树

1 2, , me e e

1e

2 3, , me e e

je

je

jeje

Page 151: 第五篇  图论

§14.2 生成树与最小生成树

另外一种求最小生成树的算法是 Prim 算法 Prime 算法1)设 G 是 n 个顶点的连通无向图, T是零树。

不妨设 G 中没有环,选择最小的一边(包括端点),加入 G 。

2)选择与 T中关联的权最小的边 e ,如果将其加入到 T中不构成闭圈,则将其加入到 T中。

3) 重复执行 2),直到 T中有 n-1 条边。4) 此时的 T为 G 的最小生成树。

Page 152: 第五篇  图论

§14.2 生成树与最小生成树

【例 14.5 】用普林算法求下图中的最小生成树。

2 3 1

4 3 3

3 3 1

3

4

1

2

2

4

5

3

ab c d

e f g h

i j k l

Page 153: 第五篇  图论

§14.2 生成树与最小生成树

【解】选择 边 权 1 (b,f) 1 2 (a,b} 2 3 (f,i) 2 4 (a,e) 3 5 (i,j) 3 6 (f,g) 3 7 (c,g) 2 8 (c,d) 1 9 (g,h) 3 10 ( h,l) 3 11 (k,l) 1

Page 154: 第五篇  图论

Homework

习题 14.2, P307

15691012

Page 155: 第五篇  图论

§14.3 有根树

【定义 14.4 】 根据以上过程产生的有向图称为有根树。我们可以任意指定一个顶点为根来将一个无根树转化为有根树,而选择不同的根将产生不同的有根树。

在有根树T中,设 v 是非根顶点,对于有向边 (u, v) ,将顶点 u 称为 v 的父顶点。显然, u 是唯一的,否则产生圈。相对地,将 v 称为 u 的子顶点。有相同父顶点的顶点称为兄弟顶点。若存在从 u 到 v 的有向路,称 u 为 v 的祖先顶点,称 v 为 u 的后代顶点。没有子顶点的顶点称为树叶。有子顶点的顶点称为内顶点。

Page 156: 第五篇  图论

§14.3 有根树

若 v 是有根树T中的一个顶点,那么由 v和它的所有后代及所有与这些后代相关联的边所形成的子图称为以 v 为根的子树。

从根到顶点 v 的有向路的长度称为 v 的层数。树叶顶点的最大层数称为有根树的高,换言之,有根树的高就是就是从根到其他所有顶点的有向路的最大长度。

Page 157: 第五篇  图论

§14.3 有根树

【例 14.6 】指出下图 T的树叶顶点和高。并将其分别以 a 和 e 为根,转化为有根树。并分别指出其高和树叶顶点。

f

d

a

b

g

e

c

T

Page 158: 第五篇  图论

§14.3 有根树

【解】 T的最长路为 e, c, a, b, f ,故高为4 。树叶顶点为: f, g, d, e 。

转化为有根树如下:在以 a 为根的有根树(见下图)中,高为

3 ,树叶顶点为 f, g , e, d 。在以 e 为根的有根树(见下图)中,高为

4 ,树叶顶点为 f, g ,d 。

Page 159: 第五篇  图论

f

d

a

b

g e

c

以a为根 以 e为根

e

c

a

b d

f g

Page 160: 第五篇  图论

§14.3 有根树

【例 14.7 】 在以 a 为根的有根树(边的方向省略)中,找出 c 的父顶点, g 的子顶点, h 的兄弟顶点, e 的所有祖先顶点,b 的所有后代顶点,所有内顶点,所有树叶。给出以 g 为根的子树。a

b f g

c h i j

d k l me

Page 161: 第五篇  图论

§14.3 有根树

【解】c 的父顶点是 b ;g 的子顶点是 h , i, j;h 的兄弟顶点是 i和 j;e 的祖先顶点是 c , b , a ;b 的后代顶点是 c , d , e ;所有内顶点为 a , b , g , c , h , j;树叶为 d , e , f , i, k , l,m 。以 g 为根的子树为:

g

h i j

k l m

Page 162: 第五篇  图论

§14.3 有根树

【定义 14.5 】设 T是一棵有根树,若将 T中层数相同的顶点都标定次序,则称 T为有序树。根据根树T中每个分支点儿子数以及是否有序,可以将根树分成下列各类:

(1)若 T的每个分支点至多有 m 个儿子,则称 T为m 元树;又若 m 元树是有序的,则称它为 m 元有序树。

(2)若 T的每个分支点都恰好有 m 个儿子,则称 T为m 元正则树;又若 T是有序的,则称它为 m 元正则有序树。

(3)若 T是m 元正则树,且每个树叶的层数均为树高,则称 T为m 元完全正则树,又若T是有序的,则称它为 m 元完全正则有序树。

Page 163: 第五篇  图论

对一棵有根树的每个顶点都访问且仅访问一次称为遍历一个根树。若一棵高度为 h的有根 m 元树的所有树叶都在 h 层或 h -1 层,则这棵树是平衡的。

Page 164: 第五篇  图论

【定理 14.6】1. 在二叉树中,第 i层顶点总数不超过 2i-1 。2. 深度为 h 的二叉树最多有 2h-1( h≥) 个

顶点。3. 对于任意一棵二叉树T,如果叶顶点数为

N0,而出度数为 2 的顶点总数为 N2 ,则N0=N2+1 。

Page 165: 第五篇  图论

§14.3 有根树

【例 14.8 】 画出一棵 3 元树,一棵 3 元正则树,和 3 元完全正则树。 3 元树 3 元完全正则树 3 元正则树

【解】

3 元树 3 元正则树 3 元完全正则树

Page 166: 第五篇  图论

§14.3 有根树

【定理 14.3 】带有 i 个内顶点的 m 元正则树含有个顶点。

【证】除根之外的每个顶点都是内顶点的子顶点。因为每个内顶点有 m 个子顶点,所以在树中除根之外还有 mi 个顶点。因此该树含有个顶点。

Page 167: 第五篇  图论

§14.3 有根树

【定理 14.4 】一个 m 元正则树带有1.n 个顶点有 个内顶点和 个树叶。

2.i 个内顶点有 个顶点和 个树叶。

3.l 个树叶有 个顶点和 个内顶点。

( 1)ni

m

( 1)* 1m nl

m

1n mi ( 1) 1l m i

( 1)( 1)n ml m 1

1

li

m

Page 168: 第五篇  图论

§14.3 有根树

【定理 14.5 】在高度为 h 的m 元树至多有

个树叶。【证】m 元树,第 1 层最多有个顶点,第 2层最多有 个顶点,依次推出第 h 层最多有 个顶点,即 个树叶。

hm

hmhm

2m

Page 169: 第五篇  图论

Homework

习题 14.3, P309

1345

Page 170: 第五篇  图论

§14.4 二元树和 Huffman树

【定义 14.6 】二叉树是二元有序树,即每个顶点的出度不大于 2 ,且每个顶点的儿子按一定顺序排列的有根树。每个顶点的出度为 0 或 2 的二叉树称为二叉正则树。

Page 171: 第五篇  图论

§14.4 二元树和 Huffman树

在计算机和通讯中常用二进制编码表示字符,我们可以利用二元树来对字符进行二进制编码。构造一棵二元树,用其树叶来表示所要编码的字符。从根出发,经过一条有向路到达某一树叶,在该有向路上,规定从一个内顶点左下行表示 0 ,右下行表示 1 ,于是整条有向路就给出了一个二进制串。而这个二进制串就是该树叶所表示的字符的二进制编码。

Page 172: 第五篇  图论

用二进制编码表示字符时,可能出现这样的情况:假设用 1 表示 A ,用 00 表示 B ,用 001 表示 C ,用 100 表示 D ,当我们接收到信息 001100 时,就无法分辨这是CD ,还是 BAD ,还是 CAB ,或者是BAAB 。

Page 173: 第五篇  图论

§14.4 二元树和 Huffman树

为了解决这个问题,需要作如下定义。 【定义 14.7 】 设 是长为 n 的符号串,

称其子串 分别是它的长为 的前缀。 设 是 m 个符号串的集合,若对任意的 ,它们互不为前缀,则称 A 为前缀码。若 A 中的符号串只出现0 和 1 两个符号,则称 A 为二元前缀码。

nn 121

121211 ,,, n

1,,2,1 n mA ,,, 21

jiAji ,,

Page 174: 第五篇  图论

§14.4 二元树和 Huffman树

【定理 14.7 】 一棵二叉树产生一个二元前缀码,并且由二元正则树产生的二元前缀码是唯一的。

Page 175: 第五篇  图论

一般地,在信息传输中,各符号出现的频率是不相同的。在编码时,总是希望常见的字符码的长度短一些,不常见的字符码的长度不妨长一些,这样可以使传输的二进制位尽可能少。

于是,我们给出一个编码的最佳标准,使得在编码 中,设符号串 的出现的几率为pi ,长度为 li ,则 达到最小。

mA ,,, 21 i

m

iiilpL

1

Page 176: 第五篇  图论

§14.4 二元树和 Huffman树

【定义 14.8 】设 T 为二叉树,若 t 片树叶vi 分别对应实数 wi ,则称 wi 是树叶 vi 的权,其中 ,而 称为 T 的权,其中 li 是树叶 vi 的层数,并称 T 为带权二叉树。在所有带权 的 t 片树叶的二叉树中,权最小的二叉树称为最优二叉树,又叫Huffman树。

ti ,,2,1

t

iiilwTw

1

)(

twww ,,, 21

Page 177: 第五篇  图论

§14.4 二元树和 Huffman树

Huffman 算法:( 1 )根据给定的 n 个权值 构成 n 棵二元树的集合 ,其中每棵二叉树 Ti 中只有一个带权wi 的根,其左右子树都为空。( 2 )在 F 中选取两棵根的权值最小的树作为左右

子树构造一棵新的二叉树,且置新二叉树的根的权值为其左右子树上根的权值之和。( 3 )在 F 中删除这两棵树,同时将新得到的二叉树加入 F 中。( 4 )重复 (2)和 (3) ,直到 F 只含一棵树为止。

这棵树就是 Huffman树。

nwww ,,, 21

nTTTF ,,, 21

Page 178: 第五篇  图论

§14.4 二元树和 Huffman树

【例 14.9 】 给出下图中各字符的二进制编码:

【解】A : 1B : 01C : 001D : 000可以验证它是前缀码。

A

B

CD

Page 179: 第五篇  图论

§14.4 二元树和 Huffman树

【例 14.10 】 作带权 2 , 4 , 5 , 7 , 8 ,11的Huffman树。

【解】迭代过程如下:迭代过程中的 (f) 即得到一棵Huffman树,其权值为 37 。

Page 180: 第五篇  图论

2 4 5 7 8 1(a)

2 4

65 7 8 1(b)

2 4

65

117 8 11(c)

7 8

15

2 4

65

11 11(d)

Page 181: 第五篇  图论

2 4

65

11 11

22(e)

7 8

15

2 4

65

11 11

22

7 8

15

37(f)

Page 182: 第五篇  图论

Homework

习题 14.4, P312

1345