back to home

PyVRP / PyVRP

Open-source, state-of-the-art vehicle routing problem solver in an easy-to-use Python package.

599 stars
123 forks
37 issues
PythonC++Jupyter Notebook

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing PyVRP/PyVRP in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/PyVRP/PyVRP)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

PyVRP is an open-source, state-of-the-art vehicle routing problem (VRP) solver developed by RoutingLab. 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 . It may be installed in the usual way as The documentation is available [here][1]. > [!TIP] > Looking for professional support? RoutingLab provides consulting, custom development, and FastVRP - a production-ready route optimisation API built on PyVRP. Tutorials We provide many tutorials that show how to use PyVRP to solve vehicle routing problems. The [quickstart][4] introduces PyVRP's modelling interface and is a great way to get started. The following tutorials cover specific features in more detail: • [Load and vehicle capacities][5]: pickups, deliveries, and multiple load dimensions. • [Time and duration constraints][6]: time windows, service durations, release times, shifts and overtime. • [Profiles][7]: different distances and durations for different vehicle types, and modelling access restrictions. • [Optional clients][8]: using rewards to visit optional clients. • [Mutually exclusive groups][9]: modelling alternative services. • [Reloading][10]: vehicle reloading at depots during routes. For those interested in PyVRP's underlying algorithm, see [this page][11] for a high-level description of the iterated local search algorithm, and [this notebook][12] for an implementation of the method using PyVRP's components. Getting help Feel free to open an issue or a new discussion thread here on GitHub. When writing your issue or discussion, please follow the instructions [here][3]. For professional support, contact us at info@routinglab.tech. 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][2] 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: A preprint of this paper is available on [arXiv][13]. [1]: https://pyvrp.org/ [2]: https://pyvrp.org/dev/contributing.html [3]: https://pyvrp.org/setup/getting_help.html [4]: https://pyvrp.org/notebooks/quick_start.html [5]: https://pyvrp.org/notebooks/load.html [6]: https://pyvrp.org/notebooks/duration_constraints.html [7]: https://pyvrp.org/notebooks/profiles.html [8]: https://pyvrp.org/notebooks/optional_clients.html [9]: https://pyvrp.org/notebooks/mutually_exclusive_groups.html [10]: https://pyvrp.org/notebooks/reloading.html [11]: https://pyvrp.org/dev/algorithm.html [12]: https://pyvrp.org/notebooks/pyvrp_implementation.html [13]: https://arxiv.org/abs/2403.13795