Download Lecture Notes as Powerpoint Presentation

Document related concepts

Microeconomics wikipedia , lookup

Transcript
Consolidation
John H. Vande Vate
Spring, 2007
1
1
Agenda
• Combining LTL into TL shipments
– Motivation
– Models
– Issues
• Multi-Stop TL shipments
– Column Generation Approach
2
2
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
3
3
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?
4
4
Interrelated Questions
• Where do we consolidate (what
terminals)?
• Which customers (orders) do we serve
through each terminal?
5
5
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
6
6
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.
7
7
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
8
8
Elaborations
•
•
•
•
Consider inventory costs
Handling charges at consol pts
Amortized capital charge or rent for consol pts
Time to customer
• …
9
9
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)
10
10
Constraints
• Every Customer is Served
e.g.,Weight of
Demand– For each customer:
customer’s
consol pts Assign = 1
varies. ServeDirect + Sum over
• Trucks required to eachorders
consol pt
Trucks
– For each consol pt (and type of capacity, e.g.,
won’t be full
weight, cube, floor space)
Trucks*Load Factor  Sum over customers
Assign*Requirement/Capacity
e.g.,Weight
limit of Truck
11
11
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:
e.g.,156 = 52*3
– For each consol pt
Trucks  Minimum Service level*Open
12
12
Logic
• Can’t assign a customer to a consol pt
unless it is open
– For each customer and consol pt (within
reason)
Assign ≤ Open
13
13
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
14
14
Odd Assignments
• Reasonable to use recommended consol pts?
• Reasonable to use recommended
assignments?
Plant in
FL!?*
15
15
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
16
16
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
17
17
Typical Multi-Stop Rt
Clustered
destinations
18
18
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
19
19
Assumptions
• Volume to a consol pt can be split among
direct trucks and (potentially several) multistop 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.
20
20
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
21
21
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 route
MultiStopTrucks*Load Factor  Sum over stops on the route Route Volume
22
22
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!
23
23
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)
24
24
Column Generation
• Turns out this is a bit more complicated
• Illustrate the basic concept first
• Apply to our Multi-Stop problem
25
25
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
26
26
2 “commodities”
Example MCNF Problem
2 to 4 has
lots of
capacity
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
Product 1
10
0
0
0
-10
Product 2
0
20
0
-20
0
Capacities
From\To
But it is
expensive
Prod
1 from 71 to 5
5
0
Prod 1 from 2 to 4
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
27
27
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?
28
28
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
2
3
1
4
5
29
29
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?
30
30
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
31
31
Column Generation Approach
The art &
• Start with a small initial set of paths
science
– 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.
32
32
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?
33
33
Try It
34
34
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?
35
35
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.
36
36
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-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
37
37
Is Path 1-3-5 Attractive?
• Is Reduced Cost of Path 1-3-5 < 0?
Theedge
net3-5
cost
Cost of using edge 1-3 + Cost of using
Minus Shadow Price for demand
of Product the
1 value
(including
The netMinus Shadow Price for capacity on edge 1-3
of the consumed
value Minus Shadow Price for capacity on edge 3-5
capacities) to send
< 0?
• Reduced Cost of Path:
a unit of flow
Sum over the edges of
Cost of edge – Shadow Price for capacity on edge
< Shadow Price for Demand
38
38
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
39
39
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.
40
40
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.
41
41
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
42
42
Solve the Master
• Uses the new paths to capacity
Since these edges
are at capacity, • Objective value drops to 1883
using them in a
new path would• Edge 3-5 at capacity.
force us to give
up some of the
gains
– 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
43
43
Competing
for capacity
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
44
44
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.
45
45
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.
46
46
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
47
47
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
48
48
Two aspects
Constraints
of a route:
Every Customer is Served
Trucks• &
– For each customer:
ServeDirect + Sum over consol pts Assign = 1
Volume
• 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
49
49
Two Issues
• Issue #1: What columns do we generate?
– MultiStop Trucks?
– Route Volume?
– Both?
• …
50
50
Issue #2
• Trucks required to each consol
pt
We won’t
•
write this till
– For each consol pt (and type of capacity, e.g., weight, cube, floor
we have generated the
space)
Sum over routes that stop at theroute!
consol pt But
Route won’t
Volume +we
Trucks*Load Factor
need the Shadow
- Sum over customers Assign*Requirement/Capacity
 0 Price
Service Level Constraint on this to generate the
– For each consol pt.
route?
Trucks +
Sum over routes that stop at the consol pt MultiStopTrucks
- Minimum Service level*Open  0
• Multi-Stop Trucks
– For each multi-stop route
MultiStopTrucks*Load Factor - Sum over stops on the route Route
51
Volume  0
51
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!
52
52
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
If it’s not
“tight”
– For each consol pt.
dropping it
Trucks +
Sum over routes that stop at the consol pt MultiStopTrucks
has no effect.
• Service Level Constraint
- Minimum Service level*Open  0
• Multi-Stop Trucks
– For each multi-stop route
MultiStopTrucks*Load Factor - Sum over stops on the route Route
53
Volume  0
53
We want both the Route Volumes
& the MultiStopTrucks
to price out
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
54
54
Is a RouteVolume Attractive?
• What are the effects
(direct
indirect)
No. We
pay forand
trucks
of increasing a RouteVolume
variable?
and LTL. We will
handle write
the cost
of the
• For clarity we should
that
as
multi-stop route when
RouteVolume[route,
consol]:
the volume
we ensure
Multi-Stop
for the consolidation
point
thatoutis
Trucks
prices
delivered on this route.
• Is there a direct cost for the
RouteVolume[route, consol] variable?
55
55
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?
56
56
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
Just the one
the trucks
• for
Service
Levelrequired
Constraint
at the–consol
point
For each
consol pt.
Trucks +
Sum over routes that stop at the consol pt
MultiStopTrucks
- Minimum Service level*Open  0
57
57
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?
58
58
0 minus the Shadow
Price for
RouteVolume[route,
consol]
trucksReduced
required
at consol point
Cost
AsShadow
long as
service
isn’t
the at
• The
Price
for trucks
required
consol
is the cost of satisfying
driverpoint
there!
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?
59
59
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
60
60
Pricing Out
MultiStop Trucks[route]
• So the direct cost is Route Cost
• What indirect costs?
• What Shadow Prices do we need to
look at?
61
61
MultiStop Trucks[route]
Which Shadow Prices?
• Trucksservice
required
each consol pt
The route provides
toto
each
For each
consol pt (and type of capacity, e.g., weight,
consol –point
it visits!
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
62
62
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?
63
63
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!
64
64
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
65
65
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
66
66
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 shortcut the route and not stop at that Consol
pt.
67
67
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
 0route
Sum over stops on the
• Service Level Constraint
Route Volume /Load Factor
– 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 route
MultiStopTrucks*Load Factor - Sum over stops on the route Route
68
Volume  0
68
Route Volume is specific to the
Constraints
RouteRelevant
AND the Consol
Pt
• Trucks required to each consol pt
But
– For each consol pt (and type of capacity, e.g., weight,
this iscube,
thefloor
sum
over all the
space)
Sum over
stop at the consol pt Route Volume
stops
onroutes
the that
route
+ Trucks*Load Factor
- Sum over customers Assign*Requirement/Capacity  0
• Service Level Constraint
– determine
For each consol
So, to
if pt.
Trucks +volume
one Route
Sum over routes that stop at the consol pt (Sum over
is attractive…
stops on the route Route Volume /Load Factor)
- Minimum Service level*Open  0
69
69
Route Volume Attractive
• We must consider
– What we pay for the Route Volume (later)
This is
– It’s influence on the Trucks required at the
where we
Consol Pt (Shadow Price of the Trucks
replaced
required to carry the weight at the consol
Multi-Stop
pt)
Trucks with
the sum – It’s influence on the Frequency constraint
for every consol pt on the route (Shadow
Prices of these constraints/Load Factor)
70
70
What we pay for Route Volume
• In the objective, we also replaced
Cost per Multi-Stop Truck * Multi-Stop
Trucks
With
Cost 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
71
71
Route Volume Attractive
Three Factors:
1. What we pay for the Route Volume?
Cost per Multi-Stop Truck/Load Factor
2. 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
3. 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
72
72
Route Volume Attractive
Is
The only thing
Route Cost/Load Factor
- Weight Price at Consol Pt that changes from
consol pt to
- Sum of Frequency Prices/Load Factor
< 0?
consol pt
Is
Route Cost
- Load Factor*Weight Price at Consol Pt
- Sum of Frequency Prices
< 0?
73
73
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
Getthese
this from
from
sensitivity info
74
74
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?
75
75
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 B
Number of legs out of B ≤ Number of legs into B
76
76
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
77
77
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)
78
78
Try It
79
79
New Problem
• Sub-Tours:
1
6
5
80
80
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)
81
81
Try It
82
82
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
83
83
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.
84
84
Next Time
• Change in Emphasis:
• This time
– Service level was fixed
– Reduce transport cost
• Next time
– Transport cost “fixed” – Load Driven
– Increase service
85
85