第十章 图的基本概念
10.1 基本概念
-
图:是一个序偶 ( V , E ) (V,E) (V,E),记为 G = ( V , E ) G=(V,E) G=(V,E)。其中,
-
V ( G ) V(G) V(G) 为结点集,结点数 n n n 称为 G G G 的阶; E ( G ) E(G) E(G) 为边集。
-
( n , m ) (n,m) (n,m) 图:含有 n n n 点 m m m 边的图
-
无向边 e = ( u , v ) e=(u,v) e=(u,v)
有向边 e = < u , v > e=<u,v> e=<u,v>
-
邻接点;邻接边
-
平行边:有向图中几条同始点,同终点的边
-
多重图(含平行边)
广义图(含环的多重图)
基图(无环,平行边代之以一条边)
-
简单图:不含平行边也不包含自环的图
-
赋权图/无权图:边上有/无权值
-
结点的度数 deg ( v ) \deg(v) deg(v):
-
无向图:最大点度,最小点度
-
有向图:入度 deg + ( v ) \deg^+(v) deg+(v),出度 deg − ( v ) \deg^-(v) deg−(v)
-
孤立点:度数为 0 0 0
-
零图 G = ( V , ∅ ) G=(V,\empty) G=(V,∅):只由孤立点构成。
平凡图:仅含一个结点的零图。
-
正则图:各点度数相同。( k k k度正则图)
-
度数序列: ( deg ( v 1 ) , deg ( v 2 ) , . . . deg ( v n ) ) (\deg(v_1),\deg(v_2),...\deg(v_n)) (deg(v1),deg(v2),...deg(vn))
-
-
握手定理(Euler 1736年):在任意 ( n , m ) (n,m) (n,m) 图 G = ( V , E ) G=(V,E) G=(V,E) 中, ∑ v ∈ V deg ( v ) = 2 m \color{red}\sum\limits_{v\in V}\deg(v)=2m v∈V∑deg(v)=2m
- 推论1:奇度数结点的个数为偶数
- 推论2:有向图中, { ∑ v ∈ V deg + ( v ) = ∑ v ∈ V deg − ( v ) = m ∑ v ∈ V deg ( v ) = ∑ v ∈ V deg + ( v ) + ∑ v ∈ V deg − ( v ) = 2 m \begin{cases}\sum\limits_{v\in V}\deg^+(v)=\sum\limits_{v\in V}\deg^-(v)=m\\ \sum\limits_{v\in V}\deg(v)=\sum\limits_{v\in V}\deg^+(v)+\sum\limits_{v\in V}\deg^-(v)=2m \end{cases} ⎩⎪⎨⎪⎧v∈V∑deg+(v)=v∈V∑deg−(v)=mv∈V∑deg(v)=v∈V∑deg+(v)+v∈V∑deg−(v)=2m
-
子图:设图 G = < V 1 , E 1 > G=<V_1,E_1> G=<V1,E1> 和图 H = < V 2 , E 2 > H=<V_2,E_2> H=<V2,E2>,则 H ⊆ G H\subseteq G H⊆G
-
真子图 H ⊂ G H\subset G H⊂G
-
生成子图: V 1 = V 2 V_1=V_2 V1=V2
-
平凡子图: V 1 = V 2 且 E 1 = E 2 或 E 2 = ∅ V_1=V_2且E_1=E_2或E_2=\empty V1=V2且E1=E2或E2=∅
-
删点子图 G − v G-v G−v:删点 v v v 及其连边
删边子图 G − e G-e G−e:删边 e e e
-
点诱导子图 G ( S ) = ( S , E ′ ) G(S)=(S,E') G(S)=(S,E′):设图 G = ( V , E ) G=(V,E) G=(V,E),则 S ⊆ V , E ′ = { u v ∣ u , v ∈ S , u v ∈ E } S\subseteq V,E'=\{uv|u,v\in S,uv\in E \} S⊆V,E′={uv∣u,v∈S,uv∈E}
边诱导子图 G ( T ) = ( S ′ , T ) G(T)=(S',T) G(T)=(S′,T):设图 G = ( V , E ) G=(V,E) G=(V,E),则 T ⊆ E 且 T ≠ ∅ T\subseteq E且 T\ne \empty T⊆E且T=∅,且 S ′ S' S′ 包含 T T T 中各边全部结点。
-
-
完全图 K n K_n Kn:任意结点都与其他点邻接(有向图中有向边都为双向)。无向图边数为 n ( n − 1 ) 2 \dfrac{n(n-1)}{2} 2n(n−1),有向图边数为 n ( n − 1 ) n(n-1) n(n−1)
-
补图 G ‾ \overline{G} G: G ‾ ‾ = G \overline{\overline{G}}=G G=G
-
二分图 Bipartite Graph:将点集划分为两个子集 X , Y X,Y X,Y,使得每条边的两个关联结点在不同子集中。
- 完全二分图 K X , Y K_{X,Y} KX,Y:两个子集 X , Y X,Y X,Y中的全部结点都邻接。
-
图的同构 G ≅ G ′ G\cong G' G≅G′:两个图的边一一对应。
- 必要条件(不是充分条件):点数相同,边数相同,度数相同的结点数相同。
-
10.2 路与回路
-
道路:由结点和边交替出现的序列 P = v 0 e 1 v 1 e 2 v 2 . . . e k v k P=v_0e_1v_1e_2v_2...e_kv_k P=v0e1v1e2v2...ekvk,简记为 < v 0 , v k > <v_0,v_k> <v0,vk>
-
长度:边数
-
开 / 闭道路: v 0 ≠ v k / v 0 = v k v_0\ne v_k/ v_0=v_k v0=vk/v0=vk
-
简单道路:无重复边(边不同)
回路:闭的简单道路(无重边)
-
基本道路:无重复点(点不同)
基本回路/圈:闭的基本道路,即只有 v 0 = v k v_0=v_k v0=vk
-
-
道路图和圈图:
- 道路图 P n P_n Pn:可由一条基本道路表示
- 圈图 C n C_n Cn:可由一个圈表示(可重边)
-
n n n 结点的图中若 v i , v j ( v i ≠ v j ) v_i,v_j(v_i\ne v_j) vi,vj(vi=vj) 两点之间存在一条路径,则此两点之间存在一条 n − 1 n-1 n−1 条边的道路。
10.3 图的连通性
-
无向图的连通性:
无向图的连通关系是等价关系
-
连通的:无向图 G = < V , E > G=<V,E> G=<V,E> 中两个结点 u , v u,v u,v 之间存在道路,记为 u ∼ v u\sim v u∼v。规定 u ∼ u u\sim u u∼u
-
支:极大连通子图。图 G G G 分支数记为 ω ( G ) \omega(G) ω(G)
-
连通图: G = < V , E > G=<V,E> G=<V,E> 中任意两点连通。否则称为非连通图/分离图。
-
距离:任意两点之间长度最短的道路,记为 d ( v i , v j ) d(v_i,v_j) d(vi,vj)
- 性质:非负性;对称性;三角不等式;不存在道路时 d ( v i , v j ) = ∞ d(v_i,v_j)=\infty d(vi,vj)=∞
-
割点:
- 点割集 V ′ V ' V′:图 G G G 删去结点子集 V ′ V' V′ 所得到的子图 G − V ′ G-V' G−V′ 的连通分支数与 G G G 的连通分支数满足 ω ( G − V ′ ) > ω ( G ) \omega(G-V')>\omega(G) ω(G−V′)>ω(G)
- 基本割集:若图 G G G 删去 V ′ V' V′ 的任何真子集 V ′ ′ V'' V′′ 使得 ω ( G − V ′ ′ ) = ω ( G ) \omega(G-V'')=\omega(G) ω(G−V′′)=ω(G)。
- 割点:割集为 { u } \{u\} {u}
- 定理:连通图 G G G 中, v v v 为 G G G 的割点 ⟺ \iff ⟺ 存在结点 u , w u,w u,w 使 u , w u,w u,w 的每条道路都包含 v v v 结点
-
连通度:
-
点连通度 κ ( G ) \kappa(G) κ(G):使 G G G 产生一个非连通子图或一个结点的子图所需删去的最少结点数目。
κ ( K n ) = n − 1 \kappa(K_n)=n-1 κ(Kn)=n−1
-
边连通度 λ ( G ) \lambda(G) λ(G):使 G G G 产生一个非连通子图或一个结点的子图所需删去的最少边数目。
-
定理:对于任何图 G G G,有 κ ( G ) ≤ λ ( G ) ≤ δ \kappa(G)\le \lambda(G) \le \delta κ(G)≤λ(G)≤δ(点最小度数)
-
-
-
有向图的连通性:
有向图的连通关系没有对称性,不是等价关系
相互可达是等价关系
-
可达的:有向图 G = < V , E > G=<V,E> G=<V,E> 中存在结点 u u u 到结点 v v v 的道路,记为 u → v u\rightarrow v u→v。规定 u → u u\rightarrow u u→u
-
连通图:
弱连通图 $\subseteq $ 单向连通图 $\subseteq $ 强连通图
- 单向连通图:任意两点之间至少有一个结点到另一个结点可达的
- 强连通图:任意两点之间都是相互可达的
- 弱连通图:基图(有向边去掉方向)是连通图。
例题 \color{White}\colorbox{Fuchsia}{例题} 例题: G 1 G_1 G1 为弱连通图, G 2 G_2 G2 为单向连通图, G 3 G_3 G3 为强连通图。
定理:有向图 G G G 是强连通图 ⟺ \iff ⟺ 存在一条包含每个节点的有向闭道路。
-
强分图: G ′ G' G′ 是有向图 G G G 的强连通子图,且任意 G ′ ′ ⊆ G 且 G ′ ⊂ G ′ ′ G''\subseteq G且G'\sub G'' G′′⊆G且G′⊂G′′ 都有 G ′ ′ G'' G′′ 不是强连通的,则 G ′ G' G′ 为 G G G 的强分图。
(极大性)
定理:有向图中,每一个结点位于且仅位于一个强分图中。
-
10.4 图的矩阵表示
-
邻接矩阵: A = ( a i j ) n × n A=(a_{ij})_{n\times n} A=(aij)n×n 其中, a i j = { 1 , < v i , v j > ∈ E 0 , < v i , v j > ∉ E a_{ij}=\begin{cases}\begin{aligned}&1,&<v_i,v_j>\in E\\&0,&<v_i,v_j>\notin E\end{aligned}\end{cases} aij={1,0,<vi,vj>∈E<vi,vj>∈/E
考察点与点的关系
- 无向图中, deg ( v i ) = ∑ k = 1 n a i k + a i i = ∑ k = 1 n a k i + a i i \deg(v_i)=\sum\limits_{k=1}^na_{ik}+a_{ii}=\sum\limits_{k=1}^na_{ki}+a_{ii} deg(vi)=k=1∑naik+aii=k=1∑naki+aii
- 有向图中, deg + ( v i ) = ∑ k = 1 n a i k , deg − ( v i ) = ∑ k = 1 n a k i \deg^+(v_i)=\sum\limits_{k=1}^na_{ik},\quad\deg^-(v_i)=\sum\limits_{k=1}^na_{ki} deg+(vi)=k=1∑naik,deg−(vi)=k=1∑naki
- 设
A
=
(
a
i
j
)
n
×
n
A=(a_{ij})_{n\times n}
A=(aij)n×n为
G
G
G 的邻接矩阵,对
k
≥
1
k\ge1
k≥1,令
A
k
=
(
a
i
j
(
k
)
)
n
×
n
\color{red}A_k=(a_{ij}^{(k)})_{n\times n}
Ak=(aij(k))n×n。则
a
i
j
(
k
)
a_{ij}^{(k)}
aij(k) 为结点
v
i
v_i
vi 到结点
v
j
v_j
vj 长度为
k
k
k 的道路数目。
- 推论:
-
可达性矩阵(有向图中): P = ( p i j ) n × n P=(p_{ij})_{n\times n} P=(pij)n×n 其中, p i j = { 1 , 从 v i 到 v j 存 在 非 零 的 有 向 道 路 0 , o t h e r s p_{ij}=\begin{cases}\begin{aligned}&1,&&从v_i到v_j存在非零的有向道路\\&0,&&others\end{aligned}\end{cases} pij={1,0,从vi到vj存在非零的有向道路others
-
构造法一:计算 B n = A + A 2 + . . . + A n B_n=A+A^2+...+A^n Bn=A+A2+...+An, p i j = { 1 , b i j > 0 0 , b i j = 0 p_{ij}=\begin{cases}\begin{aligned}&1,&&b_{ij}>0\\&0,&&b_{ij}=0\end{aligned}\end{cases} pij={1,0,bij>0bij=0
-
构造法二:由于可达性矩阵相当于邻接矩阵的传递闭包,因此可用 W a r s h a l l Warshall Warshall 算法求 P P P
-
构造有向图中全部强分图:定义 P T ⊙ P = ( g i j ) n × n P^T\odot P=(g_{ij})_{n\times n} PT⊙P=(gij)n×n,其中 g i j = { 1 , i = j p i j ∧ p j i , i ≠ j g_{ij}=\begin{cases}\begin{aligned}&1,&&i=j\\&p_{ij}\land p_{ji},&&i\ne j\end{aligned}\end{cases} gij={1,pij∧pji,i=ji=j
若 P T ⊙ P P^T\odot P PT⊙P 的第 i i i 行的非零元素在第 j 1 , j 2 , . . . , j k j_1,j_2,...,j_k j1,j2,...,jk 列,则点诱导子图 G ( { v i , v j 1 , v j 2 , . . . , v j k } ) G(\{v_i,v_{j_1},v_{j_2},...,v_{j_k} \}) G({vi,vj1,vj2,...,vjk}) 就是 G G G 的一个强分图。
-
-
关联矩阵(有向图中): M = ( m i j ) n × m M=(m_{ij})_{n\times m} M=(mij)n×m,其中 m i j = { 1 , e j 是 v i 的 出 边 − 1 , e j 是 v i 的 入 边 0 , o t h e r s m_{ij}=\begin{cases}\begin{aligned}&1,&e_j是v_i的出边\\&-1,&e_j是v_i的入边\\&0,&others \end{aligned}\end{cases} mij=⎩⎪⎨⎪⎧1,−1,0,ej是vi的出边ej是vi的入边others
例题 \color{White}\colorbox{Fuchsia}{例题} 例题:
-
圈矩阵(有向图中): C = ( c i j ) k × m C=(c_{ij})_{k\times m} C=(cij)k×m,其中 { c 1 , c 2 , . . . , c k } \{c_1,c_2,...,c_k \} {c1,c2,...,ck} 是有向图 G G G 中的全部圈, c i j = { 1 , c i 与 e j 方 向 一 致 − 1 , c i 与 e j 方 向 相 反 0 , c i 不 包 含 e j c_{ij}=\begin{cases}\begin{aligned}&1,&&c_i与e_j方向一致\\&-1,&&c_i与e_j方向相反\\&0,&&c_i不包含e_j\end{aligned}\end{cases} cij=⎩⎪⎨⎪⎧1,−1,0,ci与ej方向一致ci与ej方向相反ci不包含ej