CMPSCI 311: Theory of Algorithms

David Mix Barrington

Fall, 2003

Discussion Solutions #9

from Wednesday 12 Nov 2003

Min Cuts and Max Flows

Questions are in black, answers in blue.

A flow diagram is a labeled directed graph like this example which I have gratefully lifted from

www.ms.ic.ac.uk/jeb/or/netflow.html:


           3          5            3
         ------>(2)-------->(5)------
        /        ^ <------   |       \
       /        1|       4\  |2       \
      /   2      |    1    \ v    1    >
   >(1)-------->(3)-------->(6)-------->((8))
      \          ^           |         >
       \         |2          |2       /
        \   3    |     2     v      5/
         ------>(4)-------->(7)------

The edge labels represent the capacity of the edge. A flow is an assignment of an amount, from zero to the capacity, to each edge that has zero net flow in or out of each intermediate vertex. The max-flow problem is to input the diagram and output a flow with the maximum amount leaving the source node and entering the sink node.

A cut is a set of vertices including the source but not the sink. The capacity of a cut is the total capacity of all edges from vertices in the cut to those not in it. The min-cut is the cut of smallest size. The min-cut max-flow theorem says that the min-cut and max-flow always have the same size.

Last modified 12 November 2003