SlideShare uma empresa Scribd logo
1 de 60
Baixar para ler offline
M´todo Simplex
            e

       Alexandre Salles da Cunha


       DCC-UFMG, Mar¸o 2010
                    c




Alexandre Salles da Cunha   M´todo Simplex
                             e
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
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
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
Dire¸˜o vi´vel
    ca a

Seja x um ponto em um poliedro P. Um vetor d ∈ Rn ´ dito ser uma
                                                         e
dire¸˜o vi´vel em x, se existir um escalar positivo θ para o qual
    ca    a
x + θd ∈ P.




                  Alexandre Salles da Cunha   M´todo Simplex
                                               e
Obtendo uma dire¸˜o vi´vel conveniente
                ca a


Filosofia 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
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 a
Vamos chamar a dire¸˜o b´sica constru´ acima como a j-´sima dire¸˜o
                   ca a              ıda              e         ca
b´sica
 a

                    Alexandre Salles da Cunha   M´todo Simplex
                                                 e
E a garantia das restri¸˜es de n˜o negatividade
                       co       a


Temos 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
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
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             a

Defini¸˜o
     ca
Seja x uma solu¸˜o b´sica, B a base associada a x e cB o vetor de custos
                  ca a
das vari´veis b´sicas. Para todo j = 1, . . . , n, definimos o custo reduzido
         a      a
c j da vari´vel xj por meio de :
           a

                                 c j = cj − cB B −1 Aj
                                             ′



                     Alexandre Salles da Cunha   M´todo Simplex
                                                  e
Exemplo

Vamos 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
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
Crit´rio de Otimalidade
    e


Dada nossa interpreta¸˜o de custos reduzidos como a taxa de varia¸˜o da
                     ca                                          ca
fun¸ao objetivo na medida em que movimentamos ao longo de uma
    c˜
dire¸˜o, temos o seguinte resultado:
    ca


Teorema
Considere uma solu¸˜o b´sica x associada a uma base B. Assuma que c
                   ca a
seja 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
Prova

Prova
(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
Prova


Prova
(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
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
Bases ´timas
      o


Defini¸˜o
     ca
Uma 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
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
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
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
O novo ponto obtido

Assumindo que θ ∗ ´ finito, y = x(θ ∗ ) = x + θ ∗ d.
                  e

Ent˜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
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
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
Prova

Prova
(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
Prova




Prova
(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
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
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
Na ausˆncia de degenera¸˜o, O M´todo Simplex converge
      e                ca      e



Teorema
Assuma que o conjunto de solu¸˜es vi´veis do PL ´ n˜o vazio e que toda
                              co    a           e a
solu¸˜o b´sica ´ n˜o degenerada. Ent˜o, o M´todo Simplex termina ap´s
    ca a       e a                  a       e                       o
um 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
Prova

Prova
   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
M´todo Simplex para problemas degenerados
 e

Vamos considerar a partir de agora, como se comporta o algoritmo
descrito 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
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
Ilustra¸˜o dos dois casos em uma solu¸˜o degenerada
       ca                            ca
Neste exemplo temos n − m = 2. Vale observar a solu¸˜o degenerada x.
                                                   ca




                  Alexandre Salles da Cunha   M´todo Simplex
                                               e
O M´todo Simplex pode n˜o terminar ?
   e                   a

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    M´todo Simplex
                                                   e
O M´todo Simplex pode n˜o terminar ?
   e                   a

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     M´todo Simplex
                                                      e
O M´todo Simplex pode n˜o terminar ?
   e                   a

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     M´todo Simplex
                                                       e
O M´todo Simplex pode n˜o terminar ? Sim, caso cicle.
   e                   a



O pr´ximo quadro ´ igual ao quadro inicial !
    o            e

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    M´todo Simplex
                                                  e
Possibilidades para implementar o pivoteamento



At´ o momento, n˜o particularizamos regra alguma para escolher as
  e               a
regras de pivoteamento, isto ´, escolher qual vari´vel entra e sai da
                                e                 a
base. Em particular, na descri¸˜o que apresentamos do M´todo Simplex,
                              ca                         e
temos 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
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
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
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
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
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
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
−1
Como aproveitar informa¸˜es de B −1 para avaliar B
                       co

Defini¸˜o
     ca
Dada 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                                      e
chamada de opera¸˜o linha elementar (n˜o muda as informa¸˜es dos
                   ca                   a                  co
sistemas lineares representados pela matriz).

Exemplo
Digamos que queiramos multiplicar a terceira linha da matriz C abaixo por
2 para somar ` primeira linha da matriz. Isto equivale a multiplicar C pela
             a
matriz 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
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
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
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
M´todo Simplex Revisado
 e


Vamos adicionar o seguinte passo ao final da quinta opera¸˜o na itera¸˜o
                                                        ca          ca
t´
 ı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,
                         a
reduzimos o custo de cada itera¸˜o para O(nm + m2 )
                                ca



                   Alexandre Salles da Cunha   M´todo Simplex
                                                e
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
Regra de Bland

Pivoteamento 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
Encontrando uma base inicial vi´vel
                               a


No M´todo Simplex, assumimos dispor de uma solu¸˜o b´sica vi´vel
       e                                           ca a     a
inicial. 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
Constru¸˜o de um problema auxiliar
       ca



Problema Original

                              min               c ′x
                                        Ax = b
                                           x ≥0

Assumimos sem perda de generalidade que b ≥ 0 (caso contr´rio,
                                                         a
multiplicamos alguma linha do sistema linear por −1)




                    Alexandre Salles da Cunha      M´todo Simplex
                                                    e
Constru¸˜o de um problema auxiliar - Fase 1
       ca
Problema 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
Obtendo uma solu¸˜o vi´vel inicial a partir de PA
                ca a

Para iniciar o M´todo Simplex, necessitamos de uma solu¸˜o b´sica inicial
                 e                                     ca a
e 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 a


Analisando 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
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
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
Complexidade computacional do m´todo simplex
                               e


A 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
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, . . . , n

de forma a criar uma sequˆncia de v´rtices adjacentes para os quais a
                          e        e
fun¸ao objetivo seja reduzida quando nos movemos de um v´rtice para o
   c˜                                                      e
outro.

                  Alexandre Salles da Cunha   M´todo Simplex
                                               e
Criamos um caminho que percorre todos os v´rtices
                                          e
Existe uma regra de pivoteamento que faz o m´todo percorrer todos os
                                               e
v´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
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

Mais conteúdo relacionado

Mais procurados

Mais procurados (19)

Redes Neurais: Estimação de Densidades
Redes Neurais: Estimação de DensidadesRedes Neurais: Estimação de Densidades
Redes Neurais: Estimação de Densidades
 
Medida de risco por Teoria de Valores Extremos
Medida de risco por Teoria de Valores ExtremosMedida de risco por Teoria de Valores Extremos
Medida de risco por Teoria de Valores Extremos
 
Redes Neurais: Técnicas Bayesianas
Redes Neurais: Técnicas BayesianasRedes Neurais: Técnicas Bayesianas
Redes Neurais: Técnicas Bayesianas
 
V@R Não-Linear
V@R Não-LinearV@R Não-Linear
V@R Não-Linear
 
Resumo MD
Resumo MDResumo MD
Resumo MD
 
Redes Neurais: classificação e regressão
Redes Neurais: classificação e regressãoRedes Neurais: classificação e regressão
Redes Neurais: classificação e regressão
 
Redes Neurais: Processos Gaussianos
Redes Neurais: Processos GaussianosRedes Neurais: Processos Gaussianos
Redes Neurais: Processos Gaussianos
 
Tarefa7
Tarefa7Tarefa7
Tarefa7
 
Redes neurais com matlab
Redes neurais com matlabRedes neurais com matlab
Redes neurais com matlab
 
Calculo1 aula08
Calculo1 aula08Calculo1 aula08
Calculo1 aula08
 
Tarefa7
Tarefa7Tarefa7
Tarefa7
 
Limites2
Limites2Limites2
Limites2
 
Risco de Crédito 3: KMV
Risco de Crédito 3: KMVRisco de Crédito 3: KMV
Risco de Crédito 3: KMV
 
Resumo - Álgebra Linear
Resumo - Álgebra LinearResumo - Álgebra Linear
Resumo - Álgebra Linear
 
Tarefa7
Tarefa7Tarefa7
Tarefa7
 
Mat limites 001
Mat limites  001Mat limites  001
Mat limites 001
 
Ex algebra (8)
Ex algebra  (8)Ex algebra  (8)
Ex algebra (8)
 
Calculo1 aula04
Calculo1 aula04Calculo1 aula04
Calculo1 aula04
 
Geracao colunas
Geracao colunasGeracao colunas
Geracao colunas
 

Semelhante a [Robson] 3. Método Simplex

ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - FATORAR! PRIMALIDAD...
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - FATORAR! PRIMALIDAD...ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - FATORAR! PRIMALIDAD...
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - FATORAR! PRIMALIDAD...Antonio Claudio Lage Buffara
 
Sucessoes e series com res
Sucessoes e series com resSucessoes e series com res
Sucessoes e series com resMaths Tutoring
 
Introducaoanalise
IntroducaoanaliseIntroducaoanalise
IntroducaoanaliseJosé Mota
 
Intro teoria dos numerros cap6
Intro teoria dos numerros cap6Intro teoria dos numerros cap6
Intro teoria dos numerros cap6Paulo Martins
 
Intro teoria dos numerros cap7
Intro teoria dos numerros cap7Intro teoria dos numerros cap7
Intro teoria dos numerros cap7Paulo Martins
 
Sistemas lineares
Sistemas linearesSistemas lineares
Sistemas linearescon_seguir
 
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - COMBINATÓRIA
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - COMBINATÓRIAANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - COMBINATÓRIA
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - COMBINATÓRIAAntonio Claudio Lage Buffara
 
EquaçõEs De 2º Grau,Sistema E Problema Autor Antonio Carlos
EquaçõEs De 2º Grau,Sistema E Problema Autor Antonio CarlosEquaçõEs De 2º Grau,Sistema E Problema Autor Antonio Carlos
EquaçõEs De 2º Grau,Sistema E Problema Autor Antonio CarlosAntonio Carneiro
 
Mat ii aula 7 - noções de lógica - quantificadores
Mat ii   aula 7 - noções de lógica - quantificadoresMat ii   aula 7 - noções de lógica - quantificadores
Mat ii aula 7 - noções de lógica - quantificadoresJD Dantas
 
Resumo dos testes de convergência
Resumo dos testes de convergênciaResumo dos testes de convergência
Resumo dos testes de convergênciaPedro Neto
 

Semelhante a [Robson] 3. Método Simplex (20)

ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - FATORAR! PRIMALIDAD...
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - FATORAR! PRIMALIDAD...ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - FATORAR! PRIMALIDAD...
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - FATORAR! PRIMALIDAD...
 
Sucessoes e series com res
Sucessoes e series com resSucessoes e series com res
Sucessoes e series com res
 
Limites infinitos
Limites infinitosLimites infinitos
Limites infinitos
 
Introducaoanalise
IntroducaoanaliseIntroducaoanalise
Introducaoanalise
 
EquaçAo Do 2º Grau
EquaçAo Do 2º GrauEquaçAo Do 2º Grau
EquaçAo Do 2º Grau
 
Mat74a
Mat74aMat74a
Mat74a
 
Sequencia
SequenciaSequencia
Sequencia
 
Intro teoria dos numerros cap6
Intro teoria dos numerros cap6Intro teoria dos numerros cap6
Intro teoria dos numerros cap6
 
Intro teoria dos numerros cap7
Intro teoria dos numerros cap7Intro teoria dos numerros cap7
Intro teoria dos numerros cap7
 
Equaçoes literais
Equaçoes literaisEquaçoes literais
Equaçoes literais
 
Sistemas lineares
Sistemas linearesSistemas lineares
Sistemas lineares
 
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - COMBINATÓRIA
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - COMBINATÓRIAANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - COMBINATÓRIA
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - COMBINATÓRIA
 
Calculo1 aula04
Calculo1 aula04Calculo1 aula04
Calculo1 aula04
 
Calculo1 aula04
Calculo1 aula04Calculo1 aula04
Calculo1 aula04
 
euclides primos
euclides primoseuclides primos
euclides primos
 
Lista 0 - Bases Matemáticas
Lista 0 - Bases MatemáticasLista 0 - Bases Matemáticas
Lista 0 - Bases Matemáticas
 
EquaçõEs De 2º Grau,Sistema E Problema Autor Antonio Carlos
EquaçõEs De 2º Grau,Sistema E Problema Autor Antonio CarlosEquaçõEs De 2º Grau,Sistema E Problema Autor Antonio Carlos
EquaçõEs De 2º Grau,Sistema E Problema Autor Antonio Carlos
 
Mat ii aula 7 - noções de lógica - quantificadores
Mat ii   aula 7 - noções de lógica - quantificadoresMat ii   aula 7 - noções de lógica - quantificadores
Mat ii aula 7 - noções de lógica - quantificadores
 
Resumo dos testes de convergência
Resumo dos testes de convergênciaResumo dos testes de convergência
Resumo dos testes de convergência
 
Cálculo numérico
Cálculo numéricoCálculo numérico
Cálculo numérico
 

[Robson] 3. Método Simplex

  • 1. M´todo Simplex e Alexandre Salles da Cunha DCC-UFMG, Mar¸o 2010 c Alexandre 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 a Seja x um ponto em um poliedro P. Um vetor d ∈ Rn ´ dito ser uma e dire¸˜o vi´vel em x, se existir um escalar positivo θ para o qual ca a x + θd ∈ P. Alexandre Salles da Cunha M´todo Simplex e
  • 6. Obtendo uma dire¸˜o vi´vel conveniente ca a Filosofia 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 a Vamos chamar a dire¸˜o b´sica constru´ acima como a j-´sima dire¸˜o ca a ıda e ca b´sica a Alexandre Salles da Cunha M´todo Simplex e
  • 8. E a garantia das restri¸˜es de n˜o negatividade co a Temos 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 a Defini¸˜o ca Seja x uma solu¸˜o b´sica, B a base associada a x e cB o vetor de custos ca a das vari´veis b´sicas. Para todo j = 1, . . . , n, definimos o custo reduzido a a c 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. Exemplo Vamos 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 e Dada nossa interpreta¸˜o de custos reduzidos como a taxa de varia¸˜o da ca ca fun¸ao objetivo na medida em que movimentamos ao longo de uma c˜ dire¸˜o, temos o seguinte resultado: ca Teorema Considere uma solu¸˜o b´sica x associada a uma base B. Assuma que c ca a seja 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. Prova Prova (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. Prova Prova (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 o Defini¸˜o ca Uma 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 obtido Assumindo que θ ∗ ´ finito, y = x(θ ∗ ) = x + θ ∗ d. e Ent˜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. Prova Prova (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. Prova Prova (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 e Teorema Assuma que o conjunto de solu¸˜es vi´veis do PL ´ n˜o vazio e que toda co a e a solu¸˜o b´sica ´ n˜o degenerada. Ent˜o, o M´todo Simplex termina ap´s ca a e a a e o um 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. Prova Prova 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 e Vamos considerar a partir de agora, como se comporta o algoritmo descrito 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 ca Neste 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 a 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 M´todo Simplex e
  • 34. O M´todo Simplex pode n˜o terminar ? e a 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 M´todo Simplex e
  • 35. O M´todo Simplex pode n˜o terminar ? e a 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 M´todo Simplex e
  • 36. O M´todo Simplex pode n˜o terminar ? Sim, caso cicle. e a O pr´ximo quadro ´ igual ao quadro inicial ! o e 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 M´todo Simplex e
  • 37. Possibilidades para implementar o pivoteamento At´ o momento, n˜o particularizamos regra alguma para escolher as e a regras de pivoteamento, isto ´, escolher qual vari´vel entra e sai da e a base. Em particular, na descri¸˜o que apresentamos do M´todo Simplex, ca e temos 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. −1 Como aproveitar informa¸˜es de B −1 para avaliar B co Defini¸˜o ca Dada 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 e chamada de opera¸˜o linha elementar (n˜o muda as informa¸˜es dos ca a co sistemas lineares representados pela matriz). Exemplo Digamos que queiramos multiplicar a terceira linha da matriz C abaixo por 2 para somar ` primeira linha da matriz. Isto equivale a multiplicar C pela a matriz 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 e Vamos adicionar o seguinte passo ao final da quinta opera¸˜o na itera¸˜o ca ca t´ ı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, a reduzimos 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 Bland Pivoteamento 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 a No M´todo Simplex, assumimos dispor de uma solu¸˜o b´sica vi´vel e ca a a inicial. 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 ca Problema Original min c ′x Ax = b x ≥0 Assumimos sem perda de generalidade que b ≥ 0 (caso contr´rio, a multiplicamos alguma linha do sistema linear por −1) Alexandre Salles da Cunha M´todo Simplex e
  • 53. Constru¸˜o de um problema auxiliar - Fase 1 ca Problema 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 a Para iniciar o M´todo Simplex, necessitamos de uma solu¸˜o b´sica inicial e ca a e 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 a Analisando 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 e A 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, . . . , n de forma a criar uma sequˆncia de v´rtices adjacentes para os quais a e e fun¸ao objetivo seja reduzida quando nos movemos de um v´rtice para o c˜ e outro. Alexandre Salles da Cunha M´todo Simplex e
  • 59. Criamos um caminho que percorre todos os v´rtices e Existe uma regra de pivoteamento que faz o m´todo percorrer todos os e v´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