CSDN 有字数限制,因此笔记分别发布,目前:
图(graph)
G
G
G 是一个有序的三元组,记作
G
=
<
V
(
G
)
,
E
(
G
)
,
ψ
(
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 条边。
单边:一对顶点之间只有一条边。
简单图:无环无重边。
度:与顶点
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 \varepsilon
∑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
)
(1,2,2,4,5);(1,2,3,3,4,5);(1,2,3,4,4,5)
(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 的连边情况。
同构:若两个图顶点之间建立一一对应的关系,且任意一对顶点的边数对应相同,则称两图是同构的。
子图:设
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。
导出子图:设 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 的导出子图。
途径的起点/终点/长度/逆转/衔接/节: 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 的连通分支数。
距离:图
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。
完全图:含有
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 互相认识,则染这条边为红色边,否则为蓝色边。于是问题转成了图中必定存在同色三角形问题。因此得证。
正则图/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 正则图。
(完全)二部图:若顶点集可以划分为两个子集 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 中的一个奇圈,与假设矛盾。
有向图:有向图 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 的头。
基础图:在有向图中去掉弧上箭头的图。
定向图:对图
G
G
G 的每条边规定方向后的图。
相邻、连通、圈、子图 的概念和含义不变。
入弧:有向图
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)
有向途径:
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) 途径。
有向闭途径:起点与终点相同的有向途径。
有向迹:弧各不相同的有向途径。
有向链(路):顶点各不相同的有向途径。
强连通:
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 是强连通有向图。
无向(有向)网络:对图中每一条边都对应于一个实数
w
(
e
)
w(e)
w(e),我们把
w
(
e
)
w(e)
w(e) 称为边
e
e
e 的边权,这样的图称为无向(有向)网络。
非负权/正权网络:网络中每条边的边权均为非负数/正数的网络。
最短路:在网络所有
(
v
i
,
v
j
)
(v_i,v_j)
(vi,vj) 路中,权最小的
(
v
i
,
v
j
)
(v_i,v_j)
(vi,vj) 路称为最短路。
邻接矩阵:
A
(
G
)
=
(
a
i
j
)
A(G)=(a_{ij})
A(G)=(aij) 是一个
v
×
v
v \times v
v×v 矩阵,
a
i
,
j
a_{i,j}
ai,j 等于第
i
i
i 个顶点与第
j
j
j 个顶点的边数。
性质:
定理:
A
r
(
G
)
A^r(G)
Ar(G) 中的第
i
i
i 行第
j
j
j 列的元素等于
G
G
G 中第
i
i
i 个顶点与第
j
j
j 个顶点的长度为
r
r
r 的不同途径的数目。
有向图的表示、性质、定理类比上面内容。
Laplace矩阵:设
G
G
G 为非空无环图,
A
(
G
)
A(G)
A(G) 为图
G
G
G 的邻接矩阵,对角矩阵
D
(
G
)
D(G)
D(G) 的主对角线上元素为对应顶点的度,则称
D
(
G
)
−
A
(
G
)
D(G)-A(G)
D(G)−A(G) 为图
G
G
G 的 Laplace 矩阵,记作
L
(
G
)
L(G)
L(G)。
性质:
关联矩阵:
M
(
G
)
=
(
m
i
j
)
M(G)=(m_{ij})
M(G)=(mij) 是一个
v
×
ε
v \times \varepsilon
v×ε 矩阵,其中若第
i
i
i 个顶点与第
j
j
j 条边关联,则为
1
1
1,否则为
0
0
0。
性质:
若是有向图,则第 i i i 个顶点为第 j j j 条弧的尾是 1 1 1,是头则为 − 1 -1 −1。
删去:删边或删点。
添加:加边或加点。
不交:两图点集无交集。
边不交:两图边集无交集。
并图:
G
1
∪
G
2
G_1 \cup G_2
G1∪G2,若两图不交,也记作
G
1
+
G
2
G_1+G_2
G1+G2。
交图:
G
1
∩
G
2
G_1 \cap G_2
G1∩G2。
收缩:设
e
=
u
v
e=uv
e=uv 是图
G
G
G 的一条连杆,去掉
e
e
e,把顶点
u
v
u v
uv 合并为一个新的顶点。图
G
G
G 中一切与
u
v
uv
uv 相连的边都改为与新顶点关联,其他顶点和边不变。图记作
G
⋅
e
G·e
G⋅e。
剖分:指去掉边
e
e
e,用一条连接
e
e
e 的两个端点的长为
2
2
2 的链代替。
笛卡尔积:
G
1
、
G
2
G_1、G_2
G1、G2 的笛卡尔积,记作
G
1
×
G
2
G_1 \times G_2
G1×G2。顶点集为
V
1
×
V
2
V_1 \times V_2
V1×V2。新图两个顶点相连当且仅当
(
v
1
i
,
v
2
j
)
(v_{1i},v_{2j})
(v1i,v2j) 和
(
v
1
k
,
v
2
l
)
(v_{1k},v_{2l})
(v1k,v2l) 中的
v
1
i
=
v
1
k
v_{1i}=v_{1k}
v1i=v1k 且
v
2
j
v
2
l
∈
E
2
v_{2j}v_{2l} \in E_2
v2jv2l∈E2。
笛卡尔积可以构造立体图(升维)。
树:连通且不含圈的图,常用
T
T
T 来表示。
森林:不含圈的图称为无圈图,也称为森林。
支撑树:图
G
G
G 的支撑子图。
定理:图
G
G
G 有支撑树当且仅当
G
G
G 连通。
破圈法和避圈法是化图为树的方法。
定理:设 T T T 是 v v v 阶图,下列命题等价:
证明:

推论:若树
T
T
T 的阶数
v
≥
2
v \geq 2
v≥2,则
T
T
T 至少含有两个悬挂点。
证明:假设
T
T
T 至多有一个悬挂点。因为
v
≥
2
v \geq 2
v≥2,所以
T
T
T 中每个顶点的度都不为
0
0
0.
所以
∑
v
∈
V
(
T
)
d
(
v
)
≥
1
+
2
(
v
(
T
)
−
1
)
=
2
v
(
T
)
−
1
\sum_{v \in V(T)}d(v)\geq 1+2(v(T)-1)=2v(T)-1
∑v∈V(T)d(v)≥1+2(v(T)−1)=2v(T)−1,而由握手引理知
∑
v
∈
V
(
T
)
d
(
v
)
=
2
ε
(
T
)
=
2
v
(
T
)
−
2
\sum_{v \in V(T)} d(v) = 2\varepsilon(T)=2v(T)-2
∑v∈V(T)d(v)=2ε(T)=2v(T)−2,因此矛盾。
推论:设
G
G
G 有
v
v
v 个顶点,
ε
\varepsilon
ε 条边,
ω
\omega
ω 个连通分支,则
G
G
G 是森林当且仅当
ε
=
v
−
ω
\varepsilon=v-\omega
ε=v−ω。
证明:假若
G
G
G 不是森林,则
G
G
G 中含有圈,至少
G
G
G 中存在一个连通分支含有圈,于是根据上边
4
−
>
5
4->5
4−>5 的证明,对于任何含圈的连通分支
G
i
G_i
Gi,都有
ε
(
G
i
)
>
v
(
G
i
)
−
1
\varepsilon(G_i) > v(G_i) - 1
ε(Gi)>v(Gi)−1。因此
ε
=
∑
k
=
1
ω
ε
(
G
k
)
>
∑
k
=
1
ω
(
v
(
G
k
)
−
1
)
=
v
−
ω
\varepsilon=\sum_{k=1}^\omega\varepsilon(G_k)>\sum_{k=1}^\omega(v(G_k)-1)=v-\omega
ε=∑k=1ωε(Gk)>∑k=1ω(v(Gk)−1)=v−ω,因此矛盾。
定理:设
e
e
e 是
G
G
G 的连杆,则
τ
(
G
)
=
τ
(
G
−
e
)
+
τ
(
G
⋅
e
)
\tau(G)=\tau(G-e)+\tau(G·e)
τ(G)=τ(G−e)+τ(G⋅e)。
证明:把
G
G
G 的支撑树分为两类:第一类含有边
e
e
e,第二类不含边
e
e
e。显然,第二类支撑树计数
τ
(
G
−
e
)
\tau(G-e)
τ(G−e)。
设
T
T
T 是第一类支撑树,注意到
T
⋅
e
T·e
T⋅e 仍然是树,是
G
⋅
e
G·e
G⋅e 的支撑树。只要把
e
e
e 收缩得到的顶点用
v
1
e
v
2
v_1ev_2
v1ev2 代替,即可得到含边
e
e
e 的支撑树,从而和
τ
(
G
−
e
)
\tau(G-e)
τ(G−e) 对应上。
设 G G G 为非空无环连通图,则 τ ( G ) = ∣ L i ( G ) ∣ \tau(G)=|L_i(G)| τ(G)=∣Li(G)∣,其中 L i ( G ) L_i(G) Li(G) 表示删去 Laplace 矩阵第 i i i 行和第 i i i 列得到的矩阵。
割边: 图
G
G
G 中使
ω
(
G
−
e
)
>
ω
(
G
)
\omega(G-e) > \omega(G)
ω(G−e)>ω(G) 的边
e
e
e。
引理:
∀
e
∈
E
(
g
)
\forall e \in E(g)
∀e∈E(g),有
ω
(
G
)
≤
ω
(
G
−
e
)
≤
ω
(
G
)
+
1
\omega(G) \leq \omega(G-e) \leq \omega(G) + 1
ω(G)≤ω(G−e)≤ω(G)+1
定理:
e
∈
E
(
g
)
e \in E(g)
e∈E(g) 是图
G
G
G 的割边,当且仅当
e
e
e 不在
G
G
G 的任何圈上。
证明:
边割:
[
S
,
S
′
]
=
{
u
v
∈
E
(
G
)
∣
u
∈
S
,
v
∈
S
′
}
。
[S,S']=\{uv \in E(G) | u \in S, v \in S'\}。
[S,S′]={uv∈E(G)∣u∈S,v∈S′}。若
S
⊂
V
(
G
)
,
S
≠
∅
,
S
‾
=
V
(
G
)
S \subset V(G),S \neq \emptyset,\overline{S} = V(G)
S⊂V(G),S=∅,S=V(G) \
S
S
S,且
[
S
,
S
‾
]
≠
∅
[S,\overline{S}] \neq \emptyset
[S,S]=∅,则称
[
S
,
S
‾
]
[S,\overline{S}]
[S,S] 为
G
G
G 的边割。
极小边割/补圈/余圈:若边割的任意真子集都不再是边割,那该边割为极小边割。
定理:设
G
G
G 为连通图,则
G
G
G 的边割
[
S
,
S
′
]
[S,S']
[S,S′] 是补圈 <==>
G
[
S
]
G[S]
G[S] 和
G
[
S
′
]
G[S']
G[S′] 都连通。
证明:
推论:设
[
S
,
S
′
]
[S,S']
[S,S′] 为图
G
G
G 的一个边割,则
[
S
,
S
′
]
[S,S']
[S,S′] 或者是补圈,或者是一些两两不交的补圈的并。
证明:
补树: 设
G
G
G 是连通图,
T
T
T 是
G
G
G 的一个支撑树,则称补图
T
‾
(
G
)
\overline{T}(G)
T(G) 为
G
G
G 的补树,记作
T
‾
\overline{T}
T。
定理:设
T
T
T 是连通图
G
G
G 的支撑树,
e
∈
E
(
T
)
e \in E(T)
e∈E(T),则(1)补树
T
T
T 不含有任何极小边割。(2)
T
+
e
T+e
T+e 中含有唯一的极小边割。
证明:(1)设
[
S
,
S
‾
]
[S,\overline{S}]
[S,S] 是
G
G
G 的一个极小边割,则
G
−
[
S
,
S
‾
]
G-[S,\overline{S}]
G−[S,S] 不连通,因而
G
−
[
S
,
S
‾
]
G-[S,\overline{S}]
G−[S,S] 不包含树
T
T
T,即存在
e
0
∈
E
(
T
)
e_0 \in E(T)
e0∈E(T) 但
e
0
∉
G
−
[
S
,
S
‾
]
e_0 \notin G-[S,\overline{S}]
e0∈/G−[S,S],于是
e
0
∈
[
S
,
S
‾
]
e_0 \in [S, \overline{S}]
e0∈[S,S],故
[
S
,
S
‾
]
[S, \overline{S}]
[S,S] 不包含在
T
‾
\overline{T}
T 中。(2)设边集
E
0
E_0
E0 是包含于
T
‾
+
e
\overline{T} + e
T+e 中唯一极小边割,则
T
−
e
T-e
T−e 包含在
G
−
E
0
G-E_0
G−E0 中。
∀
b
∈
[
V
(
T
1
)
,
V
(
T
2
)
]
\forall b \in [V(T_1),V(T_2)]
∀b∈[V(T1),V(T2)],假若
b
∉
E
0
b \notin E_0
b∈/E0,则
T
−
e
+
b
T-e+b
T−e+b 包含于
G
−
E
0
G-E_0
G−E0。注意到
T
−
e
+
b
T-e+b
T−e+b 连通图且
ε
(
T
−
e
+
b
)
=
v
(
T
)
−
1
\varepsilon(T-e+b)=v(T)-1
ε(T−e+b)=v(T)−1,故
T
−
e
+
b
T-e+b
T−e+b 是
G
G
G 的支撑树,即
G
−
E
0
G-E_0
G−E0 中包含连通子图
T
−
e
+
b
T-e+b
T−e+b 与
G
−
E
0
G-E_0
G−E0 不连通矛盾,
b
∈
E
0
b \in E_0
b∈E0,由
E
0
E_0
E0 是极小边割可知
E
0
=
[
V
(
T
1
)
,
V
(
T
2
)
]
E_0=[V(T_1),V(T_2)]
E0=[V(T1),V(T2)],于是
T
‾
+
e
\overline{T}+e
T+e 中包含
G
G
G 的唯一极小边割。
割点:如果图
G
G
G 的边集
E
E
E 可以分划成两个非空子集
E
1
、
E
2
E_1、E_2
E1、E2,如果
G
[
E
1
]
、
G
[
E
2
]
G[E_1]、G[E_2]
G[E1]、G[E2] 有唯一公共顶点
v
v
v,则称
v
v
v 为图
G
G
G 的割点。
引理:若顶点
v
v
v 满足
ω
(
G
−
v
)
>
ω
(
G
)
\omega(G-v) > \omega(G)
ω(G−v)>ω(G),则
v
v
v 是图
G
G
G 的割点。(不满足也可能是割点)反之,若
G
G
G 的割点
v
v
v 上无环,则
ω
(
G
−
v
)
>
ω
(
G
)
\omega(G-v) > \omega(G)
ω(G−v)>ω(G)。
证明:
若 G G G 的割点 v v v 有环,则 ω ( G − v ) > ω ( G ) \omega(G-v)>\omega(G) ω(G−v)>ω(G) 不一定成立
定理:树
T
T
T 的顶点
v
v
v 是割点,当且仅当
d
(
v
)
>
1
d(v)>1
d(v)>1。
证明:
树
T
T
T 的权:
∑
e
∈
E
(
T
)
w
(
e
)
\sum_{e \in E(T)} w(e)
∑e∈E(T)w(e)。
最小支撑树: 权最小的支撑树。
算法流程略
定理:设
G
G
G 是连通加权图,由
P
r
i
m
Prim
Prim 算法构造的支撑树一定是图
G
G
G 的最小支撑树。
算法流程略
定理:设
G
G
G 是连通加权图,由
K
r
u
s
k
a
l
Kruskal
Kruskal 算法构造的支撑树一定是图
G
G
G 的最小支撑树。
二元树:设
T
T
T 是一个树,每个边都规定一个方向,若存在一个入度为
0
0
0 的顶点
v
0
v_0
v0,其他顶点
v
v
v 的入度都为
1
1
1,则称
T
T
T 为根树,
v
0
v_0
v0 为根,出度为
0
0
0 的点为叶子。
n
n
n 元树:设
T
T
T 为根树,
∀
v
∈
V
(
T
)
,
d
+
(
v
)
≤
n
\forall v \in V(T), d^+(v) \leq n
∀v∈V(T),d+(v)≤n,则为
n
n
n 元树。若都有
n
n
n 个儿子,则称为典型
n
n
n 元树。
有序树:若根数的每个顶点的儿子们有序,称为有序树。
定理:由
2
n
2n
2n 个括号组成的好括号列个数是:
1
n
+
1
C
2
n
n
\frac1{n+1}C_{2n}^{n}
n+11C2nn。
前缀码:在一个序列集合中,如果任何一个序列都不是另一个序列的前缀,则称这个集合为前缀码。
Huffman树:以
v
0
v_0
v0 为根,以
v
1
,
v
2
,
.
.
.
.
,
v
n
v_1,v_2,....,v_n
v1,v2,....,vn 为叶子的有序二元树中,称
(
v
0
,
v
i
)
(v_0,v_i)
(v0,vi) 链的长
l
i
l_i
li 为叶子
v
i
v_i
vi 的码长。
最优二元树:使得
m
(
T
)
=
∑
i
=
1
n
p
i
l
i
m(T)=\sum_{i=1}^{n}p_il_i
m(T)=∑i=1npili 达最小的
H
u
f
f
m
a
n
Huffman
Huffman 树。