ΘρϵηΠατπ

Network
A network consists of the following
  • A finite directed graph N=(V,E)
  • A source sV and a sink tV
  • A capacity function which is a mapping c:E+ which represents the maximum amount of flow that can pass through an edge.
In Neighbor Function
We define the function in-nhbs(u):={x:(x,u)E}
Out Neighbor Function
We define the function out-nhbs(u)={x:(u,x)E}
Flow
A flow through a network is a mapping f:E+ such that the following hold true:
  • Capacity Constraint: For every edge (u,v)E we have that f(u,v)c(u,v)
  • Conservation of Flow: For each vertex v apart from s and t we have the following
  • xin-nhbs(v)f(x,v)=yout-nhbs(v)f(v,y) which says that the amount of flow coming into a node is the same as the amount of flow coming out.
Flow out of the Source is the Same as Flow Entering the Sink
yout-nbhs(s)f(s,y)=xin-nhbs(t)f(x,t)
This follows from the conservation axiom for flows.
Flow Value
Given a network, and a flow, then it's flow value is defined as : |f|:=yout-nbhs(s)f(s,y)=xin-nhbs(t)f(x,t)
Maximum Flow Problem
Given any network, maximize |f|
s-t Cut
An st cut is a partition {S,T} of V such that sS and tT.
Cut Set
Suppose that S,T is an s-t cut, then we define XC:={(u,v)E:uS,vT}
Max-Flow Min-Cut
The maximum value of an s-t flow is equal to the minimum capacity over all s-t cuts.
Residual Edge
Given a regular directed graph, with edge capacities and flow values assigned to them, then given an edge e going from vertex x to y, with capacity c and having flow value f then its residual edge is defined as a new edge that goes from y to x and having flow equal to cf
Residual Graph
The residual graph of a directed graph with edge capacities and flow values assigned to them is the graph resulting after adding the residual edge of every edge in the original graph.

Here's an overview of the Ford Fulkerson algorithm:

Sum of Capacities Runtime
Show that the maximum number of updates to the flow in the residual graph needed before Ford-Fulkerson terminates is in 𝒪(C) where C is the sum of the capacities of all directed edges incident to the sink vertex t .

Recall that the flow value of a network is equal to the of the flow entering the terminal node. On each iteration if it is not the final one then an augmenting path is found which starts from s and goes to t, and the flow of this path is increased by at least one, which increases the amount of of flowing going into the terminal node, which reversely means that one of the edges going into the terminal node has a flow value that increased by at least one.

In the worst case each time when we augment a path we increase by one, and we will not stop until all the edges going into the terminal node are fully saturated, and thus will take at most C iterations.