This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: MATH 682 Notes Combinatorics and Graph Theory II 1 Flows, continued 1.1 The Ford-Fulkerson algorithm The proof above contains, as a subtle sidenote, the outline of an explicit algorithm for constructing a maximal flow. Note that there is only one place in the proof above where f s ostensible maximality is invoked: it is used to guarantee that the S-construction procedure does not include t , since if the procedure did include t , it would induce a path on which improvements to f could be made. Instead of phrasing this line of thought as a proof, we could phrase it as an algorithm: we probe outwards from s using the technique described in the min-flow max-cut theorem, and, if our probes reach t , we can slightly improve our flow and begin probing all over again. We can explicitly lay out this algorithm: 1. Let f be a flow (for simplicity and algorithmic explicitness, we might start with the zero flow in which f ( e ) = 0 for all edges e ). 2. Let s S . 3. For any x S from which we have not yet probed, consider each neighbor y / S of x . If either x y with f ( x,y ) < c ( x,y ) or if y x with f ( y,x ) > 0, then put y in S , recording that its parent is x . 4. If t S , then skip to step 7. 5. If there are still unprobed vertices in S , go back to step 3. 6. There are no unprobed vertices in S and t / S , so f is a maximal flow! 7. Identify t as x , t s parent as x 1 , the parent of x 1 as x 2 , and so forth, until reaching x k = s . 8. For each i , let q i = c ( x i +1 ,x i )- f ( x i +1 ,x i ) or f ( x i ,x i +1 ) as appropriate. Let q = min q i . 9. For each i , either increment f ( x i +1 ,x i ) by q or decrement f ( x i ,x i +1 ) by q , as appropriate. 10. With this improved flow f defined, forget which elements are in S and return to step 2. This algorithm, although guaranteed to find ever better flows until it reaches a maximum, is not without its flaws. The following weighted graph with initial zero choice of f represents a canonically problematic graph: s A B t 0(100) 0(100) 0(1) 0(100) 0(100) Page 1 of 8 February 18, 2010 MATH 682 Notes Combinatorics and Graph Theory II Following the procedure above, we might probe from s to A , from A to B , and B to t . We construct the path s A B t with q = 1, leading to the slightly better flow s A B t 1(100) 0(100) 1(1) 0(100) 1(100) But now, supposing we probe from s to B , B to A ,a nd A to t , we produce the path s B A t with q = 1, which is a rather disappointingly tiny improvement: s A B t 1(100) 1(100) 0(1) 1(100) 1(100) And, now, if we once again quested along our original path, we would get another meager improve- ment of 1 in our value. Despite having obvious high-capacity paths, if our augmentation always makes use of the bottleneck, our algorithm will approach the maximal flow very slowly....
View Full Document