15.053
14 de fevereiro de 2002
• Colocando Programas Lineares na forma padrão
• Introdução ao Algoritmo Simplex
• Obs.: esta apresentação é projetada com animação para ser
vista como apresentação de slides.
1
Programas Lineares em Forma
Padrão
1. Restrições de não-negatividade para todas as
variáveis.
2. Todas as restrições restantes são expressas
como restrições de igualdade.
3. O vetor do lado direito, b, é não-negativo.
Uma PL fora da Forma-Padrão
2
Convertendo Desigualdades em
Igualdades
Antes
x1 + 2x2 + x3 - x4 =5
Depois
x1 + 2x2 + x3 - x4 +s = 5
s=0
s é chamado de variável de transigência (slack),
que mede a quantidade de “recurso não utilizado”.
Observe que s = 5 - x1 - 2x2 - x3 + x4.
Para converter um “=” em uma igualdade,
adicione uma variável de transigência
(slack).
3
Convertendo restrições “=”
• Considere a desigualdade -2x1 - 4x2 + x3 + x4 = -1;
• Passo 1. Elimine o RHS negativo
2x1 + 4x2 - x3 - x4 = 1
• Passo 2. Converta para uma igualdade
2x1 + 4x2 - x3 - x4 - s = 1
s =0
• A variável adicionada será chamada de “variável de
sobra” (surplus).
Para converter uma restrição “=” em
igualdade, subtraia uma variável de sobra
(surplus).
4
Mais Transformações
Como é possível converter um problema de
maximização em um problema de minimização?
Exemplo: Maximizar 3W + 2P
Sujeito a “restrições”
Possui as mesmas soluções ótimas de
Minimize -3W -2P
Sujeito a “restrições”
5
As Últimas Transformações (por hora)
Transformando variáveis que podem assumir valores
negativos.
maximizar 3x1 + 4x2 + 5 x3
Sujeito a
2x1 - 5x2 + 2x3 = 17
outras restrições
x1 = 0, x2 é irrestrito em sinal, x3 = 0
Transformando x1: substitua x1 por y1 = -x1; y1 = 0.
máx -3 y1 + 4x2 +5 x3
-2 y1 -5 x2 +2 x3 = 17
y1 = 0, x2 é irrestrito em sinal, x3 = 0
É possível recuperar x1 de y1.
6
Transformando variáveis que podem
assumir valores negativos.
máx -3 y1 + 4x2 +5 x3
-2 y1 -5 x2 +2 x3 =17
y1 =0, x2 é irrestrito em sinal, x3 = 0
Transformando x2: substitua x2 por x2 = y3 - y2; y2 =
0, y3 = 0.
máx -3 y1 + 4(y3 - y2) +5 x3
-2 y1 -5 y3 +5 y2 +2 x3 = 17
todas as vars = 0
É possível recuperar x2 de y2, y3.
7
Outro Exemplo
• Exercício: transforme a equação a seguir na
forma-padrão (maximização):
Minimize
Sujeito a
x1 + 3x2
2x1 + 5x2 = 12
x1 + x2 = 1
x1 = 0
Faça a transformação com seu colega
8
Apresentação do Algoritmo Simplex
maximizar
sujeito a
z = -3x1 + 2x2
-3x1 + 3x2 +x3
-4x1 + 2x2 + x4
x1, x2, x3, x4 =0
=6
=2
9
Forma Canônica da PL =
Forma-Padrão da PL + Forma Canônica de Jordan
não é uma
variável de
decisão
As variáveis básicas são x3 e x4.
As variáveis não-básicas são x1 e x2.
A solução básica viável é x1 = 0, x2 = 0, x3 = 6, x4 = 2
10
Para cada restrição, há uma variável básica
Restrição 1
Restrição 2
Restrição 1: a variável básica é x3
Restrição 2: a variável básica é x4
A base é formada pelas variáveis x3 e x4
11
Apresentação das Condições de Otimalidade
Obs.:
z = -3x1 + 2x2
Fato óbvio: se for possível melhorar a solução x
viável básica atual, então x não será ótimo.
Idéia: atribuir um pequeno valor para apenas uma
das variáveis não-básicas e depois ajustar as
variável básicas.
12
A solução básica viável atual não é ótima!
Se houver um
coeficiente
positivo na
linha z, a base
não é ótima**
Lembre-se: z = -3x1 + 2x2
Aumente x2 para > 0. Faça x1 ficar em 0.
O que acontece a x3, x4 e z? .
13
Condições de Otimalidade
(observe que os dados são diferentes aqui)
Fato Importante.
Se não houver
coeficiente positivo
na linha z, a
solução básica
viável é ótima!
z = -2x1 - 4x2 + 8.
Portanto z =8 para todas as soluções viáveis.
Mas z = 8 na solução básica viável atual
Esta solução básica viável é ótima!
14
Faça x2 = ?. Qual o tamanho que ? pode ficar?
Qual é a solução depois de trocar x2?
Qual é o valor de ? que maximiza z, mas deixa
uma solução viável?
? = 1.
Fato. A solução resultante é a solução
básica viável para uma base diferente.
15
Fazendo o "pivotamento" para obter uma
solução melhor
Nova Solução: as variáveis
básicas são x2 e x3.
Não-básicas: x1 e x4.
Se fizermos o "pivotamento" no coeficiente 2,
obteremos a nova solução básica viável.
16
Resumo do Algoritmo Simplex
• Inicia na forma canônica com uma solução
básica viável
1. Verifica condições otimalidade
2. Se não for ótima, determine uma variável não
básica que deve ser feita positiva
3. Aumente essa variável não-básica e realize um
"pivotamento", obtendo uma nova solução básica
viável
4. Continue até o ótimo (ou ilimitado).
17
OK. Vamos iterar novamente.
z = x1 - x2 + 2
O coeficiente de custo de x1 é positivo.
Faça x1 = ? e x4 = 0.
Qual o tamanho que ? pode ter?
18
Digressão: E se tivéssemos um problema no
qual pudéssemos aumentar para o infinito?
Suponha que troquemos o 3 para um –3. Se os não-coeficientes
Faça x1 = ? e x4 = 0.
de custo na coluna de
Qual o tamanho que ? pode ter?
entrada forem =0,
então a solução é
ilimitada.
19
Digressão Final: Faça outro "pivotamento"
Qual é o maior valor de ??
?=1
A variável x1 se torna a base, x3 se torna não-básica.
Faça um "pivotamento" no coeficiente com um 3.
20
Verifique a otimalidade
Não há coeficiente positivo na linha z.
A solução básica viável atual é ótima!
21
Novo Resumo do Algoritmo Simplex
? Inicie na forma canônica com uma solução
básica viável
1. Verifique as condições de otimalidade.
? Há um coeficiente positivo na linha de custo?
2. Se não for ótima, determine uma variável nãobásica que deve ser feita positiva
? Escolha uma variável com um coeficiente positivo
na linha de custo.
3. Aumente essa variável não-básica e realize um
"pivotamento", obtendo uma nova solução básica
viável
? Iremos revisar este passo e mostrar um atalho
4. Continue até atingir o ótimo (ou ilimitado).
22
Realizando um “pivotamento”. Em direção ao
atalho.
z = 2x1 + 3
Exercício: para fazer
com seu colega.
1. Determine qual o tamanho que ? pode ter.
2. Determine a solução seguinte.
3. Determine sobre qual coeficiente deve-se fazer o "pivotamento".
23
4. Veja se há um atalho para encontrar o coeficiente.
Mais sobre a realização de um
"pivotamento"
• Para determinar a coluna na qual realizar um
"pivotamento", selecione uma variável com
um coeficiente de custo positivo
• Para determinar uma linha qual realizar um
"pivotamento", selecione um coeficiente de
acordo com a regra de proporção mínima
• Execução de um pivotamento com se faz na
resolução de um sistema de equações.
24
Próxima Aula
• Revisão do Algoritmo Simplex
• Formalizando o Algoritmo Simplex
• Como descobrir uma solução básica viável
inicial, se existir
• Uma prova de que o Algoritmo Simplex é finito
(assumindo a não-degeneração)
25
Download

15.053 14 de fevereiro de 2002