京都大学 情報学研究科 数理工学専攻 2020年8月実施 グラフ理論
Author
祭音Myyura
Description
日本語版
\(G = (V, E)\) を節点集合 \(V\), 枝集合 \(E\) から成る単純有向グラフとし,\(N = [G, c]\) を \(G\) の各枝 \(e \in E\) に実数値の容量 \(c(e) > 0\) を与えて得られるネットワークとする. 節点の部分集合 \(X, Y \subseteq V\) に対し,\(X\) 内の点から \(Y\) 内の点へ向かう枝の集合を \(E(X, Y)\) と記す. 非負実数全体の集合を \(\mathbb{R}_+\) で表す. 指定された二点 \(s, t \in V\) に対し,流量保存則 \(\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) \le c(e), \forall e \in E\) を満たす関数 \(f: E \rightarrow \mathbb{R}_+\) を \((s, t)\) フローと呼び,その流量 \(\text{val}(f)\) を
で定める.また,\(s \in X, t \in V \setminus X\) を満たす節点の部分集合 \(X \subseteq V\) を \((s, t)\) カットと呼び,その容量 \(\text{cap}(X)\) を
で定める.以下の問いに答えよ.
(i) 任意の \((s, t)\) フロー \(f\) と \((s, t)\) カット \(X\) に対し,等式
が成り立つことを証明せよ.
(ii) 与えられた \((s, t)\) フロー \(f\) に対して定められる残余ネットワーク \(N_f = [G_f = (V, E_f), c_f]\) の作り方を説明せよ.
(iii) 残余ネットワーク \(N_f\) において,\(s\) から \(t\) への有向路が存在するとき,そのひとつを \(P\) とする.\(P\) 上の枝の \(N_f\) における容量の最小値を \(\Delta\) とするとき,\(N\) には流量が \(\text{val}(f) + \Delta\) である \((s, t)\) フローが存在することを証明せよ.
(iv) 残余ネットワーク \(N_f\) が \(s\) から \(t\) への有向路をもたないとき,\(N_f\) において \(s\) から到達可能な節点の集合を \(S\) とする.このとき,\(s \in A\) である任意の集合 \(A \subsetneq S\) に対し \(\text{cap}(A) > \text{cap}(S)\) が成り立つことを証明せよ.
English Version
Let \(G = (V, E)\) be a simple directed graph with a vertex set \(V\) and an edge set \(E\), and let \(N = [G, c]\) be a network obtained from \(G\) by assigning a real value \(c(e) > 0\) to each edge \(e \in E\) as its capacity. For vertex subsets \(X, Y \subseteq V\), let \(E(X, Y)\) denote the set of edges that leave a vertex in \(X\) and enter a vertex in \(Y\). Let \(\mathbb{R}_+\) denote the set of nonnegative reals. For two designated vertices \(s, t \in V\) , an \((s, t)\)-flow is defined to be a mapping \(f : E → \mathbb{R}_+\) which satisfies \(\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) \le c(e), \forall e \in E\) (capacity constraint), and its flow value \(\text{val}(f)\) is defined to be
An \((s, t)\)-cut is defined to be a vertex subset \(X \subseteq V\) such that \(s \in X\) and \(t \in V \setminus X\), and its capacity \(\text{cap}(X)\) is defined to be
Answer the following questions.
(i) Prove that for any \((s, t)\)-flow \(f\) and any \((s, t)\)-cut \(X\)
holds.
(ii) For a given \((s, t)\)-flow \(f\), show how to construct its residual network \(N_f = [G_f = (V, E_f), c_f]\).
(iii) For an \((s, t)\)-flow \(f\) in \(N\), assume that there is a directed path \(P\) from \(s\) to \(t\) in the residual network \(N_f\) . Let \(\Delta\) denote the minimum capacity of an edge in \(P\) in \(N_f\). Prove that \(N\) has an \((s, t)\)-flow whose flow value is \(\text{val}(f) + \Delta\).
(iv) For an \((s, t)\)-flow \(f\) in \(N\), assume that there is no directed path from \(s\) to \(t\) in the residual network \(N_f\). Let \(S\) denote the set of vertices that are reachable from \(s\) in \(N_f\). Prove that \(\text{cap}(A) > \text{cap}(S)\) holds for any set \(A \subsetneq S\) with \(s \in A\).
Kai
(i)
We can rewrite the flow conservation law for any node \(u \in V \setminus \{s, t\}\) as
then we have
Expanding the right-hand summation and regrouping terms yields
The two summations \(\sum_{v \in X} \sum_{u\in X} f(u, v)\) and \(\sum_{v \in X} \sum_{u \in X} f(v, u)\) are actually the same, since for all vertices \(x, y \in V\) , the term \(f(x,y)\) appears once in each summation. therefore
(ii)
We define the residual capacity \(c_f (u, v)\) by
and the edge set \(E_f\) by
(iii)
Let \(f': E \rightarrow \mathbb{R}_+\) be defined as follows:
We prove that \(f'\) is a flow and \(\text{val}(f') = \text{val}(f) + \Delta\)
First we verify that \(f'\) obeys that capacity constraint.
For an edge \((u, v) \in P \text{ and } (u, v) \in E\), we have
For an edge \((v, u) \in P \text{ and } (u, v) \in E\), we have
Hence the capacity constraint holds.
Next we prove the flow conservation constraint. For a vertex \(u \in V \setminus \{s, t\}\), obviously the flow conservation constraint holds if \(u \notin V(P)\). Hence we focus on the case that \(u \in V(P)\).
For a vertex \(u \in V(P) \setminus \{s, t\}\), since \(P\) is a simple path, there are exactly two edges \((u_1, u)\) and \((u, u_2)\) in \(P\) that adjacent to \(u\).
if \((u_1, u) \in E\) and \((u, u_2) \in E\), then we have
if \((u_1, u) \in E\) and \((u_2, u) \in E\), then we have
Similarly for the case \((u, u_1) \in E, (u, u_2) \in E\) and the case \((u, u_1) \in E, (u_2, u) \in E\). Hence the flow conservation constraint holds.
Finlly, we compute the value \(\text{val}(f')\). Same as the proof of flow conservation constraint, there are two cases for the edge in \(N\) corresponds to the edge adjacent to \(s\) in \(P\) of \(N_f\).
It is easy to compute that in both cases we have
Therefore, \(N\) has an \((s, t)\)-flow whose flow value is \(\text{val}(f) + \Delta\).
(iv)
By 京都大学 大学院 情報学研究科 数理工学専攻 2022年実施 グラフ理論 (i) and (iii) we know that \(S\) is actually a minimum \(s,t\)-cut.
Hence for any any set \(A \subsetneq S\) with \(s \in A\), we have \(\text{cap}(A) > \text{cap}(S)\).