850 likes | 1k Views
Consolidation. John H. Vande Vate Spring, 2007. Combining LTL into TL shipments Motivation Models Issues Multi-Stop TL shipments Column Generation Approach. Agenda. Speed LTL shipments are consolidated, routed to intermediate terminals, sorted, … TL shipments can be faster Cost
E N D
Consolidation John H. Vande Vate Spring, 2007 1
Combining LTL into TL shipments Motivation Models Issues Multi-Stop TL shipments Column Generation Approach Agenda 2
Speed LTL shipments are consolidated, routed to intermediate terminals, sorted, … TL shipments can be faster Cost Remember concave cost structure Typically TL is less expensive per unit Motivations 3
Manufacturer/Distributor shipping to regular customers Default Option: LTL shipment to each customer Consolidation: TL several order to LTL terminal near customers LTL from terminal to customers Typically not dynamic: Where is the customer? How large is the order? Context 4
Where do we consolidate (what terminals)? Which customers (orders) do we serve through each terminal? Interrelated Questions 5
Single Plant or origin for supplies We are not allocating customers to production plants. That’s already been done We know our customers Not always the case Can use geographic regions in place of actual customer locations We have adjusted last year’s orders to reflect next year’s projections Assumptions 6
Identify a candidate set of consolidation points (terminals) More choices allows exploring more options More choices slows computation On the order of 30 say Key Decisions Open: Do we use a candidate consol pt or not? One for each candidate consol pt Assign: Does a consol pt serve a customer or not? One for each candidate consol pt and (reasonably close) customer ServeDirect: Do we serve the customer directly via LTL or not? One for each Trucks: Annual (say) number of TL shipments to a candidate consol pt. One for each candidate consol pt. A Model 7
LTL shipments direct to customers Easy to rate these, we’ve been shipping this way Recommend using rating engine to rate them anyways Compute discount rate: DR = (Rated Cost -Actual Cost)/Rated Cost Cost to serve * Serve Direct Truck load shipments to consolidation points Might use $/mile and get distances from PC Miler or CzarLite Might distinguish by region of country Cost per truck * Trucks to Consol Pt. LTL shipments from consol pts to customers These are painful to get Use rating engine to rate historical shipments apply discount rate DR Cost to Serve from Consol pt * Assign to Consol pt Objective: Transportation Cost 8
Elaborations • Consider inventory costs • Handling charges at consol pts • Amortized capital charge or rent for consol pts • Time to customer • … 9
TL shipments cost depends on capacity How many trucks Homogeneous commodity Either weight or cube or floor space drives capacity Translate each customers annual demand into a demand for this unit of capacity, e.g., weight Heterogeneous commodities Treat like homogeneous commodity based on basket of products or Translate each customers annual demand into weight and cube (or floor space) Transport Requirements 10
Every Customer is Served For each customer: ServeDirect + Sum over consol pts Assign = 1 Trucks required to each consol pt For each consol pt (and type of capacity, e.g., weight, cube, floor space) Trucks*Load Factor Sum over customers Assign*Requirement/Capacity Constraints e.g.,Weight of customer’s orders Demand varies. Trucks won’t be full e.g.,Weight limit of Truck 11
Time matters Minimum level of service to consol pt E.g., once per week or thrice per week… Amounts to a fixed (operating cost) for opening a consol pt. ServiceLevelConstraint: For each consol pt Trucks Minimum Service level*Open Frequency e.g.,156 = 52*3 12
Can’t assign a customer to a consol pt unless it is open For each customer and consol pt (within reason) Assign ≤ Open Logic 13
Typical of integer optimization Does strange things to ensure we get the most out of the fixed operating cost associated with opening a consol pt. See assignments bypassing consol pts Adding a nearby customer may force us to use another truck, but adding a smaller one farther away may not Peculiarities 14
Odd Assignments • Reasonable to use recommended consol pts? • Reasonable to use recommended assignments? Plant in FL!?* 15
Suggests the value of dynamic assignments that change from week to week Reasonable to drop integrality of Assign One Project: Implement and evaluate the impact of dynamic assignments Translation to Implementation 16
Can we improve performance by sharing the fixed operating cost across several consol pts Advantage: Allows smaller consol pts Disadvantage: Lower “efficiency” in TL shipments Do you really want to run trucks half empty half way across the country? Stop charges: e.g., $50 per stop Next Step: Multi-Stop Routes 17
Typical Multi-Stop Rt Clustered destinations 18
ServeDirect: Do we serve customer via direct LTL shipments Open: Do we open a candidate consol pt. One for each candidate consol pt. Assign: Do we assign customer to consol pt. One for each customer and (reasonable) consol pt. Trucks: Annual trucks running to consol pt One for each candidate consol pot RouteTrucks: Annual trucks running on multi-stop route One for each candidate multi-stop route RouteVolume: Annual volume at each consol pt that is picked up by each multi-stop route One for each candidate route and stop on the route Model: Key Decisions 19
Volume to a consol pt can be split among direct trucks and (potentially several) multi-stop routes The operating fixed cost imposed by the frequency requirement can be shared among these, i.e., there’s a lower bound on the number of times we “stop” at the consol pt each year. Assumptions 20
Transportation Costs TL to Consol Pts Multi-stop TL to Consol Pts LTL to Consol Pts LTL Direct to Customer Multi-Stop TL costs include Mileage charge Stop charges Objective 21
Every Customer is Served For each customer: ServeDirect + Sum over consol pts Assign = 1 Trucks required to each consol pt For each consol pt (and type of capacity, e.g., weight, cube, floor space) Sum over routes that stop at the consol pt Route Volume + Trucks*Load Factor Sum over customers Assign*Requirement/Capacity Service Level Constraint For each consol pt. Trucks + Sum over routes that stop at the consol pt MultiStopTrucks Minimum Service level*Open Logic: For each customer and consol pt (within reason) Assign ≤ Open Multi-Stop Trucks For each multi-stop route MultiStopTrucks*Load Factor Sum over stops on the route Route Volume Constraints 22
How do we know all the (interesting) routes? How many are there? If we have ~ 50 consol pts and limit routes to say 4 stops, we get 5.5 million potential routes! Problems 23
We can find good routes as we solve the problem Use technique called Column Generation Big Idea: Use Shadow Price information from current solution to identify attractive routes When no new routes are attractive, we’ve found all the interesting ones (well sort of) Good News! 24
Turns out this is a bit more complicated Illustrate the basic concept first Apply to our Multi-Stop problem Column Generation 25
Illustrate with a “pure” Multi-Commodity Flows problem Multi-Commodity Network Flows Network flows with several products (commodities) Joint capacity constraints Total volume of all commodities moving on a link Column Generation 26
2 “commodities” Example MCNF Problem 2 to 4 has lots of capacity Prod 1 from 1 to 5 But it is expensive Prod 1 from 2 to 4 27
Capacity Constraints: Capacity on 1-3 is 1 Either 1 unit of Product 1 or 1 unit of Product 2, not both Can send 0.5 units of Product 1 & 0.5 units of Product 2. How to solve this if there are no capacity constraints? Understand Problem? 28
Variables: For Product 1: Each path from node 1 to node 5 For Product 2: Each path from node 2 to node 4 A “Flows on Paths” Model 2 3 1 4 5 29
Product 1 Demand: Total Flow of Product 1 on paths from 1 to 5 is 10 Product 2 Demand: Total Flow of Product 2 on paths from 2 to 4 is 20 And? Constraints 30
One for each edge in the network (in this case 20) Example: Capacity on 2-3 is 1: Total Flow of Product 1 on paths that use edge from 2 to 3 + Total Flow of Product 2 on paths that use edge from 2 to 3≤ 1 Capacity Constraints 31
Start with a small initial set of paths E.g., just the single-edge path from 1 to 5 for Product 1 and from 2 to 4 for Product 2 Solve the Flows on Paths Model with these paths Use the Dual Prices or Shadow Prices from this solution to determine if any new paths will improve the solution. If there are no better paths, you’re done. Otherwise add the paths to the formulation and repeat. The art & science Column Generation Approach 32
One for each constraint Tell us the change in the objective per unit increase in the right-hand-side of the constraint (it’s a rate, i.e., $/unit) Examples: Product 1 Demand Constraint: The dual price tells us how much more it would cost if we insisted on sending 10 + units of Product 1 from 1 to 5 Capacity Constraint on Edge 2-3: The dual prices tells us how much more (less) it would cost if we increase the capacity on this edge by What does intuition suggest about the signs? The Dual Prices 33
Try It 34
Use the Dual Prices from this solution to determine if any new paths will improve the solution. If the Reduced Cost of a path is negative, it is attractive, i.e., adding it (can) improve the solution. Reduced Cost of a Path? Finding Attractive Paths 35
Sending flow on a new path has two impacts: We have to pay to send the flow We reduce flows on the current paths Computing the cost of sending the flow is easy: Cost of the path * Units sent Cost of the path is? Computing the cost of the corresponding changes in the flows on the current paths turns out to be “easy” too. Reduced Cost 36
Sending flow of Product 1 on the path from 1 to 3 and then 3 to 5 has 4 effects: It incurs the cost to send flow on this path It reduces the requirements for sending flow of Product 1 from node 1 to node 5 on the current paths: What’s the value of this? It reduces the capacity on the edge 1-3 available to the current paths: What’s the value of this? It reduces the capacity on the edge 3-5 available to the current paths: What’s the value of this? Reduced Cost of Path 1-3-5: Cost of using edge 1-3 + Cost of using edge 3-5 Minus Shadow Price for demand of Product 1 Minus Shadow Price for capacity on edge 1-3 Minus Shadow Price for capacity on edge 3-5 Use the Shadow Prices 37
Is Reduced Cost of Path 1-3-5 < 0? Cost of using edge 1-3 + Cost of using edge 3-5 Minus Shadow Price for demand of Product 1 Minus Shadow Price for capacity on edge 1-3 Minus Shadow Price for capacity on edge 3-5 < 0? Reduced Cost of Path: Sum over the edges of Cost of edge – Shadow Price for capacity on edge < Shadow Price for Demand Is Path 1-3-5 Attractive? The net cost (including the value of the consumed capacities) to send a unit of flow The net value 38
Reduced Cost of Path: Sum over the edges of Cost of edge – Shadow Price for capacity on edge < Shadow Price for Demand If we fix the commodity, the right-hand-side is a constant Find a shortest path for this commodity using the modified costs for the edges If the length of this path is less than the Shadow Price for Demand, we have a candidate Greater than the Shadow Price for Demand, there is no candidate path for this commodity Finding Attractive Paths 39
Shadow Price for Demand for Product 1 is 60 (Explain) No edge is at capacity so all shadow prices for capacities are 0 Find a shortest path from 1 to 5, if it is less than 60, it is better than sending flows direct. Try It 40
For Product 1 1-3-5 has cost 5 < 60 so it’s reduced cost is -55. It is attractive, add it. For Product 2 2-1-4 has cost 8 < 70 so it’s reduced cost is -62. It is attractive, add it. Shortest Path 41
The Master Problem now has 4 paths For Product 1: 1-5 with cost 60 and capacity 10 1-3-5 with cost 5 and capacity ? Repeat 1 • For Product 2: • 2-4 with cost 70 and capacity 20 • 2-1-4 with cost 8 and capacity ? 1 42
Uses the new paths to capacity Objective value drops to 1883 Edge 3-5 at capacity. Shadow Price – 55 Modified cost for 3-5 is 1 – (-55) = 56 Edge 2-1 at capacity Shadow Price – 62 Modified cost for 2-1 is 0 – (-62) = 62 Solve the Master Since these edges are at capacity, using them in a new path would force us to give up some of the gains 43
A Most attractive path for Product 1 1-2-5 with cost 12 A Most attractive path for Product 2 2-5-4 with cost 10 Master Problem objective drops to 1823 Shadow Price for capacity on 2-5 is -60 Next Iteration Competing for capacity 44
After 4 iterations, the Objective value in the Master Problem has fallen to 1721 The Shadow Prices for demand are still Product 1: 60 Product 2: 70 The lengths of the Shortest Paths using modified costs are Product 1: 60 Product 2: 70 We have an optimal answer. Etc. 45
Everyone understand the basics of column generation Comment: Computationally this is only different from basic LP in so far as we used the Shortest Path Problem to find an attractive path rather than simply work through a list of variables, “pricing them out” one by one. Questions? 46
Let’s apply Column Generation to solve our Multi-Stop Consolidation Problem Recall Shipping to customers from a single plant Consolidating LTL shipments through consolidation points Serving the consolidation points via TL and/or Multi-Stop TL Modeled as though we knew all the Multi-Stop Routes Use Column Generation to produce the Routes Back to Multi-Stop Routes 47
Transportation Costs TL to Consol Pts Multi-stop TL to Consol Pts LTL to Consol Pts LTL Direct to Customer Multi-Stop TL costs include Mileage charge Stop charges Objective 48
Every Customer is Served For each customer: ServeDirect + Sum over consol pts Assign = 1 Trucks required to each consol pt For each consol pt (and type of capacity, e.g., weight, cube, floor space) Sum over routes that stop at the consol pt Route Volume + Trucks*Load Factor - Sum over customers Assign*Requirement/Capacity 0 Service Level Constraint For each consol pt. Trucks + Sum over routes that stop at the consol pt MultiStopTrucks - Minimum Service level*Open 0 Logic: For each customer and consol pt (within reason) Open - Assign 0 Multi-Stop Trucks For each multi-stop route MultiStopTrucks*Load Factor - Sum over stops on the route Route Volume 0 Two aspects of a route: Trucks & Volume Constraints 49
Issue #1: What columns do we generate? MultiStop Trucks? Route Volume? Both? … Two Issues 50