lecture 16 floyd fulkerson
play

Lecture 16: Floyd-Fulkerson Tim LaRock larock.t@northeastern.edu - PowerPoint PPT Presentation

Lecture 16: Floyd-Fulkerson Tim LaRock larock.t@northeastern.edu bit.ly/cs3000syllabus Business Homework 5 released this morning, due next Tuesday the 9 th at 11:59PM Boston time Midterm 2 next Wednesday night through Friday night Question on


  1. Lecture 16: Floyd-Fulkerson Tim LaRock larock.t@northeastern.edu bit.ly/cs3000syllabus

  2. Business Homework 5 released this morning, due next Tuesday the 9 th at 11:59PM Boston time Midterm 2 next Wednesday night through Friday night Question on grades

  3. � � � � Last time: Weak MaxFlow-MinCut Duality • For any s-t flow ! and any s-t cut (#, %) '() ! ≤ +(, #, % '() ! = . !(/) − . !(/) 1 3456 7→9 1 3456 9→7 ≤ . !(/) (by non-negativity) 1 3456 7→9 ≤ . + / = +(,(#, %) (definition of capacity) 1 3456 7→9 • If ! is a flow, (#, %) is a cut, and '()(!) = +(,(#, %) , then ! is a max flow and (#, %) is a min cut

  4. Augmenting Paths • Given a network ; = (<, =, >, ?, + / ) and a flow ! , an augmenting path @ is an > → ? path such that !(/) < +(/) for every edge / ∈ @ 1 10 10 20 10 s t 30 0 10 20 0 0 2

  5. Augmenting Paths • Given a network ; = (<, =, >, ?, + / ) and a flow ! , an augmenting path @ is an > → ? path such that !(/) < +(/) for every edge / ∈ @ 1 Adding uniform flow 10 10 on an augmenting 20 10 path results in a new valid s-t flow! s t 30 0 10 20 10 10 2

  6. Greedy Max Flow • Start with ! / = 0 for all edges / ∈ = • Find an augmenting path @ • Repeat until you get stuck 1 0 0 20 10 s t 30 0 10 20 0 0 2

  7. Does Greedy Work? • Greedy gets stuck before finding a max flow • How can we get from our solution to the max flow? 1 1 20 0 20 10 20 10 20 10 s t s t 30 20 30 10 10 20 10 20 0 20 10 20 2 2 greedy optimal

  8. Residual Graphs • Original edge: / = D, ' ∈ = . !(/) u v • Flow !(/) , capacity +(/) +(/) • Residual edge + / − !(/) • Allows “undoing” flow / • / = D, ' and / E = ', D . u v • Residual capacity / E !(/) • Residual graph ; 3 = <, = 3 • Edges with positive residual capacity. ∪ / H ∶ + / > 0 . • = ! = / ∶ ! / < + /

  9. Augmenting Paths in Residual Graphs • Let ; 3 be a residual graph • Let @ be an augmenting path in the residual graph • Fact: !’ = Augment(; 3 , @) is a valid flow Augment(G f , P) b ¬ the minimum capacity of an edge in P for e Î P if e Î E: f(e) ¬ f(e) + b else: f(e) ¬ f(e) - b return f

  10. Augmenting Paths in Residual Graphs • Let ; 3 be a residual graph • Let @ be an augmenting path in the residual graph • Fact: !’ = Augment(; 3 , @) is a valid flow Augment(G f , P) b ¬ the minimum capacity of an edge in P for e Î P if e Î E: f(e) ¬ f(e) + b else: f(e) ¬ f(e) - b return f Note: This is the same process as the recurrence in Erickson 10.3!

  11. Ford-Fulkerson Algorithm FordFulkerson(G,s,t,{c(e)}) for e Î E: f(e) ¬ 0 G f is the residual graph while (there is an s-t path P in G f ) f ¬ Augment(G f ,P) update G f return f Augment(G f , P) b ¬ the minimum capacity of an edge in P for e Î P if e Î E: f(e) ¬ f(e) + b else: f(e) ¬ f(e) - b return f

  12. Ford-Fulkerson Algorithm • Start with ! / = 0 for all edges / ∈ = • Find an augmenting path @ in the residual graph • Repeat until you get stuck 1 1 0 0 20 10 s t s 30 0 t 10 20 0 0 2 2

  13. Ford-Fulkerson Algorithm • Start with ! / = 0 for all edges / ∈ = • Find an augmenting path @ in the residual graph • Repeat until you get stuck / ∈ = 1 1 / E ∉ = 0 0 20 10 20 10 s t s 30 0 30 t 10 20 10 20 0 0 2 2

  14. Ford-Fulkerson Algorithm • Start with ! / = 0 for all edges / ∈ = • Find an augmenting path @ in the residual graph • Repeat until you get stuck / ∈ = 1 1 / E ∉ = 0 0 20 10 20 10 s t s 30 0 30 t 10 20 10 20 0 0 2 2

  15. Ford-Fulkerson Algorithm • Start with ! / = 0 for all edges / ∈ = • Find an augmenting path @ in the residual graph • Repeat until you get stuck / ∈ = 1 1 / E ∉ = 20 0 20 10 20 10 s t s 30 20 30 t 10 20 10 20 0 20 2 2

  16. Ford-Fulkerson Algorithm • Start with ! / = 0 for all edges / ∈ = • Find an augmenting path @ in the residual graph • Repeat until you get stuck / ∈ = 1 1 / E ∉ = 20 0 20 20 10 10 10 s t s 20 30 20 t 20 10 20 10 0 20 2 2

  17. Ford-Fulkerson Algorithm • Start with ! / = 0 for all edges / ∈ = • Find an augmenting path @ in the residual graph • Repeat until you get stuck / ∈ = 1 1 / E ∉ = 20 0 20 20 10 10 10 s t s 20 30 20 t 20 10 20 10 0 20 2 2

  18. Ford-Fulkerson Algorithm • Start with ! / = 0 for all edges / ∈ = • Find an augmenting path @ in the residual graph • Repeat until you get stuck / ∈ = 1 1 / E ∉ = 20 10 20 20 10 10 10 s t s 20 30 10 t 20 10 20 10 10 20 2 2

  19. Ford-Fulkerson Algorithm • Start with ! / = 0 for all edges / ∈ = • Find an augmenting path @ in the residual graph • Repeat until you get stuck 1 1 20 10 20 20 10 10 20 s t s 30 10 10 t 20 10 20 10 10 20 2 2

  20. Running Time of Ford-Fulkerson • For integer capacities , ≤ '() ! ∗ augmentation steps • Can perform each augmentation step in U V time • find augmenting path in U V • augment the flow along path in U W • update the residual graph along the path in U W • For integer capacities, FF runs in U V ⋅ '() ! ∗ time • U VW time if all capacities are + 1 = 1 • U VWZ [\] time for any integer capacities ≤ Z [\] • We can speed FF up by choosing smarter augmenting paths • Fattest path: Choose the augmenting path with max capacity • Use modified BFS/MST or similar to find max capacity path • ≤ V ln ' ∗ augmenting paths • U(V _ ln W ln ' ∗ ) total running time • Shortest augmenting paths (“shortest augmenting path”) • U(V _ W) time

  21. Correctness of Ford-Fulkerson • Theorem: ! is a maximum s-t flow if and only if there is no augmenting s-t path in ; 3 • Strong MaxFlow-MinCut Duality: The value of the max s-t flow equals the capacity of the min s-t cut • We’ll prove that the following are equivalent for all ! 1. There exists a cut (#, %) such that '() ! = +(,(#, %) 2. Flow ! is a maximum flow 3. There is no augmenting path in ; 3

  22. Optimality of Ford-Fulkerson • Theorem: the following are equivalent for all ! 1. There exists a cut (#, %) such that '() ! = +(,(#, %) 2. Flow ! is a maximum flow 3. There is no augmenting path in ; 3

  23. Optimality of Ford-Fulkerson • (3 → 1) If there is no augmenting path in ; 3 , then there is a cut (#, %) such that '()(!) = +(,(#, %)

  24. Optimality of Ford-Fulkerson • (3 → 1) If there is no augmenting path in ; 3 , then there is a cut (#, %) such that '()(!) = +(,(#, %) • Sanity check: Is there such a cut in our example? 1 1 20 10 20 20 10 10 20 s 30 10 t s t 10 20 10 20 10 10 20 2 2

  25. Optimality of Ford-Fulkerson • (3 → 1) If there is no augmenting path in ; 3 , then there is a cut (#, %) such that '()(!) = +(,(#, %) • Let # be the set of nodes reachable from > in ; 3 • Let % be all other nodes • Key observation: no edges in ; 3 go from # to % 1 1 20 10 20 20 10 10 20 s 30 10 t s t 10 20 10 20 10 10 20 2 2

  26. Optimality of Ford-Fulkerson • (3 → 1) If there is no augmenting path in ; 3 , then there is a cut (#, %) such that '()(!) = +(,(#, %) • Let # be the set of nodes reachable from > in ; 3 • Let % be all other nodes • Key observation: no edges in ; 3 go from # to % original network • If / is # → % , then ! / = + / A B • If / is % → # , then ! / = 0 t s

  27. � � � � Optimality of Ford-Fulkerson • (3 → 1) If there is no augmenting path in ; 3 , then there is a cut (#, %) such that '()(!) = +(,(#, %) • Let # be the set of nodes reachable from > in ; 3 • Let % be all other nodes • Key observation: no edges in ; 3 go from # to % original network • If / is # → % , then ! / = + / A B • If / is % → # , then ! / = 0 t '() ! = . ! / − . !(/) s 1:7→9 1:9→7 = . ! / 1:7→9 = . + / = +(,(#, %) 1:7→9

  28. � � � � Optimality of Ford-Fulkerson • (3 → 1) If there is no augmenting path in ; 3 , then there is a cut (#, %) such that '()(!) = +(,(#, %) • Let # be the set of nodes reachable from > in ; 3 • Let % be all other nodes • Key observation: no edges in ; 3 go from # to % original network • If / is # → % , then ! / = + / A B • If / is % → # , then ! / = 0 t '() ! = . ! / − . !(/) s 1:7→9 1:9→7 = . ! / 1:7→9 = . + / = +(,(#, %) 1:7→9

  29. � � � � Optimality of Ford-Fulkerson • (3 → 1) If there is no augmenting path in ; 3 , then there is a cut (#, %) such that '()(!) = +(,(#, %) • Let # be the set of nodes reachable from > in ; 3 • Let % be all other nodes • Key observation: no edges in ; 3 go from # to % original network • If / is # → % , then ! / = + / A B • If / is % → # , then ! / = 0 t '() ! = . ! / − . !(/) s 1:7→9 1:9→7 = . ! / No augmenting path in ; 3 implies that we have a maximum cut! 1:7→9 = . + / = +(,(#, %) 1:7→9

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend