View
3
Download
0
Category
Preview:
Citation preview
Matemática Industrial - RC/UFG
Programação Linear - Parte 3
Prof. Thiago Alves de Queiroz
1/2016
Thiago Queiroz (IMTec) Parte 3 1/2016 1 / 26
O Método Simplex
Encontre o vértice ótimo pesquisando um subconjunto dos Kvértices de S;A partir de uma solução básica factível, devemos responder:(i) Essa solução é ótima?(ii) Não sendo ótima, como determinar outra solução básicafactível melhor?Vejamos como responder estas duas perguntas adiante.
Thiago Queiroz (IMTec) Parte 3 1/2016 2 / 26
Pergunta (i)
Considere a solução básica factível:
x =[
xBxN
]com xB = B−1b ≥ 0 e xN = 0;
Seja a solução geral:
x =[
xBxN
]em que: xB = B−1b − B−1NxN ;
A função objetivo f(x) pode ser expressa considerando a partiçãobásica:
f(x) = cT x = [cTB cT
N ]
[xBxN
]= cT
B xB + cTNxN .
cTB : coeficientes das variáveis básicas na função objetivo;
cTN : coeficientes das variáveis não-básicas na função objetivo.
Essa solução básica factível é ótima?
Thiago Queiroz (IMTec) Parte 3 1/2016 3 / 26
Pergunta (i)
Restringindo x ao sistema Ax = b, temos:f(x) = cT
B (B−1b − B−1NxN) + cT
NxN =cT
B B−1b − cTB B−1NxN + cT
NxN ;O primeiro termo corresponde ao valor da função objetivo em x :f(x) = cT
B xB + cTN xN = cT
B (B−1b) + cT
N (0) = cTB (B
−1b);Definição 6. O vetor λ de ordem m × 1, dado por: λT = cT
B B−1 échamado de vetor multiplicador simplex;Também é referenciado como vetor de variáveis duais;Pode ser obtido pela resolução do sistema: BTλ = cB.
Thiago Queiroz (IMTec) Parte 3 1/2016 4 / 26
Pergunta (i)
Utilizando o vetor multiplicador simplex em f(x), segue:f(x) = f(x) - cT
B B−1NxN + cTNxN =
f(x) - λT NxN + cTNxN = f(x) + (cT
N − λT N)xN ;Observe que:cT
N − λT N = (cN1 , cN2 , . . . , cNn−m)− λT (aN1 ,aN2 , . . . ,aNn−m)= (cN1 − λT aN1 , cN2 − λT aN2 , . . . , cNn−m − λT aNn−m);Além disso: xN = (xN1 , xN2 , . . . , xNn−m);Resulta em:f(x) = f(x) + (cN1 − λT aN1)xN1 + (cN2 − λT aN2)xN2+. . .+ (cNn−m − λT aNn−m)xNn−m .
Thiago Queiroz (IMTec) Parte 3 1/2016 5 / 26
Pergunta (i)
Definição 7. Os coeficientes cNj = (cNj − λT aNj ) das variáveisnão-básicas na função objetivo são chamados de custos relativosou custos reduzidos.Então, podemos escrever:f(x) = f(x) + cN1xN1 + cN2xN2+ . . .+ cNn−mxNn−m ;Sabemos que xNj ≥ 0 (as variáveis são não-negativas). Se(cNj − λT aNj ) ≥ 0 para todo j, então f(x) ≥ f (x) para todo xN ≥ 0;Propriedade 3. (condição de otimalidade) Dada uma partiçãobásica A = [B N] em que a solução básica associada éxB = B−1b ≥ 0 e seja λT = cT
B B−1 o vetor multiplicador simplex.Se (cNj − λT aNj ) ≥ 0 para todo j, então a solução básica xB éótima;Ou seja, satisfeita a condição de otimalidade, então a soluçãobásica factível é ótima.
Thiago Queiroz (IMTec) Parte 3 1/2016 6 / 26
Pergunta (ii)
Como determinar uma solução básica factível melhor?Considere uma solução básica factível e suponha que a condiçãode otimalidade não foi satisfeita;Ou seja, existe um k tal que o custo relativo é negativo:(cNk − λT aNk ) < 0;Definição 8. Chamamos de estratégia simplex a perturbação deuma solução básica factível que consiste alterar as variáveisnão-básicas por:xNk = ε ≥ 0, (variável com custo relativo negativo)xNj = 0, para todo j, exceto j = k ;Ou seja, apenas a variável não-básica xNk deixa de ser nula.
Thiago Queiroz (IMTec) Parte 3 1/2016 7 / 26
Pergunta (ii)Nestas condições, a função objetivo passa a ser:f(x) = f(x) + cN10 + . . .+ cNk ε+ . . .+ cNn−m0 =f(x) + cNk ε < f(x);Note que a função objetivo decresce quando ε cresce, com a taxanegativa cNk .
Figura: Aplicando a estratégia simplex.
Thiago Queiroz (IMTec) Parte 3 1/2016 8 / 26
Pergunta (ii)
Note que quanto menor o valor de cNk , mais rápido a funçãoobjetivo decresce;Com isso, a escolha da variável não-básica a ser perturbada éaquela de menor custo relativo (regra de Dantzig);Além disso, seria interessante determinar o maior valor possívelpara ε que mantém a solução perturbada ainda factível;Note que ao mudar o valor das variáveis não-básicas pelaestratégia simplex, as variáveis básicas devem ser alteradas paraque o sistema Ax = b seja satisfeito;
Thiago Queiroz (IMTec) Parte 3 1/2016 9 / 26
Pergunta (ii)
A estratégia simplex é equivalente a alterar as variáveisnão-básicas para:
xN =
xN1
...xNk
...xNn−m
=
0...ε...0
Portanto, as variáveis básicas são modificadas por:xB = B−1b − B−1NxN = xB − B−1aNk ε = xB − yε;Em que: y = B−1aNk ;Note que: Nxn = N(0 . . . ε . . . 0)T =[aN1 . . . aNk . . . aNn−m ](0 . . . ε . . . 0)T = aNk ε.
Thiago Queiroz (IMTec) Parte 3 1/2016 10 / 26
Pergunta (ii)
Definição 9. Chamamos de direção simplex o vetor y = B−1aNk ,o qual fornece os coeficientes de como as variáveis básicas sãoalteradas pela estratégia simplex;A direção simplex é a solução do sistema By = aNk ;Voltando a expressão xB = xB − yε e escrevendo-a em cada umade suas coordenadas, temos:xBi = xBi − yiε ≥ 0, para i = 1,2, . . . ,m;Se yi ≤ 0, então xBi ≥ 0, para qualquer ε ≥ 0;
Se yi > 0, como xBi − yiε ≥ 0, então, ε ≤ xBiyi
;Logo, o maior valor de ε é dado por:ε =
xBlyl
= mínimo { xBiyi
tal que yi > 0}.
Thiago Queiroz (IMTec) Parte 3 1/2016 11 / 26
Solução ótima ilimitada
Se yi ≤ 0 para i = 1,2, . . . ,m, então não há limitante superiorpara ε;Isto significa que a solução perturbada será sempre factível paraqualquer valor de ε ≥ 0;Note que a função objetivo decresce com o crescimento de ε, ouseja, f(x)→ −∞, com ε→∞;Portanto, o problema não tem solução ótima ou a solução ótima éilimitada;
Thiago Queiroz (IMTec) Parte 3 1/2016 12 / 26
Pergunta (ii)
Com o valor de ε =xBlyl
a variável básica xBl se anula e a variávelnão-básica xNk torna-se positiva:
l-ésima variável básica: xBl = xBl − yl ε = xBl − ylxBlyl
= 0;k -ésima variável não-básica: xNk = ε;A nova solução tem a seguinte característica:(xB1 . . . xBl . . . xBm |0 . . . xNk . . . 0) = (xB1 . . . 0 . . . xBm |0 . . . ε . . .0);Ou seja, n −m variáveis são nulas, as quais podem serconsideradas não-básicas;Isto resulta em uma nova partição básica:B = (aB1 , . . . ,aBl , . . . ,aBm)→ B’ = (aB1 , . . . ,aNk , . . . ,aBm)N = (aN1 , . . . ,aNk , . . . ,aNn−m)→ N’ = (aN1 , . . . ,aBl , . . . ,aNn−m)
Dizemos que xNk entra na base e xBl sai da base.
Thiago Queiroz (IMTec) Parte 3 1/2016 13 / 26
Pergunta (ii)
Propriedade 4. A matriz B’ é invertível de modo que A = [B’ N’] éuma partição básica;A solução associada à nova partição básica é obtida da estratégiasimplex:xNk = ε, xBi = xBi − yiε, para i = 1, . . . ,m, com i 6= l ;Com isso, a estratégia simplex produz uma nova solução básicafactível para a qual a função objetivo tem um valor menor:f(x) = f(x) + cNk ε < f (x);Este procedimento pode ser repetido até encontrar outra soluçãobásica melhor ou satisfazer a condição de otimalidade;Estas etapas consistem no método simplex.
Thiago Queiroz (IMTec) Parte 3 1/2016 14 / 26
Considerações sobre o método simplex
Uma implementação computacional simples do método simplexpode trabalhar explicitamente com a matriz básica B−1;Isto resulta em atualizar a matriz básica em cada iteração. Estemétodo é chamado de método simplex revisado;O método simplex revisado não é eficiente, pois:
I Ao recalcular a inversa a cada iteração, erros de arredondamentosão inseridos;
I Matrizes com uma ordem grande, porém esparsa (poucoselementos não-nulos).
Outra representação é o método simplex em tabelas. Porém, trataapenas de problemas com dezenas de restrições e variáveis;O método simplex pode ser aplicado quando há limitantesuperiores para as variáveis, isto é, 0 ≤ xj ≤ uj :
I Chamado de método simplex para variáveis canalizadas.
Thiago Queiroz (IMTec) Parte 3 1/2016 15 / 26
Método Simplex em Tabelas
As operações do método simplex podem ser organizadas emtabelas, chamadas tabelas simplex;Interessante para manipular exemplos pequenos e compreendero funcionamento do método mais rapidamente;Considere um problema de otimização linear na forma padrão:
Minimizar z = f (x) = cTx
sujeito a :
{Ax = bx ≥ 0.
(1)
Os coeficientes presentes no modelo são suficientes paradescrever o problema;Podem ser organizados da seguinte maneira:
Thiago Queiroz (IMTec) Parte 3 1/2016 16 / 26
Método Simplex em Tabelas
Tabela: Coeficientes de um problema de otimização linear.
x1 x2 . . . xn ← variáveisc1 c2 . . . cn z ← coeficientes da função objetivoa1 a2 . . . an b ← coeficientes das restrições
Para o exemplo abaixo:
Minimizar z = −x1 − 2x2
sujeito a :
x1 + x2 ≤ 6x1 − x2 ≤ 4−x1 + x2 ≤ 4x1 ≥ 0, x2 ≥ 0.
(2)
O primeiro passo é colocá-lo na forma padrão, adicionando asvariáveis de folga;
Thiago Queiroz (IMTec) Parte 3 1/2016 17 / 26
Método Simplex em Tabelas
Tabela: Tabela simplex inicial - Dados do problema.
x1 x2 x3 x4 x5 b1 -2 0 0 0 z1 1 1 0 0 61 -1 0 1 0 4-1 1 0 0 1 4
Resulta na seguinte tabela simplex inicial, com as VariáveisBásica (VB):
Tabela: Tabela simplex inicial.
x1 x2 x3 x4 x5 bVB 1 -2 0 0 0 0x3 1 1 1 0 0 6x4 1 -1 0 1 0 4x5 -1 1 0 0 1 4
Thiago Queiroz (IMTec) Parte 3 1/2016 18 / 26
O algoritmo simplex em Tabelas
Considere um problema de otimização linear na forma padrão.Fase I: Determine uma tabela simplex inicial:
I A matriz dos coeficientes contém uma matriz identidade m×m, e ovetor independente b ≥ 0;
I A função objetivo é escrita em termos das variáveis não-básicas,isto é, os coeficientes das variáveis básicas são nulos;
I Faça iteração = 0.
Fase II:I 1. Determine o menor dos custos relativos:
ck = mínimo {cj , para toda variável não-básica };I 2. Se ck ≥ 0, então pare: solução ótima encontrada;
F 2.1. Senão, a variável xk entra na base;
Thiago Queiroz (IMTec) Parte 3 1/2016 19 / 26
O algoritmo simplex em Tabelas
Fase II: continuação...I 3. Se aik ≤ 0, para i = 1, . . . ,m, então pare: solução ilimitada;
F 3.1. Senão, determine:blalk
= mínimo { biaik
tal que aik > 0, i = 1, . . . ,m};F 3.2. A variável básica da linha l , digamos xl , sai da base;
I 4. Atualize a tabela simplex, considerando o elemento pivô alk efazendo o pivoteamento no restante da coluna;
F 4.1. A variável xk passa a ser a variável básica na linha l ;F 4.2. Faça iteração = iteração + 1;F 4.3. Retorne ao passo 1.
Thiago Queiroz (IMTec) Parte 3 1/2016 20 / 26
Exemplo
Aplique o algoritmo simplex em tabelas no seguinte problema deotimização linear:
Minimizar z = −x1 − 2x2
sujeito a :
x1 + x2 ≤ 6x1 − x2 ≤ 4−x1 + x2 ≤ 4x1 ≥ 0, x2 ≥ 0.
(3)
Thiago Queiroz (IMTec) Parte 3 1/2016 21 / 26
Resolução
Pela Fase I, monta-se a tabela simplex inicial, explicitando asvariáveis básicas;Fazemos iteração = 0.
Tabela: Tabela simplex inicial.
x1 x2 x3 x4 x5 bVB 1 -2 0 0 0 0x3 1 1 1 0 0 6x4 1 -1 0 1 0 4x5 -1 1 0 0 1 4
Aplicando a Fase II, segue que:1. O menor custo relativo é: c2 = −2;2. c2 < 0, de forma que a variável x2 entra na base.
Thiago Queiroz (IMTec) Parte 3 1/2016 22 / 26
Resolução
3. Existe aik > 0. Observe: para i=3 temos 1, e para i=5 temos 1;3.1. O mínimo ocorre para {6
1 ;41}, isto é, para l=i=5;
3.2. A variável básica x5 sai da base;
Tabela: Tabela simplex inicial.
x1 x2 x3 x4 x5 bVB -1 -2 ↓ 0 0 0 0x3 1 1 1 0 0 6x4 1 -1 0 1 0 4← x5 -1 1 0 0 1 4
4. O elemento pivô é o aik = a52 = 1. Realizamos o pivoteamentona coluna ak = a2;4.1. A variável x2 entra no lugar da variável x5;
Thiago Queiroz (IMTec) Parte 3 1/2016 23 / 26
Resolução
Tabela: Tabela simplex iteração 1.
x1 x2 x3 x4 x5 bVB -3 0 0 0 2 0 + 8x3 2 0 1 0 -1 2x4 0 0 0 1 1 8x2 -1 1 0 0 1 4
4.2. Faça: iteração = iteração + 1, resultando em iteração = 1;4.3. Retorne ao passo 1.O processo de resolução continua ... até chegarmos na tabelasimplex final:
Thiago Queiroz (IMTec) Parte 3 1/2016 24 / 26
Resolução
Tabela: Tabela simplex final.
x1 x2 x3 x4 x5 bVB 0 0 3
2 0 12 0 + 8 + 2 = 11
x1 1 0 12 0 - 1
2 1x4 0 0 0 1 1 8x2 0 1 1
2 0 12 5
Thiago Queiroz (IMTec) Parte 3 1/2016 25 / 26
Exemplos
Para uma boa alimentação, o corpo necessita de vitaminas eproteínas. A necessidade mínima de vitaminas é de 32 unidadespor dia e a de proteínas de 36 unidades por dia. Uma pessoa temdisponível carne e ovos para se alimentar. Cada unidade decarne contém 4 unidades de vitaminas e 6 unidades de proteínas.Cada unidade de ovo contém 8 unidades de vitaminas e 6unidades de proteínas. Qual a quantidade diária de carne e ovosque deve ser consumida para suprir as necessidades devitaminas e proteínas com o menor custo possível? Cada unidadede carne custa 3 unidades monetárias e cada unidade de ovocusta 2,5 unidades monetárias.a) Obtenha o modelo de otimização linear para o problema acima;b) Obtenha todas as soluções básicas factíveis para o problemaacima;c) Determine a solução ótima, caso exista, do problema acimausando o método simplex em tabelas;
Thiago Queiroz (IMTec) Parte 3 1/2016 26 / 26
Recommended