Clarke–Wright savings.
My way of explaining it: if two deliveries are close together, why drive back to the warehouse between them?
Think of a pizza run.
Imagine you’re delivering pizzas from a shop. You need to visit two houses, A and B, and finish back at the shop. You could make a separate round trip to each house. Or you could visit both on one trip.
Clarke–Wright savings is a method for building delivery routes by joining trips that save distance. The warehouse or shop is called the depot. “Savings” means how much less you travel after joining two trips.
A small example.
Suppose the shop is 5 km from A and 6 km from B. The houses are only 3 km apart. Assume the distance is the same in either direction.
- Separate trips: shop → A → shop is 10 km. Shop → B → shop is 12 km. Total: 22 km.
- One combined trip: shop → A → B → shop is 5 + 3 + 6 = 14 km.
- Distance saved: 22 − 14 = 8 km.
The combined trip replaces A → shop → B with A → B. That’s why the shortcut calculation is:
Savings = distance from A to the shop + distance from the shop to B − distance from A to B.
Here, that’s 5 + 6 − 3 = 8 km. A larger positive number means a more useful merge.
Now add more stops.
- Start with a separate out-and-back route for every stop.
- Calculate the savings for pairs of stops and sort them from largest to smallest.
- Try joining the routes in that order. Join only different routes, using stops at their ends, and only if the combined load fits in the vehicle.
- Continue through the list until no more allowed, useful joins remain.
For example, if A needs 4 boxes and B needs 5, a van holding 8 boxes cannot serve both on that trip. Saving distance doesn’t help if the cargo won’t fit. Joining stops in the middle of a route would also break the existing chain, so the method joins route ends.
Good routes, quickly.
This is a heuristic: a practical shortcut that aims for a good answer quickly. Choosing the biggest saving first doesn’t guarantee the shortest possible overall plan, because one choice can prevent another useful combination later.
In Dispatch Lab, I use it as one way to build capacity-constrained routes. Nearest neighbor instead chooses a nearby next stop; 2-opt can improve a route by changing connections and reversing a section. Comparing them shows how different choices affect total distance.
Dispatch Lab uses made-up map coordinates and straight-line distances. A real delivery planner would need road distances and might also account for traffic, opening hours, and driver schedules.
Further reading: MIT’s routing lecture and the University of Málaga’s algorithm overview.