All Projects → mapbox → Node Or Tools

mapbox / Node Or Tools

Licence: mit
Node.js bindings for or-tools vehicle routing problems

Projects that are alternatives of or similar to Node Or Tools

optimization
Routing optimization module module for Itinero.
Stars: ✭ 47 (-59.13%)
Mutual labels:  optimization, routing
Router
⚡️ A lightning fast HTTP router
Stars: ✭ 158 (+37.39%)
Mutual labels:  routing, optimization
Gurobi Python
Learning how to use gurobi with python (in chinese)
Stars: ✭ 104 (-9.57%)
Mutual labels:  optimization
Laravel Geo Routes
GeoLocation restricted routes for Laravel
Stars: ✭ 110 (-4.35%)
Mutual labels:  routing
Pg stat kcache
Gather statistics about physical disk access and CPU consumption done by backends.
Stars: ✭ 106 (-7.83%)
Mutual labels:  optimization
Gtfspy
Public transport network analysis using Python 🚊🚇🚃🚌🛳️🚡🚠🚞
Stars: ✭ 104 (-9.57%)
Mutual labels:  routing
Optimviz
Visualize optimization algorithms in MATLAB.
Stars: ✭ 106 (-7.83%)
Mutual labels:  optimization
Juniper.jl
A JuMP-based Nonlinear Integer Program Solver
Stars: ✭ 103 (-10.43%)
Mutual labels:  optimization
Chocolate
A fully decentralized hyperparameter optimization framework
Stars: ✭ 112 (-2.61%)
Mutual labels:  optimization
Strategems.jl
Quantitative systematic trading strategy development and backtesting in Julia
Stars: ✭ 106 (-7.83%)
Mutual labels:  optimization
Raytracer.jl
Differentiable RayTracing in Julia
Stars: ✭ 110 (-4.35%)
Mutual labels:  optimization
Valhalla
Open Source Routing Engine for OpenStreetMap
Stars: ✭ 1,794 (+1460%)
Mutual labels:  routing
Grl
Robotics tools in C++11. Implements soft real time arm drivers for Kuka LBR iiwa plus V-REP, ROS, Constrained Optimization based planning, Hand Eye Calibration and Inverse Kinematics integration.
Stars: ✭ 105 (-8.7%)
Mutual labels:  optimization
Adcme.jl
Automatic Differentiation Library for Computational and Mathematical Engineering
Stars: ✭ 106 (-7.83%)
Mutual labels:  optimization
Yabox
Yet another black-box optimization library for Python
Stars: ✭ 103 (-10.43%)
Mutual labels:  optimization
Php Router
simple and flexible Router class for PHP. with Controllers and Middlewares support.
Stars: ✭ 111 (-3.48%)
Mutual labels:  routing
Gke Networking Demos
This project presents a number of best practices for establishing network links between Kubernetes Engine clusters, and exposing cluster services across Google Cloud projects. You will use a set of Deployment Manager templates to create networks, subnets, vpn connections, and Kubernetes Engine clusters.
Stars: ✭ 104 (-9.57%)
Mutual labels:  routing
Qmlt
The Quantum Machine Learning Toolbox (QMLT) is a Strawberry Fields application that simplifies the optimization of variational quantum circuits (also known as parametrized quantum circuits).
Stars: ✭ 106 (-7.83%)
Mutual labels:  optimization
Miniboxing Plugin
Miniboxing is a program transformation that improves the performance of Scala generics when used with primitive types. It can speed up generic collections by factors between 1.5x and 22x, while maintaining bytecode duplication to a minimum. You can easily add miniboxing to your sbt project:
Stars: ✭ 106 (-7.83%)
Mutual labels:  optimization
React Most Wanted
React starter kit with "Most Wanted" application features
Stars: ✭ 1,867 (+1523.48%)
Mutual labels:  routing

node-or-tools

Build Status

NodeJS bindings for or-tools Travelling Salesman Problem (TSP) and Vehicle Routing Problem (VRP) solvers.

See API.md for documentation.

Solving TSP and VRP problems always starts out with having a m x m cost matrix for all pairwise routes between all locations. We recommend using the Mapbox Directions Matrix service when optimizing travel times.

Example

Quick Start

npm install node_or_tools
var ortools = require('node_or_tools')

var VRP = new ortools.VRP(solverOpts);

VRP.Solve(searchOpts, function (err, solution) {
  // ..
});

See API.md for interface documentation and the example for a small self-contained example.

We ship pre-built native binaries (for Node.js LTS 4 and 6 on Linux and macOS). You will need a compatible C++ stdlib, see below if you encounter issues. Building from source is supported via the --build-from-source flag.

Ubuntu 16.04

You're fine. The system's stdlib is recent enough.

Ubuntu 14.04

apt install software-properties-common
add-apt-repository ppa:ubuntu-toolchain-r/test
apt update
apt install libstdc++-5-dev

Tests

npm test

Building - Undefined Symbols

If your C++ compiler and stdlib are quite recent they will default to a new ABI. Mason packages are still built against an old ABI. If you see undefined symbols errors force the stdlib to use the old ABI by setting:

export CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"

and re-build the project.

Releases

  • Push commit with [publish binary] on master
  • Wait for Travis to build and publish binaries, check the AWS bucket if in doubt
  • Tag the release git tag vx.y.z -a on master, git push origin vx.y.z
  • Then npm login, npm publish to npm
  • Make Github Release for tag

References

Routing Interfaces

More or-tools

Tests

Node bindings

License

Copyright © 2017 Mapbox

Distributed under the MIT License (MIT).

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].