Transcript Programação Linear - Prof. Sérgio Mayerle
Slide 1
Programação Linear
Teoria e Modelagem Matemática
Prof. Antônio Sérgio Coelho ([email protected])
Prof. Sérgio Fernando Mayerle ([email protected])
Slide 2
Programação Linear
Sumário – Parte I
Exemplo introdutório
Modelagem conceitual e matemática
Solução gráfica
Dificuldades adicionais
Lista de exercícios adicionais
Slide 3
Programação Linear
Exemplo de Introdutório
A WINDOR GLASS Inc. dispõe de capacidade extra para produzir dois novos
produtos. A demanda é muito maior que a capacidade disponível (toda
produção poderá ser vendida).
Pergunta-se: (a) o que produzir? (b) quanto produzir? (c) qual será o lucro?
(d) qual o valor, em $/hora, da capacidade disponível em cada setor
produtivo? Os dados estão na tabela abaixo.
Produto
Janelas
Portas
Capacidade
Disponível
Montagem
1 hora/unid.
-
4.000 horas/mês
Laminação
-
2 hora/unid.
12.000 horas/mês
Corte
3 hora/unid.
2 hora/unid.
18.000 horas/mês
Lucro Unitário
$ 3,00
$ 5,00
Setor Produtivo
Slide 4
Programação Linear
Modelagem Conceitual e Matemática
Produto
Janelas
Portas
Capacidade
Disponível
Montagem
1 hora/unid.
-
4.000 horas/mês
Laminação
-
2 hora/unid.
12.000 horas/mês
Corte
3 hora/unid.
2 hora/unid.
18.000 horas/mês
Lucro Unitário
$ 3,00
$ 5,00
Setor Produtivo
Variáveis
X1 = qtde. de janelas, em milhares de unidades;
X2 = qtde. de portas, em milhares de unidades;
Z = lucro total obtido com novos produtos.
Restrições
a) disponibilidade do setor de montagem;
b) disponibilidade do setor de laminação;
c) disponibilidade do setor de corte;
d) quantidades não negativas.
Objetivo
Maximizar o lucro total da empresa
Max Z 3 x1 5 x2
s.a :
x1 4
2 x2 12
3 x1 2 x2 18
x1 , x2 0
Slide 5
Programação Linear
Solução Gráfica
Max Z 3 x1 5 x2
s.a :
x2
x1 4
9
x1 4
8
2 x2 12
7
3 x1 2 x2 18
2 x2 12
6
x1 , x2 0
5
4
x1 0
3
2
3 x1 2 x2 18
1
0
0
1
2
x2 0
3
4
5
6
7
8
9
x1
Slide 6
Programação Linear
Dificuldades Adicionais ao Problema...
O que fazer se além de portas e janelas a WINDOR puder fabricar, também,
mesas e armários?
Resolver graficamente o problema torna-se inviável ... É necessário usar
métodos numéricos mais eficazes e eficientes.
Quantos produtos diferentes uma fábrica pode produzir?
5, 10, 100, 1000, ...
Quantos setores de produção uma fábrica possui?
5, 10, 100, 1000, ...
E se existem restrições adicionais em relação ao uso de matéria-prima,
energia, estoques, mão-de-obra, cadeia de suprimento e distribuição?
Outros modelos, mais complexos, poderão ser formulados ...
Slide 7
Programação Linear
Lista de Exercícios de Formulação
Produção
Logística
Mistura
Finanças e investimentos
Carregamento de navios
Corte de chapas e barras
Aquisição de máquinas
Problemas dinâmicos
Câmbio
Alguns do problemas acima apresentam variáveis discretas que somente
podem assumir valores do conjunto de inteiros, e em casos mais particulares
o conjunto de inteiros se limita a {0,1}.
Estratégia militar
Engenharia estrutural
Operação de dutos
Dimensionamento de linhas de
produção
Alocação de mão-de-obra
Programação de operações
Controle de emissão de poluentes
Slide 8
Programação Linear
Sumário – Parte II
Forma padrão
Relações de equivalência
Suposições da Programação Linear
Propriedades
Estrutura do método Simplex
Slide 9
Programação Linear
Forma Padrão (1)
Max
z c1 x1 c2 x2 cn xn
s.a :
a11 x1 a12 x2 a1n xn b1
a21 x1 a22 x2 a2 n xn b2
am1 x1 am 2 x2 amn xn bm
x1 , x2 ,, xn 0
Slide 10
Programação Linear
Forma Padrão (2)
n
Max
z cjxj
j 1
n
s.a :
aij x j bi
j 1
xj 0
i 1,, m
j 1,, n
Slide 11
Programação Linear
Forma Padrão (3)
Max
z c1
a11
a
s.a : 21
a
m1
c2
a12
a22
am 2
x1
x
cn 2
x
n
a1n x1 b1
a2 n x2 b2
e
amn xn bm
x1 0
x 0
2
x
n 0
Slide 12
Programação Linear
Forma Padrão (4)
Max
z cT x
s.a :
Ax b
x0
c1
c
2
c
c
n
x1
b1
x
b
2
2
x
b
x
b
n
m
a11
a
21
A
a
m1
a12
a22
am 2
a1n
a2 n
amn
Slide 13
Programação Linear
Relações de Equivalência (1)
Qualquer que seja a estrutura do PPL, sempre é possível transformá-lo no
formato padrão apresentado.
Relação entre maximização e minimização
n
Max
z cjxj
Min
j 1
n
Min z c j x j
j 1
z c j x j
n
j 1
Max
z c j x j
n
j 1
Slide 14
Programação Linear
Relações de Equivalência (2)
Relação entre inequações e equações
n
a
j 1
ij
n
a
j 1
ij
x j bi
n
aij x j Si bi
j 1
0 S
i
x j bi
n
aij x j Si bi
j 1
0 S
i
Slide 15
Programação Linear
Relações de Equivalência (3)
Tratamento de limites de variáveis
x j LB xj x j xj LB
x j LB 0
xj 0
UB x j xj x j UB xj
x j UB
xj 0
x j xj xj
x j
xj 0 e xj 0
Slide 16
Programação Linear
Suposições
Proporcionalidade
Custos e quantidades de recursos consumidos na produção são
proporcionais às quantidades produzidas
Aditividade
Custos totais e quantidades totais de recursos são determinados pela soma
de custos e recursos consumidos na produção de todos items
Divisibilidade
É possível produzir quantidades fracionárias de cada um dos produtos
Certeza
Todos os parâmetros do modelo são determinados e conhecidos
Perspectiva das suposições
Existe a possibilidade de todas estas suposições não serem verdadeiras.
Slide 17
Programação Linear
Propriedades
Se existe exatamente uma solução
ótima, então deve ser uma solução
factível em um vértice
Se existem soluções ótimas múltiplas,
então ao menos duas delas devem ser
soluções factíveis em vértices
adjacentes
x2
9
8
7
6
n!finito de soluções
Existe
m um número
Cn em vértices, não maior que...
factíveis
m!(n m)!
Se uma solução factível em um vértice
é igual ou melhor (segundo o valor de
Z) que todas as soluções factíveis nos
vértices adjacentes a ela, então é igual
ou melhor que todas as demais
soluções factíveis existentes nos
vértices, isto é, é uma solução ótima
5
4
3
2
1
0
0
1
2
3
4
5
6
7
8
9
x1
Slide 18
Programação Linear
Estrutura do Método Simplex
1.
Passo inicial: iniciar com
uma solução factível em um
vértice.
x2
Solução
Ótima
9
8
2.
3.
Teste de otimalidade: se
não existe solução factível
em um vértice adjacente,
melhor que a solução atual,
então PARE. A solução
atual é ótima. Em caso
contrário, vá ao passo 3.
Passo iterativo: movimente
em direção de uma solução
factível melhor, em um
vértice adjacente; volte ao
passo 2.
7
6
5
4
3
2
1
0
0
1
2
3
4
5
6
7
8
9
x1
Slide 19
Programação Linear
Sumário – Parte III
Solução inicial viável (caso trivial)
Método Simplex na forma tableau
Algoritmo
Exemplo da WINDOR
Método Simplex na forma matricial
Formulação matemática
Exemplo da WINDOR
Obtenção da solução inicial viável (caso não trivial)
Inclusão de variáveis artificiais
Solução inicial pelo método das duas fases
Solução inicial pelo método do M-grande
Slide 20
Programação Linear
Solução Inicial Viável (caso trivial)
Max
z 3 x1 5 x2
Max
z 3 x1 5 x2
s.a :
x1 4
s.a :
x1 S1 4
2 x2 12
2 x2 S 2 12
3 x1 2 x2 18
3 x1 2 x2 S3 18
x1 , x2 0
x1 , x2 , S1 , S 2 , S3 0
Caso trivial
a) variáveis não negativas
b) restrições com limite superior
Solução
variáveis nulas
folgas iguais ao RHS
S1 4
x1 0
S 2 12 x2 0
S3 18
z0
Slide 21
Programação Linear
Método Simplex na Forma Tableau (1)
Base
Z
X1
X2
S1
S2
S3
RHS
S1
0
1
0
1
0
0
4
+inf
S2
0
0
2
0
1
0
12
+6
S3
0
3
2
0
0
1
18
+9
Z
1
-3
-5
0
0
0
0
O que fazer para melhorar a solução?
Quanto aumentar X2 ?
Max
S2
z 3 x1 5 x2
Base
Z
X1
X2
S1
S3
RHS
S1
0
1
0
1
X2
0
0
1
0
1/2
2 x20 S 2 612
S3
0
3
0
0
-1
Z
1
-3
0
0
5/2
3 x1 1 2 x2 6 S3 +2
18
s.a : 0 x1 0S1 4
0
4
30
+4
+inf
x1 , x2 , S1 , S 2 , S3 0
Slide 22
Programação Linear
Método Simplex na Forma Tableau (2)
Base
Z
X1
X2
S1
S2
S3
RHS
S1
0
0
0
1
1/3
-1/3
2
X2
0
0
1
0
1/2
0
6
X1
0
1
0
0
-1/3
1/3
2
Z
1
0
0
0
3/2
1
36
Var.
Decisões
Valor
Marg.
X1
Janelas
2
0
X2
Portas
6
0
S1
Montagem
2
0
S2
Laminação
0
1,5
S3
Corte
0
1
Z
Lucro
36
1
Pergunta-se:
(a) o que produzir?
(b) quanto produzir?
(c) qual será o lucro?
(d) qual o valor da capacidade
disponível em cada setor?
Slide 23
Programação Linear
Custo marginal
mais negativo
Método Simplex – Algoritmo
Início
Escolher variável
para entrar na base
Montar tableau com
solução básica
inicial viável
Menor razão
não negativa
Calcular razão
RHS / coluna (entra)
Escolher variável
para sair da base
1
Existe custo
marginal < 0 ?
Sim
Existe
razão 0
finita ?
Não
Não
Solução
ótima
Solução
ilimitada
Sim
Fazer troca de
base e recalcular
o tableau
1
Fim
Slide 24
Programação Linear
Método Simplex na Forma Matricial (1)
Max z c x
T
s.a :
Ax b
x0
xB
Max z c c
xR
xB
s.a : B R b
xR
x B 0
x 0
R
Particionando...
T
B
T
R
Slide 25
Programação Linear
Método Simplex na Forma Matricial (2)
Como resolver o sistema de equações lineares ?
xB
B R b
xR
B xB R xR b
B xB b R xR
xB B 1 b R xR
No caso particular em que as variáveis não básicas são nulas ...
xˆ R 0
Solução Particular
xˆ B B 1b
Slide 26
Programação Linear
Método Simplex na Forma Matricial (3)
E o valor da função objetivo ?
z c
T
B
c
T
R
z cBT xB cRT xR
z cBT B 1 b R xR cRT xR
xB
x
R
z cBT B 1b cRT cBT B 1 R xR
z cBT xˆ B cRT cBT B 1 R xR
No caso particular em que as variáveis não básicas são nulas ...
xˆ R 0
1
xˆ B B b
Solução Particular
zˆ cBT xˆ B
Slide 27
Programação Linear
Método Simplex na Forma Matricial (4)
Resumindo, até aqui tem-se ...
xB B
1
b R xR
xˆ R 0
1
x
B
b
ˆ
B
z cBT xˆ B cRT cBT B 1 R xR
É possível melhorar o valor da função objetivo ? ...
z zˆ cRT cBT B 1 R xR 0
zˆ cBT xˆ B
Slide 28
Programação Linear
Método Simplex na Forma Matricial (5)
Como melhorar ...
z zˆ cRT cBT B 1 R xR 0
z zˆ
Escolher para aumentar (entrar
na base) uma variável não
básica associada a uma
componente positiva do vetor
xR ,1
x
R ,k
0
0
x
R ,nm
cRT cBT B 1 R
Slide 29
Programação Linear
Método Simplex na Forma Matricial (6)
Aumentar a k-ésima variável não básica (escolhida) ... até quanto ?
xB ,i xˆ B ,i Rk ,i xR ,k 0
xB B 1 b R xR
Rk ,i xR ,k xˆ B ,i
xB xˆ B B 1 Rk xR ,k
xˆ B ,i
Rk ,i
xB xˆ B Rk xR ,k
xR ,k
xB ,1 xˆ B ,1 Rk ,1
0
x xˆ R
0
B , 2 B , 2 k , 2 xR ,k
x xˆ
0
R
B ,m B ,m k ,m
i 1,..., m
i 1,..., m
somente para
Rk ,i 0
Escolher para sair da base
uma variável básica
associada ao menor valor
calculado.
Slide 30
Programação Linear
Método Simplex na Forma Matricial (7)
Resumo...
x
ˆ B B 1b
zˆ cBT xˆ B
z zˆ cRT cBT B 1 R xR 0
Solução
Teste de entrada
Rk B 1Rk
xR ,k
xˆ B ,i
min
| Rk ,i 0
Rk ,i
Teste de saída
Slide 31
Programação Linear
Exemplo (1)
c RT
c BT
x1
x
2
Max z 3 5 0 0 0 S1
S
2
S3
R
B
s.a :
x1
1 0 1 0 0 x2 4
0 2 0 1 0 S 12
1
3 2 0 0 1 S 2 18
S3
xR
xB
b
x1 0
x 0
2
S1 0
S
2 0
S3 0
Slide 32
Programação Linear
Exemplo (1.a)
1a. Iteração
S1
xB S 2
S3
x1
xR
x2
4
b 12
18
1 0 0
B 0 1 0
0 0 1
1 0
R 0 2
3 2
cTB 0 0 0
cTR 3 5
Slide 33
Programação Linear
Exemplo (1.b)
1
x1 0
xˆ R
x2 0
S1
1 0 0 4 4
xˆ B S2 B 1b 0 1 0 12 12
S3
0 0 1 18 18
4
zˆ cBT xˆ B [0 0 0] 12 0
18
cRT cBT B 1 R 3 5 0
cRT cBT B 1 R 3 5
1
1 0 0 1
0 0 0 1 0 0
na base
x2 Entra
0 0 1 3
0
2
2
Slide 34
Programação Linear
Exemplo (1.c)
1
1 0 0 0 0
Rk B 1 Rk 0 1 0 2 2
0 0 1 2 2
4 0
0
xB xˆ B Rk xR ,k 12 2 xR ,k 0
18 2
0
4 12 18
xR ,k min , , 6
0 2 2
S2
Sai da base
S1 4
xˆ B S 2 12
S3 18
Coluna de
x2
Slide 35
Programação Linear
Exemplo (2.a)
2a. Iteração
S1
xB Sx2
S3
x1
xR
Sx2
4
b 12
18
1 0 0
B 0 12 0
0 02 1
1 0
2
R 0 1
0
3 2
cTB 0 50 0
cTR 3 05
Slide 36
Programação Linear
Exemplo (2.b)
x1 0
xˆ R
S 2 0
zˆ cTB xˆ B [0
S1
1
xˆ B x2 B 1b 0
S3
0
5
0
2
2
4
0] 6 30
6
1
cRT cBT B 1 R 3 0 0 5 0 0
x1 Entra na base
0
5
T
T
1
cR cB B R 3
2
0
2
2
0
0
1
1
0
0
1
4 4
12 6
18 6
1
1
0
3
0
1
0
Slide 37
Programação Linear
Exemplo (2.c)
1
1 0 0 1 1
Rk B 1 Rk 0 2 0 0 0
0 2 1 3 3
s1 4
xˆ B x2 6
s3 6
4 1
0
xB xˆ B Rk xR ,k 6 0 xR ,k 0
6 3
0
4 6 6
xR ,k min , , 2
1 0 3
S3
Coluna de
Sai da base
x1
Slide 38
Programação Linear
Exemplo (3.a)
3a. Iteração
S1
xB x2
Sx13
Sx13
xR
S 2
4
b 12
18
0
1 0 1
B 0 2 0
0 2 13
0
0 1
R 0 1
0
3
1 0
cTB 0 5 30
cTR 0 03
Slide 39
Programação Linear
Exemplo (3.b)
1
1 0 1 4 2
xˆ B B 1b 0 2 0 12 6
0 2 3 18 2
2
zˆ cBT xˆ B [0 5 3] 6 36
2
Solução ótima
1
1 0 1 0 0
cRT cBT B 1 R 0 0 0 5 3 0 2 0 0 1
0 2 3 1 0
3
T
T 1
cR cB B R 1
2
Slide 40
Programação Linear
Exemplo (4)
Var.
Decisões
Valor
Marg.
X1
Janelas
2
0
X2
Portas
6
0
S1
Montagem
2
0
S2
Laminação
0
-1,5
S3
Corte
0
-1
Z
Lucro
36
1
Slide 41
Programação Linear
Solução Inicial Viável (caso não trivial)
n
Max
z cj xj
Não tem solução trivial
j 1
n
s.a :
aij x j bi
j 1
xj 0
i 1,..., mn
Max z c j x j
j 1
j 1,..., n
n
s.a :
a
j 1
Sempre tem solução trivial
ij
x j d i bi
i 1,..., m
xj 0
j 1,..., n
di 0
i 1,..., m
Ambas formulações são equivalentes quando
di 0, i 1,..., m
Slide 42
Programação Linear
Solução Inicial Viável – Método do M-grande
Max
n
m
j 1
i 1
z c j x j M di
n
s.a :
a
j 1
ij
x j d i bi
i 1,..., m
xj 0
j 1,..., n
di 0
i 1,..., m
Se di 0, i 1,..., m encontrou a solução ótima
não existe solução viável, ou
Se di 0
M não é suficiente mente grande
Slide 43
Programação Linear
Solução Inicial Viável – Método das 2 Fases
Max w
Resolver o problema da
fase 1 usando as variáveis
artificiais para formar uma
base inicial viável.
Se w = 0, então uma
solução inicial viável foi
obtida para o problema.
m
d
Fase 1
i
i 1
n
s.a :
a
ij
x j di bi
i 1,..., m
j 1
xj 0
j 1,..., n
di 0
i 1,..., m
Max
z
n
c
j
xj
Fase 2
j 1
Se w = 0, usar solução ótima
da fase 1 como solução inicial
viável para a fase 2.
n
s.a :
a
ij
x j bi
i 1,..., m
j 1
xj 0
j 1,..., n
Slide 44
Exemplo
Uma empresa tem três tipos de máquinas de processamento, tendo cada uma
delas velocidade e taxas de defeitos diferentes. Devem ser processadas 3500
peças por dia (8 horas/dia). Cada peça defeituosa custa à empresa US$ 1,00.
Formule um modelo de PL para determinar a solução ótima para este
problema.
Tipo Máquina
Peças / hora
Defeitos
US$ / hora
# Máquinas
I
20
5%
2,00
8
II
15
10%
1,75
10
III
10
0%
1,50
20
Programação Linear
Teoria e Modelagem Matemática
Prof. Antônio Sérgio Coelho ([email protected])
Prof. Sérgio Fernando Mayerle ([email protected])
Slide 2
Programação Linear
Sumário – Parte I
Exemplo introdutório
Modelagem conceitual e matemática
Solução gráfica
Dificuldades adicionais
Lista de exercícios adicionais
Slide 3
Programação Linear
Exemplo de Introdutório
A WINDOR GLASS Inc. dispõe de capacidade extra para produzir dois novos
produtos. A demanda é muito maior que a capacidade disponível (toda
produção poderá ser vendida).
Pergunta-se: (a) o que produzir? (b) quanto produzir? (c) qual será o lucro?
(d) qual o valor, em $/hora, da capacidade disponível em cada setor
produtivo? Os dados estão na tabela abaixo.
Produto
Janelas
Portas
Capacidade
Disponível
Montagem
1 hora/unid.
-
4.000 horas/mês
Laminação
-
2 hora/unid.
12.000 horas/mês
Corte
3 hora/unid.
2 hora/unid.
18.000 horas/mês
Lucro Unitário
$ 3,00
$ 5,00
Setor Produtivo
Slide 4
Programação Linear
Modelagem Conceitual e Matemática
Produto
Janelas
Portas
Capacidade
Disponível
Montagem
1 hora/unid.
-
4.000 horas/mês
Laminação
-
2 hora/unid.
12.000 horas/mês
Corte
3 hora/unid.
2 hora/unid.
18.000 horas/mês
Lucro Unitário
$ 3,00
$ 5,00
Setor Produtivo
Variáveis
X1 = qtde. de janelas, em milhares de unidades;
X2 = qtde. de portas, em milhares de unidades;
Z = lucro total obtido com novos produtos.
Restrições
a) disponibilidade do setor de montagem;
b) disponibilidade do setor de laminação;
c) disponibilidade do setor de corte;
d) quantidades não negativas.
Objetivo
Maximizar o lucro total da empresa
Max Z 3 x1 5 x2
s.a :
x1 4
2 x2 12
3 x1 2 x2 18
x1 , x2 0
Slide 5
Programação Linear
Solução Gráfica
Max Z 3 x1 5 x2
s.a :
x2
x1 4
9
x1 4
8
2 x2 12
7
3 x1 2 x2 18
2 x2 12
6
x1 , x2 0
5
4
x1 0
3
2
3 x1 2 x2 18
1
0
0
1
2
x2 0
3
4
5
6
7
8
9
x1
Slide 6
Programação Linear
Dificuldades Adicionais ao Problema...
O que fazer se além de portas e janelas a WINDOR puder fabricar, também,
mesas e armários?
Resolver graficamente o problema torna-se inviável ... É necessário usar
métodos numéricos mais eficazes e eficientes.
Quantos produtos diferentes uma fábrica pode produzir?
5, 10, 100, 1000, ...
Quantos setores de produção uma fábrica possui?
5, 10, 100, 1000, ...
E se existem restrições adicionais em relação ao uso de matéria-prima,
energia, estoques, mão-de-obra, cadeia de suprimento e distribuição?
Outros modelos, mais complexos, poderão ser formulados ...
Slide 7
Programação Linear
Lista de Exercícios de Formulação
Produção
Logística
Mistura
Finanças e investimentos
Carregamento de navios
Corte de chapas e barras
Aquisição de máquinas
Problemas dinâmicos
Câmbio
Alguns do problemas acima apresentam variáveis discretas que somente
podem assumir valores do conjunto de inteiros, e em casos mais particulares
o conjunto de inteiros se limita a {0,1}.
Estratégia militar
Engenharia estrutural
Operação de dutos
Dimensionamento de linhas de
produção
Alocação de mão-de-obra
Programação de operações
Controle de emissão de poluentes
Slide 8
Programação Linear
Sumário – Parte II
Forma padrão
Relações de equivalência
Suposições da Programação Linear
Propriedades
Estrutura do método Simplex
Slide 9
Programação Linear
Forma Padrão (1)
Max
z c1 x1 c2 x2 cn xn
s.a :
a11 x1 a12 x2 a1n xn b1
a21 x1 a22 x2 a2 n xn b2
am1 x1 am 2 x2 amn xn bm
x1 , x2 ,, xn 0
Slide 10
Programação Linear
Forma Padrão (2)
n
Max
z cjxj
j 1
n
s.a :
aij x j bi
j 1
xj 0
i 1,, m
j 1,, n
Slide 11
Programação Linear
Forma Padrão (3)
Max
z c1
a11
a
s.a : 21
a
m1
c2
a12
a22
am 2
x1
x
cn 2
x
n
a1n x1 b1
a2 n x2 b2
e
amn xn bm
x1 0
x 0
2
x
n 0
Slide 12
Programação Linear
Forma Padrão (4)
Max
z cT x
s.a :
Ax b
x0
c1
c
2
c
c
n
x1
b1
x
b
2
2
x
b
x
b
n
m
a11
a
21
A
a
m1
a12
a22
am 2
a1n
a2 n
amn
Slide 13
Programação Linear
Relações de Equivalência (1)
Qualquer que seja a estrutura do PPL, sempre é possível transformá-lo no
formato padrão apresentado.
Relação entre maximização e minimização
n
Max
z cjxj
Min
j 1
n
Min z c j x j
j 1
z c j x j
n
j 1
Max
z c j x j
n
j 1
Slide 14
Programação Linear
Relações de Equivalência (2)
Relação entre inequações e equações
n
a
j 1
ij
n
a
j 1
ij
x j bi
n
aij x j Si bi
j 1
0 S
i
x j bi
n
aij x j Si bi
j 1
0 S
i
Slide 15
Programação Linear
Relações de Equivalência (3)
Tratamento de limites de variáveis
x j LB xj x j xj LB
x j LB 0
xj 0
UB x j xj x j UB xj
x j UB
xj 0
x j xj xj
x j
xj 0 e xj 0
Slide 16
Programação Linear
Suposições
Proporcionalidade
Custos e quantidades de recursos consumidos na produção são
proporcionais às quantidades produzidas
Aditividade
Custos totais e quantidades totais de recursos são determinados pela soma
de custos e recursos consumidos na produção de todos items
Divisibilidade
É possível produzir quantidades fracionárias de cada um dos produtos
Certeza
Todos os parâmetros do modelo são determinados e conhecidos
Perspectiva das suposições
Existe a possibilidade de todas estas suposições não serem verdadeiras.
Slide 17
Programação Linear
Propriedades
Se existe exatamente uma solução
ótima, então deve ser uma solução
factível em um vértice
Se existem soluções ótimas múltiplas,
então ao menos duas delas devem ser
soluções factíveis em vértices
adjacentes
x2
9
8
7
6
n!finito de soluções
Existe
m um número
Cn em vértices, não maior que...
factíveis
m!(n m)!
Se uma solução factível em um vértice
é igual ou melhor (segundo o valor de
Z) que todas as soluções factíveis nos
vértices adjacentes a ela, então é igual
ou melhor que todas as demais
soluções factíveis existentes nos
vértices, isto é, é uma solução ótima
5
4
3
2
1
0
0
1
2
3
4
5
6
7
8
9
x1
Slide 18
Programação Linear
Estrutura do Método Simplex
1.
Passo inicial: iniciar com
uma solução factível em um
vértice.
x2
Solução
Ótima
9
8
2.
3.
Teste de otimalidade: se
não existe solução factível
em um vértice adjacente,
melhor que a solução atual,
então PARE. A solução
atual é ótima. Em caso
contrário, vá ao passo 3.
Passo iterativo: movimente
em direção de uma solução
factível melhor, em um
vértice adjacente; volte ao
passo 2.
7
6
5
4
3
2
1
0
0
1
2
3
4
5
6
7
8
9
x1
Slide 19
Programação Linear
Sumário – Parte III
Solução inicial viável (caso trivial)
Método Simplex na forma tableau
Algoritmo
Exemplo da WINDOR
Método Simplex na forma matricial
Formulação matemática
Exemplo da WINDOR
Obtenção da solução inicial viável (caso não trivial)
Inclusão de variáveis artificiais
Solução inicial pelo método das duas fases
Solução inicial pelo método do M-grande
Slide 20
Programação Linear
Solução Inicial Viável (caso trivial)
Max
z 3 x1 5 x2
Max
z 3 x1 5 x2
s.a :
x1 4
s.a :
x1 S1 4
2 x2 12
2 x2 S 2 12
3 x1 2 x2 18
3 x1 2 x2 S3 18
x1 , x2 0
x1 , x2 , S1 , S 2 , S3 0
Caso trivial
a) variáveis não negativas
b) restrições com limite superior
Solução
variáveis nulas
folgas iguais ao RHS
S1 4
x1 0
S 2 12 x2 0
S3 18
z0
Slide 21
Programação Linear
Método Simplex na Forma Tableau (1)
Base
Z
X1
X2
S1
S2
S3
RHS
S1
0
1
0
1
0
0
4
+inf
S2
0
0
2
0
1
0
12
+6
S3
0
3
2
0
0
1
18
+9
Z
1
-3
-5
0
0
0
0
O que fazer para melhorar a solução?
Quanto aumentar X2 ?
Max
S2
z 3 x1 5 x2
Base
Z
X1
X2
S1
S3
RHS
S1
0
1
0
1
X2
0
0
1
0
1/2
2 x20 S 2 612
S3
0
3
0
0
-1
Z
1
-3
0
0
5/2
3 x1 1 2 x2 6 S3 +2
18
s.a : 0 x1 0S1 4
0
4
30
+4
+inf
x1 , x2 , S1 , S 2 , S3 0
Slide 22
Programação Linear
Método Simplex na Forma Tableau (2)
Base
Z
X1
X2
S1
S2
S3
RHS
S1
0
0
0
1
1/3
-1/3
2
X2
0
0
1
0
1/2
0
6
X1
0
1
0
0
-1/3
1/3
2
Z
1
0
0
0
3/2
1
36
Var.
Decisões
Valor
Marg.
X1
Janelas
2
0
X2
Portas
6
0
S1
Montagem
2
0
S2
Laminação
0
1,5
S3
Corte
0
1
Z
Lucro
36
1
Pergunta-se:
(a) o que produzir?
(b) quanto produzir?
(c) qual será o lucro?
(d) qual o valor da capacidade
disponível em cada setor?
Slide 23
Programação Linear
Custo marginal
mais negativo
Método Simplex – Algoritmo
Início
Escolher variável
para entrar na base
Montar tableau com
solução básica
inicial viável
Menor razão
não negativa
Calcular razão
RHS / coluna (entra)
Escolher variável
para sair da base
1
Existe custo
marginal < 0 ?
Sim
Existe
razão 0
finita ?
Não
Não
Solução
ótima
Solução
ilimitada
Sim
Fazer troca de
base e recalcular
o tableau
1
Fim
Slide 24
Programação Linear
Método Simplex na Forma Matricial (1)
Max z c x
T
s.a :
Ax b
x0
xB
Max z c c
xR
xB
s.a : B R b
xR
x B 0
x 0
R
Particionando...
T
B
T
R
Slide 25
Programação Linear
Método Simplex na Forma Matricial (2)
Como resolver o sistema de equações lineares ?
xB
B R b
xR
B xB R xR b
B xB b R xR
xB B 1 b R xR
No caso particular em que as variáveis não básicas são nulas ...
xˆ R 0
Solução Particular
xˆ B B 1b
Slide 26
Programação Linear
Método Simplex na Forma Matricial (3)
E o valor da função objetivo ?
z c
T
B
c
T
R
z cBT xB cRT xR
z cBT B 1 b R xR cRT xR
xB
x
R
z cBT B 1b cRT cBT B 1 R xR
z cBT xˆ B cRT cBT B 1 R xR
No caso particular em que as variáveis não básicas são nulas ...
xˆ R 0
1
xˆ B B b
Solução Particular
zˆ cBT xˆ B
Slide 27
Programação Linear
Método Simplex na Forma Matricial (4)
Resumindo, até aqui tem-se ...
xB B
1
b R xR
xˆ R 0
1
x
B
b
ˆ
B
z cBT xˆ B cRT cBT B 1 R xR
É possível melhorar o valor da função objetivo ? ...
z zˆ cRT cBT B 1 R xR 0
zˆ cBT xˆ B
Slide 28
Programação Linear
Método Simplex na Forma Matricial (5)
Como melhorar ...
z zˆ cRT cBT B 1 R xR 0
z zˆ
Escolher para aumentar (entrar
na base) uma variável não
básica associada a uma
componente positiva do vetor
xR ,1
x
R ,k
0
0
x
R ,nm
cRT cBT B 1 R
Slide 29
Programação Linear
Método Simplex na Forma Matricial (6)
Aumentar a k-ésima variável não básica (escolhida) ... até quanto ?
xB ,i xˆ B ,i Rk ,i xR ,k 0
xB B 1 b R xR
Rk ,i xR ,k xˆ B ,i
xB xˆ B B 1 Rk xR ,k
xˆ B ,i
Rk ,i
xB xˆ B Rk xR ,k
xR ,k
xB ,1 xˆ B ,1 Rk ,1
0
x xˆ R
0
B , 2 B , 2 k , 2 xR ,k
x xˆ
0
R
B ,m B ,m k ,m
i 1,..., m
i 1,..., m
somente para
Rk ,i 0
Escolher para sair da base
uma variável básica
associada ao menor valor
calculado.
Slide 30
Programação Linear
Método Simplex na Forma Matricial (7)
Resumo...
x
ˆ B B 1b
zˆ cBT xˆ B
z zˆ cRT cBT B 1 R xR 0
Solução
Teste de entrada
Rk B 1Rk
xR ,k
xˆ B ,i
min
| Rk ,i 0
Rk ,i
Teste de saída
Slide 31
Programação Linear
Exemplo (1)
c RT
c BT
x1
x
2
Max z 3 5 0 0 0 S1
S
2
S3
R
B
s.a :
x1
1 0 1 0 0 x2 4
0 2 0 1 0 S 12
1
3 2 0 0 1 S 2 18
S3
xR
xB
b
x1 0
x 0
2
S1 0
S
2 0
S3 0
Slide 32
Programação Linear
Exemplo (1.a)
1a. Iteração
S1
xB S 2
S3
x1
xR
x2
4
b 12
18
1 0 0
B 0 1 0
0 0 1
1 0
R 0 2
3 2
cTB 0 0 0
cTR 3 5
Slide 33
Programação Linear
Exemplo (1.b)
1
x1 0
xˆ R
x2 0
S1
1 0 0 4 4
xˆ B S2 B 1b 0 1 0 12 12
S3
0 0 1 18 18
4
zˆ cBT xˆ B [0 0 0] 12 0
18
cRT cBT B 1 R 3 5 0
cRT cBT B 1 R 3 5
1
1 0 0 1
0 0 0 1 0 0
na base
x2 Entra
0 0 1 3
0
2
2
Slide 34
Programação Linear
Exemplo (1.c)
1
1 0 0 0 0
Rk B 1 Rk 0 1 0 2 2
0 0 1 2 2
4 0
0
xB xˆ B Rk xR ,k 12 2 xR ,k 0
18 2
0
4 12 18
xR ,k min , , 6
0 2 2
S2
Sai da base
S1 4
xˆ B S 2 12
S3 18
Coluna de
x2
Slide 35
Programação Linear
Exemplo (2.a)
2a. Iteração
S1
xB Sx2
S3
x1
xR
Sx2
4
b 12
18
1 0 0
B 0 12 0
0 02 1
1 0
2
R 0 1
0
3 2
cTB 0 50 0
cTR 3 05
Slide 36
Programação Linear
Exemplo (2.b)
x1 0
xˆ R
S 2 0
zˆ cTB xˆ B [0
S1
1
xˆ B x2 B 1b 0
S3
0
5
0
2
2
4
0] 6 30
6
1
cRT cBT B 1 R 3 0 0 5 0 0
x1 Entra na base
0
5
T
T
1
cR cB B R 3
2
0
2
2
0
0
1
1
0
0
1
4 4
12 6
18 6
1
1
0
3
0
1
0
Slide 37
Programação Linear
Exemplo (2.c)
1
1 0 0 1 1
Rk B 1 Rk 0 2 0 0 0
0 2 1 3 3
s1 4
xˆ B x2 6
s3 6
4 1
0
xB xˆ B Rk xR ,k 6 0 xR ,k 0
6 3
0
4 6 6
xR ,k min , , 2
1 0 3
S3
Coluna de
Sai da base
x1
Slide 38
Programação Linear
Exemplo (3.a)
3a. Iteração
S1
xB x2
Sx13
Sx13
xR
S 2
4
b 12
18
0
1 0 1
B 0 2 0
0 2 13
0
0 1
R 0 1
0
3
1 0
cTB 0 5 30
cTR 0 03
Slide 39
Programação Linear
Exemplo (3.b)
1
1 0 1 4 2
xˆ B B 1b 0 2 0 12 6
0 2 3 18 2
2
zˆ cBT xˆ B [0 5 3] 6 36
2
Solução ótima
1
1 0 1 0 0
cRT cBT B 1 R 0 0 0 5 3 0 2 0 0 1
0 2 3 1 0
3
T
T 1
cR cB B R 1
2
Slide 40
Programação Linear
Exemplo (4)
Var.
Decisões
Valor
Marg.
X1
Janelas
2
0
X2
Portas
6
0
S1
Montagem
2
0
S2
Laminação
0
-1,5
S3
Corte
0
-1
Z
Lucro
36
1
Slide 41
Programação Linear
Solução Inicial Viável (caso não trivial)
n
Max
z cj xj
Não tem solução trivial
j 1
n
s.a :
aij x j bi
j 1
xj 0
i 1,..., mn
Max z c j x j
j 1
j 1,..., n
n
s.a :
a
j 1
Sempre tem solução trivial
ij
x j d i bi
i 1,..., m
xj 0
j 1,..., n
di 0
i 1,..., m
Ambas formulações são equivalentes quando
di 0, i 1,..., m
Slide 42
Programação Linear
Solução Inicial Viável – Método do M-grande
Max
n
m
j 1
i 1
z c j x j M di
n
s.a :
a
j 1
ij
x j d i bi
i 1,..., m
xj 0
j 1,..., n
di 0
i 1,..., m
Se di 0, i 1,..., m encontrou a solução ótima
não existe solução viável, ou
Se di 0
M não é suficiente mente grande
Slide 43
Programação Linear
Solução Inicial Viável – Método das 2 Fases
Max w
Resolver o problema da
fase 1 usando as variáveis
artificiais para formar uma
base inicial viável.
Se w = 0, então uma
solução inicial viável foi
obtida para o problema.
m
d
Fase 1
i
i 1
n
s.a :
a
ij
x j di bi
i 1,..., m
j 1
xj 0
j 1,..., n
di 0
i 1,..., m
Max
z
n
c
j
xj
Fase 2
j 1
Se w = 0, usar solução ótima
da fase 1 como solução inicial
viável para a fase 2.
n
s.a :
a
ij
x j bi
i 1,..., m
j 1
xj 0
j 1,..., n
Slide 44
Exemplo
Uma empresa tem três tipos de máquinas de processamento, tendo cada uma
delas velocidade e taxas de defeitos diferentes. Devem ser processadas 3500
peças por dia (8 horas/dia). Cada peça defeituosa custa à empresa US$ 1,00.
Formule um modelo de PL para determinar a solução ótima para este
problema.
Tipo Máquina
Peças / hora
Defeitos
US$ / hora
# Máquinas
I
20
5%
2,00
8
II
15
10%
1,75
10
III
10
0%
1,50
20