570 likes | 581 Views
Explore strategies to minimize transportation costs and optimize shared transportation capacity by designing efficient routes and considering inventory holding costs.
E N D
Routing John H. Vande Vate Spring, 2001
Shared Transportation Capacity • Large shipments reduce transportation costs but increase inventory costs • EOQ trades off these two costs • Reduce shipment size without increasing transportation costs? • Combine shipments on one vehicle
Transport Inventory Inventory Transport TL vs LTL
Transport Inventory Transport? Shared Loads ? Inventory
Issues • Design Routes that • Minimize the transportation cost • Respect the capacity of the vehicle • This may require several routes • Consider inventory holding costs • This may require more frequent visits
Our Approach • Minimize Transportation Cost (Distance) • Traveling Salesman Problem • Respect the capacity of the Vehicle • Multiple Traveling Salesmen • Consider Inventory Costs • Estimate the Transportation Cost • Estimate the Inventory Cost • Trade off these two costs.
The Traveling Salesman Problem • Minimize Distance • s.t. • start at the depot, • visit each customer exactly once, • return to the depot • A single vehicle no capacity • Only issue is distance.
IP Formulation • Set Cities; • param d{Cities, Cities}; • var x{Cities, Cities} binary; • minimize Distance: sum{f in Cities, t in Cities}d[f,t]x[f,t]; • s.t. DepartEachCity{f in Cities}: sum{t in Cities}x[f,t] = 1; • s.t. ArriveEachCity{t in Cities}: sum{f in Cities}x[f,t] = 1;
SubTours 3 cities 3 edges
Eliminating Subtours • S.t. SubTourElimination {S subset Cities: card(S) > 0 and card(S) < card(Cities)}: sum{f in S, t in S} x[f,t] <= card(S) - 1;
An Equivalent Statement 3 cities No edges out
An Equivalent Formulation • S.t. SubTourElimination {S subset Cities: card(S) > 0 and card(S) < card(Cities)}: sum{f in S, t not in S} x[f,t] >= 1;
How Many Constraints? • How many subsets of N items? • 2N • Omit 2 subsets: • All N items • The empty set • 2N - 2
OK, Half of that... • If we have an edge out of {1, 2, 3}, we must have an edge out of {4, 5, 6} • Why? The edge out of {1, 2, 3} is an edge into {4, 5, 6}. But there are exactly 3 edges into cities in {4, 5, 6}. Since one of them comes from {1, 2, 3}, not all the edges from cities in {4, 5, 6} can lead to cities in {4, 5, 6}. At least one must go to {1, 2, 3}
Still Lots! • How many subsets of N items? • 2N • Omit 2 subsets: • All N items • The empty set • 2N - 2 • Half of that: 2N-1 - 1
How Many? N 2N-1 - 1 Too Many!
Optimization is Possible But... It is difficult Few 100 cities is the limit Is it appropriate? Other approaches….
Heuristics • The Strip Heuristic • Partition the region into narrow strips • Routing in each strip is easy ~ 1-Dimensional • Paste the routes together
The Strip Heuristic x x x x x x x x x x x x x x x x
Nearest Neighbor x x x x x x x x x x x x x x x x
Clark-Wright • Shortcut a “tour” by finding the greatest “savings” x x x x x x
Clark-Wright Shortcut a “tour” by finding the greatest “savings” x x x x x x
Nearest Insertion x x x x x x x x x x x x x x x x
Nearest Insertion x x x x x x x x x x x x x x x x
Nearest Insertion x x x x x x x x x x x x x x x x
Nearest Insertion x x x x x x x x x x x x x x x x
Nearest Insertion x x x x x x x x x x x x x x x x
Nearest Insertion x x x x x x x x x x x x x x x x
Nearest Insertion x x x x x x x x x x x x x x x x
Nearest Insertion x x x x x x x x x x x x x x x x
Nearest Insertion x x x x x x x x x x x x x x x x
Nearest Insertion x x x x x x x x x x x x x x x x
Nearest Insertion x x x x x x x x x x x x x x x x
Nearest Insertion x x x x x x x x x x x x x x x x
Nearest Insertion x x x x x x x x x x x x x x x x
Nearest Insertion x x x x x x x x x x x x x x x x
Nearest Insertion x x x x x x x x x x x x x x x x
Improvement Heuristics • 2-Opt x x x x x x x x x x x x x x x x
Local Minima • No improvement found, but… • Tour still isn’t good
Probabilistic Methods • Simulated Annealing • With probability that reduces over time, accept an exchange that makes things worse (gets you out of local minima).
Optimization-Base Heuristics • Minimum Spanning Tree Heuristic • Build a minimum spanning tree on the edges between customers • Double the tree to get a Eulerian Tour (visits everyone perhaps several times and returns to the start) • Short cut the Eulerian Tour to get a Hamilton Tour (Traveling Salesman Tour)
The Spanning Tree • Is Easy to construct • Use the Greedy Algorithm • Add edges in increasing order of length • Discard any that create a cycle • Is a Lower bound on the TSP • Drop one edge from the TSP and you have a spanning tree • It must be at least as long as the minimum spanning tree
The Spanning Tree x x x x x x x x x x x x x x x x
Double the Spanning Tree • Duplicate each edge in the Spanning Tree • The resulting graph is connected • The degree at every node must be even • That’s an Eulerian Graph (you can start at a city, walk on each edge exactly once and return to where you started) • It’s no more than twice the length of the shortest TSP
The Spanning Tree 14 15 13 x x 12 11 x 19 x 20 10 18 9 x x 17 x x 5 16 6 x 21 8 4 22 x x 7 23 3 27 x 26 28 x 25 2 24 29 x 1 x x 30
Short Cut the Eulerian Tour 14 15 13 x x 12 11 x 19 x 20 10 18 9 x x 17 x x 5 16 6 x 21 8 4 22 x x 7 23 3 27 x 26 28 x 25 2 24 29 x 1 x x 30
Short Cut the Eulerian Tour Short Cut the Eulerian Tour 14 15 13 x x 12 11 x 19 x 20 10 18 9 x x 17 x x 5 16 6 x 21 8 4 22 x x 7 23 3 27 x 26 28 x 25 2 24 29 x 1 x x 30
Spacefilling Curves • There are no more points in the unit square than in the interval from 0 to 1!?
Proof • Each point (X,Y) on the map • Express X = string of 0’s and 1’s • X = 16.5 = 10000.10 1*24+0*23+0*22+0*21+0*20+1*2-1 +0*2-2 • Express Y = string of 0’s and 1’s • Y = 9.75 = 01001.11 0*24+1*23+0*22+0*21+1*20+1*2-1 +1*2-2 • Space Filling Number - interleave bits • (X,Y) = 1001000001.1101
So,... • Each pair of points X = 16.5 = 10000.10 Y = 9.75 = 01001.11 maps to a unique point (X,Y) = 1001000001.1101