11
Consolidation
John H. Vande Vate
Spring, 2007
22
Agenda
• Combining LTL into TL shipments– Motivation– Models– Issues
• Multi-Stop TL shipments– Column Generation Approach
33
Motivations• 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
44
Context• 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?
55
Interrelated Questions
• Where do we consolidate (what terminals)?
• Which customers (orders) do we serve through each terminal?
66
Assumptions
• 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
77
A Model• 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.
88
Objective: Transportation Cost• 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
99
Elaborations• Consider inventory costs
• Handling charges at consol pts
• Amortized capital charge or rent for consol pts
• Time to customer
• …
1010
Transport Requirements
• 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)
1111
Constraints• 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
Demand varies. Trucks
won’t be full
e.g.,Weight of customer’s
orders
e.g.,Weight limit of Truck
1212
Frequency
• 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 ptTrucks Minimum Service level*Open
e.g.,156 = 52*3
1313
Logic
• Can’t assign a customer to a consol pt unless it is open– For each customer and consol pt (within
reason)
Assign ≤ Open
1414
Peculiarities
• 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
1515
Odd Assignments
• Reasonable to use recommended consol pts?• Reasonable to use recommended assignments?
Plant in FL!?*
1616
Translation to Implementation
• 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
1717
Next Step: Multi-Stop Routes• 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
1818
Typical Multi-Stop Rt
Clustered destinations
1919
Model: Key Decisions• 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
2020
Assumptions
• 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.
2121
Objective
• 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
2222
Constraints• 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 routeMultiStopTrucks*Load Factor Sum over stops on the route Route Volume
2323
Problems
• 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!
2424
Good News!
• 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)
2525
Column Generation
• Turns out this is a bit more complicated
• Illustrate the basic concept first
• Apply to our Multi-Stop problem
2626
Column Generation
• 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
2727
Example MCNF Problem
Costs
From\To 1 2 3 4 5
1 0 9 4 8 60
2 0 0 9 70 3
3 0 6 0 4 1
4 7 7 2 0 7
5 3 6 5 7 0
Product 1 10 0 0 0 -10
Product 2 0 20 0 -20 0
Capacities
From\To 1 2 3 4 5
1 0 1 2 1 10
2 1 0 1 20 1
3 1 1 0 2 1
4 2 2 1 0 1
5 1 1 1 2 0
2 “commodities”
Prod 1 from 1 to 5
Prod 1 from 2 to 4
2 to 4 has lots of
capacity
But it is expensive
2828
Understand Problem?• 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?
2929
A “Flows on Paths” Model
• Variables: – For Product 1: Each path from node 1 to node 5
– For Product 2: Each path from node 2 to node 4
1
23
45
3030
Constraints
• 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?
3131
Capacity Constraints
• 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
3232
Column Generation Approach
• 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
3333
The Dual Prices• 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?
3434
Try It
ColumnGeneration.xls
3535
Finding Attractive Paths
• 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?
3636
Reduced Cost
• 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.
3737
Use the Shadow Prices
• 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-5Minus 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
3838
Is Path 1-3-5 Attractive?
• Is Reduced Cost of Path 1-3-5 < 0?Cost of using edge 1-3 + Cost of using edge 3-5Minus 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
The net cost (including the value
of the consumed capacities) to send
a unit of flow
The net value
3939
Finding Attractive Paths• 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
4040
Try It
• 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.
ColumnGeneration.xls
4141
Shortest Path
• 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.
4242
Repeat
• 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 ?
1
– For Product 2:• 2-4 with cost 70 and capacity 20
• 2-1-4 with cost 8 and capacity ?1
4343
Solve the Master
• 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
Since these edges are at capacity, using them in a new path would force us to give up some of the
gains
4444
Next Iteration
• 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
Competing for capacity
4545
Etc.• 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.
4646
Questions?
• 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.
4747
Back to Multi-Stop Routes• 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
4848
Objective
• 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
4949
Constraints• 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 routeMultiStopTrucks*Load Factor - Sum over stops on the route Route Volume 0
Two aspects of a route: Trucks & Volume
5050
Two Issues
• Issue #1: What columns do we generate?– MultiStop Trucks?– Route Volume?– Both?
• …
5151
Issue #2• 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
• Multi-Stop Trucks– For each multi-stop routeMultiStopTrucks*Load Factor - Sum over stops on the route Route
Volume 0
We won’t write this till we have generated the route! But won’t we
need the Shadow Price on this to generate the
route?
5252
A Resolution
• Two Cases:– Case 1: MultiStopTrucks*Load Factor - Sum
over stops on the route Route Volume > 0
– Case 2: MultiStopTrucks*Load Factor - Sum
over stops on the route Route Volume = 0
What’s the shadow price for this constraint in this case?
0!
5353
Case 1: Issue #2• 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
• Multi-Stop Trucks– For each multi-stop routeMultiStopTrucks*Load Factor - Sum over stops on the route Route
Volume 0
If it’s not “tight”
dropping it has no effect.
5454
Case 1: Relevant Constraints• 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
We want both the Route Volumes& the MultiStopTrucks to price out
5555
Is a RouteVolume Attractive?
• What are the effects (direct and indirect) of increasing a RouteVolume variable?
• For clarity we should write that as
RouteVolume[route, consol]: the volume for the consolidation point that is delivered on this route.
• Is there a direct cost for the RouteVolume[route, consol] variable?
No. We pay for trucks and LTL. We will
handle the cost of the multi-stop route when we ensure Multi-Stop
Trucks prices out
5656
Pricing Out RouteVolume[route, consol]
• So there is no direct cost
• Just indirect costs, (like consuming capacity on an edge or satisfying demand in the multi-commodity flow problem)
• What Shadow Prices do we need to look at?
5757
RouteVolume[route, consol] Which Shadow Prices?
• 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
Just the one for the trucks required at the consol point
5858
The Shadow Price
• 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
What happens to cost if we increase this?
5959
RouteVolume[route, consol]Reduced Cost
• The Shadow Price for trucks required at consol point is the cost of satisfying another truck load of demand there– 0 if the service constraint is the driver– Something positive otherwise
• What’s the reduced cost of
RouteVolume[route, consol]?
• When is RouteVolume[route, consol] attractive?
0 minus the Shadow Price for trucks required at consol pointAs long as service isn’t the driver there!
6060
Is MultiStop Trucks Attractive?
• What are the effects (direct and indirect) of increasing a MultiStop Trucks variable?
• For clarity we should write that as
MultiStop Trucks[route]
• Is there a direct cost for the
MultiStop Trucks[route] variable?
Yes. The cost of a truck on that route
6161
Pricing Out MultiStop Trucks[route]
• So the direct cost is Route Cost
• What indirect costs?
• What Shadow Prices do we need to look at?
6262
MultiStop Trucks[route] Which Shadow Prices?
• 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
The route provides service to each consol point it visits!
6363
The Shadow Price
• Service Level Constraint – For each consol pt.
Trucks +
Sum over routes that stop at the consol pt MultiStopTrucks
- Minimum Service level*Open 0
What happens to cost if we increase this?
6464
Reduced Cost of MultiStop Trucks[route]
• Direct Cost – Indirect Costs < 0
• Route Cost – Sum of Shadow Prices for Service on the route < 0
• Route Cost < Sum of Shadow Prices for Service on the route
• The value of the services exceeds the cost of the route!
6565
Is the Route Attractive?
• For each consol pt on the route RouteVolume[route, consol] prices out • 0 < Shadow Price for trucks at consol pt (i.e.,
service isn’t the driver, the trucks are full)• Does MultiStop Trucks[route] price out?• Route Cost < Sum over stops on the route of
Frequency Shadow Prices
ConsolSubProblem.xls
6666
A Resolution
• Two Cases:– Case 1: MultiStopTrucks*Load Factor - Sum
over stops on the route Route Volume > 0
– Case 2: MultiStopTrucks*Load Factor - Sum
over stops on the route Route Volume = 0
6767
Case 2
• MultiStopTrucks = (Sum over stops on the route Route Volume)/ Load Factor
• Eliminate MultiStopTrucks
• Insist each Route Volume be attractive (price out) – Otherwise, we would short-cut the route and not stop at that Consol pt.
6868
Case 2• 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
• Multi-Stop Trucks– For each multi-stop routeMultiStopTrucks*Load Factor - Sum over stops on the route Route
Volume 0
Sum over stops on the route
Route Volume /Load Factor
6969
Relevant Constraints• 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 (Sum over stops on the route Route Volume /Load Factor)
- Minimum Service level*Open 0
Route Volume is specific to the Route AND the Consol Pt
But this is the sum over all the stops on the route
So, to determine if one Route volume
is attractive…
7070
Route Volume Attractive
• We must consider– What we pay for the Route Volume (later)– It’s influence on the Trucks required at the
Consol Pt (Shadow Price of the Trucks required to carry the weight at the consol pt)
– It’s influence on the Frequency constraint for every consol pt on the route (Shadow Prices of these constraints/Load Factor)
This is where we replaced
Multi-Stop Trucks with
the sum
7171
What we pay for Route Volume
• In the objective, we also replaced Cost per Multi-Stop Truck * Multi-Stop
TrucksWithCost per Multi-Stop Truck * (Sum over stops
on the route Route Volume /Load Factor)
• So, each Route Volume bears the full cost of the Multi-Stop Route/Load Factor
7272
Route Volume Attractive
Three Factors:1. What we pay for the Route Volume?
Cost per Multi-Stop Truck/Load Factor2. It’s influence on the Trucks required at the
Consol Pt? Shadow Price of the Trucks required to carry
the weight at the consol pt3. It’s influence on the Frequency constraint for
every consol pt on the route Sum over all the stops on the route of the Shadow Prices of the Frequency constraint/Load Factor
7373
Route Volume Attractive
Is Route Cost/Load Factor - Weight Price at Consol Pt- Sum of Frequency Prices/Load Factor < 0?Is Route Cost- Load Factor*Weight Price at Consol Pt- Sum of Frequency Prices< 0?
The only thing that changes from
consol pt to consol pt
7474
Is the Route Attractive?
Is
Route Cost
- Load Factor*Weight Price at Consol Pt
- Sum of Frequency Prices
< 0
For every Consol Pt on the route?
Get this from sensitivity infoGet these from sensitivity info
7575
How to generate routes?
• Have to decide which consol pts are on the route
• Decision Variables– Is Consol pt first on a multi-stop route?– Does consol pt A follow consol pt B on a
multi-stop route?
7676
Constraints• Limit number of stops (practical)
– At least 2 (so it’s multi-stop)
– At most 4 (say)
Bounds on the total number of legs
• Find 1 Route – One leg out of the origin
• Can’t go from consol pt B to consol pt C unless some leg takes you to BNumber of legs out of B ≤ Number of legs into B
7777
Price Constraints
• For each consol pt on the route
Route Cost < Load Factor * Weight Shadow Price for consol pt + Sum of Frequency Shadow Prices on route
• But we don’t know what’s on the route!
• Define
OnRoute = sum of legs into consol pt (0 or 1)
• Disjunctive Constraint
7878
Price Constraints
• For each consol pt on the route
Route Cost < Load Factor * Weight Shadow Price for consol pt + Sum of Frequency Shadow Prices on route + M*(1-OnRoute)
• Define
OnRoute = sum of legs into consol pt (0 or 1)
7979
Try It
ConsolSubProblem.xls
8080
New Problem
• Sub-Tours:
16
5
8181
Resolutions• Practical:
– Each subsequent stop must be farther from the plant.
• Subtour Elimination (Less Practical)– For each three consol pts, we can choose at most
two legs– For each two consol pts, we can choose at most
one leg– Generally, for each N consol pts, we can choose at
most N-1 legs (but we limited routes to 4 legs)• Dynamic Programming type algorithm or
iterative heuristic (software)
8282
Try It
ConsolSubProblem.xls
8383
Summary
• Solve the Master LP (relax integrality) without routes
• Get Shadow Prices
• Generate Routes (Case 1 & Case 2)
• If there are attractive routes, add them and solve the Master LP again
• If there are no attractive routes, solve to an Integer Optimum
8484
Issues
• Our procedure for generating multi-stop routes does not consider the integer decisions about what consol pts to use.
• Heuristic resolution: At the end, repeat the column generation procedure with the consol pt decisions fixed.
8585
Next Time
• Change in Emphasis:
• This time– Service level was fixed– Reduce transport cost
• Next time– Transport cost “fixed” – Load Driven– Increase service