Max Flow-Min Cut Theorem
from wikipedia
In computer science and optimization theory, 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.
Catalog
Prerequisite Knowledge
Networks
A network is a graph with 2 distinctive vertices, namely a source and a sink. We can see it as a transportation network where goods are transported from the production centre(source) to supermarkets(sink) with warehouses which can store the goods temporarily(intermediate vertices).
In this network, each edge has a maximum rate at which goods can be transported, known as capacity c c c of the edge.
Flows
A flow f is the actual rate at which ‘goods’ are transported on the edge a a a. Obviously, for any feasible flow f (from now on, we will only be discussing feasible flow),we have f ( a ) ≤ c ( a ) f(a)\leq c(a) f(a)≤c(a). For any intermediate vertex x x x, we have flow into the vertex equals to flow out of the vertex, which is known as the conservation condition. For the source, there is only outflow, while for the sink, there is only inflow. Thus, we define a f l o w f flow f flowf as follows:
f is a real-value function on the network N with source x and sink y such that { f + ( v ) = f − ( v ) ∀ v ∈ I ( the set of intermediate vertices ) f − ( x ) = f + ( y ) 0 ≤ f ( a ) ≤ c ( a ) ∀ a ∈ E ( N ) f\text{ is a real-value function}\\ \text {on the network N with source x and sink y such that}\\ \begin{cases} f^+(v)=f^-(v) &\forall v\in I(\text{the set of intermediate vertices})\\ f^-(x)=f^+(y)\\ 0\leq f(a)\leq c(a)& \forall a\in E(N) \end{cases} f is a real-value functionon the network N with source x and sink y such that⎩⎪⎨⎪⎧f+(v)=f−(v)f−(x)=f+(y)0≤f(a)≤c(a)∀v∈I(the set of intermediate vertices)∀a∈E(N)
Obviously, there exists at least one f f f for every network, which is when f ( a ) = 0 f(a)=0 f(a)=0 for every edge a in the network, known as the zeroflow. Now, how do we describe the size of the flow? we proceed to define the value of a flow v a l ( f ) val(f) val(f) as the net flow into the source x x x. In a more rigorous manner, we define
v a l ( f ) = f + ( S ) − f − ( S ) , S ⊆ E , x ∈ S , y ∉ S . val(f)=f^+(S)-f^-(S), S\subseteq E, x\in S, y\notin S. val(f)=f+(S