Home

Awesome

Vehicle Routing Open-source Optimization Machine

Good solutions, fast.


About

VROOM is an open-source optimization engine written in C++20 that aim at providing good solutions to various real-life vehicle routing problems (VRP) within a small computing time.

The project has been initiated by Verso to power its route optimization API.

Supported problem types

VROOM can solve several well-known types of vehicle routing problems (VRP).

VROOM can also solve any mix of the above problem types.

Features

VROOM models a VRP with a description of resources (vehicles), single-location pickup and/or delivery tasks (jobs) and pickup-and-delivery tasks that should happen within the same route (shipments).

Job and shipment

Vehicle

Supported routing engines

VROOM works out-of-the-box on top of several open-source routing engines.

VROOM can also use a custom cost matrix computed from any other source.

Getting started

Demo

Setup your own VROOM stack

Solving engine

Several options are available to get vroom running on command-line.

  1. Build from source following the wiki instructions.
  2. Use vroom-docker.

Command-line usage

Refer to this wiki page

Http wrapper

vroom-express is a simple wrapper to use vroom with http requests. It's already bundled in the vroom-docker setup.

Using libvroom from C++

The project can also used as a library from any C++ project, refer to this wiki page.

Tests

CI builds

vroom

vroom + libosrm

Github Actions are used to check the build across various compilers and settings.

Functional tests

Several sets of instances are used.

  1. Benchmark instances from papers (see wiki page with results).
  2. Custom random instances generated to target typical use-cases and constraints settings.
  3. Real-life instances.

Academic and custom benchmarks are heavily used during development for each new core feature. Every new release is checked against all benchmarks classes to spot potential regressions with regard to both solution quality and computing times.

Reference in publications

To cite VROOM in publications, please use:

@manual{vroom_v1.14,
   title = {{VROOM v1.14, Vehicle Routing Open-source Optimization Machine}},
   author = {Coupey, Julien and Nicod, Jean-Marc and Varnier, Christophe},
   year = 2024,
   organization = {Verso (\url{https://verso-optim.com/})},
   address = {Besançon, France},
   note = {\url{http://vroom-project.org/}}
 }