Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

Prévia do material em texto

Introdução Big M Simplex 2 fases Caso especial
Método simplex
Big M e 2 Fases
André Gustavo dos Santos1
1Departamento de Informática
Universidade Federal de Viçosa
INF280 - 2019/1
André Gustavo UFV Método simplex INF280 - 2019/1 1 / 26
Introdução Big M Simplex 2 fases Caso especial
Conteúdo
1 Introdução
2 Big M
3 Simplex 2 fases
4 Caso especial
André Gustavo UFV Método simplex INF280 - 2019/1 2 / 26
Introdução Big M Simplex 2 fases Caso especial
Problema com a solução inicial
Modelo
max 3x1 + 5x2
s.a.
x1 ≤ 4
2x2 ≤ 12
3x1 + 2x2 ≥ 18
x1, x2 ≥ 0
Modelo na forma padrão
max 3x1 + 5x2
s.a.
x1 + f1 = 4
2x2 + f2 = 12
3x1 + 2x2 − f3 = 18
x1, x2, f1, f2, f3 ≥ 0
Este quadro não representa uma
solução viável! (f3 = −18)
A base trivial, com f1, f2, f3, é inviável
Não podemos começar por esse quadro
Quadro simplex
x1 x2 f1 f2 f3
−z 3 5 0 0 0 0
f1 1 0 1 0 0 4
f2 0 2 0 1 0 12
f3 3 2 0 0 -1 18
André Gustavo UFV Método simplex INF280 - 2019/1 3 / 26
Introdução Big M Simplex 2 fases Caso especial
Como encontrar uma solução inicial viável?
Uma alternativa é acrescentar uma
variável artificial
O quadro inicial usa esta variável no
lugar da variável de folga negativa
Base inicial: (f1, f2, a) = (4, 12, 18)
Isso aumenta a dimensão do problema,
mas a solução inicial é viável
Forma padrão com variável artificial
max 3x1 + 5x2
s.a.
x1 + f1 = 4
2x2 + f2 = 12
3x1 + 2x2 − f3 +a = 18
x1, x2, f1, f2, f3, a ≥ 0
O problema é que ela é viável neste
modelo, mas não no original!
(x1, x2, f1, f2, f3) = (0, 0, 4, 12, 0) não
atende às restrições originais
E se a variável artificial for, em algum
momento, retirada da base?
Fora da base vale 0, e o modelo seria
equivalente ao modelo original
Quadro simplex
x1 x2 f1 f2 f3 a
−z 3 5 0 0 0 0 0
f1 1 0 1 0 0 0 4
f2 0 2 0 1 0 0 12
a 3 2 0 0 -1 1 18
André Gustavo UFV Método simplex INF280 - 2019/1 4 / 26
Introdução Big M Simplex 2 fases Caso especial
Como retirar a variável artificial da base?
Dois métodos principais
Método Big M
Método simplex 2 fases
André Gustavo UFV Método simplex INF280 - 2019/1 5 / 26
Introdução Big M Simplex 2 fases Caso especial
Método Big M
A base inicial com a variável artificial é viável e pode-se começar o simplex
Mas o modelo com variável artificial só é equivalmente ao original se a = 0
Deve-se garantir que ela saia da base
O método Big M faz isso dando um valor muito ruim para a variável artifical
Por exemplo, considere a função objetivo: max 3x1 + 5x2 − 1000000a
Soluções com a > 0 terão um valor muito ruim de função objetivo
A solução ótima terá a = 0, e também será ótima no modelo original1
Vale ressaltar que o coeficiente de a na função objetivo deve ser suficiente
negativo para garantir que a solução ótima terá a = 0.
Em um problema de minimização, ele deve ser suficiente alto.
Assim, acrescentamos −Ma ou +Ma na função objetivo, dependendo se esta for
max ou min, sendo M uma constante muito grande. Daí o nome Big M.
1 lembre-se que existe a restrição a ≥ 0, portanto a não pode ser negativo.
André Gustavo UFV Método simplex INF280 - 2019/1 6 / 26
Introdução Big M Simplex 2 fases Caso especial
Método Big M - solução do modelo da introdução
Considerando M = 1000, a função objetivo será max 3x1 + 5x2 − 1000a.
E o quadro simplex inicial seria:
x1 x2 f1 f2 f3 a b
−z 3 5 0 0 0 -1000 0
f1 1 0 1 0 0 0 4
f2 0 2 0 1 0 0 12
a 3 2 0 0 -1 1 18
Mas a variável a está na base, então seu coeficiente na linha z precisa ser zerado.
(neste caso, basta somar à linha z a linha de a× 1000)
x1 x2 f1 f2 f3 a b
−z 3003 2005 0 0 -1000 0 18000
(as demais linhas continuam como estavam)
André Gustavo UFV Método simplex INF280 - 2019/1 7 / 26
Introdução Big M Simplex 2 fases Caso especial
Método Big M - solução do modelo da introdução
x1 x2 f1 f2 f3 a b
−z 3003 2005 0 0 -1000 0 18000
f1 1 0 1 0 0 0 4
f2 0 2 0 1 0 0 12
a 3 2 0 0 -1 1 18
x1 x2 f1 f2 f3 a b
−z 0 2005 -3003 0 -1000 0 5988
x1 1 0 1 0 0 0 4
f2 0 2 0 1 0 0 12
a 0 2 -3 0 -1 1 6
x1 x2 f1 f2 f3 a b
−z 0 0 9/2 0 5/2 -2005/2 -27
x1 1 0 1 0 0 0 4
f2 0 0 3 1 1 -1 6
x2 0 1 -3/2 0 -1/2 1/2 3
x1 x2 f1 f2 f3 a b
−z 0 0 0 -3/2 1 -1001 -36
x1 1 0 0 -1/3 -1/3 1/3 2
f1 0 0 1 1/3 1/3 -1/3 2
x2 0 1 0 1/2 0 0 6
x1 x2 f1 f2 f3 a b
−z 0 0 -3 -5/2 0 -1000 -42
x1 1 0 1 0 0 0 4
f3 0 0 3 1 1 -1 6
x2 0 1 0 1/2 0 0 6
Solução ótima:
x1 = 4, x2 = 6
z = 42
André Gustavo UFV Método simplex INF280 - 2019/1 8 / 26
Introdução Big M Simplex 2 fases Caso especial
Método Big M
Se houver mais de uma restrição ≥, acrescentar uma variável artificial para cada
Todas elas devem ter coeficiente M grande
Modelo
max 3x1 + 5x2
s.a.
x1 ≤ 4
2x2 ≥ 12
3x1 + 2x2 ≥ 18
x1, x2 ≥ 0
Forma padrão com variáveis artificiais
max 3x1 + 5x2 − 10000a1 − 10000a2
s.a.
x1 + f1 = 4
2x2 − f2 + a1 = 12
3x1 + 2x2 − f3 + a2 = 18
x1, x2, f1, f2, f3, a1, a2 ≥ 0
André Gustavo UFV Método simplex INF280 - 2019/1 9 / 26
Introdução Big M Simplex 2 fases Caso especial
Método Big M - incovenientes
Desde que M seja suficientemente grande, o método funciona, em teoria
Na prática, pode levar a erros numéricos quando executados por um computador
Será necessário trabalhar simultaneamente com valores muito grandes
(coeficientes na linha z) e valores muito pequenos (note as frações no quadro)
Valores de ponto flutuante no computador têm precisão limitada
são armazenados de forma similar à notação científica, com mantissa e expoente
a quantidade de dígitos armazenados é limitada
por exemplo, um tipo double (precisão dupla) suporta valores de 10−308 a 10308,
aproximadamente, com cerca de 15 dígitos de precisão.
assim, embora seja possível armazenar valores suficientemente grandes e pequenos
para qualquer aplicação do simplex, não são armazenados com precisão total
uma soma 1000000000 + 0.000004, que deveria resultar em 1000000000.000004,
poderia ser arredondada para 1000000000
uma pequena diferença que futuramente poderia ser crucial para determinar se uma
variável deve entrar ou não na base, por exemplo ao subtrair 1000000000 em um
pivoteamento resultaria em 0 em vez de 0.000004
Por isso tal método geralmente não é usado por softwares de programação linear
André Gustavo UFV Método simplex INF280 - 2019/1 10 / 26
Introdução Big M Simplex 2 fases Caso especial
Simplex 2 fases
Fase 1
Objetivo: encontrar uma solução viável
Como? Forçando a saída das variáveis artificiais da base
⇒ Usar uma função objetivo que minimiza o valor das artificiais
Fase 2
Objetivo: encontrar uma solução ótima
Como? Voltar a função objetivo original e continuar o simplex normalmente
O problema com restrições ≥ é não ter uma base trivial viável para iniciar o simplex.
A Fase 1 encontra uma e a Fase 2 é o simplex a partir dela.
André Gustavo UFV Método simplex INF280 - 2019/1 11 / 26
Introdução Big M Simplex 2 fases Caso especial
Simplex 2 fases - exemplo
Modelo
max 3x1 + 5x2
s.a.
x1 ≤ 4
2x2 ≤ 12
3x1 + 2x2 ≥ 18
x1, x2 ≥ 0
Forma padrão com artificiais
max 3x1 + 5x2
s.a.
x1 + f1 = 4
2x2 + f2 = 12
3x1 + 2x2 − f3 + a = 18
x1, x2, f1, f2, f3, a ≥ 0
André Gustavo UFV Método simplex INF280 - 2019/1 12 / 26
Introdução Big M Simplex 2 fases Caso especial
Fase 1: minq = a
min q = a ⇒ max − q = −a
x1 x2 f1 f2 f3 a b
q 0 0 0 0 0 -1 0
f1 1 0 1 0 0 0 4
f2 0 2 0 1 0 0 12
a 3 2 0 0 -1 1 18
antes de mais nada, “ajeitamos” a linha da função objetivo,
zerando o coeficiente de a, que está na base (somar linha q com linha de a)
x1 x2 f1 f2 f3 a b
q 3 2 0 0 -1 0 18
f1 1 0 1 0 0 0 4
f2 0 2 0 1 0 0 12
a 3 2 0 0 -1 1 18
André Gustavo UFV Método simplex INF280 - 2019/1 13 / 26
Introdução Big M Simplex 2 fases Caso especial
Fase 1: minq =a
x1 x2 f1 f2 f3 a b
q 3 2 0 0 -1 0 18
f1 1 0 1 0 0 0 4
f2 0 2 0 1 0 0 12
a 3 2 0 0 -1 1 18
x1 x2 f1 f2 f3 a b
q 0 2 -3 0 -1 0 6
x1 1 0 1 0 0 0 4
f2 0 2 0 1 0 0 12
a 0 2 -3 0 -1 1 6
x1 x2 f1 f2 f3 a b
q 0 0 0 0 0 -1 0
x1 1 0 1 0 0 0 4
f2 0 0 3 1 1 -1 6
x2 0 1 -3/2 0 -1/2 1/2 3
Fim da Fase 1.
Artificial saiu da base.
Solução viável encontrada.
André Gustavo UFV Método simplex INF280 - 2019/1 14 / 26
Introdução Big M Simplex 2 fases Caso especial
Fase 2: max z = 3x1 + 5x2
A Fase 2 usa a função objetivo original, e começa da solução viável encontrada na
fase anterior, sem a variável artificial, que não é mais necessária.
x1 x2 f1 f2 f3 b
−z 3 5 0 0 0 0
x1 1 0 1 0 0 4
f2 0 0 3 1 1 6
x2 0 1 -3/2 0 -1/2 3
antes de mais nada, “ajeitamos” a linha de função objetivo,
zerando os coeficientes de x1 e x2, que estão na base.
(neste caso, somar à linha z a linha de x1 ×−3 e de x2 ×−5)
x1 x2 f1 f2 f3 b
−z 0 0 9/2 0 5/2 -27
x1 1 0 1 0 0 4
f2 0 0 3 1 1 6
x2 0 1 -3/2 0 -1/2 3
Quadro inicial da Fase 2.
Continuar o simplex normalmente.
André Gustavo UFV Método simplex INF280 - 2019/1 15 / 26
Introdução Big M Simplex 2 fases Caso especial
Fase 2: max z = 3x1 + 5x2
x1 x2 f1 f2 f3 b
−z 0 0 9/2 0 5/2 -27
x1 1 0 1 0 0 4
f2 0 0 3 1 1 6
x2 0 1 -3/2 0 -1/2 3
x1 x2 f1 f2 f3 b
−z 0 0 0 -3/2 1 -36
x1 1 0 0 -1/3 -1/3 2
f1 0 0 1 1/3 1/3 2
x2 0 1 0 1/2 0 6
x1 x2 f1 f2 f3 b
−z 0 0 -3 -5/2 0 -42
x1 1 0 1 0 0 4
f3 0 0 3 1 1 6
x2 0 1 0 1/2 0 6
Fim da Fase 2.
Solução ótima encontrada.
André Gustavo UFV Método simplex INF280 - 2019/1 16 / 26
Introdução Big M Simplex 2 fases Caso especial
Gráfico do exemplo anterior
Fase 1:
O simplex vai de (0, 0) para (4, 0),
diminuindo a inviabilidade na restrição 3
(valor de a) de 18 para 6
Em seguida vai de (4, 0) para (4, 3),
retirando a inviabilidade na restrição 3
(a saiu da base)
Fim da fase 1, solução viável.
Fase 2:
O simplex começa da solução viável
(4, 3), de valor 27, encontrada na fase 1
Desta, vai para (2, 6) de valor 36.
Por fim, para (4, 6), de valor 42.
Fim da fase 2, solução ótima.
André Gustavo UFV Método simplex INF280 - 2019/1 17 / 26
Introdução Big M Simplex 2 fases Caso especial
Exemplo de modelo de minimização
Modelo
min 3x1 + 5x2
s.a.
x1 ≤ 4
2x2 ≥ 12
3x1 + 2x2 ≥ 18
x1, x2 ≥ 0
Modelo na forma padrão
max−3x1 − 5x2
s.a.
x1 + f1 = 4
2x2 − f2 = 12
3x1 + 2x2 − f3 = 18
x1, x2, f1, f2, f3 ≥ 0
André Gustavo UFV Método simplex INF280 - 2019/1 18 / 26
Introdução Big M Simplex 2 fases Caso especial
Exemplo de modelo de minimização
Modelo
min 3x1 + 5x2
s.a.
x1 ≤ 4
2x2 ≥ 12
3x1 + 2x2 ≥ 18
x1, x2 ≥ 0
Forma padrão com artificiais
max−3x1 − 5x2
s.a.
x1 + f1 = 4
2x2 − f2 + a1 = 12
3x1 + 2x2 − f3 + a2 = 18
x1, x2, f1, f2, f3, a1, a2 ≥ 0
André Gustavo UFV Método simplex INF280 - 2019/1 18 / 26
Introdução Big M Simplex 2 fases Caso especial
Fase 1: minq = a1 + a2
min q = a1 + a2 ⇒ max − q = −a1 − a2
x1 x2 f1 f2 f3 a1 a2 b
q 0 0 0 0 0 -1 -1 0
f1 1 0 1 0 0 0 0 4
a1 0 2 0 -1 0 1 0 12
a2 3 2 0 0 -1 0 1 18
antes de mais nada, “ajeitamos” a linha de função objetivo,
zerando os coeficientes de a1 e a2, que estão na base
x1 x2 f1 f2 f3 a1 a2 b
q 3 4 0 -1 -1 0 0 30
f1 1 0 1 0 0 0 0 4
a1 0 2 0 -1 0 1 0 12
a2 3 2 0 0 -1 0 1 18
André Gustavo UFV Método simplex INF280 - 2019/1 19 / 26
Introdução Big M Simplex 2 fases Caso especial
Fase 1: minq = a1 + a2
x1 x2 f1 f2 f3 a1 a2 b
q 3 4 0 -1 -1 0 0 30
f1 1 0 1 0 0 0 0 4
a1 0 2 0 -1 0 1 0 12
a2 3 2 0 0 -1 0 1 18
x1 x2 f1 f2 f3 a1 a2 b
q 3 0 0 1 -1 -2 0 6
f1 1 0 1 0 0 0 0 4
x2 0 1 0 -1/2 0 1/2 0 6
a2 3 0 0 1 -1 -1 1 6
x1 x2 f1 f2 f3 a1 a2 b
q 0 0 0 0 0 -1 -1 0
f1 0 0 1 -1/3 -1/3 0 1/3 2
x2 0 1 0 -1/2 0 1/2 0 6
x1 1 0 0 1/3 -1/3 -1/3 1/3 2
Fim da Fase 1.
Artificiais saíram da base.
Solução viável encontrada.
André Gustavo UFV Método simplex INF280 - 2019/1 20 / 26
Introdução Big M Simplex 2 fases Caso especial
Fase 2: min z = 3x1 + 5x2
Transformando a função objetivo em max , para manter o padrão adotado no simplex:
min z = 3x1 + 5x2 ⇒ max − z = −3x1 − 5x2
x1 x2 f1 f2 f3 b
z -3 -5 0 0 0 0
f1 0 0 1 -1/3 -1/3 2
x2 0 1 0 -1/2 0 6
x1 1 0 0 1/3 -1/3 2
antes de mais nada, “ajeitamos” a linha de função objetivo,
zerando os coeficientes de x1 e x2, que estão na base.
x1 x2 f1 f2 f3 b
z 0 0 0 -3/2 -1 36
f1 0 0 1 -1/3 -1/3 2
x2 0 1 0 -1/2 0 6
x1 1 0 0 1/3 -1/3 2
Fim da Fase 2.
Nenhuma variável
entra na base.
A solução já é ótima.
André Gustavo UFV Método simplex INF280 - 2019/1 21 / 26
Introdução Big M Simplex 2 fases Caso especial
Gráfico do exemplo anterior
Fase 1:
O simplex vai de (0, 0) para (0, 6),
retirando a inviabilidade na restrição 2
(a1 saiu da base)
Em seguida vai de (0, 6) para (2, 6),
retirando a inviabilidade na restrição 3
(a2 saiu da base)
Fim da fase 1, solução viável.
Fase 2:
O simplex começa da solução viável
(2, 6), encontrada na fase anterior
Coincidentemente, ela já é ótima.
Fim da fase 2, solução ótima.
André Gustavo UFV Método simplex INF280 - 2019/1 22 / 26
Introdução Big M Simplex 2 fases Caso especial
Exemplo de caso especial
Modelo
max 3x1 + 5x2
s.a.
x1 ≥ 4
2x2 ≥ 12
3x1 + 2x2 ≤ 18
x1, x2 ≥ 0
Forma padrão com artificiais
max 3x1 + 5x2
s.a.
x1 − f1 + a1 = 4
2x2 − f2 + a2 = 12
3x1 + 2x2 + f3 = 18
x1, x2, f1, f2, f3, a1, a2 ≥ 0
André Gustavo UFV Método simplex INF280 - 2019/1 23 / 26
Introdução Big M Simplex 2 fases Caso especial
Fase 1: minq = a1 + a2
min q = a1 + a2 ⇒ max − q = −a1 − a2
x1 x2 f1 f2 f3 a1 a2 b
q 0 0 0 0 0 -1 -1 0
a1 1 0 -1 0 0 1 0 4
a2 0 2 0 -1 0 0 1 12
f3 3 2 0 0 1 0 0 18
antes de mais nada, “ajeitamos” a linha de função objetivo,
zerando os coeficientes de a1 e a2, que estão na base
x1 x2 f1 f2 f3 a1 a2 b
q 1 2 -1 -1 0 0 0 16
a1 1 0 -1 0 0 1 0 4
a2 0 2 0 -1 0 0 1 12
f3 3 2 0 0 1 0 0 18
André Gustavo UFV Método simplex INF280 - 2019/1 24 / 26
Introdução Big M Simplex 2 fases Caso especial
Fase 1: minq = a1 + a2
x1 x2 f1 f2 f3 a1 a2 b
q 1 2 -1 -1 0 0 0 16
a1 1 0 -1 0 0 1 0 4
a2 0 2 0 -1 0 0 1 12
f3 3 2 0 0 1 0 0 18
x1 x2 f1 f2 f3 a1 a2 b
q 1 0 -1 0 0 0 -1 4
a1 1 0 -1 0 0 1 0 4
x2 0 1 0 -1/2 0 0 1/2 6
f3 3 0 0 1 1 0 -1 6
x1 x2 f1 f2 f3 a1 a2 b
q 0 0 -1 -1/3 -1/3 0 -2/3 2
a1 0 0 -1 -1/3 -1/3 1 1/3 2
x2 0 1 0 -1/2 0 0 1/2 6
x1 1 0 0 1/3 1/3 0 -1/3 2
Fim da Fase 1.
Mas a1 não saiu da base!
Modelo inviável
André Gustavo UFV Método simplex INF280 - 2019/1 25 / 26
Introdução Big M Simplex 2 fases Caso especial
Exemplo de caso especial
O simplex vai de (0, 0) para (0, 6),
retirando a inviabilidade na restrição 2
(a2 saiu da base)
Em seguida vai de (0, 6) para (2, 6),
diminuindo a inviabilidade na restrição 1
(a1 diminuiu de 4 pra 2)
Mas não há como retirar a inviabilidade
da restrição 1 sem inviabilizar outra (a1
não sai da base)
Fim da fase 1, o simplex descobre que o
modelo é inviável
André Gustavo UFV Método simplex INF280 - 2019/1 26 / 26
	Introdução
	Big M
	Simplex 2 fases
	Caso especial

Mais conteúdos dessa disciplina