A state-of-the-art vehicle routing problem solver.
Project description
The pyvrp
package is an open-source, state-of-the-art vehicle routing problem (VRP) solver.
It currently supports the capacitated VRP (CVRP), the VRP with time windows (VRPTW), and prize-collecting.
The implementation builds on Thibaut Vidal's HGS-CVRP, but has been completely redesigned to be easy to use as a highly customisable Python package, while maintaining speed and state-of-the-art performance.
Users can customise various aspects of the algorithm using Python, including population management, crossover strategies, granular neighbourhoods and operator selection in the local search.
Additionally, for advanced use cases such as supporting additional VRP variants, users can build and install pyvrp
directly from the source code.
pyvrp
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.
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 the pyvrp
package may be used to solve vehicle routing problems.
These include:
- The vehicle routing problem with time windows (VRPTW), here. We solve several instances from the literature, including a large 1000 customer instance.
- The capacitated vehicle routing problem (CVRP), here. We solve an instance with 439 customers to near optimality within 30 seconds.
Contributing
We are very grateful for any contributions you are willing to make. Please have a look here 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.
How to cite PyVRP
TODO
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for pyvrp-0.4.2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 579a74f72da2ba84d7b5c794a55cb4a66091f1973fcbe8a4177afed13bbec466 |
|
MD5 | 2e780fd6324cc3cc5e964cc9e08d0a7d |
|
BLAKE2b-256 | 08fc9f1c0e9347da2ab4682d660fd5ff4bf590a67988bc1cbf7883b0d0706b4f |
Hashes for pyvrp-0.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d095af619e4639259cdc54e604459ec0ad6636d11a310018248f98660080211 |
|
MD5 | da45fac095dd0f34ef1f3cc768b04ee1 |
|
BLAKE2b-256 | cd57f537e93e2575c943800db6b686551738ec8fd7d71a823f615ffd2efb4191 |
Hashes for pyvrp-0.4.2-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6f0a2ac52cd529466eb6eae2e331542ee85a6d7777b5a3548035c3d4b521991 |
|
MD5 | 858d57195d10b788e204a0b797bfea3c |
|
BLAKE2b-256 | bafef88a39c2376506fdb56d7829b7a0c0b2f5a2fb69e515d14945d3febcea30 |
Hashes for pyvrp-0.4.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5716eeab593fd21fa64a625c4b8eaba7dd63a4a053685e863de41cb4be18642 |
|
MD5 | 7671e70a352d177b3df18a1029f3ba81 |
|
BLAKE2b-256 | 569c188d70b304619054b6a6369f9851fcdebfe792c701d1bb45d55b5674d78a |
Hashes for pyvrp-0.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca6196015cdef506d4f47bb734e738cd1e18a3a5a6e0173f002aea0eddc3eb5e |
|
MD5 | 8c474a0f715865f65b5461a4bff10426 |
|
BLAKE2b-256 | b456b858de9746b648f80d751fec6253fd98b9c85c290c5e0cb6e6a9ef9cfc44 |
Hashes for pyvrp-0.4.2-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca5052bc42414a4a0730eead242ba4836666b55623a0a7330bd8b7266257e992 |
|
MD5 | a6acd4d8e8a6078b489b33ea65bf4ead |
|
BLAKE2b-256 | 62409390105b2d90dac92d0fdf2e162b66600036507ddc6b54606490388c94c3 |
Hashes for pyvrp-0.4.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f0a68ae6bf85f3d53ca1d62ac2b0349dc628c1a120b00d8245d722a22906987 |
|
MD5 | 09731ddb528585b13f86c6216683a056 |
|
BLAKE2b-256 | d048fcfa570d4f6a428644d4145825f1c71019576f8465c958fdeeb8c4c8ada0 |
Hashes for pyvrp-0.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8906ebda9ded7325e091974960a1525a67ad897adf6f96545ba1f349a0c918e |
|
MD5 | 2fea4017758a607ceb835ab088c4b4d3 |
|
BLAKE2b-256 | 1436acd3383f7ce0c1ee574c59e8fb16719e33ba5dc380cf1c47be6d3fb8993f |
Hashes for pyvrp-0.4.2-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c7197588c3968ba93dce65da94f13fef59799910efef9aef8d2efbe64fea0b8 |
|
MD5 | 634325091a7b3ff7df5e282dab9ba860 |
|
BLAKE2b-256 | e2bcf3dff58a74132f10ff04185941cda913896f56d74c7c2a3da8efce98cd59 |
Hashes for pyvrp-0.4.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80f5705b5b0860c7b3d49dbb3c0d24f9cbe849e23970cf64fd651de3cc15b575 |
|
MD5 | fba4c06eccd3a7475c4692cc6bb0246c |
|
BLAKE2b-256 | 17ba4041bc2105987cac00e953a5bbf724f5f74bc854089e8deaa2a806d8c5e1 |
Hashes for pyvrp-0.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0603a757890b60dc53b28a2956e52b873a4b2d518ad25efe24f71e9e02279c8 |
|
MD5 | fb270512f134850fa4efccd979cf3f5a |
|
BLAKE2b-256 | 3f7574f5f8e4fce7375a5bc7ac7baef8b3d99112e7d8c04b41cf6ea18b8d4678 |
Hashes for pyvrp-0.4.2-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1bc77a579da480c59472744a7e3b198d8cf9065038296667fa7bb39d4f27e4ac |
|
MD5 | d7f18627c564e291353581909ac215cb |
|
BLAKE2b-256 | fc88859ee844197a4e49e68a94a58e6ec48cb48b0953be28bae45855d8b262ae |