跳到主要内容

京都大学 情報学研究科 数理工学専攻 2020年8月実施 グラフ理論

Author

祭音Myyura

Description

日本語版

G=(V,E)G = (V, E) を節点集合 VV, 枝集合 EE から成る単純有向グラフとし,N=[G,c]N = [G, c]GG の各枝 eEe \in E に実数値の容量 c(e)>0c(e) > 0 を与えて得られるネットワークとする. 節点の部分集合 X,YVX, Y \subseteq V に対し,XX 内の点から YY 内の点へ向かう枝の集合を E(X,Y)E(X, Y) と記す. 非負実数全体の集合を R+\mathbb{R}_+ で表す. 指定された二点 s,tVs, t \in V に対し,流量保存則 eE({v},V{v})f(e)eE(V{v},{v})f(e)=0,vV{s,t}\sum_{e\in E(\{v\}, V \setminus \{v\})} f(e) - \sum_{e \in E(V \setminus \{v\}, \{v\})} f(e) = 0, \forall v \in V \setminus \{s, t\} および容量制約 f(e)c(e),eEf(e) \le c(e), \forall e \in E を満たす関数 f:ER+f: E \rightarrow \mathbb{R}_+(s,t)(s, t) フローと呼び,その流量 val(f)\text{val}(f)

eE({s},V{s})f(e)eE(V{s},{s})f(e)\sum_{e\in E(\{s\}, V \setminus \{s\})} f(e) - \sum_{e \in E(V \setminus \{s\}, \{s\})} f(e)

で定める.また,sX,tVXs \in X, t \in V \setminus X を満たす節点の部分集合 XVX \subseteq V(s,t)(s, t) カットと呼び,その容量 cap(X)\text{cap}(X)

eE(X,VX)c(e)\sum_{e \in E(X, V \setminus X)} c(e)

で定める.以下の問いに答えよ.

(i) 任意の (s,t)(s, t) フロー ff(s,t)(s, t) カット XX に対し,等式

val(f)=eE(X,VX)f(e)eE(VX,X)f(e)\text{val}(f) = \sum_{e \in E(X, V \setminus X)} f(e) - \sum_{e \in E(V \setminus X, X)} f(e)

が成り立つことを証明せよ.

(ii) 与えられた (s,t)(s, t) フロー ff に対して定められる残余ネットワーク Nf=[Gf=(V,Ef),cf]N_f = [G_f = (V, E_f), c_f] の作り方を説明せよ.

(iii) 残余ネットワーク NfN_f において,ss から tt への有向路が存在するとき,そのひとつを PP とする.PP 上の枝の NfN_f における容量の最小値を Δ\Delta とするとき,NN には流量が val(f)+Δ\text{val}(f) + \Delta である (s,t)(s, t) フローが存在することを証明せよ.

(iv) 残余ネットワーク NfN_fss から tt への有向路をもたないとき,NfN_f において ss から到達可能な節点の集合を SS とする.このとき,sAs \in A である任意の集合 ASA \subsetneq S に対し cap(A)>cap(S)\text{cap}(A) > \text{cap}(S) が成り立つことを証明せよ.

English Version

Let G=(V,E)G = (V, E) be a simple directed graph with a vertex set VV and an edge set EE, and let N=[G,c]N = [G, c] be a network obtained from GG by assigning a real value c(e)>0c(e) > 0 to each edge eEe \in E as its capacity. For vertex subsets X,YVX, Y \subseteq V, let E(X,Y)E(X, Y) denote the set of edges that leave a vertex in XX and enter a vertex in YY. Let R+\mathbb{R}_+ denote the set of nonnegative reals. For two designated vertices s,tVs, t \in V , an (s,t)(s, t)-flow is defined to be a mapping f:ER+f : E → \mathbb{R}_+ which satisfies eE({v},V{v})f(e)eE(V{v},{v})f(e)=0,vV{s,t}\sum_{e\in E(\{v\}, V \setminus \{v\})} f(e) - \sum_{e \in E(V \setminus \{v\}, \{v\})} f(e) = 0, \forall v \in V \setminus \{s, t\} (flow conservation law) and f(e)c(e),eEf(e) \le c(e), \forall e \in E (capacity constraint), and its flow value val(f)\text{val}(f) is defined to be

eE({s},V{s})f(e)eE(V{s},{s})f(e)\sum_{e\in E(\{s\}, V \setminus \{s\})} f(e) - \sum_{e \in E(V \setminus \{s\}, \{s\})} f(e)

An (s,t)(s, t)-cut is defined to be a vertex subset XVX \subseteq V such that sXs \in X and tVXt \in V \setminus X, and its capacity cap(X)\text{cap}(X) is defined to be

eE(X,VX)c(e)\sum_{e \in E(X, V \setminus X)} c(e)

Answer the following questions.

(i) Prove that for any (s,t)(s, t)-flow ff and any (s,t)(s, t)-cut XX

val(f)=eE(X,VX)f(e)eE(VX,X)f(e)\text{val}(f) = \sum_{e \in E(X, V \setminus X)} f(e) - \sum_{e \in E(V \setminus X, X)} f(e)

holds.

(ii) For a given (s,t)(s, t)-flow ff, show how to construct its residual network Nf=[Gf=(V,Ef),cf]N_f = [G_f = (V, E_f), c_f].

(iii) For an (s,t)(s, t)-flow ff in NN, assume that there is a directed path PP from ss to tt in the residual network NfN_f . Let Δ\Delta denote the minimum capacity of an edge in PP in NfN_f. Prove that NN has an (s,t)(s, t)-flow whose flow value is val(f)+Δ\text{val}(f) + \Delta.

(iv) For an (s,t)(s, t)-flow ff in NN, assume that there is no directed path from ss to tt in the residual network NfN_f. Let SS denote the set of vertices that are reachable from ss in NfN_f. Prove that cap(A)>cap(S)\text{cap}(A) > \text{cap}(S) holds for any set ASA \subsetneq S with sAs \in A.

题目描述

G=(V,E)G=(V,E) 为简单有向图,网络 N=[G,c]N=[G,c] 给每条边 ee 赋予正实容量 c(e)>0c(e)>0。对 X,YVX,Y\subseteq V,记 E(X,Y)E(X,Y) 为从 XX 中顶点指向 YY 中顶点的边集,R+\mathbb R_+ 为非负实数集。对指定的 s,tVs,t\in V,若映射 f:ER+f:E\to\mathbb R_+ 满足

eE({v},V{v})f(e)eE(V{v},{v})f(e)=0(vV{s,t})\sum_{e\in E(\{v\},V\setminus\{v\})}f(e) -\sum_{e\in E(V\setminus\{v\},\{v\})}f(e)=0 \quad(\forall v\in V\setminus\{s,t\})

以及 f(e)c(e)f(e)\le c(e),则称其为 (s,t)(s,t) 流,其流值定义为

val(f)=eE({s},V{s})f(e)eE(V{s},{s})f(e).\operatorname{val}(f)= \sum_{e\in E(\{s\},V\setminus\{s\})}f(e) -\sum_{e\in E(V\setminus\{s\},\{s\})}f(e).

XVX\subseteq V 满足 sXs\in XtXt\notin X,则称其为 (s,t)(s,t) 割,容量为

cap(X)=eE(X,VX)c(e).\operatorname{cap}(X)=\sum_{e\in E(X,V\setminus X)}c(e).

回答:

  1. 对任意 (s,t)(s,t)ff(s,t)(s,t)XX,证明

    val(f)=eE(X,VX)f(e)eE(VX,X)f(e).\operatorname{val}(f)= \sum_{e\in E(X,V\setminus X)}f(e) -\sum_{e\in E(V\setminus X,X)}f(e).
  2. 说明如何由给定流 ff 构造残量网络 Nf=[Gf=(V,Ef),cf]N_f=[G_f=(V,E_f),c_f]

  3. NfN_f 中存在从 sstt 的有向路 PP,令 Δ\DeltaPP 上残量容量的最小值。证明原网络中存在流值为 val(f)+Δ\operatorname{val}(f)+\Delta(s,t)(s,t) 流。

  4. NfN_f 中不存在从 sstt 的有向路,令 SS 为在 NfN_f 中从 ss 可达的顶点集。证明对任意满足 sASs\in A\subsetneq S 的集合 AA,都有 cap(A)>cap(S)\operatorname{cap}(A)>\operatorname{cap}(S)

Kai

(i)

We can rewrite the flow conservation law for any node uV{s,t}u \in V \setminus \{s, t\} as

vVf(u,v)vVf(v,u)=0\sum_{v \in V}f(u, v) - \sum_{v \in V} f(v, u) = 0

then we have

val(f)=eE({s},V{s})f(e)eE(V{s},{s})f(e)=vVf(s,v)vVf(v,s)+uX{s}(vVf(u,v)vVf(v,u))\begin{aligned} \text{val}(f) &= \sum_{e\in E(\{s\}, V \setminus \{s\})} f(e) - \sum_{e\in E(V \setminus \{s\}, \{s\})} f(e) \\ &= \sum_{v \in V} f(s, v) - \sum_{v \in V} f(v, s) + \sum_{u \in X - \{s\}} \Big(\sum_{v \in V} f(u, v) - \sum_{v \in V} f(v, u) \Big) \end{aligned}

Expanding the right-hand summation and regrouping terms yields

val(f)=vVf(s,v)vVf(v,s)+uX{s}vVf(u,v)uX{s}vVf(v,u)=vV(f(s,v)+uX{s}f(u,v))vV(f(v,s)+uX{s}f(v,u))=vVuXf(u,v)vVuXf(v,u)=vXuXf(u,v)+vVXuXf(u,v)vXuXf(v,u)vVXuXf(v,u)\begin{aligned} \text{val}(f) &= \sum_{v \in V} f(s, v) - \sum_{v \in V}f(v,s) + \sum_{u \in X \setminus \{s\}} \sum_{v \in V} f(u, v) - \sum_{u \in X \setminus \{s\}} \sum_{v \in V} f(v,u) \\ &= \sum_{v \in V} \Big(f(s,v) + \sum_{u \in X \setminus \{s\}}f(u,v) \Big) - \sum_{v \in V} \Big(f(v,s) + \sum_{u\in X \setminus \{s\}} f(v, u) \Big) \\ &= \sum_{v \in V} \sum_{u\in X} f(u, v) - \sum_{v \in V}\sum_{u \in X} f(v, u) \\ &= \sum_{v \in X} \sum_{u\in X} f(u, v) + \sum_{v \in V \setminus X} \sum_{u\in X} f(u, v) - \sum_{v \in X} \sum_{u \in X} f(v, u) - \sum_{v \in V \setminus X} \sum_{u \in X} f(v, u) \end{aligned}

The two summations vXuXf(u,v)\sum_{v \in X} \sum_{u\in X} f(u, v) and vXuXf(v,u)\sum_{v \in X} \sum_{u \in X} f(v, u) are actually the same, since for all vertices x,yVx, y \in V , the term f(x,y)f(x,y) appears once in each summation. therefore

val(f)=vVXuXf(u,v)vVXuXf(v,u)=eE(X,VX)f(e)eE(VX,X)f(e)\begin{aligned} \text{val}(f) &= \sum_{v \in V \setminus X} \sum_{u\in X} f(u, v) - \sum_{v \in V \setminus X} \sum_{u \in X} f(v, u) \\ &= \sum_{e \in E(X, V \setminus X)}f(e) - \sum_{e \in E(V\setminus X, X)} f(e) \end{aligned}

(ii)

For every original edge e=(u,v)Ee=(u,v)\in E, introduce the following labeled residual edges whenever their capacities are positive:

e+=(u,v),cf(e+)=c(e)f(e),e=(v,u),cf(e)=f(e).\begin{aligned} e^+=(u,v),&\qquad c_f(e^+)=c(e)-f(e),\\ e^-=(v,u),&\qquad c_f(e^-)=f(e). \end{aligned}

The collection of these residual edges is EfE_f; coincident ordered endpoints are kept as distinct residual edges.

(iii)

Let f:ER+f': E \rightarrow \mathbb{R}_+ be defined as follows:

f(e)={f(e)+Δ if e+P,f(e)Δ if eP,f(e)otherwise.f'(e) = \left\{ \begin{aligned} &f(e) + \Delta &\text{ if } e^+ \in P,\\ &f(e) - \Delta &\text{ if } e^- \in P,\\ &f(e) &\text{otherwise.} \end{aligned} \right.

We prove that ff' is a flow and val(f)=val(f)+Δ\text{val}(f') = \text{val}(f) + \Delta

First we verify that ff' obeys that capacity constraint.

If the path uses the forward residual edge e+=(u,v)e^+=(u,v), then

f(u,v)=f(u,v)+Δf(u,v)+cf(e+)=f(u,v)+c(u,v)f(u,v)=c(u,v)\begin{aligned} f'(u, v) &= f(u, v) + \Delta \\ &\le f(u, v) + c_f(e^+) \\ &= f(u, v) + c(u, v) - f(u,v) \\ &= c(u, v) \end{aligned}

If the path uses the backward residual edge e=(v,u)e^-=(v,u) of e=(u,v)e=(u,v), then

f(u,v)=f(u,v)Δc(u,v)f'(u, v) = f(u, v) - \Delta \le c(u, v)
f(u,v)=f(u,v)Δf(u,v)cf(e)=f(u,v)f(u,v)=0\begin{aligned} f'(u, v) &= f(u, v) - \Delta \\ &\ge f(u, v) - c_f(e^-) \\ &= f(u, v) - f(u, v) \\ &= 0 \end{aligned}

Hence the capacity constraint holds.

Next we prove the flow conservation constraint. For a vertex uV{s,t}u \in V \setminus \{s, t\}, obviously the flow conservation constraint holds if uV(P)u \notin V(P). Hence we focus on the case that uV(P)u \in V(P).

For a vertex uV(P){s,t}u \in V(P) \setminus \{s, t\}, since PP is a simple path, there are exactly two edges (u1,u)(u_1, u) and (u,u2)(u, u_2) in PP that adjacent to uu. In the cases below, an edge notation in EE specifies which labeled forward or backward residual copy is used by PP.

if (u1,u)E(u_1, u) \in E and (u,u2)E(u, u_2) \in E, then we have

vVf(u,v)=(vV{u2}f(u,v))+f(u,u2)=(vV{u2}f(u,v))+f(u,u2)+Δ=(vVf(u,v))+Δ\begin{aligned} \sum_{v \in V} f'(u, v) &= \Big(\sum_{v \in V \setminus \{ u_2\}} f(u, v)\Big) + f'(u, u_2) \\ &= \Big(\sum_{v \in V \setminus \{ u_2\}} f(u, v)\Big) + f(u, u_2) + \Delta \\ &= \Big(\sum_{v \in V} f(u, v)\Big) + \Delta \end{aligned}
vVf(v,u)=(vV{u1}f(v,u))+f(u1,u)=(vV{u1}f(v,u))+f(u1,u)+Δ=(vVf(v,u))+Δ\begin{aligned} \sum_{v \in V} f'(v, u) &= \Big(\sum_{v \in V \setminus \{ u_1\}} f(v, u)\Big) + f'(u_1, u) \\ &= \Big(\sum_{v \in V \setminus \{ u_1\}} f(v, u)\Big) + f(u_1, u) + \Delta \\ &= \Big(\sum_{v \in V} f(v, u)\Big) + \Delta \end{aligned}

if (u1,u)E(u_1, u) \in E and (u2,u)E(u_2, u) \in E, then we have

vVf(u,v)=vVf(u,v)\sum_{v \in V} f'(u, v) = \sum_{v \in V} f(u, v)
vVf(v,u)=(vV{u1,u2}f(v,u))+f(u1,u)+f(u2,u)=(vV{u1,u2}f(v,u))+f(u1,u)+Δ+f(u2,u)Δ=vVf(v,u)\begin{aligned} \sum_{v \in V} f'(v, u) &= \Big(\sum_{v \in V \setminus \{ u_1, u_2\}} f(v, u)\Big) + f'(u_1, u) + f'(u_2, u) \\ &= \Big(\sum_{v \in V \setminus \{ u_1, u_2\}} f(v, u)\Big) + f(u_1, u) + \Delta + f(u_2, u) - \Delta \\ &= \sum_{v \in V} f(v, u) \end{aligned}

Similarly for the case (u,u1)E,(u,u2)E(u, u_1) \in E, (u, u_2) \in E and the case (u,u1)E,(u2,u)E(u, u_1) \in E, (u_2, u) \in E. Hence the flow conservation constraint holds.

Finlly, we compute the value val(f)\text{val}(f'). Same as the proof of flow conservation constraint, there are two cases for the edge in NN corresponds to the edge adjacent to ss in PP of NfN_f.

It is easy to compute that in both cases we have

val(f)=val(f)+Δ\text{val}(f') = \text{val}(f) + \Delta

Therefore, NN has an (s,t)(s, t)-flow whose flow value is val(f)+Δ\text{val}(f) + \Delta.

(iv)

Because no residual edge leaves SS, every original edge leaving SS is saturated and every original edge entering SS carries zero flow. Thus (i) gives val(f)=cap(S)\operatorname{val}(f)=\operatorname{cap}(S), so SS is a minimum (s,t)(s,t)-cut. Suppose that some ASA\subsetneq S with sAs\in A also satisfied cap(A)=cap(S)=val(f)\operatorname{cap}(A)=\operatorname{cap}(S)=\operatorname{val}(f). Equality in (i) would force every edge leaving AA to be saturated and every edge entering AA to carry zero flow. Hence no residual edge could leave AA.

Every vertex of SS is residual-reachable from ss, so this would imply SAS\subseteq A, a contradiction. Therefore, cap(A)>cap(S)\operatorname{cap}(A)>\operatorname{cap}(S).