All Projects → VROOM-Project → Vroom

VROOM-Project / Vroom

Licence: bsd-2-clause
Vehicle Routing Open-source Optimization Machine

Projects that are alternatives of or similar to Vroom

Osqp
The Operator Splitting QP Solver
Stars: ✭ 689 (+29.27%)
Mutual labels:  solver, optimization
Cosmo.jl
COSMO: Accelerated ADMM-based solver for convex conic optimisation problems (LP, QP, SOCP, SDP, ExpCP, PowCP). Automatic chordal decomposition of sparse semidefinite programs.
Stars: ✭ 149 (-72.05%)
Mutual labels:  solver, optimization
Prioritizr
Systematic conservation prioritization in R
Stars: ✭ 62 (-88.37%)
Mutual labels:  solver, optimization
Cppnumericalsolvers
a lightweight C++17 library of numerical optimization methods for nonlinear functions (Including L-BFGS-B for TensorFlow)
Stars: ✭ 638 (+19.7%)
Mutual labels:  solver, optimization
cplex-example
Solving a TSP with the CPLEX C++ API.
Stars: ✭ 40 (-92.5%)
Mutual labels:  optimization, solver
Angler
Frequency-domain photonic simulation and inverse design optimization for linear and nonlinear devices
Stars: ✭ 75 (-85.93%)
Mutual labels:  solver, optimization
Hiop
HPC solver for nonlinear optimization problems
Stars: ✭ 75 (-85.93%)
Mutual labels:  solver, optimization
Optaplanner
AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.
Stars: ✭ 2,454 (+360.41%)
Mutual labels:  solver, optimization
ProxSDP.jl
Semidefinite programming optimization solver
Stars: ✭ 69 (-87.05%)
Mutual labels:  optimization, solver
CSDP.jl
Julia Wrapper for CSDP (https://projects.coin-or.org/Csdp/)
Stars: ✭ 18 (-96.62%)
Mutual labels:  optimization, solver
qpmad
ROS-compatible Eigen-based Goldfarb-Idnani quadratic programming solver
Stars: ✭ 41 (-92.31%)
Mutual labels:  optimization, solver
Totsu
First-order conic solver for convex optimization problems
Stars: ✭ 18 (-96.62%)
Mutual labels:  optimization, solver
osqp
The Operator Splitting QP Solver
Stars: ✭ 929 (+74.3%)
Mutual labels:  optimization, solver
Teaching
Teaching Materials for Dr. Waleed A. Yousef
Stars: ✭ 435 (-18.39%)
Mutual labels:  optimization
Lepto
Automated image Editing, Optimization and Analysis via CLI and a web interface. You give to lepto your input and output directories, the plugins you want to use and their options. Then lepto does his job, you keep your original files and the structure of the input directory. Some plugins can even collect data (like primary colors) from your images and save them in a JSON file.
Stars: ✭ 490 (-8.07%)
Mutual labels:  optimization
Geneticalgorithmpython
Source code of PyGAD, a Python 3 library for building the genetic algorithm and training machine learning algorithms (Keras & PyTorch).
Stars: ✭ 435 (-18.39%)
Mutual labels:  optimization
Ensmallen
A header-only C++ library for numerical optimization --
Stars: ✭ 436 (-18.2%)
Mutual labels:  optimization
Hyperparameter Optimization Of Machine Learning Algorithms
Implementation of hyperparameter optimization/tuning methods for machine learning & deep learning models (easy&clear)
Stars: ✭ 516 (-3.19%)
Mutual labels:  optimization
Autokernel
AutoKernel 是一个简单易用,低门槛的自动算子优化工具,提高深度学习算法部署效率。
Stars: ✭ 485 (-9.01%)
Mutual labels:  optimization
Faster.js
faster.js is a Babel plugin that compiles idiomatic Javascript to faster, micro-optimized Javascript.
Stars: ✭ 429 (-19.51%)
Mutual labels:  optimization

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

Build Status

Travis builds 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].