网络与流函数
- 网络:一个网络可以定义为一个四元组
N
=
(
D
,
s
,
t
,
c
)
N=(D,s,t,c)
N=(D,s,t,c),其中
- D D D是一个若连通的有向图
- s , t ∈ V ( D ) s,t\in V(D) s,t∈V(D),分别称为源与汇
- c : E ( D ) → R c:E(D)\rightarrow R c:E(D)→R为容量函数,任给 e ∈ E ( D ) , c ( e ) ≥ 0 e\in E(D),c(e)\geq0 e∈E(D),c(e)≥0为边 e e e的容量
- 流函数:网络
N
=
(
D
,
s
,
t
,
c
)
N=(D,s,t,c)
N=(D,s,t,c)上的流函数为
f
:
E
(
D
)
→
R
f:E(D)\rightarrow R
f:E(D)→R,要求满足
- 任给 e ∈ E ( D ) e\in E(D) e∈E(D),都有 c ( e ) ≥ f ( e ) ≥ 0 c(e)\geq f(e)\geq0 c(e)≥f(e)≥0
- 任给 v ∈ V ( D ) − s , t v\in V(D)-{s,t} v∈V(D)−s,t,都有 ∑ e ∈ α ( t ) f ( e ) − ∑ e ∈ β ( t ) f ( e ) = 0 \sum_{e\in\alpha(t)}f(e)-\sum_{e\in\beta(t)}f(e)=0 ∑e∈α(t)f(e)−∑e∈β(t)f(e)=0,其中, α ( v ) \alpha(v) α(v)为以 v v v为头的边集, β ( v ) \beta(v) β(v)为以 v v v为尾的边集。
- 流量: V a l ( f ) = ∑ e ∈ α ( t ) f ( e ) − ∑ e ∈ β ( t ) f ( e ) = ∑ e ∈ β ( s ) f ( e ) − ∑ e ∈ α ( s ) f ( e ) Val(f)=\sum_{e\in\alpha(t)}f(e)-\sum_{e\in\beta(t)}f(e)=\sum_{e\in\beta(s)}f(e)-\sum_{e\in\alpha(s)}f(e) Val(f)=∑e∈α(t)f(e)−∑e∈β(t)f(e)=∑e∈β(s)f(e)−∑e∈α(s)f(e)
- 截:给定网络 N = ( D , s , t , c ) , S ⊂ V ( D ) N=(D,s,t,c),S\subset V(D) N=(D,s,t,c),S⊂V(D),满足 s ∈ S , t ∈ S ‾ = V ( D ) − S s\in S,t\in \overline{S}=V(D)-S s∈S,t∈S=V(D)−S,则称 ( S , S ‾ ) = { e = ( u , v ) ∣ e ∈ E ( D ) , u ∈ S , v ∈ S ‾ } (S,\overline{S})=\{e=(u,v)|e\in E(D),u\in S,v\in \overline{S}\} (S,S)={e=(u,v)∣e∈E(D),u∈S,v∈S}为网络 N N N的一个截
- 截量:称 C ( S , S ‾ ) = ∑ e ∈ ( S , S ‾ ) c ( e ) C(S,\overline{S})=\sum_{e\in (S,\overline{S})}c(e) C(S,S)=∑e∈(S,S)c(e)为 ( S , S ‾ ) (S,\overline{S}) (S,S)的截量
- 最小截:截量最小的截称为最小截
- 定理:设
f
f
f是网络
N
=
(
D
,
s
,
t
,
c
)
N=(D,s,t,c)
N=(D,s,t,c)的流函数,
(
S
,
S
‾
)
(S,\overline{S})
(S,S)是其一个截,则有
V
a
l
(
f
)
=
∑
e
∈
(
S
,
S
‾
)
f
(
e
)
−
∑
e
∈
(
S
‾
,
S
)
f
(
e
)
Val(f)=\sum_{e\in(S,\overline{S})}f(e)-\sum_{e\in(\overline{S},S)}f(e)
Val(f)=∑e∈(S,S)f(e)−∑e∈(S,S)f(e)
- 直观来看,除 s s s与 t t t外,其余顶点的流入流量和流出流量是抵消的,所以从 S S S流入 S ‾ \overline{S} S的流量减去从 S ‾ \overline{S} S流回 S S S的流量理应是从源 s s s流入汇 t t t的净流量
- 推论:设 f f f是网络 N = ( D , s , t , c ) N=(D,s,t,c) N=(D,s,t,c)的流函数, ( S , S ‾ ) (S,\overline{S}) (S,S)是其一个截,若 V a l ( f ) = C ( S , S ‾ ) Val(f)=C(S,\overline{S}) Val(f)=C(S,S),则 f f f是最大流, ( S , S ‾ ) (S,\overline{S}) (S,S)是最小截
F o r d − F u l k e r s o n Ford-Fulkerson Ford−Fulkerson算法
- 正向边: e e e的方向与 P ( s , u ) P(s,u) P(s,u)方向相同,称 e e e为 P P P的正向边
- 反向边: e e e的方向与 P ( s , u ) P(s,u) P(s,u)方向不相同,称 e e e为 P P P的反向边
- 未满载边:若 e e e是 P ( s , u ) P(s,u) P(s,u)正向边,且 f ( e ) < c ( e ) f(e) < c(e) f(e)<c(e),则称 e e e为未满载边
- 满载边:若 e e e是 P ( s , u ) P(s,u) P(s,u)正向边,且 f ( e ) = c ( e ) f(e) = c(e) f(e)=c(e),则称 e e e为满载边
- 零载边:若 e e e是 P ( s , u ) P(s,u) P(s,u)反向边,且 f ( e ) = 0 f(e) = 0 f(e)=0,则称 e e e为零载边
- 正载边:若 e e e是 P ( s , u ) P(s,u) P(s,u)反向边,且 f ( e ) > 0 f(e) > 0 f(e)>0,则称 e e e为正载边
- 可增载量:边 e e e的可增载量为 l ( e ) = { c ( e ) − f ( e ) , e 是 正 向 边 f ( e ) , e 是 反 向 边 l(e)=\begin{cases}c(e)-f(e), & e是正向边\\ f(e), & e是反向边\end{cases} l(e)={c(e)−f(e),f(e),e是正向边e是反向边, P ( s , u ) P(s,u) P(s,u)的可增载量 l ( P ) = min e ∈ E ( P ) l ( e ) l(P)=\min_{e\in E(P)}l(e) l(P)=mine∈E(P)l(e)
- 未满载轨道:若 l ( P ) > 0 l(P)>0 l(P)>0,则称 P ( s , v ) P(s,v) P(s,v)为未满载轨道
- 满载轨道:若 l ( P ) = 0 l(P)=0 l(P)=0,则称 P ( s , v ) P(s,v) P(s,v)为满载轨道
- 可增载轨道:若 l ( P ) > 0 l(P)>0 l(P)>0且 v = t v=t v=t,则称 P ( s , t ) P(s,t) P(s,t)是网络上关于 f f f的可增载轨道
- 引理:设 f f f是网络 N = ( D , s , t , c ) N=(D,s,t,c) N=(D,s,t,c)的流函数, P ( s , t ) P(s,t) P(s,t)是 N N N上关于 f f f的可增载轨道,重新定义 f ‾ : E ( D ) → R \overline{f}:E(D)\rightarrow R f:E(D)→R为 f ‾ ( e ) = { f ( e ) + l ( P ) , e 是 正 向 边 f ( e ) − l ( P ) , e 是 负 向 边 f ( e ) , e 其 他 \overline{f}(e)=\begin{cases}f(e)+l(P), & e是正向边 \\ f(e)-l(P), & e是负向边 \\ f(e), & e其他\end{cases} f(e)=⎩⎪⎨⎪⎧f(e)+l(P),f(e)−l(P),f(e),e是正向边e是负向边e其他,则 f ‾ \overline{f} f是网络 N N N的流函数,且 V a l ( f ‾ ) = V a l ( f ) + l ( P ) Val(\overline{f})=Val(f)+l(P) Val(f)=Val(f)+l(P)
- 可增载轨道算法
- 输入:网络 N = ( D , s , t , c ) N=(D,s,t,c) N=(D,s,t,c),流函数 f f f
- 输出:一条可增载轨道,或指出当前流函数是最大流
- 初始化: S = { s } S=\{s\} S={s};令 p r e v ( s ) = ∗ prev(s)=* prev(s)=∗
- 扩增轨道1:若存在 u ∈ S , v ∈ S ‾ u\in S,v\in \overline{S} u∈S,v∈S,使得 ( u , v ) ∈ E ( D ) (u,v)\in E(D) (u,v)∈E(D)且边 ( u , v ) (u,v) (u,v)未满载,则令 S ← S ∪ { v } , p r e v ( v ) = u S\leftarrow S\cup\{v\},prev(v)=u S←S∪{v},prev(v)=u
- 扩增轨道2:当扩增轨道1无法增加时,若存在 u ∈ S , v ∈ S ‾ u\in S,v\in \overline{S} u∈S,v∈S,使得 ( v , u ) ∈ E ( D ) (v,u)\in E(D) (v,u)∈E(D)且边 ( v , u ) (v,u) (v,u)正载,则令 S ← S ∪ { v } , p r e v ( v ) = u S\leftarrow S\cup\{v\},prev(v)=u S←S∪{v},prev(v)=u
- 结束条件:两方法均无法扩增或 t ∈ S t\in S t∈S时,结束算法
-
F
o
r
d
−
F
u
l
k
e
r
s
o
n
Ford-Fulkerson
Ford−Fulkerson最大流算法
- 输入:网络 N = ( D , s , t , c ) N=(D,s,t,c) N=(D,s,t,c)
- 输出:最大流函数 f f f
- 初始化:取初始流函数 f f f,如 f ( e ) ≡ 0 f(e)\equiv0 f(e)≡0
- 构造新流函数:调用可增载轨道算法。若找到可增载轨道 P ( s , t ) P(s,t) P(s,t),如引理当中一样,构造新的流函数 f ‾ \overline{f} f,直至无法找到可增载轨道,算法结束
容量有上下界的网络最大流
- 容量上界/下界:在一个容量有上下界的网络中 V = ( D , s , t , b , c ) V=(D,s,t,b,c) V=(D,s,t,b,c),其中 ∀ e ∈ E ( D ) , c ( e ) ≥ b ( e ) ≥ 0 \forall e\in E(D),c(e)\geq b(e)\geq 0 ∀e∈E(D),c(e)≥b(e)≥0,为边 e e e的容量上界与容量下界
- 可行流:网络
N
=
(
D
,
s
,
t
,
b
,
c
)
N=(D,s,t,b,c)
N=(D,s,t,b,c)上的流函数定义为
f
:
E
(
D
)
→
R
f:E(D)\rightarrow R
f:E(D)→R,满足
- ∀ e ∈ E ( D ) \forall e\in E(D) ∀e∈E(D),都有 c ( e ) ≥ f ( e ) ≥ b ( e ) c(e)\geq f(e)\geq b(e) c(e)≥f(e)≥b(e)
- 任给 v ∈ V ( D ) − { s , t } v\in V(D)-\{s,t\} v∈V(D)−{s,t},都有 ∑ e ∈ α ( v ) f ( e ) − ∑ e ∈ β ( v ) f ( e ) = 0 \sum_{e\in\alpha(v)}f(e)-\sum_{e\in\beta(v)}f(e)=0 ∑e∈α(v)f(e)−∑e∈β(v)f(e)=0
- 因容量有上下界的流函数不一定存在,故称为可行流
- 伴随网络:伴随网络是一个容量仅有上界的一般网络,给定容量有上下界网络
N
=
(
D
,
s
,
t
,
b
,
c
)
N=(D,s,t,b,c)
N=(D,s,t,b,c),定义
N
N
N的伴随网络为一般的网络
N
′
=
(
D
′
,
s
′
,
t
′
,
c
′
)
N'=(D',s',t',c')
N′=(D′,s′,t′,c′),其中
- V ( D ′ ) = V ( D ) ∪ { s ′ , t ′ } V(D')=V(D)\cup\{s',t'\} V(D′)=V(D)∪{s′,t′}
- E ( D ′ ) = E ( D ) ∪ { ( s ′ , v ) , ( v , t ′ ) ∣ v ∈ V ( D ) } ∪ { ( s , t ) , ( t , s ) } E(D')=E(D)\cup\{(s',v),(v,t')|v\in V(D)\}\cup\{(s,t),(t,s)\} E(D′)=E(D)∪{(s′,v),(v,t′)∣v∈V(D)}∪{(s,t),(t,s)}
- s ′ s' s′与 t ′ t' t′分别为伴随网络 N ′ N' N′的源与汇
- 容量函数 c ′ c' c′定义为 c ′ ( e ) = { c ( e ) − b ( e ) , e ∈ E ( D ) ∑ e ∈ α ( v ) b ( e ) , e = ( s ′ , v ) , v ∈ V ( D ) ∑ e ∈ β ( v ) b ( e ) , e = ( v , t ′ ) , v ∈ V ( D ) + ∞ , e = ( s , t ) 或 ( t , s ) c'(e)=\begin{cases}c(e)-b(e), & e\in E(D)\\ \sum_{e\in\alpha(v)}b(e), & e=(s',v),v\in V(D) \\ \sum_{e\in\beta(v)}b(e), & e=(v,t'),v\in V(D) \\ +\infty, & e=(s,t)或(t,s)\end{cases} c′(e)=⎩⎪⎪⎪⎨⎪⎪⎪⎧c(e)−b(e),∑e∈α(v)b(e),∑e∈β(v)b(e),+∞,e∈E(D)e=(s′,v),v∈V(D)e=(v,t′),v∈V(D)e=(s,t)或(t,s)
- 定理:给定网络 N = ( D , s , t , b , c ) N=(D,s,t,b,c) N=(D,s,t,b,c),其伴随网络为 N ′ = ( D ′ , s ′ , t ′ , c ′ ) N'=(D',s',t',c') N′=(D′,s′,t′,c′),则 N N N中存在可行流,当且仅当 N ′ N' N′中最大流使得任给 v ∈ V ( D ) v\in V(D) v∈V(D),边 ( s ′ , v ) (s',v) (s′,v)都满载
- 容量有上下界网络的最大流算法
- 输入:容量有上下界网络 N = ( D , s , t , b , c ) N=(D,s,t,b,c) N=(D,s,t,b,c)
- 输出:最大流函数 f f f,或断定 N N N没有可行流
- 构造 N ′ N' N′;构造 N N N的伴随网络 N ′ N' N′
- 找 N ′ N' N′最大流函数:用 2 F 2F 2F算法求 N ′ N' N′的最大流函数
- 判断上述定理:若不满足上述定理,则结束算法无可行流,否则令 f ( e ) = f ′ ( e ) + b ( e ) f(e)=f'(e)+b(e) f(e)=f′(e)+b(e)
- 找 N N N最大流函数:以 f f f作为初始流函数, 2 F 2F 2F算法即可
有供需需求的网络流
- 有供需约束的网络:定义六元组
N
=
(
D
,
X
,
Y
,
σ
,
ρ
,
c
)
N=(D,X,Y,\sigma,\rho,c)
N=(D,X,Y,σ,ρ,c)
- D D D是一个弱连通的有向图
- X = { x 1 , x 2 , ⋯ , x m } ⊆ V ( D ) X=\{x_1,x_2,\cdots,x_m\}\subseteq V(D) X={x1,x2,⋯,xm}⊆V(D)是源集合
- Y = { y 1 , y 2 , ⋯ , y n } ⊆ V ( D ) Y=\{y_1,y_2,\cdots,y_n\}\subseteq V(D) Y={y1,y2,⋯,yn}⊆V(D)是汇集合
- σ : X → R \sigma:X\rightarrow R σ:X→R, σ ( x i ) \sigma(x_i) σ(xi)表示产地 x i x_i xi的产量
- ρ : Y → R \rho:Y\rightarrow R ρ:Y→R, ρ ( y j ) \rho(y_j) ρ(yj)表示消费市场 y j y_j yj的需求量
- c : E ( D ) → R c:E(D)\rightarrow R c:E(D)→R为容量函数,任给 e ∈ E ( D ) e\in E(D) e∈E(D), c ( e ) c(e) c(e)为边 e e e的容量
- 有供需约束网络的流函数:
f
:
E
(
D
)
→
R
f:E(D)\rightarrow R
f:E(D)→R,满足
- 任给 e ∈ E ( D ) e\in E(D) e∈E(D),都有 0 ≤ f ( e ) ≤ c ( e ) 0\leq f(e)\leq c(e) 0≤f(e)≤c(e)
- 任给 v ∈ V ( D ) − X ∪ Y v\in V(D)-X\cup Y v∈V(D)−X∪Y,都有普 ∑ e ∈ α ( v ) f ( e ) − ∑ e ∈ β ( v ) f ( e ) = 0 \sum_{e\in\alpha(v)}f(e)-\sum_{e\in\beta(v)}f(e)=0 ∑e∈α(v)f(e)−∑e∈β(v)f(e)=0
- 任给 1 ≤ i ≤ m 1\leq i\leq m 1≤i≤m,都有 ∑ e ∈ β ( x i ) f ( e ) − ∑ e ∈ α ( x i ) f ( e ) ≤ σ ( x i ) \sum_{e\in\beta(x_i)}f(e)-\sum_{e\in\alpha(x_i)}f(e)\leq\sigma(x_i) ∑e∈β(xi)f(e)−∑e∈α(xi)f(e)≤σ(xi)
- 任给 1 ≤ j ≤ n 1\leq j\leq n 1≤j≤n,都有 ∑ e ∈ α ( y j ) f ( e ) − ∑ e ∈ β ( y j ) f ( e ) ≥ ρ ( x i ) \sum_{e\in\alpha(y_j)}f(e)-\sum_{e\in\beta(y_j)}f(e)\geq\rho(x_i) ∑e∈α(yj)f(e)−∑e∈β(yj)f(e)≥ρ(xi)
- 定理:给定供需约束的网络 N = ( D , X , Y , σ , ρ , c ) N=(D,X,Y,\sigma,\rho,c) N=(D,X,Y,σ,ρ,c), N N N有可行流充要条件是:任给 S ⊆ V ( D ) S\subseteq V(D) S⊆V(D),都满足 C ( ( S , S ‾ ) ) ≥ ρ ( Y ∩ S ‾ ) − σ ( X ∩ S ‾ ) C((S,\overline{S}))\geq\rho(Y\cap\overline{S})-\sigma(X\cap\overline{S}) C((S,S))≥ρ(Y∩S)−σ(X∩S)
- 附加网络:给定有供需约束的网络
N
=
(
D
,
X
,
Y
,
σ
,
ρ
,
c
)
N=(D,X,Y,\sigma,\rho,c)
N=(D,X,Y,σ,ρ,c),定义
N
N
N的附加网络为一般的网络
N
′
=
(
D
′
,
x
0
,
y
0
,
c
′
)
N'=(D',x_0,y_0,c')
N′=(D′,x0,y0,c′),其中
- V ( D ′ ) = V ( D ) ∪ { x 0 , y 0 } V(D')=V(D)\cup\{x_0,y_0\} V(D′)=V(D)∪{x0,y0}
- E ( D ′ ) = E ( D ) ∪ { ( x 0 , x i ) ∣ i = 1 , 2 , ⋯ , m } ∪ { ( y j , y 0 ) ∣ j = 1 , 2 , ⋯ , n } E(D')=E(D)\cup\{(x_0,x_i)|i=1,2,\cdots,m\}\cup\{(y_j,y_0)|j=1,2,\cdots,n\} E(D′)=E(D)∪{(x0,xi)∣i=1,2,⋯,m}∪{(yj,y0)∣j=1,2,⋯,n}
- x 0 x_0 x0与 y 0 y_0 y0分别为附加网络 N ′ N' N′的源与汇
- 容量函数 c ′ c' c′定义为 c ′ ( e ) = { c ( e ) , e ∈ E ( D ) σ ( x i ) , e = ( x 0 , x i ) ρ ( y j ) , e = ( y j , y 0 ) c'(e)=\begin{cases}c(e), & e\in E(D)\\ \sigma(x_i), & e=(x_0,x_i) \\ \rho(y_j), & e=(y_j,y_0)\end{cases} c′(e)=⎩⎪⎨⎪⎧c(e),σ(xi),ρ(yj),e∈E(D)e=(x0,xi)e=(yj,y0)
- 定理:给定有供需约束网络 N = ( D , X , Y , σ , ρ , c ) N=(D,X,Y,\sigma,\rho,c) N=(D,X,Y,σ,ρ,c),其附加网络为 N ′ = ( D ′ , x 0 , y 0 , c ′ ) N'=(D',x_0,y_0,c') N′=(D′,x0,y0,c′),则 N N N中存在可行流,当且仅当 N ′ N' N′中最大流 f ′ f' f′使得:任给 1 ≤ j ≤ n 1\leq j\leq n 1≤j≤n, f ′ ( ( y j , y 0 ) ) = c ′ ( ( y j , y 0 ) ) f'((y_j,y_0))=c'((y_j,y_0)) f′((yj,y0))=c′((yj,y0))
- 有供需约束网络的可行流算法
- 输入:有供需约束的网络 N = ( D , X , Y , σ , ρ , c ) N=(D,X,Y,\sigma,\rho,c) N=(D,X,Y,σ,ρ,c)
- 输出: N N N的可行流函数 f f f,或断定 N N N没有可行流
- 构造 N ′ N' N′;构造 N N N的附加网络 N ′ N' N′
- 找 N ′ N' N′最大流函数:用 2 F 2F 2F算法求 N ′ N' N′的最大流函数 f ′ f' f′
- 判断上述定理:若不满足上述定理,则结束算法无可行流,否则令 f ( e ) = f ′ ( e ) f(e)=f'(e) f(e)=f′(e), f ( e ) f(e) f(e)即为 N N N的可行流,算法结束
网络流在连通度中的应用
- 循环:给定有向图 D = ( V , E ) D=(V,E) D=(V,E), f : E → R f:E\rightarrow R f:E→R是 D D D上的边权函数,若 f f f满足,任给 v ∈ V v\in V v∈V都有 ∑ e ∈ α ( v ) f ( e ) − ∑ e ∈ β ( v ) f ( e ) = 0 \sum_{e\in\alpha(v)}f(e)-\sum_{e\in\beta(v)}f(e)=0 ∑e∈α(v)f(e)−∑e∈β(v)f(e)=0,则称 f f f是 D D D上的一个循环
- 支撑:设 f f f是集合 S S S上的实函数,即 f : S → R f:S\rightarrow R f:S→R,则称 S S S中函数值不为零的元素为对应的边子集为 f f f的支撑
- 引理:设 f f f是有向图 D D D上非零的循环,即存在 e ∈ E ( D ) e\in E(D) e∈E(D),使得 f ( e ) ≠ 0 f(e)\neq0 f(e)=0,则 f f f的支撑中含有一个圈(无向圈);若 f f f是非负函数,则 f f f的支撑中含有一个有向圈
- 导出循环:假定 C C C是有向图 D D D中一个无向圈,定义 C C C的方向, e e e与 C C C方向一致,为正向边,否则,为反向边,正向边集合为 E ( C + ) E(C^+) E(C+),反向边为 E ( C − ) E(C^-) E(C−),导出循环 f C f_C fC为 f C ( e ) = { 1 , e ∈ E ( C + ) − 1 , e ∈ E ( C − ) 0 , e ∉ E ( C ) f_C(e)=\begin{cases}1, & e\in E(C^+) \\ -1, & e\in E(C^-) \\ 0, & e\notin E(C)\end{cases} fC(e)=⎩⎪⎨⎪⎧1,−1,0,e∈E(C+)e∈E(C−)e∈/E(C)
- 引理:任给有向图 D D D中的一个循环 f f f, f f f都是一些圈导出循环的线性组合
- 引理:任给有向图
D
D
D中的一个非负的循环
f
f
f,
f
f
f都是一些有向圈导出循环的线性组合。若
f
f
f的函数值都是整数,则
f
f
f是有向图导出循环的某个线性组合,使得该线性组合中的系数都是非负整数
- 推论:设 N = ( D , s , t , c ) N=(D,s,t,c) N=(D,s,t,c)为一个网络,其容量函数 c c c为单位容量, k k k为正整数,则 N N N存在流量为 k k k得流函数等价于 k k k条从 s s s到 t t t得 k k k条无公共边得有向轨道。
- 定理:任给有向图 D D D以及 D D D的两个顶点 u , v u,v u,v, D D D中无公共边的 u v uv uv-有向轨道的最大数量等于最小 u v uv uv-边割集中有向边的数量。
- 定理:任给无向图 G G G以及 G G G的两个顶点 u , v u,v u,v, G G G中无公共边的 u v uv uv-轨道的最大数量等于最小 u v uv uv-边割集中边的数量。
- 一些问题
- 有向图
- 无公共边的有向轨道问题
- 最小边割集问题
- 无公共内顶的有向轨道问题
- 方法:构造辅助有向图
D
′
D'
D′
- 给定有向图 D D D, D D D的两个顶点 u , v ∈ V ( D ) u,v\in V(D) u,v∈V(D)
- 除了 u , v u,v u,v之外,任给顶点 w ∈ V ( D ) − { u , v } w\in V(D)-\{u,v\} w∈V(D)−{u,v},将 w w w分成两个顶点 w − w^- w−和 w + w^+ w+,且用一个有向边 ( w − , w + ) (w^-,w^+) (w−,w+)来连接
- 任给 D D D的一条有向边 e = ( x , y ) e=(x,y) e=(x,y),将 e e e的尾由 x x x换成 x + x^+ x+,将 e e e的头由 y y y换为 y − y^- y−,除非 x , y x,y x,y为 u u u或 v v v,求 D D D的无公共内定的有向轨道变为求 D ′ D' D′的无公共变得有向轨道,采用最大流算法即可。
- 无向图
- 无公共边的轨道问题
- 最小边割集问题
- 无公共内顶的轨道问题
- 方法:构造顶点相同,无向边变双向边的有向图,转换为有向图的轨道问题,进而可以采用最大流的算法来解决
- 有向图