Toolkit em Python que otimiza modelos ONNX reduzindo o número de operadores sem comprometer a precisão, para acelerar a inferência.
d-krupke/cpsat-primer
Um guia gratuito em formato de livro que ensina a modelar e resolver problemas de otimização combinatória com o solver CP-SAT do Google OR-Tools.
- Estrelas
- 834
- Forks
- 69
- Issues abertas
- 9
- Último commit
- há 2 meses
O que é?
O CP-SAT Primer é um tutorial gratuito, em formato de livro, para aprender a usar o solver CP-SAT do Google OR-Tools, baseado em programação por restrições e SAT para otimização combinatória. Voltado a estudantes de ciência da computação e desenvolvedores, traz exemplos em Python ao longo do conteúdo e compara o CP-SAT com solvers de programação linear inteira mista (MIP) e outras ferramentas de otimização.
A primeira parte aborda a instalação, a criação do primeiro modelo, os conceitos básicos de modelagem de variáveis, funções objetivo e restrições, restrições avançadas como circuit, interval e reservoir, parâmetros do solver e a leitura do log do solver. A segunda parte trata de tópicos práticos de engenharia: padrões de código para manter código de otimização, disponibilização de tarefas de otimização por meio de uma API, heurísticas de large neighborhood search e benchmarking de modelos.
O guia é mantido por Dominik Krupke, da TU Braunschweig, e distribuído sob a licença CC-BY 4.0. Há também um site complementar que apresenta o mesmo conteúdo em formato de livro.
Recursos principais
- 01Aborda os fundamentos do CP-SAT: variáveis, funções objetivo e restrições lineares e lógicas.
- 02Explica restrições avançadas, como circuit, interval e no-overlap.
- 03Mostra como configurar limites de tempo, hints e paralelismo no solver.
- 04Ensina a interpretar o log do solver para avaliar a qualidade da solução.
- 05Compara o CP-SAT com solvers MIP e outras técnicas de otimização.
- 06Inclui exemplos de código em Python e uma seção sobre large neighborhood search.
Casos de uso
- Aprender otimização combinatória como estudante de ciência da computação.
- Migrar de um solver MIP para o CP-SAT em modelos de escalonamento ou roteamento.
- Criar um serviço de otimização fácil de manter, com o CP-SAT por trás de uma API.
- Fazer benchmarking e ajustar um modelo CP-SAT para um problema de produção.
Início rápido
- 1
Instale o OR-Tools com pip
pip install -U ortools - 2
Copie o exemplo de Knapsack do README e execute-o em Python
Tópicos
Perguntas frequentes
- O que é cpsat-primer?
- Um guia gratuito em formato de livro que ensina a modelar e resolver problemas de otimização combinatória com o solver CP-SAT do Google OR-Tools. O CP-SAT Primer é um tutorial gratuito, em formato de livro, para aprender a usar o solver CP-SAT do Google OR-Tools, baseado em programação por restrições e SAT para otimização combinatória. Voltado a estudantes de ciência da computação e desenvolvedores, traz exemplos em Python ao longo do conteúdo e compara o CP-SAT com solvers de programação linear inteira mista (MIP) e outras ferramentas de otimização.
- cpsat-primer é gratuito? Qual é a licença?
- cpsat-primer é open source sob a licença CC-BY-4.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- cpsat-primer ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de cpsat-primer foi em 6 de set. de 2026.
- Para que posso usar cpsat-primer?
- Aprender otimização combinatória como estudante de ciência da computação. Migrar de um solver MIP para o CP-SAT em modelos de escalonamento ou roteamento. Criar um serviço de otimização fácil de manter, com o CP-SAT por trás de uma API. Fazer benchmarking e ajustar um modelo CP-SAT para um problema de produção.
- Como instalar cpsat-primer?
- Instale o OR-Tools com pip: pip install -U ortools Copie o exemplo de Knapsack do README e execute-o em Python
- Onde consigo cpsat-primer?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/d-krupke/cpsat-primer
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Utilitário para Windows 10/11 que remove aplicativos pré-instalados, otimiza e personaliza o sistema e cria arquivos autounattend.xml.
Ferramenta gratuita e de código aberto para otimizar o Windows, com 42 ajustes, painel de configurações e ferramentas integradas para inicialização, tarefas agendadas e limpeza.
Biblioteca C/C++ para otimizar malhas de triângulos, acelerar a renderização em GPUs e reduzir o tamanho do armazenamento e da transmissão das malhas.
Agente de programação evolutiva open source que usa LLMs para alterar e avaliar código iterativamente, buscando algoritmos melhores com a abordagem AlphaEvolve.
Um otimizador de bytecode para apps Android que reescreve arquivos .dex para deixar os APKs menores e mais rápidos.