nisarg shah
play

Nisarg Shah 373F20 - Nisarg Shah 1 Recap Some more DP Traveling - PowerPoint PPT Presentation

CSC373 Week 5: Network Flow (contd) Nisarg Shah 373F20 - Nisarg Shah 1 Recap Some more DP Traveling salesman problem (TSP) Start of network flow Problem statement Ford-Fulkerson algorithm Running time Correctness


  1. CSC373 Week 5: Network Flow (contd) Nisarg Shah 373F20 - Nisarg Shah 1

  2. Recap • Some more DP ➢ Traveling salesman problem (TSP) • Start of network flow ➢ Problem statement ➢ Ford-Fulkerson algorithm ➢ Running time ➢ Correctness using max-flow, min-cut 373F20 - Nisarg Shah 2

  3. This Lecture • Network flow in polynomial time ➢ Edmonds-Karp algorithm (shortest augmenting path) • Applications of network flow ➢ Bipartite matching & Hall’s theorem ➢ Edge-disjoint paths & Menger’s theorem ➢ Multiple sources/sinks ➢ Circulation networks ➢ Lower bounds on flows ➢ Survey design ➢ Image segmentation 373F20 - Nisarg Shah 3

  4. Ford-Fulkerson Recap • Define the residual graph 𝐻 𝑔 of flow 𝑔 ➢ 𝐻 𝑔 has the same vertices as 𝐻 ➢ For each edge e = (𝑣, 𝑤) in 𝐻 , 𝐻 𝑔 has at most two edges o Forward edge 𝑓 = (𝑣, 𝑤) with capacity 𝑑 𝑓 − 𝑔 𝑓 • We can send this much additional flow on 𝑓 o Reverse edge 𝑓 𝑠𝑓𝑤 = (𝑤, 𝑣) with capacity 𝑔(𝑓) • The maximum “reverse” flow we can send is the maximum amount by which we can reduce flow on 𝑓 , which is 𝑔(𝑓) o We only add each edge if its capacity > 0 373F20 - Nisarg Shah 4

  5. Ford-Fulkerson Recap • Example! Flow 𝑔 Residual graph 𝐻 𝑔 u u 20/20 0/10 𝟑𝟏 𝟐𝟏 20/30 𝟐𝟏 𝟑𝟏 s t s t 0/10 20/20 𝟐𝟏 𝟑𝟏 v v 373F20 - Nisarg Shah 5

  6. Ford-Fulkerson Recap MaxFlow( 𝐻 ): // initialize: Set 𝑔 𝑓 = 0 for all 𝑓 in 𝐻 // while there is an 𝑡 - 𝑢 path in 𝐻 𝑔 : While 𝑄 = FindPath (s, t, Residual( 𝐻, 𝑔 ))!=None: 𝑔 = Augment (𝑔, 𝑄) UpdateResidual( 𝐻 , 𝑔 ) EndWhile Return 𝑔 373F20 - Nisarg Shah 6

  7. Ford-Fulkerson Recap • Running time: ➢ #Augmentations: o At every step, flow and capacities remain integers o For path 𝑄 in 𝐻 𝑔 , bottleneck 𝑄, 𝑔 > 0 implies bottleneck 𝑄, 𝑔 ≥ 1 o Each augmentation increases flow by at least 1 o At most 𝐷 = σ 𝑓 leaving 𝑡 𝑑(𝑓) augmentations ➢ Time for an augmentation: o 𝐻 𝑔 has 𝑜 vertices and at most 2𝑛 edges o Finding an 𝑡 - 𝑢 path in 𝐻 𝑔 takes 𝑃(𝑛 + 𝑜) time ➢ Total time: 𝑃( 𝑛 + 𝑜 ⋅ 𝐷) 373F20 - Nisarg Shah 7

  8. Edmonds-Karp Algorithm • At every step, find the shortest path from 𝑡 to 𝑢 in 𝐻 𝑔 , and augment. Minimum number of edges MaxFlow( 𝐻 ): // initialize: Set 𝑔 𝑓 = 0 for all 𝑓 in 𝐻 // Find shortest 𝑡 - 𝑢 path in 𝐻 𝑔 & augment: While 𝑄 = BFS(s, t, Residual( 𝐻, 𝑔 ))!=None: 𝑔 = Augment (𝑔, 𝑄) UpdateResidual( 𝐻 , 𝑔 ) EndWhile Return 𝑔 373F20 - Nisarg Shah 8

  9. Proof Overview • Overview ➢ Lemma 1: The length of the shortest 𝑡 → 𝑢 path in 𝐻 𝑔 never decreases. o (Proof ahead) ➢ Lemma 2: After at most 𝑛 augmentations, the length of the shortest 𝑡 → 𝑢 path in 𝐻 𝑔 must strictly increase. o (Proof ahead) ➢ Theorem: The algorithm takes 𝑃(𝑛 2 𝑜) time. o Proof: • Length of shortest 𝑡 → 𝑢 path in 𝐻 𝑔 can go from 0 to 𝑜 − 1 • Using Lemma 2, there can be at most 𝑛 ⋅ 𝑜 augmentations • Each takes 𝑃(𝑛) time using BFS. ∎ 373F20 - Nisarg Shah 9

  10. Level Graph • Level graph 𝑀 𝐻 of a directed graph 𝐻 = (𝑊, 𝐹) : ➢ Level: ℓ(𝑤) = length of shortest 𝑡 → 𝑤 path ➢ Level graph 𝑀 𝐻 = (𝑊, 𝐹 𝑀 ) is a subgraph of 𝐻 where we only retain edges 𝑣, 𝑤 ∈ 𝐹 where ℓ 𝑤 = ℓ 𝑣 + 1 o Intuition: Keep only the edges useful for shortest paths 373F20 - Nisarg Shah 10

  11. Level Graph • Level graph 𝑀 𝐻 of a directed graph 𝐻 = (𝑊, 𝐹) : ➢ Level: ℓ(𝑤) = length of shortest 𝑡 → 𝑤 path ➢ Level graph 𝑀 𝐻 = (𝑊, 𝐹 𝑀 ) is a subgraph of 𝐻 where we only retain edges 𝑣, 𝑤 ∈ 𝐹 where ℓ 𝑤 = ℓ 𝑣 + 1 o Intuition: Keep only the edges useful for shortest paths • Property: 𝑄 is a shortest 𝑡 → 𝑤 path in 𝐻 if and only if 𝑄 is an 𝑡 → 𝑤 path in 𝑀 𝐻 . 373F20 - Nisarg Shah 11

  12. Edmonds-Karp Proof • Lemma 1: ➢ Length of the shortest 𝑡 → 𝑢 path in 𝐻 𝑔 never decreases. • Proof: ➢ Let 𝑔 and 𝑔′ be flows before and after an augmentation step, and 𝐻 𝑔 and 𝐻 𝑔 ′ be their residual graphs. Residual graph 𝐻 𝑔 Residual graph 𝐻 𝑔 ′ 373F20 - Nisarg Shah 12

  13. Edmonds-Karp Proof NOT IN SYLLABUS • Lemma 1: ➢ Length of the shortest 𝑡 → 𝑢 path in 𝐻 𝑔 never decreases. • Proof: ➢ Let 𝑔 and 𝑔′ be flows before and after an augmentation step, and 𝐻 𝑔 and 𝐻 𝑔 ′ be their residual graphs. ➢ Augmentation happens along a path in 𝑀 𝐻 𝑔 ➢ For each edge on the path, we either remove it, add an opposite direction edge, or both. ➢ Opposite direction edges can’t help reduce the length of the shortest 𝑡 → 𝑢 path (exercise!). ➢ QED! 373F20 - Nisarg Shah 13

  14. Edmonds-Karp Proof NOT IN SYLLABUS • Lemma 2: ➢ After at most 𝑛 augmentations, the length of the shortest 𝑡 → 𝑢 path in 𝐻 𝑔 must strictly increase. • Proof: ➢ In each augmentation step, we remove at least one edge from 𝑀 𝐻 𝑔 o Because we make the flow on at least one edge on the shortest path equal to its capacity ➢ No new edges are added in 𝑀 𝐻 𝑔 unless the length of the shortest 𝑡 → 𝑢 path strictly increases ➢ This cannot happen more than 𝑛 times! ∎ 373F20 - Nisarg Shah 14

  15. Edmonds-Karp Proof Overview • Overview ➢ Lemma 1: The length of the shortest 𝑡 → 𝑢 path in 𝐻 𝑔 never decreases. ➢ Lemma 2: After at most 𝑛 augmentations, the length of the shortest 𝑡 → 𝑢 path in 𝐻 𝑔 must strictly increase. ➢ Theorem: The algorithm takes 𝑃(𝑛 2 𝑜) time. 373F20 - Nisarg Shah 15

  16. Edmonds-Karp Proof Overview • Note: ➢ Some graphs require Ω(𝑛𝑜) augmentation steps ➢ But we may be able to reduce the time to run each augmentation step • Two algorithms use this idea to reduce run time ➢ Dinitz’s algorithm [1970] ⇒ 𝑃(𝑛𝑜 2 ) ➢ Sleator – Tarjan algorithm [1983] ⇒ 𝑃(𝑛 𝑜 log 𝑜) o Using the dynamic trees data structure 373F20 - Nisarg Shah 16

  17. Network Flow Applications 373F20 - Nisarg Shah 17

  18. Rail network connecting Soviet Union with Eastern European countries ( Tolstoǐ 1930s) 373F20 - Nisarg Shah 18

  19. Rail network connecting Soviet Union with Eastern European countries ( Tolstoǐ 1930s) Min-cut 373F20 - Nisarg Shah 19

  20. Integrality Theorem • Before we look at applications, we need the following special property of the max-flow computed by Ford-Fulkerson and its variants • Observation: ➢ If edge capacities are integers, then the max-flow computed by Ford-Fulkerson and its variants are also integral (i.e. the flow on each edge is an integer). ➢ Easy to check that each augmentation step preserves integral flow 373F20 - Nisarg Shah 20

  21. Bipartite Matching • Problem ➢ Given a bipartite graph 𝐻 = (𝑉 ∪ 𝑊, 𝐹) , find a maximum cardinality matching • We do not know any efficient greedy or dynamic programming algorithm for this problem. • But it can be reduced to max-flow. 373F20 - Nisarg Shah 21

  22. Bipartite Matching 𝑉 𝑊 𝑉 𝑊 • Create a directed flow graph where we… ➢ Add a source node 𝑡 and target node 𝑢 ➢ Add edges, all of capacity 1 : o 𝑡 → 𝑣 for each 𝑣 ∈ 𝑉 , 𝑤 → 𝑢 for each 𝑤 ∈ 𝑊 o 𝑣 → 𝑤 for each 𝑣, 𝑤 ∈ 𝐹 373F20 - Nisarg Shah 22

  23. Bipartite Matching • Observation ➢ There is a 1-1 correspondence between matchings of size 𝑙 in the original graph and flows with value 𝑙 in the corresponding flow network. • Proof: (matching ⇒ integral flow) ➢ Take a matching 𝑁 = 𝑣 1 , 𝑤 1 , … , 𝑣 𝑙 , 𝑤 𝑙 of size 𝑙 ➢ Construct the corresponding unique flow 𝑔 𝑁 where… o Edges 𝑡 → 𝑣 𝑗 , 𝑣 𝑗 → 𝑤 𝑗 , and 𝑤 𝑗 → 𝑢 have flow 1, for all 𝑗 = 1, … , 𝑙 o The rest of the edges have flow 0 ➢ This flow has value 𝑙 373F20 - Nisarg Shah 23

  24. Bipartite Matching • Observation ➢ There is a 1-1 correspondence between matchings of size 𝑙 in the original graph and flows with value 𝑙 in the corresponding flow network. • Proof: (integral flow ⇒ matching) ➢ Take any flow 𝑔 with value 𝑙 ➢ The corresponding unique matching 𝑁 𝑔 = set of edges from 𝑉 to 𝑊 with a flow of 1 o Since flow of 𝑙 comes out of 𝑡 , unit flow must go to 𝑙 distinct vertices in 𝑉 o From each such vertex in 𝑉 , unit flow goes to a distinct vertex in 𝑊 o Uses integrality theorem 373F20 - Nisarg Shah 24

  25. Bipartite Matching • Perfect matching = flow with value 𝑜 ➢ where 𝑜 = 𝑉 = 𝑊 • Recall naïve Ford-Fulkerson running time: ➢ 𝑃((𝑛 + 𝑜) ⋅ 𝐷) , where 𝐷 = sum of capacities of edges leaving 𝑡 ➢ Q: What’s the runtime when used for bipartite matching? • Some variants are faster… ➢ Dinitz’s algorithm runs in time 𝑃 𝑛 𝑜 when all edge capacities are 1 373F20 - Nisarg Shah 25

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