Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
courses:cs211:winter2012:journals:paul:home [2012/04/04 17:26] – [Chapter 7] nguyenp | courses:cs211:winter2012:journals:paul:home [2012/04/06 01:44] – [Chapter 7] nguyenp | ||
---|---|---|---|
Line 749: | Line 749: | ||
* The Ford-Fulkerson Algorithm uses residual edges and works awesomely (optimal) | * The Ford-Fulkerson Algorithm uses residual edges and works awesomely (optimal) | ||
* page 342 - 344 | * page 342 - 344 | ||
- | * The way it works is that | + | * Informal explanation |
+ | * graphs | ||
+ | * keep updating the residual edges using the following formula: | ||
+ | * If edge is the same as it was originally, set the forward rate to the bottle neck + original rate (which | ||
+ | * Otherwise, set the backwards residual rate to what it originally was minus the bottle neck | ||
+ | * Section 7.2 - Maximum Flows and Minimmum Cuts in a Network | ||
+ | * Cut: s-t cut is a partition (A,B) where s is in A and t is in B | ||
+ | * Problem: Find an s-t cut of minimum capacity | ||
+ | * The capacity of a cut is the sum of all the possible stuff that can go through the edge at once | ||
+ | * Flow Value Lemma: Let f be any flow, and let (A, B) be any s-t cut. Then, the value of the flow is = f_out(A) – f_in(A). | ||
+ | * Weak Duality: let f be any flow and let (A, B) be any s-t cut. Then the value of the flow is at most the cut’s capacity. | ||
+ | * Corollary: Let f be any flow, and let (A, B) be any cut. If v(f) = cap(A, B), then f is a max flow and (A, B) is a min cut | ||
+ | * Augmenting path theorem: Flow f is a max flow iff there are no augmenting paths | ||
+ | * Max-flow min-cut theorem: The value of the max flow is equal to the value of the min cut. | ||
+ | * More explanation on page 350 | ||
+ | * Boom and we are done. Just use the same stuff as in the past section and we have all we need. | ||
+ | * Section 7.5 - A First Application: | ||
+ | * Given an undirected bipartite graph | ||
+ | * We must match so each node appears at most once on each edge | ||
+ | * How do we find one with the max number of nodes? This is our problem. | ||
+ | * Here's how we do it. We got a bunch of red and blue nodes. Add nodes s and t, which will be the start and end nodes. Have the start node s have a unit edge (edge of size 1) connect it to all the red nodes. Have all the blue nodes have a unit edge connect them to the end node t. Still have same edges in the middle. | ||
+ | * Now, use same algorithm as in the first section. BOOOM!!! Right? Yep. It's pretty intuitive, these later sections are more like practical uses rather than actual algorithms. I guess this is kind of good since pretty much all computer science problems go back to graph theory. | ||
+ | * |