15.082 and 6.855J
The Goldberg-Tarjan Preflow Push Algorithm for the Maximum Flow Problem
Preflow Push
2
3 2 3 1 4 1 1
5
1 4 2
s
4 3
t
This is the original network, plus reversals of the arcs.
Preflow Push
2
3 2 3 1 4 1 1
5
1 4 2
s
4 3
t
This is the origi
15.082 and 6.855J Network Simplex Animations
Calculating A Spanning Tree Flow
11 -6 2 1 3 6 -4 53 7
3
A tree with supplies and demands. (Assume that all other arcs have a flow of 0) What is the flow in arc (4,3)?
2
4
2
Calculating A Spanning Tree Flow
11
15.082 and 6.855J
Depth First Search
1
Initialize
2 11 pred(1) all Unmark= 0 nodes in N; next := 1 order(next) = Mark node s 1 LIST:= cfw_1 LIST 1 next 1
2
4
8 7
5 3 6
9
Select a node i in LIST
2 11 In depth first search, i is the last node in LIST 3 5 6
15.082 and 6.855J
Cycle Canceling Algorithm
1
A minimum cost flow problem
0 2 30, $7 25 1 25, $5 20, $6 3 0 20, $2 20, $1 5 -25 10, $4 0 4
25, $2
2
The Original Capacities and Feasible Flow
0 2 30,25 25 1 20,0 The feasible flow can be found by solving a m
15.082 and 6.855J Breadth First Search
Breadth first search animation
1
Initialize
2 11 pred(1) all Unmark= 0 nodes in N; next := 1 order(next) = Mark node s 1 LIST:= cfw_1 LIST 1 next
Breadth first search animation
4
8 7
5 3 6
9
1
2
Select a node i in LI
15.082 and 6.855J
The Ford-Fulkerson Augmenting Path Algorithm for the Maximum Flow Problem
Ford-Fulkerson Max Flow
4
2
3 2 1 1
5
1 2
s
3 1
4
2
t
3
This is the original network, plus reversals of the arcs.
2
Ford-Fulkerson Max Flow
4
2
3 2 1 1
5
1 2
s
3 1
15.082 and 6.855J
Flow Decomposition
begin Initialize while y do begin Select(s, y) Search(s, y) if a cycle C is found then do begin let = Capacity(C, y) Add Flow(, C) to cycle flows Subtract Flow(, C) from y. end if a path P is found then do begin let =
15.082 and 6.855J
Depth First Search
Initialize
2 11 p nmark all Ured(1) = 0 nodes in N; next := 1 order(next) = Mark node s 1 LIST:= cfw_1 LIST 1 next 1
2
4
8
5
7 9
3
6
Select a node i in LIST
2 11 In depth first search, i is the last node in LIST 4 8
5
15.082 and 6.855J
Cycle Canceling Algorithm
A minimum cost flow problem
0 2 30, $7 25 1 25, $5 20, $6 3 0 20, $2 20, $1 5 -25 10, $4 0 4
25, $2
2
The Original Capacities and Feasible Flow
0 2 30,25 25 1 20,0 The feasible flow can be found by solving a max
15.082 and 6.855J Breadth First Search
Breadth first search animation
Initialize
2 11 p nmark all Ured(1) = 0 nodes in N; next := 1 order(next) = Mark node s 1 LIST:= cfw_1 LIST 1 next
Breadth first search animation
4
8
5
7 9
3
6
1
2
Select a node i in LI
15.082 and 6.855
Multicommodity Flows 2
1
On the Multicommodity Flow Problem O-D version
K origin-destination pairs of nodes (s1, t1), (s2, t2), , (sK, tK) Network G = (N, A) dk = amount of flow that must be sent from sk to tk. uij = capacity on (i,j) sha
15.082 and 6.855J
Lagrangian Relaxation I never missed the opportunity to remove obstacles in the way of unity.
Mohandas Gandhi
On bounding in optimization
In solving network flow problems, we not only solve the problem, but we provide a guarantee that we
15.082J and 6.855J
Generalized Flows
1
Overview of Generalized Flows
Suppose one unit of flow is sent in (i,j). We relax the assumption that one unit arrives at node j. If 1 unit is sent from i, ij units arrive at j. ij is called the multiplier of (i,j) i
15.082 and 6.855J
Review of Linear Programming
1
Overview
Describe LP and IP min cost flow as an LP Graphical solution Basic feasible solutions. Simplex Method Basic feasible solutions in matrix form Duality Note: this will cover lots of material. We will
15.082 and 6.855
The Minimum Cost Spanning Tree Problem
1
Communications Systems
Consider a communications company, such as AT&T or GTE that needs to build a communication network that connects n different users. The cost of making a link joining i and j
15.082 and 6.855J
The Network Simplex Algorithm
1
Calculating A Spanning Tree Flow
11 -6 2 1 3 6 -4 53 7
3
A tree with supplies and demands. (Assume that all other arcs have a flow of 0) What is the flow in arc (4,3)?
2
4
See the animation.
2
What would h
15.082 and 6.855J
The Successive Shortest Path Algorithm and the Capacity Scaling Algorithm for the Minimum Cost Flow Problem
1
Pseudo-Flows
A pseudo-flow is a "flow" vector x such that 0 x u. Let e(i) denote the excess (deficit) at node i. The infeasibli
15.082 and 6.855J April 1, 2003
The Global Min Cut problem
1
Global Min cut
INPUT: A network G = (N, A) OUTPUT: A cut (S, N\S) such that cap(S, N\S) is minimum. Note: We do not assume that there is a source node s and destination node t. Typically, but no
15.082 and 6.855J March 13, 2003 Max Flows 4
1
Overview of todays lecture
Very quick review of Preflow Push Algorithm The Excess Scaling Algorithm O(n2 log U) non-saturating pushes O(nm + n2 log U) running time. A proof that Highest Preflow Push uses O(n2
15.082 and 6.855J March 11, 2003
Max Flows 3 Preflow-Push Algorithms
1
Review of Augmenting Paths
At each iteration: maintain a flow x Let G(x) be the residual network At each iteration, find a path from s to t in G(x). In the shortest augmenting path alg
15.082 and 6.855J March 6, 2003
Maximum Flows 2
1
Network Reliability
Communication Network What is the maximum number of arc disjoint paths from s to t? How can we determine this number? Theorem. Let G = (N,A) be a directed graph. Then the maximum number
15.082J / 6.855J February 27, 2003
The Label Correcting Algorithm
Overview of the Lecture
A generic algorithm for solving shortest path problems negative costs permitted but no negative cost cycle (at least for now) The use of reduced costs All pair short
15.082 and 6.855J
Shortest Paths 2: Application to lot-sizing R-Heaps
1
Application 19.19. Dynamic Lot Sizing (1)
K periods of demand for a product. The demand is dj in period j. Assume that dj > 0 for j = 1 to K. Cost of producing pj units in period j: a