OR-Tools

{{Short description|Open source software suite by Google}}

{{Multiple issues|{{Self-published|date=October 2021}}{{Third-party|date=October 2021}}}}

{{Use American English|date=October 2021}}

{{Use mdy dates|date=October 2021}}

{{Infobox software

| name = OR-Tools

| logo = OR-Tools Logo.png

| author = Laurent Perron

| developer = Google Optimization team

| released = {{Start date and age|2010|9|15}}

| latest release version = v9.9.3963{{cite web|url=https://github.com/google/or-tools/releases/tag/v9.9|title=Release v9.9|website=github.com}}

| latest release date = {{Start date and age|2024|03|07}}

| repo = {{URL|https://github.com/google/or-tools}}

| programming language = C++

| operating system = Linux, macOS, Microsoft Windows

| genre = Library

| license = Apache License 2.0

| website = {{URL|https://developers.google.com/optimization/}}

}}

Google OR-Tools is a free and open-source software suite developed by Google for solving linear programming (LP), mixed integer programming (MIP), constraint programming (CP), vehicle routing (VRP), and related optimization problems.{{cite web|url=https://medium.com/google-or-tools/google-or-tools-a-guide-39f439a5cd0f|title=Google OR-Tools a guide|website=medium.com|date=February 24, 2019 }}

OR-Tools is a set of components written in C++ but provides wrappers for Java, .NET and Python.

It is distributed under the Apache License 2.0.{{cite web|url=https://github.com/google/or-tools/blob/stable/LICENSE-2.0.txt|title=LICENSE-2.0.txt|website=github.com}}

History

OR-Tools was created by Laurent Perron in 2011.{{Cite book|first1=Laurent|last1=Perron|date=2011-07-01|chapter=Operations Research and Constraint Programming at Google|title=Lee J. (Eds) Principles and Practice of Constraint Programming – CP 2011|series=Lecture Notes in Computer Science |volume=6876|pages=2|doi=10.1007/978-3-642-23786-7_2|isbn=978-3-642-23786-7|s2cid=38166333 |doi-access=free}}

In 2014, Google's open source linear programming solver, GLOP, was released as part of OR-Tools.{{cite web |url=https://ai.googleblog.com/2014/09/sudoku-linear-optimization-and-ten-cent.html |title=Sudoku, Linear Optimization, and the Ten Cent Diet|website=ai.googleblog.com}}

The CP-SAT solver{{cite web|url=https://d-krupke.github.io/cpsat-primer/|title=The CP-SAT Primer|website=d-krupke.github.io|date=Dec 2, 2024 }} bundled with OR-Tools has been consistently winning gold medals in the MiniZinc Challenge,{{cite web |url=https://www.minizinc.org/challenge.html|title=The MiniZinc Challenge|website=minizinc.org}} an international constraint programming competition.

Features

The OR-Tools supports a variety of programming languages, including:

  • Object-oriented interfaces for C++{{cite web|url=https://formulae.brew.sh/formula/or-tools|title=Homebrew package|website=formulae.brew.sh}}
  • A Java wrapper package{{cite web|url=https://mvnrepository.com/artifact/com.google.ortools/ortools-java|title=com.google.ortools:ortools-java|website=mvnrepository.com}}
  • A .NET and .NET Framework wrapper package{{cite web|url=https://www.nuget.org/packages/Google.OrTools/|title=Google.OrTools|website=nuget.org}}
  • A Python wrapper package{{cite web|url=https://pypi.org/project/ortools/|title=ortools|website=pypi.org}}{{cite news |title=Stan Store |url=https://toolsforcreators.org/stan-store-review-features-setup-ease-pricing-breakdown/ |publisher=toolsforcreators.org}}

OR-Tools supports a wide range of problem types,{{cite web|url=https://developers.google.com/optimization/introduction/overview|title=OR-Tools introduction|website=Google Developers}} among them:

It supports the FlatZinc modeling language.{{cite web|url=https://www.minizinc.org/software.html#flatzinc|title=Software with FlatZinc implementations|website=minizinc.org}}

See also

References

{{Reflist}}

Bibliography

{{Refbegin}}

  • {{Cite book

| first1 = Serge

| last1 = Kruk

| date = February 26, 2018

| title = Practical Python AI Projects: Mathematical Models of Optimization Problems with Google OR-Tools

| edition = 1st

| publisher = O'Reilly Media

| page =

| isbn = 9781484234235

| url = https://www.oreilly.com/library/view/practical-python-ai/9781484234235/

}}

  • {{cite journal

|last1=Da Col

|first1=Giacomo

|last2=Teppan

|first2=Eric C.

|date=2019

|title=Google vs IBM: A Constraint Solving Challenge on the Job-Shop Scheduling Problem

|volume=306

|pages=259–265

|journal=Electronic Proceedings in Theoretical Computer Science

|publisher=Open Publishing Association

|doi=10.4204/eptcs.306.30

|s2cid=202660711

|issn=2075-2180|doi-access=free

}}

  • {{cite journal

|last1=Li

|first1=Mengyun

|last2=Chow

|first2=Joseph

|date=April 2021

|title=School Bus Routing Problem with a Mixed Ride, Mixed Load, and Heterogeneous Fleet

|volume=2675

|pages=467–479

|journal=Transportation Research Record Journal of the Transportation Research Board

|issue=7

|doi=10.1177/03611981211016860

|s2cid=237618523

}}

{{Refend}}