Skip to content

1. Browse and download benchmarks

On the website

The website lists every published instance with its best-known solution (BKS), a route map, the objective contract and the publication history. Navigate problem type → family → metric variant → place → size → instance, or filter any catalog level. An instance page links every artifact (.vrp.json, BKS, sidecars) and, for static instances, offers a .vrp ↓ chip that writes the classic CVRPLIB file in your browser.

Per family, with the CLI

Release archives are one zip per (problem type, family), plus one zip per family-first collection (Poryos2026, Mamut2026), so you download only what you need. Install the lib with its CLI extra, then:

pip install "mamut-routing-lib[cli]"            # or: uv tool install "mamut-routing-lib[cli]"

mamut-routing remote list                                                    # archives of the latest release
mamut-routing remote list --problem-type VRPTW --benchmark-name Sintef2008  # filter
mamut-routing --benchmarks-dir ./benchmarks remote fetch \
    --problem-type VRPTW --benchmark-name Sintef2008                          # download and extract
mamut-routing --benchmarks-dir ./benchmarks remote verify \
    --problem-type VRPTW --benchmark-name Sintef2008                          # sha256 against the manifest
mamut-routing --benchmarks-dir ./benchmarks list --problem-type VRPTW        # what is on disk now

Keep the same filters on verify as on fetch: an unfiltered verify checks every asset of the manifest and fails on the ones you did not download. To pin a release instead of the latest one, --tag is an option of remote itself: mamut-routing remote --tag <tag> list.

Collections

A collection archive holds every problem type of the family, so select it by family alone: remote fetch --benchmark-name Poryos2026 (adding --problem-type filters it out). Mamut2026's ten largest POI instances ship their distance matrices as sha256 pins; rebuild them with mamut-tools generate materialize-distances as the collection README explains. See Release archives.

Everything, pinned to a commit, with git

For a paper or an experiment, add the repository as a submodule and initialise only the families you need. A plain clone leaves the satellite directories empty; the default families (Sintef2008, Dimacs2021, Ortec2022, Dabia2013) are in the repository itself.

git submodule add https://github.com/ANR-MAMUT/MAMUT-routing.git external/MAMUT-routing
git -C external/MAMUT-routing submodule update --init benchmarks/Mamut2026          # ~0.3 GB
git -C external/MAMUT-routing submodule update --init benchmarks/TDVRPTW/Rifki2020  # one TD family

Sizes and licenses are on the family pages. Next: Install the Python stack.