OR-Tools - Herramientas de optimización de Google
Paquete de software de Google para optimización combinatoria.
Tabla de contenido
- Acerca de las herramientas OR
- Mapa de códigos
- Instalación
- Inicio rápido
- Documentación
- Contribuyendo
- Licencia
Acerca de las herramientas OR
Google Optimization Tools (también conocido como OR-Tools) es un paquete de software portátil, rápido y de código abierto para resolver problemas de optimización combinatoria.
La suite contiene:
- Solucionador de programación con dos restricciones (CP* y CP-SAT);
- Dos solucionadores de programación lineal (Glop y PDLP);
- Envoltorios para solucionadores comerciales y otros solucionadores de código abierto, incluidos solucionadores de enteros mixtos;
- Algoritmos de embalaje de contenedores y mochilas;
- Algoritmos para el problema del viajante y el problema de rutas de vehículos;
- Algoritmos gráficos (rutas más cortas, flujo de costo mínimo, flujo máximo, asignación de suma lineal).
Escribimos OR-Tools en C++, pero proporcionamos contenedores en Python, C# y Java.
Mapa de códigos
Este paquete de software se compone de los siguientes componentes:
- Makefile de nivel superior para compilación basada en GNU Make.
- makefiles Subsidiaria Crear archivos, CI y documentación del sistema de compilación.
- CMakeLists.txt Nivel superior para compilación basada en CMake.
- cmake Subsidiaria Archivos CMake, CI y documentación del sistema de compilación.
- ESPACIO DE TRABAJO Nivel superior para compilación basada en Bazel.
- bazel Subsidiaria Bazel archivos, CI y documentación del sistema de compilación.
- ortools Directorio raíz para el código fuente.
- base Utilidades básicas.
- algoritmos Algoritmos básicos.
- muestras Muestras cuidadosamente elaboradas.
- gráfico Algoritmos de gráficos.
- muestras Muestras cuidadosamente elaboradas.
- linear_solver Contenedor de resolución lineal.
- muestras Muestras cuidadosamente elaboradas.
- glop Solucionador de programación lineal basado en Simplex.
- muestras Muestras cuidadosamente elaboradas.
- pdlp Solucionador de programación lineal de primer orden.
- muestras Muestras cuidadosamente elaboradas.
- lp_data Estructuras de datos para modelos lineales.
- constraint_solver Solucionador de restricciones y enrutamiento.
- docs Documentación del componente.
- muestras Muestras cuidadosamente elaboradas.
- solucionador SAT sat.
- docs Documentación del componente.
- muestras Muestras cuidadosamente elaboradas.
- bop Solucionador booleano basado en SAT.
- util Utilidades que necesita el solucionador de restricciones
- ejemplos Directorio raíz para todos los ejemplos.
- contribuir Ejemplos de la comunidad.
- Ejemplos de Cpp en C++.
- Ejemplos de dotnet.Net.
- java Ejemplos de Java.
- Python Ejemplos de Python.
- cuadernos cuadernos Jupyter/IPython.
- flatzinc Ejemplos de FlatZinc.
- pruebas Pruebas unitarias e informes de errores.
- herramientas Herramientas de entrega (p. ej., binarios de Windows GNU, scripts, ventanas acoplables de lanzamiento)
Instalación
Este paquete de software ha sido probado en:
- Ubuntu 18.04 LTS y superiores (64 bits);
- Apple macOS Mojave con Xcode 9.x (64 bits);
- Microsoft Windows con Visual Studio 2022 (64 bits).
OR-Tools actualmente construye con un Makefile, pero también brinda soporte para Bazel y CMake.
Para obtener instrucciones de instalación (tanto fuente como binaria), visite https://developers.google.com/optimization/introduction/installing.
Construir desde el código fuente usando Make (heredado)
Proporcionamos una construcción basada en Make.
Consulte las instrucciones de compilación de Make.
Construir desde fuente usando CMake
Proporcionamos una compilación basada en CMake.
Consulte las instrucciones de compilación de CMake.
Construir desde fuente usando Bazel
Proporcionamos una compilación basada en Bazel.
Consulte las instrucciones de compilación de Bazel.
Inicio rápido
La mejor manera de aprender a utilizar OR-Tools es seguir los tutoriales de nuestra guía para desarrolladores:
https://developers.google.com/optimization/introduction/get_started
Si desea aprender de los ejemplos de código, eche un vistazo a los ejemplos en el directorio de ejemplos.
Documentación
La documentación completa de OR-Tools está disponible en: https://developers.google.com/optimization/
Contribuyendo
El archivo CONTRIBUTING.md contiene instrucciones sobre cómo enviar el Acuerdo de licencia de colaborador antes de enviar cualquier solicitud de extracción (PR). Por supuesto, si eres nuevo en el proyecto, normalmente es mejor discutir cualquier propuesta y llegar a un consenso antes de enviar tu primer PR.
Licencia
El paquete de software OR-Tools tiene licencia según los términos de la Licencia Apache 2.0.
Consulte LICENCIA para obtener más información.