图论与网络优化

这篇具有很好参考价值的文章主要介绍了图论与网络优化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CSDN 有字数限制,因此笔记分别发布,目前:

  1. 【笔记1】概念与计算、树及其算法
  2. 【笔记2】容量网络模型、遍历性及其算法
  3. 【笔记3】独立集及其算法

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 \varepsilon vV=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)(d1d2...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(1kv1,有 ∑ 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=1kk(k1)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 的连边情况。


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 HG
相等:设 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 HG H ≠ G H \neq G H=G,则称 H H H G G G 的真子图,记作 H ⊂ G H \subset G HG
支撑(生成)子图:若 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=uvE(G)u,vV 为边集的 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) viV(0ik),ej=vj1vjE(1jk) 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,wV,使 u v , v w ∈ E uv,vw \in E uv,vwE,但 u w ∉ E uw \notin E uw/E
思路:设 x , y ∈ V x,y \in V x,yV 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 uvE,vwE 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 nk+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 m1,按以下步骤生成新图 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,...,v2m1v2m 并删除。
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 m1,按以下步骤生成新图 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,...,v2m1v2m 并删除。
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,...,u2m1u2m 并删除。
(step 1step 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 kn1 n k nk nk 为偶数。
证明:设 G G G n n n k k k 正则简单图,每个顶点最多与其他 n − 1 n-1 n1 个顶点相邻,因此 k ≤ n − 1 k \leq n-1 kn1 成立。
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 XY 均不为空集,则该图记作完全二部图,记作 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 v0X,于是后面节点依次属于 Y Y Y X X X。因此得到 v 2 i ∈ X , v 2 i + 1 ∈ Y v_{2i} \in X,v_{2i+1} \in Y v2iXv2i+1Y
因此 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={xd(u,x)为偶数} Y = { y ∣ d ( u , y ) 为奇数 } Y=\{y|d(u,y)为奇数\} Y={yd(u,y)为奇数}。显然 X 、 Y X、Y XY 是图 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 P11Q1 的长是偶数。因此若 v v v w w w 相邻,则 P 1 − 1 Q 1 w v P_1^{-1}Q_1wv P11Q1wv 就是 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) vVdD(v)=vVdD+(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...vk1akvk,其中交替项为顶点和弧。那么 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 是强连通有向图。


2.5 网络

2.5.1 无向网络和有向网络

无向(有向)网络:对图中每一条边都对应于一个实数 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) 路称为最短路。


2.6 矩阵表示

2.6.1 邻接矩阵

邻接矩阵 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 个顶点的边数。
性质:

  1. A T ( G ) = A ( G ) A^T(G)=A(G) AT(G)=A(G)
  2. i i i 个顶点的度等于 2 a i i + ∑ j ≠ i a i j 2a_{ii} + \sum_{j \neq i}a_{ij} 2aii+j=iaij
  3. 邻接矩阵在顶点标号合适的情况下可以写成对角形式。

定理: 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 的不同途径的数目。
有向图的表示、性质、定理类比上面内容。


2.6.2 Laplace矩阵

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 GLaplace 矩阵,记作 L ( G ) L(G) L(G)
性质:

  1. Laplace矩阵每行元素的和为 0 0 0
  2. 矩阵的 0 0 0 特征值重数是图的连通分支个数 ω \omega ω

2.6.3 关联矩阵

关联矩阵 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
性质:

  1. 关联矩阵每行元素的和对应顶点的度。
  2. 关联矩阵每列恰好包含两个 1 1 1

若是有向图,则第 i i i 个顶点为第 j j j 条弧的尾是 1 1 1,是头则为 − 1 -1 1


2.7 运算

2.7.1 删去和添加

删去:删边或删点。

  1. F F F E ( G ) E(G) E(G) 的非空子集, G − F G-F GF 表示从 G G G 中删去 F F F 中一切边后得到的图。若 F = e F={e} F=e,则 G − e G-{e} Ge 记作 G − e G-e Ge。得到的新图必定是 G G G 的支撑子图。
  2. S S S V ( G ) V(G) V(G) 的非空真子集,则 G − S G-S GS 表示从 G G G 中删去 S S S 的所有顶点及其 S S S 中顶点关联的一切边后得到的图。同样 G − V G-{V} GV 简记为 G − v G-v Gv。显然 G − S = G [ V 反斜杠 S ] G-S=G[V 反斜杠 S] GS=G[V反斜杠S]

添加:加边或加点。

  1. 在图 G G G 中添加一条以顶点 u u u v v v 为端点的边 e e e,得到的图记为 G + e G+e G+e。类似添加边集 E ′ E' E G + E ′ G+E' G+E
  2. 在图 G G G 中添加一个新的顶点 u u u,得到的图记作 G + u G+u G+u。类似添加顶点集 V ′ V' V G + V ′ G+V' G+V

2.7.2 交和并

不交:两图点集无交集。
边不交:两图边集无交集。
并图 G 1 ∪ G 2 G_1 \cup G_2 G1G2,若两图不交,也记作 G 1 + G 2 G_1+G_2 G1+G2
交图 G 1 ∩ G 2 G_1 \cap G_2 G1G2


2.7.3 收缩和剖分

收缩:设 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 Ge
剖分:指去掉边 e e e,用一条连接 e e e 的两个端点的长为 2 2 2 的链代替。


2.7.4 笛卡尔积

笛卡尔积 G 1 、 G 2 G_1、G_2 G1G2 的笛卡尔积,记作 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 v2jv2lE2
笛卡尔积可以构造立体图(升维)。


3 树及其算法

3.1 树和森林

3.1.1 树的基本概念

:连通且不含圈的图,常用 T T T 来表示。
森林:不含圈的图称为无圈图,也称为森林。


3.1.2 破圈法和避圈法

支撑树:图 G G G 的支撑子图。
定理:图 G G G 有支撑树当且仅当 G G G 连通。
破圈法和避圈法是化图为树的方法。


3.1.3 六个等价命题

定理:设 T T T v v v 阶图,下列命题等价

  1. T T T 是树。
  2. T T T 是无环图,且 T T T 的任何两个顶点间有唯一一条链。
  3. T T T 是无圈图,且有 v − 1 v-1 v1 条边。
  4. T T T 是连通图,且有 v − 1 v-1 v1 条边。
  5. T T T 是连通图,但 ∀ e ∈ E ( T ) \forall e \in E(T) eE(T) T − e T-e Te 是非连通图。
  6. T T T 是连通图,但添加任何一条边后得到的图中都含有唯一的圈。

证明:

  • 1 − > 2 : 1->2: 1>2: T T T 是树 推导 T T T 是无环图,且 T T T 的任何两个顶点间有唯一一条链。
    T T T 是树,显然 T T T 中无环。假设 T T T 中存在两条不同的 ( v 1 , v 2 ) (v_1,v_2) (v1,v2) P 1 , P 2 P_1,P_2 P1,P2,则有边 e = x y ∈ E ( P 1 ) 且 ∉ E ( P 2 ) e=xy \in E(P_1)且\notin E(P_2) e=xyE(P1)/E(P2)
    P 1 P_1 P1 上的 ( v 1 , x ) (v_1,x) (v1,x) 节与 P 2 P_2 P2 的最后一个公共顶点为点 u u u P 1 P_1 P1 上的 ( y , v 2 ) (y,v_2) (y,v2) 节与 P 2 P_2 P2 的第一个公共顶点为 w w w
    P 1 P_1 P1 ( u , w ) (u,w) (u,w) Q 1 Q_1 Q1 P 2 P_2 P2 ( u , w ) (u,w) (u,w) Q 2 Q_2 Q2 无公共内部点,从而 Q 1 Q 2 − 1 Q_1Q_2^{-1} Q1Q21 T T T 的一个圈。
    图论与网络优化,图论
  • 2 − > 3 : 2->3: 2>3: T T T 是无环图,且 T T T 的任何两个顶点间有唯一一条链 推导 T T T 是无圈图,且有 v − 1 v-1 v1 条边
    T T T 满足 2 2 2,则 T T T 是无圈图。下面对 T T T 的阶数 v v v 用归纳法证明 ε ( T ) = v − 1 \varepsilon(T)=v-1 ε(T)=v1
    v = 1 v=1 v=1 时, T T T 是空图,结论成立。
    v < k v<k v<k 时结论成立。
    现设 v = k ≥ 2 v=k\geq 2 v=k2 时, v 1 v 2 ∈ E ( T ) v_1v_2 \in E(T) v1v2E(T),则 T − v 1 v 2 T-v_1v_2 Tv1v2 中不含 ( v 1 , v 2 ) (v_1,v_2) (v1,v2) 链,从而 T − v 1 v 2 T-v_1v_2 Tv1v2 是非连通图,则含有两个连通分支 T 1 T_1 T1 T 2 T_2 T2
    因为 T T T 是无圈图,所以 T 1 , T 2 T_1,T_2 T1,T2 也都是无圈图,都是树,因此 T 1 , T 2 T_1,T_2 T1,T2 都满足 2 2 2
    由归纳假设 ε ( T i ) = v ( T i ) − 1 ( i = 1 , 2 ) \varepsilon(T_i) = v(T_i)-1(i=1,2) ε(Ti)=v(Ti)1(i=1,2)
    于是有 ε ( T ) = ε ( T 1 ) + ε ( T 2 ) + 1 = v ( T 1 ) + v ( T 2 ) − 1 = v ( T ) − 1 \varepsilon(T)=\varepsilon(T_1)+\varepsilon(T_2)+1=v(T_1)+v(T_2)-1=v(T)-1 ε(T)=ε(T1)+ε(T2)+1=v(T1)+v(T2)1=v(T)1
    因此成立。
  • 3 − > 4 : 3->4: 3>4: T T T 是无圈图,且有 v − 1 v-1 v1 条边 推导 T T T 是连通图,且有 v − 1 v-1 v1 条边
    T T T 满足 3 3 3,则只需证明 T T T 连通。
    (反证法)假设 T T T 的连通分支为 T 1 , T 2 , . . . , T k , k ≥ 2 T_1,T_2,...,T_k,k \geq 2 T1,T2,...,Tkk2,易见 T i ( i = 1 , 2 , . . , k ) T_i(i=1,2,..,k) Ti(i=1,2,..,k) 为树。
    由一直 ε ( T i ) = v ( T i ) − 1 ( i = 1 , 2 , . . . , k ) \varepsilon(T_i)=v(T_i)-1(i=1,2,...,k) ε(Ti)=v(Ti)1(i=1,2,...,k),因此 ε ( T ) = ∑ i = 1 k ε ( T i ) = ∑ i = 1 k ( v ( T i ) − 1 ) = v ( T ) − k < v ( T ) − 1 \varepsilon(T)=\sum_{i=1}^{k}\varepsilon(T_i)=\sum_{i=1}^{k}(v(T_i) - 1)=v(T)-k<v(T)-1 ε(T)=i=1kε(Ti)=i=1k(v(Ti)1)=v(T)k<v(T)1。这与 ε ( T ) = v ( T ) − 1 \varepsilon(T)=v(T)-1 ε(T)=v(T)1 相矛盾。
  • 4 − > 5 : 4->5: 4>5: T T T 是连通图,且有 v − 1 v-1 v1 条边 推导 T T T 是连通图,但 ∀ e ∈ E ( T ) \forall e \in E(T) eE(T) T − e T-e Te 是非连通图。
    T T T 满足 4 4 4,只需证明 ∀ e ∈ E ( T ) , T − e \forall e \in E(T),T-e eE(T),Te 是非连通图。
    假若 T − e T-e Te 连通:
    T − e T-e Te 不含圈时, T − e T-e Te 是树,此时 ε ( T − e ) = v ( T − e ) − 1 \varepsilon(T-e)=v(T-e)-1 ε(Te)=v(Te)1
    T − e T-e Te 含圈时,由破圈法可知, ε ( T − e ) > v ( T − e ) − 1 \varepsilon(T-e)>v(T-e)-1 ε(Te)>v(Te)1
    因此总有 ε ( T ) = ε ( T − e ) + 1 ≥ v ( T − e ) = v ( T ) \varepsilon(T)=\varepsilon(T-e)+1\geq v(T-e)=v(T) ε(T)=ε(Te)+1v(Te)=v(T),此与 ε ( T ) = v ( T ) − 1 \varepsilon(T)=v(T)-1 ε(T)=v(T)1 矛盾。
  • 5 − > 6 : 5->6: 5>6: T T T 是连通图,但 ∀ e ∈ E ( T ) \forall e \in E(T) eE(T) T − e T-e Te 是非连通图 推导 T T T 是连通图,但添加任何一条边后得到的图中都含有唯一的圈
    T T T 满足 5 5 5,则 T T T 是无圈图,则是树。
    假若添加新边 e = x y , T + x y e=xy,T+xy e=xy,T+xy 不含圈,则 T + x y T+xy T+xy 是树,于是 ε ( T + x y ) = v ( T + x y ) − 1 = v ( T ) − 1 \varepsilon(T+xy)=v(T+xy)-1=v(T)-1 ε(T+xy)=v(T+xy)1=v(T)1,故 ε ( T ) = ε ( T + x y ) − 1 = v ( T ) − 2 \varepsilon(T)=\varepsilon(T+xy)-1=v(T)-2 ε(T)=ε(T+xy)1=v(T)2,这与树矛盾,所以 T + x y T+xy T+xy 含有圈。
    T T T 中不含圈,故 T + e T+e T+e 中任何圈 C C C 都必含有边 e e e,则 C − e C-e Ce T T T 中的 ( x , y ) (x,y) (x,y) 链。
    又由 2 2 2 T T T 只有一条 ( x , y ) (x,y) (x,y) 链,因此圈 C C C 唯一。
  • 6 − > 1 : 6->1: 6>1: T T T 是连通图,但添加任何一条边后得到的图中都含有唯一的圈 推导 T T T 是树
    T T T 满足 6 6 6,只需证明 T T T 连通。
    假若 T T T 是非连通图,任取两个连通分支 T 1 T_1 T1 T 2 T_2 T2,设 v i ∈ V ( T i ) , i = 1 , 2 v_i \in V(T_i),i=1,2 viV(Ti),i=1,2,则 T + v 1 v 2 T+v_1v_2 T+v1v2 不含圈,这与 6 6 6 矛盾。因此得证。

推论:若树 T T T 的阶数 v ≥ 2 v \geq 2 v2,则 T T T 至少含有两个悬挂点。
证明:假设 T T T 至多有一个悬挂点。因为 v ≥ 2 v \geq 2 v2,所以 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 vV(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 vV(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ω,因此矛盾。


3.2 支撑树的计数

3.2.1 递推公式

定理:设 e e e G G G 的连杆,则 τ ( G ) = τ ( G − e ) + τ ( G ⋅ e ) \tau(G)=\tau(G-e)+\tau(G·e) τ(G)=τ(Ge)+τ(Ge)
证明:把 G G G 的支撑树分为两类:第一类含有边 e e e,第二类不含边 e e e。显然,第二类支撑树计数 τ ( G − e ) \tau(G-e) τ(Ge)
T T T 是第一类支撑树,注意到 T ⋅ e T·e Te 仍然是树,是 G ⋅ e G·e Ge 的支撑树。只要把 e e e 收缩得到的顶点用 v 1 e v 2 v_1ev_2 v1ev2 代替,即可得到含边 e e e 的支撑树,从而和 τ ( G − e ) \tau(G-e) τ(Ge) 对应上。


3.2.3 矩阵-树定理

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 列得到的矩阵。


3.3 树上顶点和边的性质

3.3.1 割边

割边: G G G 中使 ω ( G − e ) > ω ( G ) \omega(G-e) > \omega(G) ω(Ge)>ω(G) 的边 e e e
引理: ∀ e ∈ E ( g ) \forall e \in E(g) eE(g),有 ω ( G ) ≤ ω ( G − e ) ≤ ω ( G ) + 1 \omega(G) \leq \omega(G-e) \leq \omega(G) + 1 ω(G)ω(Ge)ω(G)+1
定理: e ∈ E ( g ) e \in E(g) eE(g) 是图 G G G 的割边,当且仅当 e e e 不在 G G G 的任何圈上
证明:

  • e e e G G G 的割边,则 ω ( G − e ) > ω ( G ) \omega(G-e)>\omega(G) ω(Ge)>ω(G),从而存在 G G G 的两个顶点 u , v u,v u,v G G G 中连通而在 G − e G-e Ge 中不连通。因此 G G G 中必有一条 ( u , v ) (u,v) (u,v) P P P 经过 e e e
    e = x y e=xy e=xy,并且在 P P P x x x 位于 y y y 之前,记 P P P ( u , x ) (u,x) (u,x) 节为 P 1 P_1 P1 P P P ( y , v ) (y,v) (y,v) 节为 P 2 P_2 P2。若 e e e G G G 的某个圈 C C C 上,则 C − e C-e Ce G − e G-e Ge 中的 ( x , y ) (x,y) (x,y) Q Q Q,从而 P 1 Q P 2 P_1QP_2 P1QP2 G − e G-e Ge 中一条 ( u , v ) (u,v) (u,v) 途径,于是 u , v u,v u,v G − e G-e Ge 中连通,矛盾。
  • 假设 e = x y e=xy e=xy 不是 G G G 的割边,则由引理知 ω ( G ) = ω ( G − e ) \omega(G)=\omega(G-e) ω(G)=ω(Ge)。因为边 x y xy xy G G G 的一条 ( x , y ) (x,y) (x,y) 链,因此 x , y x,y x,y G G G 的同一连通分支中,故也在 G − e G-e Ge 的连通分支中,即 ( x , y ) (x,y) (x,y) 存在其他链 P P P,于是 P + e P+e P+e G G G 中的圈,包含边 e e e

3.3.2 边割

边割 [ S , S ′ ] = { u v ∈ E ( G ) ∣ u ∈ S , v ∈ S ′ } 。 [S,S']=\{uv \in E(G) | u \in S, v \in S'\}。 [S,S]={uvE(G)uS,vS} S ⊂ V ( G ) , S ≠ ∅ , S ‾ = V ( G ) S \subset V(G),S \neq \emptyset,\overline{S} = V(G) SV(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] 都连通。

证明:

  • 后推前:因为 G [ S ] G[S] G[S] G [ S ‾ ] G[\overline{S}] G[S] 都连通,所以从连通图 G G G 删去 [ S , S ‾ ] [S,\overline{S}] [S,S] 的任何一个真子集后得到的图仍连通,因此 [ S , S ‾ ] [S,\overline{S}] [S,S] G G G 的补圈。
  • 前推后:设 [ S , S ‾ ] [S,\overline{S}] [S,S] 是连通图 G G G 的补圈,若 G [ S ] G[S] G[S] 不连通,设 H H H G [ S ] G[S] G[S] 的一个连通分支,则 [ V ( H ) , V ( G ) [V(H),V(G) [V(H),V(G) \ V ( H ) ] V(H)] V(H)] 是边割,且是 [ S , S ‾ ] [S,\overline{S}] [S,S] 的真子集,这与 [ S , S ‾ ] [S,\overline{S}] [S,S] 是极小边割矛盾。若 G [ S ‾ ] G[\overline{S}] G[S] 不连通,同理,也可以得到矛盾。

推论:设 [ S , S ′ ] [S,S'] [S,S] 为图 G G G 的一个边割,则 [ S , S ′ ] [S,S'] [S,S] 或者是补圈,或者是一些两两不交的补圈的并。
证明:

  • G G G 是连通的:如果 G [ S ] , G [ S ‾ ] G[S],G[\overline{S}] G[S],G[S] 都连通,则由定理知 [ S , S ‾ ] [S,\overline{S}] [S,S] 是补圈。如果 G [ S ] G[S] G[S] G [ S ‾ ] G[\overline{S}] G[S] 不都连通,设 G [ S ] G[S] G[S] 不连通,记 G [ S ] G[S] G[S] 的连通分支为 H 1 , H 2 . . . , H n H_1,H_2...,H_n H1,H2...,Hn,设 G − V ( H i ) G-V(H_i) GV(Hi) 的连通分支为 G i 1 , G i 2 , . . . , G i r i ( i = 1 , 2 , . . . , n ) G_{i1},G_{i2},...,G_{ir_i}(i=1,2,...,n) Gi1,Gi2,...,Giri(i=1,2,...,n)。由于 G G G 连通,因此 H i H_i Hi 与各个 G i j ( 1 ≤ j ≤ 2 ) G_{ij}(1 \leq j \leq 2) Gij(1j2) 都有边相连,从而 G [ V ( G i , j ) ‾ ] G[\overline{V(G_{i,j})}] G[V(Gi,j)] 连通 ( 1 ≤ i ≤ n , 1 ≤ j ≤ r j ) (1\leq i \leq n, 1 \leq j \leq r_j) (1in,1jrj)。由定理知 [ V ( G i j ‾ ) , V ( G i j ) ] [\overline{V(G_{ij}}),V(G_{ij})] [V(Gij),V(Gij)] G G G 的补圈,显然,这些补圈互不相交,并且…………
  • G G G 是非连通的。令 G G G 的连通分支 G ( 1 ) , G ( 2 ) , . . . , G ( ω ) G^{(1)},G^{(2)},...,G^{(\omega)} G(1),G(2),...,G(ω) S k = S ∩ V ( G k ) S_k=S \cap V(G^{k}) Sk=SV(Gk) S k ‾ = V ( G ) \overline{S_k}=V(G) Sk=V(G) \ k = 1 , 2 , . . . , ω k=1,2,...,\omega k=1,2,...,ω,显然 [ S , S ‾ ] [S,\overline{S}] [S,S] = ∪ k = 1 ω [ S k , S k ‾ ] \cup_{k=1}^{\omega}[S_k, \overline{S_k}] k=1ω[Sk,Sk]. …

补树: 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) eE(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) e0E(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 Te 包含在 G − E 0 G-E_0 GE0 中。 ∀ 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 Te+b 包含于 G − E 0 G-E_0 GE0。注意到 T − e + b T-e+b Te+b 连通图且 ε ( T − e + b ) = v ( T ) − 1 \varepsilon(T-e+b)=v(T)-1 ε(Te+b)=v(T)1,故 T − e + b T-e+b Te+b G G G 的支撑树,即 G − E 0 G-E_0 GE0 中包含连通子图 T − e + b T-e+b Te+b G − E 0 G-E_0 GE0 不连通矛盾, b ∈ E 0 b \in E_0 bE0,由 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 的唯一极小边割。


3.3.3 割点

割点:如果图 G G G 的边集 E E E 可以分划成两个非空子集 E 1 、 E 2 E_1、E_2 E1E2,如果 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) ω(Gv)>ω(G),则 v v v 是图 G G G 的割点。(不满足也可能是割点)反之,若 G G G 的割点 v v v 上无环,则 ω ( G − v ) > ω ( G ) \omega(G-v) > \omega(G) ω(Gv)>ω(G)
证明:

  • 设顶点 v v v 满足 ω ( G − v ) > ω ( G ) \omega(G-v) > \omega(G) ω(Gv)>ω(G),且 v v v G G G 连通分支 H H H 中的顶点,把 H − v H-v Hv 的连通分支记为 H 1 , H 2 , . . . , H k H_1,H_2,...,H_k H1,H2,...,Hk,由假设知 k ≥ 2 k \geq 2 k2,令 E 1 = E ( H 1 ) ∪ { u v ∈ E ( H ) ∣ u ∈ V ( H 1 ) } E_1=E(H_1)\cup\{uv\in E(H) | u \in V(H_1)\} E1=E(H1){uvE(H)uV(H1)} E 2 = E ( G ) E_2=E(G) E2=E(G) \ E 1 E_1 E1。显然 E 1 , E 2 E_1,E_2 E1,E2 G G G 的一个划分,且不为空集,有唯一公共顶点 v v v,从而 v v v G G G 的割点。
  • v v v G G G 的割点,且无环。 v v v G [ E 1 ] , G [ E 2 ] G[E_1],G[E_2] G[E1],G[E2] 的唯一公共顶点,注意划分为非空划分。故存在连杆 v u 1 ∈ E 1 , v u 2 ∈ E 2 vu_1 \in E_1, vu_2 \in E_2 vu1E1,vu2E2,即 u 1 , u 2 u_1,u_2 u1,u2 存在于同一个连通分支中。因此所有 ( u 1 , u 2 ) (u_1,u_2) (u1,u2) 链必定经过 v v v,于是 u 1 , u 2 u_1,u_2 u1,u2 G − v G-v Gv 的不同连通分支,即 ω ( G − v ) > ω ( G ) \omega(G-v)>\omega(G) ω(Gv)>ω(G)

G G G 的割点 v v v 有环,则 ω ( G − v ) > ω ( G ) \omega(G-v)>\omega(G) ω(Gv)>ω(G) 不一定成立

定理:树 T T T 的顶点 v v v 是割点,当且仅当 d ( v ) > 1 d(v)>1 d(v)>1
证明:

  • d ( v ) = 0 d(v)=0 d(v)=0,则该图是 1 1 1 阶完全图,故 v v v 不是割点。若 d ( v ) = 1 d(v)=1 d(v)=1,则 T − v T-v Tv 仍是无圈图,且有 ε ( T ) − 1 \varepsilon(T)-1 ε(T)1 条边,从而有 v ( T ) − 2 = v ( T − v ) − 1 v(T)-2=v(T-v)-1 v(T)2=v(Tv)1 条边, T − v T-v Tv 是树,所以 ω ( T − v ) = ω ( T ) \omega(T-v)=\omega(T) ω(Tv)=ω(T),由引理知 v v v 不是割点。
  • d ( v ) > 1 d(v)>1 d(v)>1,则 T T T 中存在两个相异顶点 u , w u,w u,w v v v 相邻,链 u v w uvw uvw T T T 中唯一 ( u , w ) (u,w) (u,w) 链,由此知 T − v T-v Tv 中不再有 ( u , w ) (u,w) (u,w) 链,故 ω ( T − v ) > ω ( T ) \omega(T-v)>\omega(T) ω(Tv)>ω(T),知 v v v G G G 的割点。

3.4 最小支撑树

3.4.1 最小支撑树的定义

T T T 的权 ∑ e ∈ E ( T ) w ( e ) \sum_{e \in E(T)} w(e) eE(T)w(e)
最小支撑树: 权最小的支撑树。


3.4.2 Prim 算法

算法流程略
定理:设 G G G 是连通加权图,由 P r i m Prim Prim 算法构造的支撑树一定是图 G G G 的最小支撑树。


3.4.3 Kruskal 算法

算法流程略
定理:设 G G G 是连通加权图,由 K r u s k a l Kruskal Kruskal 算法构造的支撑树一定是图 G G G 的最小支撑树。


3.5 二叉树与前缀码

3.5.1 二元树

二元树:设 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 vV(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


3.5.2 前缀码

前缀码:在一个序列集合中,如果任何一个序列都不是另一个序列的前缀,则称这个集合为前缀码。


3.5.3 Huffman树

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 树。文章来源地址https://www.toymoban.com/news/detail-739522.html


到了这里,关于图论与网络优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图论与算法(1)图论概念

    在计算机科学中,图论与算法是两个重要且紧密相关的领域。图论研究图的性质和特征,而算法设计和分析解决问题的方法和步骤。图论提供了一种形式化的方法来描述和分析各种关系和连接,而算法则为解决图相关的问题提供了有效的解决方案。 图论是研究图的结构和性质

    2024年02月07日
    浏览(41)
  • 图论与算法(2)图的基本表示

    (1) 有向图和无向图: 有向图(Directed Graph):图中的边具有方向,表示节点之间的单向关系。 无向图(Undirected Graph):图中的边没有方向,表示节点之间的双向关系。 (2)加权图和无权图: 加权图(Weighted Graph):图中的边具有权重或距离,表示节点之间的关系有一定

    2024年02月04日
    浏览(45)
  • 图论与算法(7)最短路径问题

    最短路径问题是指在一个加权图中寻找两个顶点之间的最短路径,其中路径的长度由边的权重确定。 常见的最短路径算法包括: Dijkstra算法 :适用于解决单源最短路径问题,即从一个固定的起点到图中所有其他顶点的最短路径。该算法通过不断选择当前路径上权重最小的顶

    2024年02月06日
    浏览(41)
  • 图论与算法(3)图的深度优先遍历

    图的遍历 是指按照一定规则访问图中的所有顶点,以便获取图的信息或执行特定操作。常见的图遍历算法包括深度优先搜索(DFS)和广度优先搜索(BFS)。 深度优先搜索 (DFS):从起始顶点开始,递归或使用栈的方式访问相邻的顶点,直到所有顶点都被访问过为止。DFS通过

    2024年02月06日
    浏览(48)
  • 图论与算法(遍历、最小生成树、最短路径)

    图是由顶点集合及顶点间的关系组成的一种数据结构:G = (V, E),其中:顶点集合V = {x|x属于某个数据对象集}是有穷非空集合;E = {(x,y)|x,y属于V}或者E = {x, y|x,y属于V Path(x, y)}是顶点间关系的有穷集合,也叫做边的集合。(x, y)表示x到y的一条双向通路,即(x, y)是无方向的;Path

    2024年04月14日
    浏览(45)
  • 图论与算法(5)图的广度优先遍历应用

    树的广度优先遍历(Breadth-First Traversal),也称为层次遍历,是一种按层次顺序逐级访问树节点的遍历方式。在广度优先遍历中,先访问树的根节点,然后按照从上到下、从左到右的顺序逐层访问树的节点。 首先将树的根节点入队列,然后循环执行以下操作:出队列一个节点

    2024年02月08日
    浏览(43)
  • 【图论】重庆大学图论与应用课程期末复习资料(私人复习资料)

    填空 顶点集和边集都有限的图,称为有限图 只有一个顶点的图,称为平凡图 边集为空的图,称为空图 顶点数为n的图,称为n阶图 连接两个相同顶点的边的条数称为边的重数;重数大于1的边,称为重边 端点重合为一点的边,称为环 既无环又无重边的图,称为简单图 每两个

    2024年02月05日
    浏览(38)
  • B3610 [图论与代数结构 801] 无向图的块 题解

    2023 2023 2023 ,再见。 2024 2024 2024 ,你好! 其实就是统计点双连通分量的个数。需要注意的是,孤立点在这里不被看作块。本文使用 tarjan 算法来解决这道题。 概念明晰 时间戳:这里记为 d f n i dfn_i df n i ​ ,表示第一次深度优先搜索到节点 i i i 的时间。时间 t i m e ∈ N + t

    2024年02月03日
    浏览(41)
  • C#,图论与图算法,图(Graph)广度优先遍历(BFS,Breadth First Search)算法与源代码

    深度优先算法(DFS,Deep First Search)与 宽度优先遍历(BFS,Breadth First Search) 是树、图数据结构的基础性、标准性的遍历算法。 深度优先搜索(DFS)是一种用于搜索图形或树数据结构的算法。该算法从树的根(顶部)节点开始,尽可能沿着给定的分支(路径)向下,然后回溯

    2024年03月23日
    浏览(38)
  • 【图论经典题目讲解】CF786B - Legacy 一道线段树优化建图的经典题目

    D e s c r i p t i o n mathrm{Description} Description 给定 1 1 1 张 n n n 个点的有向图,初始没有边,接下来有 q q q 次操作,形式如下: 1 u v w 表示从 u u u 向 v v v 连接 1 1 1 条长度为 w w w 的有向边 2 u l r w 表示从 u u u 向 i i i ( i ∈ [ l , r ] iin [l,r] i ∈ [ l , r ] )连接 1 1 1 条长度为 w w w

    2024年02月20日
    浏览(83)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包