Replies: 1 comment 1 reply
-
|
Hi @0nyr, congrats on the MAMUT-routing library! It touches upon a lot of things I've personally encountered while benchmarking PyVRP: the different conventions, BKS tracking, and hard-to-find instances. These types of initiatives have been on our minds on several occasions. I believe some students in the Netherlands have worked on a similar benchmarking platform together with ORTEC, though it was never published afterwards. Here are our answers to your questions and comments:
We've already covered most of these conventions through our VRPLIB work and are currently still OK with our VRPLIB-based examples. They are fairly simple and straightforward for our benchmarking purposes/testing. We don't feel much friction that would be solved from adopting different formats, and maintaining adapters for them is an effort we don't have capacity for at the moment. I don't mind occasionally reviewing an adapter to PyVRP, so feel free to ping me on GitHub to request a review.
Unfortunately, we currently don't have the capacity to provide feedback or get involved in MAMUT-routing, or other academic work. Instead, I'd highly recommend reaching out to the CVRPLIB maintainers to see if you can involve them - I think you both share the same goals. Just an FYI regarding your Reddit post:
This is not accurate: CVRPLIB instances and BKS for VRPTW follow the DIMACS convention, which we also use in our instances. One thing doesn't sit well with me here: our discussions board is primarily used for our own development work, and announcements like this feel a bit like self-promotion. A heads-up email beforehand would have been more appropriate. I'm closing this discussion since I've touched upon our stance here, but feel free to continue the discussion if you've got other thoughts to share. Wishing you the best of luck! |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
We have just released the public website for MAMUT-routing. See this Reddit r/optimization announcement.
I am posting here first because part of the project may be relevant to PyVRP users and solver developers, second because this project is directly inspired by PyVRP / PyVRP/Instances and use it through the mamut-routing-lib CLI as a dependency.
MAMUT-routing is an open-source, open-science benchmark infrastructure for routing research. The current public snapshot contains 2 problem classes (CVRP and VRPTW with a focus on the later), 5 benchmark families, 1294 instances, and 1296 BKS/reference-solution entries. The repository combines curated benchmark artifacts, objective metadata, BKS/route files, provenance information, a website, and a workbench for visualizing or generating instances.
One motivation is the ambiguity around classical VRPTW benchmarks. The same Solomon / Gehring-Homberger customer data can be used under different contracts, which adds further work and difficulty on students, researchers and practitioners looking to compare their algorithms with the state-of-the-art (see this reddit post).
From a PyVRP perspective, the useful part is not only the public website. The repository is meant to expose reusable benchmark artifacts with enough metadata to let external tooling decide how to load or reject them. For example, a solver script should be able to distinguish a DIMACS-style integer mono-cost VRPTW instance from a SINTEF-style hierarchical objective instance before reporting a result. Likewise, generated
Mamut2026instances should carry enough context to explain whether a cost matrix comes from road-network travel time, road-network distance, or Euclidean distance.We are also interested in whether the MAMUT-routing JSON structure can be made easier to consume from PyVRP examples or benchmark scripts. Have a look at
mamut-routing-libfor that matter, directly inspired by PyVRP/Instances. If there are fields that would make conversion cleaner, or if some objective conventions should be represented differently, this is the right time to discuss it.We would be very interested in feedback or direct involvement from the PyVRP community.
The source code is MIT. Some data has family-specific terms: ORTEC material is CC BY-NC 4.0, and OSM-derived artifacts are ODbL where applicable.
Issues and discussions are open here:
Beta Was this translation helpful? Give feedback.
All reactions