Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 1 Modeling Flows John H. Vande Vate Spring, 2006.

Similar presentations


Presentation on theme: "1 1 Modeling Flows John H. Vande Vate Spring, 2006."— Presentation transcript:

1 1 1 Modeling Flows John H. Vande Vate Spring, 2006

2 2 2 New Project Opportunity Sponsor: CARE and Shelter First Design temporary shelters (tents) Design delivery mechanism Design logistics network Evaluate inventory levels, locations and cost

3 3 3 Agenda Network Flows –Review definition –Simple Transportation Model –Minimum Cost Flow Model Adding Realism –Multiple commodities –Weight, Cube, Linear Cube –Concave Costs –Modeling Time

4 4 4 Reference Network Flows: Theory, Algorithms, and Applications (Hardcover) by Ravindra K. Ahuja, Thomas L. Magnanti, James B. OrlinRavindra K. AhujaThomas L. MagnantiJames B. Orlin

5 5 5 What Are They? Specially Structured Linear Programs Each variable appears in at most two constraints –At most one constraint with a +1 coefficient –At most one constraint with a -1 coefficient Each variable may be constrained by bounds Integer Data => Integer Solutions

6 6 6 Transportation Model Move Goods from Plants to Warehouses Single Commodity! Plants have supplies Warehouses have demands Costs are proportional to volume shipped (this usually isn’t very realistic)

7 7 7 Example 2-3 (p 36) Single Product Two plants with identical production costs Two warehouses Markets allocated to warehouses for now Proportional transportation costs

8 8 8 Example 2-3 cont’d

9 9 9 Transportation Model (AMPL) Set Plants; Set Warehouses; Param Supply {Plants}; Param Demand {Warehouses}; Param Cost{Plants, Warehouses}; Var Flow{Plants, Warehouses}>= 0; minimize TotalCost: sum{p in Plants, w in Warehouses} Cost[p,w]*Flow[p,w]; s.t. WithinSupply{p in Plants}: sum{w in Warehouses} Flow[p, w] <= Supply[p]; s.t. MeetDemand{w in Warehouses}: sum{p in Plants} Flow[p, w] >= Demand[w];

10 10 Minimum Cost Flow Move Goods from Plants to Markets via Warehouses Single Commodity! Plants have supplies Markets have demands Costs are proportional to volume shipped

11 11 Example 2-3 Cont’d

12 12 Minimum Cost Flow Set Locs; Set Edges in Locs cross Locs; param Cost{Edges}; param NetSupply{Locs}; var FlowVol{Edges} >= 0; minimize TotalCost: sum{(f,t) in Edges} Cost[f,t]*FlowVol[f,t]; s.t. PathDefinition{loc in Locs}: sum{(loc, t) in Edges} FlowVol[loc,t] - sum{(f, loc) in Edges} FlowVol[f, loc] = NetSupply[loc];

13 13 Homogenous Product Must be able to interchange positions of product anywhere

14 14 Another New Project Milliken & Co. growing business in Asia looking to explore distribution strategy: Where should it be positioning inventories to serve that region?

15 15 Multi-Commodity Flows Several single commodity models You can’t to turn lead into gold –Conserve flow of each product through each facility Joined by common constraints –Often capacity on lanes –Or modeling cost (through capacity) –…

16 16 Multiple Products

17 17 Conveyance Capacity Weight Limits, e.g., 40,000 lbs Cubic Capacity (53’ trailer) –3,970 cubic ft. –Length 52' 6" –Width 99" –Height 110" Linear Cube (53’ trailer) –If load is not stackable, just floor space

18 18 Conveyance Capacity

19 19 Multiple Products Weight & Cube

20 20 Note No Longer a Network Model Solutions not integral Adding integrality constraints

21 21 Multiple Products Weight & Cube

22 22 Concave Cost Shipment Size Cost Cost per unit decreasing Without special constraints, what will solver do?

23 23 Modeling Economies of Scale Linear Programming –Greedy –Takes the High-Range Unit Cost first! Integer Programming –Add constraints to ensure first things first –Several Strategies

24 24 Convex Combination Weighted Average Total Cost 0 First Break Point Second Break Point 10 20 $22 $27 Mid Point What will the cost be? 1/5th of the way

25 25 Conclusion If the Volume of Activity is a fraction of the way from one breakpoint to the next, the cost will be that same fraction of the way from the cost at the first breakpoint to the cost at the next If Volume = 10 + 20(1- ) Then Cost = 22 + 27(1- )

26 26 Idea Express Volume of Activity as a Weighted Average of Breakpoints Express Cost as the same Weighted Average of Costs at the Breaks Activity = Min Level 0 + Break 1 1 + Break 2 2 + Max Level 3 Cost = Cost at Min Level 0 + Cost at Break 1 1 + Cost at Break 2 2 + Cost at Max Level 3 1 = 0 + 1 + 2 + 3

27 27 Does that Do It? What can go wrong? Volume of Activity Total Cost 0 Minimum Sustainable Level Low Range Cost/Unit Mid-Range Cost/Unit High-Range Cost/Unit First Break Point Second Break Point Maximum Operating Level X

28 28 Role of Integer Variables Ensure we express Activity as a combination of two consecutive breakpoints var InRegion{1..NBreaks} binary; Total Cost 0 Minimum Sustainable Level First Break Point Second Break Point Maximum Operating Level InRegion[1] InRegion[2] InRegion[3]

29 29 Constraints Lambda[2] = 0 unless activity is between –BreakPoint[1] and BreakPoint[2] (Region[2]) or –BreakPoint[2] and BreakPoint[3] (Region[3]) Lambda[2]  InRegion[2] + InRegion[3]; Total Cost Minimum Sustainable Level First Break Point Second Break Point Maximum Operating Level InRegion[1] InRegion[2] InRegion[3] BreakPoint[0] BreakPoint[1] BreakPoint[2] BreakPoint[3]

30 30 We can’t go wrong Volume of Activity 0 Minimum Sustainable Level Low Range Cost/Unit Mid-Range Cost/Unit High-Range Cost/Unit First Break Point Second Break Point Maximum Operating Level X

31 31 Concave Costs

32 32 In AMPL Speak param NBreaks; param BreakPoint{0..NBreaks}; param CostAtBreak{0..NBreaks}; var Lambda{0..NBreaks} >= 0; var Activity; var Cost; s.t. DefineCost: Cost = sum{b in 0..NBreaks} CostAtBreak[b]*Lambda[b]; s.t. DefineActivity: Activity = sum{b in 0..NBreaks} BreakPoint[b]*Lambda[b]; s.t. ConvexCombination: 1 = sum{b in 0..NBreaks}Lambda[b];

33 33 And Activity in One Region InRegion[1] + InRegion[2] + InRegion[3]  1 Why  1? If it is in Region[2]: –Lambda[1]  InRegion[1] + InRegion[2] = 1 –Lambda[2]  InRegion[2] + InRegion[3] = 1 –Other Lambda’s are 0

34 34 AMPL Speak param NBreaks; param BreakPoint{0..NBreaks}; param CostAtBreak{0..NBreaks}; var Lambda{0..NBreaks} >= 0; var Activity; var Cost; s.t. DefineCost: Cost = sum{b in 0..NBreaks} CostAtBreak[b]*Lambda[b]; s.t. DefineActivity: Activity = sum{b in 0..NBreaks} BreakPoint[b]*Lambda[b]; s.t. ConvexCombination: 1 = sum{b in 0..NBreaks}Lambda[b];

35 35 What We Added var InRegion{1..NBreaks} binary; s.t. InOneRegion: sum{b in 1..NBreaks} InRegion[b] <= 1; s.t. EnforceConsecutive{b in 0..NBreaks-1}: Lambda[b] <= InRegion[b] + InRegion[b+1]; s.t. LastLambda: –Lambda[NBreaks] <= InRegion[NBreaks];

36 36 Good News! AMPL offers syntax to “automate” this Read Chapter 14 of Fourer for details > Variable; –Slope[1] before BreakPoint[1] –Slope[2] from BreakPoint[1] to BreakPoint[2] –Slope[3] after BreakPoint[2] –Has 0 cost at activity 0

37 37 Modeling Time Incorporating Schedules into Network Flow Models Example –Given several scheduled pick-ups and deliveries (must pick-up and deliver on- time) –Question: How many vehicles required? –Assumption: One load on a vehicle at a time (No shared capacity)

38 38 Example How many vehicles are required to meet a schedule of departures and returns… No shared capacity

39 39 Network Model

40 40 How to Construct the Routes? Route ending with 3 Who precedes 3? 5 does Route: 5 => 3 Who precedes 5?

41 41 How to Construct the Routes? Route ending with 6 Who precedes 6? 7 does Route: 2 => 7 => 6 Who precedes 7? 2 does Who precedes 2?

42 42 2 nd Example of Time How many vehicles? Common: –Schedule provided –No shared capacity Different: Not just one terminal

43 43 As a Network Problem

44 44 Singapore Electric Generator

45 45 Average Balances Assuming Smooth Demands  Averages (Starting + Ending)/2

46 46 Inventory Balancing Your Checkbook –Previous Balance + Income - Expenses = New Balance Modeling Dynamic Inventory –Starting Inv. + Production - Shipments = Ending Inv.

47 47 Singapore Electric Generator

48 48 Network Model Ending Inv = Calculated Ending Inv Prod. Qty <= Production Limits FinalInv >= MinimumEndingInv Bounds

49 49 Network Model Ending Inv = Calculated Ending Inv How Many constraints is this? Which constraints does Ending Inv for Jan appear in? With what coefficients? Which constraints does Production Qty in February appear in?

50 50 Summary Network Flows –Transportation Supply & Demand –Minimum Cost Flows Supply, Demand &Flow conservation Multicommodity Flows –Conserve flow of each commodity Weight, Cube & Conveyances –Not a network flow model –Non-integral solutions Non-Linear Costs –Requires integer variables Modeling Time

51 51 Next Inventory –Deterministic (predominantly) Pipeline Cycle –Stochastic (later) Safety stock safety


Download ppt "1 1 Modeling Flows John H. Vande Vate Spring, 2006."

Similar presentations


Ads by Google