Download presentation
Presentation is loading. Please wait.
Published byJanice Cross Modified over 9 years ago
1
CSEP 521 Applied Algorithms Richard Anderson Lecture 8 Network Flow
2
Announcements Reading for this week –6.8, 7.1, 7.2 [7.3-7.4 will not be covered] –Next week: 7.5-7.12 Final exam, March 18, 6:30 pm. At UW. –2 hours –In class (CSE 303 / CSE 305) –Comprehensive 67% post midterm, 33% pre midterm
3
Bellman-Ford Shortest Paths Algorithm Computes shortest paths from a starting vertex Allows negative cost edges –Negative cost cycles identified Runtime O(nm) Easy to code
4
Bellman Ford Algorithm, Version 2 foreach w M[0, w] = infinity; M[0, v] = 0; for i = 1 to n-1 foreach w M[i, w] = min(M[i-1, w], min x (M[i-1,x] + cost[x,w]))
5
Bellman Ford Algorithm, Version 3 foreach w M[w] = infinity; M[v] = 0; for i = 1 to n-1 foreach w M[w] = min(M[w], min x (M[x] + cost[x,w]))
6
Bellman Ford Example Algorithm 2 iv1v1 v2v2 v3v3 v4v4 0 1 2 3 Algorithm 3 iv1v1 v2v2 v3v3 v4v4 0 1 2 3 v1v1 v2v2 v3v3 v4v4 2 1 -3 2 1
7
Finding the longest path in a graph S t 2 2 2 1 -3 -8 2-3 4 4 6 -4
8
Foreign Exchange Arbitrage USDEURCAD USD------0.81.2 EUR1.2------1.6 CAD0.80.6----- USD CADEUR 1.2 0.6 USD CADEUR 0.8 1.6
9
Network Flow
10
Outline Network flow definitions Flow examples Augmenting Paths Residual Graph Ford Fulkerson Algorithm Cuts Maxflow-MinCut Theorem
11
Network Flow Definitions Capacity Source, Sink Capacity Condition Conservation Condition Value of a flow
12
Flow Example u st v 20 30 10
13
Flow assignment and the residual graph u st v 15/20 20/20 15/30 0/10 5/10 u st v 5 15 10 520 15 5
14
Network Flow Definitions Flowgraph: Directed graph with distinguished vertices s (source) and t (sink) Capacities on the edges, c(e) >= 0 Problem, assign flows f(e) to the edges such that: –0 <= f(e) <= c(e) –Flow is conserved at vertices other than s and t Flow conservation: flow going into a vertex equals the flow going out –The flow leaving the source is a large as possible
15
Flow Example a s d b cf e g h i t 20 5 55 5 5 10 20 5 5 5 5 10 30
16
Find a maximum flow a s d b cf e g h i t 25 5 20 30 20 55 5 5 10 20 5 10 5 20 5 5 30 Value of flow: Construct a maximum flow and indicate the flow value
17
Find a maximum flow a s d b cf e g h i t 25 5 20 30 20 55 5 5 10 20 5 10 5 20 5 5 30
18
Augmenting Path Algorithm Augmenting path –Vertices v 1,v 2,…,v k v 1 = s, v k = t Possible to add b units of flow between v j and v j+1 for j = 1 … k-1 u st v 10/20 15/20 10/30 0/10 5/10
19
Find two augmenting paths st 2/5 0/1 3/4 3/3 2/4 1/3 3/3 2/2 3/4 1/3 3/3 2/2 3/3 1/3 2/2 1/3
20
Residual Graph Flow graph showing the remaining capacity Flow graph G, Residual Graph G R –G: edge e from u to v with capacity c and flow f –G R : edge e’ from u to v with capacity c – f –G R : edge e’’ from v to u with capacity f
21
Residual Graph u st v 15/20 20/20 15/30 0/10 5/10 u st v 5 15 10 520 15 5
22
Build the residual graph s d e g h t 3/5 2/4 3/3 1/5 1/1 3/3 2/5 s d e g h t Residual graph:
23
Augmenting Path Lemma Let P = v 1, v 2, …, v k be a path from s to t with minimum capacity b in the residual graph. b units of flow can be added along the path P in the flow graph. u st v 15/20 20/20 15/30 0/10 5/10 u st v 5 15 10 520 15 5
24
Proof Add b units of flow along the path P What do we need to verify to show we have a valid flow after we do this? –
25
Ford-Fulkerson Algorithm (1956) while not done Construct residual graph G R Find an s-t path P in G R with capacity b > 0 Add b units along in G If the sum of the capacities of edges leaving S is at most C, then the algorithm takes at most C iterations
26
Cuts in a graph Cut: Partition of V into disjoint sets S, T with s in S and t in T. Cap(S,T): sum of the capacities of edges from S to T Flow(S,T): net flow out of S –Sum of flows out of S minus sum of flows into S Flow(S,T) <= Cap(S,T)
27
What is Cap(S,T) and Flow(S,T) a s d b cf e g h i t 15/25 5/5 20/20 25/30 20/20 5/5 20/20 0/5 20/20 15/20 10/10 20/20 5/5 20/20 30/30 S={s, a, b, e, h}, T = {c, f, i, d, g, t} 0/5 0/20 0/5 0/10
28
Minimum value cut u st v 40 10
29
Find a minimum value cut s t 6 6 10 7 3 5 36 2 4 5 8 5 4 8
30
MaxFlow – MinCut Theorem Let S, T be a cut, and F a flow –Cap(S,T) >= Flow(S,T) If Cap(S,T) = Flow(S,T) –S, T must be a minimum cut –F must be a maximum flow The amazing Ford-Fulkerson theorem shows that there is always a cut that matches a flow, and also shows how their algorithm finds the flow
31
MaxFlow – MinCut Theorem There exists a flow which has the same value of the minimum cut Proof: Consider a flow where the residual graph has no s-t path with positive capacity Let S be the set of vertices in G R reachable from s with paths of positive capacity st
32
stuv S T What can we say about the flows and capacity between u and v?
33
Max Flow - Min Cut Theorem Ford-Fulkerson algorithm finds a flow where the residual graph is disconnected, hence FF finds a maximum flow. If we want to find a minimum cut, we begin by looking for a maximum flow.
34
Performance The worst case performance of the Ford- Fulkerson algorithm is horrible u st v 1000 1
35
Better methods of finding augmenting paths Find the maximum capacity augmenting path –O(m 2 log(C)) time algorithm for network flow Find the shortest augmenting path –O(m 2 n) time algorithm for network flow Find a blocking flow in the residual graph –O(mnlog n) time algorithm for network flow
36
History Reference: On the history of the transportation and maximum flow problems. Alexander Schrijver in Math Programming, 91: 3, 2002.
37
Problem Reduction Reduce Problem A to Problem B –Convert an instance of Problem A to an instance of Problem B –Use a solution of Problem B to get a solution to Problem A Practical –Use a program for Problem B to solve Problem A Theoretical –Show that Problem B is at least as hard as Problem A
38
Problem Reduction Examples Reduce the problem of finding the Maximum of a set of integers to finding the Minimum of a set of integers Find the maximum of: 8, -3, 2, 12, 1, -6 Construct an equivalent minimization problem
39
Undirected Network Flow Undirected graph with edge capacities Flow may go either direction along the edges (subject to the capacity constraints) u st v 10 5 20 Construct an equivalent flow problem
40
Bipartite Matching A graph G=(V,E) is bipartite if the vertices can be partitioned into disjoints sets X,Y A matching M is a subset of the edges that does not share any vertices Find a matching as large as possible
41
Application A collection of teachers A collection of courses And a graph showing which teachers can teach which courses RA PB CC DG AK 303 321 326 401 421
42
Converting Matching to Network Flow ts
43
Finding edge disjoint paths s t Construct a maximum cardinality set of edge disjoint paths
44
Theorem The maximum number of edge disjoint paths equals the minimum number of edges whose removal separates s from t
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.