Summary of Lecture 23

This was the second network flow lecture. The main result from the lecture is a proof of the MaxFlow MinCut theory, which proves that the Ford-Fulkerson algorithm finds a maximum flow.

In 2005 this lecture was given using student submissions, while in 2006 it was not done with student submissions. However, one of the activities had worked so well in 2005, that it was done this year as a paper based activities - copies of the slide were passed out, and students wrote their answers on the slide.

The remark at the start: "It is obviously the day before thanksgiving" is in reference to less than average attendance.

Note that student voices are much clearer on this video. (And not too many coughs).


At 1:20 the instructor asks "what are the named algorithms we have had so far" - this is just to get the students to remember what the key algorithms have been (the algorithm's named after "famous" people). You could stop for the list. One algorithm that was mentioned was Bellman-Ford. This is the shortest path algorithm based on dynamic programming.


This slide and next two are review from the previous lecture. The student submission example is redone to derive a maximum flow. The maximum cut is also illustrated.



This slide introduces something new - the augmenting path lemma. This is the start of the Ford-Fulkerson algorithm.

At 7:40 the instructor asks for the minimum capacity of an edge along the path - students answer 5.

At 8:55 the instructor asks "What do I do to this edge" - you cannot see what the instructor is pointing at (or even the instructor). He is pointing to the edge u, v.

On this slide, the instructor is refering to "the original graph", and "the residual graph" - these terms may sound similar.


The instructor begins this slide by clarifying what the lemma is.

This slide was designed as a student submission. The question is: what are the two properties of the resulting flow that we would need to verify to prove that it is a valid flow. You may want to do this as a student submission.

The answers that were being looked for were "flow conservation" and "capacity constraints".


This slide gives the Ford-Fulkerson algorithm. At 13:55 the instructor asks: "How do we know that the algorithm eventually stops". You may want to stop this for discussion.


This slide makes the definition of flows and cuts between sets S and T. These definitions are important.

At 18:30 the instructor asks "Why is the flow from S to T bounded by the Capacity between S and T".


This example illustrates Cap(S,T) and Flow(S,T). It is designed as a student submission - if the definitions are clear to the students, it may not be necessary to do it as a submission.


This is an easy min cup problem, at 20:20 the instructor asks the students the cut value, and immediately gets back the answer 30. THis is done as a warm up for a much more involved example.

This example is done on paper by the UW class - so the instructor has to spend time passing out the copies for students to work on!

The problem is to find a minimum cut. After students are working on the problem, the instructor mentions that the edges in the cut need not be in a single line. (Some students had the misconception that you had to draw the cut without lifting the pen) This is mentioned at 25:30.

There is discussion about what the right answer is - 17 or 18. A student comes up at 29:30 and draws the correct solution.

At 30:15 the question is asked - how would you convince yourself that it is not possible to find a cut of size 15.

At 31:00 the instructor asks - can you find a flow of size 17. This could be done as a student submission. The UW students found the flow on their paper copies. It is straight forward to find the desired flow.

This begins the actual proof of the max flow, min cut theorem.


At 37:20 the instructor asks what can be said about the edge from u to v. This is not answered by the students, so the instructor eventually gives the answer - but at 38:40 he does ask another clarifying question, for which he gets an answer.



This finished the proof of the max flow min cut theorem. At 41:00 an important point is made about how to compute a minimum cut if we have a maximum flow algorithm. This is illustrated with an earlier slide.

The instructor makes a historical digression about the Ford-Fulkerson algorithm. A student asks a question about a technical point (a good question). Essentially, what the student is asking is "What is the cut that is given by the max flow" - the instructor eventually draws this.


This example is the standard example that shows why the basic ford fulkerson algorithm is inefficient.

The final slide is displayed and covered very quickly. This material is in the text. The basic result is that the the Ford-Fulkerson algorithm works, and there are a number of optimizations that are necessary to make it efficient. It is not necessary to understand the optimizations in this class (although it is an interesting topic).