Un toolkit de Python que optimiza modelos ONNX reduciendo el número de operadores y manteniendo la precisión, con el objetivo de acelerar la inferencia.
d-krupke/cpsat-primer
Guía gratuita en formato de libro para aprender a modelar y resolver problemas de optimización combinatoria con el solver CP-SAT de Google OR-Tools.
- Estrellas
- 834
- Forks
- 69
- Issues abiertos
- 9
- Último commit
- hace 2 meses
¿Qué es?
CP-SAT Primer es un tutorial gratuito, en formato de libro, para aprender a usar el solver CP-SAT de Google OR-Tools, basado en programación por restricciones y SAT, para optimización combinatoria. Está dirigido a estudiantes de informática y desarrolladores, incluye ejemplos en Python y compara CP-SAT con solvers de programación lineal entera mixta (MIP) y otras herramientas de optimización.
La primera parte abarca la instalación, un primer modelo, los fundamentos del modelado de variables, objetivos y restricciones, restricciones avanzadas como las de circuito, intervalo y reservorio, los parámetros del solver y cómo leer su registro. La segunda parte aborda aspectos prácticos de ingeniería: patrones de código para mantener el código de optimización, ejecución de trabajos de optimización a través de una API, heurísticas de búsqueda de vecindad amplia y evaluación comparativa de modelos.
Dominik Krupke, de TU Braunschweig, mantiene esta guía, publicada bajo la licencia CC-BY 4.0. También cuenta con un sitio web complementario que presenta el mismo contenido en formato de libro.
Funciones clave
- 01Explica los fundamentos de CP-SAT: variables, objetivos y restricciones lineales y lógicas.
- 02Explica restricciones avanzadas, como las de circuito, intervalo y no solapamiento.
- 03Muestra cómo configurar límites de tiempo, sugerencias y paralelismo en el solver.
- 04Enseña a interpretar el registro del solver para evaluar la calidad de una solución.
- 05Compara CP-SAT con solvers MIP y otras técnicas de optimización.
- 06Incluye ejemplos de código en Python y una sección sobre búsqueda de vecindad amplia.
Casos de uso
- Aprender optimización combinatoria como estudiante de informática.
- Pasar de un solver MIP a CP-SAT para modelos de planificación o enrutamiento.
- Crear un servicio de optimización fácil de mantener, con CP-SAT detrás de una API.
- Evaluar y ajustar un modelo CP-SAT para un problema de producción.
Inicio rápido
- 1
Instala OR-Tools con pip
pip install -U ortools - 2
Copia el ejemplo de Knapsack del README y ejecútalo en Python
Temas
Preguntas frecuentes
- ¿Qué es cpsat-primer?
- Guía gratuita en formato de libro para aprender a modelar y resolver problemas de optimización combinatoria con el solver CP-SAT de Google OR-Tools. CP-SAT Primer es un tutorial gratuito, en formato de libro, para aprender a usar el solver CP-SAT de Google OR-Tools, basado en programación por restricciones y SAT, para optimización combinatoria. Está dirigido a estudiantes de informática y desarrolladores, incluye ejemplos en Python y compara CP-SAT con solvers de programación lineal entera mixta (MIP) y otras herramientas de optimización.
- ¿cpsat-primer es gratuito? ¿Qué licencia tiene?
- cpsat-primer es open source bajo la licencia CC-BY-4.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿cpsat-primer sigue mantenido?
- Actualizado en los últimos 6 meses. El último commit de cpsat-primer fue el 6 sept 2026.
- ¿Para qué puedo usar cpsat-primer?
- Aprender optimización combinatoria como estudiante de informática. Pasar de un solver MIP a CP-SAT para modelos de planificación o enrutamiento. Crear un servicio de optimización fácil de mantener, con CP-SAT detrás de una API. Evaluar y ajustar un modelo CP-SAT para un problema de producción.
- ¿Cómo se instala cpsat-primer?
- Instala OR-Tools con pip: pip install -U ortools Copia el ejemplo de Knapsack del README y ejecútalo en Python
- ¿Dónde consigo cpsat-primer?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/d-krupke/cpsat-primer
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Utilidad para Windows 10/11 que permite eliminar aplicaciones innecesarias, optimizar y personalizar el sistema, y crear archivos autounattend.xml.
Herramienta gratuita y de código abierto para optimizar Windows, con 42 ajustes, un panel de configuración y herramientas para el inicio, las tareas programadas y la limpieza.
Biblioteca C/C++ para optimizar mallas de triángulos, acelerar su renderizado en GPU y reducir su tamaño de almacenamiento y transmisión.
Agente de programación evolutiva de código abierto que usa LLM para modificar y evaluar código de forma iterativa, con el objetivo de descubrir mejores algoritmos mediante el enfoque AlphaEvolve.
Optimizador de bytecode para apps Android que reescribe archivos .dex para reducir el tamaño de los APK y mejorar su velocidad.