1 / 17

Maximum Flow Neil Tang 3/30/2010

Maximum Flow Neil Tang 3/30/2010. Class Overview. The maximum flow problem Applications A greedy algorithm which does not work The Ford-Fulkerson algorithm Implementation and time complexity Another approach: linear programming An Application: maximum matching in a bipartite graph.

major
Download Presentation

Maximum Flow Neil Tang 3/30/2010

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Maximum Flow Neil Tang3/30/2010 CS223 Advanced Data Structures and Algorithms

  2. Class Overview • The maximum flow problem • Applications • A greedy algorithm which does not work • The Ford-Fulkerson algorithm • Implementation and time complexity • Another approach: linear programming • An Application: maximum matching in a bipartite graph CS223 Advanced Data Structures and Algorithms

  3. The Maximum Flow Problem • The weight of a link (a.k.a link capacity) indicates the maximum amount of flow allowed to pass through this link. • The maximum flow problem: Given a weighted directed graph G, a source node s and a sink node t, find the maximum amount of flow that can pass from s to t and a corresponding feasible link flow allocation. • Flow feasibility: Both the flow conservation constraint and the capacity constraint must be satisfied. CS223 Advanced Data Structures and Algorithms

  4. The Maximum Flow Problem CS223 Advanced Data Structures and Algorithms

  5. Applications • Computer networks: Data traffic routing for throughput maximization. • Transportation networks: Road construction and traffic management. • Graph theory: Matching, assignment problems. CS223 Advanced Data Structures and Algorithms

  6. Flow Graph and Residual Graph CS223 Advanced Data Structures and Algorithms

  7. Basic Idea • Keep finding s-t augmenting paths until no such paths can be found in the residual graph. • Update the flow and residual graph according to the augmenting path in each step. CS223 Advanced Data Structures and Algorithms

  8. A Greedy Algorithm which Does Not Work Find an augmenting path s-a-d-t with flow value 3 and update the flow and residual graphs as follows: CS223 Advanced Data Structures and Algorithms

  9. The Ford-Fulkerson Algorithm Find an augmenting path s-a-d-t with flow value 3 and update the flow and residual graphs as follows: CS223 Advanced Data Structures and Algorithms

  10. The Ford-Fulkerson Algorithm Find an augmenting path s-b-d-a-c-t with flow value 2 and update the flow and residual graphs as follows: CS223 Advanced Data Structures and Algorithms

  11. The Implementation and Time Complexity • If all the link capacities are integers, then the time complexity of the Ford-Fulkerson algorithm is bounded by O(f|E|), where f is the max flow. • A bad example for random path selection. CS223 Advanced Data Structures and Algorithms

  12. The Implementation and Time Complexity • In each step, find an augmenting path which allows largest the increase in flow using a modified Dijkstra’s algorithm. It has been proved that it terminates after O(|E|logCapmax) steps, so the time complexity is O(|E|2log|V|logCapmax). • The Edmonds-Karp algorithm: In each step, find an augmenting path with minimum number of edges using BFS. It has been proved that it terminates after O(|E||V|) steps. So the time complexity is O(|E|2|V|). CS223 Advanced Data Structures and Algorithms

  13. Another Approach: Linear Programming LP in the standard form An LP can be solved by existing algorithms in polynomial time. CS223 Advanced Data Structures and Algorithms

  14. Maximum Flow Problem - LP CS223 Advanced Data Structures and Algorithms

  15. Shortest Path Problem - ILP CS223 Advanced Data Structures and Algorithms

  16. Maximum Matching in A Bipartite Graph • A matching (a.k.a. independent edge set): a set of edges without common • vertices. • The maximum matching problem: find the matching with the maximum number of edges. CS223 Advanced Data Structures and Algorithms

  17. Maximum Matching in A Bipartite Graph • A max-flow based algorithm CS223 Advanced Data Structures and Algorithms

More Related