You are on page 1of 9

Vehicle Routing Problem

Given
- a central depot,
- a number of customer locations, each with demand wi
- vehicles with capacity W
- matrix of distances dij
Find a set of vehicle routes, each originating and terminating at the depot such that
- all customers are served
- total quantity loaded on each vehicle does not exceed the vehicle capacity W
- total distance traveled by all vehicles is minimized
- Splitting of customer demands not permitted
- No limit on number of trucks available
Clarke and Wright Algorithm
Start with a naive solution: send one truck to each location, i.e. n routes.
- Solution is feasible provided wi <W for all.
- Total cost = 2. d0i is very high
- How to improve this solution?
One possible approach:
Combine two routes into one provided the capacity constraint is satisfied.
which two? i
Consider combining the routes containing nodes i and j.
What is the saving in distance? sij = d0i+d0j-dij j
Pick the pair (i,j) with largest sij, and combine the two routes.
For which pair of nodes will sij be high?
Nodes physically close to each other should be on the same route.
Routes are gradually merged to form larger routes.
Merger takes place only by joining end-nodes of two routes.
Sequencing of locations within a route automatically emerges
i
dij
d0i j

d0j
0

sij = d0i+d0j-dij
Implementation
Compute the savings sij for all possible pairs (i,j), forming triples
(i,j,sij)
(sij remains unaffected as the routes grow)
Sort all triples in descending order of sij.
Start implementing the triples in descending order.
Skip triples that cannot be implemented.
Why would it not be possible to implement a triple?
i and j are on the same route.
Either i or j is not an end-node on the route.
Total demand of the two routes exceeds truck capacity.
Clarke and Wright Algorithm
Step 0. For each pair of stops (i,j), compute the savings figure
sij = d0i+d0j-dij, forming triples (i,j, sij)
Step 1. Sort the triples in decreasing order to sij. Form a starting solution
with one customer per route. Let k=1.
Step 2. Check the feasibility of implementing triple k:
1. i and j must belong to separate routes.
2. i and j must be end nodes on their respective routes.
3. total demand on the two routes must not exceed W.
If feasible, implement triple k by combining the two routes.
Step 3. If all triples have been exhausted, STOP, otherwise let
k k+1, and go to Step 2.

Important: Note that all routes grow simultaneously, not one at a time.
Sij i j
188 1 2 20 95 5
1 20 22
181 22 23 15 11
175 13 23 95 3 40 25 15
173 2 4 9 20 12 30 10 23 30
17 18 19
164 13 22 10 2 25 21
161 1 4 20 6 90 13
152 1 3 5 10 90
4 5 0 10
148 21 23 30
146 4 7 8
10 7
145 21 22 10 20 14
20
144 13 21 20
129 5 6
15 16
127 3 6 20
123 7 8 90 50
111 13 20 W=100
105 5 8
99 19 22
94 19 21
93 3 9
90 5 10
87 6 9
73 15 16
62 18 19
55 11 18
51 14 15
45 11 12
43 17 18
Advantages of Clarke and Wright Algorithm
- Easy to understand and implement
- yields reasonably good solution
- does not require solving the TSP, routing emerges automatically.
- possible to incorporate various route specific constraints, e.g.
- Distance / Time
- Time Window constraints
- Pickups and deliveries
A Key Observation: Two problem dimensions: TSP and BinPacking
Algorithm addresses both of these simultaneously.
Special Case 1 : W >  wi TSP
Special Case 2 : dij = 0 Bin Packing
Total distance : 742

You might also like