Resolvedores de Programação Inteira

back to
homepage

Um grande apelo de PLI é a disponibilidade de programas resolvedores de alta qualidade. Muitos desses são livres, de modo que o usuário pode modificá-los de acordo com suas necessidades. Dois resolvedores de código aberto são o GNU Linear Programming Kit (GLPK) e o COIN Branch-and-Cut (COIN CBC). Comparações de desempenho entre esses programas estão disponíveis aqui.

GLPK - GNU Linear Programming Kit

O GLPK é um resolvedor PLI muito documentado e fácil de usar. Apesar de apresentar um desempenho pobre em problemas mais difíceis, é uma ótima opção para desenvolvimento de modelos e testes preliminares. O GLPK aceita arquivos do CPLEX (formato lp) e também modelos escritos na linguagem MathProg, que é baseada na linguagem de modelagem AMPL.

COIN CBC - COIN-OR Branch-and-Cut

O CBC é um poderoso resolvedor de programas lineares e inteiros. O pacote inclui recursos como: pré-processamento, planos de corte, heurísticas e estratégias de branching. Apesar de ter sido inicialmente projetado para ser usado como uma biblioteca, o mesmo inclui um resolvedor independente que pode ser chamado pela linha de comando. Assim como o GLPK, ele aceita o formato .lp (e também o formato MathProg, quando compilado com o respectivo suporte). Esse resolvedor pode também ser executado em modo paralelo para o aproveitamento de computadores com vários núcleos.

Instalação:

Windows:

Baixe o executável do CBC 2.6 e instale em algum lugar acessível pelo PATH.

Para programar em C++ usando a biblioteca do CBC utilize também os arquivos de desenvolvimento.

Linux:

No linux a melhor forma de instalar o CBC é compilando a partir dos fontes, o que permite a adição de recursos adicionais, indisponíveis ainda na plataforma windows. Entre esses está a capacidade de executar o resolvedor em paralelo.

O script abaixo contém os comandos necessários para baixar e instalar uma versão otimizada do coin-cbc.

  installCBC.sh

Para executar, depois de baixá-lo entre na respectiva pasta e digite:

  sh installCBC.sh

Utilização pela linha de comando:

Esse guia apresenta como utilizar e configurar os parâmetros do resolvedor.

Links: