# Source and data notes

## Implementation provenance

The solver and its MoonBit package structure are original implementations in
this repository. The code uses well-known algorithm families as engineering
references:

- Clarke–Wright savings construction;
- adaptive large-neighborhood search (ALNS);
- greedy, regret-based, demand-priority, and time-window repair;
- 2-opt, relocate, swap, reverse, local search, and simulated annealing.

No third-party MoonBit VRP solver source is copied into the implementation.

## Fixtures and benchmark data

The small, urban, balanced, tight-window, infeasible, and generated examples
are synthetic fixtures created for deterministic tests and demonstrations.
They are not presented as public benchmark records.

`benchmarks/A-n32-k5.vrp` is a text fixture from the public CVRPLIB Augerat Set
A family. It retains the published `A-n32-k5` node coordinates, demands,
capacity, five-vehicle limit, `EUC_2D` convention, and known value 784. The
same text is embedded in `benchmark/cvrplib_a32.mbt` and parsed through the
public `instance.parse_cvrp` implementation, so the CLI and tests exercise the
actual parser rather than a hand-constructed object.

Reference links:

- [CVRPLIB CVRP instances](https://galgos.inf.puc-rio.br/cvrplib/index.php/en/instances/1)
- [Public A-n32-k5 instance mirror](https://github.com/giulianoxt/vehicle-routing-aco/blob/master/augerat-a/A-n32-k5.vrp)

The benchmark source and the solver implementation are kept separate in the
repository so a result can distinguish published metadata from measurements
produced by this code.

## Engineering scope

The package boundaries support a Mooncakes module, a CLI solver, a Wasm-
compatible optimization core, deterministic benchmark runs, and future richer
logistics constraints without requiring applications to depend on internal
random-number implementation details.
