319. Clarke-Wright

The savings algorithm (Clarke & Wright, 1964) — the classical constructive heuristic for VRP. Simple, fast, surprisingly good for capacitated VRP.

319.1. The savings concept

Two single-customer routes: depot 𝑖 depot and depot 𝑗 depot. Cost = 2𝑐0𝑖+2𝑐0𝑗.

Merge into depot 𝑖𝑗 depot. Cost = 𝑐0𝑖+𝑐𝑖𝑗+𝑐0𝑗.

Saving:

𝑠𝑖𝑗=(2𝑐0𝑖+2𝑐0𝑗)(𝑐0𝑖+𝑐𝑖𝑗+𝑐0𝑗)=𝑐0𝑖+𝑐0𝑗𝑐𝑖𝑗

By triangle inequality 𝑠𝑖𝑗0. Large savings → customers 𝑖 and 𝑗 are close to each other and far from the depot.

319.2. Algorithm

Initialize: one route per customer (depot → i → depot)
Compute s[i,j] for all pairs and sort descending
For each (i, j) in sorted order:
    If merging routes containing i and j is feasible:
        - i and j must be on the same "endpoint" of their routes
        - i and j must be on different routes (not the same one)
        - Merged route's total demand ≤ Q (capacity)
    Then merge them
Return routes

Sort: 𝑂(𝑛2log𝑛). Merge checks: 𝑂(𝑛2) pairs. Total: 𝑂(𝑛2log𝑛).

319.3. Two variants

Parallel (the original): consider all savings in one sorted list; merge eagerly. Multiple routes grow simultaneously.

Sequential: process one route at a time; finish growing it before starting another. Tends to produce longer routes; sometimes better, sometimes worse than parallel.

319.4. Variants & enhancements

319.5. Real-world significance

For 60 years (1964–today), Clarke-Wright + 2-opt has been the standard quick-and-dirty VRP heuristic:

Modern heuristics (ALNS, HGS) do better but at significantly more complexity.

319.6. Daganzo continuous-approximation alternative

For very large fleets, instead of optimizing each route, use Daganzo’s continuous-approximation formulas to design route structure. See Daganzo.

319.7. See also