Loading [MathJax]/jax/element/mml/optable/MathOperators.js

离散数学笔记(13)——图论

离散数学笔记(13)——图论

图论

无向图的连通性

两点之间连通

如果结点 uv 之间存在一条路,则称 uv 连通。

规定:对任何结点 uuu 连通。

连通关系

结点间的连通关系是一个等价关系

证明略。

连通

G=V,E 是无向图,RV 上连通关系,设 RV 的商集中有等价类 V1,V2,,Vn,这 n 个等价类构成的 n 个子图分别记作 G[V1],G[V2],,G[Vn],并称它们为 G连通分支。并用 W(G) 表示 G连通分支数

连通图

如果图 G 只有一个连通分支(W(G)=1),则称 G连通图

定理:图 G=V,E 是连通的,当且仅当对 V 的任何划分 V1,V2,恒存在一条边,使得它的端点分别属于 V1V2

115

连通图连通度的强弱

G 中删去点 v:把 v 以及与 v 关联的边删去。

G 中删去边 e:仅需把该边删去。

割集

点割集与割点

G=V,E 是连通无向图,结点集合 V1V,如果删去 V1 中所有结点后,G 就变得不连通了,则称 V1G 的一个点割集

如果点割集 V1 中只有一个结点,则称此结点为割点

点连通度

G 不是连通图,定义:

κ(G)=min{|V1|||V1| 是 G 的点割集}G点连通度

注 1:点连通度表示使 G 不连通至少要删去的结点数。

注 2:具有割点图的点连通度 κ(G)=1,不连通图的点连通度为 0κ(Kn)=n1

定理:一个连通图中结点 v 是割点的充分必要条件是存在两个结点 uw,使得从 uw 的任何路都通过 v

边割集与割边(桥)

G=V,E 是连通无向图,边的集合 E1E,如果删去 E1 中所有边后,G 变得不连通了,则称 E1G 的一个边割集

如果边割集 E1 中只有一条边,则称此边为割边,也称之为

边连通度

G 不是平凡图,定义:

λ(G)=min{|E1||E1 是 G 的边割集}G边连通度

:如果 G 不连通,λ(G)=0,对平凡图,λ(G)=0,λ(Kn)=n1

定理G 是无向图,则 κ(G)λ(G)δ(G)

116

117

割边的特性

  1. 连通图 G 的边 e 是割边当且仅当存在 G 的两点 uv,使得任意一条 uv 路过 e

  2. 连通图 G 的边 e 是割边的充要条件是 e 不在 G 的任一圈上。

    118

距离

定义

uvG 中任意两点,若 uv 连通,则 G 中最短的 uv 通路的长定义为 uv 之间的距离,记为dG(u,v),简记 d(u,v)。若 uv 不连通,则定义 d(u,v)=

性质

  1. d(u,v)=d(v,u)
  2. 三角不等式成立。

补充定义与定理

定义:如果 κ(G)h,则称 Gh 连通的;如果 λ(G)f,则称 Gf 边连通的。

结论 1n 阶完全图是 (n1) 连通的。

结论 2:若 h1>h2,则 h1 连通图 Gh2 连通的;若 f1>f2,则 f1 边连通图 Gf2 边连通的。

定理 1:设图 Gh 连通的,则 G 的每个顶点的度均 h

定理 2:设图 Gh 连通的,vG 中的一 个顶点,则 Gv(h1) 连通的。

有向图

定义

定义 1:一个有向图 G 定义为一个二元组 V,E,记作 G=V,E,其中:

  1. V 是一个非空集合,称为 G顶点集,它的元素称为顶点
  2. EV×V,称为 G有向边集(或弧集),其元素称为有向边(或弧)V×V 的元素在 E 中可以出现不止一次。

定义 2:设 e=u,vE(G),称 ue起点ve终点

定义 3

Γ+(v)={u|v,uE}v直接后继集

Γ(v)={u|u,vE}v直接前驱集

有向图结点的出度和入度

v 的出度:从结点 v 射出的边数,记作 d+(v)

v 的入度:射入结点 v 的边数,记作 d(v)

结论d+(v)=|Γ+(v)|,d(v)=|Γ(v)|,d(v)=d+(v)+d(v)

定理G=V,E 是有向图,则 G 的所有结点的出度之和等于入度之和,即 vVd+(v)=vVd(v)

有向图的同构

G=V,EG=V,E 是图,如果存在双射 f:VV,且任何 vi,vjV,边 e=vi,vjE 当且仅当 e=f(vi),f(vj)E,并且边 ee 的重数相同,则称 GG 同构,记作 G

道路和回路

有向路

给定有向图 G = \langle V,E \rangle,设 v_0,v_1,\cdots,v_k \in V,e_1,e_2,\cdots,e_k \in E,其中 e_i = \langle v_{i – 1},v_i \rangle,则称结点和边的交叉序列 v_0e_1v_1\cdots e_kv_k 是连接 v_0v_k有向路

路中含有的边数 k 称之为路的长度

有向回路

v_0 = v_k,称为有向回路

有向迹与有向闭迹

如果一条有向路中,所有边都不同,则称此路为有向迹

如果一条有向回路中,所有边都不同,则称此回路为有向闭迹

有向通路与有向圈

如果一条有向路中,所有结点都不同,则称此路为有向通路

如果一条有向回路中,除起点和终点外,其余结点都不同,则称此回路为有向圈

有向图的连通性

结点间的可达性

G = \langle u,v \rangle 是有向图,u,v \in V,如果从 uv 有一条路,则称从 uv 可到达

结点间的距离

如果 u 可达 v,可能从 uv 有多条路,其中最短的路的长度,称之为从 uv距离,记作 d\langle u,v \rangle

距离的性质

  1. d\langle u,v \rangle \ge 0
  2. d\langle u,u \rangle = 0(规定)
  3. d\langle u,v \rangle + d\langle v,w \rangle \ge d\langle u,w \rangle
  4. 如果从 uv 不可达,则 d\langle u,v \rangle = \infty
  5. u,v 互相可达,d\langle u,v \rangle 不一定等于 d\langle v,u \rangle

图的直径

G 是个有向图,定义:
D = \max_{u,v \in V} \{d\langle u,v \rangle\}
为图 G直径

强连通、单侧连通和弱连通

在简单有向图 G 中,如果任何两个结点间相互可达,则称 G强连通

如果任何一对结点间,至少有一个结点到另一个结点可达,则称 G单侧连通

如果将 G 看成无向图后(即把有向边看成无向边)是连通的,则称 G弱连通

图的矩阵表示

邻接矩阵(可以表示环,但不能表示多重边)

G = \langle V,E \rangle 是个简单图,V = \{v_1,\cdots,v_n\},一个 n 阶矩阵 A = (a_{ij}) 称为 G 的邻接矩阵,其中:
a_{ij} = \left\{ \begin{array}{cc} 1 & (v_i,v_j) \in E \lor \langle v_i,v_j \rangle \in E \\ 0 & (v_i,v_j) \not \in E \land \langle v_i,v_j \rangle \not \in E \end{array} \right.
性质

  1. 无向图:每行 1 个数与每列 1 个数相等,等于对应结点的度。
  2. 有向图:每行 1 个数是对应结点的出度,每行 1 个数是对应结点的入度。

定理:设 G = \langle V,E \rangle 是简单图,令 V=\{v_1,v_2,\cdots,v_n\}G 的邻接矩阵 (A(G))^k 中的第 i 行第 j 列元素{a_{ij}}^k=m,表示在图 G 中从 v_iv_j 长度为 k 的路有 m 条。(该定理对有向图和无向图均成立)

119

可达性矩阵

G = \langle V,E \rangle 是个简单图,V = \{v_1,\cdots,v_n\},一个 n 阶矩阵 P = (p_{ij}) 称为 G 的邻接矩阵,其中:

p_{ij} = \left\{ \begin{array}{cc} 1 & v_i \text{ 到 } v_j \text{ 可达} \\ 0 & \text{否则} \end{array} \right.
求法

|V(G)| = n,记 A^{(k)} 为将 A^k 中非零元素改写为 1 得到的 01 矩阵。

P = A \lor A^{(2)} \lor \cdots \lor A^{(n)}

可以用矩阵乘法求得 A^{(k)},或者使用求传递闭包的 Warshall 算法。

完全关联矩阵(能表示重边,但不能表示环)

  1. 无向图的完全关联矩阵:设 G = \langle V,E \rangle 是个无向图,V = \{v_1,v_2,\cdots v_n\}E = \{e_1,e_2,\cdots,e_m\}

    一个 n \times m 阶矩阵 M = (m_{ij}) 称为 G完全关联矩阵,其中:
    m_{ij} = \left\{ \begin{array}{cc} 1 & v_i \text{ 与 } e_j \text{ 关联} \\ 0 & \text{否则} \end{array} \right.
    可以看出性质:

    1. 每列只有两个 1
    2. 每行 1 的个数为对应结点的度数。
    3. 如果两列相同,则说明对应的两条边是平行边。
  2. 有向图的完全关联矩阵:设 G = \langle V,E \rangle 是个有向图,V = \{v_1,v_2,\cdots v_n\}E = \{e_1,e_2,\cdots,e_m\}

    一个 n \times m 阶矩阵 M = (m_{ij}) 称为 G完全关联矩阵,其中:
    m_{ij} = \left\{ \begin{array}{cc} 1 & v_i \text{ 是 } e_j \text{ 的起点} \\ -1 & v_i \text{ 是 } e_j \text{ 的终点} \\ 0 & v_i \text{ 与 } e_j \text{ 不关联} \end{array} \right.
    可以看出性质:

    1. 每列只有一个 1-1
    2. 每行中 1 的个数为对应结点的出度,-1 个数为对应结点的入度。

带权图的最短路问题

带权图(赋权图)

G = \langle V,E,W \rangle 是个图,如果 G 的每条边 e 上都标有实数 w(e) \in W,称这个数为边 e,称此图为赋权图

规定u,v \in V,边 (u,v) 的权记为 w(u,v)

  1. w(u,u) = 0
  2. 如果 u,v 之间无边相连,w(u,v) = \infty

带权图的路的权:设 PG 中一条路,定义路 P 的权为:
w(P) = \sum_{e \in P} w(e)

最短路问题

在赋权图中求一条从给定的一点 u(始点)到另一点 v(终点)的路 P,使 P 是所有 u – v 路中权最小的,称 P 为从 uv最短路

带权图的两点间距离

结点 uv 之间的最短路的长称为结点 uv 之间的距离,记作 d(u,v)

如果 G 是有向带权图,称为结点 uv 的距离,记作 d\langle u,v \rangle

Dijkstra 算法

基本思路:先给赋权图 G 的每个点记一个数(称为标号),标号分临时标号(T 标号)和固定标号(P 标号)两种,T 标号表示从始点到这一点的最短路长度的上界;P 标号则是从始点到这一点的最短路的长度;每一步把某个点的 T 标号改变为 P 标号,一旦终点得到 P 标号,算法终止。若寻找从始点每一点的最短路,则最多经过 |V| – 1 步算法终止。

令图 G = \langle V,E,W \rangle|V| = nU_j1j 的最短路长度。

  1. P = \{1\}T = \{2,3,\cdots,n\}U_1 = 0U_j = w(1,j),j = 2,3,\cdots,n
  2. T 中找一点 k,使得 U_k = \min_{j \in T} \{U_j\},置 P = P \cup \{k\}T = T – \{k\}。若 T = \varnothing 则终止,否则执行步骤 3。
  3. T 中每个点 jU_j = \min \{U_j,U_k + w(k,j)\},返回步骤 2。

 

点赞 1

No Comments

Add your comment

纵使天光终将熄灭,我们也要歌颂太阳。