VRPSolver
Interfaces|
Interface and demos |
Documentation |
Papers |
Release notes |
Requirements |
Download |
Installation |
Acknowledgements |
Contacts
VRPSolver is a Branch-Cut-and-Price based exact solver for vehicle routing and some related
problems. Main use cases of the solver are
- benchmarking heuristic algorithms against the lower bound/optimal solution obtained by the
solver;
- benchmarking exact algorithms against the solver;
- creating efficient models for new vehicle routing problems;
- testing new families of (robust) cutting planes within a state-of-the-art
Branch-Cut-and-Price algorithm.
The solver is described in the paper:
-
Pessoa, A., Sadykov, R., Uchoa, E., Vanderbeck, F.: A generic exact solver for
vehicle routing and related problems. Mathematical Programming B, 183:483-523, 2020.
DOI: 10.1007/s10107-020-01523-z
A preprint is available here
We advise to read the paper or the preprint before using the solver.
Papers which use VRPSolver
Interfaces
VRPSolver interface of this distribution is implemented in Julia v1.4.2
and is based on JuMP v0.18.
Interface documentation
Alternatively, VRPSolver is available via:
Demos
We recommend using the following demos to start working with VRPSolver.
Other applications are also available:
Material for the hands-on tutorial of the Autumn 2019 school
Release notes
- Beta v0.4.1a (BaPCod v053), 16/12/2022.
- License expiration check is removed.
- Beta v0.4.1 (BaPCod v053), 6/04/2021.
- Correction for backward labeling in some models with accumulated resource consumption bounds on arcs.
- Support of Ryan&Foster branching constraints in symmetric models.
- Correction for sorting of Ryan&Foster branching contraints in strong branching.
- Improved determinism.
- Correction for enumeration with binary resources in some non-symmetric models.
- Similar branching candidates are not kept for the next phase in strong branching.
- License expiration date is changed to December 1, 2022.
- Beta v0.4 (BaPCod v051), 30/10/2020.
- Correction for wrong calculation of accumulated resource consumption bounds for arcs (for some models).
- Correction for wrong calculation of reduced cost fixing threshold (the case of safe lower bound).
- Beta v0.4 (BaPCod v050), 13/09/2020.
- Fixing bugs
- Elementarity sets are introduced (see BWTSP demo for an usage example)
- Distance matrix is defined for elementarity sets instead of packing sets
- Julia is updated to version 1.4.2
- Support for both Cplex 12.9 and 12.10 see get started instructions
- Documentation is updated
- Beta v0.3, 17/11/2019. This version is required for the Autumn 2019 school in
Paris. Various improvements.
- Beta v0.22, 27/10/2019. Performance improvements.
- Beta v0.21, 30/09/2019. Bug fixing, please update if you have an older version.
- Beta v0.2, 22/09/2019. Update of interface to Julia 1.2 (all demos are updated). Various bug fixing.
- Beta v0.11, 1/06/2019. Some performance improvements of the interface.
- Beta v0.1, 21/05/2019. Initial release.
Requirements
The software is for academic use only. Is it distributed as a docker image in order to
facilitate installation and usage.
To install and run the solver, you need
- Docker free software for MacOS or Ubuntu or Windows
- Users of MacOS and Windows systems which do not meet the Docker requirements can use the Docker Toolbox.
- Version 12.9 or 12.10 of IBM
ILOG CPLEX for 64-bit Linux (even for non-Linux users), which is free
for academic use.
VRPSolver uses BaPCod, a C++ library
implementing generic Branch-Cut-and-Price.
You need to accept the BapCod licence from Inria to use it for free for academic purposes.
Download for free
Download BaPCod license here.
Please fill in the form:
After accepting the license, you will receive an e-mail with a link to download the zip
archive (270 Mb).
Installation instructions
Installation and get started instructions for the VRPSolver
Acknowledgements
- Financial support : Inria (France), Bordeaux University (France), Universidade Federal Fluminense (Brazil)
- Solver implementation : Ruslan Sadykov, Issam Tahiri, Francois Vanderbeck, Artur Pessoa, Teobaldo Bulhoes, Isaac Balster
- Interface implementation : Guillaume Marques, Teobaldo Bulhoes, Eduardo Queiroga
- Demos : Teobaldo Bulhões, Eduardo Uchoa, Eduardo Queiroga, João Marcos
- Technical support : Laurent Facq, Philippe Depouilly
- Installation : Laurent Facq, laurent(point)facq(at)math(point)u-bordeaux(point)fr
- Other issues : François Clautiaux, francois(point)clautiaux(at)math(point)u-bordeaux(point)fr
Last updated: June 6, 2023.