1
图论
图论部分
第 7 章 图的基本概念
第 8 章 一些特殊的图
第 9 章 树
3
第 7 章 图的基本概念
7.1 无向图及有向图
7.2 通路、回路、图的连通性 7.3 图的矩阵表示
7.4 最短路径及关键路径
7.1 无向图及有向图
无向图与有向图
顶点的度数
握手定理
简单图
完全图
子图
补图
5
无向图与有向图
多重集合 : 元素可以重复出现的集合
无序积 : AB={(x,y) | xAyB}
定义 无向图 G=<V,E>, 其中
(1) 顶点集 V ,元素称为顶点 (2) 边集 E 为 VV 的多重子集,
其元素称为无向边,简称边 . 例如 , G=<V,E> 如图所示 , 其中 V={v
1, v
2, …,v
5},
E={(v
1,v
1), (v
1,v
2), (v
2,v
3), (v
2,v
3), (v
2,v
5), (v
1,v
5), (v
4,v
5)}
无向图与有向图 ( 续 )
定义 有向图 D=<V,E>, 其中
(1) V 同无向图的顶点集 , 元素也称为顶点
(2) 边集 E 为 VV 的多重子集,其 元素称为有向边,简称边 .
用无向边代替 D 的所有有向边 所得到的无向图称作 D 的基图
右图是有向图,试写出它的 V 和 E
注意:图的数学定义与图形表示 , 在
同构 ( 待叙 ) 的意义下是一一对应的
7
无向图与有向图 ( 续 )
通常用 G 表示无向图 , D 表示有向图 , 也常用 G 泛指 无向图和有向图 , 用 e
k表示无向边或有向边 .
V(G), E(G), V(D), E(D): G
和 D 的顶点集 , 边集 .
n阶图
: n个顶点的图
有限图
: V, E都是有穷集合的图
零图
: E=平凡图
: 1阶零图
空图
: V=顶点和边的关联与相邻
定义 设 ek=(vi,vj) 是无向图 G=<V,E> 的一条边 , 称 vi,vj 为 ek
的端点 , ek 与 vi (vj) 关联 . 若 vi vj, 则称 ek 与 vi (vj) 的关联 次数为 1; 若 vi = vj, 则称 ek 为环 , 此时称 ek 与 vi 的关联次 数为 2; 若 vi 不是 ek 端点 , 则称 ek 与 vi 的关联次数为 0. 无边关联的顶点称作孤立点 .
定义 设无向图 G=<V,E>, vi,vjV, ek,elE, 若 (vi,vj) E, 则称 vi,vj相邻 ; 若 ek,el至少有一个公共端点 , 则称 ek,el相邻 . 对有向图有类似定义 . 设 ek=vi,vj 是有向图的一条边 , 又称 v
i是 ek的始点 , vj是 ek 的终点 , vi邻接到 vj, vj邻接于 vi.
9
邻域和关联集
) (v N
)
D (v
} { )
( )
(v N v v
ND
D
)D (v
) ( )
( )
(v v v
ND
D
D设无向图 G, vV(G)
v 的邻域 N(v)={u|uV(G)(u,v)E(G)uv}
v 的闭邻域 = N(v)∪{v}
v 的关联集 I(v)={e|eE(G)e 与 v 关联 }
设有向图 D, vV(D)
v 的后继元集 ={u|uV(D)<v,u>E(G)u
v}
v 的先驱元集 ={u|uV(D)<u,v>E(G)u
v}
v 的邻域
v 的闭邻域
顶点的度数
设 G=<V,E> 为无向图 , vV,
v 的度数 ( 度 ) d(v): v 作为边的端点次数之和
悬挂顶点 : 度数为 1 的顶点 悬挂边 : 与悬挂顶点关联的边
G 的最大度 (G)=max{d(v)| vV}
G 的最小度 (G)=min{d(v)| vV}
例如 d(v
5)=3, d(v
2)=4, d(v
1)=4, (G)=4, (G)=1,
是悬挂顶点 , e 是悬挂边 , e 是环
11
顶点的度数 ( 续 )
设 D=<V,E> 为有向图 , vV,
v 的出度 d+(v): v 作为边的始点次数之和 v 的入度 d(v): v 作为边的终点次数之和
v 的度数 ( 度 ) d(v): v 作为边的端点次数之和 d(v)= d+(v)+ d-(v)
D 的最大出度 +(D), 最小出度 +(D) 最大入度 (D), 最小入度(D) 最大度 (D), 最小度 (D)
例如 d+(a)=4, d-(a)=1, d(a)=5, d+(b)=0, d-(b)=3, d(b)=3, +(D)=4, +(D)=0, (D)=3, (D)=1, (D)=5, (D)=3.
图论基本定理——握手定理
定理 任意无向图和有向图的所有顶点度数之和都等 于边数的 2 倍 , 并且有向图的所有顶点入度之和 等于出度之和等于边数 .
证 G 中每条边(包括环)均有两个端点,所以在 计算 G 中各顶点度数之和时,每条边均提供 2 度
, m 条边共提供 2m 度 . 有向图的每条边提供一
个入度和一个出度 , 故所有顶点入度之和等于出
度之和等于边数 .
13
握手定理 ( 续 )
2 1
) ( )
( )
( 2
V v V
v V
v
v d v
d v
d m
2) (
V v
v
d
1
) (
V v
v d
推论 在任何无向图和有向图中,奇度顶点的个数必 为偶数 .
证 设 G=<V,E> 为任意图,令 V1={v | vVd(v) 为奇数 } V2={v | vVd(v) 为偶数 }
则 V1∪V2=V, V1∩V2= ,由握手定理可知
由于 2m, 均为偶数,所以 也为偶数 , 但因 为
V1 中顶点度数都为奇数,所以 |V1| 必为偶数 .
图的度数列
设无向图 G 的顶点集 V={v
1, v
2, …, v
n} G 的度数列 : d(v
1), d(v
2), …, d(v
n)
如右图度数列 :4,4,2,1,3
设有向图 D 的顶点集 V={v
1, v
2, …, v
n} D 的度数列 : d(v
1), d(v
2), …, d(v
n)
D 的出度列 : d
+(v
1), d
+(v
2), …, d
+(v
n) D 的入度列 : d
(v
1), d
(v
2), …, d
(v
n) 如右图度数列 :5,3,3,3
出度列 :4,0,2,1
15
握手定理的应用
例 1 (3,3,3,4), (2,3,4,6,8) 能成为图的度数列吗 ? 解 不可能 . 它们都有奇数个奇数 .
例 2 已知图 G 有 10 条边 , 4 个 3 度顶点 , 其余顶 点的度数均小于等于 2, 问 G 至少有多少个顶点 ? 解 设 G 有 n 个顶点 . 由握手定理 ,
43+2(n-4)210
解得 n8
握手定理的应用 ( 续 )
例 3 证明不存在具有奇数个面且每个面都具有奇数条 棱的多面体 .
证 用反证法 . 假设存在这样的多面体 ,
作无向图 G=<V,E>, 其中 V={v | v 为多面体的面 },
E={(u,v) | u,vV u 与 v 有公共的棱 uv}.
根据假设 , |V| 为奇数且 vV, d(v) 为奇数 . 这与握
手定理的推论矛盾 .
17
多重图与简单图
定义 (1) 在无向图中 , 如果有 2 条或 2 条以上的边 关联同一对顶点 , 则称这些边为平行边 , 平行边 的条数称为重数 .
(2) 在有向图中 , 如果有 2 条或 2 条以上的边具有相 同的始点和终点 , 则称这些边为有向平行边 , 简 称平行边 , 平行边的条数称为重数 .
(3) 含平行边的图称为多重图 .
(4) 既无平行边也无环的图称为简单图 .
注意 : 简单图是极其重要的概念
多重图与简单图 ( 续 )
例如
e
5和 e
6是平行边
重数为 2
不是简单图
e
2和 e
3是平行边 , 重数 为 2
e 和 e 不是平行边
19
图的同构
定义 设 G
1=<V
1,E
1>, G
2=<V
2,E
2> 为两个无向图 ( 有 向图 ), 若存在双射函数 f: V
1V
2, 使得对于任意的 v
i,v
jV
1,
(v
i,v
j)E
1( <v
i,v
j>E
1)当且仅当
(f(v
i),f(v
j))E
2( <f(v
i),f(v
j)>E
2),
并且 , (v
i,v
j) ( <v
i,v
j> )与 (f(v
i),f(v
j)) ( <f(v
i),f(v
j)
> )
的重数相同,则称 G
1与 G
2是同构的,记作 G
1G
2.
图的同构 ( 续 )
几点说明:
图之间的同构关系具有自反性、对称性和传递性 .
能找到多条同构的必要条件 , 但它们都不是充分条件 : ① 边数相同,顶点数相同
② 度数列相同 ( 不计度数的顺序 )
③ 对应顶点的关联集及邻域的元素个数相同,等等 若破坏必要条件,则两图不同构
至今没有找到判断两个图同构的多项式时间算法
21
图的同构 ( 续 )
例 1 试画出 4 阶 3 条边的所有非同构的无向简单图
例 2 判断下述每一对图是否同构 : (1)
度数列不同
不同构
例 2 ( 续 )
(2)
不同构
入 ( 出 ) 度列不同 (3)
度数列相同
但不同构
为什么 ?
23
完全图
n 阶无向完全图 K
n: 每个顶点都与其余顶点相邻的 n 阶无向简单图 .
简单性质 : 边数 m=n(n-1)/2, = =n-1
n 阶有向完全图 : 每对顶点之间均有两条方向相反 的有向边的 n 阶有向简单图 .
简单性质 : 边数 m=n(n-1), = =2(n-1),
+=
+=
-=
-=n-1
完全图 ( 续 )
(1) 为 5 阶完全图 K
5(2) 为 3 阶有向完全图
(3) 称为彼得森图
(1) (2) (3)
25
子图
定义 设 G=<V,E>, G =<V ,E > 是两个图
(1)
若 V V 且 E E, 则称 G 为 G 的子图
, G为 G 的
母图 ,记作 G G
(2)
若 G G 且 V =V ,则称 G 为 G 的生成子图
(3)若 V V 或 E E ,称 G 为 G 的真子图
(4)
设 V V 且 V , 以 V 为顶点集 , 以两端点都在
V
中的所有边为边集的 G 的子图称作
V 的导出子图,记作 G[V ]
(5)
设 E E 且 E , 以 E 为边集 , 以 E 中边关联的 所有顶点为顶点集的 G 的子图称作
E 的导出子图 ,
记作 G[E ]
子图 ( 续 )
例 画出 K
4的所有非同构的生成子图
27