PROGRAMAO INTEIRA 08 de dezembro de 2016 ROTEIRO
PROGRAMAÇÃO INTEIRA 08 de dezembro de 2016
ROTEIRO 1. Conceito 2. Programação 0 -1 3. Resolução
1. CONCEITO
PROGRAMAÇÃO INTEIRA É um caso particular da Programação Linear em que todas as variáveis são restritas a valores inteiros. 5 4 3 x 2 2 1 0 0 1 2 3 4 5 x 1 Aplicações: problemas envolvendo número de itens, como televisores, automóveis, número de estágios. . .
No enunciado do problema devem explicitadas as Condições de Integralidade Max f = 3 x 1 + 4 x 2 s. a. : 2 x 1 + x 2 6 2 x 1 + 3 x 2 9 x 1 ≥ 0 (inteiro) x 2 ≥ 0 (inteiro) Temos, então um problema de Programação Linear com Inteiros
No entanto, há problemas em que apenas algumas variáveis são restritas a valores inteiros. . Max f = 3 x 1 + 4 x 2 s. a. : 2 x 1 + x 2 6 2 x 1 + 3 x 2 9 x 1 ≥ 0 (inteiro) x 2 ≥ 0
Se a Função Objetivo e as Restrições forem Lineares, o problema é de Programação Linear Inteira Mista (PLIM) “Mixed Integer Linear Programming” (MILP). Se alguma delas for não-linear: Programação Não-Linear Inteira Mista (PNLIM) “Mixed Integer Nonlinear Programming” (MINLP).
3. RESOLUÇÃO
A busca da solução inteira ótima pode ser obtida pelo Método “Branch-and-Bound” O Método trata o problema com inteiros de uma maneira indireta. Resolve-se uma sequência de problemas contínuos ignorando a condição de integralidade das variáveis.
A cada etapa reduz-se a Região de Busca pela aplicação de restrições adicionais forçando a integralidade da solução até que seja encontrada a solução inteira ótima. 5 4 x 2 3 2 1 0 0 1 2 x 1 3 4 5
EXEMPLO Max f = 3 x 1 + 4 x 2 s. a. : 2 x 1 + x 2 6 2 x 1 + 3 x 2 9 x 1 ≥ 0 (inteiro) x 2 ≥ 0 (inteiro) O primeiro passo consiste em resolver o problema com o SIMPLEX relaxando as restrições de integralidade. É obtida a Solução Relaxada Se esta solução for inteira, ela já é a solução do Problema.
5 4 x 2 3 Problema Relaxado 2 1 1 0 0 1 2 x 1 3 4 5 x 1 = 2, 25 x 2 = 1, 50 f = 12, 75 Max f = 3 x 1 + 4 x 2 s. a. : 2 x 1 + x 2 6 2 x 1 + 3 x 2 9 x 1 ≥ 0 (inteiro) x 2 ≥ 0 (inteiro) Trata-se de uma solução não-inteira. Logo, não é a ótima. A partir deste problema, são criados dois outros através de uma operação denominada Bifurcação. Parte-se do princípio de que se x é um valor não inteiro e [x*] é a sua parte inteira, o seu valor inteiro ótimo atende a uma das duas condições: x 0 [x*] ou x 0 [x*] + 1
5 Bifurcação 4 x 2 3 Problema Relaxado 2 1 1 0 0 1 2 x 1 3 4 x 2 2 3 5 x 1 = 2, 25 x 2 = 1, 50 f = 12, 75 Max f = 3 x 1 + 4 x 2 s. a. : 2 x 1 + x 2 6 2 x 1 + 3 x 2 9 x 1 ≥ 0 (inteiro) x 2 1 2 São criados os Problemas 2 e 3. Cada um deles inclui uma restrição adicional a uma das variáveis não-inteiras no intuito de eliminar a região onde ela não é inteira. É escolhida a que se encontra mais afastada dos limites: x 2.
5 4 x 2 3 Problema Relaxado 2 1 1 0 0 1 2 x 1 3 4 5 x 2 2 3 x 1 = 1, 5 x 2 = 2 f = 12, 5 x 1 = 2, 25 x 2 = 1, 50 f = 12, 75 Max f = 3 x 1 + 4 x 2 s. a. : 2 x 1 + x 2 6 2 x 1 + 3 x 2 9 x 1 ≥ 0 (inteiro) x 2 1 2 x 1 = 2, 5 x 2 = 1 f = 11, 50 Os Problemas 2 e 3 são resolvidos pelo SIMPLEX. As suas soluções são não-inteiras e passíveis de bifurcação. Escolhe-se para bifurcar o Problema 3 em que o valor da Função Objetivo é superior.
5 4 x 2 inviável 3 Problema Relaxado 2 1 1 0 0 1 2 x 1 3 4 5 inviável x 2 1 x 2 2 3 x 1 2 5 x 1 = 2, 25 x 2 = 1, 50 f = 12, 75 Max f = 3 x 1 + 4 x 2 s. a. : 2 x 1 + x 2 6 2 x 1 + 3 x 2 9 x 1 ≥ 0 (inteiro) x 2 ≥ 0 (inteiro) x 1 = 1, 5 x 2 = 2 f = 12, 5 x 1 1 4 2 x 1 = 2, 5 x 2 = 1 f = 11, 50 x 1 = 1 x 2 = 2, 33 f = 12, 33 São criados os Problemas 4 e 5. O Problema 4 é resolvido por SIMPLEX. A sua solução é não-inteira e será bifurcada. O Problema 5 se mostra inviável face às restrições
5 4 x 2 inviável 3 Problema Relaxado 2 1 1 0 0 1 2 x 1 3 4 5 x 2 1 x 2 2 3 x 1 2 x 1 = 1, 5 x 2 = 2 f = 12, 5 x 1 1 4 5 inviável x 2 3 7 x 1 = 2, 25 x 2 = 1, 50 f = 12, 75 Max f = 3 x 1 + 4 x 2 s. a. : 2 x 1 + x 2 6 2 x 1 + 3 x 2 9 x 1 ≥ 0 (inteiro) x 2 ≥ 0 (inteiro) 2 x 1 = 1 x 2 = 2, 33 f = 12, 33 x 1 = 2, 5 x 2 = 1 f = 11, 50 Há 2 Problemas a bifurcar: 2 e 4 A preferência é do Problema 4 (maior f) x 2 2 6
5 4 x 2 inviável 3 Problema Relaxado 2 1 1 0 0 1 2 x 1 3 4 5 x 2 1 x 2 2 3 x 1 2 x 1 = 1, 5 x 2 = 2 f = 12, 5 x 1 1 4 5 inviável x 2 3 7 x 1 = 2, 25 x 2 = 1, 50 f = 12, 75 x 1 = 0 x 2 = 3 f = 12 Max f = 3 x 1 + 4 x 2 s. a. : 2 x 1 + x 2 6 2 x 1 + 3 x 2 9 x 1 ≥ 0 (inteiro) x 2 ≥ 0 (inteiro) 2 x 1 = 1 x 2 = 2, 33 f = 12, 33 x 1 = 2, 5 x 2 = 1 f = 11, 50 Os Problemas 6 e 7 são resolvidos pelo SIMPLEX. x 2 2 6 x 1 = 1 x 2 = 2 f = 11
5 4 x 2 inviável 3 Problema Relaxado 2 1 1 0 0 1 2 x 1 3 4 5 x 2 1 x 2 2 3 x 1 2 x 1 = 1, 5 x 2 = 2 f = 12, 5 x 1 1 4 5 inviável x 2 3 7 x 1 = 0 x 2 = 3 f = 12 x 1 = 2, 25 x 2 = 1, 50 f = 12, 75 Max f = 3 x 1 + 4 x 2 s. a. : 2 x 1 + x 2 6 2 x 1 + 3 x 2 9 x 1 ≥ 0 (inteiro) x 2 ≥ 0 (inteiro) 2 x 1 = 1 x 2 = 2, 33 f = 12, 33 x 2 2 6 x 1 = 2, 5 x 2 = 1 f = 11, 50 Há 2 soluções inteiras. A do problema 6 é descartada face à do Problema 7, até então candidata a ÓTIMA x 1 = 1 x 2 = 2 f = 11
5 4 x 2 inviável 3 Problema Relaxado 2 1 1 0 0 1 2 x 1 3 4 5 x 2 1 x 2 2 3 x 1 2 x 1 = 1, 5 x 2 = 2 f = 12, 5 x 1 1 4 5 inviável x 2 3 7 x 1 = 0 x 2 = 3 f = 12 x 1 = 2, 25 x 2 = 1, 50 f = 12, 75 Max f = 3 x 1 + 4 x 2 s. a. : 2 x 1 + x 2 6 2 x 1 + 3 x 2 9 x 1 ≥ 0 (inteiro) x 2 ≥ 0 (inteiro) 2 x 1 = 2, 5 x 2 = 1 f = 11, 50 Falta bifurcar o Problema 2. x 1 = 1 x 2 = 2, 33 f = 12, 33 Porém, qualquer solução inteira que possa advir será inferior à do Problema x 2 2 7. 6 x 1 = 1 x 2 = 2 f = 11
5 inviável 4 x 2 Problema Relaxado 3 2 1 1 0 0 1 2 x 1 f = 12, 5 3 4 5 x 2 2 3 x 1 2 x 1 = 1, 5 x 2 = 2 f = 12, 5 x 1 1 4 5 inviável SOLUÇÃO ÓTIMA x 2 3 7 x 1 = 2, 25 x 2 = 1, 50 f = 12, 75 x 2 1 x 1 = 0 x 2 = 3 f = 12 2 Max f = 3 x 1 + 4 x 2 s. a. : 2 x 1 + x 2 6 2 x 1 + 3 x 2 9 x 1 ≥ 0 (inteiro) x 2 ≥ 0 (inteiro) x 1 = 2, 5 x 2 = 1 f = 11, 50 Não mais bifurcável x 1 = 1 x 2 = 2, 33 f = 12, 33 x 2 2 6 x 1 = 1 x 2 = 2 f = 11
PROGRAMAÇÃO 0 - 1 Caso particular da Programação Inteira em que as variáveis inteiras só podem assumir os valores 0 e 1. É a parte da Programação Inteira de interesse na Engenharia de Processos.
Min f = 2 x 1 – 3 y 1 – 2 y 2 – 3 y 3 s. a. : x 1 + y 2 + y 3 ≥ 2 10 x 1 + 5 y 1 + 3 y 2 + 4 y 3 10 x 1 ≥ 0 y 1 , y 2 , y 3 = 0, 1 f= -6, 8 0 [0, 6; 1; 1] y 1 = 1 y 1 = 0 f= -5 6 [0; 1; 1] f= - 6, 667 [1; 0, 333; 1] 1 y 2 = 0 f= -6 5 y 2 = 1 [1; 0; 1] f= - 6, 5 y 3 = 0 f= - 5 7 [1; 1; 0] 2 [1; 1; 0, 5] y 3 = 1 6 Inviável (pq? )
- Slides: 22