Lecture 24 Summary


You'll note that the reading assignment doesn't show up on the video, so you might want to write that in.


This lecture begins the discussion of applications of network flow that will continue through this lecture and two more.

The instructor finds it interesting that network flow can be applied to many problems that on the surface do not resemble network flow.


Here the instructor explains the concept of problem reduction. The picture he draws gives a good summary of the process: First formulate the problem as a known problem, then solve the known problem, then translate the result back into the terms of the original problem.

This is used a lot in theory to prove NP-completeness, etc.


This is an activity slide. You can stop the video at 5:35.

The instructor does the activity interactively with the class (Interaction Event 1 from the Interaction Summary). You can skip this if a satisfactory discussion comes out of the student submissions.

At 7:00, a student asks, "Can we look at converting problems as finding isomorphisms between sets of problems?" There's no need to stop here. It's not an important point, and the instructor makes the question clear as he answers it.


This is an activity slide. You can stop the video at 9:35.

A student asks a clarifying question, "So flow can only go in ONE direction, not both?" Stop for the activity at 10:07 instead of 9:35 if you want to show this point.

At 10:10 a student proposes a solution (Interaction Event 2 from the Interaction Summary). It's hard to hear, but the instructor repeats it. Again, you can skip this if you get a satisfactory discussion from the student submissions.

At 10:50, a student asks, "So is the flow in one direction a function of the flow in the other direction?" The instructor replies that right now he is just looking at capacities, not flows. It's not an important point, and even though you can't hear the student question, the instructor's explanation still makes sense.

At 11:50, the instructor makes the point that this is a common way to convert an undirected graph to a directed graph: Replace each undirected edge with a directed edge in each direction with equal flow.



At 14:04, a student asks, "Who's CC?" The instructor replies, "Craig Chambers." This isn't important, the initials are just those of instructors at UW.


The main point on this slide is constructing the new graph by adding the source and sink and giving the edges direction and capacities.

At 16:45, the instructor asks, "What else do we need to do?" A student responds, "Assign capacities to the edges." (Interaction Event 3 from the Interaction Summary.) Stop here to let students respond.

At 18:30, the instructor asks, "What could we do if we wanted to represent different teaching loads, for example if one instructor can teach 3 classes and another can teach 2 classes?" A student responds, "Assign a different capacity at the edges that go from the source to the instructors." Stop here to let students respond.


This is an activity slide. You can stop the video at 19:30.

You may want to explain what edge-disjoint paths are a little more specifically. The paths are allowed to share vertices, but any edge can be in at most one path.

There are a couple of interactions here; please stop the video to allow students to respond to these (or ask the students these questions yourself while you discuss the student submissions.) At 20:22, the instructor asks, "Is this the best possible? Why?" The student answer is hard to hear, but the instructor repeats it:"These 4 edges are saturated, and there is no other way to get past that point in the graph."

At 22:50, the instructor asks, "What if I asked you to find vertex-disjoint paths?" (Interaction Event 5 in the Interaction Summary) A student responds, "Convert edges to vertices and vertices to edges." The instructor asks, why do you want to convert vertices to edges?" The student responds, "Then it becomes edge-disjoint paths." Another student says, "You could split a vertex into a pair of vertices with an edge between them." The instructor comments that this method is more precise.



Here we look at a graph with multiple sources and multiple sinks. If a vertex's demand is positive, then that vertex must receive its demand. If the vertex's demand is negative, then it must produce that demand. The sum of the demands of all the vertices must be zero in order for there to exist a flow which satisfies all of the demands. Note that if the sum is zero, it is possible that the graph will not be feasible; but if the sum is not zero the graph is definitely not feasible.

At 28:15, the instructor asks, "Can we solve this problem?" There is no response. Give the students a chance to answer here.


This is an activity slide. You can stop the video at 30:10.

He does the activity interactively with the students. There is no need to show this as long as you make all of the points in your discussion.

At 31:40, a student asks a question that is hard to hear, but the instructor repeats it. It's not important.

At 32:55, a student asks, "If it's feasible, is the sum zero?" The answer is no, as explained above. You don't need to stop here.


In order to convert the circulation problem to a network flow, the instructor first adds a new source and a new sink node.

At 34:42, the instructor asks, " What do I do with the source and sink nodes?" A student responds, "Connect the new source to the source nodes (the ones with negative demand) and the new sink to the sink nodes (the ones with positive demand)."

The instructor then labels these new edges with capacities equal to the vertices' demands.



The word lowerbound is used here. This just means minimum.

Here the instructor makes the point that standard network flow assigns maximum flow to an edge, while here we are also assigning minimum flow.


We can solve the problem from the previous slide using circulations by assuming that the minimum is used, then adjusting the demands of both of the endpoint vertices and the capacity of the edge accordingly. Slide 17 provides a more formal explanation.


The instructor makes the point that the transformation shown here allows you to provide the minimum capacities and solve it exactly as a normal circulation.




Add an edge from the source to each customer, and an edge from each product to the sink.

You should stop at the next 3 points to allow students to respond (or ask them the questions yourself).

At 46:09, the instructor asks, "What about edges into each customer?" A student responds, "The minimum flow is the minimum number of questions we can ask that customer, adn the max flow is the maximum number of questions."

At 46:54, the instructor asks, "What about on the product side?" A student responds, "The minimum flow is the minimum number of times the question should be asked, and the maximum flow is the maximum number of times the question should be asked."

At 48:00, the instructor makes the comment that what makes network flow so powerful is that it is applicable to things you don't expect. For example, surveys don't look like network flows, but network flows can be used to solve problems with surveys.

Note that the instructor posted a correction to this slide; the correction is below.

Slide with correction sent to class