COMS 482: unofficial class blog

Lecture 15: Network Flow

Posted in Class Notes by Elliott Back on February 25th, 2005.

  • Source s with outflow only
  • Source t with inflow only
  • Directed graph with non-negative edge capacities

The goal is the minimize the flow from s -> t. A flow is a function f:E -> R+, from the edge set to amount of flow on that edge. We also define ce to be the capacity of an edge e. To be a legal flow:

  1. For each edge, 0 <= f(e) <= ce
  2. For each node v other than s, t, fin(v) = fout(v)

The value of a flow f, v(f) = fin(t) = fout(s) = sum( f(e) ) of eout of s = sum( f(e) ) of ein of t. As you’ve seen by now, fin(v) = sum( f(e) ) of ein of v, and fout(v) = sum( f(e) ) of eout of v.

Here is an example of a network flow diagram:

Network Flow Diagram

Now, imagine pushing 18 units of flow across nodes {s, 1, 3, 4, t} to get the following flow diagram:

Network Flow Diagram

This is bad–it uses up too much of our capacity. The most we can push again from s -> t is only 2! Let’s allow the option of “undoing” an edge:

Residual Graph

This is our redidual graph. Everywhere we have flow, we potentially have:

  1. Some capacity left
  2. Some “backflow” we can use to change our mind

Ford-Fulkerson Algorithm (Overview):

Find an s -> t path in graph
Update all flows
Make a new residual graph
Repeat

This entry was posted on Friday, February 25th, 2005 at 3:49 pm and is tagged with ford fulkerson, network flow, negative edge, flow diagram, backflow, inflow, fout, outflow, graph, algorithm, lt, ford. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback.

2 Responses to “Lecture 15: Network Flow”

  1. Ivan G. says:

    “Now, imagine pushing 18 units of flow across nodes {s, 1, 2, 4, t} to get the following flow diagram:”

    Should be { s, 1, 3, 4, t }

  2. Always the excellent proofist, you have prevailed!

Leave a Reply