Maximum Flow c v 3/3 4/6 1/1 4/7 t s 3/3 w 1/9 3/5 1/1 3/5 u z 2/2

Slides:



Advertisements
Similar presentations
Max Flow Problem Given network N=(V,A), two nodes s,t of V, and capacities on the arcs: uij is the capacity on arc (i,j). Find non-negative flow fij for.
Advertisements

1 EE5900 Advanced Embedded System For Smart Infrastructure Static Scheduling.
Bioinformatics III1 We will present an algorithm that originated by Ford and Fulkerson (1962). Idea: increase the flow in a network iteratively until it.
MAXIMUM FLOW Max-Flow Min-Cut Theorem (Ford Fukerson’s Algorithm)
Chapter 10: Iterative Improvement The Maximum Flow Problem The Design and Analysis of Algorithms.
1 Maximum Flow w s v u t z 3/33/3 1/91/9 1/11/1 3/33/3 4/74/7 4/64/6 3/53/5 1/11/1 3/53/5 2/22/2 
1 Chapter 7 Network Flow Slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved.
1 Chapter 7 Network Flow Slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved.
CSE 421 Algorithms Richard Anderson Lecture 22 Network Flow.
Feasible Flow Network : A digraph with a nonnegative capacity c(e) on each edge e and a distinguished source node s and sink node t. Flow: A flow f assign.
Maximum Flow CSC 172 SPRING 2002 LECTURE 27. Flow Networks Digraph Weights, called capacities, on edges Two distinct veticies Source, “s” (no incoming.
CSE 421 Algorithms Richard Anderson Lecture 22 Network Flow.
10. Lecture WS 2006/07Bioinformatics III1 V10: Network Flows V10 follows closely chapter 12.1 in on „Flows and Cuts in Networks and Chapter 12.2 on “Solving.
Maximum Flow. p2. Maximum Flow A flow network G=(V, E) is a DIRECTED graph where each has a nonnegative capacity u.
Max Flow – Min Cut Problem. Directed Graph Applications Shortest Path Problem (Shortest path from one point to another) Max Flow problems (Maximum material.
Maximum Flow Problem (Thanks to Jim Orlin & MIT OCW)
Chapter 7 April 28 Network Flow.
15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows.
CSCI-256 Data Structures & Algorithm Analysis Lecture Note: Some slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved. 25.
Chapter 7 May 3 Ford-Fulkerson algorithm Step-by-step walk through of an example Worst-case number of augmentations Edmunds-Karp modification Time complexity.
1 EE5900 Advanced Embedded System For Smart Infrastructure Static Scheduling.
Exercise 6.1 Find the number of different shortest paths from point A to point B in a city with perfectly horizontal streets and vertical avenues as shown.
CSCI-256 Data Structures & Algorithm Analysis Lecture Note: Some slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved. 23.
CSEP 521 Applied Algorithms Richard Anderson Lecture 8 Network Flow.
1 Network Flow CSC401 – Analysis of Algorithms Chapter 8 Network Flow Objectives: Flow networks –Flow –Cut Maximum flow –Augmenting path –Maximum flow.
Fall 2003Maximum Flow1 w s v u t z 3/33/3 1/91/9 1/11/1 3/33/3 4/74/7 4/64/6 3/53/5 1/11/1 3/53/5 2/22/2 
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.
CSE 421 Algorithms Richard Anderson Lecture 21 Shortest Paths and Network Flow.
Flow A flow f for a network N is is an assignment of an integer value f(e) to each edge e that satisfies the following properties: Capacity Rule: For each.
Network Flow What is a network? Flow network and flows
V15: Max-Flow Min-Cut V15 continues chapter 12 in Gross & Yellen „Graph Theory“ Theorem [Characterization of Maximum Flow] Let f be a flow in a.
Maximum Flow c v 3/3 4/6 1/1 4/7 t s 3/3 w 1/9 3/5 1/1 3/5 u z 2/2
Max-flow, Min-cut Network flow.
CS4234 Optimiz(s)ation Algorithms
V12: Network Flows V12 follows closely chapter 12.1 in
Lectures on Network Flows
Richard Anderson Lecture 23 Network Flow
Maximum Flow 9/13/2018 6:12 PM Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015.
CSCI 3160 Design and Analysis of Algorithms Tutorial 8
Max-flow, Min-cut Network flow.
Network Flow 2016/04/12.
Instructor: Shengyu Zhang
Edmonds-Karp Algorithm
Maximum Flow c v 3/3 4/6 1/1 4/7 t s 3/3 w 1/9 3/5 1/1 3/5 u z 2/2
Chapter 7 Network Flow Slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved.
Network Flow and Connectivity in Wireless Sensor Networks
Lecture 10 Network flow Max-flow and Min-cut Ford-Fulkerson method
Richard Anderson Lecture 23 Network Flow
Richard Anderson Lecture 23 Network Flow
Richard Anderson Lecture 21 Network Flow
Max Flow Min Cut, Bipartite Matching Yin Tat Lee
Flow Networks General Characteristics Applications
Flow Networks and Bipartite Matching
Max Flow Problem Given network N=(V,A), two nodes s,t of V, and capacities on the arcs: uij is the capacity on arc (i,j). Find non-negative flow fij for.
V13 Network Flows This part follows closely chapter 12.1 in the book on the right on „Flows and Cuts in Networks and Chapter 12.2 on “Solving the Maximum-Flow.
Algorithms (2IL15) – Lecture 7
Network Flow CSE 373 Data Structures.
EE5900 Advanced Embedded System For Smart Infrastructure
離散數學 DISCRETE and COMBINATORIAL MATHEMATICS
Maximum Flow c v 3/3 4/6 1/1 4/7 t s 3/3 w 1/9 3/5 1/1 3/5 u z 2/2
Network Flow.
Lecture 21 Network Flow, Part 1
Richard Anderson Lecture 22 Network Flow
Lecture 21 Network Flow, Part 1
Maximum Flow Neil Tang 4/8/2008
Network Flow.
Richard Anderson Lecture 22 Network Flow
Presentation transcript:

Maximum Flow c v 3/3 4/6 1/1 4/7 t s 3/3 w 1/9 3/5 1/1 3/5 u z 2/2 11/27/2018 4:18 AM Maximum Flow c v 3/3 4/6 1/1 4/7 t s 3/3 w 1/9 3/5 1/1 3/5 u z 2/2 11/27/2018 4:18 AM Maximum Flow

Outline and Reading Flow networks Maximum flow Flow (§8.1.1) Cut (§8.1.2) Maximum flow Augmenting path (§8.2.1) Maximum flow and minimum cut (§8.2.1) Ford-Fulkerson’s algorithm (§8.2.2-8.2.3) 11/27/2018 4:18 AM Maximum Flow

Flow Network A flow network (or just network) N consists of Example: A weighted digraph G with nonnegative integer edge weights, where the weight of an edge e is called the capacity c(e) of e Two distinguished vertices, s and t of G, called the source and sink, respectively, such that s has no incoming edges and t has no outgoing edges. Example: v 3 6 1 7 t s 3 w 9 5 1 5 u z 2 11/27/2018 4:18 AM Maximum Flow

Flow A flow f for a network N is is an assignment of an integer value f(e) to each edge e that satisfies the following properties: Capacity Rule: For each edge e, 0  f (e)  c(e) Conservation Rule: For each vertex v  s,t where E-(v) and E+(v) are the incoming and outgoing edges of v, resp. The value of a flow f , denoted |f|, is the total flow from the source, which is the same as the total flow into the sink Example: v 1/3 2/6 1/1 3/7 t s 3/3 w 2/9 4/5 1/1 3/5 u z 2/2 11/27/2018 4:18 AM Maximum Flow

Maximum flow of value 10 = 4 + 3 + 3 = 3 + 3 + 4 1/3 A flow for a network N is said to be maximum if its value is the largest of all flows for N The maximum flow problem consists of finding a maximum flow for a given network N Applications Hydraulic systems Electrical circuits Traffic movements Freight transportation 2/6 1/1 3/7 t s 3/3 w 2/9 4/5 1/1 3/5 u z 2/2 Flow of value 8 = 2 + 3 + 3 = 1 + 3 + 4 v 3/3 4/6 1/1 3/7 t s 3/3 w 2/9 4/5 1/1 3/5 u z 2/2 Maximum flow of value 10 = 4 + 3 + 3 = 3 + 3 + 4 11/27/2018 4:18 AM Maximum Flow

Cut c A cut of a network N with source s and sink t is a partition c = (Vs,Vt) of the vertices of N such that s  Vs and t  Vt Forward edge of cut c: origin in Vs and destination in Vt Backward edge of cut c: origin in Vt and destination in Vs Flow f(c) across a cut c: total flow of forward edges minus total flow of backward edges Capacity c(c) of a cut c: total capacity of forward edges Example: c(c) = 24 f(c) = 8 v 3 6 1 7 t s 3 w 9 5 1 5 u z 2 c v 1/3 2/6 1/1 3/7 t s 3/3 w 2/9 4/5 1/1 3/5 u z 2/2 11/27/2018 4:18 AM Maximum Flow

Flow and Cut c(c1) = 12 = 6 + 3 + 1 + 2 c(c2) = 21 = 3 + 7 + 9 + 2 Lemma: The flow f(c) across any cut c is equal to the flow value |f| The flow f(c) across a cut c is less than or equal to the capacity c(c) of the cut Theorem: The value of any flow is less than or equal to the capacity of any cut, i.e., for any flow f and any cut c, we have |f|  c(c) c1 c2 v 1/3 2/6 1/1 3/7 t s 3/3 w 2/9 4/5 1/1 3/5 u z 2/2 c(c1) = 12 = 6 + 3 + 1 + 2 c(c2) = 21 = 3 + 7 + 9 + 2 |f| = 8 11/27/2018 4:18 AM Maximum Flow

Augmenting Path p Df(s,u) = 3 Df(u,w) = 1 Df(w,v) = 1 Df(v,t) = 2 Consider a flow f for a network N Let e be an edge from u to v: Residual capacity of e from u to v: Df(u, v) = c(e) - f (e) Residual capacity of e from v to u: Df(v, u) = f (e) Let p be a path from s to t The residual capacity Df(p) of p is the smallest of the residual capacities of the edges of p in the direction from s to t A path p from s to t is an augmenting path if Df(p) > 0 p v 1/3 2/6 1/1 2/7 t s 3/3 w 2/9 4/5 0/1 2/5 u z 2/2 Df(s,u) = 3 Df(u,w) = 1 Df(w,v) = 1 Df(v,t) = 2 Df(p) = 1 |f| = 7 11/27/2018 4:18 AM Maximum Flow

Flow Augmentation p p Lemma: s v u t z 3/3 2/9 1/1 1/3 2/7 2/6 4/5 0/1 2/5 2/2 p Lemma: Let p be an augmenting path for flow f in network N. There exists a flow f for N of value | f | = |f | + Df(p) Proof: We compute flow f by modifying the flow on the edges of p Forward edge: f (e) = f(e) + Df(p) Backward edge: f (e) = f(e) - Df(p) | f | = 7 Df(p) = 1 w s v u t z 3/3 2/9 0/1 2/3 2/7 2/6 4/5 1/1 3/5 2/2 p | f | = 8 11/27/2018 4:18 AM Maximum Flow

Ford-Fulkerson’s Algorithm Initially, f(e) = 0 for each edge e Repeatedly Search for an augmenting path p Augment by Df(p) the flow along the edges of p A specialization of DFS (or BFS) searches for an augmenting path An edge e is traversed from u to v provided Df(u, v) > 0 Algorithm FordFulkersonMaxFlow(N) for all e  G.edges() setFlow(e, 0) while G has an augmenting path p { compute residual capacity D of p } D   for all edges e  p { compute residual capacity d of e } if e is a forward edge of p d  getCapacity(e) - getFlow(e) else { e is a backward edge } d  getFlow(e) if d < D D  d { augment flow along p } setFlow(e, getFlow(e) + D) setFlow(e, getFlow(e) - D) 11/27/2018 4:18 AM Maximum Flow

Max-Flow and Min-Cut c(c) = | f | = 10 Termination of Ford-Fulkerson’s algorithm There is no augmenting path from s to t with respect to the current flow f Define Vs set of vertices reachable from s by augmenting paths Vt set of remaining vertices Cut c = (Vs,Vt) has capacity c(c) = |f| Forward edge: f(e) = c(e) Backward edge: f(e) = 0 Thus, flow f has maximum value and cut c has minimum capacity Theorem: The value of a maximum flow is equal to the capacity of a minimum cut c v 3/3 4/6 1/1 4/7 t s 3/3 w 1/9 3/5 1/1 3/5 u z 2/2 c(c) = | f | = 10 11/27/2018 4:18 AM Maximum Flow

Example (1) v 0/3 v 0/3 0/6 1/6 0/1 1/1 1/7 t 2/7 t s 0/3 s 1/3 w w 0/9 0/5 0/9 1/5 1/1 0/1 1/5 1/5 u z u z 0/2 1/2 v 0/3 v 1/3 0/6 1/6 0/1 0/1 1/7 t 2/7 t s 1/3 s 2/3 w w 0/9 1/5 0/9 1/5 0/1 0/1 1/5 1/5 u z u z 1/2 1/2 11/27/2018 4:18 AM Maximum Flow

Example (2) two steps v 3/3 v 3/3 3/6 4/6 0/1 1/1 2/7 t 3/7 t s 2/3 s 0/9 1/5 1/9 2/5 0/1 1/5 0/1 1/5 u z u z 1/2 1/2 two steps v 3/3 v 3/3 3/6 4/6 0/1 1/1 2/7 t 4/7 t s 3/3 s 3/3 w w 1/9 2/5 1/9 3/5 0/1 1/1 1/5 3/5 u z u z 1/2 2/2 11/27/2018 4:18 AM Maximum Flow

Analysis In the worst case, Ford-Fulkerson’s algorithm performs |f*| flow augmentations, where f* is a maximum flow Example The augmenting paths found alternate between p1 and p2 The algorithm performs 100 augmentations Finding an augmenting path and augmenting the flow takes O(n + m) time The running time of Ford-Fulkerson’s algorithm is O(|f*|(n + m)) v 0/50 1/50 s 1/1 t p1 1/50 0/50 u v 1/50 1/50 s 0/1 t p2 1/50 1/50 u 11/27/2018 4:18 AM Maximum Flow