Your SlideShare is downloading. ×
0
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
[Robson] 3. Método Simplex
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

[Robson] 3. Método Simplex

1,630

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,630
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
38
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. M´todo Simplex e Alexandre Salles da Cunha DCC-UFMG, Mar¸o 2010 cAlexandre Salles da Cunha M´todo Simplex e
  • 2. Id´ias centrais do m´todo e e Se um PL na forma padr˜o possui uma solu¸˜o otima, ent˜o existe a ca ´ a uma solu¸˜o b´sica vi´vel ´tima para o problema. ca a a o O M´todo Simplex baseia-se neste fato. Iniciando em uma solu¸˜o e ca b´sica vi´vel, move-se para uma solu¸˜o b´sica vizinha de menor a a ca a custo. Este processo continua at´ que uma dire¸˜o que permita reduzir a e ca fun¸˜o objetivo n˜o seja encontrada, comprovando a otimalidade da ca a solu¸˜o em m˜os. ca a Alexandre Salles da Cunha M´todo Simplex e
  • 3. O Problema a ser resolvido min c ′x s.t.: Ax = b x ≥ 0 onde A ∈ Rm×n , b ∈ R a j-´sima coluna de A ´ designada por Aj e e a i -´sima linha de A ´ designada por ai . e e Alexandre Salles da Cunha M´todo Simplex e
  • 4. Uma id´ia muito comum nos algoritmos de otimiza¸˜o e ca Dada uma solu¸˜o vi´vel, procure uma solu¸˜o vi´vel mais barata nas ca a ca a vizinhan¸as da solu¸˜o atual. c ca Esta procura de solu¸˜es vi´veis normalmente ´ feita tentando co a e movimentar sobre uma dire¸˜o vi´vel aprimorante. ca a Se uma dire¸˜o aprimorante n˜o existe, a solu¸˜o corrente ´ um ca a ca e o ´timo local para o problema (n˜o necess´riamente global). a a No caso do PL, todo ´timo local ´ global, uma vez que o PL ´ u o e e problema de otimiza¸˜o convexa (minimizar uma fun¸˜o conexa sobre ca ca um conjunto convexo). O M´todo Simplex explora exatamente esta id´ia. e e Alexandre Salles da Cunha M´todo Simplex e
  • 5. Dire¸˜o vi´vel ca aSeja x um ponto em um poliedro P. Um vetor d ∈ Rn ´ dito ser uma edire¸˜o vi´vel em x, se existir um escalar positivo θ para o qual ca ax + θd ∈ P. Alexandre Salles da Cunha M´todo Simplex e
  • 6. Obtendo uma dire¸˜o vi´vel conveniente ca aFilosofia para escolha da dire¸˜o vi´vel ca a Vamos considerar a possibilidade de mover a partir de x para uma solu¸˜o b´sica vizinha (adjacente). ca a Por defini¸˜o, uma solu¸˜o b´sica adjacente a x deve compartilhar ca ca a n − 1 restri¸˜es justas, cujos vetores de defini¸˜o s˜o l.i. co ca a Como as restri¸˜es ai′ x = bi , ∀i = 1, . . . m precisam ser satisfeitas em co qualquer solu¸˜o vi´vel, escolhemos uma dire¸˜o d para a qual ca a ca permitamos acrescer uma unica vari´vel n˜o b´sica. ´ a a a Logo, para obter uma solu¸˜o b´sica adjacente a x precisarmos nos ca a movimentar ao longo de uma dire¸˜o vi´vel que permita que apenas ca a uma componente n˜o b´sica de x torne-se b´sica. a a a Alexandre Salles da Cunha M´todo Simplex e
  • 7. Dedu¸˜o alg´brica da dire¸˜o ca e ca Para os ´ ındices j ∈ {B(1), . . . , B(m)} das componentes n˜o b´sicas: a a ◮ dj = 1 para uma ´nica vari´vel n˜o b´sica u a a a ◮ dj = 0 para todas as demais vari´veis n˜o b´sicas. a a a ◮ Vamos designar por j o ´ ındice da coluna n˜o b´sica liberado para se a a tornar b´sica. a Para os ´ ındices j ∈ {B(1), . . . , B(m)} ◮ Uma vez que A(x + θd) ∈ P para algum θ > 0, temos que Ax + θAd = b e ent˜o Ad = 0. a ◮ Ent˜o: 0 = Ad = n=1 Ai di = m AB(i ) di + Aj = Aj + BdB . a i i =1 ◮ Portanto dB = −B −1 Aj uma vez que B admite inversa.Dire¸˜o b´sica ca aVamos chamar a dire¸˜o b´sica constru´ acima como a j-´sima dire¸˜o ca a ıda e cab´sica a Alexandre Salles da Cunha M´todo Simplex e
  • 8. E a garantia das restri¸˜es de n˜o negatividade co aTemos que garantir que xB + θdB ≥ 0: Apenas uma vari´el n˜o b´sica, de ´ v a a ındice j, ser´ aumentada. a Logo temos que nos preocupar apenas com a varia¸˜o das vari´veis ca a b´sicas. Temos dois casos a considerar: a ◮ Vamos supor que xB seja n˜o degenerada. Ent˜o xB > 0 e ent˜o existe a a a um θ > 0 suficientemente pequeno que garante a viabilidade. ◮ Se xB for degenerada, existe xB(i ) = 0 para algum i ∈ {B(1), . . . , B(m)}. Neste caso, se para este ´ındice i tivermos −Bi−1 d < 0, qualquer movimento no sentido de d faz com que a restri¸˜o xB(i ) seja violada. Assim sendo, a dire¸˜o d neste caso n˜o ´ ca ca a e vi´vel. a Alexandre Salles da Cunha M´todo Simplex e
  • 9. Exemplo no caso degenerado onde d n˜o ´ vi´vel a e a Em E (b´sica n˜o degenerada), temos como b´sicas: x2 , x4 , x5 e n´o b´sicas: x1 , x3 . a a a a a Dire¸ao vi´vel: segmento EF , que consiste em aumentar x1 , mantendo x3 em zero. c˜ a Em F (b´sica degenerada), vamos considerar que as vari´veis n˜o b´sicas sejam x3 , x5 . a a a a Observe que x4 ´ b´sica em 0. Dire¸ao b´sica: segmento FG , correpondendo a aumentar e a c˜ a x3 e manter x5 em zero, ´ n˜o ´ vi´vel. e a e a Alexandre Salles da Cunha M´todo Simplex e
  • 10. Qual o efeito na fun¸˜o objetivo de mover ao longo de d ca Sendo d a j-´sima dire¸˜o b´sica, ao mover no sentido positivo de d, e ca a a taxa de varia¸˜o da fun¸˜o objetivo ´ por n=1 ∂xi di = n=1 ci di . ca ca e i ∂f i n Uma vez que dB = −B −1 Aj temos que i =1 ci di = cj − cB B −1 Aj , onde cB = (cB(1) , . . . , cB(m) ). ◮ A parcela cj ´ a taxa unit´ria de varia¸˜o por permitir j aumentar. e a ca ◮ A parcela −cB B −1 Aj ´ referente a compensa¸˜o das mudan¸as nas e ca c vari´veis b´sicas, necess´ria para garantir a viabilidade, Ax = b. a a aDefini¸˜o caSeja x uma solu¸˜o b´sica, B a base associada a x e cB o vetor de custos ca adas vari´veis b´sicas. Para todo j = 1, . . . , n, definimos o custo reduzido a ac j da vari´vel xj por meio de : a c j = cj − cB B −1 Aj ′ Alexandre Salles da Cunha M´todo Simplex e
  • 11. ExemploVamos considerar o seguinte exemplo: min c1 x1 + c2 x2 + cc x3 + c4 x4 s.t.: x1 + x2 + x3 + x4 = 2 2x1 + 3x3 + 4x4 = 2 x ≥0 Fazendo B = [A1 A2 ], temos uma matriz cujas colunas s˜o l.i. a Fixando x3 = x4 = 0 e resolvendo o sistema, (x1 , x2 ) = (1, 1). Assumindo que d seja a dire¸˜o b´sica associada a vari´vel n˜o b´sica ca a a a a x3 , temos: dB = −B −1 A3 = [− 3 2 ]′ . 2 1 c 3 = c3 − 3c1 /2 + c2 /2 Alexandre Salles da Cunha M´todo Simplex e
  • 12. Custo reduzido para as vari´veis b´sicas a a Aplicando a defini¸˜o: c B(i ) = cB(i ) − cB B −1 AB(i ) = cB(i ) − cB eB(i ) , ca ′ ′ onde eB(i ) ´ um vetor m dimensional com todas as entradas nulas, e exceto a B(i )-´sima entrada que ´ 1. e e ′ Logo, c B(i ) = cB(i ) − cB eB(i ) = cB(i ) − cB(i ) = 0 Alexandre Salles da Cunha M´todo Simplex e
  • 13. Crit´rio de Otimalidade eDada nossa interpreta¸˜o de custos reduzidos como a taxa de varia¸˜o da ca cafun¸ao objetivo na medida em que movimentamos ao longo de uma c˜dire¸˜o, temos o seguinte resultado: caTeoremaConsidere uma solu¸˜o b´sica x associada a uma base B. Assuma que c ca aseja o correspondente vetor de custos reduzidos. 1 Se c ≥ 0, ent˜o x ´ uma solu¸˜o ´tima. a e ca o 2 Se x ´ ´tima e n˜o degenerada, ent˜o c ≥ 0. eo a a Alexandre Salles da Cunha M´todo Simplex e
  • 14. ProvaProva(1): Vamos assumir c ≥ 0 e que y denote uma solu¸˜o vi´vel qualquer ca a para o problema, para a qual determinamos uma dire¸˜o vi´vel ca a d = y − x (´ vi´vel por convexidade !). e a A viabilidade de x, y implica que Ax = Ay = b e ent˜o Ad = 0. a Ent˜o Ad = 0 = BdB + i ∈N Ai xi = 0 (N ´ o conj. dos ´ a e ındices das vari´veis n˜o b´sicas em x). a a a Logo dB = − i ∈N B −1 Ai di Ent˜o temos: a c ′ d = cB dB + ′ i ∈N ci di = i ∈N (ci − cB B −1 Ai )di = ′ i ∈N c i di . Para qualquer i ∈ N, temos que xi = 0 e ent˜o di = yi − xi ≥ 0. a Logo c ′d = i ∈N c i di ≥ 0 Alexandre Salles da Cunha M´todo Simplex e
  • 15. ProvaProva(2), por contradi¸˜o: ca Suponha que x seja uma solu¸˜o b´sica vi´vel ´tima, n˜o degenerada ca a a o a e que exista j : c j < 0. Ent˜o j necessariamente deve ser ´ a ındice de uma vari´vel n˜o b´sica, a a a uma vez que c i = 0, ∀i ∈ {B(1), . . . , B(m)}. Considere a dire¸˜o b´sica j, d. Esta dire¸˜o ´ necessariamente vi´vel ca a ca e a dado que x ´ n˜o degenerada. e a Ent˜o existe θ > 0 tal que x + θd ´ uma solu¸˜o vi´vel. Por outro a e ca a lado c ′ (x + θd) = c ′ x + θc ′ d < c ′ x, contrariando a hip´tese de que x o ´ ’otima. e Alexandre Salles da Cunha M´todo Simplex e
  • 16. Observa¸˜es co Uma solu¸˜o ´tima x pode ser tal que o custo reduzido de alguma ca o vari´vel n˜o b´sica ´ negativo. a a a e De acordo com o teorema para decidir se uma solu¸˜o b´sica vi´vel ca a a n˜o degenerada x ´ ´tima, precisamos verificar os custos reduzidos de a eo suas n − m componentes n˜o b´sicas. a a No caso de uma solu¸˜o b´sica degenerada, um teste igualmente ca a simples n˜o ´ dispon´ a e ıvel. Alexandre Salles da Cunha M´todo Simplex e
  • 17. Bases ´timas oDefini¸˜o caUma base B ´ ´tima se: eo 1 B −1 b ≥ 0 e 2 c ′ = c ′ − cB B −1 B −1 A ≥ 0. ′Observe que, diante desta defini¸˜o: ca Se uma base ´tima B ´ encontrada, a solu¸˜o b´sica associada ´ o e ca a e vi´vel, satisfaz as condi¸˜es de otimalidade e portanto ´ ´tima. a co eo Por outro lado uma solu¸˜o b´sica vi´vel ´tima degenerada n˜o ca a a o a necessariamente garante custos reduzidos n˜o negativos. a Vale lembrar que mais de uma base podem ser associadas ` mesma a solu¸˜o b´sica (no caso degenerado). ca a Alexandre Salles da Cunha M´todo Simplex e
  • 18. Desenvolvimento do m´todo e De in´ ıcio, vamos assumir a hip´tese de que todos as solu¸˜es b´sicas o co a de P = {x ∈ Rn : Ax = b, x ≥ 0} s˜o n˜o degeneradas. a a Em seguida relaxaremos esta hip´tese. o Alexandre Salles da Cunha M´todo Simplex e
  • 19. Desenvolvimento do M´todo e Vamos supor que estejamos em um ponto x, solu¸˜o b´sica vi´vel ca a a n˜o degenerada de P e que tenhamos avaliado os custos reduzidos de a forma que c j ≥ 0 : ∀j ∈ {B(1), . . . , B(m)}. Ent˜o, pelo resultado a anterior, concluimos que x resolve o PL. Caso contr´rio, existe j ∈ {B(1), . . . , B(m)} : c j < 0. a Ent˜o a j−´sima dire¸˜o b´sica d, obtida fazendo-se dB = −B −1 Aj , a e ca a dj = 1 e dk = 0, ∀k ∈ {j, B(1), . . . , B(m)} ´ uma dire¸˜o vi´vel, de e ca a redu¸˜o de custo. ca Movendo ao longo de d, a partir de x, a componente xj torna-se positiva, as componentes xk : k ∈ {j, B(1), . . . , B(m)} permanecem em 0 e as vari´veis b´sicas s˜o alteradas. a a a Uma vez que d ´ uma dire¸˜o de aprimoramento de custos, ´ e ca e desej´vel nos mover o quanto pudermos ao longo desta dire¸˜o. a ca Alexandre Salles da Cunha M´todo Simplex e
  • 20. Garantindo a satisfa¸˜o das restri¸˜es de n˜o negatividade ca co a x(θ) = x + θd, θ ≥ 0 O m´ximo que podemos andar na dire¸˜o d ´ dado por a ca e θ ∗ = max{θ ≥ 0 : x + θd ∈ P}. Dado que Ad = 0, Ax(θ) = b e precisamos verificar apenas as restri¸˜es de n˜o negatividade. co a Se d ≥ 0, x(θ) ≥ 0 e ent˜o θ ∗ = ∞. a Caso contr´rio, existe i ∈ {B(1), . . . , B(m)} : di < 0. Para garantir a x xi + θdi ≥ 0 temos que θ ≤ − dii . x Ent˜o θ ∗ = min{− dii : dB(i ) < 0} a Observe que θ ∗ > 0 como consequˆncia da n˜o degenera¸˜o de x. e a ca Alexandre Salles da Cunha M´todo Simplex e
  • 21. O novo ponto obtidoAssumindo que θ ∗ ´ finito, y = x(θ ∗ ) = x + θ ∗ d. eEnt˜o: a x yj = xj + θ ∗ = − dB(l ) , onde l ∈ {B(1), . . . , B(m)} denota o ´ B(l ) ındice da vari´vel b´sica que definiu θ a a ∗. Todas as componentes b´sicas de x, pelo modo como θ ∗ ´ definido a e continuam n˜o negativas. a Em particular, para l temos: xB(l) yB(l) = xB(l) + θdB(l) = xB(l) − d =0 dB(l) B(l) o que sugere que a coluna Aj substitua a coluna AB(l) na base, uma vez que houve uma troca das restri¸˜es de n˜o negatividade que co a ficaram justas. Alexandre Salles da Cunha M´todo Simplex e
  • 22. Exemplo - continua¸˜o ca Considerando a solu¸˜o b´sica x = (1, 1, 0, 0) e lembrando que ca a c2 c 3 = −3c1 + 2 + c3 . Se c = (2, 0, 0, 0) temos que c 3 = −3. A correspondente dire¸˜o ca 3 1 b´sica ´ (− 2 , 2 , 1, 0). a e Considerando pontos da forma x + θd, θ > 0, a unica componente de ´ x x que cai ´ x1 (note que d1 < 0) e portanto θ ∗ = − d1 = 2 . e 1 3 O novo ponto obtivo ´ y = x + 2 d = (0, 3 , 2 , 0). e 3 4 3 Observe que as novas colunas associadas `s vari´veis b´sicas (x2 , x3 ) a a a s˜o l.i.. a Alexandre Salles da Cunha M´todo Simplex e
  • 23. A nova base A nova base B ´ dada por: e B = [AB(1) , . . . , AB(l−1) , AB(j) , AB(l+1) , . . . , AB(m) ] Equivalentemente, o novo conjunto de vari´veis b´sicas ´ a a e {B(1), . . . , B(l − 1), B(j), B(l + 1), . . . , B(m)}Mais formalmente:Teorema 1 As colunas AB(i ) : i = l e Aj s˜o linearmente independentes e, assim, a B ´ uma matriz b´sica. e a 2 O vetor y = x + θ ∗ d ´ a solu¸˜o b´sica associada a B. e ca a Alexandre Salles da Cunha M´todo Simplex e
  • 24. ProvaProva(1): por contradi¸˜o: ca Vamos supor que os vetores AB(i ) sejam l.d. Ent˜o, existem a coeficientes λ1 , . . . , λm , n˜o todos nulos, tais que m λi AB(i ) = 0. a i =1 −1 temos m Multiplicando por B i =1 λi B −1 AB(i ) = 0 e os vetores B −1 AB(i ) tamb´m s˜o l.d. Vamos mostrar que este n˜o ´ o caso. e a a e Observe que B −1 B = I . Logo B −1 AB(i ) = ei , i = l (ei denota o vetor de zeros, exceto na i´sima entrada, que ´ 1). Todos os vetores e e B −1 AB(i ) possuem um 0 na l −´sima entrada. Logo, B −1 AB(i ) , i = l e s˜o l.i.. a Por outro lado B −1 AB(l) = B −1 Aj = −dB . Por defini¸˜o, dB(l) < 0. Logo B −1 Aj e B −1 AB(i ) , i = l s˜o l.i.. ca a Logo, B ´ uma base. e Alexandre Salles da Cunha M´todo Simplex e
  • 25. ProvaProva(2): Temos que y ≥ 0, Ay = b. Al´m disto yi = 0, ∀i ∈ {B(i ), . . . , B(i )}. e Acabamos de mostrar que AB(i ) , . . . , AB(i ) s˜o l.i.. a Portanto, segue que y ´ uma solu¸˜o b´sica associada a B e ca a Alexandre Salles da Cunha M´todo Simplex e
  • 26. Observa¸˜es co Uma vez que θ ∗ > 0, segue que y ´ uma solu¸˜o b´sica distinta de x, e ca a uma vez que d ´ uma dire¸˜o de redu¸˜o de custos e ent˜o c ′ y < c ′ x. e ca ca a Em parte, cumprimos nosso prop´sito inicial de mover para uma o solu¸˜o b´sica adjacente, de menor custo. ca a Vamos enunciar uma itera¸˜o t´ ca ıpica do M´todo Simplex, definindo e um vetor u = (u1 , . . . , um ), de forma que u = −dB = B −1 Aj , onde Aj ´ a coluna que entra na base. Ou seja, ui = −dB(i ) : i = 1, . . . , m. e Alexandre Salles da Cunha M´todo Simplex e
  • 27. M´todo Simplex: Itera¸˜o T´ e ca ıpica 1 Inicie a itera¸˜o com as colunas b´sicas B(1), . . . , B(m) e a solu¸˜o ca a ca b´sica vi´vel associada x. Seja N o conjunto dos ´ a a ındices das vari´veis a n˜o b´sicas. a a 2 Calcule os custos reduzidos c j = cj − cB B −1 Aj , ∀j ∈ N. Se c ≥ 0, ′ p´re, a solu¸˜o x ´ ´tima. Caso contr´rio, escolha j ∈ N : c j < 0. a ca eo a 3 Calcule u = B −1 Aj . Se u ≤ 0, temos que θ ∗ = ∞ e o custo ´timo ´ o e −∞. P´re, o problema ´ ilimitado. a e xB(i ) 4 Se alguma componente de u ´ positiva, fa¸a θ ∗ = mini ∈1,...,m:ui >0 e c ui . Seja l tal que θ ∗ = xB(l ) . ul 5 Forme uma nova base substituindo AB(l) por Aj . Denote por y a nova solu¸˜o b´sica vi´vel. Ent˜o yj = θ ∗ e yB(i ) = xB(i ) − θ ∗ ui , i l . ca a a a Alexandre Salles da Cunha M´todo Simplex e
  • 28. Na ausˆncia de degenera¸˜o, O M´todo Simplex converge e ca eTeoremaAssuma que o conjunto de solu¸˜es vi´veis do PL ´ n˜o vazio e que toda co a e asolu¸˜o b´sica ´ n˜o degenerada. Ent˜o, o M´todo Simplex termina ap´s ca a e a a e oum n´mero finito de itera¸˜es. Ao final, temos duas possibilidades: u co 1 Dispomos de uma base ´tima B e a correspondente solu¸˜o b´sica o ca a o ´tima. 2 Encontramos um vetor d : Ad = 0, d ≥ 0 e c ′ d < 0. Portanto o custo o ´timo ´ −∞. e Alexandre Salles da Cunha M´todo Simplex e
  • 29. ProvaProva Se o algoritmo termina no passo 2, as condi¸˜es de otimalidade co propostas previamente foram satisfeitas e B ´ uma base ´tima. e o Se o algoritmo termina no passo 3, estamos em uma solu¸˜o b´sica x ca a e descobrimos uma vari´vel n˜o b´sica xj tal que c j < 0. A j−´sima a a a e dire¸˜o b´sica j satisfaz Ad = 0, d ≥ 0. Em particular temos que ca a x + θd ∈ P para θ t˜o grande quanto queiramos. Uma vez que a c ′ d = c j , o custo pode ser feito t˜o negativo quanto queiramos. a Em cada itera¸˜o do algoritmo, nos movemos uma quantidade θ ∗ > 0 ca ao longo de uma dire¸˜o b´sica d satisfazendo c ′ d < 0. Assim sendo, ca a a cada itera¸˜o o custo diminui e portanto n˜o visitamos a mesma ca a solu¸˜o b´sica mais de uma vez. ca a Como o n´mero de solu¸˜es b´sicas ´ finito, o algoritmo ent˜o u co a e a termina. Alexandre Salles da Cunha M´todo Simplex e
  • 30. M´todo Simplex para problemas degenerados eVamos considerar a partir de agora, como se comporta o algoritmodescrito anteriormente, diante da degenera¸˜o: ca 1 Se a solu¸˜o b´sica corrente x for degenerada, θ ∗ pode ser nulo, caso ca a xB(l) = 0 e dB(l) < 0. Por este motivo, a nova solu¸˜o obtida y ´ ca e idˆntica a x. Ainda assim, podemos definir uma nova matriz B com a e entrada da coluna Aj e a sa´ de AB(l) de forma que B ser´ uma ıda a base. 2 Mesmo se θ ∗ > 0, pode acontecer de mais de uma vari´vel b´sica se a a tornar zero no novo ponto x + θ ∗ d. Uma vez que apenas uma destas vari´veis b´sicas que se tornou nula sair´ da base para a entrada da a a a coluna Aj , a nova solu¸˜o encontrada y = x + θ ∗ d ser´ degenerada. ca a Alexandre Salles da Cunha M´todo Simplex e
  • 31. Efeito da degenera¸˜o ca As mudan¸as de base associadas ` mesma solu¸ao b´sica podem, em c a c˜ a alguns casos, n˜o ser in´teis, levando a descobrir uma dire¸˜o b´sica a u ca a de redu¸˜o de custo. ca Por outro lado, uma sequˆncia de mudan¸as de base associadas ao e c mesmo ponto x pode levar ` repeti¸˜o das colunas associadas ` a ca a representa¸˜o da base, ocasionando a ciclagem. ca Para problemas altamente estruturados (fluxo em redes, etc) a possibilidade n˜o ´ remota. a e A ciclagem pode ser evitada atrav´s do uso de regras adequadas de e quais vari´veis entrar˜o e/ou sair˜o da base. a a a Alexandre Salles da Cunha M´todo Simplex e
  • 32. Ilustra¸˜o dos dois casos em uma solu¸˜o degenerada ca caNeste exemplo temos n − m = 2. Vale observar a solu¸˜o degenerada x. ca Alexandre Salles da Cunha M´todo Simplex e
  • 33. O M´todo Simplex pode n˜o terminar ? e aQuadro 1, B = {5, 6, 7}, entra x1 , sai x5 x5 = − 0.5x1 + 5.5x2 + 2.5x3 − 9x4 x6 = − 0.5x1 + 1.5x2 + 0.5x3 − x4 x7 = 1 − x1 z = + 10x1 − 57x2 − 9x3 − 24x4Quadro 2, B = {1, 6, 7}, entra x2 , sai x6 x1 = + 11x2 + 5x3 − 18x4 − 2x5 x6 = − 4x2 − 2x3 + 8x4 + x5 x7 = 1 − 11x2 − 5x3 + 18x4 + 2x5 z = + 53x2 + 41x3 − 204x4 − 20x5 Alexandre Salles da Cunha M´todo Simplex e
  • 34. O M´todo Simplex pode n˜o terminar ? e aQuadro 3, B = {1, 2, 7}, entra x3 , sai x1 x2 = − 0.5x3 + 2x4 + 0.25x5 − 0.25x6 x1 = − 0.5x3 + 4x4 + 0.75x5 − 2.75x6 x7 = 1 + 0.5x3 − 4x4 − 0.75x5 − 13.25x6 z = + 14.5x3 − 98x4 − 6.75x5 − 13.25x6Quadro 4, B = {2, 3, 7}, entra x4 , sai x2 x3 = + 8x4 + 1.5x5 − 5.5x6 − 2x1 x2 = − 2x4 − 0.5x5 + 2.5x6 + x1 x7 = 1 − x1 z = + 18x4 + 15x5 − 93x6 − 29x1 Alexandre Salles da Cunha M´todo Simplex e
  • 35. O M´todo Simplex pode n˜o terminar ? e aQuadro 5, B = {3, 4, 7}, entra x5 , sai x3 x4 = − 0.25x5 + 1.25x6 + 0.5x1 − 0.5x2 x3 = − 0.5x5 + 4.5x6 + 2x1 − 4x2 x7 = 1 − x1 z = + 10.5x5 − 70.5x6 − 20x1 − 9x2Quadro 6, B = {4, 5, 7}, entra x6 , sai x4 x5 = + 9x6 + 4x1 − 8x2 − 2x3 x4 = − x6 − 0.5x1 + 1.5x2 + 0.5x3 x7 = 1 − x1 z = + 24x6 + 22x1 − 93x2 − 21x3 Alexandre Salles da Cunha M´todo Simplex e
  • 36. O M´todo Simplex pode n˜o terminar ? Sim, caso cicle. e aO pr´ximo quadro ´ igual ao quadro inicial ! o eQuadro 7, B = {5, 6, 7}, entra x1 , sai x5 x6 = − 0.5x1 + 1.5x2 + 0.5x3 − x4 x5 = − 0.5x1 + 5.5x2 + 2.5x3 − 9x4 x7 = 1 − x1 z = + 10x1 − 57x2 − 9x3 − 24x4 Alexandre Salles da Cunha M´todo Simplex e
  • 37. Possibilidades para implementar o pivoteamentoAt´ o momento, n˜o particularizamos regra alguma para escolher as e aregras de pivoteamento, isto ´, escolher qual vari´vel entra e sai da e abase. Em particular, na descri¸˜o que apresentamos do M´todo Simplex, ca etemos flexibilidade quanto ` escolha de: a 1 Qual coluna n˜o b´sica com custo reduzido ´ negativo deve ser eleita a a e para entrar na base; 2 Diante de mais de uma vari´vel que definam θ ∗ , qual escolher para a deixar a base. Alexandre Salles da Cunha M´todo Simplex e
  • 38. Algumas prov´veis candidatas a regras de pivotemento : a Escolher para entrar na base, a coluna n˜o b´sica Aj que possui o a a custo reduzido c j mais negativo. Escoher para entrar na base, a coluna n˜o b´sica Aj que promova o a a maior redu¸˜o na fun¸˜o objetivo, isto ´ θ ∗c j . Esta regra pode ca ca e acelerar a queda da fun¸˜o objetivo, mais paga-se maior pre¸o ca c computacional, para se avaliar o θ ∗ associado a entrada de cada coluna que possua c j . A experiˆncia computacional existe sugere que e o tempo global de cpu n˜o decresce com a ado¸˜o desta estrat´gia. a ca e Mesmo a primeira estrat´gia acima pode ser muito cara para e problemas de larga escala (requer que todas as colunas tenham seus custos reduzidos avaliados). Assim sendo, uma regra simples consiste na regra de escolher a coluna com custo reduzido negativo, de menor ´ ındice. Alexandre Salles da Cunha M´todo Simplex e
  • 39. Implementa¸˜es do Simplex co Os vetores B −1 Aj s˜o de fundamental importˆncia no algoritmo, uma a a vez que com estas informa¸˜es podemos obter: co ◮ Custos reduzidos c j = cj − cB B −1 Aj ′ ◮ A dire¸˜o de busca d ca ◮ O valor de θ∗ Por este motivo, a diferen¸a entre as implementa¸˜es alternativas do c co M´todo Simplex residem em como esta informa¸˜o ´ calculada e e ca e quais informa¸˜es s˜o preservadas de itera¸˜o para itera¸˜o. co a ca ca Dado que B ´ uma matriz m × m temos: e ◮ Custo de resolver Bx = b: O(m3 ) ◮ Custo de efetuar a mutiplica¸˜o Bb: O(m2 ) ca ◮ Custo de calcular o produto interno de dois vetores m dimensionais: O(m). Alexandre Salles da Cunha M´todo Simplex e
  • 40. Implmenta¸˜o Inocente ca 1 Nenhuma informa¸˜o adicional ser´ transportada de itera¸˜o para ca a ca itera¸˜o no m´todo. ca e 2 Em cada itera¸˜o t´ ca ıpica, conhecemos os ´ ındices B(1), . . . , B(m) das vari´veis b´sicas. a a 3 Montamos a matriz B e resolvemos o sistema linear p ′ B = cB . ′ 4 O custo reduzido para qualquer coluna j ´ obtido via c j = cj − p ′ Aj . e 5 Dependendo da regra de pivoteamento adotado, podemos evitar calcular todos os custos reduzidos. 6 Uma vez que escolhemos a coluna Aj para entrar na base, resolvemos Bu = Aj (ou u = B −1 Aj ). 7 A partir de ent˜o, podemos calcular θ ∗ e definir qual vari´vel sair´ da a a a base. Alexandre Salles da Cunha M´todo Simplex e
  • 41. Implementa¸˜o inocente - complexidade computacional ca Resolver os sistemas lineares (p ′ B = cB e u = B −1 Aj ): O(m3 ). ′ Dependendo da estrutura da matriz B, este custo pode ser reduzido sensivelmente (exemplo: Problemas de Fluxo em Redes) C´lculo do custo reduzido para todas as colunas: O(mn) a Custo total por itera¸˜o: O(nm + m3 ). ca Veremos como fazer a itera¸˜o a um custo de O(m2 + mn) ca Alexandre Salles da Cunha M´todo Simplex e
  • 42. Simplex Revisado Boa parte do custo computacional por itera¸˜o ´ relacionado ` ca e a resolu¸˜o de dois sistemas lineares. ca Neste m´todo, a matriz B −1 ´ explicitamente mantida em cada e e itera¸˜o e os vetores cB B −1 e B −1 Aj s˜ determinados via ca ′ a multiplica¸˜o matricial. ca Para ser eficiente, o m´todo requer um esquema eficiente de e atualiza¸˜o de B ca −1 quando implementarmos uma opera¸˜o de ca pivoteamento. Alexandre Salles da Cunha M´todo Simplex e
  • 43. Simplex Revisado Base no in´ da itera¸˜o: B = [AB(1) , . . . , AB(m) ] ıcio ca Base ao fim da itera¸˜o: ca B = [AB(1) , . . . , AB(l−1) , AB(j) , AB(l+1) , . . . , AB(m) ] Todas, exceto uma coluna de B e B s˜o compartilhadas. a Em fun¸˜o disto, ´ razo´vel esperar que B −1 contenha informa¸˜o ca e a ca −1 que possa ser usada na determina¸˜o de B . ca Alexandre Salles da Cunha M´todo Simplex e
  • 44. −1Como aproveitar informa¸˜es de B −1 para avaliar B coDefini¸˜o caDada uma matriz, n˜o necessariamente quadrada, a opera¸ao de adicionar a c˜um m´ltiplo de uma linha ` mesma linha ou a outra linha da matriz ´ u a echamada de opera¸˜o linha elementar (n˜o muda as informa¸˜es dos ca a cosistemas lineares representados pela matriz).ExemploDigamos que queiramos multiplicar a terceira linha da matriz C abaixo por2 para somar ` primeira linha da matriz. Isto equivale a multiplicar C pela amatriz Q dada abaixo.       1 2 1 0 2 11 14 C =  3 4  Q =  0 1 0  QC =  3 4  5 6 0 0 1 5 6 Alexandre Salles da Cunha M´todo Simplex e
  • 45. Generalizando este exemplo Multiplicar a j−´sima linha de uma matriz por β e adicionar este e produto ` i −´sima linha da matriz, equivale a pr´ mutiplicar a matriz a e e por Q = I + Dij , onde Dij ´ uma matriz de zeros, exceto em sua e entrada na i −´sima linha e j−´sima coluna que ´ β. e e e Observe que a matriz Q possui determinante 1 e ent˜o admite inversa. a Suponha que queiramos fazer uma sequˆncia de K opera¸˜es linha e co elementares, cada qual correspondento a pr´-multiplica¸˜o por uma e ca matriz Qk correspondente. Esta sequˆncia de opera¸˜es consiste em e co pr´ multiplicar a matriz sobre a qual s˜o feitas as opera¸˜es por: e a co QK QK −1 . . . Q2 Q1 . Alexandre Salles da Cunha M´todo Simplex e
  • 46. Aplicando esta id´ia no M´todo Simplex e e Uma vez que B −1 B = I , temos que B −1 AB(i ) = ei , onde ei ´ um e vetor de zeros exceto pela i −´sima entrada que ´ 1. e e   1 u1 .. . . .     .   Usando esta observa¸˜o temos B ca −1 B =  ul  . ..     . . .   um 1 Para transformar a matriz acima na identidade: ◮ Para cada i = l, adicionamos o produto da l− ´sima linha (linha pivot) e por −ui e somamos ` i− ´sima linha. Observe que ul = 0 e ent˜o esta ul a e a opera¸˜o substitui ui por 0 na correspondente i−´sima linha. ca e ◮ Dividimos a l− ´sima linha por ul . e Seja Q o produto destas m opera¸˜es linha elementares. Temos ent˜o co a que QB −1 B = I , logo B −1 = QB −1 . Alexandre Salles da Cunha M´todo Simplex e
  • 47. Exemplo Vamos considerar l = 3 (a terceira coluna de B ser´ alterada para a compor B) e     1 2 3 −4 −1 B =  −2 3 1 u =  2  4 −3 −2 2     1 0 2 9 −4 −1 −1 Ent˜o temos: Q =  0 1 −1  B =  −6 a 6 3  1 0 0 2 2 −1.5 −1 Alexandre Salles da Cunha M´todo Simplex e
  • 48. M´todo Simplex Revisado eVamos adicionar o seguinte passo ao final da quinta opera¸˜o na itera¸˜o ca cat´ ıpica: Forme a matriz m × (m + 1) dada por: [B −1 | u]. Fa¸a as opera¸˜es linha elementares necess´rias para transformar a c co a ultima coluna desta matriz no vetor unit´rio el . ´ a −1 As primeiras m colunas da matriz resultante fornece B .Observe que recalcular a inversa da base agora custa O(m2 ). Desta forma,apenas na primeira invers˜o da base, pagamos o O(m3 ). Desta forma, areduzimos o custo de cada itera¸˜o para O(nm + m2 ) ca Alexandre Salles da Cunha M´todo Simplex e
  • 49. Regras anti-ciclagem Regra lexicogr´fica, adequada ` implementa¸˜o da vers˜o Full table a a ca a implementation que, por ter o comportamento assint´tico pior que a o vers˜o do Simplex Revisado, n˜o ser´ discutida. a a a Regra de Bland - compat´ com a implementa¸˜o do Simplex ıvel ca Revisado. Alexandre Salles da Cunha M´todo Simplex e
  • 50. Regra de BlandPivoteamento de Bland 1 Encontre o menor ´ ındice j para o qual o custo reduzido c j ´ negativo. e 2 Dentre as vari´veis b´sicas xi que se anularem primeiro com o a a incremento da vari´vel xj (para as quais houver empate na a determina¸˜o de θ ∗ ), escolha aquela com o menor ´ ca ındice i .Observa¸˜es: co Esta regra n˜o nos obriga a calcular todos os custos reduzidos. a ´ E compat´el com a implementa¸˜o do Simplex Revisado, na qual os v ca custos reduzidos s˜o calculados na ordem natural das vari´veis. a a Diante desta regra ´ provado que n˜o pode haver ciclagem e o e a M´todo Simplex converge ap´s um n´merol finito de mudan¸as de e o u c base. Alexandre Salles da Cunha M´todo Simplex e
  • 51. Encontrando uma base inicial vi´vel aNo M´todo Simplex, assumimos dispor de uma solu¸˜o b´sica vi´vel e ca a ainicial. N˜o descrevemos ainda como obter esta solu¸ao. a c˜ Em alguns casos, encontrar esta solu¸˜o ´ trivial. Exemplo: ca e P ′ = {x ∈ Rn : Ax ≤ b} e o vetor b ≥ 0. Neste caso, introduzindo as + n m vari´veis de folga temos P = {(x, s) ∈ (R+ , R+ ) : Ax + Is = b} e o a vetor (x, s) = (0, b) ´ uma solu¸˜o b´sica vi´vel. e ca a a De um modo geral, encontrar esta solu¸˜o n˜o ´ t˜o trivial, ca a e a requerendo a solu¸˜o de um problema linear auxiliar (Fase 1). ca Alexandre Salles da Cunha M´todo Simplex e
  • 52. Constru¸˜o de um problema auxiliar caProblema Original min c ′x Ax = b x ≥0Assumimos sem perda de generalidade que b ≥ 0 (caso contr´rio, amultiplicamos alguma linha do sistema linear por −1) Alexandre Salles da Cunha M´todo Simplex e
  • 53. Constru¸˜o de um problema auxiliar - Fase 1 caProblema Auxiliar (PA) m min yi i =1 Ax + y = b x ≥0 y ≥0 Introduzimos as vari´veis artificiais y ∈ Rm +. a Uma solu¸˜o b´sica inicial para o Prob. Auxiliar ´ dada por ca a e (x, y ) = (0, b). Resolvemos PA. Se a fun¸˜o objetivo ´tima for 0 sabemos que h´ ca o a solu¸˜o vi´vel para o problem original. Caso contr´rio, o problema ca a a original ´ invi´vel. e a Como obter a solu¸˜o b´sica inicial para o problema original ? ca a Alexandre Salles da Cunha M´todo Simplex e
  • 54. Obtendo uma solu¸˜o vi´vel inicial a partir de PA ca aPara iniciar o M´todo Simplex, necessitamos de uma solu¸˜o b´sica inicial e ca ae a matriz b´sica associada. Vamos assumir que no ´timo de PA tenhamos a o m j=1 yj = 0 (prob. original ´ vi´vel). e aAnalisando a solu¸˜o do PA: ca 1 Se ao final da resolu¸˜o de PA as colunas b´sicas na solu¸ao ´tima ca a c˜ o forem exclusivamente as vari´veis x, basta tomarmos esta solu¸˜o a ca como uma sol. b´sica vi´vel inicial (e as correspondentes colunas a a compondo a base) para iniciar o problema original. 2 Se existirem vari´veis yj b´sicas (necessariamente degeneradas) na a a solu¸˜o ´tima de PA, devemos fazer opera¸˜es de pivoteamento ca o co for¸ado para removˆ-las da base. c e Alexandre Salles da Cunha M´todo Simplex e
  • 55. Eliminando as vari´veis y para fora da base a Vamos supor (como de costume) que posto(A) = m. Vamos assumir que k < m colunas de A aparecem na base ´tima de o PA. Os ´ ındices das vari´veis b´sicas associadas a estas colunas s˜o a a a B1 , . . . , Bk Vale observar que as colunas AB(1) , . . . , AB(k) s˜o linearmente a independentes, uma vez que est˜o na base. a Como a matriz A ∈ Rm×n possui posto m, suas colunas geram o espa¸o Rm . Logo, ´ poss´ escolher outras m − k colunas de A, que c e ıvel sejam linearmente independentes a AB(1) , . . . , AB(k) . Vamos identificar estas colunas, eliminando as colunas associadas a y da base. Alexandre Salles da Cunha M´todo Simplex e
  • 56. Eliminando as vari´veis artificiais a Vamos supor que a l −´sima (l > k) vari´vel b´sica seja artificial. e a a Dentre as vari´veis xj : j ∈ {B(1), . . . , B(m)}, procuramos uma a coluna j tal que B −1 Aj = 0. Claramente Aj ´ l.i. com AB(1) , . . . , AB(k) (por quˆ ?) e e Ent˜o fazemos um pivoteamento for¸ado, no qual trazemos a coluna a c Aj para a base e eliminados a coluna da vari´vel artificial da base. a Repetimos o processo enquanto houver colunas b´sicas associadas a a vari´veis artificiais. a Alexandre Salles da Cunha M´todo Simplex e
  • 57. Complexidade computacional do m´todo simplex eA complexidade do m´todo Simplex depende: e 1 da complexidade computacional em cada itera¸˜o (O(nm), por ca exemplo, no caso do Simplex Revisado) 2 do n´mero de itera¸˜es, ou opera¸˜es de pivoteamento. u co co Na pr´tica: ao longo dos anos observou-se que o m´todo a e normalmente executa O(m) opera¸˜es de pivoteamento na m´dia. co e Pior caso: esta observa¸˜o que ocorre na pr´tica n˜o ´ verdadeira ca a a e para qualquer Programa Linear e qualquer regra de pivoteamento. H´a exemplos de problemas n˜o degenerados nos quais o m´todo percorre a e todos os v´rtices do poliedro at´ encontrar a solu¸˜o ´tima. e e ca o Alexandre Salles da Cunha M´todo Simplex e
  • 58. Complexidade no pior caso Vamos considerar o problema de minimizar −xn sobre o cubo P = {x ∈ Rn : 0 ≤ xi ≤ 1, i = 1 dots, n}. Estes cubo possui 2n v´rtices, metade dos quais possuem custo 0 e a outra metade custo e −1. Assim sendo, a fun¸˜o objetivo n˜o pode decrescer ca a monotonicamente ao longo das itera¸˜es do Simplex. co Por este motivo, vamos perturbar o cubo, mantendo o n´mero de u v´rtices, impondo as seguintes restri¸˜es, para ǫ ∈ (0, 1 ) e co 2 ǫ ≤ x1 ≤ 1, ǫxi −1 ≤ xi ≤ 1 − xi −1 , i = 2, . . . , nde forma a criar uma sequˆncia de v´rtices adjacentes para os quais a e efun¸ao objetivo seja reduzida quando nos movemos de um v´rtice para o c˜ eoutro. Alexandre Salles da Cunha M´todo Simplex e
  • 59. Criamos um caminho que percorre todos os v´rtices eExiste uma regra de pivoteamento que faz o m´todo percorrer todos os ev´rtices (ver a prova em Papadimitrou e Steiglitz, pp. 166-170). e min −xn ǫ ≤ x1 ≤ 1, ǫxi −1 ≤ xi ≤ 1 − xi −1 , i = 2, . . . , n Alexandre Salles da Cunha M´todo Simplex e
  • 60. Existe regra de pivoteamento imune a esta patologia ?Quest˜o em aberto a Para v´rias regras populares de pivotemento, h´ exemplos como o a a indicado anteriormente, que fazem o m´todo percorrer todos os e v´rtices. e Entretanto, estes exemplos n˜o excluem a possibilidade de existir uma a regra de pivotemento que n˜o apresente o comportamento de pior a caso exponencial. Esta ´ uma das quest˜es mais importantes em Teoria de Programa¸˜o e o ca Linear, ainda em aberto. O fato ´ que n˜o se conhece uma regra de pivoteamento imune a esta e a patologia. O Problema de Programa¸˜o Linear ´ polinomialmente sol´vel ca e u (Algoritmo do Elips´ide). o Alexandre Salles da Cunha M´todo Simplex e

×