RoutingBlocks
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.
Installation
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.
Features
- 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
Usage
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.
Contributing
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.
License
MIT