9 有向图

2023-05-10
2023-05-10

第九章 有向图

9.1 有向图及其连通性

有向图的概念与性质

有向图

一个有向图 DD (digraph) 是指一个三元组 (V(D),E(D),фD)(V(D), E(D), ф_D). 其中, V(D)V(D) 是非空的顶点集合, E(D)E(D) 是不与 V(D)V(D) 相交的边集合, 而 фDф_D 是关联函数, 它使 DD 的每条边对应 DD 的有序顶点对 (不必相异).

弧

如果 ee 是 DD 的一条边, 而 uu 与 vv 是使得 фD(u,v)=eф_D(u,v)=e 的顶点, 那么称 ee 是由 uu 连接到 vv, 记为 e=(u,v)e=(u,v). 同时, 称 uu 为 ee 的弧尾 (起点, tail), vv 为 ee 的弧头 (终点, head).

注: 有向图可以简单地理解为 “边有方向的图”.

平行边 重数

在一个有向图 DD 中, 具有相同起点和终点的边称为平行边 (multiple edge). 两点间平行边的条数称为该两点间的重数 (multiplicity).

简单有向图

在一个有向图 DD 中, 如果没有有向自环和平行边, 则称该图为简单有向图 (simple digraph).

有向图的基础图, 无向图的定向图

设 DD 是有向图, 去掉 DD 中边的方向后得到的无向图 GG, 称为 DD 的基础图.

又若 GG 是无向图, 给 GG 的每条边加上方向后得到的有向图 DD 称为 GG 的一个定向图 (oriented graph).

例

一个简单图有多少个定向图?

解: 因为每条边有 22 种定向方式, 所以共有 2m(G)2^{m(G)} 种定向.

出度 d+(v)d^+(v), 入度 d−(v)d^-(v), 度 d(v)d(v)

设 DD 是有向图, vv 是 DD 中顶点.

以 vv 为始点的边的条数称为点 vv 的出度 (out-degree), 以 vv 为端点的一个自环算 11 度. 点 vv 的出度记为 d+(v)d^+(v);
以 vv 为终点的边的条数称为点 vv 的入度 (in-degree), 以 vv 为端点的一个自环算 11 度. 点 vv 的入度记为 d−(v)d^−(v);

点 vv 的出度与入度之和称为点 vv 的度, 记为 d(v)d(v).

例

求证: 存在一个 GG 的定向图 DD, 使得对 ∀v∈V(D)∀v∈V(D), 有 ∣d+(v)−d−(v)∣≤1|d^+ (v)-d^- (v)|≤1.

证明:

不失一般性, 设 GG 是连通图. GG 中奇度顶点个数必然为偶数个, 将偶数个奇数度顶点配对, 然后在每一对配对顶点间连一条边得到欧拉图 G1G_1.

在 G1G_1 中用 Fleury 算法求出 GG 的一个欧拉环游 CC, 然后顺次地在 CC 上标上方向, 由此得到 CC 的定向图 C1C_1.

在 C1C_1 中, 去掉添加的边后, 得到 GG 的定向图 DD.

显然: 对 ∀v∈V(D)∀v∈V(D), 有 ∣d+(v)−d−(v)∣≤1|d^+ (v)-d^- (v)|≤1.

定理

设 D=(V,E)D=(V, E) 是有向图, 则:

∑v=V(D)d+(v)=∑v∈V(D)d−(v)=m(D)\sum_{v=V(D)}d^+(v)=\sum_{v\in V(D)}d^-(v)=m(D)

证明: 由出度与入度的定义立即可得上面等式.

有向图的矩阵表示

设 D=(V,E)D=(V,E) 是有向图, 其中 V={v1,v2,…,vn},E={e1,e2,…,em}V=\{v_1,v_2, …,v_n\}, E=\{e_1,e_2,…,e_m\}.

邻接矩阵 AA

称 A(D)=(aij)n×nA(D)=(a_{ij})_{n×n} 是 DD 的邻接矩阵, 其中 aija_{ij} 是 viv_i 为起点, vjv_j 为终点的边的条数, 1≤i≤n,1≤j≤n1≤i≤n, 1≤j≤n.

注: 有向图的邻接矩阵不一定对称.

关联矩阵 MM

若 DD 无自环. 称矩阵 M=(mij)n×mM=(m_{ij})_{n×m} 是 DD 的关联矩阵, 其中

mij={1,vi 是 ej 的起点−1,vi 是边 ej 的终点 (1≤i≤n,1≤j≤m)0,其它m_{ij}= \begin{cases} 1, & v_i ~是~ e_j ~的起点\\ -1, & v_i ~是边~ e_j ~的终点~(1≤i≤n,1≤j≤m)\\ 0, & 其它 \end{cases}

关联矩阵 MM 的性质

MMT=D(G)−A(G)MM^T=D(G)−A(G), 其中 DD 是对应无向图的度矩阵, AA 是对应无向图的邻接矩阵.

例

写出下面有向图 D1D_1 的邻接矩阵和 D2D_2 的关联矩阵.

image-20230529205626945

A(D1)=(0100021200000010)  M(D2)=(10000−11−1100−1101000−1−1)A(D_1)= \begin{pmatrix} 0&1&0&0 \\ 0&2&1&2 \\ 0&0&0&0 \\ 0&0&1&0 \end{pmatrix} ~~ M(D_2)= \begin{pmatrix} 1&0&0&0&0 \\ -1&1&-1&1&0 \\ 0&-1&1&0&1 \\ 0&0&0&-1&-1 \end{pmatrix}

有向图的连通性

有向途径 (闭途径)、迹 (闭迹) 和路 (圈)

上面概念与无向图中相关概念类似.

有向图中顶点间的连通性

设 D=(V,E)D=(V, E) 是有向图, uu 与 vv 是 DD 中两个顶点.

  1. 若 DD 中存在一条 (u,v)(u,v) 路, 则称 uu 可达 vv , 记为 u→vu→v . 规定 u→uu→u .
  2. 若 DD 中存在一条 (u,v)(u,v) 路或 (v,u)(v,u) 路, 则称 uu 与 vv 是单向连通的.
  3. 若 DD 中存在一条 (u,v)(u,v) 路和一条 (v,u)(v,u) 路, 则称 uu 与 vv 是双向连通的或强连通的 (strongly connected).

★弱连通图, 单向连通图, 强连通图

设 D=(V,E)D=(V,E) 是有向图.

  1. 若 DD 的基础图是连通的, 称 DD 是弱连通图 (weakly connected);
  2. 若 DD 的中任意两点是单向连通的, 称 DD 是单向连通图 (unilaterally connected);
  3. 若 DD 的中任意两点是双向连通的, 称 DD 是强连通图 (strongly connected).
image-20230529210602587

在上面三图中, D1D_1 仅为弱连通图, D2D_2 是单向连通的, 而 D3D_3 是强连通的.

定理

有向图 D=(V,E)D=(V, E) 是强连通的, 当且仅当 DD 中存在包含 DD 中所有顶点的回路.

证明:

“必要性”

设 V(D)={v1,v2,…,vn}V(D)=\{v_1,v_2,…,v_n\}. 由于 DD 是强连通图, 所以, 对任意两点 viv_i 与 vjv_j, 都存在 (vi,vj)(v_i,v_j) 路, 同时也存在 (vj,vi)(v_j,v_i) 路. 所以存在如下闭途径: v1→v2→…→vn→v1v_1→v_2→…→v_n→v_1. 这是一条包含 DD 的所有顶点的回路.

“充分性”

不失一般性, 设 C=v1→v2→…→vn→v1C= v_1→v_2→…→v_n→v_1 是包含 DD 的所有顶点的一条回路. 对于 DD 的任意两点 viv_i 与 vjv_j, 一方面, 由 CC 可得到 viv_i 到 vjv_j 的途径 vi→vi+1→…→vjv_i →v_{i+1} →… →v_j. 另一方面, 由 CC 又可得到 vjv_j 到 viv_i 的途径 vj→vj+1→…vi−1→viv_j →v_{j+1} →…v_{i-1} →v_i. 所以 DD 中任意两点是强连通的, 即 DD 是强连通图.

例

说明下图 DD 是强连通图.

image-20230529211647103

解: v1v5v6v2v4v3v2v4v5v6v2v1v_1v_5v_6v_2v_4v_3v_2v_4v_5v_6v_2v_1 是含 DD 所有顶点的一条回路.

强连通分支, 单向连通分支, 弱连通分支

设 D’D’ 是有向图 D=(V,E)D=(V, E) 的一个子图. 如果 D’D’ 是强连通的 (单向连通的、弱连通的), 且 DD 中不存在真包含 D’D’ 的子图是强连通的 (单向连通的、弱连通的), 则称 D’D’ 是 DD 的一个强连通分支 (单向连通分支、弱连通分支).

例

求下图 DD 的强连通分支、单向连通分支.

image-20230529211834493

(1) DD 的强连通分支

{1}{2,3,9,8,4,7}{5}{6}\{1\} \{2, 3, 9, 8, 4, 7\} \{5\} \{6\}

上面点集导出的子图是 DD 的强连通分支.

image-20230529211905126

(2) DD 的单向连通分支

DD 的单向连通分支就是 DD 本身.

注: 求 DD 的强、弱连通分支比较容易, 求单向分支比较困难.

定理

有向图 D=(V,E)D=(V, E) 的每个点均位于 DD 中唯一的强 (弱) 连通分支中.

证明: 对于弱连通分支情形, 命题结论是显然的.

对于强连通分支情形, 因为不难证明: DD 中顶点间的强连通关系是等价关系. 该等价关系对应的等价类在 DD 中的导出子图必然是 DD 的一个强连通分支. 而 DD 的一个强连通分支包含的顶点也必然是该等价关系的一个等价类.

但是, 对于单向连通分支来说, DD 的某个顶点, 可能会分属于 DD 的若干个单向连通分支. 原因是单向连通关系不是等价关系.

9.2 图的定向问题

图的定向问题是有向图中的一个典型问题之一, 具有广泛的应用背景.

城市交通网设计问题: 一座城市为某种需要, 要把所有街道改为单行道, 使得人们在任意两个位置都可以相互到达. 如何设计单行道方向?图论建模: 街道交叉口模型为图的顶点, 两点连线当且仅当该两点是某街道的端点. 问题等价于在模型图中给出其强连通定向.

对于任意一个无环图 GG, 要对其作强连通定向, 需要解决两个问题: 一是强连通定向的存在性问题, 二是如何定向问题. 上面两个问题都已经得到解决.

定理: 强连通定向的存在性问题

(Robbins, 1939) 非平凡连通图 GG 具有强连通定向当且仅当 GG 是 22 边连通的.

强连通定向算法

该算法采用顶点标号方法给边标上方向. 设 G=(V,E)G=(V, E) 是 22 边连通图.

(1) 在 GG 中任取顶点 ww, 令 l(w)=1,L={w},U=V−{w},A=Φl(w)=1, L=\{w\}, U=V−\{w\}, A=Φ;

(2) 在 LL 中找 l(v)l(v) 最大的点 vv, 同时 vv 在 UU 中存在邻点 uu. 然后作有向边 (v,u)(v, u). 令 l(u)=l(v)+1,L=L∪u,U=U−ul(u)=l(v)+1, L=L∪{u}, U=U−{u} 且 A=A∪(v,u)A=A∪{(v, u)}; (注: 标号从小到大的有向边)

(3) 若 L≠VL≠V, 转 (2); 否则转 (4);

(4) 对剩下的未赋予方向的边, 按由标号值大的顶点指向标号值小的顶点赋予方向.

例

求下图 GG 的强连通定向.

image-20230529223444072

解:

(1) 取点 v1v_1, 令 l(v1)=1,L={v1},U={v2,v3,…,v7},A=Φl(v_1)=1, L=\{v_1\}, U=\{v_2, v_3, …, v_7\}, A=Φ;

(2) 在 UU 中取点 v7v_7, 作边 (v1,v7)(v_1,v_7). 令 l(v7)=l(v1)+1=2l(v_7)=l(v_1)+1=2,

L={v1,v7},U={v2,v3,…,v6},A={(v1,v7)}L =\{v_1,v_7\}, U=\{v_2, v_3,…, v_6\}, A=\{(v_1,v_7)\};

image-20230529223459980

(2) 在 LL 中取 v7v_7, UU 中取点 v6v_6 , 作边 (v7,v6)(v_7, v_6). 令 l(v6)=l(v7)+1=3l(v_6)=l(v_7)+1=3,

L={v1,v7,v6},U={v2,v3,…,v5},A={(v1,v7),(v7,v6)}L =\{v_1, v_7, v_6\}, U=\{v_2, v_3, …, v_5\}, A=\{(v_1,v_7), (v_7,v_6) \};

(2) 在 LL 中取 v6v_6, UU 中取点 v5v_5, 作边 (v6,v5)(v_6, v_5). 令 l(v5)=l(v6)+1=4l(v_5)=l(v_6)+1=4,

L={v1,v7,v6,v5},U={v2,v3,v4},A={(v1,v7),(v7,v6),(v6,v5)}L =\{v_1,v_7,v_6,v_5\}, U=\{v_2,v_3,v_4\}, A=\{(v_1,v_7), (v_7,v_6), (v_6,v_5)\};

(2) 在 LL 中取 v5v_5, UU 中取点 v2v_2 , 作边 (v5,v2)(v_5,v_2). 令 l(v2)=l(v5)+1=5l(v_2)=l(v_5)+1=5,

L={v1,v7,v6,v5,v2},U={v3,v4},A={(v1,v7),(v7,v6),(v6,v5),(v5,v2)}L =\{v_1, v_7, v_6, v_5, v_2\}, U=\{v_3, v_4\}, A=\{(v_1,v_7), (v_7,v_6),(v_6,v_5),(v_5, v_2)\};

image-20230529223358719

(2) 在 LL 中取 v2v_2, UU 中取点 v3v_3, 作边 (v2,v3)(v_2, v_3). 令 l(v3)=l(v2)+1=6l(v_3)=l(v_2)+1=6,

L={v1,v7,v6,v5,v2,v3},U={v4},A={(v1,v7),(v7,v6),(v6,v5),(v5,v2),(v2,v3)}L =\{v_1,v_7,v_6,v_5,v_2,v_3\}, U=\{v_4\}, A=\{(v_1,v_7), (v_7,v_6), (v_6,v_5), (v_5,v_2), (v_2, v_3)\};

(2) 在 LL 中取 v3v_3, UU 中取点 v4v_4, 作边 (v3,v4)(v_3,v_4). 令 l(v4)=l(v3)+1=7l(v_4)=l(v_3)+1=7,

L={v1,v7,v6,v5,v2,v3,v4},U=Φ,A={(v1,v7),(v7,v6),(v6,v5),(v5,v2),(v2,v3),(v3,v4)}L =\{v_1,v_7,v_6,v_5,v_2,v_3,v_4\}, U=Φ, A=\{(v_1,v_7), (v_7,v_6), (v_6,v_5), (v_5,v_2), (v_2,v_3), (v_3,v_4)\};

(3) U=ΦU=Φ, 所以, 由 (4) , 对剩下的边赋予方向.

image-20230529223347025

9.3 有向路与有向圈

定理: 有向圈的存在性

设 D=(V,E)D=(V, E) 是有向图.

(1) 若 DD 中对任意的 v∈V(D)v∈V(D) 均有 d+(v)>0d^+(v)>0 (或 d−(v)>0)d^−(v)>0), 则 DD 中存在有向圈.

(2) 若 DD 连通, 且对任意的 v∈V(D)v∈V(D) 均有 d+(v)=1d^+(v)=1 (或 d−(v)=1d^−(v)=1), 则 DD 中存在唯一有向圈.

定理: 有向欧拉环游的存在性

设 D=(V,E)D=(V, E) 是有向图. DD 中存在有向欧拉环游, 当且仅当 DD 连通且每个点的出度和入度相等;

思考: 有向图 DD 中存在有向欧拉迹的充要条件?

竞赛图

在各种比赛中, 循环赛是常见形式, 即对与对各队之间都要进行比赛. 循环赛的结果可用所谓的 “竞赛图” (tournament) 来表示. 若 uu 队战胜了 vv 队, 则由点 uu 向 vv 画一条有向边.

显然, “竞赛图” 是完全图的一种定向图.

定理

nn 阶完全图的定向方式有 2n(n−1)22^{\frac{n(n-1)}{2}} 种.

从同构的意义上看: 一阶竞赛图有 11 个; 二阶竞赛图有 11 个; 三阶竞赛图有 22 个; 四阶竞赛图有 44 个; 五阶竞赛图有 1212 个. 1212 阶竞赛图超过 15401540 亿个.

定理 (Rédei, 1934)

竞赛图中存在有向 HH 路.

定理 (Camion, 1959)

强连通竞赛图中存在有向 HH 圈.

有向图的相关结论, 可参考 Jørgen Bang-Jensen, Gregory Z. Gutin, Digraphs: Theory, Algorithms and Applications, Springer, London, 2009.

文章目录

版权

本文遵循署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0) 标准。

部分内容源自互联网、书本和课堂,仅供交流学习,未用于任何商业用途。如果它们侵犯了您的权益,请与我们联系,我们将立即删除它们。

版权所有 © 2020-2026 Kloudy 保留所有权利.