Repolode
d-krupke

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. 1

    Instale o OR-Tools com pip

    pip install -U ortools
  2. 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