DECOM

 


Programação Linear e Inteira

Prof. Haroldo Gambini Santos

[Intro]   [Notas de Aula]   [Códigos]   [Pacotes]   [Bibliografia]

Introdução:

Material de auxílio aos alunos de PLI.

Notas de Aula:

introOpt
 
Introdução I
- histórico
- método gráfico
- modelagem

 
opt2  
Introdução II
- simplex: introdução
- modelagem
 
opt2  
Simplex
- pivoteamento
- teste de otimalidade
- base ótima
 










model1
GLPK MathProg
- utilização do GLPK
- formato LP e MathProg

model1
Modelagem em PI
- custo fixo
- big M


model1
Modelagem em PI
- jogos














Branch and Bound

Branch and Bound
- branch and bound
- limites duais e primais

formulações PI

Formulações
- envoltória convexa
- formulações fortes

Cortes

Cortes
- cortes por arredondamento
- cortes disjuntivos
- cortes combinatórios















colGen

Geração de Colunas
- decomposição Dantzig-Wolfe
- problema da alocação generalizada

cutStock

Cutting Stock Problem
- exemplo de geração de colunas







Códigos:

C Code
cstock.c  ver em html
Exemplo de geração de colunas para o corte unidimensional usando o GLPK.


Pacotes de Programação Linear Inteira:

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 desses 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. Esse resolvedor pode também ser executado em modo paralelo para o aproveitamento de computadores com vários núcleos.

Bibliografia

[1] Wolsey, Laurence A. Integer Programming. Wiley, 1998.

[2] Lee, Jon. A First Course in Combinatorial Optimization. Cambridge University Press. 2004.

[3] Goldbarg, Marco C. e Luna, Henrique P.L. Otimização Combinatória e Programação Linear. Campus. 2000.

[4] Fampa, Marcia H. C. e Maculan, Nelson. Otimização Linear. UNB. 2006.

[5] Dasgupta, Sanjoy, Papadimitriou, Christos .H e Vazirani, Umesh V. Algorithms. Mc Graw Hill. 2007. Capítulo 7: Programação Linear.