Or Tools

OR-Tools

Using OR-Tools with Nextmv

OR-Tools

OR-Tools is open-source solving technology designed to tackle the world’s toughest problems in vehicle routing, flows, integer and linear programming, and constraint programming.

Get started

A community app is a great place to get started with the OR-Tools integration. OR-Tools bundles several solvers, so you do not need additional installations when running locally or in Cloud. Some of the solvers included are:

Make sure to specify the python runtime in your app’s app.yaml manifest:

# This manifest holds the information the app needs to run on the Nextmv Cloud.
type: python
runtime: ghcr.io/nextmv-io/runtime/python:3.11

# Python-specific configurations.
python:
  # Packages the app depends on need to be listed in a requirements.txt file
  # that is referenced here. All listed packages will get bundled with the app.
  pip-requirements: requirements.txt

# List all files/directories that should be included in the app. Globbing
# (e.g.: configs/*.json) is supported.
files:
  - main.py

# Application configurations.
configuration:
  # Define the content format of the app, one of: json, multi-file.
  content:
    format: json # Read JSON from stdin and write JSON to stdout.
  # Define the options (parameters) of the app.
  options:
    strict: false
    items:
      - name: duration
        option_type: int
        default: 30
        description: Max runtime duration (in seconds).
        required: false
        additional_attributes:
          min: 1
          max: 300
          step: 10
        ui:
          control_type: slider
          display_name: Duration
      - name: provider
        option_type: string
        default: SCIP
        description: Solver provider.
        required: false
        ui:
          control_type: input
          display_name: Provider
Copy

Read more about using Python with Nextmv.

License

OR-Tools oes not require additional licensing or setup for running locally or remotely on Nextmv Platform.

Languages & runtimes

Supported languages and available runtimes for OR-Tools apps are listed in the table below. These properties must be defined in the app manifest for your app to run remotely.

Language Runtime
Pythonghcr.io/nextmv-io/runtime/python
Javaghcr.io/nextmv-io/runtime/java

Community apps

The community apps listed in the table below use OR-Tools.

Community app Description
python-ortools-costflowSolve a cost flow problem with OR-Tools.
python-ortools-demandforecastingSolve a demand forecasting problem with OR-Tools.
python-ortools-knapsackSolve a knapsack problem with OR-Tools.
python-ortools-knapsack-multicsvSolve a knapsack problem with OR-Tools (using multiple CSV files for input).
python-ortools-routingSolve a VRP with OR-Tools.
python-ortools-shiftassignmentSolve a shift assignment problem with OR-Tools.
python-ortools-shiftplanningSolve a shift planning problem with OR-Tools.
java-ortools-knapsackSolve a knapsack problem with OR-Tools.
java-ortools-routingSolve a VRP with OR-Tools.

Clone a community app locally using Nextmv CLI:

nextmv community clone -a python-ortools-knapsack
Copy

Marketplace apps

There are four apps that use OR-Tools in the Nextmv Marketplace. Sign up for a free Nextmv Cloud account to test them out:

Page last updated

Go to on-page nav menu