This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: 1 Combinatorial Optimization 1.1 The maxflow problem Let us consider G = ( V,E ) a directed network. We assume that there is some commodity produced at node s (source ) and shipped through the network to node t (sink ). Furthermore, let us define capacity c ij = c e 0 as the upper limit on flow across arc e = ( i,j ). Then, the goal is to find maximum amount of the commodity we can ship from s through the network to t . An example of a network and capacities is given below: 1 s t 2 1 3 3 1 1 1 Maxflow is a classical OR model formulated initially in mid 1950s for application of railway traffic flow. Solved first by L.Ford and D. R.Fulkerson (Cornell OR 1970s) by the labeling algorithm , later refined in many ways. Idea of the algorithm is very natural: start at source and try to push flow through network to t , keeping track of how much we can get to various nodes. E.g., we could start in above example by sending 1 unit of flow (commodity) along arcs ( s, 1), then (1 , 2), then (2 ,t ) to get 1 s t 2 1,1 0,3 0,3 1,1 1,1 0,1 Can we improve this? I.e., can we send more flow from s to t ? Answer is clearly yes as it is easy to eyeball an improvement. More systematically, an improvement can be found by the labeling algorithm. We discuss the algorithm formally in Section ?? . Here, we demonstrate the main idea by going through the first two iterations. Iteration #1 1 s t 2 1,1 0,3 0,3 1,1 1,1 0,1 1 s t 2 1,1 0,3 0,3 1,1 1,1 0,1 ( s + , 3) (2 + , 1) ( * , ) (1 + , 1) 1 s t 2 1,1 1,3 1,3 1,1 1,1 1,1 Flow value = 1 Labeling Flow value = 2 At s , can send 3 units to 2. Hence, label node 2 by ( s + , 3). At 2, can send 1 unit to 1. Hence, label node 1 by (2 + , 1). At 1, can send 1 unit to t . Hence, label node t by (1 + , 1). 1 Note that labeling step identified path s 2 1 t through which an additional unit of flow can be pushed. Iteration #2 1 s t 2 1,1 1,3 1,3 1,1 1,1 1,1 1 s t 2 1,1 1,3 1,3 1,1 1,1 1,1 ( s + , 2) (2 , 1) ( * , ) (1 + , 1) 1 s t 2 1,1 2,3 2,3 1,1 0,1 1,1 Flow value = 2 Labeling Flow value = 3 At s , can send 2 units to 2. Hence, label node 2 by ( s + , 2). At 2, can refuse 1 unit from 1. Hence, label node 1 by (2 , 1). At 1, can send 1 unit to t . Hence, label node t by (1 + , 1). Labeling identified path s 2 1 t through which an additional unit of flow can be sent. Now it looks like were done. Can there be a larger flow? The answer is no . To see this, let us define: Cut separating s and t determined by the partition V = X X , X X = , and s X , t X , as the arc set braceleftbig ( i,j ) E : i X,j X bracerightbig (the forward arcs) and braceleftbig ( j,i ) E : i X,j X bracerightbig (the reverse arcs)....
View
Full
Document
This note was uploaded on 10/07/2010 for the course ORIE 3300 taught by Professor Todd during the Fall '08 term at Cornell University (Engineering School).
 Fall '08
 TODD

Click to edit the document details