- Notifications
You must be signed in to change notification settings - Fork2.4k
Google's Operations Research tools:
License
google/or-tools
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Google's software suite for combinatorial optimization.
Google Optimization Tools (a.k.a., OR-Tools) is an open-source, fast andportable software suite for solving combinatorial optimization problems.
The suite contains:
- Two constraint programming solver (CP* and CP-SAT);
- Two linear programming solvers (Glop and PDLP);
- Wrappers around commercial and other open source solvers, including mixedinteger solvers;
- Bin packing and knapsack algorithms;
- Algorithms for the Traveling Salesman Problem and Vehicle Routing Problem;
- Graph algorithms (shortest paths, min cost flow, max flow, linear sumassignment).
We wrote OR-Tools in C++, but provide wrappers in Python, C# and Java.
This software suite is composed of the following components:
- Makefile Top-level forGNU Make based build.
- makefiles Subsidiary Make files, CI and build system documentation.
- CMakeLists.txt Top-level forCMake based build.
- cmake Subsidiary CMake files, CI and build system documentation.
- WORKSPACE Top-level forBazel based build.
- bazel Subsidiary Bazel files, CI and build system documentation.
- ortools Root directory for source code.
- base Basic utilities.
- algorithms Basic algorithms.
- samples Carefully crafted samples.
- graph Graph algorithms.
- samples Carefully crafted samples.
- linear_solver Linear solver wrapper.
- samples Carefully crafted samples.
- glop Simplex-based linear programming solver.
- samples Carefully crafted samples.
- pdlp First-order linear programming solver.
- samples Carefully crafted samples.
- lp_data Data structures for linear models.
- constraint_solver Constraint and Routingsolver.
- sat SAT solver.
- bop Boolean solver based on SAT.
- util Utilities needed by the constraint solver
- examples Root directory for all examples.
- tools Delivery Tools (e.g. Windows GNU binaries, scripts, release dockers)
This software suite has been tested under:
- Ubuntu 18.04 LTS and up (64-bit);
- Apple macOS Mojave with Xcode 9.x (64-bit);
- Microsoft Windows with Visual Studio 2022 (64-bit).
OR-Tools currently builds with a Makefile, but also provides Bazel and CMakesupport.
For installation instructions (both source and binary), please visithttps://developers.google.com/optimization/introduction/installing.
We provide a Make based build.
Please check theMake build instructions.
We provide a CMake based build.
Please check theCMake build instructions.
We provide a Bazel based build.
Please check theBazel build instructions.
The best way to learn how to use OR-Tools is to follow the tutorials in ourdeveloper guide:
https://developers.google.com/optimization/introduction/get_started
If you want to learn from code examples, take a look at the examples in theexamples directory.
The complete documentation for OR-Tools is available at:https://developers.google.com/optimization/
TheCONTRIBUTING.md file contains instructions on how tosubmit 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 anyproposals and reach consensus before sending your first PR.
The OR-Tools software suite is licensed under the terms of the Apache License 2.0.
SeeLICENSE for more information.
About
Google's Operations Research tools:
Topics
Resources
License
Code of conduct
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.