120 likes | 261 Views
Max Flow Problems. CSE 202 - Algorithms. Max Flow problem. Input: a directed graph with a non-negative weight ( capacity ) on each edge, and a designated source node s and sink node t.
E N D
Max Flow Problems CSE 202 - Algorithms CSE 202 - Max Flow
Max Flow problem • Input: a directed graph with a non-negative weight (capacity) on each edge, and a designated source node s and sink node t. • A flow assigns to each edge a number (from 0 to its capacity) such that for each node except s and t, the sum of the flow into the node equals sum of the flow out. [The fine print: this is slightly different from the book’s definition.] • The value of a flow is the sum of the flow out of the source (which equals total flow into the sink). • Maximum-Flow problem: find a flow with the maximum possible value. • Note: A max flow can assign 0 to each edge going into the source, and to each edge going out of the sink. CSE 202 - Max Flow
Example 12 a c 20 16 t 9 4 s 10 7 sink 4 d source 13 b 14 12 a c 14 10 0 t 4 s 2 2 4 d 8 This is wasteful! The text’s formulation doesn’t even let it happen. b 6 A flow of value 18 CSE 202 - Max Flow
Leftover capacity 12-12 a c 20-14 16-10 9-0 t s 4-4 10-2 7-2 sink 4-4 d 13-8 source b 14-6 0 New backedge showing we can reduce forward flow by 10 a c 6 6 12 14 10 9 t 2 s 8 5 2 4 8 6 0 d 5 b 8 Residual network CSE 202 - Max Flow
Augmenting Path 0 We can push 5 more through network on indicated path (New flow has value 23.) a c 6 6 12 14 10 9 t 2 s 8 5 2 4 8 6 0 d 5 b 8 0 a c 1 6 12 19 10 9 t 2 s 8 0 7 4 13 11 0 d 0 Now we’re stuck! We can’t get any more across cut. b 3 New residual network CSE 202 - Max Flow
Duality: Max Flow = Min Cut • Original problem had a cut of value 23. We can’t possibly get more from source to sink. • Theorem: Max flow = min cut Proof: Obviously, any flow min cut. But if max flow < min cut, there would be an augmenting path from source to sink, leading to a higher-valued flow. This is a contradiction. Thus, max flow = min cut. QED. 12 a c 20 16 t 9 4 s 10 7 4 d 13 b 14 CSE 202 - Max Flow
Ford-Fulkerson Methods • initialize flow to 0; • while (there’s an augmenting path){ • update flow; • compute new residual graph; } • If there are several augmenting paths, does it matter which we pick?? a 100 100 t 1 s 1 100 100 b CSE 202 - Max Flow
Edmonds-Karp Algorithm • Always choose an augmenting path with as few edges as possible (say it has L edges). • This might create a new backedge, e.g (v,u). • This new edge can’t be in a new path of L edges.. • (Handle multiple new backedges by induction proof.) • Meanwhile, at least one original edge has been eliminated. • Thus, there are at most E iterations using L long paths. k long path v m long v t t s s n long u u j long path m j+1 and n k+1 so m+n > j+k+1 = L j+1+k is a minimal length path (L) CSE 202 - Max Flow
Edmonds-Karp Algorithm • Always choose an augmenting path with as few edges as possible. • At most E iterations use L-edge augmenting path • Longest augmenting path has V-1 edges. • Thus, there are at most O(VE) augmentations. • How long does it take to find and process a shortest augmenting path?? CSE 202 - Max Flow
Max Flow Algorithms • Edmonds-Karp is O(VE2) • Some faster algorithms based on “Push-Relabel”. • E.g. Goldberg’s algorithm is O(V2E) • Start source at height V, all others at 0 • Add in flow from higher nodes to lower ones. • If a non-sink node can’t push all its incoming flow out, increase it’s height. • When done, return excess back to source. • Carefully choosing order gives O(V3) algorithm. • Fastest known algorithm is O( min(V2/3, E1/2) E lg(1+V2/E) lg(max capacity) ). CSE 202 - Max Flow
An Application • Maximum matching problem: • Given an (undirected) graph (V,E) find a maximum-sized set of disjoint edges. • Not the same as a maximal set of disjoint edges. • Amazingly, not NP-complete (but it’s not easy) • Bipartite graph: Graph such that you can partition the nodes V = V1 U V2, and every edge goes between a node of V1 and one of V2. • Maximum matching for a bipartite graph can be reduced to a max flow problem. CSE 202 - Max Flow
Glossary (in case symbols are weird) • subset element of infinity empty set for all there exists intersection union big theta big omega summation >= <= about equal not equal natural numbers(N) reals(R) rationals(Q) integers(Z) CSE 202 - Max Flow