pyvrp
Open-source, state-of-the-art vehicle routing problem solver in an easy-to-use Python package.
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 10 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (18.9%) to scientific vocabulary
Keywords
Repository
Open-source, state-of-the-art vehicle routing problem solver in an easy-to-use Python package.
Basic Info
- Host: GitHub
- Owner: PyVRP
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://pyvrp.org/
- Size: 11.6 MB
Statistics
- Stars: 460
- Watchers: 11
- Forks: 89
- Open Issues: 40
- Releases: 29
Topics
Metadata Files
README.md
PyVRP is an open-source, state-of-the-art vehicle routing problem (VRP) solver. It currently supports VRPs with: - Pickups and deliveries between depots and clients (capacitated VRP, VRP with simultaneous pickup and delivery, VRP with backhaul); - Vehicles of different capacities, costs, shift durations, routing profiles, and maximum distance and duration constraints (heterogeneous fleet VRP, site-dependent VRP); - Time windows, client service durations, and release times (VRP with time windows and release times); - Multiple depots (multi-depot VRP); - Reloading along routes at different reload depots (multi-trip VRP); - Optional clients with prizes for visiting (prize collecting, team orienteering problem); - Client groups imposing additional restrictions on multiple clients jointly (generalised VRP, VRP with multiple time windows).
PyVRP is available on the Python package index as pyvrp.
It may be installed in the usual way as
pip install pyvrp
This also resolves the few core dependencies PyVRP has.
The documentation is available here.
[!TIP] If you are new to vehicle routing or metaheuristics, you might benefit from first reading the introduction to VRP and introduction to HGS pages.
Examples
We provide some example notebooks that show how PyVRP may be used to solve vehicle routing problems. These include:
- A short tutorial and introduction to PyVRP's modelling interface, here. This is a great way to get started with PyVRP.
- A notebook solving classical VRP variants, here. In this notebook we solve several benchmark instances of the CVRP and VRPTW problems. We also demonstrate how to use the plotting tools available in PyVRP to visualise the instance and statistics collected during the search procedure.
- A notebook implementing a
solvemethod using PyVRP's components, here. This notebook is a great way to dive deeper into how PyVRP works internally.
Getting help
Feel free to open an issue or a new discussion thread here on GitHub. Please do not e-mail us with questions, modelling issues, or code examples. Those are much easier to discuss via GitHub than over e-mail. When writing your issue or discussion, please follow the instructions here.
Contributing
While we are very grateful for any contributions you are willing to make, reviewing and maintaining third-party code takes a significant amount of our time. Before you start working on your contribution, please have a look here to get started. Make sure to discuss the change first in a GitHub issue. Feel free to open a new one if no appropriate issue already exists!
How to cite PyVRP
If you use PyVRP in your research, please consider citing the following paper:
Wouda, N.A., L. Lan, and W. Kool (2024). PyVRP: a high-performance VRP solver package. INFORMS Journal on Computing, 36(4): 943-955. https://doi.org/10.1287/ijoc.2023.0055
Or, using the following BibTeX entry:
bibtex
@article{Wouda_Lan_Kool_PyVRP_2024,
doi = {10.1287/ijoc.2023.0055},
url = {https://doi.org/10.1287/ijoc.2023.0055},
year = {2024},
volume = {36},
number = {4},
pages = {943--955},
publisher = {INFORMS},
author = {Niels A. Wouda and Leon Lan and Wouter Kool},
title = {{PyVRP}: a high-performance {VRP} solver package},
journal = {INFORMS Journal on Computing},
}
A preprint of this paper is available on arXiv. Since PyVRP extends HGS-CVRP, please also consider citing Vidal (2022).
Owner
- Name: PyVRP
- Login: PyVRP
- Kind: organization
- Repositories: 1
- Profile: https://github.com/PyVRP
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it using the following metadata."
authors:
- family-names: "Wouda"
given-names: "Niels A."
orcid: "https://orcid.org/0000-0003-2463-0309"
- family-names: "Lan"
given-names: "Leon"
orcid: "https://orcid.org/0000-0001-7479-0218"
- family-names: "Kool"
given-names: "Wouter"
orcid: "https://orcid.org/0000-0002-1837-1454"
title: "PyVRP"
url: "https://github.com/PyVRP/PyVRP"
identifiers:
- description: "This is the collection of all archived snapshots of PyVRP."
type: doi
value: "10.5281/zenodo.11409402"
preferred-citation:
type: article
authors:
- family-names: "Wouda"
given-names: "Niels A."
orcid: "https://orcid.org/0000-0003-2463-0309"
- family-names: "Lan"
given-names: "Leon"
orcid: "https://orcid.org/0000-0001-7479-0218"
- family-names: "Kool"
given-names: "Wouter"
orcid: "https://orcid.org/0000-0002-1837-1454"
title: "PyVRP: a high-performance VRP solver package"
journal: "INFORMS Journal on Computing"
year: 2024
doi: "10.1287/ijoc.2023.0055"
volume: 36
issue: 4
start: 943
end: 955
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 266
- Total pull requests: 642
- Average time to close issues: 4 months
- Average time to close pull requests: 7 days
- Total issue authors: 43
- Total pull request authors: 9
- Average comments per issue: 3.44
- Average comments per pull request: 2.5
- Merged pull requests: 526
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 67
- Pull requests: 270
- Average time to close issues: 3 days
- Average time to close pull requests: 5 days
- Issue authors: 33
- Pull request authors: 7
- Average comments per issue: 1.54
- Average comments per pull request: 2.59
- Merged pull requests: 203
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- N-Wouda (138)
- leonlan (48)
- wouterkool (28)
- yxz777 (3)
- braktar (3)
- HarryZhangHH (2)
- camold (2)
- shubhampaliwal-fareye (2)
- ChristianP85 (2)
- SemUijen (2)
- abb-omidi (2)
- bmorlo (2)
- Olivier418 (2)
- dimauloagustin (1)
- libklein (1)
Pull Request Authors
- N-Wouda (472)
- leonlan (113)
- wouterkool (37)
- joopvdh (10)
- alessio-locatelli (4)
- libklein (2)
- shkangomelet (2)
- braktar (1)
- ericemrick-8451 (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v3 composite
- actions/download-artifact v3 composite
- actions/setup-python v4 composite
- actions/upload-artifact v3 composite
- pypa/cibuildwheel v2.12.0 composite
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- codecov/codecov-action v3 composite
- egor-tensin/setup-clang v1 composite
- egor-tensin/setup-gcc v1 composite
- matplotlib >=2.2.0
- numpy >=1.15.2
- python ^3.8,<4.0
- tomli ^2.0.1
- tqdm ^4.64.1
- vrplib ^1.0.0
- actions/cache v3 composite
- actions/checkout v4 composite
- actions/configure-pages v3 composite
- actions/deploy-pages v2 composite
- actions/setup-python v4 composite
- actions/upload-pages-artifact v1 composite
- egor-tensin/setup-gcc v1 composite