Giter VIP home page Giter VIP logo

vroom's Introduction

Vehicle Routing Open-source Optimization Machine

Good solutions, fast.


About

VROOM is an open-source optimization engine written in C++17 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).

  • TSP (travelling salesman problem)
  • CVRP (capacitated VRP)
  • VRPTW (VRP with time windows)
  • MDHVRPTW (multi-depot heterogeneous vehicle VRPTW)
  • PDPTW (pickup-and-delivery problem with TW)

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

  • Delivery/pickup amounts on arbitrary number of metrics
  • Service time windows
  • Service duration
  • Skills
  • Priority

Vehicle

  • Capacity on arbitrary number of metrics
  • Skills
  • Working hours
  • Driver breaks
  • Start and end defined on a per-vehicle basis
  • Start and end can be different
  • Open trip optimization (only start or only end defined)

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

  • The demo frontend provides a simple user interface for quick tests.
  • The demo server makes it easy to send sample optimization requests for testing purposes.

Setup your own VROOM stack

Solving engine

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

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

Http wrapper

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

Use from C++

The project can be used as a library as shown in this example.

Usage

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.

vroom's People

Contributors

jcoupey avatar krypt-n avatar pattydepuh avatar sfendrich avatar orthae avatar sashakh avatar nilsnolde avatar frodrigo avatar unguul avatar iedmrc avatar aniketsharma00411 avatar giraldeau avatar simon-b avatar fonsecadeline avatar senhalil avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.