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:
- Assignment problem{{cite web|url=https://www.kaggle.com/jpmiller/application-of-google-or-tools|title=Application of Google OR-Tools|website=kaggle.com}}
- Linear programming
- Mixed-integer programming{{cite thesis |type=PhD |last=Louat |first=Christophe |date=2009 |title=Etude et mise en œuvre de stratégies de coupes efficaces pour des problèmes entiers mixtes 0-1|volume=1|pages=144|publisher=Université de Versailles Saint-Quentin-en-Yvelines}}
- Constraint programming
- Vehicle routing problem{{cite web|url=https://activimetrics.com/blog/ortools/multiday_tsp|title=Routing use case|website=activimetrics.com}}
- Network flow algorithms
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}}
External links
- {{Official website|https://developers.google.com/optimization}}
- [https://github.com/google/or-tools Source code]
- [https://www.youtube.com/watch?v=AJ6LeiMe_PQ Video introduction to OR-Tools]
{{Mathematical optimization software}}
{{Google FOSS}}
{{Google LLC}}
Category:Mathematical optimization software
Category:Numerical programming languages