Advanced Algorithm Design and Analysis (Lecture 8) SW5 fall 2004 Simonas Šaltenis E1-215b

Slides:



Advertisements
Similar presentations
Maximum flow Main goals of the lecture:
Advertisements

1 EE5900 Advanced Embedded System For Smart Infrastructure Static Scheduling.
1 Maximum flow sender receiver Capacity constraint Lecture 6: Jan 25.
1 Review of some graph algorithms Graph G(V,E) (Chapter 22) –Directed, undirected –Representation Adjacency-list, adjacency-matrix Breadth-first search.
MAX FLOW APPLICATIONS CS302, Spring 2013 David Kauchak.
Introduction To Algorithms CS 445 Discussion Session 8 Instructor: Dr Alon Efrat TA : Pooja Vaswani 04/04/2005.
MAXIMUM FLOW Max-Flow Min-Cut Theorem (Ford Fukerson’s Algorithm)
CSE 326: Data Structures Network Flow and APSP Ben Lerner Summer 2007.
The Maximum Network Flow Problem. CSE Network Flows.
Chapter 26 of CLSR Maximum Network Flow by me Dr. M. Sakalli Ch26 of CSLR and many other sources. Marmara Univ. Picture taken from without permission.
1 The Max Flow Problem. 2 Flow networks Flow networks are the problem instances of the max flow problem. A flow network is given by 1) a directed graph.
CS138A Network Flows Peter Schröder. CS138A Flow Networks Definitions a flow network G=(V,E) is a directed graph in which each edge (u,v)
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Spring, 2001 Lecture 4 Tuesday, 2/19/02 Graph Algorithms: Part 2 Network.
1 Maximum flow problems. 2 - Introduction of: network, max-flow problem capacity, flow - Ford-Fulkerson method pseudo code, residual networks, augmenting.
1 Maximum Flow Maximum Flow Problem The Ford-Fulkerson method Maximum bipartite matching.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lecture 4 Tuesday, 10/2/01 Graph Algorithms: Part 2 Network.
The max flow problem
Yangjun Chen 1 Network Flow What is a network? Flow network and flows Ford-Fulkerson method - Residual networks - Augmenting paths - Cuts of flow networks.
Maximum Flows Lecture 4: Jan 19. Network transmission Given a directed graph G A source node s A sink node t Goal: To send as much information from s.
Chapter 27 Maximum Flow Maximum Flow Problem The Ford-Fulkerson method m bipartite matching.
Flows sourcesink s t Flows sourcesink edge-weights = capacities.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2008 Lecture 5 Tuesday, 10/7/08 Graph Algorithms: Part 2.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2006 Lecture 5 Wednesday, 10/4/06 Graph Algorithms: Part 2.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2004 Lecture 5 Wednesday, 10/6/04 Graph Algorithms: Part 2.
CSE 421 Algorithms Richard Anderson Lecture 22 Network Flow.
1 Ford-Fulkerson method Ford-Fulkerson(G) f = 0 while( 9 simple path p from s to t in G f ) f := f + f p output f Runs in time O(|f max | |E|) where f.
Maximum Flow Maximum Flow Problem The Ford-Fulkerson method
Assignment 4. (Due on Dec 2. 2:30 p.m.) This time, Prof. Yao and I can explain the questions, but we will NOT tell you how to solve the problems. Question.
Flow Networks Formalization Basic Results Ford-Fulkerson Edmunds-Karp Bipartite Matching Min-cut.
Chapter 26 Maximum Flow How do we transport the maximum amount data from source to sink? Some of these slides are adapted from Lecture Notes of Kevin.
Maximum Flow Chapter 26.
Advanced Algorithm Design and Analysis (Lecture 13) SW5 fall 2004 Simonas Šaltenis E1-215b
Yangjun Chen 1 Network Flow What is a network? Flow network and flows Ford-Fulkerson method - Residual networks - Augmenting paths - Cuts of flow networks.
Announcements Network Flow today, depending on how far we get, we will do String Matching on Wednesday Then Review for Final next Monday This week’s lab.
Single Source Shortest-Path: The General Case (with negative edges) Bellman-Ford algorithm. Iteratively relax all edges |V|-1 times Running time? O(VE).
CS 473Lecture ?1 CS473-Algorithms I Lecture ? Network Flows Finding Max Flow.
MAX FLOW APPLICATIONS CS302, Spring 2012 David Kauchak.
Max Flow – Min Cut Problem. Directed Graph Applications Shortest Path Problem (Shortest path from one point to another) Max Flow problems (Maximum material.
CS 473Lecture ?1 CS473-Algorithms I Lecture ? Network Flows Flow Networks & Flows.
Maximum Flow Chapter 26. Flow Concepts Source vertex s – where material is produced Sink vertex t – where material is consumed For all other vertices.
CS223 Advanced Data Structures and Algorithms 1 Maximum Flow Neil Tang 3/30/2010.
Algorithm Design and Analysis (ADA)
1 EE5900 Advanced Embedded System For Smart Infrastructure Static Scheduling.
Flow Networks Ching-Chen Huang Hsi-Yue Hsiao. CONTENTS Network flows on directed acyclic graphs Ford-fulkerson Algorithms -Residual networks.
CSEP 521 Applied Algorithms Richard Anderson Lecture 8 Network Flow.
CSE 421 Algorithms Richard Anderson Lecture 22 Network Flow.
Theory of Computing Lecture 12 MAS 714 Hartmut Klauck.
A directed graph G consists of a set V of vertices and a set E of arcs where each arc in E is associated with an ordered pair of vertices from V. V={0,
Maximum Flow Problem Definitions and notations The Ford-Fulkerson method.
Maximum Flow - Anil Kishore Graph Theory Basics. Prerequisites What is a Graph Directed, Weighted graphs How to traverse a graph using – Depth First Search.
Instructor Neelima Gupta Edited by Divya Gaur(39, MCS '09) Thanks to: Bhavya(9), Deepika(10), Deepika Bisht(11) (MCS '09)
The Maximum Network Flow Problem
TU/e Algorithms (2IL15) – Lecture 8 1 MAXIMUM FLOW (part II)
Maximum Flow Chapter 26.
The Maximum Network Flow Problem
Maximum Flow Chapter 26.
Data Structures and Algorithms (AT70. 02) Comp. Sc. and Inf. Mgmt
Network flow problem [Adapted from M.Chandy].
Richard Anderson Lecture 23 Network Flow
Lecture 22 Network Flow, Part 2
Network Flows and Matching (Supplementary)
Lecture 10 Network flow Max-flow and Min-cut Ford-Fulkerson method
Flow Networks Topics Flow Networks Residual networks
Network Flows and Matching (Supplementary)
Flow Networks General Characteristics Applications
Flow Networks and Bipartite Matching
Algorithms (2IL15) – Lecture 7
Lecture 21 Network Flow, Part 1
Lecture 22 Network Flow, Part 2
Advanced Graph Homer Lee 2013/10/31.
Presentation transcript:

Advanced Algorithm Design and Analysis (Lecture 8) SW5 fall 2004 Simonas Šaltenis E1-215b

AALG, lecture 8, © Simonas Šaltenis, Maximum flow Main goals of the lecture: to understand how flow networks and maximum flow problem can be formalized; to understand the Ford-Fulkerson method and to be able to prove that it works correctly; to understand the Edmonds-Karp algorithm and the intuition behind the analysis of its worst-case running time. to be able to apply the Ford-Fulkerson method to solve the maximum-bipartite-matching problem.

AALG, lecture 8, © Simonas Šaltenis, Flow networks What if weights in a graph are maximum capacities of some flow of material? Pipe network to transport fluid (e.g., water, oil) Edges – pipes, vertices – junctions of pipes Data communication network Edges – network connections of different capacity, vertices – routers (do not produce or consume data just move it) Concepts (informally): Source vertex s (where material is produced) Sink vertex t (where material is consumed) For all other vertices – what goes in must go out Goal: maximum rate of material flow from source to sink

AALG, lecture 8, © Simonas Šaltenis, Formalization How do we formalize flows? Graph G=(V,E) – a flow network Directed, each edge has capacity c(u,v)  0 Two special vertices: source s, and sink t For any other vertex v, there is a path s…v…t Flow – a function f : V V R Capacity constraint: For all u, v  V: f(u,v) c(u,v) Skew symmetry: For all u, v  V: f(u,v) = –f(v,u) Flow conservation: For all u  V – {s, t}:

AALG, lecture 8, © Simonas Šaltenis, Cancellation of flows Do we want to have positive flows going in both directions between two vertices? No! such flows cancel (maybe partially) each other Skew symmetry – notational convenience s t 9 a b c d s t 9 a b c d

AALG, lecture 8, © Simonas Šaltenis, Maximum flow What do we want to maximize? Value of the flow f: We want to find a flow of maximum value! s t 9 a b c d

AALG, lecture 8, © Simonas Šaltenis, Augmenting path Idea for the algorithm: If we have some flow,… …and can find a path p from s to t (augmenting path), such that there is a > 0, and for each edge (u,v) in p we can add a units of flow: f(u,v) + a c(u,v) Then just do it, to get a better flow! Augmenting path in this graph? s t 9 a b c d

AALG, lecture 8, © Simonas Šaltenis, The Ford-Fulkerson method Ford-Fulkerson(G,s,t) 01 initialize flow f to 0 everywhere 02 while there is an augmenting path p do 03 augment flow f along p 04 return f Sketch of the method: How do we find augmenting path? How much additional flow can we send through that path? Does the algorithm always find the maximum flow?

AALG, lecture 8, © Simonas Šaltenis, Residual network How do we find augmenting path? It is any path in residual network: Residual capacities: c f (u,v) = c(u,v) – f(u,v) Residual network: G f =(V,E f ), where E f = {(u,v)  V V : c f (u,v) > 0} What happens when f(u,v) < 0 (and c(u,v) = 0)? Observation – edges in E f are either edges in E or their reversals: |E f | 2|E| Compute residual network: s t 9 a b c d

AALG, lecture 8, © Simonas Šaltenis, Residual capacity of a path How much additional flow can we send through an augmenting path? Residual capacity of a path p in G f : c f (p) = min{c f (u,v): (u,v) is in p} Doing augmentation: for all (u,v) in p, we just add this c f (p) to f(u,v) (and subtract it from f(v,u)) Resulting flow is a valid flow with a larger value. What is the residual capacity of the path (s,a,b,t)?

AALG, lecture 8, © Simonas Šaltenis, The Ford-Fulkerson method Ford-Fulkerson(G,s,t) 01 for each edge (u,v) in G.E do 02 f(u,v)  f(v,u)  0 03 while there exists a path p from s to t in residual network G f do 04 c f = min{c f (u,v): (u,v) is in p} 05 for each edge (u,v) in p do 06 f(u,v)  f(u,v) + c f 07 f(v,u)  -f(u,v) 08 return f The algorithms based on this method differ in how they choose p in step 03.

AALG, lecture 8, © Simonas Šaltenis, Cuts A cut is a partition of V into S and T = V – S, such that s S and t T The net flow (f(S,T)) through the cut is the sum of flows f(u,v), where u S and v T The capacity (c(S,T)) of the cut sum of capacities c(u,v), where u S and v T Minimum cut – a cut with the smallest capacity of all cuts |f|= f(S,T) Does it always find the maximum flow? s t 9 a b c d

AALG, lecture 8, © Simonas Šaltenis, Correctness of Ford-Fulkerson Max-flow min-cut theorem: If f is the flow in G, the following conditions a re equivalent: 1. f is a maximum flow in G 2. The residual network G f contains no augmenting paths 3. |f| = c(S,T) for some cut (S,T) of G We have to prove three parts: From this we have 1.2., which means that the Ford-Fulkerson method always correctly finds a maximum flow

AALG, lecture 8, © Simonas Šaltenis, Worst-case running time What is the worst-case running time of this method? Let’s assume integer flows. Each augmentation increases the value of the flow by some positive amount. Augmentation can be done in O(E). Total worst-case running time O(E|f*|), where f* is the max-flow found by the algorithm. Can we run into this worst-case? Lesson: how an augmenting path is chosen is very important!

AALG, lecture 8, © Simonas Šaltenis, Edmonds-Karp algorithm Take shortest path (in terms of number of edges) as an augmenting path – Edmonds-Karp algorithm How do we find such a shortest path? Running time O(VE 2 ), because the number of augmentations is O(VE) To prove this we need to prove that: The length of the shortest path does not decrease Each edge can become critical at most ~ V/2 times. Edge (u,v) on an augmenting path p is critical if it has the minimum residual capacity in the path: c f (u,v) = c f (p)

AALG, lecture 8, © Simonas Šaltenis, Non-decreasing shortest paths Why does the length of a shortest path from s to any v does not decrease? Observation: Augmentation may add some edges to residual network or remove some. Only the added edges (“shortcuts”) may potentially decrease the length of a shortest path. Let’s supose (s,…,v) – the shortest decreased- length path and let’s derive a contradiction

AALG, lecture 8, © Simonas Šaltenis, Number of augmentations Why each edge can become critical at most ~V/2 times? Scenario for edge (u,v): Critical the first time: (u,v) on an augmenting path Disappears from the network Reappears on the network: (v,u) has to be on an augmenting path We can show that in-between these events the distance from s to u increased by at least 2. This can happen at most V/2 times We have proved that the running time of Edmonds-Karp is O(VE 2 ).

AALG, lecture 8, © Simonas Šaltenis, Example of Edmonds-Karp Run the Edmonds-Karp algorithm on the following graph: s t 9 a b c d

AALG, lecture 8, © Simonas Šaltenis, Multiple sources or sinks What if we have more sources or sinks? Augment the graph to make it with one source and one sink! s1s1 t1t1 s2s2 t2t2 s3s  st 9 s1s1 t1t1 s2s2 t2t2 s3s    

AALG, lecture 8, © Simonas Šaltenis, Application of max-flow Maximum bipartite matching problem Matching in a graph is a subset M of edges such that each vertex has at most one edge of M incident on it. It puts vertices in pairs. We look for maximum matching in a bipartite graph, where V = L  R, L and R are disjoint and all edges go between L and R Dating agency example: L – women, R – men. An edge between vertices: they have a chance to be “compatible” (can be matched) Do as many matches between “compatible” persons as possible

AALG, lecture 8, © Simonas Šaltenis, Maximum bipartite matching How can we reformulate this problem to become a max-flow problem? What is the running time of the algorithm if we use the Ford-Fulkerson method?