跳到主要内容

京都大学 情報学研究科 数理工学専攻 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)

We define the residual capacity cf(u,v)c_f (u, v) by

cf(u,v)={c(u,v)f(u,v)if (u,v)Ef(v,u)if (v,u)E0otherwise.c_f(u,v) = \left\{ \begin{aligned} &c(u,v) - f(u, v) &\text{if } (u, v) \in E \\ &f(v, u) &\text{if } (v, u) \in E \\ &0 &\text{otherwise.} \end{aligned} \right.

and the edge set EfE_f by

Ef={(u,v)V×V  cf(u,v)>0}E_f = \{(u,v) \in V \times V \ \mid \ c_f(u,v) > 0\}

(iii)

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

f(u,v)={f(u,v)+Δ if (u,v)P and (u,v)Ef(u,v)Δ if (v,u)P and (u,v)Ef(u,v)otherwise.f'(u, v) = \left\{ \begin{aligned} &f(u, v) + \Delta &\text{ if } (u, v) \in P \text{ and } (u, v) \in E \\ &f(u, v) - \Delta &\text{ if } (v, u) \in P \text{ and } (u, v) \in E \\ &f(u, v) &\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.

For an edge (u,v)P and (u,v)E(u, v) \in P \text{ and } (u, v) \in E, we have

f(u,v)=f(u,v)+Δf(u,v)+cf(u,v)=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(u, v) \\ &= f(u, v) + c(u, v) - f(u,v) \\ &= c(u, v) \end{aligned}

For an edge (v,u)P and (u,v)E(v, u) \in P \text{ and } (u, v) \in E, we have

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(v,u)=f(u,v)f(u,v)=0\begin{aligned} f'(u, v) &= f(u, v) - \Delta \\ &\ge f(u, v) - c_f(v, u) \\ &= 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.

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)

By 京都大学 大学院 情報学研究科 数理工学専攻 2022年実施 グラフ理論 (i) and (iii) we know that SS is actually a minimum s,ts,t-cut.

Hence for any any set ASA \subsetneq S with sAs \in A, we have cap(A)>cap(S)\text{cap}(A) > \text{cap}(S).