OR-Tools
From Wikipedia the free encyclopedia
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
|
Original author(s) | Laurent Perron |
---|---|
Developer(s) | Google Optimization team[1] |
Initial release | September 15, 2010 |
Stable release | v9.9.3963[2] / March 7, 2024 |
Repository | github |
Written in | C++ |
Operating system | Linux, macOS, Microsoft Windows |
Type | Library |
License | Apache License 2.0 |
Website | developers |
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.[3]
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.[4]
History[edit]
OR-Tools was created by Laurent Perron in 2011.[5]
In 2014, Google's open source linear programming solver, GLOP, was released as part of OR-Tools.[1]
The CP-SAT solver[6] bundled with OR-Tools won a total of eleven gold medals between 2018 and 2020 in the MiniZinc Challenge,[7] an international constraint programming competition.
Features[edit]
The OR-Tools supports a variety of programming languages, including:
- Object-oriented interfaces for C++[8]
- A Java wrapper package[9]
- A .NET and .NET Framework wrapper package[10]
- A Python wrapper package[11]
OR-Tools supports a wide range of problem types,[12][3] among them:
- Assignment problem[13]
- Linear programming
- Mixed-integer programming[14]
- Constraint programming[6]
- Vehicle routing problem[13][15]
- Network flow algorithms
It supports the FlatZinc modeling language.[16]
See also[edit]
References[edit]
- ^ a b "Sudoku, Linear Optimization, and the Ten Cent Diet". ai.googleblog.com.
- ^ "Release v9.9". github.com.
- ^ a b "Google OR-Tools a guide". medium.com. February 24, 2019.
- ^ "LICENSE-2.0.txt". github.com.
- ^ Perron, Laurent (July 1, 2011). "Operations Research and Constraint Programming at Google". Lee J. (Eds) Principles and Practice of Constraint Programming – CP 2011. Lecture Notes in Computer Science. 6876: 2. doi:10.1007/978-3-642-23786-7_2. ISBN 978-3-642-23786-7. S2CID 38166333.
- ^ a b "How the CP-SAT solver works". xiang.dev. April 25, 2020.
- ^ "The MiniZinc Challenge". minizinc.org.
- ^ "Homebrew package". formulae.brew.sh.
- ^ "com.google.ortools:ortools-java". mvnrepository.com.
- ^ "Google.OrTools". nuget.org.
- ^ "ortools". pypi.org.
- ^ "OR-Tools introduction". Google Developers.
- ^ a b "Application of Google OR-Tools". kaggle.com.
- ^ Louat, Christophe (2009). Etude et mise en œuvre de stratégies de coupes efficaces pour des problèmes entiers mixtes 0-1 (PhD). Vol. 1. Université de Versailles Saint-Quentin-en-Yvelines. p. 144.
- ^ "Routing use case". activimetrics.com.
- ^ "Software with FlatZinc implementations". minizinc.org.
Bibliography[edit]
- Kruk, Serge (February 26, 2018). Practical Python AI Projects: Mathematical Models of Optimization Problems with Google OR-Tools (1st ed.). O'Reilly Media. ISBN 9781484234235.
- Da Col, Giacomo; Teppan, Eric C. (2019). "Google vs IBM: A Constraint Solving Challenge on the Job-Shop Scheduling Problem". Electronic Proceedings in Theoretical Computer Science. 306. Open Publishing Association: 259–265. doi:10.4204/eptcs.306.30. ISSN 2075-2180. S2CID 202660711.
- Li, Mengyun; Chow, Joseph (April 2021). "School Bus Routing Problem with a Mixed Ride, Mixed Load, and Heterogeneous Fleet". Transportation Research Record Journal of the Transportation Research Board. 2675 (7): 467–479. doi:10.1177/03611981211016860. S2CID 237618523.