Prof.: Eduardo Uchoa http://www.logis.uff.br/~uchoa/POI Programação Inteira Prof.: Eduardo Uchoa http://www.logis.uff.br/~uchoa/POI
Programação Inteira Tipo de modelo matemático que difere da programação linear simplesmente porque algumas (ou todas as) variáveis podem ser definidas como inteiras. Esse recurso adicional (a primeira vista banal) permite modelar um número muito maior de situações.
Exemplo: Problema da Mochila Um viajante precisa decidir entre n possíveis objetos para colocar na sua mochila com capacidade de peso P. Cada objeto i oferece um ganho gi mas possui um peso pi. O problema é escolher um subconjunto dos objetos com peso ≤ P que maximize o ganho total.
Exemplo: Problema da Mochila 6 5 3 4 2 1 P=10 p1=1 p2=2 p3=4 p4=4 p5=5 p6=6 . g1 =3 g2=3 g3=5 g4=5 g5= 6 g6=9
Modelo de Programação Inteira
Modelo de Programação Inteira Solução ótima: x1, x2 e x6 =1, ganho total 15
Graduação em Engenharia de Produção – Universidade Federal Fluminense Solução Ótima 1 2 3 4 5 6 P=10 p1=1 p2=2 p3=4 p4=4 p5=5 p6=6 . g1 =3 g2=3 g3=5 g4=5 g5= 6 g6=9 Graduação em Engenharia de Produção – Universidade Federal Fluminense
Métodos para Programação Inteira Planos de Corte (Gomory, 1958). Pouco eficiente na prática. Branch-and-bound (Land e Doig, 1964). Branch-and-cut (muitos autores, a partir dos anos 80). Todos esses métodos podem ser lentos em alguns casos 8
Algoritmo de Branch-and-Bound max z=2x1+x2 s.a x1 + x2 4 2x1 5 x1 ,x2 0 x1,x2 inteiros 9
Algoritmo de Branch-and-Bound P0: x1=2.5 x2=1.5 Z=6.5 x2 2 x2 1 P1: x1=2 x2=2 Z=6.0 P2: x1=2.5 x2=1 Z=6.0 Parada por integralidade Parada por Limite (bound) 3 PLs para resolver esse PI 10
Como o algoritmo de Branch-and-Bound pode ser muito ineficiente max z = 17x1+12x2 s.a 10x1 + 7x2 40 x1 + x2 5 x1 ,x2 0 x1,x2 inteiros 5 4 3 2 1 1 2 3 4 5 11
P0: x1=1.67 x2=3.33 Z=68.33 5 4 3 P0 2 1 1 2 3 4 5 12
x1 1 x1 2 P0: x1=1.67 x2=3.33 Z=68.33 P1: x1=1 x2=4 Z=65 13
P0: x1=1.67 x2=3.33 Z=68.33 x1 1 x1 2 P1: x1=1 x2=4 Z=65 P2: x1=2 x2=2.86 Z=68.29 x2 2 x2 3 P3: x1=2.6 x2=2 Z=68.2 5 4 3 2 P3 1 1 2 3 4 5 14
x1 2 x1 3 5 4 P4: x1=2 x2=2 Z=58 P5: x1=3 x2=1.43 Z=68.14 3 2 P4 1 15
P0: x1=1.67 x2=3.33 Z=68.33 x1 1 x1 2 P1: x1=1 x2=4 Z=65 P2: x1=2 x2=2.86 Z=68.29 x2 2 x2 3 P3: x1=2.6 x2=2 Z=68.2 5 x1 2 x1 3 P4: x1=2 x2=2 Z=58 P5: x1=3 x2=1.43 Z=68.14 4 3 x2 1 x2 2 P6: x1=3.3 x2=1 Z=68.1 2 1 P6 1 2 3 4 5 16
x1 4 x1 3 5 4 3 2 P7: x1=3 x2=1 Z=63 P8: x1=4 x2=0 Z=68 1 P7 P8 1 17
x1 1 x1 2 x2 2 x2 3 x1 2 x1 3 x2 1 x2 2 x1 3 x1 4 P0: x1=1.67 x2=3.33 Z=68.33 x1 1 x1 2 P1: x1=1 x2=4 Z=65 P2: x1=2 x2=2.86 Z=68.29 x2 2 x2 3 P3: x1=2.6 x2=2 Z=68.2 P10: infactível x1 2 x1 3 P4: x1=2 x2=2 Z=58 P5: x1=3 x2=1.43 Z=68.14 x2 1 x2 2 P6: x1=3.3 x2=1 Z=68.1 P9: infactível x1 3 x1 4 P7: x1=3 x2=1 Z=63 P8: x1=4 x2=0 Z=68 18
OBSERVAÇÃO Este material refere-se às notas de aula do curso TEP117 (Pesquisa Operacional I) da Universidade Federal Fluminense (UFF) e não pode ser reproduzido sem autorização prévia do autor. Quando autorizado, seu uso é exclusivo para atividades de ensino e pesquisa em instituições sem fins lucrativos.