Pesquisa Operacional
na Tomada de Decisões
Programação Inteira
2ª Edição
Capítulo 6
© Gerson Lachtermacher,2005
Conteúdos do Capítulo
 Programação Inteira






Problema Relaxado
Solução Gráfica
Solução por Enumeração
Algoritmo de Branch-And-Bound
Solução Excel
Solução no Lindo
 Caso LCL Tecnologia S.A.
 Variáveis Binárias e Condições Lógicas
 Caso LCL Equipamentos S.A.
Capítulo 6
Programação Inteira
 São problemas de programação matemática em que a
função objetivo, bem como as restrições, são lineares,
porém uma ou mais variáveis de decisão podem apenas
assumir valores inteiros.
 Esse problema pode apresentar dois tipos básicos:


Programação Inteira Total - onde todas as variáveis de
decisão são do tipo inteiro.
Programação Inteira Mista - onde apenas uma parte das
variáveis são do tipo inteiro, enquanto outras são do tipo real
Capítulo 6
Programação Inteira
 A primeira idéia que pode vir à mente é resolver o
problema como se fosse um problema de programação
linear e arredondar os valores ótimos encontrados para
cada uma das variáveis de decisão inteiras.
 Para problemas de grande porte, isto geralmente gerará
uma solução aceitável (próxima do ótimo real) sem a
violação de nenhuma das restrições.
 Para problemas menores, esse tipo de procedimento
poderá nos levar a soluções inviáveis ou não ótimas.
Capítulo 6
Programação Inteira
Problema Relaxado
 A todo problema de programação inteira está associado
um problema com a mesma função-objetivo e as
mesmas restrições, com exceção da condição de
variáveis inteiras. A esse problema se dá o nome de
Problema Relaxado
Capítulo 6
Programação Inteira
Solução Gráfica
Max 18 x1 + 6 x2
s.t.
x1 + x2  5
(4)
(1)
(2)
(3)
42.8 x1 + 100 x2  800 (2)
20 x1 + 6 x2  142 (3)
30 x1 + 10 x2  135 (4)
x1 - 3 x2  0 (5)
x1 , x2  0
Capítulo 6
e inteiros
(1)
(5)
Programação Inteira
Solução Gráfica
Max 18 x1 + 6 x2
s. t . x1 + x2  5
42.8 x1 + 100 x2  800
20 x1 + 6 x2  142
30 x1 + 10 x2  135
x1 - 3x2  0
x1 , x2  0 e inteiros
Capítulo 6
x2
Solução Ótima para
LP Relaxado
(5,28 ; 5,74)
x1
Programação Inteira
Solução Gráfica
Solução Aproximada do
LP Relaxado Ótimo
x2
(5 ; 5)
(5,28 ; 5,74)
Solução Ótima para
LP Relaxado
(5,28 ; 5,74)
Solução Ótima
para Problema
Inteiro
x1
Capítulo 6
(6 ; 3)
Programação Inteira
LP Relaxado
 Em um problema de MAXIMIZAÇÃO, o valor ótimo da
função-objetivo, do Problema Relaxado, sempre
representa um limite superior ao respectivo Problema
Inteiro.
 Em um problema de MINIMIZAÇÃO, o valor ótimo da
função-objetivo, do Problema Relaxado, sempre
representa um limite inferior ao respectivo Problema
Inteiro.
Capítulo 6
Programação Inteira
LP Relaxado
 Nenhum ponto inteiro vizinho
ao ponto ótimo do problema
relaxado é necessariamente
viável.
 Mesmo que um dos vizinhos
seja viável.


Não é necessariamente o
ponto ótimo inteiro.
Não é obrigatoriamente uma
solução aceitável.
x2
Solução
Ótima para
LP Relaxado
Solução
Ótima para
Prog.Inteira
x1
Capítulo 6
Programação Inteira
Solução por Enumeração
 Uma idéia que pode resultar em uma solução para um
problema de programação inteira é a de se enumerar
todas as possíveis soluções.
 De forma exaustiva, o valor da função-objetivo é
calculado para todas as soluções viáveis e é escolhido
aquele que apresente o maior valor (no caso de
maximização) ou o menor valor (no caso de
minimização).
Capítulo 6
Programação Inteira
Solução por Enumeração
 O problema com essa tática de solução está no fato de
que ela só consegue ser aplicada a problemas pequenos.
 O número de combinações possíveis de soluções cresce
de forma exponencial, isto é de forma muito rápida.

Ex.: Um ILP com 100 variáveis de decisão do tipo binárias
(assumem 0 ou 1) terá até 2100 soluções viáveis, isto é, 1,27 x
1030 soluções possíveis.
Capítulo 6
Programação Inteira
Algoritmo de Branch-And-Bound
 Algoritmo de Branch-And-Bound é mais utilizado atualmente
para resolução de problemas do tipo ILP ou MILP.
 É uma metodologia geral para solução de ILP e MILP, e existem
diversas variantes para tratar diversos tipos de problemas
específicos.
 A idéia geral é a de se dividir o conjunto de soluções viáveis em
subconjuntos sem interseções entre si, calculando-se os limites
superior e inferior para cada subconjunto, e então eliminando
certos subconjuntos de acordo com regras pré estabelecidas.
Capítulo 6
Programação Inteira
Algoritmo de Branch-And-Bound
 Comparativamente ao LP correspondente, o IP levará
muito mais tempo para obter um valor ótimo. Isso está
ligado ao fato que diversos problemas de LP são
resolvidos sucessivamente para se obter a solução de
um IP.
 Se o problema for interrompido no meio do processo
uma solução aproximada do problema inteiro pode ser
gerada.
Capítulo 6
Programação Inteira
Algoritmo de Branch-And-Bound
 A solução obtida num problema IPL ou MIPL



Sem análise de sensibilidade.
 Deve ser efetuada alterando-se o problema e obtendo-se
nova solução.
Não provê informação similar ao preço de sombra.
Muitos softwares que realizam programação inteira são parte
integrante de pacotes de programação linear e produzem
análise de sensibilidade, independente desta não ter valor no
âmbito de programação inteira.
Capítulo 6
Usando Solver do Excel
Definindo Variáveis Inteiras e Binárias
Capítulo 6
Lindo
Variáveis Inteiras e Binárias
 Os comandos adicionais abaixo são colocados após o
comando END ao final das restrições:
 FREE <Variável> - Remove os limites de não
negatividade imposta a todas as variáveis por default.
 GIN <Variável> - Faz a <Variável> uma variável
inteira geral.
 INT <Variável> - Faz a <Variável> uma variável
inteira binária.
Capítulo 6
Problema de Orçamento de Capital
Caso LCL Tecnologia S/A
 A LCL Tecnologia S/A tem que planejar seus gastos em P&D. A
empresa pré-selecionou 4 projetos e deve escolher dentre esses
quais deve priorizar em função de restrições orçamentárias. Os
dados relevantes encontram-se na tabela abaixo.
Capital Requerido em mil R$
NPV(8%)
(mil R$)
Ano 1
Ano 2
Ano 3
Ano 4
Ano 5
$105.99
70
15
0
20
20
2
$128.90
3
$136.14
4
$117.38
Capital Disponível
80
90
50
200
20
20
30
70
25
0
40
70
15
30
0
70
10
20
20
70
Proj.
1
Capítulo 6
Caso LCL Tecnologia S/A
 Variáveis de Decisão
1 , se o projeto i for selecionad o

Xi  
 i  1,2,3,4
0 , se o projeto i não for selecionad o
 Função Objetivo = Maximizar o somatório NPV
Max 105.99 X 1 + 128.90 X 2 + 136.14 X 3 + 117.38 X 4
Capítulo 6
Caso LCL Tecnologia S/A
 Restrições Orçamentárias
70 X 1 + 80 X 2 + 90 X 3 + 50 X 4  200
- Ano 1
15 X 1 + 20 X 2 + 20 X 3 + 30 X 4  70
- Ano 2
25 X 2 + 40 X 4  70
- Ano 3
20 X 1 + 15 X 2 + 30 X 3  70
- Ano 4
20 X 1 + 10 X 2 + 20 X 3 + 20 X 4  70
- Ano 5
Capítulo 6
Caso LCL Tecnologia S/A
O Modelo
Max 105.99 X 1 + 128.90 X 2 + 136.14 X 3 + 117.38 X 4
st
70 X 1 + 80 X 2 + 90 X 3 + 50 X 4  200
- Ano 1
15 X 1 + 20 X 2 + 20 X 3 + 30 X 4  70
- Ano 2
25 X 2 + 40 X 4  70
- Ano 3
20 X 1 + 15 X 2 + 30 X 3  70
- Ano 4
20 X 1 + 10 X 2 + 20 X 3 + 20 X 4  70
- Ano 5
X 1; X 2 ; X 3 ; X 4  0
Capítulo 6
Caso LCL Tecnologia S/A
Solver do Excel
Capítulo 6
Caso LCL Tecnologia S/A
Solver do Excel
Capítulo 6
Caso LCL Tecnologia S/A
Solver do Excel
Capítulo 6
Variáveis Binárias e
Condições Lógicas
 As variáveis binárias também se prestam a selecionar
alternativas que sejam condicionais.
 No exemplo anterior imagine que não mais de um dos
projetos 1, 3 e 4 pudesse ser selecionado. Deveríamos
então adicionar: X 1 + X 3 + X 4  1
 Se apenas um dos projetos e apenas um dos projetos 1,
2 e 4 tivesse que ser escolhido obrigatoriamente,
deveríamos incluir: X 1 + X 2 + X 4  1
Capítulo 6
Variáveis Binárias e
Condições Lógicas
 Imagine agora que o projeto 1 dependa de uma
tecnologia que deve ser desenvolvida pelo projeto 2,
isto é, o projeto 1 só pode ser aprovado se e somente se
o projeto 2 for aceito. Deveríamos então incluir:
 X 1  0, X 2  0  nenhum dos projetos aceitos

 X 1  1, X 2  1  ambos os projetos aceitos
X 1 - X 2  0
 X 1  0, X 2  1  apenas o projeto 2 foi aceito
 X  1, X  0  inviável
2
 1
Capítulo 6
Caso LCL Equipamentos S.A.
 A LCL Equipamentos S.A. produz três tipos de furadeiras que
necessitam de tempos diferentes na linha de montagem. Para que
cada tipo de furadeira seja fabricada, um custo de preparação da
fabrica é incorrido. Suponha que todas as furadeiras do mesmo
tipo serão produzidas de uma só vez (apenas uma preparação por
tipo). Abaixo os dados relevantes à análise do problema.
Montagem
Pintura
Lucro Unitário
Preparação
Capítulo 6
Tipo 1
Tipo 2
Tipo 3
Total Disponível
2h/unid
3h/unid
R$50
R$5.000
3h/unid
2h/unid
R$60
R$4.000
2,5h/unid
2,5h/unid
R$65
R$3.000
600h
500h
Caso LCL Equipamentos S.A.
Variáveis Binárias
 Variáveis de Decisão
X i  Quantidade a ser produzida do produto i (i  1,2,3)
1, se X i  0
Yi  
i  1,2,3
 0, se X i  0
 Função Objetivo
Max 50 X1 + 60 X 2 + 65X 3 - 5000Y1 - 4000Y2 - 3000Y3
Capítulo 6
Caso LCL Equipamentos S.A.
Variáveis Binárias
 Restrições de Produção
2 X 1 + 3 X 2 + 2,5 X 3  600
3 X 1 + 2 X 2 + 2,5 X 3  500
 Restrições de ligação de Variáveis
X 1  600Y1
X 2  600Y2
X 3  600Y3
Obs : 600 é um nº que é grande o suficiente .
Capítulo 6
Caso LCL Equipamentos S.A.
Variáveis Binárias
=B7*B10
Capítulo 6
Caso LCL Equipamentos S.A.
Variáveis Binárias
Capítulo 6
Caso LCL Equipamentos S.A.
Variáveis Binárias
Capítulo 6
Download

to get the file