RoutingBlocks
is an open-source Python package for the implementation of algorithms for Vehicle Routing Problems with
Intermediate Stops.
It provides a set of modular algorithmic components and efficient data structures that can be used as building blocks for problem-specific metaheuristic algorithms. These components are tailored specifically to tackle the challenges of VRPIS, but can be used for other classes of vehicle routing problems as well.
This package is under active development. Expect potentially breaking changes.
The package is available on PyPI and can be installed using pip
:
pip install routingblocks
To obtain the bleeding-edge development version, run
pip install git+https://github.com/tumBAIS/RoutingBlocks
instead.
- Efficient C++-based solution representation
- Customizable Local Search Solver
- Framework for ALNS-based metaheuristics
- Efficient native implementations of numerous destroy, repair, and local search operators
- Move caches implemented in native code to allow high-performance operator implementations in Python
- Support for custom native extensions
We provide an example implementation of an ALNS-based algorithm for the EVRPTW-PR as part of this repository.
Further documentation is available at readthedocs.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
See CONTRIBUTING.md for more information and documentation on setting up a development environment.