2.概念与计算
2.1 图的定义
2.1.1 定义
图(graph)
G
G
G 是一个有序的三元组,记作
G
=
<
V
(
G
)
,
E
(
G
)
,
ψ
(
G
)
>
G=<V(G),E(G),\psi (G)>
G=<V(G),E(G),ψ(G)>。
V
(
G
)
V(G)
V(G) 是顶点集。
E
(
G
)
E(G)
E(G) 是边集。
ψ
(
G
)
\psi (G)
ψ(G) 是关联函数,;例如
ψ
G
(
e
)
=
v
i
v
j
\psi_G (e)=v_iv_j
ψG(e)=vivj。
N
G
(
v
)
N_G(v)
NG(v) 表示点
v
v
v 的一阶邻域点。
相邻:与同一个顶点关联的两条边是相邻的。
环:两个端点重合的边称为环。
连杆:端点不重合的边成为连杆。
k
k
k 重边:连接同一对顶点的
k
k
k 条边。
单边:一对顶点之间只有一条边。
简单图:无环无重边
2.1.2 度
度:与顶点
v
v
v 关联的边的数目,记作
d
(
v
)
d(v)
d(v)。
度序列:
(
d
(
v
1
)
,
d
(
v
2
)
,
.
.
.
,
d
(
v
v
)
)
(d(v_1),d(v_2),...,d(v_v))
(d(v1),d(v2),...,d(vv))
孤立点:度为
0
0
0。
悬挂点:度为
1
1
1。
悬挂边:与悬挂点相关联的边。
偶点:度为偶数的顶点。
奇点:度为奇数的顶点。
最小度
δ
(
G
)
\delta(G)
δ(G):图
G
G
G 顶点度的最小值。
最大度
Δ
(
G
)
\Delta(G)
Δ(G):图
G
G
G 顶点度的最大值。
握手引理:
∑
v
∈
V
=
2
ϵ
\sum_{v\in V} = 2 \epsilon
∑v∈V=2ϵ。
例题:空间中不存在有奇数个面并且每个面只有奇数个棱的多面体。
思路:将面抽象为点,两面之间的棱为边,则转化成了有奇数个点且每个点都是奇数度的图,与握手引理矛盾,得证。
例题:证明非负整数序列
(
d
1
,
d
2
,
.
.
.
,
d
v
)
(d_1,d_2,...,d_v)
(d1,d2,...,dv) 是某个图的度序列当且仅当
∑
i
=
1
v
d
i
\sum_{i=1}^{v} d_i
∑i=1vdi 是偶数。
思路:先画出
v
v
v 个孤立点,然后选序列中度大于
1
1
1 的点连环直至将每个点仍需添加的度为
0
0
0 或
1
1
1。然后将两两选择度为
1
1
1 的点。能连通即可得证。
图序列:简单图的度序列。
判断是否为图序列:非负整数序列
(
d
1
,
d
2
,
.
.
.
,
d
v
)
(
d
1
≥
d
2
≥
.
.
.
≥
d
v
)
(d_1,d_2,...,d_v)(d_1 \geq d_2 \geq ... \geq d_v)
(d1,d2,...,dv)(d1≥d2≥...≥dv) 是图序列当且仅当
∑
i
=
1
v
d
i
\sum_{i=1}^v d_i
∑i=1vdi 是偶数,并且对一切整数
k
(
1
≤
k
≤
v
−
1
k(1\leq k\leq v-1
k(1≤k≤v−1,有
∑
i
=
1
k
≤
k
(
k
−
1
)
≤
∑
i
=
k
+
1
v
m
i
n
{
k
,
d
i
}
\sum_{i=1}^{k} \leq k(k-1) \leq \sum_{i=k+1}^{v}min \{k,d_i\}
∑i=1k≤k(k−1)≤∑i=k+1vmin{k,di}.
例题:(1,2,2,4,5);(1,2,3,3,4,5);(1,2,3,4,4,5) 三个是否是图序列?
思路:第一个不是图序列,当点数为
5
5
5 时,不存在度为
5
5
5 的简单图。第二个是图序列。 第三个不是图序列,先画出度为
5
5
5 的点的连边,然后只有三个点还能连边,需要的度依次为
2
,
3
,
3
2,3,3
2,3,3,简单图中的三个点不可能连出度为
3
3
3 的连边情况。
2.1.3 同构
同构:若两个图顶点之间建立一一对应的关系,且任意一对顶点的边数对应相同,则称两图是同构的。
2.2 子图和连通分支
2.2.1 子图
子图:设
H
H
H 和
G
G
G 为两个图。若
V
(
H
)
⊆
V
(
G
)
V(H) \subseteq V(G)
V(H)⊆V(G) 且
E
(
H
)
⊆
E
(
G
)
E(H) \subseteq E(G)
E(H)⊆E(G),则
H
H
H 为
G
G
G 的子图。记作
H
⊆
G
H \subseteq G
H⊆G。
相等:设
H
H
H 和
G
G
G 为两个图。若
V
(
H
)
=
V
(
G
)
V(H) = V(G)
V(H)=V(G) 且
E
(
H
)
=
E
(
G
)
E(H) = E(G)
E(H)=E(G),则
H
H
H 为
G
G
G 相等。记作
H
=
G
H = G
H=G。
真子图:若
H
⊆
G
H \subseteq G
H⊆G 且
H
≠
G
H \neq G
H=G,则称
H
H
H 是
G
G
G 的真子图,记作
H
⊂
G
H \subset G
H⊂G。
支撑(生成)子图:若
V
(
H
)
=
V
(
G
)
V(H) = V(G)
V(H)=V(G) 且
E
(
H
)
⊆
E
(
G
)
E(H) \subseteq E(G)
E(H)⊆E(G),则称
H
H
H 是
G
G
G 的支撑子图或生成子图。
基础简单图:对图
G
G
G 去除重边和环后的图
H
H
H。
2.2.2 导出子图
导出子图:设 V ′ V' V′ 是 V ( G ) V(G) V(G) 的非空子集,以 V ′ V' V′ 为顶点集,以 E ′ = u v ∈ E ( G ) ∣ u , v ∈ V ′ E'= {uv \in E(G) | u,v \in V'} E′=uv∈E(G)∣u,v∈V′ 为边集的 G G G 的子图称为 G 的由 V ′ V' V′ 导出的子图,记作 G [ V ′ ] G[V'] G[V′],简称为 G G G 的导出子图。
2.2.3 连通分支
途径的起点/终点/长度/逆转/衔接/节: W = v o e 1 v 1 e 2 . . . e k v k W=v_oe_1v_1e_2...e_kv_k W=voe1v1e2...ekvk,这里 v i ∈ V ( 0 ≤ i ≤ k ) , e j = v j − 1 v j ∈ E ( 1 ≤ j ≤ k ) v_i\in V(0\leq i \leq k),e_j=v_{j-1}v_j \in E(1 \leq j \leq k) vi∈V(0≤i≤k),ej=vj−1vj∈E(1≤j≤k), v 0 v_0 v0 称为 W W W 的起点, v k v_k vk 称为 W W W 的终点,之间的 v v v 称为 W W W 的内部点。 W W W 称为 G G G 的 ( v 0 , v k ) (v_0,v_k) (v0,vk) 途径。 k k k 为 W W W 的长度。逆转如字面意思。衔接意味对于两个不同的 W W W,其中一条 W W W 的终点为另一个 W W W 的起点,则两条 W W W 可以衔接。节是 W W W 序列中的子集。
迹:途径
w
w
w 的边互不相同,则称
W
W
W 为迹。若起点终点相同,则
W
W
W 为闭迹。
链:途径
w
w
w 的顶点互不相同,则称
W
W
W 为链。一个顶点也称为一条链。
圈:起点、内部点互不相同的闭迹称为圈,长为
k
k
k 的圈称为
k
k
k 圈。根据
k
k
k 的奇偶性,相应地称
k
k
k 圈为奇圈和偶圈。
连通:若图
G
G
G 中存在
(
u
,
v
)
(u,v)
(u,v) 链,则顶点
u
u
u 和
v
v
v 在图
G
G
G 中是连通的。
连通分支(数):
V
V
V 的非空划分
(
V
1
,
V
2
.
.
.
,
V
ω
)
(V_1,V_2...,V_\omega)
(V1,V2...,Vω),导出子图
G
[
V
1
]
,
G
[
V
2
]
,
.
.
.
,
G
[
V
ω
]
G[V_1],G[V_2],...,G[V_\omega]
G[V1],G[V2],...,G[Vω] 称为
G
G
G 的连通分支。
ω
(
G
)
\omega(G)
ω(G) 为图
G
G
G 的连通分支数。
2.2.4 距离
距离:图
G
G
G 中所有
(
u
,
v
)
(u,v)
(u,v) 链的最短链,记为
d
(
u
,
v
)
d(u,v)
d(u,v),被称之为
u
,
v
u,v
u,v 之间的距离。
例题:设
G
G
G 是连通图,且
G
G
G 中至少有一对顶点不相邻,证明存在
u
,
v
,
w
∈
V
u,v,w \in V
u,v,w∈V,使
u
v
,
v
w
∈
E
uv,vw \in E
uv,vw∈E,但
u
w
∉
E
uw \notin E
uw∈/E。
思路:设
x
,
y
∈
V
x,y \in V
x,y∈V 且
x
y
∉
E
xy \notin E
xy∈/E。因
G
G
G 连通,故
G
G
G 中存在最短
(
x
,
y
)
(x,y)
(x,y) 链
P
=
x
v
1
v
2
.
.
.
y
P=xv_1v_2...y
P=xv1v2...y。
由
P
P
P 的最短性可知
x
v
2
∉
E
xv_2 \notin E
xv2∈/E,于是令
u
=
x
,
v
=
v
1
,
w
=
v
2
u=x,v=v_1,w=v_2
u=x,v=v1,w=v2,则有
u
v
∈
E
,
v
w
∈
E
uv \in E,vw \in E
uv∈E,vw∈E 但
u
w
∉
E
uw \notin E
uw∈/E。
2.3 重要图类
2.3.1 完全图
完全图:含有
C
n
2
C_{n}^{2}
Cn2 条边,且每对顶点都相邻的简单图,记作
K
n
K_n
Kn。
空图:边集为空的图。
平凡图:图中只有一个顶点。
非平凡图:除了平凡图以外的图。
例题:在任意
6
6
6 个人聚会上,要么有
3
3
3 个人相互认识,要么有
3
3
3 个人相互不认识。
思路:先构造
6
6
6 阶完全图
K
6
K_6
K6,其中
V
=
v
1
,
v
2
,
.
.
.
,
v
6
V = {v_1,v_2,...,v_6}
V=v1,v2,...,v6。
v
i
v_i
vi 代表第
i
i
i 个人。
若
v
i
v_i
vi 与
v
j
v_j
vj 互相认识,则染这条边为红色边,否则为蓝色边。于是问题转成了图中必定存在同色三角形问题。因此得证。
2.3.2 正则图
正则图/k正则图:每个顶点的度都相等(都为
k
k
k)的图称为(
k
k
k)正则图。一般指的是简单图。
例题:对于任意的正整数
n
n
n,
n
k
nk
nk 为偶数,当
n
≥
k
+
1
n \geq k + 1
n≥k+1,
n
n
n 阶
k
k
k 正则图存在吗?
思路:
γ
1
\gamma_1
γ1 法则:构造偶数正则图法则。
设
G
G
G 是
v
v
v 阶
k
k
k 正则图,且
k
=
2
m
k=2m
k=2m,
m
≥
1
m \geq 1
m≥1,按以下步骤生成新图
G
′
G'
G′:
step 1:在图
G
G
G 中任取
m
m
m 条互不相邻的边:
v
1
v
2
,
v
3
v
4
,
.
.
.
,
v
2
m
−
1
v
2
m
v_1v_2,v_3v_4,...,v_{2m-1}v_{2m}
v1v2,v3v4,...,v2m−1v2m 并删除。
step 2:增加新的顶点
v
v
v,并向所有被删边的点增加一条新边
v
v
i
(
i
=
1
,
2
,
.
.
.
,
2
m
)
vv_i(i=1,2,...,2m)
vvi(i=1,2,...,2m),得到新图
G
′
G'
G′。
γ
2
\gamma_2
γ2 法则:构造奇数正则图法则。
设
G
G
G 是
v
v
v 阶
k
k
k 正则图,且
k
=
2
m
+
1
k=2m+1
k=2m+1,
m
≥
1
m \geq 1
m≥1,按以下步骤生成新图
G
′
G'
G′:
step 1:在图
G
G
G 中任取
m
m
m 条互不相邻的边:
v
1
v
2
,
v
3
v
4
,
.
.
.
,
v
2
m
−
1
v
2
m
v_1v_2,v_3v_4,...,v_{2m-1}v_{2m}
v1v2,v3v4,...,v2m−1v2m 并删除。
step 2:再在图
G
G
G 中任取
m
m
m 条互不相邻的边:
u
1
u
2
,
u
3
u
4
,
.
.
.
,
u
2
m
−
1
u
2
m
u_1u_2,u_3u_4,...,u_{2m-1}u_{2m}
u1u2,u3u4,...,u2m−1u2m 并删除。
(step 1 和 step 2 中可能会出现重复点)
step 3:增加新的顶点
w
1
w_1
w1,并向 step 1 中所有被删边的点增加一条新边
w
1
v
i
(
i
=
1
,
2
,
.
.
.
,
2
m
)
w_1v_i(i=1,2,...,2m)
w1vi(i=1,2,...,2m)。
step 4:再增加新的顶点
w
2
w_2
w2,并向 step 2 中所有被删边的点增加一条新边
w
2
u
i
(
i
=
1
,
2
,
.
.
.
,
2
m
)
w_2u_i(i=1,2,...,2m)
w2ui(i=1,2,...,2m)。
step 5:加边
w
1
w
2
w_1w_2
w1w2,得新图
G
′
G'
G′。
定理:
n
n
n 阶
k
k
k 正则简单图存在的充要条件是
k
≤
n
−
1
k \leq n-1
k≤n−1 且
n
k
nk
nk 为偶数。
证明:设
G
G
G 是
n
n
n 阶
k
k
k 正则简单图,每个顶点最多与其他
n
−
1
n-1
n−1 个顶点相邻,因此
k
≤
n
−
1
k \leq n-1
k≤n−1 成立。
设
k
=
2
m
k=2m
k=2m,取
G
=
K
k
+
1
G=K_{k+1}
G=Kk+1,则
G
G
G 为
k
k
k 正则图。根据
γ
1
\gamma_1
γ1 法则,顶点每次可以增加
1
1
1 而点的度数不变。因此可以得到
n
n
n 阶
k
k
k 正则图。
2.3.3 二部图
(完全)二部图:若顶点集可以划分为两个子集 X X X 和 Y Y Y,使得 G G G 中每条边的一端点在 X X X 中,另一个端点在 Y Y Y 中,则称 G G G 图为二部图。二部图 G G G 记作 G = ( X , Y , E ) G=(X,Y,E) G=(X,Y,E)。若集合 X X X 中的每个点都与 Y Y Y 中所有点都恰好有一条边,且 X 、 Y X、Y X、Y 均不为空集,则该图记作完全二部图,记作 K m , n K_{m,n} Km,n。
定理:图
G
G
G 的二部图,当且仅当
G
G
G 中不含奇圈。
证明:
step 1:
设
G
=
(
X
,
Y
,
E
)
G=(X,Y,E)
G=(X,Y,E) 是二部图,
C
=
(
v
0
v
1
.
.
.
v
k
v
0
)
C=(v_0v_1...v_kv_0)
C=(v0v1...vkv0) 是
G
G
G 中的一个圈,长度为
k
+
1
k+1
k+1。
设
v
0
∈
X
v_0 \in X
v0∈X,于是后面节点依次属于
Y
Y
Y 和
X
X
X。因此得到
v
2
i
∈
X
,
v
2
i
+
1
∈
Y
v_{2i} \in X,v_{2i+1} \in Y
v2i∈X,v2i+1∈Y。
因此
k
=
2
l
+
1
k=2l+1
k=2l+1。该圈为偶圈。
step 2:
设
G
G
G 连通(若不连通则取一个连通分支证明之)。在
G
G
G 中任取一个顶点
u
u
u,令
X
=
{
x
∣
d
(
u
,
x
)
为偶数
}
X=\{x|d(u,x)为偶数\}
X={x∣d(u,x)为偶数},
Y
=
{
y
∣
d
(
u
,
y
)
为奇数
}
Y=\{y|d(u,y)为奇数\}
Y={y∣d(u,y)为奇数}。显然
X
、
Y
X、Y
X、Y 是图
G
G
G 的一个划分。
为了证明
G
G
G 是二部图,只需证明
X
X
X 或
Y
Y
Y 中任何两个顶点都不相邻。
设
v
,
w
v,w
v,w 是
X
X
X 中任意两个顶点,令
P
P
P 是
G
G
G 中最短
(
u
,
v
)
(u,v)
(u,v) 链,Q 是
G
G
G 中最短
(
u
,
w
)
(u, w)
(u,w) 链。
设
P
P
P 与
Q
Q
Q 的最后一个公共顶点是
u
1
u_1
u1。因为
P
P
P 和
Q
Q
Q 都是最短链,因此
P
P
P 的
(
u
,
u
1
)
(u,u_1)
(u,u1) 节和
Q
Q
Q 的
(
u
,
u
1
)
(u,u_1)
(u,u1) 节都是最短
(
u
,
u
1
)
(u,u_1)
(u,u1) 链,从而长度相等。如下图:
又因
P
P
P 和
Q
Q
Q 的长度都为偶数,故
P
P
P 的
(
u
1
,
v
)
(u_1,v)
(u1,v) 节
P
1
P_1
P1 和
Q
Q
Q 的
(
u
1
,
w
)
(u_1,w)
(u1,w) 节
Q
1
Q_1
Q1 有相同奇偶性,于是
(
v
,
w
)
(v,w)
(v,w) 链
P
1
−
1
Q
1
P_1^{-1}Q_1
P1−1Q1 的长是偶数。因此若
v
v
v 与
w
w
w 相邻,则
P
1
−
1
Q
1
w
v
P_1^{-1}Q_1wv
P1−1Q1wv 就是
G
G
G 中的一个奇圈,与假设矛盾。
2.4 有向图
2.4.1 定义
有向图:有向图 D D D 指一个有序三元组 ( V ( D ) , A ( D ) , ψ D ) (V(D),A(D),\psi_D) (V(D),A(D),ψD),其中 V ( D ) ≠ ∅ V(D) \neq \varnothing V(D)=∅, V ( D ) ∩ A ( D ) = ∅ V(D) \cap A(D) = \varnothing V(D)∩A(D)=∅。 V ( D ) V(D) V(D) 是顶点集。 A ( D ) A(D) A(D) 是弧集。 ψ D \psi_D ψD 称为 D D D 的关联函数,使得 D D D 每条弧对应于 D D D 的有序定点对。 ψ D ( a ) = ( u , v ) \psi_D(a)=(u,v) ψD(a)=(u,v) 中 u u u 是弧 a a a 的尾, v v v 称为 a a a 的头。
2.4.2 基础图
基础图:在有向图中去掉弧上箭头的图。
定向图:对图
G
G
G 的每条边规定方向后的图。
相邻、连通、圈、子图 的概念和含义不变。
2.4.3 出度和入度
入弧:有向图
D
D
D 中以顶点
v
v
v 为头的弧。
出弧:有向图
D
D
D 中以顶点
v
v
v 为尾的弧。
入度:记作
d
D
−
(
v
)
d_D^-(v)
dD−(v),称为
v
v
v 的入度。
出度:记作
d
D
+
(
v
)
d_D^+(v)
dD+(v),称为
v
v
v 的出度。
对于任何有向图D,有:
∑
v
∈
V
d
D
−
(
v
)
=
∑
v
∈
V
d
D
+
(
v
)
=
ε
(
D
)
\sum_{v \in V}d_D^-(v) = \sum_{v \in V}d_D^+(v) = \varepsilon(D)
∑v∈VdD−(v)=∑v∈VdD+(v)=ε(D)
2.4.4 回路
有向途径:
W
=
v
0
a
1
v
1
a
2
.
.
.
v
k
−
1
a
k
v
k
W=v_0a_1v_1a_2...v_{k-1}a_kv_k
W=v0a1v1a2...vk−1akvk,其中交替项为顶点和弧。那么
W
W
W 就是有向途径。
v
0
v_0
v0 称为
W
W
W 的起点,
v
k
v_k
vk 称为
W
W
W 的终点。
k
k
k 称为
W
W
W 的长。
W
W
W 称为有向
(
v
0
,
v
k
)
(v_0,v_k)
(v0,vk) 途径。
有向闭途径:起点与终点相同的有向途径。
有向迹:弧各不相同的有向途径。
有向链(路):顶点各不相同的有向途径。
2.4.5 强连通分支
强连通:
u
,
v
u,v
u,v 是有向图
D
D
D 中的两个顶点,若存在
(
u
,
v
)
(u,v)
(u,v) 路和
(
v
,
u
)
(v,u)
(v,u) 路使得两点可以相互到达,则称
u
u
u 和
v
v
v 在图
D
D
D 中是强连通的。
强连通分支/强连通有向图:
V
(
D
)
V(D)
V(D) 的非空划分
V
1
V
2
.
.
.
V
ω
V_1V_2...V_\omega
V1V2...Vω 在
D
D
D 中所导出的子图
D
[
V
1
]
,
D
[
V
2
]
,
.
.
.
,
D
[
D
ω
]
D[V_1],D[V_2],...,D[D_\omega]
D[V1],D[V2],...,D[Dω] 称为
D
D
D 的强连通分支。若
D
D
D 中只有一个强连通分支,则
D
D
D 是强连通有向图。