Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
courses:cs211:winter2012:journals:paul:home [2012/03/28 01:57] – [Chapter 6] nguyenpcourses:cs211:winter2012:journals:paul:home [2012/04/06 02:17] (current) – [Chapter 7] nguyenp
Line 731: Line 731:
           * Weird stuff. Never thought algorithms like this existed.            * Weird stuff. Never thought algorithms like this existed. 
       *        * 
-      + 
 +====== Chapter 7 ====== 
 +  Section 7.1 - The Maximum-Flow Problem and the Ford-Fulkerson Algorithm 
 +      * Problem 
 +          * You have a directed graph 
 +          * Each edge has a capacity 
 +          * Have a start node s and end node t 
 +          * Greedy 
 +              * Find an s-t path with highest capacity 
 +              * do it! 
 +              * keep doing this until you cant do it any more 
 +              * Locally optimal, but not globally optimal (it's very easy to think of a counter example, counter example is on page 339 in book) 
 +          * Awesome Solution: Residual Graphs 
 +              * Edges have a capacity, but also a flow 
 +              * We don't have to use all of it at once 
 +              * Residual edge is one where you have some going one way and some going the other 
 +              * The Ford-Fulkerson Algorithm uses residual edges and works awesomely (optimal) 
 +                  * page 342 - 344 
 +                  * 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 is the edge with the smallest flow rate) 
 +                          * 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: Bipartite Matching Problem 
 +      * 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.  
 +      * Extensions: The structore of bipartite graphs with no perfect matching 
 +          * Dicusses how to tell if it is impossible to find a perfect matching in a bipartite graph.  
 +          * Can easily find an algorithm based on the following theorem: 
 +              * Assume that the bipartite graph G=(V,E) has two sides X and Y such that |X| and |Y|. Then the graph G either has a perfect matching or these is a subset A such that |\G(A)|<|A|. A perfect matching or an appropriate subset A can be found in O(mn) time.  
 +  * Section 7.7 - Extensions to Max-Flow Problem 
 +      * Circulations with Demands 
 +          * We have a directed graph 
 +          * edges have capacities 
 +          * nodes have supply and demands 
 +          * A circulation is a function that satisfies the following 
 +              * the flows for a particular edge are always less than the capacity (makes sense and is very intuitive) 
 +              * the demand for a node is equal to the stuff coming in minnus the stuff going out (the the demand that his node has? I guess that makes enough sense...) 
 +          * To keep the world form exploding, the sum of supplies == sum of demands 
 +          * Algorithm: more details on pg 381 and 382 
 +              * Add a new source s and sink t 
 +              * For each v with d(v) < 0, add edge (s, v) with capacity -d(v) 
 +              * For each v with d(v) > 0, add edge (v, t) with capacity d(v) 
 +          * MAGIC: G has circulation iff G' has max flow of value D 
 +          * MORE MAGIC : Given (V, E, c, d), there does not exist a circulation iff there exists a node partition (A, B) such that the sum of all the demands is greater than cap(A,B) 
 +          * These two pretty much solve the problem for us.  more details are on page 382 if you get confused rereading this sometime in the future 
 +      * Circulation with Demands and Lower Bounds 
 +          * Same givens as last problem 
 +          * except!!!! we have lower bounds on each edge 
 +          * algorithm on page 384 
 +          * Here's how we do 
 +          * we set teh flow along an edge to be the lower bound and then we update the demand on both nodes attached to it.  
 +          * the rest is self explanatory
courses/cs211/winter2012/journals/paul/home.1332899865.txt.gz · Last modified: 2012/03/28 01:57 by nguyenp
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0