PyVRP: A High-Performance VRP Solver Package

Niels A. Wouda*, Leon Lan, Wouter Kool

*Corresponding author for this work

Research output: Contribution to JournalArticleAcademicpeer-review

503 Downloads (Pure)

Abstract

We introduce PyVRP, a Python package that implements hybrid genetic search in a state-of-the-art vehicle routing problem (VRP) solver. The package is designed for the VRP with time windows (VRPTW) but can be easily extended to support other VRP variants. PyVRP combines the flexibility of Python with the performance of C++ by implementing (only) performance-critical parts of the algorithm in C++ while being fully customizable at the Python level. PyVRP is a polished implementation of the algorithm that ranked first in the 2021 DIMACS VRPTW challenge and, after improvements, ranked first on the static variant of the EURO meets NeurIPS 2022 vehicle routing competition. The code follows good software engineering practices and is well documented and unit tested. PyVRP is freely available under the liberal MIT license. Through numerical experiments, we show that PyVRP achieves state-of-the-art results on the VRPTW and capacitated VRP. We hope that PyVRP enables researchers and practitioners to easily and quickly build on a state-of-the-art VRP solver.

Original languageEnglish
Pages (from-to)943-955
Number of pages13
JournalINFORMS Journal on Computing
Volume36
Issue number4
Early online date29 Jan 2024
DOIs
Publication statusPublished - Aug 2024

Bibliographical note

Publisher Copyright:
© 2024 INFORMS.

Keywords

  • C11
  • hybrid genetic search
  • open source
  • Python
  • time windows
  • vehicle routing problem

Fingerprint

Dive into the research topics of 'PyVRP: A High-Performance VRP Solver Package'. Together they form a unique fingerprint.

Cite this