京都大学 情報学研究科 数理工学専攻 2022年8月実施 グラフ理論
Author
祭音Myyura
Description
大学公表の原題
日本語版
非負実数全体の集合を R+ で表す.N=[G,c] を点集合 V 枝集合 E をもつ単純有向グラフ G=(V,E) および容量関数 c:E→R+ からなるネットワークとする.
点の部分集合 X,Y⊆V に対し,X 内の点から Y 内の点へ向かう枝の集合を E(X,Y) と記す.
指定された二点 s,t∈V に対し,次を満たす関数 f:E→R+ を (s,t)-フローと呼ぶ.
流量保存則: e∈E({v},V∖{v})∑f(e)−e∈E(V∖{v},{v})∑f(e)=0,∀v∈V∖{s,t},容量制約: f(e)≤c(e),∀e∈E.
(s,t)-フロー f の流量 val(f) を
val(f):=e∈E({s},V∖{s})∑f(e)−e∈E(V∖{s},{s})∑f(e)
で定める.また s∈X,t∈V∖X を満たす点の部分集合 X⊆V を (s,t)-カットと呼び,その容量 cap(X) を
cap(X):=e∈E(X,V∖X)∑c(e)
で定める.以下の問いに答えよ.
(i) 任意の (s,t)-フロー f と (s,t)-カット X に対し以下が成り立つことを証明せよ.
val(f)=e∈E(X,V∖X)∑f(e)−e∈E(V∖X,X)∑f(e)≤cap(X).
(ii) 与えられた (s,t)-フローf に対して定められる残余ネットワーク Nf=[Gf=(V,Ef),cf] の作り方を説明せよ.
(iii) 残余ネットワーク Nf が s から t へ至る有向路を持たないような (s,t)-フロー f に対し,S を Nf において s から到達可能な点の集合とする.このとき N において val(f)=cap(S) が成り立つことを証明せよ.
(iv) X を N において容量 cap(X) を最小にする任意の (s,t)-カットとする.このとき (iii) の残余ネットワーク Nf において s から V∖X のどの点へも到達できないことを証明せよ.
English Version
Let R+ denote the set of nonnegative reals.
Let N=[G,c] be a network that consists of a simple directed graph G=(V,E) with a vertex set V and an edge set E and a capacity function c:E→R+.
For vertex subsets X,Y⊆V, let E(X,Y) denote the set of edges that leave a vertex in X and enter a vertex in Y.
For two designated vertices s,t∈V , an (s,t)-flow is defined to be a function f:E→R+ which satisfies the following:
Flow conservation law: e∈E({v},V∖{v})∑f(e)−e∈E(V∖{v},{v})∑f(e)=0,∀v∈V∖{s,t},Capacity constraint: f(e)≤c(e),∀e∈E.
The flow value val(f) of an (s,t)-flow f is defined to be
val(f):=e∈E({s},V∖{s})∑f(e)−e∈E(V∖{s},{s})∑f(e)
An (s,t)-cut is defined to be a vertex subset X⊆V such that s∈X and t∈V∖X, and its capacity cap(X) is defined to be
cap(X):=e∈E(X,V∖X)∑c(e)
Answer the following questions.
(i) Prove that for any (s,t)-flow f and any (s,t)-cut X
val(f)=e∈E(X,V∖X)∑f(e)−e∈E(V∖X,X)∑f(e)≤cap(X).
holds.
(ii) For a given (s,t)-flow f, show how to construct its residual network Nf=[Gf=(V,Ef),cf].
(iii) For an (s,t)-flow f such that the residual network Nf has no directed path from s to t, let S denote the set of all vertices reachable from s in Nf . Prove that val(f)=cap(S) holds in N.
(iv) Let X be an (s,t)-cut with the minimum capacity cap(X) in N. Prove that no vertex in V∖X is reachable from s in the residual network Nf in (iii).
题目描述
记 R+ 为非负实数集。网络 N=[G,c] 由简单有向图 G=(V,E) 及容量函数 c:E→R+ 构成。对 X,Y⊆V,令 E(X,Y) 为从 X 指向 Y 的边集。对指定顶点 s,t,(s,t) 流是满足中间顶点流量守恒及 0≤f(e)≤c(e) 的函数 f:E→R+,其流值为
val(f)=e∈E({s},V∖{s})∑f(e)−e∈E(V∖{s},{s})∑f(e).
满足 s∈X、t∈/X 的 X⊆V 称为 (s,t) 割,容量为
cap(X)=e∈E(X,V∖X)∑c(e).
回答:
-
对任意 (s,t) 流 f 和 (s,t) 割 X,证明
val(f)=e∈E(X,V∖X)∑f(e)−e∈E(V∖X,X)∑f(e)≤cap(X).
-
说明如何为给定流 f 构造残量网络
Nf=[Gf=(V,Ef),cf]。
-
若 Nf 不含从 s 到 t 的有向路,令 S 为其中从 s 可达的顶点集。证明
val(f)=cap(S)。
-
令 X 为 N 中任意一个最小容量 (s,t) 割。证明在第 3 问的残量网络 Nf 中,从 s 无法到达 V∖X 中的任何顶点。
Kai
(i)
We can rewrite the flow conservation law for any node u∈V∖{s,t} as
v∈V∑f(u,v)−v∈V∑f(v,u)=0
then we have
val(f)=e∈E({s},V∖{s})∑f(e)−e∈E(V∖{s},{s})∑f(e)=v∈V∑f(s,v)−v∈V∑f(v,s)+u∈X−{s}∑(v∈V∑f(u,v)−v∈V∑f(v,u))
Expanding the right-hand summation and regrouping terms yields
val(f)=v∈V∑f(s,v)−v∈V∑f(v,s)+u∈X∖{s}∑v∈V∑f(u,v)−u∈X∖{s}∑v∈V∑f(v,u)=v∈V∑(f(s,v)+u∈X∖{s}∑f(u,v))−v∈V∑(f(v,s)+u∈X∖{s}∑f(v,u))=v∈V∑u∈X∑f(u,v)−v∈V∑u∈X∑f(v,u)=v∈X∑u∈X∑f(u,v)+v∈V∖X∑u∈X∑f(u,v)−v∈X∑u∈X∑f(v,u)−v∈V∖X∑u∈X∑f(v,u)
The two summations ∑v∈X∑u∈Xf(u,v) and ∑v∈X∑u∈Xf(v,u) are actually the same, since for all vertices x,y∈V , the term f(x,y) appears once in each summation. therefore
val(f)=v∈V∖X∑u∈X∑f(u,v)−v∈V∖X∑u∈X∑f(v,u)=e∈E(X,V∖X)∑f(e)−e∈E(V∖X,X)∑f(e)≤e∈E(X,V∖X)∑f(e)≤e∈E(X,V∖X)∑c(e) (capacity constraint)=cap(X)
(ii)
For every original edge e=(u,v)∈E, introduce the following labeled residual edges whenever their capacities are positive:
e+=(u,v),e−=(v,u),cf(e+)=c(e)−f(e),cf(e−)=f(e).
The collection of these labeled residual edges is Ef; coincident ordered endpoints are kept as distinct residual edges.
(iii)
To prove val(f)=cap(S), we prove the following two conditions:
(a) All outgoing edges from the cut S must be fully saturated.
(b) All incoming edges to the cut S must have zero flow.
Assume that there exists an outgoing edge (u,v)∈E, u∈S, v∈V∖S such that it is not saturated, i.e. f(u,v)<c(u,v).
This implies that there exists an edge (u,v)∈Ef, u∈S, v∈V∖S, therefore there exists a path from s to v, which is contradictory to the definition of S.
Hence, any outgoing edge (u,v) is fully saturated.
Assume that there exists an incoming edge (v,u)∈E, u∈S, v∈V∖S such that it carries some non-zero flow, i.e. f(v,u)>0.
This implies that there exists an edge (u,v)∈Ef, u∈S, v∈V∖S, therefore there exists a path from s to v, which is contradictory to the definition of S.
Hence, any incoming edge (v,u) must have zero flow.
Finally, we have
val(f)=e∈E(S,V∖S)∑f(e)−e∈E(V∖S,S)∑f(e)=e∈E(S,V∖S)∑c(e)−0=Cap(S)
(iv)
By (i) and (iii), f is a maximum flow and
val(f)=cap(S)=cap(X).
Equality in (i) for the cut X implies that every original edge leaving X is saturated and every original edge entering X carries zero flow. Therefore, no forward or backward residual edge leaves X. Since s∈X, every vertex residual-reachable from s belongs to X. Hence S⊆X, so no vertex in V∖X is reachable from s.