Google OR-Tools es un conjunto de software gratuito y de código abierto desarrollado por Google para resolver problemas de programación lineal (LP), programación entera mixta (MIP), programación con restricciones (CP), enrutamiento de vehículos (VRP) y problemas de optimización relacionados . [ 3 ] OR significa investigación de operaciones .
OR-Tools es un conjunto de componentes escritos en C++ , pero proporciona adaptadores para Java , .NET y Python .
Se distribuye bajo la Licencia Apache 2.0 . [ 4 ]
Historia
OR-Tools fue creada por Laurent Perron en 2011. [ 5 ]
En 2014, el solucionador de programación lineal de código abierto de Google, GLOP , fue lanzado como parte de OR-Tools. [ 1 ]
El solucionador CP-SAT [ 6 ] incluido con OR-Tools ha estado ganando consistentemente medallas de oro en el MiniZinc Challenge, [ 7 ] una competencia internacional de programación de restricciones.
Características
OR-Tools admite una variedad de lenguajes de programación, entre ellos:
- Interfaces orientadas a objetos para C++ [ 8 ]
- Un paquete envoltorio de Java [ 9 ]
- Un paquete contenedor de .NET y .NET Framework [ 10 ]
- Un paquete envoltorio de Python [ 11 ] [ 12 ]
OR-Tools admite una amplia gama de tipos de problemas, [ 13 ] [ 3 ] entre ellos:
- Problema de asignación [ 14 ]
- Programación lineal
- Programación entera mixta [ 15 ]
- Programación con restricciones [ 6 ]
- Problema de enrutamiento de vehículos [ 14 ] [ 16 ]
- Algoritmos de flujo de red
Admite el lenguaje de modelado FlatZinc . [ 17 ]
Véase también
Referencias
- 1 2 "Sudoku, optimización lineal y la dieta de diez centavos" . ai.googleblog.com .
- ↑ "Versión v9.15" . github.com .
- 1 2 "Google OR-Tools: una guía" . medium.com . 24 de febrero de 2019.
- ↑ "LICENSE-2.0.txt" . github.com .
- ↑ Perron, Laurent (1 de julio de 2011). «Investigación operativa y programación con restricciones en Google». Lee J. (Eds.) Principios y práctica de la programación con restricciones – CP 2011. Lecture Notes in Computer Science. Vol. 6876. p. 2. doi : 10.1007/978-3-642-23786-7_2 . ISBN 978-3-642-23786-7. S2CID 38166333 .
- 1 2 "The CP-SAT Primer" . d-krupke.github.io . 2 de diciembre de 2024.
- ↑ "El desafío MiniZinc" . minizinc.org .
- ↑ "Paquete Homebrew" . formulae.brew.sh .
- ↑ "com.google.ortools:ortools-java" . mvnrepository.com .
- ↑ "Google.OrTools" . nuget.org .
- ↑ "ortools" . pypi.org .
- ↑ "Stan Store" . toolsforcreators.org.
- ↑ "Introducción a OR-Tools" . Google Developers . Archivado del original el 1 de octubre de 2021. Consultado el 1 de octubre de 2021 .
- 1 2 "Aplicación de Google OR-Tools" . kaggle.com .
- ^ Louat, Christophe (2009). Estudio y puesta en obra de estrategias de coupes efficaces pour des problèmes entiers mixtes 0-1 (PhD). vol. 1. Universidad de Versalles Saint-Quentin-en-Yvelines. pag. 144.
- ↑ "Caso de uso de enrutamiento" . activimetrics.com .
- ↑ "Software con implementaciones de FlatZinc" . minizinc.org .
Bibliografía
- Kruk, Serge (26 de febrero de 2018). Proyectos prácticos de IA con Python: Modelos matemáticos de problemas de optimización con Google OR-Tools (1.ª ed.). O'Reilly Media . ISBN 9781484234235.
- Da Col, Giacomo; Teppan, Eric C. (2019). "Google vs IBM: Un desafío de resolución de restricciones en el problema de programación de talleres" . Actas electrónicas en ciencias de la computación teórica . 306. Open Publishing Association: 259–265 . arXiv : 1909.08247 . doi : 10.4204/eptcs.306.30 . ISSN 2075-2180 . S2CID 202660711 .
- Li, Mengyun; Chow, Joseph (abril de 2021). "Problema de enrutamiento de autobuses escolares con un viaje mixto, carga mixta y flota heterogénea". Transportation Research Record: Journal of the Transportation Research Board . 2675 (7): 467– 479. doi : 10.1177/03611981211016860 . S2CID 237618523 .
Enlaces externos
- Sitio web oficial
- Código fuente
- Vídeo de presentación de OR-Tools
- Software de optimización matemática
- Lenguajes de programación numérica
- Software numérico
- Algoritmos y métodos de optimización
- Software que utiliza la licencia Apache.