Lecture 5 – Integration of Network Flow Programming Models Topics • Min-cost flow problem (general model) • Mathematical formulation and problem characteristics • Pure vs. generalized networks 8/14/04 J. Bard and J. W. Barnes Operations Research Models and Methods Copyright 2004 - All rights reserved Min-Cost Flow Problem Example: Distribution problem • Warehouses store a particular commodity in Phoenix, Austin and Gainesville. • Customers - Chicago, LA, Dallas, Atlanta, & New York Supply [ si ] at each warehouse i Demand [ dj ] of each customer j • Shipping links depicted by arcs, flow on each arc is limited to 200 units. • Dallas and Atlanta - transshipment hubs • Per unit transportation cost (cij ) for each arc Problem: Determine optimal shipping plan that minimizes transportation costs 2 Distribution Problem [supply / demand] (shipping cost) [700] arc lower bounds = 0 arc upper bounds = 200 (6) CHIC 2 PHOE (3) [–200] 3 4 (5) ATL (2) (5) AUS 7 5 [–150] (7) (4) (2) (7) [–250] (6) (2) DAL [–300] 6 (4) (3) (5) NY (4) (7) 1 LA [–200] [200] (6) GAINS 8 [200] 3 Notation for Min-Cost Flow Problem In general: [supply/demand] on nodes (shipping cost per unit) on arcs In example: all arcs have an upper bound of 200 nodes labeled with a number 1,...,8 • Must indicate notation that is included in model: (cij) for costs (uij) for capacities/simple upper bounds (gij) for gains • All 3 could be included: (cij, uij, gij) 4 Spreadsheet Input Data arc origin termination lower upper name node node bound bound cost gain xij i j lij uij cij gij i j The origin node is the arc’s tail external flow si or -di The termination node is called the head Supplies are positive and demands are negative 5 Data Entry Using Math Programming/Network Add-in. Network Model TRUE FALSE TRUE FALSE FALSE 100 100 0 60 FALSE FALSE FALSE Change Solve Name: dist_1 Solver: Jensen Network Ph. 1 Iter. 13 Type: Net Type: Linear Total Iter. 15 Goal: Min Sens.: No Comp. Time 00:00 Objective: 5300 Side: No Status Optimal Select the Relink Buttons command from the OR_MM menu before clicking a button. Arc Data and Flows Num. Name 1 Phoe-Chi 2 Phoe-LA 3 Phoe-Dal 4 Phoe-Atl 5 Dal-LA 6 Dal-Chi 7 Dal-NY 8 Dal-Atl 9 Atl-NY 10 Atl-Dal 11 Atl-Chi 12 Aus-LA 13 Aus-Dal 14 Aus-Atl 15 Gain-Dal 16 Gain-Atl 17 Gain-NY Flow Origin Term. Upper 200 1 2 200 200 1 3 200 200 1 4 200 100 1 5 200 0 4 3 200 0 4 2 200 50 4 6 200 50 4 5 200 0 5 6 200 0 5 4 200 0 5 2 200 0 7 3 200 200 7 4 200 0 7 5 200 0 8 4 200 0 8 5 200 200 8 6 200 And here is the solution ... Cost 6 3 3 7 5 4 6 2 5 2 4 7 2 5 6 4 7 Node Data and Balance Constraints Num. Name Fixed Balance 1 Phoe 700 0 2 Chi -200 0 3 LA -200 0 4 Dal -300 0 5 Atl -150 0 6 NY -250 0 7 Aus 200 0 8 Gain 200 0 6 Solution to Distribution Problem [supply / demand] (flow) [-200] [-250] (200) [700] PHOE NY CHIC (50) (100) (200) (200) LA [-300] DAL (50) ATL [-150] (200) [-200] (200) GAINS AUS [200] [200] 7 Sensitivity Report for Max Flow Problem Variable Analysis Num. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Name Phoe-Chi Phoe-LA Phoe-Dal Phoe-Atl Dal-LA Dal-Chi Dal-NY Dal-Atl Atl-NY Atl-Dal Atl-Chi Aus-LA Aus-Dal Aus-Atl Gain-Dal Gain-Atl Gain-NY Value 200. 200. 200. 100. 0. 0. 50. 50. 0. 0. 0. 0. 200. 0. 0. 0. 200. Status Basic Upper Upper Basic Lower Lower Basic Basic Lower Lower Lower Lower Basic Lower Lower Lower Upper Objective Value: 5,300. Reduced Objective Range Range Cost Coefficient Lower Limit Upper Limit 0. 6. --9. 0. 3. --3. -2. 3. --5. 0. 7. 7. --7. 5. -2. --3. 4. 1. --0. 6. 5. 7. 0. 2. 1. 2. 1. 5. 4. --4. 2. -2. --5. 4. -1. --7. 7. 0. --0. 2. 1. 2. 1. 5. 4. --4. 6. 2. --0. 4. 4. ---1. 7. --8. Status Shadow Price Constraint Limit Equality Equality Equality Equality Equality Equality Equality Equality 3. -3. 0. -2. -4. -8. 0. 0. 700. -200. -200. -300. -150. -250. 200. 200. Constraint Analysis Num. Name Value 1 2 3 4 5 6 7 8 Phoe Chi LA Dal Atl NY Aus Gain 0. 0. 0. 0. 0. 0. 0. 0. Range Range Lower Limit Upper Limit 700. -200. -200. -300. -150. -250. 200. 200. 700. -200. -200. -300. -150. -250. 200. 200. 8 Characteristics of Network Flow Problems Conservation of flow at nodes. At each node flow in = flow out. At supply nodes there is an external inflow (positive) At demand nodes there is an external outflow (negative). Flows on arcs must obey the arc’s bounds. lower bound & upper bound (capacity) Each arc has a per unit cost & the goal is to minimize total cost. 9 Distribution Network [external flow] (cost) lower = 0, upper = 200 [700] (3) [-200] 3 [-200] (6) 1 2 6 (4) (7) (3) [-250] (6) (4) (5) (7) (2) (5) 4 5 (2) [-300] (2) (7) (5) (6) [-150] (4) 8 7 [200] [200] Notation 10 LP for Distribution Problem Pure network flow at each node is conserved flow across an arc is conserved no gains or losses can occur on arcs Min 6x 12 + 3x 13 s.t. sit. x12x21 +x 42x41 xx1221 + +x13 x23 x13x23 + +x 43 x43 xx4141 + +x 42x43 + + + 3x 14 + 7x 16 + + 4x 85 + 7x 86 = 200 = x52 x51 Flow 200balance = 700 = 700 x+14 x +24 x+15 x26 constraints = 200 x73 x63 = for200 each of = 300 x + x x x x+43 + x 54 + x54 74 + 84 x46 +45 x47 46 + x24 x64 + x84 = the 300 8 nodes .. . x 84 + x 85 + x 86 = 200 xij 200, for all (i,j ) combinations which are arcs 11 Decision variables are the flow variables xij j i By examining the flow balance constraints we see that xij appears in exactly two of them: xij 0 .. . 0 +1 0 node i 0 1 0 node j (or in the other order if i > j) .. . .. . 0 12 Observations from LP Model • If we add the constraints we obtain zero on the left-hand side so the right-hand side must also be zero for feasibility. • In particular, this means sum of supplies = sum of demands. • Mathematically, we have one redundant constraint. • Must be careful in interpreting shadow prices on the flow balance constraints. • Cannot change only a supply or demand and have model make sense. 13 Pure Minimum Cost Flow Problem G = (N, A) network with node set N and arc set A Indices i, j N denote nodes and (i, j) A denote arcs Originating set of arcs for node i (tails are i) is the forward star of i FS(i) = { (i,j ) : (i,j ) A } Terminating set of arcs for node i is the reverse star of i RS(i) = { (j,i ) : (j,i ) A }. 14 In our example: FS(1) = { (1,2), (1,3), (1,4), (1, 5) } RS(1) = Ø FS(4) = { (4,2), (4,3), (4,5), (4,6) } RS(4) = { (1,4), (5, 4), (7,4), (8,4) } Flow Balance equation: xij – xji = bi (i,j )FS(i ) (j,i )RS(i ) where bi is positive for supply and negative for demand at node i. 15 Pure Min-Cost Flow Problem Indices/sets i, j N (i, j ) A FS(i ) RS(i ) Data nodes arcs forward star of i reverse star of i cij lij unit cost of flow on (i,j ) uij upper bound on flow (i,j ) bi external flow at node i lower bound on flow (i,j ) 16 Decision Variables xij = flow on arc (i,j ) Formulation Min cijxij (i,j)A s.t. xij (i,j )FS(i ) xji = bi, " i N (j,i )RS(i ) lij xij uij, " (i,j ) A 17 Generalized Minimum Cost Network Flow Model • Only one modification to “pure” formulation a possible gain on each arc, denoted by gij • If gij = 0.95 then 100 units of flow leaves node i and 95 units arrive at node j 18 Generalized Formulation Min s.t. cijxij (i,j )A xij (i,j )FS(i ) gjixji = bi, " i N (j,i )RS(i ) lij xij uij, " (i,j )A Note that if gij =1 "(i,j ) A, then we obtain the “pure” model 19 Gains and Losses Might experience 5% spoilage of a perishable good during transportation on a particular arc. gij = 0.95 for the associated arc (i,j). In production of manufacturing formulations we might incur losses due to production defects. In financial examples we can have gains due to currency exchange or gains due to returns on investments. US $ Year 1 Gain = 1.78 Gain = 1.15 Swiss francs Year 2 currency exchange 15% return on investment 20 Pure Network Problems vs. General Network Problems FACT If bi, lij and uij are integer-valued then all extreme points of the feasible region for a pure network flow problem give integer values for xij. (Same cannot be said for generalized network models.) This integer property means that if we use the simplex method to solve a pure network flow problem then we are guaranteed that xij will be integer at optimality. 21 This is critical when we formulate the assignment, shortest path problems, and other network problems. Special cases of the pure min-cost flow model: • Transportation problem • Assignment problem • Shortest path problem • Maximum flow problem 22 Checking for Arbitrage Opportunities 1 2 3 4 5 • US $ Yen(100) CHF D-Mark Brit £ US $ Yen(100) CHF D-Mark Brit £ 1 .95 .69 .58 1.50 1.05 1 .71 .61 1.56 1.45 1.41 1 0.88 2.08 1.72 1.64 1.14 1 2.08 .68 .64 .48 .39 1 The table is to be read as follows: The 1.45 in row 1 column 3 means that $1 US will purchase 1.45 Swiss Francs (CHF). • In addition, there is a 1% fee that is charged on each exchange. 23 Arbitrage Network: Generalized Min-Cost Flow Problem US $ Arc costs: cij = $ equivalent (first column of table) [-1] 1 For example: c14 = 1, c35 = 0.69 Yen 5 2 CHF 3 4 Brit £ D-Mark Each arc has a gain of gij. For example, g12 = (1.05)(0.99) g51 = (1.50)(0.99) 24 Solution to Arbitrage Network US $ Arc gains in optimal cycle: g54 = 2.535 1 5 Brit £ g43 = 0.871 g35 = 0.475 CHF 3 4 D-Mark Start with 13.801 £ 34.986 D-Mark 30.473 CHF 14.475 £ Total cycle gain: = 1.0488 = 4.88% Note (£ $): g51 = 1.485 Remove 0.674 £ $1 leaving 13.801 £ 25