Home Max-flow min-cut theorem - 최대 유량 최소 컷 정리
Post
Cancel

Max-flow min-cut theorem - 최대 유량 최소 컷 정리

# Definition

the max-flow min-cut theorem states that in a flow network, the maximum amount of flow passing from the source to the sink is equal to the total weight of the edges in a minimum cut, i.e., the smallest total weight of the edges which if removed would disconnect the source from the sink.
reference

$flow(s,t)\_{max} = cut(s,t)\_{min}$


그래프 $G$에서 최대유량 $flow(s,t)_{max}$는 항상 source와 sink의 최소컷 $cut(s,t)_{min}$과 같다​


# Term Definition

## Cut ##

A cut is a partition of the vertices of a graph into two disjoint subsets
reference

$(S, T \in G_{V})$ $\land$ $(S \cup T = G_{V})$ $\land$ $(S \cap T = \emptyset)$

그래프 $G=(V, E)$에 대한 정점의 집합 $G_{V}$ 를 다음을 만족하는 두개의 부분집합 $S, T$으로 나누었을때, $S, T$는 $G_{V}$의 partition이며 $(S \cap T = \emptyset)$이므로 자명하게 disjoint subsets을 만족하게 된다. Cut의 정의로부터 Cut-set의 개념이 파생된다.


## Cut-set ##

A cut $\displaystyle C=(S,T)$ is a partition of ${\displaystyle V}$ of a graph ${\displaystyle G=(V,E)}$ into two subsets S and T.
The cut-set of a cut ${\displaystyle C=(S,T)}$ is the set $\displaystyle \{(u,v)\in E\mid u\in S,v\in T\}$of edges that have one endpoint in S and the other endpoint in T. If s and t are specified vertices of the graph G, then an s–t cut is a cut in which s belongs to the set S and t belongs to the set T.
reference

그래프 $G=(V, E)$와 Cut $C = (S, T)$를 가정하자. 이때 Cut $C = (S, T)$에 대한 Cut-set은 $\left\{(u, v) \in E \ \mid \ u \in S, v \in T \right\}$ 로 정의된다. 다시 말해 $G$에서 모든 Cut-set의 $E$를 제거하면 partition S와 T는 서로 이어진, 혹은 흐를 수 있는 간선이 존재 하지 않게 된다.

그래프 이론에서 어느 한 간선을 선택하여 삭제하였을때 component의 개수가 증가한다면 이 간선을 bridge, isthmus, cut-edge, cut arc등으로 부른다.

partition에 대해 서로 흐를 수 있는 간선이 존재 하지 않는 다는 것은 bridge가 존재하지 않는다는 의미이기때문에 이와 같은 상태를 bridgeless 라고 한다.


## Minimum cut ##

뻔한 정의지만 가능한 모든 Cut중 가중치를 최소로 하는 Cut을 의미한다.
$Minimum \ cut $ $= min( cost(C) \ \mid \ \forall C = (S, T) \in G )$


## Maximum cut ##

$Maximum \ cut $ $= max( cost(C) \ \mid \ \forall C = (S, T) \in G )$


# Proof

증명과정에서 포드-풀커슨 알고리즘(Ford–Fulkerson algorithm)을 사용하기 때문에 미리 이에 대한 사전 지식이 선행되어야 한다.

#$Variable \ Definition$
$Network \ G$ $=(V,E): source:\ s,$ $sink: \ t$
$Cut \ C$
$S, T: $ $partition \ of \ G_{V} $ $divided \ by$ $C(s \in S, t \in T, S$ $and \ T \ has$ $no \ more \ than$ $1 \ components)$
$C(S, T) $ $= \displaystyle\sum_{(u, v) \in S \times T} c_{uv}$
$Flow \ f_{uv}: $ $flow \ from \ u $ $to \ v$
$\mid f\mid: \ f_{st}$

$Lemma \ 1)$ $\ \mid f\mid \leq C_{min}(S, T)$

$proof)$ 귀류법으로 $\mid f\mid > C_{min}(S, T)$라고 가정해보자.
Conservation of Flows에 의해서 $\mid f\mid$ = $f_{s_{out}} = f_{t_{in}}$ 마찬가지로 $ f(S_{out}) = f_{s_{out}} $, $f(T_{in}) = f_{t_{in}} $ 으로부터
$\mid f\mid = f_{s_{out}} $ $= f_{t_{in}} = f(S_{out}) $ $= f(T_{in}) = f_{ST}$ 가 얻어진다.

$\mid f\mid = f_{ST} $ $= \displaystyle\sum_{(u, v) \in S \times T} f_{uv} $ $ \leq $ $ \displaystyle\sum_{(u, v) \in S \times T} c_{uv} \leq C_{min}(S, T)$ 이는

가정 $\mid f\mid > C_{min}(S, T)$과 모순 됨으로
$\ \mid f\mid \leq C_{min}(S, T)$
임이 증명된다.

$Lemma \ 2)$ $\exists C:\  min(\mid f\mid) $ $= C_{min}(S, T)$

$proof)$ G에 대해 Ford–Fulkerson algorithm에서 마지막으로 갱신된(Augmented) 그래프를 $G_{f}$라 하자. 또한, $G_{f}$의 $s$에서 유량이 흐를 수 있는 $G_{f}$안의 정점의 집합을 $A$라고 하자.

partition $\left\{S, T\right\} $ $= \left\{A, A^c\right\}$ 일때, $min(\mid f\mid) = C_{min}(S, T)$ 만족함을 보이자.

1.  $\left\{A, A^c\right\}$은 $C$의 올바른 partition이다.
2.  $\mid f\mid = C_{min}(S, T)$이다.

두가지를 보이면 될 것이다.

1번은 Ford–Fulkerson algorithm에 따라
$\forall u \in A \subset G_{f},$ $ v \in G_{V}: $ $c_{f}(u, v)( = c(u, v) - f_uv) $ $= 0$이여야 하므로
올바른 partition임을 알 수 있다.

$C_{min}(S, T) $ $= \sum_{(u, v) \in A \times A^c} c_{uv} = f_{s_{out}} $ $= \mid f\mid( \because Conservation\  of \  Flows) =$ $ min(\mid f\mid)$

1, 2로부터 $Lemma \ 2) $도 증명된다.

$Lemma \ 1)$, $Lemma \ 2)$로부터 $C_{min}(S, T) = min(\mid f\mid)$이며 $G_{f}$를 구함으로써
min-cut을 구성함을 있음이 증명된다.

This post is licensed under CC BY 4.0 by the author.