[Robson] 3. Método Simplex
Transcript of [Robson] 3. Método Simplex
![Page 1: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/1.jpg)
Metodo Simplex
Alexandre Salles da Cunha
DCC-UFMG, Marco 2010
Alexandre Salles da Cunha Metodo Simplex
![Page 2: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/2.jpg)
Ideias centrais do metodo
Se um PL na forma padrao possui uma solucao otima, entao existeuma solucao basica viavel otima para o problema.
O Metodo Simplex baseia-se neste fato. Iniciando em uma solucaobasica viavel, move-se para uma solucao basica vizinha de menorcusto.
Este processo continua ate que uma direcao que permita reduzir afuncao objetivo nao seja encontrada, comprovando a otimalidade dasolucao em maos.
Alexandre Salles da Cunha Metodo Simplex
![Page 3: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/3.jpg)
O Problema a ser resolvido
min c ′x
s.t.: Ax = b
x ≥ 0
onde A ∈ Rm×n, b ∈ R
a j-esima coluna de A e designada por Aj
a i -esima linha de A e designada por ai .
Alexandre Salles da Cunha Metodo Simplex
![Page 4: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/4.jpg)
Uma ideia muito comum nos algoritmos de otimizacao
Dada uma solucao viavel, procure uma solucao viavel mais barata nasvizinhancas da solucao atual.
Esta procura de solucoes viaveis normalmente e feita tentandomovimentar sobre uma direcao viavel aprimorante.
Se uma direcao aprimorante nao existe, a solucao corrente e umotimo local para o problema (nao necessariamente global).
No caso do PL, todo otimo local e global, uma vez que o PL e uproblema de otimizacao convexa (minimizar uma funcao conexa sobreum conjunto convexo).
O Metodo Simplex explora exatamente esta ideia.
Alexandre Salles da Cunha Metodo Simplex
![Page 5: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/5.jpg)
Direcao viavel
Seja x um ponto em um poliedro P . Um vetor d ∈ Rn e dito ser uma
direcao viavel em x , se existir um escalar positivo θ para o qualx + θd ∈ P .
Alexandre Salles da Cunha Metodo Simplex
![Page 6: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/6.jpg)
Obtendo uma direcao viavel conveniente
Filosofia para escolha da direcao viavel
Vamos considerar a possibilidade de mover a partir de x para umasolucao basica vizinha (adjacente).
Por definicao, uma solucao basica adjacente a x deve compartilharn − 1 restricoes justas, cujos vetores de definicao sao l.i.
Como as restricoes a′ix = bi ,∀i = 1, . . . m precisam ser satisfeitas emqualquer solucao viavel, escolhemos uma direcao d para a qualpermitamos acrescer uma unica variavel nao basica.
Logo, para obter uma solucao basica adjacente a x precisarmos nosmovimentar ao longo de uma direcao viavel que permita que apenasuma componente nao basica de x torne-se basica.
Alexandre Salles da Cunha Metodo Simplex
![Page 7: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/7.jpg)
Deducao algebrica da direcao
Para os ındices j 6∈ {B(1), . . . ,B(m)} das componentes nao basicas:◮ dj = 1 para uma unica variavel nao basica◮ dj = 0 para todas as demais variaveis nao basicas.◮ Vamos designar por j o ındice da coluna nao basica liberado para se
tornar basica.
Para os ındices j ∈ {B(1), . . . ,B(m)}◮ Uma vez que A(x + θd) ∈ P para algum θ > 0, temos que
Ax + θAd = b e entao Ad = 0.◮ Entao: 0 = Ad =
∑ni=1 Aidi =
∑mi=1 AB(i)di + Aj = Aj + BdB .
◮ Portanto dB = −B−1Aj uma vez que B admite inversa.
Direcao basica
Vamos chamar a direcao basica construıda acima como a j-esima direcaobasica
Alexandre Salles da Cunha Metodo Simplex
![Page 8: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/8.jpg)
E a garantia das restricoes de nao negatividade
Temos que garantir que xB + θdB ≥ 0:
Apenas uma varivel nao basica, de ındice j , sera aumentada.
Logo temos que nos preocupar apenas com a variacao das variaveisbasicas. Temos dois casos a considerar:
◮ Vamos supor que xB seja nao degenerada. Entao xB > 0 e entao existeum θ > 0 suficientemente pequeno que garante a viabilidade.
◮ Se xB for degenerada, existe xB(i) = 0 para algumi ∈ {B(1), . . . , B(m)}. Neste caso, se para este ındice i tivermos−B−1
i d < 0, qualquer movimento no sentido de d faz com que arestricao xB(i) seja violada. Assim sendo, a direcao d neste caso nao eviavel.
Alexandre Salles da Cunha Metodo Simplex
![Page 9: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/9.jpg)
Exemplo no caso degenerado onde d nao e viavel
Em E (basica nao degenerada), temos como basicas: x2, x4, x5 e nao basicas: x1, x3.Direcao viavel: segmento EF , que consiste em aumentar x1, mantendo x3 em zero.
Em F (basica degenerada), vamos considerar que as variaveis nao basicas sejam x3, x5.Observe que x4 e basica em 0. Direcao basica: segmento FG , correpondendo a aumentarx3 e manter x5 em zero, e nao e viavel.
Alexandre Salles da Cunha Metodo Simplex
![Page 10: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/10.jpg)
Qual o efeito na funcao objetivo de mover ao longo de d
Sendo d a j-esima direcao basica, ao mover no sentido positivo de d ,a taxa de variacao da funcao objetivo e por
∑ni=1
∂f∂xi
di =∑n
i=1 cidi .
Uma vez que dB = −B−1Aj temos que∑n
i=1 cidi = cj − cBB−1Aj ,onde cB = (cB(1), . . . , cB(m)).
◮ A parcela cj e a taxa unitaria de variacao por permitir j aumentar.◮ A parcela −cBB−1Aj e referente a compensacao das mudancas nas
variaveis basicas, necessaria para garantir a viabilidade, Ax = b.
Definicao
Seja x uma solucao basica, B a base associada a x e cB o vetor de custosdas variaveis basicas. Para todo j = 1, . . . , n, definimos o custo reduzidoc j da variavel xj por meio de :
c j = cj − c ′BB−1Aj
Alexandre Salles da Cunha Metodo Simplex
![Page 11: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/11.jpg)
Exemplo
Vamos considerar o seguinte exemplo:
min c1x1 + c2x2 + ccx3 + c4x4
s.t.: x1 + x2 + x3 + x4 = 2
2x1 + 3x3 + 4x4 = 2
x ≥ 0
Fazendo B = [A1 A2], temos uma matriz cujas colunas sao l.i.
Fixando x3 = x4 = 0 e resolvendo o sistema, (x1, x2) = (1, 1).
Assumindo que d seja a direcao basica associada a variavel nao basicax3, temos: dB = −B−1A3 = [−3
212 ]′.
c3 = c3 − 3c1/2 + c2/2
Alexandre Salles da Cunha Metodo Simplex
![Page 12: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/12.jpg)
Custo reduzido para as variaveis basicas
Aplicando a definicao: cB(i) = cB(i) − c ′BB−1AB(i) = cB(i) − c ′BeB(i),onde eB(i) e um vetor m dimensional com todas as entradas nulas,exceto a B(i)-esima entrada que e 1.
Logo, cB(i) = cB(i) − c ′BeB(i) = cB(i) − cB(i) = 0
Alexandre Salles da Cunha Metodo Simplex
![Page 13: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/13.jpg)
Criterio de Otimalidade
Dada nossa interpretacao de custos reduzidos como a taxa de variacao dafuncao objetivo na medida em que movimentamos ao longo de umadirecao, temos o seguinte resultado:
Teorema
Considere uma solucao basica x associada a uma base B. Assuma que cseja o correspondente vetor de custos reduzidos.
1 Se c ≥ 0, entao x e uma solucao otima.
2 Se x e otima e nao degenerada, entao c ≥ 0.
Alexandre Salles da Cunha Metodo Simplex
![Page 14: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/14.jpg)
Prova
Prova
(1):
Vamos assumir c ≥ 0 e que y denote uma solucao viavel qualquerpara o problema, para a qual determinamos uma direcao viaveld = y − x (e viavel por convexidade !).
A viabilidade de x , y implica que Ax = Ay = b e entao Ad = 0.
Entao Ad = 0 = BdB +∑
i∈N Aixi = 0 (N e o conj. dos ındices dasvariaveis nao basicas em x).
Logo dB = −∑
i∈N B−1Aidi
Entao temos:c ′d = c ′BdB +
∑
i∈N cidi =∑
i∈N(ci − c ′BB−1Ai)di =∑
i∈N c idi .
Para qualquer i ∈ N, temos que xi = 0 e entao di = yi − xi ≥ 0.Logo c ′d =
∑
i∈N c idi ≥ 0
Alexandre Salles da Cunha Metodo Simplex
![Page 15: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/15.jpg)
Prova
Prova
(2), por contradicao:
Suponha que x seja uma solucao basica viavel otima, nao degeneradae que exista j : c j < 0.
Entao j necessariamente deve ser ındice de uma variavel nao basica,uma vez que c i = 0,∀i ∈ {B(1), . . . ,B(m)}.
Considere a direcao basica j, d. Esta direcao e necessariamente viaveldado que x e nao degenerada.
Entao existe θ > 0 tal que x + θd e uma solucao viavel. Por outrolado c ′(x + θd) = c ′x + θc ′d < c ′x, contrariando a hipotese de que xe ’otima.
Alexandre Salles da Cunha Metodo Simplex
![Page 16: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/16.jpg)
Observacoes
Uma solucao otima x pode ser tal que o custo reduzido de algumavariavel nao basica e negativo.
De acordo com o teorema para decidir se uma solucao basica viavelnao degenerada x e otima, precisamos verificar os custos reduzidos desuas n − m componentes nao basicas.
No caso de uma solucao basica degenerada, um teste igualmentesimples nao e disponıvel.
Alexandre Salles da Cunha Metodo Simplex
![Page 17: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/17.jpg)
Bases otimas
Definicao
Uma base B e otima se:
1 B−1b ≥ 0 e
2 c ′ = c ′ − c ′BB−1B−1A ≥ 0.
Observe que, diante desta definicao:
Se uma base otima B e encontrada, a solucao basica associada eviavel, satisfaz as condicoes de otimalidade e portanto e otima.
Por outro lado uma solucao basica viavel otima degenerada naonecessariamente garante custos reduzidos nao negativos.
Vale lembrar que mais de uma base podem ser associadas a mesmasolucao basica (no caso degenerado).
Alexandre Salles da Cunha Metodo Simplex
![Page 18: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/18.jpg)
Desenvolvimento do metodo
De inıcio, vamos assumir a hipotese de que todos as solucoes basicasde P = {x ∈ R
n : Ax = b, x ≥ 0} sao nao degeneradas.
Em seguida relaxaremos esta hipotese.
Alexandre Salles da Cunha Metodo Simplex
![Page 19: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/19.jpg)
Desenvolvimento do Metodo
Vamos supor que estejamos em um ponto x , solucao basica viavelnao degenerada de P e que tenhamos avaliado os custos reduzidos deforma que c j ≥ 0 : ∀j 6∈ {B(1), . . . ,B(m)}. Entao, pelo resultadoanterior, concluimos que x resolve o PL.
Caso contrario, existe j 6∈ {B(1), . . . ,B(m)} : c j < 0.
Entao a j−esima direcao basica d , obtida fazendo-se dB = −B−1Aj ,dj = 1 e dk = 0,∀k 6∈ {j ,B(1), . . . ,B(m)} e uma direcao viavel, dereducao de custo.
Movendo ao longo de d , a partir de x , a componente xj torna-sepositiva, as componentes xk : k 6∈ {j ,B(1), . . . ,B(m)} permanecemem 0 e as variaveis basicas sao alteradas.
Uma vez que d e uma direcao de aprimoramento de custos, edesejavel nos mover o quanto pudermos ao longo desta direcao.
Alexandre Salles da Cunha Metodo Simplex
![Page 20: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/20.jpg)
Garantindo a satisfacao das restricoes de nao negatividade
x(θ) = x + θd , θ ≥ 0
O maximo que podemos andar na direcao d e dado porθ∗ = max{θ ≥ 0 : x + θd ∈ P}.
Dado que Ad = 0, Ax(θ) = b e precisamos verificar apenas asrestricoes de nao negatividade.
Se d ≥ 0, x(θ) ≥ 0 e entao θ∗ = ∞.
Caso contrario, existe i ∈ {B(1), . . . ,B(m)} : di < 0. Para garantirxi + θdi ≥ 0 temos que θ ≤ − xi
di.
Entao θ∗ = min{− xi
di: dB(i) < 0}
Observe que θ∗ > 0 como consequencia da nao degeneracao de x .
Alexandre Salles da Cunha Metodo Simplex
![Page 21: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/21.jpg)
O novo ponto obtido
Assumindo que θ∗ e finito, y = x(θ∗) = x + θ∗d .
Entao:
yj = xj + θ∗ = −xB(l)
dB(l), onde l ∈ {B(1), . . . ,B(m)} denota o ındice da
variavel basica que definiu θ∗.
Todas as componentes basicas de x , pelo modo como θ∗ e definidocontinuam nao negativas.
Em particular, para l temos:
yB(l) = xB(l) + θdB(l) = xB(l) −xB(l)
dB(l)dB(l) = 0
o que sugere que a coluna Aj substitua a coluna AB(l) na base, umavez que houve uma troca das restricoes de nao negatividade queficaram justas.
Alexandre Salles da Cunha Metodo Simplex
![Page 22: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/22.jpg)
Exemplo - continuacao
Considerando a solucao basica x = (1, 1, 0, 0) e lembrando quec3 = −3c1 + c2
2 + c3.
Se c = (2, 0, 0, 0) temos que c3 = −3. A correspondente direcaobasica e (−3
2 , 12 , 1, 0).
Considerando pontos da forma x + θd , θ > 0, a unica componente dex que cai e x1 (note que d1 < 0) e portanto θ∗ = − x1
d1= 2
3 .
O novo ponto obtivo e y = x + 23d = (0, 4
3 , 23 , 0).
Observe que as novas colunas associadas as variaveis basicas (x2, x3)sao l.i..
Alexandre Salles da Cunha Metodo Simplex
![Page 23: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/23.jpg)
A nova base
A nova base B e dada por:
B = [AB(1), . . . ,AB(l−1),AB(j),AB(l+1), . . . ,AB(m)]
Equivalentemente, o novo conjunto de variaveis basicas e
{B(1), . . . ,B(l − 1),B(j),B(l + 1), . . . ,B(m)}
Mais formalmente:
Teorema1 As colunas AB(i) : i 6= l e Aj sao linearmente independentes e, assim,
B e uma matriz basica.
2 O vetor y = x + θ∗d e a solucao basica associada a B.
Alexandre Salles da Cunha Metodo Simplex
![Page 24: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/24.jpg)
Prova
Prova
(1): por contradicao:
Vamos supor que os vetores AB(i) sejam l.d. Entao, existem
coeficientes λ1, . . . , λm, nao todos nulos, tais que∑m
i=1 λiAB(i) = 0.
Multiplicando por B−1 temos∑m
i=1 λiB−1AB(i) = 0 e os vetores
B−1AB(i) tambem sao l.d. Vamos mostrar que este nao e o caso.
Observe que B−1B = I . Logo B−1AB(i) = ei , i 6= l (ei denota o vetorde zeros, exceto na i esima entrada, que e 1). Todos os vetoresB−1AB(i) possuem um 0 na l−esima entrada. Logo, B−1AB(i), i 6= lsao l.i..
Por outro lado B−1AB(l) = B−1Aj = −dB .
Por definicao, dB(l) < 0. Logo B−1Aj e B−1AB(i), i 6= l sao l.i..
Logo, B e uma base.
Alexandre Salles da Cunha Metodo Simplex
![Page 25: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/25.jpg)
Prova
Prova
(2):
Temos que y ≥ 0,Ay = b.
Alem disto yi = 0,∀i 6∈ {B(i), . . . ,B(i)}.
Acabamos de mostrar que AB(i), . . . ,AB(i) sao l.i..
Portanto, segue que y e uma solucao basica associada a B
Alexandre Salles da Cunha Metodo Simplex
![Page 26: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/26.jpg)
Observacoes
Uma vez que θ∗ > 0, segue que y e uma solucao basica distinta de x ,uma vez que d e uma direcao de reducao de custos e entao c ′y < c ′x .
Em parte, cumprimos nosso proposito inicial de mover para umasolucao basica adjacente, de menor custo.
Vamos enunciar uma iteracao tıpica do Metodo Simplex, definindoum vetor u = (u1, . . . , um), de forma que u = −dB = B−1Aj , onde Aj
e a coluna que entra na base. Ou seja, ui = −dB(i) : i = 1, . . . ,m.
Alexandre Salles da Cunha Metodo Simplex
![Page 27: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/27.jpg)
Metodo Simplex: Iteracao Tıpica
1 Inicie a iteracao com as colunas basicas B(1), . . . ,B(m) e a solucaobasica viavel associada x . Seja N o conjunto dos ındices das variaveisnao basicas.
2 Calcule os custos reduzidos c j = cj − c ′BB−1Aj ,∀j ∈ N. Se c ≥ 0,pare, a solucao x e otima. Caso contrario, escolha j ∈ N : c j < 0.
3 Calcule u = B−1Aj . Se u ≤ 0, temos que θ∗ = ∞ e o custo otimo e−∞. Pare, o problema e ilimitado.
4 Se alguma componente de u e positiva, faca θ∗ = mini∈1,...,m:ui>0xB(i)
ui.
Seja l tal que θ∗ =xB(l)
ul.
5 Forme uma nova base substituindo AB(l) por Aj . Denote por y a novasolucao basica viavel. Entao yj = θ∗ e yB(i) = xB(i) − θ∗ui , i 6 l .
Alexandre Salles da Cunha Metodo Simplex
![Page 28: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/28.jpg)
Na ausencia de degeneracao, O Metodo Simplex converge
Teorema
Assuma que o conjunto de solucoes viaveis do PL e nao vazio e que todasolucao basica e nao degenerada. Entao, o Metodo Simplex termina aposum numero finito de iteracoes. Ao final, temos duas possibilidades:
1 Dispomos de uma base otima B e a correspondente solucao basicaotima.
2 Encontramos um vetor d : Ad = 0, d ≥ 0 e c ′d < 0. Portanto o custootimo e −∞.
Alexandre Salles da Cunha Metodo Simplex
![Page 29: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/29.jpg)
Prova
Prova
Se o algoritmo termina no passo 2, as condicoes de otimalidadepropostas previamente foram satisfeitas e B e uma base otima.
Se o algoritmo termina no passo 3, estamos em uma solucao basica xe descobrimos uma variavel nao basica xj tal que c j < 0. A j−esimadirecao basica j satisfaz Ad = 0, d ≥ 0. Em particular temos quex + θd ∈ P para θ tao grande quanto queiramos. Uma vez quec ′d = c j , o custo pode ser feito tao negativo quanto queiramos.
Em cada iteracao do algoritmo, nos movemos uma quantidade θ∗ > 0ao longo de uma direcao basica d satisfazendo c ′d < 0. Assim sendo,a cada iteracao o custo diminui e portanto nao visitamos a mesmasolucao basica mais de uma vez.
Como o numero de solucoes basicas e finito, o algoritmo entaotermina.
Alexandre Salles da Cunha Metodo Simplex
![Page 30: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/30.jpg)
Metodo Simplex para problemas degenerados
Vamos considerar a partir de agora, como se comporta o algoritmodescrito anteriormente, diante da degeneracao:
1 Se a solucao basica corrente x for degenerada, θ∗ pode ser nulo, casoxB(l) = 0 e dB(l) < 0. Por este motivo, a nova solucao obtida y e
identica a x . Ainda assim, podemos definir uma nova matriz B com aentrada da coluna Aj e a saıda de AB(l) de forma que B sera umabase.
2 Mesmo se θ∗ > 0, pode acontecer de mais de uma variavel basica setornar zero no novo ponto x + θ∗d . Uma vez que apenas uma destasvariaveis basicas que se tornou nula saira da base para a entrada dacoluna Aj , a nova solucao encontrada y = x + θ∗d sera degenerada.
Alexandre Salles da Cunha Metodo Simplex
![Page 31: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/31.jpg)
Efeito da degeneracao
As mudancas de base associadas a mesma solucao basica podem, emalguns casos, nao ser inuteis, levando a descobrir uma direcao basicade reducao de custo.
Por outro lado, uma sequencia de mudancas de base associadas aomesmo ponto x pode levar a repeticao das colunas associadas arepresentacao da base, ocasionando a ciclagem.
Para problemas altamente estruturados (fluxo em redes, etc) apossibilidade nao e remota.
A ciclagem pode ser evitada atraves do uso de regras adequadas dequais variaveis entrarao e/ou sairao da base.
Alexandre Salles da Cunha Metodo Simplex
![Page 32: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/32.jpg)
Ilustracao dos dois casos em uma solucao degenerada
Neste exemplo temos n − m = 2. Vale observar a solucao degenerada x .
Alexandre Salles da Cunha Metodo Simplex
![Page 33: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/33.jpg)
O Metodo Simplex pode nao terminar ?
Quadro 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 − 24x4
Quadro 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 Metodo Simplex
![Page 34: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/34.jpg)
O Metodo Simplex pode nao terminar ?
Quadro 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.25x6
Quadro 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 Metodo Simplex
![Page 35: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/35.jpg)
O Metodo Simplex pode nao terminar ?
Quadro 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 − 9x2
Quadro 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 Metodo Simplex
![Page 36: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/36.jpg)
O Metodo Simplex pode nao terminar ? Sim, caso cicle.
O proximo quadro e igual ao quadro inicial !
Quadro 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 Metodo Simplex
![Page 37: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/37.jpg)
Possibilidades para implementar o pivoteamento
Ate o momento, nao particularizamos regra alguma para escolher asregras de pivoteamento, isto e, escolher qual variavel entra e sai dabase. Em particular, na descricao que apresentamos do Metodo Simplex,temos flexibilidade quanto a escolha de:
1 Qual coluna nao basica com custo reduzido e negativo deve ser eleitapara entrar na base;
2 Diante de mais de uma variavel que definam θ∗, qual escolher paradeixar a base.
Alexandre Salles da Cunha Metodo Simplex
![Page 38: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/38.jpg)
Algumas provaveis candidatas a regras de pivotemento :
Escolher para entrar na base, a coluna nao basica Aj que possui ocusto reduzido c j mais negativo.
Escoher para entrar na base, a coluna nao basica Aj que promova omaior reducao na funcao objetivo, isto e θ∗c j . Esta regra podeacelerar a queda da funcao objetivo, mais paga-se maior precocomputacional, para se avaliar o θ∗ associado a entrada de cadacoluna que possua c j . A experiencia computacional existe sugere queo tempo global de cpu nao decresce com a adocao desta estrategia.
Mesmo a primeira estrategia acima pode ser muito cara paraproblemas de larga escala (requer que todas as colunas tenham seuscustos reduzidos avaliados). Assim sendo, uma regra simples consistena regra de escolher a coluna com custo reduzido negativo, de menorındice.
Alexandre Salles da Cunha Metodo Simplex
![Page 39: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/39.jpg)
Implementacoes do Simplex
Os vetores B−1Aj sao de fundamental importancia no algoritmo, umavez que com estas informacoes podemos obter:
◮ Custos reduzidos c j = cj − c ′
BB−1Aj
◮ A direcao de busca d◮ O valor de θ∗
Por este motivo, a diferenca entre as implementacoes alternativas doMetodo Simplex residem em como esta informacao e calculada equais informacoes sao preservadas de iteracao para iteracao.
Dado que B e uma matriz m × m temos:◮ Custo de resolver Bx = b: O(m3)◮ Custo de efetuar a mutiplicacao Bb: O(m2)◮ Custo de calcular o produto interno de dois vetores m dimensionais:
O(m).
Alexandre Salles da Cunha Metodo Simplex
![Page 40: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/40.jpg)
Implmentacao Inocente
1 Nenhuma informacao adicional sera transportada de iteracao paraiteracao no metodo.
2 Em cada iteracao tıpica, conhecemos os ındices B(1), . . . ,B(m) dasvariaveis basicas.
3 Montamos a matriz B e resolvemos o sistema linear p′B = c ′B .
4 O custo reduzido para qualquer coluna j e obtido via c j = cj − p′Aj .
5 Dependendo da regra de pivoteamento adotado, podemos evitarcalcular todos os custos reduzidos.
6 Uma vez que escolhemos a coluna Aj para entrar na base, resolvemosBu = Aj (ou u = B−1Aj).
7 A partir de entao, podemos calcular θ∗ e definir qual variavel saira dabase.
Alexandre Salles da Cunha Metodo Simplex
![Page 41: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/41.jpg)
Implementacao inocente - complexidade computacional
Resolver os sistemas lineares (p′B = c ′B e u = B−1Aj): O(m3).Dependendo da estrutura da matriz B , este custo pode ser reduzidosensivelmente (exemplo: Problemas de Fluxo em Redes)
Calculo do custo reduzido para todas as colunas: O(mn)
Custo total por iteracao: O(nm + m3).
Veremos como fazer a iteracao a um custo de O(m2 + mn)
Alexandre Salles da Cunha Metodo Simplex
![Page 42: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/42.jpg)
Simplex Revisado
Boa parte do custo computacional por iteracao e relacionado aresolucao de dois sistemas lineares.
Neste metodo, a matriz B−1 e explicitamente mantida em cadaiteracao e os vetores c ′BB−1 e B−1Aj sa determinados viamultiplicacao matricial.
Para ser eficiente, o metodo requer um esquema eficiente deatualizacao de B−1 quando implementarmos uma operacao depivoteamento.
Alexandre Salles da Cunha Metodo Simplex
![Page 43: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/43.jpg)
Simplex Revisado
Base no inıcio da iteracao: B = [AB(1), . . . ,AB(m)]
Base ao fim da iteracao:B = [AB(1), . . . ,AB(l−1),AB(j),AB(l+1), . . . ,AB(m)]
Todas, exceto uma coluna de B e B sao compartilhadas.
Em funcao disto, e razoavel esperar que B−1 contenha informacao
que possa ser usada na determinacao de B−1
.
Alexandre Salles da Cunha Metodo Simplex
![Page 44: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/44.jpg)
Como aproveitar informacoes de B−1 para avaliar B−1
Definicao
Dada uma matriz, nao necessariamente quadrada, a operacao de adicionarum multiplo de uma linha a mesma linha ou a outra linha da matriz echamada de operacao linha elementar (nao muda as informacoes dossistemas lineares representados pela matriz).
Exemplo
Digamos que queiramos multiplicar a terceira linha da matriz C abaixo por2 para somar a primeira linha da matriz. Isto equivale a multiplicar C pelamatriz Q dada abaixo.
C =
1 23 45 6
Q =
1 0 20 1 00 0 1
QC =
11 143 45 6
Alexandre Salles da Cunha Metodo Simplex
![Page 45: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/45.jpg)
Generalizando este exemplo
Multiplicar a j−esima linha de uma matriz por β e adicionar esteproduto a i−esima linha da matriz, equivale a pre mutiplicar a matrizpor Q = I + Dij , onde Dij e uma matriz de zeros, exceto em suaentrada na i−esima linha e j−esima coluna que e β.
Observe que a matriz Q possui determinante 1 e entao admite inversa.
Suponha que queiramos fazer uma sequencia de K operacoes linhaelementares, cada qual correspondento a pre-multiplicacao por umamatriz Qk correspondente. Esta sequencia de operacoes consiste empre multiplicar a matriz sobre a qual sao feitas as operacoes por:QKQK−1 . . . Q2Q1.
Alexandre Salles da Cunha Metodo Simplex
![Page 46: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/46.jpg)
Aplicando esta ideia no Metodo Simplex
Uma vez que B−1B = I , temos que B−1AB(i) = ei , onde ei e umvetor de zeros exceto pela i−esima entrada que e 1.
Usando esta observacao temos B−1B =
1 u1
. . ....ul...
. . .
um 1
Para transformar a matriz acima na identidade:◮ Para cada i 6= l , adicionamos o produto da l− esima linha (linha pivot)
por −ui
ule somamos a i− esima linha. Observe que ul 6= 0 e entao esta
operacao substitui ui por 0 na correspondente i−esima linha.◮ Dividimos a l− esima linha por ul .
Seja Q o produto destas m operacoes linha elementares. Temos entao
que QB−1B = I , logo B−1
= QB−1.
Alexandre Salles da Cunha Metodo Simplex
![Page 47: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/47.jpg)
Exemplo
Vamos considerar l = 3 (a terceira coluna de B sera alterada paracompor B) e
B−1 =
1 2 3−2 3 14 −3 −2
u =
−422
Entao temos: Q =
1 0 20 1 −1
0 0 12
B−1
=
9 −4 −1−6 6 3
2 −1.5 −1
Alexandre Salles da Cunha Metodo Simplex
![Page 48: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/48.jpg)
Metodo Simplex Revisado
Vamos adicionar o seguinte passo ao final da quinta operacao na iteracaotıpica:
Forme a matriz m × (m + 1) dada por: [B−1 | u].Faca as operacoes linha elementares necessarias para transformar aultima coluna desta matriz no vetor unitario el .
As primeiras m colunas da matriz resultante fornece B−1
.
Observe que recalcular a inversa da base agora custa O(m2). Desta forma,apenas na primeira inversao da base, pagamos o O(m3). Desta forma,reduzimos o custo de cada iteracao para O(nm + m2)
Alexandre Salles da Cunha Metodo Simplex
![Page 49: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/49.jpg)
Regras anti-ciclagem
Regra lexicografica, adequada a implementacao da versao Full tableimplementation que, por ter o comportamento assintotico pior que aversao do Simplex Revisado, nao sera discutida.
Regra de Bland - compatıvel com a implementacao do SimplexRevisado.
Alexandre Salles da Cunha Metodo Simplex
![Page 50: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/50.jpg)
Regra de Bland
Pivoteamento de Bland1 Encontre o menor ındice j para o qual o custo reduzido c j e negativo.
2 Dentre as variaveis basicas xi que se anularem primeiro com oincremento da variavel xj (para as quais houver empate nadeterminacao de θ∗), escolha aquela com o menor ındice i .
Observacoes:
Esta regra nao nos obriga a calcular todos os custos reduzidos.
E compatvel com a implementacao do Simplex Revisado, na qual oscustos reduzidos sao calculados na ordem natural das variaveis.
Diante desta regra e provado que nao pode haver ciclagem e oMetodo Simplex converge apos um numerol finito de mudancas debase.
Alexandre Salles da Cunha Metodo Simplex
![Page 51: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/51.jpg)
Encontrando uma base inicial viavel
No Metodo Simplex, assumimos dispor de uma solucao basica viavelinicial. Nao descrevemos ainda como obter esta solucao.
Em alguns casos, encontrar esta solucao e trivial. Exemplo:P ′ = {x ∈ R
n+ : Ax ≤ b} e o vetor b ≥ 0. Neste caso, introduzindo as
variaveis de folga temos P = {(x , s) ∈ (Rn+, Rm
+) : Ax + Is = b} e ovetor (x , s) = (0, b) e uma solucao basica viavel.
De um modo geral, encontrar esta solucao nao e tao trivial,requerendo a solucao de um problema linear auxiliar (Fase 1).
Alexandre Salles da Cunha Metodo Simplex
![Page 52: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/52.jpg)
Construcao de um problema auxiliar
Problema Original
min c ′x
Ax = b
x ≥ 0
Assumimos sem perda de generalidade que b ≥ 0 (caso contrario,multiplicamos alguma linha do sistema linear por −1)
Alexandre Salles da Cunha Metodo Simplex
![Page 53: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/53.jpg)
Construcao de um problema auxiliar - Fase 1
Problema Auxiliar (PA)
minm
∑
i=1
yi
Ax + y = b
x ≥ 0
y ≥ 0
Introduzimos as variaveis artificiais y ∈ Rm+.
Uma solucao basica inicial para o Prob. Auxiliar e dada por(x , y) = (0, b).
Resolvemos PA. Se a funcao objetivo otima for 0 sabemos que hasolucao viavel para o problem original. Caso contrario, o problemaoriginal e inviavel.
Como obter a solucao basica inicial para o problema original ?
Alexandre Salles da Cunha Metodo Simplex
![Page 54: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/54.jpg)
Obtendo uma solucao viavel inicial a partir de PA
Para iniciar o Metodo Simplex, necessitamos de uma solucao basica iniciale a matriz basica associada. Vamos assumir que no otimo de PA tenhamos∑m
j=1 yj = 0 (prob. original e viavel).
Analisando a solucao do PA:
1 Se ao final da resolucao de PA as colunas basicas na solucao otimaforem exclusivamente as variaveis x , basta tomarmos esta solucaocomo uma sol. basica viavel inicial (e as correspondentes colunascompondo a base) para iniciar o problema original.
2 Se existirem variaveis yj basicas (necessariamente degeneradas) nasolucao otima de PA, devemos fazer operacoes de pivoteamentoforcado para remove-las da base.
Alexandre Salles da Cunha Metodo Simplex
![Page 55: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/55.jpg)
Eliminando as variaveis y para fora da base
Vamos supor (como de costume) que posto(A) = m.
Vamos assumir que k < m colunas de A aparecem na base otima dePA. Os ındices das variaveis basicas associadas a estas colunas saoB1, . . . ,Bk
Vale observar que as colunas AB(1), . . . ,AB(k) sao linearmenteindependentes, uma vez que estao na base.
Como a matriz A ∈ Rm×n possui posto m, suas colunas geram o
espaco Rm. Logo, e possıvel escolher outras m − k colunas de A, que
sejam linearmente independentes a AB(1), . . . ,AB(k).
Vamos identificar estas colunas, eliminando as colunas associadas a yda base.
Alexandre Salles da Cunha Metodo Simplex
![Page 56: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/56.jpg)
Eliminando as variaveis artificiais
Vamos supor que a l−esima (l > k) variavel basica seja artificial.Dentre as variaveis xj : j 6∈ {B(1), . . . ,B(m)}, procuramos umacoluna j tal que B−1Aj 6= 0.
Claramente Aj e l.i. com AB(1), . . . ,AB(k) (por que ?)
Entao fazemos um pivoteamento forcado, no qual trazemos a colunaAj para a base e eliminados a coluna da variavel artificial da base.
Repetimos o processo enquanto houver colunas basicas associadas avariaveis artificiais.
Alexandre Salles da Cunha Metodo Simplex
![Page 57: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/57.jpg)
Complexidade computacional do metodo simplex
A complexidade do metodo Simplex depende:
1 da complexidade computacional em cada iteracao (O(nm), porexemplo, no caso do Simplex Revisado)
2 do numero de iteracoes, ou operacoes de pivoteamento.
Na pratica: ao longo dos anos observou-se que o metodonormalmente executa O(m) operacoes de pivoteamento na media.
Pior caso: esta observacao que ocorre na pratica nao e verdadeirapara qualquer Programa Linear e qualquer regra de pivoteamento. Haexemplos de problemas nao degenerados nos quais o metodo percorretodos os vertices do poliedro ate encontrar a solucao otima.
Alexandre Salles da Cunha Metodo Simplex
![Page 58: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/58.jpg)
Complexidade no pior caso
Vamos considerar o problema de minimizar −xn sobre o cuboP = {x ∈ R
n : 0 ≤ xi ≤ 1, i = 1 dots, n}. Estes cubo possui 2n
vertices, metade dos quais possuem custo 0 e a outra metade custo−1. Assim sendo, a funcao objetivo nao pode decrescermonotonicamente ao longo das iteracoes do Simplex.
Por este motivo, vamos perturbar o cubo, mantendo o numero devertices, impondo as seguintes restricoes, para ǫ ∈ (0, 1
2)
ǫ ≤ x1 ≤ 1,
ǫxi−1 ≤ xi ≤ 1 − xi−1, i = 2, . . . , n
de forma a criar uma sequencia de vertices adjacentes para os quais afuncao objetivo seja reduzida quando nos movemos de um vertice para ooutro.
Alexandre Salles da Cunha Metodo Simplex
![Page 59: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/59.jpg)
Criamos um caminho que percorre todos os vertices
Existe uma regra de pivoteamento que faz o metodo percorrer todos osvertices (ver a prova em Papadimitrou e Steiglitz, pp. 166-170).
min −xn
ǫ ≤ x1 ≤ 1,
ǫxi−1 ≤ xi ≤ 1 − xi−1, i = 2, . . . , n
Alexandre Salles da Cunha Metodo Simplex
![Page 60: [Robson] 3. Método Simplex](https://reader034.fdocument.pub/reader034/viewer/2022052217/558b80aad8b42a29228b4604/html5/thumbnails/60.jpg)
Existe regra de pivoteamento imune a esta patologia ?
Questao em aberto
Para varias regras populares de pivotemento, ha exemplos como oindicado anteriormente, que fazem o metodo percorrer todos osvertices.
Entretanto, estes exemplos nao excluem a possibilidade de existir umaregra de pivotemento que nao apresente o comportamento de piorcaso exponencial.
Esta e uma das questoes mais importantes em Teoria de ProgramacaoLinear, ainda em aberto.
O fato e que nao se conhece uma regra de pivoteamento imune a estapatologia.
O Problema de Programacao Linear e polinomialmente soluvel(Algoritmo do Elipsoide).
Alexandre Salles da Cunha Metodo Simplex