or-tools README

The project's README from github.com/google/or-tools. As one markdown file: README.md.

OR-Tools - Google Optimization Tools

PyPI version PyPI download
NuGet version NuGet download
Maven Central
Discord

Google's software suite for combinatorial optimization.

Table of Contents

About OR-Tools

Google Optimization Tools (a.k.a., OR-Tools) is an open-source, fast and portable software suite for solving combinatorial optimization problems.

The suite contains:

We wrote OR-Tools in C++, but provide wrappers in Python, C# and Java.

Codemap

This software suite is composed of the following components:

Installation

This software suite has been tested under:

OR-Tools currently builds with a Makefile, but also provides Bazel and CMake support.

For installation instructions (both source and binary), please visit https://developers.google.com/optimization/introduction/installing.

Build from source using Make (legacy)

We provide a Make based build.
Please check the Make build instructions.

Build from source using CMake

We provide a CMake based build.
Please check the CMake build instructions.

Build from source using Bazel

We provide a Bazel based build.
Please check the Bazel build instructions.

Quick Start

The best way to learn how to use OR-Tools is to follow the tutorials in our developer guide:

https://developers.google.com/optimization/introduction/get_started

If you want to learn from code examples, take a look at the examples in the examples directory.

Documentation

The complete documentation for OR-Tools is available at: https://developers.google.com/optimization/

Contributing

The CONTRIBUTING.md file contains instructions on how to submit the Contributor License Agreement before sending any pull requests (PRs). Of course, if you're new to the project, it's usually best to discuss any proposals and reach consensus before sending your first PR.

License

The OR-Tools software suite is licensed under the terms of the Apache License 2.0.
See LICENSE for more information.

or-tools (google/or-tools)

Searching Database…

14.2K ·GitHub
What is this?OR-Tools is Google's open-source software suite for combinatorial optimization: solvers and algorithms for problems like scheduling, routing, packing, and resource allocation.
What kinds of problems can it actually solve?Constraint programming (CP and CP-SAT), linear programming (Glop and PDLP), wrappers for mixed integer solvers, bin packing and knapsack, Traveling Salesman and vehicle routing, plus graph algorithms like shortest paths and max flow.
How do I get it installed?Grab a binary release or build from source — the suite supports Make (legacy), CMake, and Bazel builds. After that, the tutorials in the developer guide are the intended entry point.
I work in Python — do I have to write C++ to use it?No. OR-Tools itself is written in C++, but it ships official wrappers for Python, C# and Java, so you can call the same solvers from those languages.
Which platforms does it run on?It has been tested on 64-bit Ubuntu 18.04 LTS and up, macOS Mojave with Xcode 9.x, and Windows with Visual Studio 2022, so Linux, macOS, and Windows are all covered.
Do I have to compile it myself, or are there prebuilt binaries?Both options exist — the installation docs cover source builds with Make, CMake or Bazel as well as binary distributions, so you can start with a prebuilt package and skip the toolchain setup.
What is CP-SAT?One of the suite's two constraint programming solvers — it approaches CP problems via Boolean satisfiability. The other is the classic CP constraint solver, which also serves as the routing solver for vehicle routing problems.
Which graph algorithms are included?Shortest paths, min cost flow, max flow, and linear sum assignment, all implemented in the graph component with their own samples.
What's the best way to learn it after installing?Follow the tutorials in the developer guide, then read the examples directory — it contains C++, .NET, Java, and Python examples plus Jupyter notebooks.
Creator
google
Size
1.3 GB
Stars
14.2K
Age
11y
Commits · 90 Days