Upload
silvester-rich
View
215
Download
0
Embed Size (px)
Citation preview
11
ISyE 6203Location
John H. Vande Vate
Spring 2012
22
Agenda• Context• Academic Development with Euclidean Distance
– Single location– Several locations
• Discussion of Distances– Euclidean– Surface of the Earth– Over-the-road
• Making it Practical– Discussion of Frequency & Pool Points– Line Haul & Delivery
• Long Digression on Traveling Salesman Problem
• Apply to Our Company• More complex model
33
Context• We will not discuss Site Selection
– Zoning– Road access– Utilities– Tax incentives– Labor– ….
• We will focus on– Guidelines for the site selection process– Number and general location of facilities– Which county or region– Part of Supply Chain design exercise
44
1-D Academic Model
• Problem: Locate a point x on the line to minimize the total (weighted) distance to a fixed set of customer locations xi
• di(x) =
• Min or Min
ii xxxx 2)(
i
i xd )( i
ii xdw )(
55
1-D Solution
• Where to put x?
• What kind of function is |x – xi|?
• What kind of function is |x – xi|?
• So? • What is a local minimum?
• What if we have 2 points x1 and x2?
66
Academic Model
• Problem: Locate a point (x,y) on the plane to minimize the total (weighted) distance to a fixed set of customer locations (xi,yi)
• di(x,y) =
• Min or Min
2 2( ) ( )i ix x y y
( , )ii
d x y ( , )i ii
wd x y
77
Convexity The Hessian of d(x,y), describing the local
curvature of the function, is
Its first principal minors are
Its second principal minor is 0 As these are all non-negative, d is Convex
2
2
2 2 3/2
( ) ( )( )
( )( ) ( )
(( ) ( ) )
b y a x b y
a x b y a x
a x b y
2 2
2 2 3/2 2 2 3/2
( ) ( )
(( ) ( ) ) (( ) ( ) ) and b y a x
a x b y a x b y
88
Solution
• The partials of
2 2
2 2
2( ) ( )( , ) 12 ( , )( ) ( )
( )( , )( , )
( , ) ( , ) ( ) ( )
i i
ii i
i
i
i i ii i
x x x xf x yx d x yx x y y
i i
y yf x yy d x y
i
f x y d x y x x y y
are
and
99
Solution• So a local minimum is a global minimum and
we just need to find (x, y) that satisfies
• Solving for x and y yields
( , )
( , )
( , ) 0
( , ) 0
i
i
i
i
x xfx d x y
i
y yfy d x y
i
x y
x y
/ ( , )
1/ ( , )
/ ( , )
1/ ( , )
i ii
ii
i ii
ii
x d x y
d x y
y d x y
d x y
x
y
1010
Solution• Note that if all the distances di(x,y) are equal
reduces to
But this is rarely the answer
/ ( , )
1/ ( , )
/ ( , )
1/ ( , )
i ii
ii
i ii
ii
x d x y
d x y
y d x y
d x y
x
y
and i i
i i
x y
n nx x y y
1111
Simple Example
x (X1, Y1) = (1, 0)
x (X2, Y2) = (0, 1)
• Solution: y = 1 – x so long as 0 ≤ x ≤ 1
• So (½, ½) is a solution in this case
2222
2222
)1(
1
)1(
)1()1(
1
2222
),(
),(
)1()1(),(
yx
y
yx
yy
yx
x
yx
xx
yxf
yxf
yxyxyxf
1212
General Case: Finding x and y • Start at
• Compute the distances di = di(x,y)
• Compute the new values of x and y
• repeat
and i i
i i
x y
n nx x y y
/
1/
/
1/
i ii
ii
i ii
ii
x d
d
y d
d
x
y
1313
Example• Using Euclidean Distance from Our Company
stores97 83708 -88.20 41.45 8 0.12 7.51 0.13 7.02 0.14 98 38101 -97.26 25.54 11 0.09 11.19 0.09 11.43 0.09 99 33909 -80.09 26.04 18 0.06 16.68 0.06 15.96 0.06
100 35813 -86.35 34.42 9 0.12 7.26 0.14 6.42 0.16 Average -94.63 36.39 Total Distance Total 1/Distance Total Distance Total 1/Distance Total Distance Total 1/Distance
1,439 10.74 1,425 10.39 1,419 10.56 Longitude Latitude Longitude Latitude Longitude Latitude
-93.42 36.06 -92.59 35.97 -92.06 35.95 Iteration 1 Iteration 2 Initial Iteration
1515
Academic Model: Several Facilities
• Problem: Locate m points (xj,yj) on the plane to minimize the total (weighted) distance to the set of customer locations (ac,bc) that each point serves. Each customer must be served by some point
• dc(xj,yj) =
• zcj = 1 if customer c is assigned to point j,
0 otherwise• Min • s.t. Each customer assigned to one of the points
2 2( ) ( )c c j c jw a x b y
,
( , )cj c j jc j
z d x y
1616
Single Sourcing
• Only 1 Point can serve a Customer• Each Customer assigned to 1 point
for each Customer c
• Zcj {0, 1} Binary
1cjj
z
1717
Split Sourcing Model• Dc = Demand at Customer c
• dc(xj,yj) =
• wc typically Dc
• zcj = Fraction of demand at Customer c supplied by point j
for each Customer c• zcj non-negative, but not necessarily binary
• zcj Dc is the volume supplied to customer c from point j• Only makes sense if there is some other constraint, e.g., capacity of the
facilities that forces this
2 2( ) ( )c c c j c jD w a x b y
1cjj
z
1818
Split Sourcing Model• Dc = Demand at Customer c
• dc(xj,yj) =
• wc typically Dc
• zcj = Fraction of demand at Customer c supplied by point j
for each Customer c• Facility capacity constraints
2 2( ) ( )c c c j c jD w a x b y
1cjj
z
CapacityFacility cc
cjDz
1919
Simple Versions
• If we know where the points should be located, how can we solve the problem?
• If we know which customers should be assigned to which points, how can we solve the problem?
2020
Agenda
• Team Presentations– Challenge 3– Challenge 4
• Location– Making the ALT Heuristic Practical
2121
2121
Challenge 3
• Determine the appropriate mode and shipping quantity from Green Bay to Store #2 in Los Angeles.
• Briefly describe the thinking behind your calculations
• Due Jan 31st
2222
Challenge 3TL 1,455.50$ Min Charge 75.02$ Discount 70%
Rate Best Cost 9,119$
From To ($/CWT) At Min of Range Discounted Transport CostCycle Inventory
Cost Pipeline Cost Total Cost
Shipment Quantity (units) Rate Range
- 146 75.02$ Min Charge EOQ below147 404 51.06$ 75.05$ 6,382$ 834$ 1,903$ 9,119$ 30 At 51.06/CWT405 500 206.77$ 62.03$ First Shoulder EOQ below501 851 41.35$ 207.18$ 62.16$ 5,169$ 2,807$ 1,903$ 9,879$ 101 At 41.35/CWT852 1,000 352.14$ 105.64$ Second Shoulder EOQ below
1,001 1,681 35.21$ 352.49$ 105.75$ 4,402$ 5,586$ 1,903$ 11,891$ 201 At 35.21/CWT1,682 2,000 592.21$ 177.66$ Third Shoulder EOQ below2,001 4,346 29.61$ 592.50$ 177.75$ 3,701$ 11,144$ 1,903$ 16,748$ 401 At 29.61/CWT4,347 5,000 1,287.15$ 386.14$ Fourth Shoulder EOQ below5,001 8,200 25.74$ 1,287.40$ 386.22$ 3,218$ 27,818$ 1,903$ 32,939$ 1,001 At 25.74/CWT8,201 10,000 2,111.15$ 633.35$ Fifth Shoulder EOQ below
10,001 13,819 21.11$ 2,111.36$ 633.41$ 2,639$ 55,607$ 1,903$ 60,150$ 2,001 At 21.11/CWT13,820 30,000 2,917.46$ 875.24$ Truckload EOQ below
Annual Weight From Green Bay to Store #212,500 lbs
300$ $/unit18.5% Inventory Carrying %
Transit timesTL 4 daysLTL 5 days
Weight (lbs)
With Fuel Surcharge and discount
Shipment Quantity of 30 (again just above the maximum quantity that incurs the min charge) is best
2323
2323
Challenge 4
• Roll this strategy out to all Stores. Determine the appropriate mode and shipping quantity to every store
• Remember to keep it practical. • Briefly describe the thinking behind your
calculations• What are the impacts on SPEED, ROIC and
Margin?• What would you do next as VP of SC?• Due Jan 31st
2424
Challenge 4
• Start with a few “representative” stores distributed across the country
• Develop some insight from thatClass 70
Discount 70% Longitude Latitude ZIPFuel Surcharge 24.2% -88.074 44.491 54304 Annual Weight to Store 12,500 Annual Value To Store 750,000$ Average Value per Lb 60.00$
Store Number ZIP Location Longitude LatitudeMin
Charge500 lb Rate
1000 lb Rate
2000 lb Rate
5000 lb Rate
10000 lb Rate TL Rate
Min Charge Total Cost
Total Cost @ 500 lbs
1000 lb Total Cost
2000 lb Total Cost
5000 lb Total Cost
10000 lb Total Cost
TL Total Cost
Min Total Cost
1 10199 NEW YORK, NY -73.58 40.47 59.94$ 173.82$ 257.80$ 457.63$ 907.47$ 1,626.77$ 1,906.44$ 5,855$ 7,120$ 8,773$ 13,960$ 30,019$ 57,533$ 167,294$ 5,855$ 2 90052 LOS ANGELES, CA -118.24 33.56 75.02$ 206.77$ 352.14$ 592.21$ 1,287.15$ 2,111.15$ 4,846.72$ 7,198$ 7,944$ 9,952$ 14,801$ 30,968$ 58,139$ 168,519$ 7,198$ 3 83708 BOISE, ID -87.38 41.53 65.03$ 178.55$ 304.04$ 511.28$ 1,111.65$ 1,822.76$ 2,801.72$ 6,329$ 7,239$ 9,351$ 14,296$ 30,529$ 57,778$ 167,667$ 6,329$ 4 38101 MEMPHIS, TN -95.21 29.58 39.64$ 139.04$ 238.24$ 442.20$ 823.63$ 1,476.99$ 1,210.48$ 4,811$ 6,251$ 8,528$ 13,864$ 29,809$ 57,346$ 167,004$ 4,811$ 5 19104 PHILADELPHIA, PA -75.15 39.53 51.90$ 148.98$ 248.90$ 441.68$ 876.54$ 1,570.51$ 1,640.33$ 5,204$ 6,500$ 8,661$ 13,861$ 29,941$ 57,463$ 167,183$ 5,204$ 6 85026 PHOENIX, AZ -112.01 33.26 69.14$ 190.14$ 323.83$ 544.52$ 1,183.75$ 1,941.62$ 3,610.80$ 6,685$ 7,528$ 9,598$ 14,503$ 30,709$ 57,927$ 168,005$ 6,685$ 7 78710 AUSTIN, TX -98.28 29.32 50.86$ 203.01$ 357.40$ 678.21$ 1,281.56$ 2,291.49$ 3,082.43$ 6,460$ 7,850$ 10,017$ 15,339$ 30,954$ 58,364$ 167,784$ 6,460$ 8 90802 LONG BEACH, CA -117.10 32.44 75.02$ 206.77$ 352.14$ 592.21$ 1,287.15$ 2,111.15$ 4,860.68$ 7,198$ 7,944$ 9,952$ 14,801$ 30,968$ 58,139$ 168,525$ 7,198$ 9 38101 MEMPHIS, TN -96.51 32.51 39.64$ 139.04$ 238.24$ 442.20$ 823.63$ 1,476.99$ 1,210.48$ 4,811$ 6,251$ 8,528$ 13,864$ 29,809$ 57,346$ 167,004$ 4,811$
10 95101 SAN JOSE, CA -121.56 37.22 76.78$ 211.75$ 360.60$ 606.37$ 1,318.26$ 2,161.45$ 5,217.08$ 7,350$ 8,069$ 10,058$ 14,890$ 31,046$ 58,202$ 168,674$ 7,350$ 11 02205 BOSTON, MA -83.01 42.25 53.79$ 159.71$ 266.86$ 473.35$ 939.70$ 1,684.15$ 2,010.09$ 5,492$ 6,768$ 8,886$ 14,058$ 30,099$ 57,605$ 167,338$ 5,492$ 12 46206 INDIANAPOLIS, IN -86.17 39.44 34.84$ 123.09$ 182.13$ 298.01$ 533.94$ 921.07$ 681.41$ 4,471$ 5,852$ 7,827$ 12,963$ 29,085$ 56,651$ 166,784$ 4,471$ 13 33022 HOLLYWOOD, FL -81.42 30.30 59.74$ 256.91$ 390.30$ 643.85$ 1,171.08$ 1,462.83$ 2,645.00$ 7,778$ 9,198$ 10,429$ 15,124$ 30,678$ 57,329$ 167,602$ 7,778$ 14 94188 SAN FRANCISCO, CA -122.23 37.37 75.02$ 206.77$ 352.14$ 592.21$ 1,287.15$ 2,111.15$ 5,151.83$ 7,198$ 7,944$ 9,952$ 14,801$ 30,968$ 58,139$ 168,647$ 7,198$ 15 43216 COLUMBUS, OH -82.53 40.00 35.40$ 132.66$ 196.43$ 321.33$ 575.48$ 994.10$ 1,031.94$ 4,734$ 6,092$ 8,005$ 13,108$ 29,189$ 56,743$ 166,930$ 4,734$ 16 38101 MEMPHIS, TN -97.42 30.18 39.64$ 139.04$ 238.24$ 442.20$ 823.63$ 1,476.99$ 1,210.48$ 4,811$ 6,251$ 8,528$ 13,864$ 29,809$ 57,346$ 167,004$ 4,811$ 17 37950 KNOXVILLE, TN -90.00 35.03 45.87$ 159.96$ 240.59$ 382.21$ 677.76$ 880.08$ 1,236.89$ 5,517$ 6,774$ 8,557$ 13,489$ 29,444$ 56,600$ 167,015$ 5,517$ 18 21202 BALTIMORE, MD -76.40 39.11 51.31$ 145.52$ 243.16$ 431.55$ 856.23$ 1,534.74$ 1,534.85$ 5,113$ 6,413$ 8,589$ 13,797$ 29,891$ 57,418$ 167,140$ 5,113$ 19 38101 MEMPHIS, TN -97.03 32.50 39.64$ 139.04$ 238.24$ 442.20$ 823.63$ 1,476.99$ 1,210.48$ 4,811$ 6,251$ 8,528$ 13,864$ 29,809$ 57,346$ 167,004$ 4,811$ 20 10199 NEW YORK, NY -80.56 35.13 59.94$ 173.82$ 257.80$ 457.63$ 907.47$ 1,626.77$ 1,906.44$ 5,855$ 7,120$ 8,773$ 13,960$ 30,019$ 57,533$ 167,294$ 5,855$ 21 38101 MEMPHIS, TN -106.24 31.48 39.64$ 139.04$ 238.24$ 442.20$ 823.63$ 1,476.99$ 1,210.48$ 4,811$ 6,251$ 8,528$ 13,864$ 29,809$ 57,346$ 167,004$ 4,811$ 22 53203 MILWAUKEE, WI -87.54 42.57 33.91$ 89.65$ 132.57$ 232.13$ 430.73$ 728.81$ 600.00$ 3,641$ 5,016$ 7,207$ 12,551$ 28,827$ 56,411$ 166,750$ 3,641$
Green Bay
2525
Observations
• Best to send the minimum to EVERY store from Green Bay – High Value Density
• Best to send 1,000 lb shipment to every store (except 9 stores)– Just shipping 1,000 lbs shipments leaves
under $3,000 on the table– Medium Value Density
2626
Denver
• Best to send either 10,000 lbs or TL EOQ to every store except 2 in Colorado– Just using the TL EOQ leaves about $65K
on the table– Low value density
2727
Logic?
2828
The ALT Heuristic
• If we know where the points should be located, how can we solve the problem?
• Fix the locations of the points and determine the best customer assignments
• If we know which customers should be assigned to which points, how can we solve the problem?
• Fix the customer assignments, find the best locations for the points
• Repeat
2929
The ALT Heuristic
• Fix the locations of the points and determine the best customer assignments
• Fix the customer assignments, find the best locations for the points
• Repeat
3030
The ALT Heuristic
• It is a Heuristic – no guarantee it finds a best answer
• It is simple and effective
• The idea has broader applicability than this academic problem
• We will come back to this broader idea
• First, let’s make it more practical
3131
Making It Practical
• Distances– Euclidean
– Surface of the Earth
– Over-the-Road
• A small Challenge• Frequency & Pool Points• Line Haul & Delivery
– Digression on TSP
• Challenge
3232
Euclidean Distance • In the US actual distance is something like
60*Euclidean Distance
• Not appropriate for distances more than about 20 miles
• Better estimate for larger distances 69 * ArcCos(Sin(latA * pi / 180) *
Sin(latB * pi / 180) +
Cos(latA * pi / 180) *
Cos(latB * pi / 180) *
Cos((lonA - lonB) * pi / 180))
• I’ve built this into OurCompany.xls as
Distance(LonA, LatA, LonB, LatB)
• Included in RadicalTools as rlDirectDistance
3333
Working with Distance• Complicated to find/simplify the roots of the
partials. Just use Solver or any Convex Optimization tool like Minos or various Matlab packages
• So, the ALT heuristic becomes– Fix the locations of the facilities and find the best
assignments of the customers to them– Fix the assignments and use Solver or Minos to find
the best locations for the facilities • Note once the assignments are made, you can locate each
facility separately to best serve the customers assigned to it
3434
As the Crow FliesStore
Number ZIP Location Longitude Latitude Distance to Cross Dock
1 10199 NEW YORK, NY -73.58 40.47 1,101 Longitude Latitude Longitude Latitude Longitude Latitude2 90052 LOS ANGELES, CA -118.24 33.56 1,379 -88.074 44.491 -86.241 39.742 -104.899 39.6473 83708 BOISE, ID -87.38 41.53 400 4 38101 MEMPHIS, TN -95.21 29.58 664 Green Bay Indianapolis Denver5 19104 PHILADELPHIA, PA -75.15 39.53 1,022 Green Bay - 341 922 6 85026 PHOENIX, AZ -112.01 33.26 1,063 Indianapolis 341 - 989 7 78710 AUSTIN, TX -98.28 29.32 716 Denver 922 989 - 8 90802 LONG BEACH, CA -117.10 32.44 1,352 9 38101 MEMPHIS, TN -96.51 32.51 476 Longitude Latitude
10 95101 SAN JOSE, CA -121.56 37.22 1,477 Cross Dock -94.33 39.18 INDEPENDENCE, MO11 02205 BOSTON, MA -83.01 42.25 629 12 46206 INDIANAPOLIS, IN -86.17 39.44 436 CWT-miles per day to the cross dock13 33022 HOLLYWOOD, FL -81.42 30.30 953 From Green Bay Indianapolis Denver Total14 94188 SAN FRANCISCO, CA -122.23 37.37 1,510 24,383 86,562 169,134 280,079 15 43216 COLUMBUS, OH -82.53 40.00 630 16 38101 MEMPHIS, TN -97.42 30.18 645 CWT-miles per day from the cross dock 458,713 17 37950 KNOXVILLE, TN -90.00 35.03 372 18 21202 BALTIMORE, MD -76.40 39.11 958 Total 738,792 19 38101 MEMPHIS, TN -97.03 32.50 485 20 10199 NEW YORK, NY -80.56 35.13 806 21 38101 MEMPHIS, TN -106.24 31.48 854
Green Bay Indianapolis Denver
Location
3535
Over-The-Road Distances• Available from many sources
– CzarLite– MapPoint– Radical Tools– PC Miler (rlPCMiler(OZip, DZip) in Radical Tools if you have PCMiler)– ….
• Can be slow, tedious to work with– Distance computations are more demanding
• Makes sense to use approximations – At least until the last few iterations– Generally the differences don’t matter, but we do want to avoid inaccessible
locations and account for geographic barriers (Great Lakes, Grand Canyon, Mississippi River, …or Alps, Baltic, North, Aegean, Adriatic, …)
• May want to use actual transport cost and time for toll roads or ferries, etc.
3636
With OTR distances
• Why didn’t that work?• If you are going to use OTR distances, they need
to be calculated based on lat-long not zip code or other aggregate
Store Number ZIP Location Longitude Latitude
Distance to Cross Dock
1 10199 NEW YORK, NY -73.58 40.47 864 Longitude Latitude Longitude Latitude Longitude Latitude2 90052 LOS ANGELES, CA -118.24 33.56 2,167 -88.074 44.491 -86.241 39.742 -104.899 39.6473 83708 BOISE, ID -87.38 41.53 671 4 38101 MEMPHIS, TN -95.21 29.58 795 Green Bay Indianapolis Denver5 19104 PHILADELPHIA, PA -75.15 39.53 741 Green Bay - 341 922 6 85026 PHOENIX, AZ -112.01 33.26 1,794 Indianapolis 341 - 989 7 78710 AUSTIN, TX -98.28 29.32 978 Denver 922 989 - 8 90802 LONG BEACH, CA -117.10 32.44 2,114 9 38101 MEMPHIS, TN -96.51 32.51 766 Longitude Latitude
10 95101 SAN JOSE, CA -121.56 37.22 2,393 Cross Dock -84.39 33.77 ATLANTA, GA11 02205 BOSTON, MA -83.01 42.25 714 12 46206 INDIANAPOLIS, IN -86.17 39.44 507 CWT-miles per day to the cross dock13 33022 HOLLYWOOD, FL -81.42 30.30 329 From Green Bay Indianapolis Denver Total14 94188 SAN FRANCISCO, CA -122.23 37.37 2,459 45,116 105,130 416,211 566,457 15 43216 COLUMBUS, OH -82.53 40.00 596 16 38101 MEMPHIS, TN -97.42 30.18 938 CWT-miles per day from the cross dock 579,204 17 37950 KNOXVILLE, TN -90.00 35.03 396 18 21202 BALTIMORE, MD -76.40 39.11 686 Total 1,145,661
Green Bay Indianapolis Denver
Location
3737
With OTR distances
• A crude fix that smoothes things out?• But …• In MapPoint…
Store Number ZIP Location Longitude Latitude
Distance to Cross Dock
1 10199 NEW YORK, NY -73.58 40.47 865 Longitude Latitude Longitude Latitude Longitude Latitude2 90052 LOS ANGELES, CA -118.24 33.56 2,166 -88.074 44.491 -86.241 39.742 -104.899 39.6473 83708 BOISE, ID -87.38 41.53 670 4 38101 MEMPHIS, TN -95.21 29.58 795 Green Bay Indianapolis Denver5 19104 PHILADELPHIA, PA -75.15 39.53 742 Green Bay - 341 922 6 85026 PHOENIX, AZ -112.01 33.26 1,793 Indianapolis 341 - 989 7 78710 AUSTIN, TX -98.28 29.32 977 Denver 922 989 - 8 90802 LONG BEACH, CA -117.10 32.44 2,113 9 38101 MEMPHIS, TN -96.51 32.51 765 Longitude Latitude Longitude Latitude Dist from Centroid
10 95101 SAN JOSE, CA -121.56 37.22 2,392 Cross Dock -84.39 33.77 30308 33.76953 -84.37695 0.7511 02205 BOSTON, MA -83.01 42.25 715 12 46206 INDIANAPOLIS, IN -86.17 39.44 506 CWT-miles per day to the cross dock13 33022 HOLLYWOOD, FL -81.42 30.30 330 From Green Bay Indianapolis Denver Total14 94188 SAN FRANCISCO, CA -122.23 37.37 2,458 45,116 105,130 416,211 566,457 15 43216 COLUMBUS, OH -82.53 40.00 597 16 38101 MEMPHIS, TN -97.42 30.18 938 CWT-miles per day from the cross dock 579,056 17 37950 KNOXVILLE, TN -90.00 35.03 396 18 21202 BALTIMORE, MD -76.40 39.11 687 Total 1,145,513
Green Bay Indianapolis Denver
Zip CodeCentroid
3838
Implementing ALT
• Separate – Allocation: Which dc is each store assigned
to?– Location: Where should each dc be?
Location KEANSBURG, NJ SANTA ANA, CA FORT WAYNE, IN GOSHEN, AL LIBERTY, NC ALBUQUERQUE, NM SKIDMORE, TX JACUMBA, CA TULSA, OK ACAMPO, CA FORT WAYNE, INDelivery Cost/Mile 1.75$ Name Pool 1 Pool 2 Pool 3 Pool 4 Pool 5 Pool 6 Pool 7 Pool 8 Pool 9 Pool 10 Cross Dock
Line Haul Cost/Mile 1.00$ Longitude -74.12 -117.80 -85.11 -86.07 -79.47 -106.37 -97.59 -116.21 -95.82 -121.21 -85.13Latitude 40.48 33.77 40.99 31.82 35.84 35.04 28.20 32.60 36.21 38.23 41.00
Store Number ZIP Longitude Latitude Pool 1 Pool 2 Pool 3 Pool 4 Pool 5 Pool 6 Pool 7 Pool 8 Pool 9 Pool 10 Minimum Delivery Cost
1 10199 -73.58 40.47 43$ 3,676$ 604$ 1,373$ 678$ 2,725$ 2,401$ 3,601$ 1,853$ 2,515$ 43$ 2 90052 -118.24 33.56 3,676$ 43$ 2,816$ 2,797$ 3,286$ 1,026$ 1,913$ 202$ 1,919$ 544$ 43$ 3 83708 -87.38 41.53 1,040$ 2,604$ 185$ 1,011$ 868$ 1,678$ 1,627$ 2,539$ 874$ 2,691$ 185$ 4 38101 -95.21 29.58 2,105$ 2,032$ 1,455$ 845$ 1,513$ 1,127$ 259$ 1,884$ 689$ 2,396$ 259$ 5 19104 -75.15 39.53 128$ 3,558$ 801$ 1,215$ 521$ 2,599$ 2,247$ 3,478$ 1,719$ 3,672$ 128$ 6 85026 -112.01 33.26 3,199$ 503$ 2,348$ 2,262$ 2,774$ 517$ 1,384$ 371$ 1,409$ 928$ 371$ 7 78710 -98.28 29.32 2,342$ 1,780$ 1,640$ 1,118$ 1,770$ 923$ 132$ 1,625$ 745$ 2,170$ 132$ 8 90802 -117.10 32.44 3,636$ 151$ 2,780$ 2,711$ 3,223$ 961$ 1,795$ 79$ 1,857$ 693$ 79$ 9 38101 -96.51 32.51 2,030$ 1,847$ 1,288$ 917$ 1,497$ 887$ 457$ 1,716$ 388$ 2,160$ 388$
10 95101 -121.56 37.22 3,793$ 477$ 2,932$ 3,059$ 3,474$ 1,288$ 2,279$ 659$ 2,132$ 109$ 109$
Delivery Costs to each Store Using Each Pool
Guess initial DC locations
Compute distances to each pool
3939
Assignments
• Location problem uses static current assignments• Allocation problem simply copies “best” assignments
over to the current assignments
Store Number ZIP Longitude Latitude Pool 1 Pool 2 Pool 3 Pool 4 Pool 5 Pool 6 Pool 7 Pool 8 Pool 9 Pool 10 Pool 1 Pool 2 Pool 3 Pool 4 Pool 5 Pool 6 Pool 7 Pool 8 Pool 9 Pool 10
1 10199 -73.58 40.47 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 02 90052 -118.24 33.56 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 03 83708 -87.38 41.53 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 04 38101 -95.21 29.58 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 05 19104 -75.15 39.53 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 06 85026 -112.01 33.26 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 07 78710 -98.28 29.32 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 08 90802 -117.10 32.44 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 09 38101 -96.51 32.51 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0
10 95101 -121.56 37.22 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 111 02205 -83.01 42.25 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 012 46206 -86.17 39.44 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
Best Assignments Given Pool Locations Current Assignments
Select arbitrary initial
assignments
Compute best assignments
based on distances
These are static values
These change as the locations of the dcs
change
4040
Let’s Try It
• Choose initial DC locations• Update Assignments• Adjust Locations• …• How Many DCs?• Fixed DC locations? Eg., existing facilities
Location KEANSBURG, NJ SANTA ANA, CA FORT WAYNE, IN GOSHEN, AL LIBERTY, NC ALBUQUERQUE, NM SKIDMORE, TX JACUMBA, CA TULSA, OK ACAMPO, CA FORT WAYNE, INDelivery Cost/Mile 1.75$ Name Pool 1 Pool 2 Pool 3 Pool 4 Pool 5 Pool 6 Pool 7 Pool 8 Pool 9 Pool 10 Cross Dock
Line Haul Cost/Mile 1.00$ Longitude -74.12 -117.80 -85.11 -86.07 -79.47 -106.37 -97.59 -116.21 -95.82 -121.21 -85.13Latitude 40.48 33.77 40.99 31.82 35.84 35.04 28.20 32.60 36.21 38.23 41.00
Store Number ZIP Longitude Latitude Pool 1 Pool 2 Pool 3 Pool 4 Pool 5 Pool 6 Pool 7 Pool 8 Pool 9 Pool 10 Minimum Delivery Cost
1 10199 -73.58 40.47 43$ 3,676$ 604$ 1,373$ 678$ 2,725$ 2,401$ 3,601$ 1,853$ 2,515$ 43$ 2 90052 -118.24 33.56 3,676$ 43$ 2,816$ 2,797$ 3,286$ 1,026$ 1,913$ 202$ 1,919$ 544$ 43$ 3 83708 -87.38 41.53 1,040$ 2,604$ 185$ 1,011$ 868$ 1,678$ 1,627$ 2,539$ 874$ 2,691$ 185$ 4 38101 -95.21 29.58 2,105$ 2,032$ 1,455$ 845$ 1,513$ 1,127$ 259$ 1,884$ 689$ 2,396$ 259$ 5 19104 -75.15 39.53 128$ 3,558$ 801$ 1,215$ 521$ 2,599$ 2,247$ 3,478$ 1,719$ 3,672$ 128$ 6 85026 -112.01 33.26 3,199$ 503$ 2,348$ 2,262$ 2,774$ 517$ 1,384$ 371$ 1,409$ 928$ 371$ 7 78710 -98.28 29.32 2,342$ 1,780$ 1,640$ 1,118$ 1,770$ 923$ 132$ 1,625$ 745$ 2,170$ 132$ 8 90802 -117.10 32.44 3,636$ 151$ 2,780$ 2,711$ 3,223$ 961$ 1,795$ 79$ 1,857$ 693$ 79$ 9 38101 -96.51 32.51 2,030$ 1,847$ 1,288$ 917$ 1,497$ 887$ 457$ 1,716$ 388$ 2,160$ 388$
10 95101 -121.56 37.22 3,793$ 477$ 2,932$ 3,059$ 3,474$ 1,288$ 2,279$ 659$ 2,132$ 109$ 109$
Delivery Costs to each Store Using Each Pool
4141
Questions?
4242
Projects• Halstead/Vertex – flooring supplier to HD.
– How best to use our 3 domestic DCs one of which is owned– Technically simple, but business value?
• Acumen Fund ZHL Ziqitza– Where to station and how to dispatch ambulances in Mumbai– Balance technical sophistication with practicality and impact
• Tiffany’s– UPS vs Brinks. – Financial analysis
• Staples– How to dynamically allocate labor among functions in a DC– Prototype to evaluate impact
• Noranda – Integrated bauxite mining, aluminum smelting– Planning transport from mines in Jamaica to plants in the mid West– More details tomorrow
4343
Preferences
• If your project teams are different, send me new team info
• Each team contact send me– Resumes of the team (file name should reflect the
person’s name, not “resume.pdf”)
– Preferences (1 is most preferred, 5 is least preferred)
• Due by end of business Friday (5pm)• Set up calls next week or soon after
4444
Frequency Revisited • Most companies have 100’s or 1000’s or
even 10’s of thousands of SKUs• Especially in retail, there is often a battle
between – Breadth – Having many SKUs available for
customers– Depth – Having more of each SKU available
• The two compete for– Limited shelf space– Limited working capital
• Frequency of replenishment is often fixed by limits on Depth
4545
Cross Docks
• Cross docks or “Pool Points” help– DC ships to a pool point (line haul)– Pool point distributes to stores (delivery)– No inventory at the pool point
• Frequency ensures low cycle stock
• Consolidation reduces transportation impacts– Aggregating stores for line haul– Multi-stop or mode shift for delivery
4646
Location
• How many pools should we have and which stores should each one serve?
• Frequency is fixed, say once per week
• Sets cycle stocks, e.g., half a week at the stores
• Our goal is to manage transportation and operating expenses at the pools
4747
Transportation
• Line Haul– Weekly volume to a pool dictated by
weekly demand at the stores it serves– Distance dictated by location of the pool
• Delivery– Delivery distance
• TSP Tour• LTL/parcel rates
– Distance & assignments dictated by pool locations
4848
Delivery
• Let’s first look at the TSP: Weekly Delivery Route
• Traveling Salesman Problem– Visit a set of cities once and return to your
starting point– Minimize total travel distance
4949
The Spanning Tree Heuristic
• A Spanning Tree is a – Tree: connected, no cycles ignoring
direction– Spanning: Reaches every city
• Easy to find a Minimum Spanning Tree– Greedy Heuristic– Add edges in increasing order of length,
discarding any that creates a cycle– Stop when you have a spanning tree
5050
The Spanning Tree Heuristic
• Theorem: Assuming the Triangle Inequality holds, the shortest TSP tour is never more than twice the length of a Minimum Spanning Tree.
• Proof: Double the edges of a Minimum Spanning Tree. That creates a connected network with an even number of edges at each city. The total length of the edges in this graph is twice the length of the Minimum Spanning Tree. We will find a shorter TSP tour.
5151
Euler’s Problem
• Theorem: In a connected graph with an even number of edges at each node, you can walk on each edge exactly once in such a way that you end up back where you started – an Eulerian Circuit.
• See Chapter 6 of Problem Solving Through Recreational Mathematics by Bonnie Averback and Orin Chein for a discussion of this Theorem and its proof.
5252
The Spanning Tree Heuristic
• Follow the Eulerian Circuit, taking a short cut to the next new node in the Circuit whenever it re-visits before completing the tour
• The result is a TSP tour that is no longer than twice the length of our Minimum Spanning Tree.
5353
Example
5454
Euler Circuit
1
234
5
6
7
8
9
10
1112
13
14
5555
TSP
1
234
5
6
7
8
9
10
1112
13
14
5757
Agenda
• Deciding the number and locations of cross docks/pool points– A simple approximation for delivery costs– A simple ALT type heuristic– A more complex model that considers both
line haul and delivery in making assignments (MIP for assigning stores)
– Industrial MIP modeling tools (AMPL)
5858
Approximating Delivery
• Something simple– Sum of distances from Pool to Stores
– Greater than the Minimum Spanning Tree
– Probably larger than the TSP
– Easy to work with
• Different cost per mile for Delivery than for Line Haul– Usually several smaller vans
– Usually more surface streets
– More time spent stopping
5959
Minimize Weekly Transport Costs
• Delivery– Delivery $/mile * Distance from Store to
Pool (a very crude approximation)
• Line Haul– Line Haul $/mile * Distance from Pool to
Cross Dock*# of Truckloads
• Shipments to the Cross Dock– Line Haul $/mile * Distance from each
Plant to Cross Dock*# of Truckloads
6060
Strategy
• Separate Costs & Assignments to facilitate ATL heuristic
• Calculate Costs from each Pool to each Store • “Best” Assignments use cheapest Pool• Keep 2 Assignments
– “Current” Assignments – what was best before we started moving the pools around
– “Best” Assignments – using cheapest pool
• Use Costs to improve Pool and Cross Dock locations given “Current” Assignments
• Use “Best” Assignments to update Assignments
6161
Challenge 8
• Use the ALT Heuristic Idea to find good locations for the Pools
• Repeat the exercise for different #’s of Pools and show how Transportation Costs change with the # of Pools.
• Identify shortcomings of this approach
• Due 2/14
6262
Questions?
6363
Challenge 6: Simple TL Consolidation
• Assume we operate with full truck load shipments using Indianapolis in this way
• Adjust the financial statements to reflect changes in transportation and inventory
• Discuss the impacts, relate them to our initial assessment. Explain the differences.
• What would you do next?• Due Tues, Feb 7th
6464
Summary • Direct Full Truckloads
– $158 million in inventory– $435 thousand in transportation
• Single EOQ to All Stores– $15.8 million in inventory– $2.48 million in transportation
• Different EOQ shipments– $15.2 million in inventory– $2.47 million in transportation
• Simple TL Consolidation – $36.9 million in inventory– $654 thousand in transportation
6565
Summary • Direct Full Truckloads
– Gross Margin %: 32.9%– ROIC 22.9%– SPEED 1.08– Days in Inventory: 191
• Single EOQ to All Stores– Gross Margin %: 32.5%– ROIC 33.5%– SPEED 1.65– Days in Inventory: 19
• Different EOQ shipments– Gross Margin %: 32.5%– ROIC 33.6%– SPEED 1.65– Days in Inventory: 18
• Simple TL Consolidation – Gross Margin %: 32.9%– ROIC: 31.7%– SPEED: 1.53– Days in Inventory: 45
For a small increase
in operating expense, a huge
reduction in Inventory. How?!
6666
Review
• Consolidation for balance
• Consolidation for transport: Pool points
• Simple model – ALT Heuristic– Problem: Doesn’t consider inbound
shipments from Indianapolis to pools in making assignments of stores to pools
6767
A More Complex Model
• The current model assigns each store to the Pool closest to it
• It ignores the costs of getting product to the Pool
• Example: Pool 8 only serves 2 Stores so the Line Haul is very expensive. Why?
• Objective: Develop an Assignment model that considers this cost as well.
6868
A More Complex Model
• Three tasks in building an LP or IP or MIP model:– The Decision Variables: What we can change– The Objective Function: What we are trying to
accomplish– The Constraints: The limits to our choices
• The Objective Function and Constraints must by Linear– Sum of Constant*Decision Variable
6969
A More Complex Model
• The Objective– Minimize Transportation Costs from the Cross
Dock to the Stores• Cross Dock to the Pool
– Line Haul Cost * Distance * # of Trucks/week
• Pool to the Store– Delivery Cost*Distance
• The Decision Variables– Assignments of Stores to Pools
• zij = 1 if Store i assigned to Pool j, 0 otherwise
7070
A More Complex Model
• The Constraints– Each Store is assigned to 1 Pool
– For each Store i
– zij is Binary (0 or 1)
1ijj
z
7171
The Objective
• Minimize Transportation Costs from the Cross Dock to the Stores– Cross Dock to the Pool
• Line Haul Cost * Distance * # of Trucks/week
– Line Haul Cost is a constant, e.g., $1/mile– Once we fix locations of the Pool and the Cross Dock,
Distance from the Cross Dock to each Pool is a constant (This is the advantage of the ALT heuristic)
– # of Trucks/week • Must be enough to carry one week sales at the stores served by
the pool.• Must be at least one• Restrict to integers?
7272
New Variables & Constraints
• Add new variables to capture this– Tj = the number of trucks we run from the Cross
Dock to Pool j each week. This should be restricted to integer values.
• Need new Constraints to enforce these definitions– There are enough trucks to carry the load to each
Pool each week
7373
New Variables & Constraints
• Add new variables to capture this– Tj = the average number of trucks we run from the
Cross Dock to Pool j each week
• Need new Constraints to enforce these definitions– There are enough trucks to carry the load to each
Pool each week
Tj *5*10*55/30,000 iji
zWeight of 1 weeks sales
7575
Questions?
7777
Model
• Pools– set POOLS;– param LineHaulDist{POOLS};
• Stores– set STORES;
• Delivery (Pool to Store)– set DELIVERYLEGS dimen 2;– param DeliveryDist{DELIVERYLEGS};
Model requires a set of Pools
Each pool has data called
LineHaulDist
Model requires a set of Stores
Model requires a set of pairs (Pool, Store)
Each pair has data called
DeliveryDist
7878
Model
• Other Data – param LineHaulCost := 1.00;– param DeliveryCost := 1.75;– param LbsPerTruck := 30000;– param WeightPerWeekPerStore := 5*10*55;
• Better if this is read from a table, but…• Model Variables
– var Open{POOLS} binary;– var Trucks{POOLS} integer;– var Assign{DELIVERYLEGS} binary;
A binary variable for each pool
An integer variable for each pool
A binary variable for each (Pool, Store) pair
7979
Model
• minimize TotalTransportCost: sum{pool in POOLS}
LineHaulCost*LineHaulDist[pool]*Trucks[pool]+
sum{(pool,store) in DELIVERYLEGS} DeliveryCost*DeliveryDist[pool,store]*
Assign[pool,store];
• s.t. AssignEachStore{store in STORES}:• sum{(pool,store) in DELIVERYLEGS}
Assign[pool,store] = 1;
The objective is to minimize total
transportation cost
Total Line Haul cost
Total delivery cost
A constraint for each store
Assign the store to exactly 1 pool
8080
Model
• s.t. EnoughTrucksToCarryLoad{pool in POOLS}:• Trucks[pool] >= WeightPerWeekPerStore*sum{(pool,
store) in DELIVERYLEGS}Assign[pool,store]/LbsPerTruck;
• s.t. AtLeastOneTruckToOpenPool{pool in POOLS}:• Trucks[pool] >= Open[pool];
• s.t. DontAssignStoresToClosedPools{(pool,store) in DELIVERYLEGS}:
• Open[pool] >= Assign[pool, store];
A constraint for each pool
Enough trucks to carry all the demand it serves
And at least one truck if the pool is open
If the pool is closed, it can’t serve any stores
8181
ODBC
• Open Data Base Connectivity:– Read model data from Access, Excel, SQL Server,
…
table PoolTable IN "ODBC"
"DSN=OptimizationData"
"SQL=SELECT Pool, Distance AS LineHaulDist from PoolData":
POOLS <-[Pool], LineHaulDist;
read table PoolTable;
Ample name for the table
For reading
Access via ODBC
ODBC Data Source Name
Reading instructions
Mapping to AMPL model ParametersCommand to read the
table
8282
Solve & Report
• option solver cplex• solve;
• table DeliveryOut OUT "ODBC"• "DSN=OptimizationData"• "DeliveryOut":• {pool in POOLS, store in STORES:
Assign[pool, store] > 0.01}->[pool, store];
• write table DeliveryOut;
Select a solver
Solve the problem
Write out the solution
If the pool is closed, it can’t serve any stores
Just write out the “active” assignments
8484
Observations
• This approach works in the context of the ALT heuristic – move the Pools around
• This approach works in the context of a fixed set of candidate pool locations
8585
Summary • Direct Full Truckloads
– $158 million in inventory– $435 thousand in transportation
• Single EOQ to All Stores– $15.8 million in inventory– $2.48 million in transportation
• Different EOQ shipments– $15.2 million in inventory– $2.47 million in transportation
• Simple TL Consolidation – $36.9 million in inventory– $654 thousand in transportation
• Consolidation with EOQ– $10.5 million in inventory– $1.86 million in transportation
8686
Summary • Direct Full Truckloads
– Gross Margin %: 32.9%– ROIC 22.9%– SPEED 1.08– Days in Inventory: 191
• Single EOQ to All Stores– Gross Margin %: 32.5%– ROIC 33.5%– SPEED 1.65– Days in Inventory: 19
• Different EOQ shipments– Gross Margin %: 32.5%– ROIC 33.6%– SPEED 1.65– Days in Inventory: 18
• Simple TL Consolidation – Gross Margin %: 32.9%– ROIC: 31.7%– SPEED: 1.53– Days in Inventory: 45
• Consolidation with EOQ– Gross Margin %: 32.6%– ROIC: 34.3%– Speed: 1.68– Days in Inventory: 13
8787
Zone Skipping
• Original applications from bulk mail
• Where do we give the mail to the USPS?– Close to origin?
• Our cost to get mail to the USPS is low
• Mail crosses several zones so rates are high
– Close to destination?• Our cost to get mail to the USPS is high
• Mail delivered “locally” so rates are low
8888
Zone Skipping
• LTL application• We send (or manage) large volume of
small LTL shipments from a limited number of origins
• Where should we give the freight to the LTL carrier?– Close to the origin? – Close to the destination?
• We pay TL rates to get it to the LTL terminal
8989
A Model• Fixed set of candidate LTL terminals to
deliver mail to• Includes our origin (LTL door-to-door)• Appropriately aggregated shipments
– Origin– Destination– Class– Weight– Ship date– Special handling requirements
Aggregate as much as is appropriate e.g., destination region (3-digit zip) and weight range (e.g., LTL ranges)
Rarely a dynamic model so we want averages (per day or perhaps longer depending on service commitment)
Some concern about variability/
9090
Concave Cost
Shipment Size
Cos
tCost per unit decreasing
So?!
9191
Estimating Rates
Small shipments
Shipment Size
Cos
t
Large shipments
Cost ofAverage shipment
Average shipment
AverageCost of
shipment
9292
A Model
• How do we get shipments (of this category) from this terminal to this destination (e.g. 3-digit zip)?– LTL door-to-door?– TL to LTL terminal A and LTL from there– TL to LTL terminal B and LTL from there– …
• Very similar to our pool point model– LTL from terminal to destination is analogous to delivery – TL to LTL terminal is analogous to Line Haul– New option is just go LTL all the way
• Zij = 1 if we assign destination j to LTL terminal i• Zi = 1 if we deliver LTL direct to destination I
1 ij
ij zz
9393
A Model• LTL Cost from LTL terminal to customer is
analogous to “Delivery cost”. Now we can use rating engine to estimate it
• TL Cost from our origin to the LTL terminal is analogous to Line Haul Cost, based on distance and # of trucks per period
• LTL Direct cost from our origin to the destination is new. Use the rating engin to produce it.
• Model decides which ones to pay
9494
HDT Case
• Read Case• Answer three questions:
– Compare the direct costs of the alternatives– Considering cash flow impacts, make a recommendation
about which alternative to pursue– Since the buyer pays for the trucks as they are delivered,
analyze whether or not it would be advantageous for HDT to pay overtime to speed up production assuming they ship the trucks via Baltimore as soon as they are ready. Assume that HDT’s cost of borrowing is 12% per year. Make reasonable assumptions about the cost of overtime and the impacts of overtime on production.
• Due Thursday February 23rd