有向图
- 底图:对于一个有向图 D D D,忽略每条有向边的方向得到的无向图 G G G称为 D D D的底图
- 定向图:对于一个无向图 G G G,给每条边指定一个方向,得到的有向图 D D D称为 G G G的定向图
- 外/内邻顶点:若 D D D中存在有向边 ( u , v ) (u,v) (u,v),则称 v v v是 u u u的外邻顶点,称 u u u是 v v v的内邻顶点
- 外/内邻集:对于顶点 u ∈ V ( D ) u\in V(D) u∈V(D),分别用 N D + ( u ) N_D^+(u) ND+(u)和 N D − ( u ) N_D^-(u) ND−(u)表示 D D D中 u u u的所有外邻顶点和所有内邻顶点的集合,简称内邻集和外邻集
有向图的连通性
- 可达:设 D D D是有向图,若存在从 u u u到 v v v的有向路径,则称 u u u可达 v v v。
- 强连通的: ∀ u , v ∈ V ( D ) \forall u,v\in V(D) ∀u,v∈V(D), u u u与 v v v双向可达,则称 D D D是强连通的
- 单向连通的: ∀ u , v ∈ V ( D ) \forall u,v\in V(D) ∀u,v∈V(D), u u u可达 v v v或 v v v可达 u u u,则称 D D D是单向连通的
- 弱连通的:若 D D D的底图是连通的无向图,则称 D D D是弱连通的
- 强连通片:根据双向可达关系可以确定 V ( D ) V(D) V(D)的一个划分 V 1 , V 2 , ⋯ , V w V_1,V_2,\cdots,V_w V1,V2,⋯,Vw,由它们导出的有向子图 D [ V 1 ] , D [ V 2 ] , ⋯ , D [ V w ] D[V_1],D[V_2],\cdots,D[V_w] D[V1],D[V2],⋯,D[Vw],称为 D D D的强连通片
- 定理: D D D是强连通有向图当且仅当 D D D中存在含 D D D中所有顶点的有向回路
- 定理:连通无向图 G G G可以定向成强连通有向图,当且仅当 G G G中没有桥
- 引理:若 D D D单向连通,则 ∀ S ⊆ V ( D ) , S ≠ ∅ \forall S\subseteq V(D),S\neq\varnothing ∀S⊆V(D),S=∅,都存在顶点 v ∈ S v\in S v∈S, v v v可达 S S S中所有的顶点
- 定理: D D D是单向连通有向图,当且仅当 D D D中存在经过所有顶点的有向路径
- Hopcroft-Tarjan算法
- 输入:给定2-边连通图 G G G
- 输出:强连通定向图
- 初始化:任取 G G G中一个顶点 w w w,令 l ( w ) = 1 , L = { w } , U = V − { w } , A = ∅ l(w)=1,L=\{w\},U=V-\{w\},A=\varnothing l(w)=1,L={w},U=V−{w},A=∅
- 定向1:在 L L L中找点 v v v,使 l ( v ) l(v) l(v)最大并且满足在 U U U中存在与 v v v相邻的点,取 U U U中一个与 v v v相邻的点 u u u,使边 u v uv uv变成有向边 < v , u > <v,u> <v,u>,令 l ( u ) = l ( v ) + 1 , L = L { u } , U = U − { u } , A = A ∪ { < v , u > } l(u)=l(v)+1,L=L\{u\},U=U-\{u\},A=A\cup\{<v,u>\} l(u)=l(v)+1,L=L{u},U=U−{u},A=A∪{<v,u>}
- 定向2:直至定向1无法定向,对所有未赋方向的边 x y xy xy,若 l ( x ) > l ( y ) l(x)>l(y) l(x)>l(y),则方向为 x x x指向 y y y,否则 y y y指向 x x x
有向轨道与有向圈
- Roy-Gallai定理:有向图 D D D中含有长度为 X ( G ) − 1 X(G)-1 X(G)−1的有向轨道,其中 G G G为 D D D的底图
- 定理:设
D
=
(
V
,
E
)
D=(V,E)
D=(V,E)是有向图
- 若 D D D中存在子图 H H H使对任意的 v ∈ V ( H ) v\in V(H) v∈V(H)均有 d + ( v ) > 0 或 d − ( v ) > 0 d^+(v)>0或d^-(v)>0 d+(v)>0或d−(v)>0,则 D D D中存在有向圈
- 若 D D D连通且 ∀ v ∈ V ( D ) \forall v\in V(D) ∀v∈V(D),均有 d + ( v ) = 1 或 d − ( v ) = 1 d^+(v)=1或d^-(v)=1 d+(v)=1或d−(v)=1,则 D D D中存在惟一个有向圈
- 竞赛图:完全图的定向图称为竞赛图
- 每个竞赛图都有有向Hamilton轨道
- 王:竞赛图中得分最多的顶点是王
- 定理:竞赛图 D D D中 v v v是惟一的王,当且仅当 v v v的得分是 V ( D ) − 1 V(D)-1 V(D)−1
- PERT图:一个无重边无圈的赋权有向图 D D D若满足恰有一个顶点的入度为0和恰有一个顶点的出度为0,则称 D D D为PERT图。
- 发点/收点:PERT中入度为 0 0 0的点称为发点,出度为0的点为收点
- 关键路径:PERT图中从发点到收点的最长(按权计算)的路称为关键路径
- 一点解释:给定PERT图 D D D,设 D D D的发点为 s s s,收点为 t t t,关键路径为 P P P, D D D中顶点 u u u到顶点 v v v的最长途径记为 P u v P_{uv} Puv,其长度记为 W ( P u v ) W(P_{uv}) W(Puv)。这样, W ( P ) = W ( P s t ) W(P)=W(P_{st}) W(P)=W(Pst), v v v的最早开始时间为 W ( P s v ) W(P_{sv}) W(Psv), v v v的最晚开始时间为 W ( P ) − W ( P v t ) W(P)-W(P_{vt}) W(P)−W(Pvt), v v v的缓冲时间为 W ( P ) − W ( P v t ) − W ( P s v ) W(P)-W(P_{vt})-W(P_{sv}) W(P)−W(Pvt)−W(Psv)。显然 P P P中的顶点缓冲时间为0, P P P外的点缓冲时间大于等于0
- 发点到其他点的最长路算法
- 构造生成树:以发点为根构造生成根树 T T T,并求出发点到各顶点的距离 L ( v ) L(v) L(v)
- 换边:任意一条权为 W ( u , v ) W(u,v) W(u,v)的弦 < u , v > <u,v> <u,v>,若 L ( v ) < L ( u ) + W ( u , v ) L(v)< L(u)+W(u,v) L(v)<L(u)+W(u,v),则从 T T T中删除以 v v v为终点的有向边,取而代之以有向边 < u , v > <u,v> <u,v>,同时更新后续顶点的 L ( v ) L(v) L(v),直到处理完所有弦
有向Hamilton图
- 定理:假定 v ≥ 3 v\geq 3 v≥3阶竞赛图 D D D是强连通的,则任给 k ( 3 ≤ k ≤ v ) k(3\leq k\leq v) k(3≤k≤v), D D D中每个顶点都在某个 k k k阶有向圈中
- 定理:设 P ( u 0 , v 0 ) P(u_0,v_0) P(u0,v0)是严格有向图 D D D中的最长有向轨道,则其长度 ∣ E ( P ( u 0 , v 0 ) ) ∣ ≥ max { δ − , δ + } |E(P(u_0,v_0))|\geq\max\{\delta^-,\delta^+\} ∣E(P(u0,v0))∣≥max{δ−,δ+}。其中, δ − , δ + \delta^-,\delta^+ δ−,δ+分别为 D D D的最小入度与最小出度
- 定理:设 D D D是 v v v阶严格有向图,若 min { δ − , δ + } ≥ v 2 > 1 \min\{\delta^-,\delta^+\}\geq\frac{v}{2}>1 min{δ−,δ+}≥2v>1,则 D D D是有向Hamilton图