![PyVRP logo](docs/source/assets/images/logo.svg)
[![PyPI version](https://img.shields.io/pypi/v/PyVRP?style=flat-square&label=PyPI)](https://pypi.org/project/pyvrp/)
[![CI](https://img.shields.io/github/actions/workflow/status/PyVRP/PyVRP/.github%2Fworkflows%2FCI.yml?branch=main&style=flat-square&logo=github&label=CI)](https://github.com/PyVRP/PyVRP/actions/workflows/CI.yml)
[![DOC](https://img.shields.io/github/actions/workflow/status/PyVRP/PyVRP/.github%2Fworkflows%2FDOC.yml?branch=main&style=flat-square&logo=github&label=DOC)](https://pyvrp.org/)
[![codecov](https://img.shields.io/codecov/c/github/PyVRP/PyVRP?style=flat-square&logo=codecov&label=Codecov)](https://codecov.io/gh/PyVRP/PyVRP)
[![DOI:10.1287/ijoc.2023.0055](https://img.shields.io/badge/DOI-ijoc.2023.0055-green?style=flat-square&color=blue)](https://doi.org/10.1287/ijoc.2023.0055)
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, and maximum distance and duration constraints (heterogeneous fleet VRP);
- Time windows, client service durations, and release times (VRP with time windows and release times);
- Multiple depots (multi-depot 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][1].
> [!TIP]
> If you are new to vehicle routing or metaheuristics, you might benefit from first reading the [introduction to VRP][6] and [introduction to HGS][7] 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][5].
This is a great way to get started with PyVRP.
- A notebook solving classical VRP variants, [here][4].
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 `solve` method using PyVRP's components, [here][9].
This notebook is a great way to dive deeper into how PyVRP works internally.
### Contributing
We are very grateful for any contributions you are willing to make. Please have
a look [here][2] to get started. If you aim to make a large change, it is
helpful to discuss the change first in a new GitHub issue. Feel free to open
one!
### Getting help
If you are looking for help, please follow the instructions [here][3].
### 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_, forthcoming.
> 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},
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][11].
Since PyVRP extends [HGS-CVRP][8], please also consider citing [Vidal (2022)][10].
[1]: https://pyvrp.org/
[2]: https://pyvrp.org/dev/contributing.html
[3]: https://pyvrp.org/setup/getting_help.html
[4]: https://pyvrp.org/examples/basic_vrps.html
[5]: https://pyvrp.org/examples/quick_tutorial.html
[6]: https://pyvrp.org/setup/introduction_to_vrp.html
[7]: https://pyvrp.org/setup/introduction_to_hgs.html
[8]: https://github.com/vidalt/HGS-CVRP/
[9]: https://pyvrp.org/examples/using_pyvrp_components.html
[10]: https://doi.org/10.1016/j.cor.2021.105643
[11]: https://arxiv.org/abs/2403.13795
Raw data
{
"_id": null,
"home_page": "https://pyvrp.org/",
"name": "pyvrp-load_balancing",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "vehicle routing problem, hybrid genetic search, metaheuristic",
"author": "Niels Wouda",
"author_email": "nielswouda@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/0a/a7/3378e22dca52b8a0fc27c80199742e9af02330810c96c66028d35c76ff6d/pyvrp_load_balancing-0.9.0a0.tar.gz",
"platform": null,
"description": "![PyVRP logo](docs/source/assets/images/logo.svg)\n\n[![PyPI version](https://img.shields.io/pypi/v/PyVRP?style=flat-square&label=PyPI)](https://pypi.org/project/pyvrp/)\n[![CI](https://img.shields.io/github/actions/workflow/status/PyVRP/PyVRP/.github%2Fworkflows%2FCI.yml?branch=main&style=flat-square&logo=github&label=CI)](https://github.com/PyVRP/PyVRP/actions/workflows/CI.yml)\n[![DOC](https://img.shields.io/github/actions/workflow/status/PyVRP/PyVRP/.github%2Fworkflows%2FDOC.yml?branch=main&style=flat-square&logo=github&label=DOC)](https://pyvrp.org/)\n[![codecov](https://img.shields.io/codecov/c/github/PyVRP/PyVRP?style=flat-square&logo=codecov&label=Codecov)](https://codecov.io/gh/PyVRP/PyVRP)\n[![DOI:10.1287/ijoc.2023.0055](https://img.shields.io/badge/DOI-ijoc.2023.0055-green?style=flat-square&color=blue)](https://doi.org/10.1287/ijoc.2023.0055)\n\nPyVRP is an open-source, state-of-the-art vehicle routing problem (VRP) solver.\nIt currently supports VRPs with:\n- Pickups and deliveries between depots and clients (capacitated VRP, VRP with simultaneous pickup and delivery, VRP with backhaul);\n- Vehicles of different capacities, costs, shift durations, and maximum distance and duration constraints (heterogeneous fleet VRP);\n- Time windows, client service durations, and release times (VRP with time windows and release times);\n- Multiple depots (multi-depot VRP);\n- Optional clients with prizes for visiting (prize collecting, team orienteering problem);\n- Client groups imposing additional restrictions on multiple clients jointly (generalised VRP, VRP with multiple time windows).\n\nPyVRP is available on the Python package index as `pyvrp`.\nIt may be installed in the usual way as\n```\npip install pyvrp\n```\nThis also resolves the few core dependencies PyVRP has.\nThe documentation is available [here][1].\n\n> [!TIP]\n> If you are new to vehicle routing or metaheuristics, you might benefit from first reading the [introduction to VRP][6] and [introduction to HGS][7] pages.\n\n### Examples\n\nWe provide some example notebooks that show how PyVRP may be used to solve vehicle routing problems.\nThese include:\n\n- A short tutorial and introduction to PyVRP's modelling interface, [here][5].\n This is a great way to get started with PyVRP.\n- A notebook solving classical VRP variants, [here][4].\n In this notebook we solve several benchmark instances of the CVRP and VRPTW problems.\n We also demonstrate how to use the plotting tools available in PyVRP to visualise the instance and statistics collected during the search procedure. \n- A notebook implementing a `solve` method using PyVRP's components, [here][9].\n This notebook is a great way to dive deeper into how PyVRP works internally.\n\n### Contributing\n\nWe are very grateful for any contributions you are willing to make. Please have\na look [here][2] to get started. If you aim to make a large change, it is\nhelpful to discuss the change first in a new GitHub issue. Feel free to open\none!\n\n### Getting help\n\nIf you are looking for help, please follow the instructions [here][3].\n\n### How to cite PyVRP\n\nIf you use PyVRP in your research, please consider citing the following paper:\n\n> Wouda, N.A., L. Lan, and W. Kool (2024).\n> PyVRP: a high-performance VRP solver package.\n> _INFORMS Journal on Computing_, forthcoming.\n> https://doi.org/10.1287/ijoc.2023.0055\n\nOr, using the following BibTeX entry:\n\n```bibtex\n@article{Wouda_Lan_Kool_PyVRP_2024,\n doi = {10.1287/ijoc.2023.0055},\n url = {https://doi.org/10.1287/ijoc.2023.0055},\n year = {2024},\n publisher = {INFORMS},\n author = {Niels A. Wouda and Leon Lan and Wouter Kool},\n title = {{PyVRP}: a high-performance {VRP} solver package},\n journal = {INFORMS Journal on Computing},\n}\n```\n\nA preprint of this paper is available on [arXiv][11]. \nSince PyVRP extends [HGS-CVRP][8], please also consider citing [Vidal (2022)][10].\n\n[1]: https://pyvrp.org/\n\n[2]: https://pyvrp.org/dev/contributing.html\n\n[3]: https://pyvrp.org/setup/getting_help.html\n\n[4]: https://pyvrp.org/examples/basic_vrps.html\n\n[5]: https://pyvrp.org/examples/quick_tutorial.html\n\n[6]: https://pyvrp.org/setup/introduction_to_vrp.html\n\n[7]: https://pyvrp.org/setup/introduction_to_hgs.html\n\n[8]: https://github.com/vidalt/HGS-CVRP/\n\n[9]: https://pyvrp.org/examples/using_pyvrp_components.html\n\n[10]: https://doi.org/10.1016/j.cor.2021.105643\n\n[11]: https://arxiv.org/abs/2403.13795\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Added load balancing functionality.",
"version": "0.9.0a0",
"project_urls": {
"Homepage": "https://pyvrp.org/",
"Repository": "https://github.com/bmorlo/PyVRP_BM_load_balancing",
"Tracker": "https://github.com/PyVRP/PyVRP/issues"
},
"split_keywords": [
"vehicle routing problem",
" hybrid genetic search",
" metaheuristic"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ca68deb4f68bad7fb899094c5081819c053d6473076fc695b2224c4bc9e15e92",
"md5": "529be3f197dc8d3d475a77db4762d409",
"sha256": "784bdf82d92986c7b81c1f26cd9d5bbd7a84c16ffe4717ca748e9e7d7a224a70"
},
"downloads": -1,
"filename": "pyvrp_load_balancing-0.9.0a0-cp310-cp310-manylinux_2_35_x86_64.whl",
"has_sig": false,
"md5_digest": "529be3f197dc8d3d475a77db4762d409",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 819901,
"upload_time": "2024-05-27T12:20:32",
"upload_time_iso_8601": "2024-05-27T12:20:32.154248Z",
"url": "https://files.pythonhosted.org/packages/ca/68/deb4f68bad7fb899094c5081819c053d6473076fc695b2224c4bc9e15e92/pyvrp_load_balancing-0.9.0a0-cp310-cp310-manylinux_2_35_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0aa73378e22dca52b8a0fc27c80199742e9af02330810c96c66028d35c76ff6d",
"md5": "373a8a0a82c5d94991d477c0865f462b",
"sha256": "cd1ae1b68b9887939140c31fb66b1343d17dce2700d1ca902cdaca37df0309ac"
},
"downloads": -1,
"filename": "pyvrp_load_balancing-0.9.0a0.tar.gz",
"has_sig": false,
"md5_digest": "373a8a0a82c5d94991d477c0865f462b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 528123,
"upload_time": "2024-05-27T12:20:34",
"upload_time_iso_8601": "2024-05-27T12:20:34.529130Z",
"url": "https://files.pythonhosted.org/packages/0a/a7/3378e22dca52b8a0fc27c80199742e9af02330810c96c66028d35c76ff6d/pyvrp_load_balancing-0.9.0a0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-27 12:20:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "bmorlo",
"github_project": "PyVRP_BM_load_balancing",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pyvrp-load_balancing"
}