Pontificia Universidad Católica
                        Escuela de Ingeniería
                        Departamento de Ingeniería Industrial y de Sistemas




                       Clase 20 • El M´todo Simplex
                                      e

                                       ICS 1102 • Optimizaci´n
                                                             o
                                      Profesor : Claudio Seebach
                                          16 de octubre de 2006




Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                        Programaci´n Lineal • 48
                                                                                 o




                          Pasos en el M´todo Simplex
                                       e

  • El m´todo Simplex est´ compuesto por tres pasos:
        e                a

                                                      Paso Inicial


                                                     Paso Iterativo

                                           Prueba de Optimalidad
                                             No óptima
                                                            Solución
                                                             Óptima
                                                          Fin




Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                        Programaci´n Lineal • 49
                                                                                 o
Pasos en el M´todo Simplex
                                       e

  • Los tres pasos son:
      1. Paso inicial: Determinar una soluci´n factible en un v´rtice.
                                              o                  e
      2. Prueba de optimalidad: La soluci´n factible en un v´rtice es ´ptima
                                            o                e        o
         cuando ninguna de las soluciones en v´rtices adyacentes a ella sean
                                                e
         mejores.
      3. Paso iterativo: Traslado a una mejor soluci´n factible en un v´rtice
                                                      o                 e
         adyacente (repetir las veces que sea necesario).




Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                      Programaci´n Lineal • 50
                                                                               o




                                       Ejercicio Simplex

  • Recordemos el ejemplo de las planchas de aluminio:
                                   P ) min −800x1 − 600x2
                                           s.a 15x1 + 5x2        ≤   600
                                                 7x1 + 14x2      ≤   630
                                             0, 3x1 + 0, 3x2     ≤   15
                                                      x 1 , x2   ≥   0
  • Introducir tres variables de holgura:
                  P ) min −800x1 − 600x2
                      s.a. 15x1 + 5x2 + x3           =   600 (minutos disponibles)
                           7x1 + 14x2 + x4           =   630 (m2 de aluminio)
                       0, 3x1 + 0, 3x2 + x5          =   15 (lts de pintura)
                                        x 1 , x2     ≥   0
                                  x 3 , x4 , x 5     ≥   0


Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                      Programaci´n Lineal • 51
                                                                               o
Ejercicio Simplex

 1. Paso Inicial:
      • Determinar una soluci´n inicial factible.
                                o
      • Si todas las restricciones son desigualdades de menor o igual, todas
        las variables son no negativas y todos los recursos disponibles son no
        negativos, existe una soluci´n factible trivial:
                                     o
         – Asignar un valor cero a cada una de las variables originales.



                                        Tipo 2




                                                 x1= x2=0
                                                            Tipo 1



Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                  Programaci´n Lineal • 52
                                                                           o




                                          Ejercicio Simplex

      • Las variables b´sicas son x3, x4, x5 y las no b´sicas son x1, x2.
                        a                              a
      • En formato tableau:
                             x1 x2 x3 x4 x5            v.b.
                             15    5 1 0 0 600 x3
                              7   14 0 1 0 630 x4
                             0,3 0,3 0 0 1 15 x5
                            -800 -600 0 0 0 0            0
      • Los coeficientes de la ultima fila se denominan costos reducidos
                                ´
      • La casilla inferior derecha del tableau indica el inverso aditivo del
        valor de la funci´n objetivo.
                         o




Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                  Programaci´n Lineal • 53
                                                                           o
Ejercicio Simplex

 2. Prueba de Optimalidad:
      • Si el valor de Z puede mejorar (en este caso disminuir) al hacer que
        una de las variables no b´sicas crezca.
                                  a
      • Esto se puede verificar observando la ultima fila del tableau (Z): si
                                               ´
        todos los valores son positivos o cero, estamos en el ´ptimo, de lo
                                                               o
        contrario regresamos al paso iterativo.
      • Tanto la variable x1 como x2 mejoran la funci´n objetivo si aumentan
                                                     o
        en una unidad ya que sus coeficientes en la fila de la funci´n objetivo
                                                                  o
        son estrictamente negativos, por lo que nos convendr´ que una de
                                                               a
        ellas (cualquiera) entre a la base.




Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                              Programaci´n Lineal • 54
                                                                       o




                                         Ejercicio Simplex

 3. Paso Iterativo:
    3.1 Parte I: Determinar la variable no b´sica que entra a la base.
                                              a
        • T´ıpicamente se escoge la variable cuyo coeficiente en la funci´n
                                                                         o
          objetivo sea el m´s negativo.
                             a
        • Sin embargo podr´ escogerse cualquier variable con costo reducido
                             ıa
          negativo y el m´todo igual converger´
                           e                     ıa.
        • En nuestro ejemplo, la variable que m´s aporta a la funci´n obje-
                                                  a                 o
          tivo es x1, por lo que ´sta ser´ la variable entrante.
                                 e       a




Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                              Programaci´n Lineal • 55
                                                                       o
Ejercicio Simplex

    3.2 Parte II: Se determina la variable b´sica que sale de la base:
                                             a
        • Se elige la variable b´sica que primero alcanza el valor cero cuando
                                a
          se incrementa la variable b´sica entrante.
                                       a
        • La variable saliente es x3, de min{ 600 , 630 , 0,3 } = 40.
                                               15    7
                                                          15




    3.3 Parte III: Se determina la nueva soluci´n b´sica factible.
                                               o a
                                               x1 x2 x3 x4 x5                          v.b.
                                                    1     1
                                               1    3     15 0 0   40                   x1
         • El nuevo tableau es:
                                               0 35 −7 1 0 350
                                                    3     15                            x4
         • El nuevo valor ´ptimo es -32.000
                           o                        1    −1
                                               0    5     50 0 1   3                    x5
                                                    1000 800
                                               0 − 3 15 0 0 32.000




Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                             Programaci´n Lineal • 56
                                                                      o




                                            Ejercicio Simplex
          Tipo 2




                                                       µ2= -333.3
                                                       µ3= 53.3
                             x1= 40                                   Tipo 1
                             x2= 0


Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                             Programaci´n Lineal • 57
                                                                      o
Ejercicio Simplex

  • A´n existe una variable no b´sica cuyo costo reducido es negativo: x2.
     u                          a
  • Esta variable reduce en 1000 la funci´n objetivo por cada unidad que
                              3          o
    aumente su valor, por lo que conviene que entre a la base.
  • ¿por qu´ una unidad extra del producto 2 agrega s´lo $ 1000 a la funci´n
            e                                        o      3             o
    objetivo siendo que su utilidad era $600?
  • Dada la combinaci´n actual de productos, y nula disponibilidad de re-
                       o
    cursos del tipo 1 (tiempo), cada unidad extra del producto 2 exige
    dejar de producir 1 de unidad del producto 1. La utilidad neta es
                        3
    $600 − 1 · $800, esto es $ 1000 .
           3                    3
  • La variable que sale de la base es x5:
                                           40 350 3
                              min           1 , 35 , 1     = {120, 30, 15} = 15
                                            3    3   5




Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                            Programaci´n Lineal • 58
                                                                                     o




                                            Ejercicio Simplex

  • El tableau siguiente es:
                        x1 x2 x3                     x4 x5               v.b.
                         1 0 101
                                                     0 −53   35           x1
                         0 0 107
                                                     1 −175 175
                                                         3                x4
                         0 1 −1
                              10                     0 5     15           x2
                                                        5000
                         0 0 20                      0 3 37.000
                                  Tipo 2




                              x2= 15                              µ3= 20
                                                                  µ5= 1666.6

                                                         x1= 35        Tipo 1


Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                            Programaci´n Lineal • 59
                                                                                     o
Ejercicio Simplex

  • Prueba de optimalidad: todos los costos reducidos no b´sicos son po-
                                                          a
    sitivos, por lo que estamos en una soluci´n ´ptima.
                                             o o
  • Por lo tanto, la soluci´n obtenida es la siguiente:
                           o
                                   x1    =    35
                                   x2    =    15
                                   x3    =    0 (Restricci´n activa)
                                                          o
                                   x4    =    175 (Holgura de aluminio)
                                   x5    =    0 (Restricci´n activa)
                                                            o
     Y el valor ´ptimo es -$37.000 (este valor calza con lo que se esperaba:
                o
     −32.000 − 15 ∗ 1000 ).
                      3




Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                     Programaci´n Lineal • 60
                                                                              o




                                         Ejercicio Simplex

  • La optimalidad de esta soluci´n es evidente si uno transforma este
                                  o
    tableau en el problema de minimizaci´n correspondiente:
                                         o
                                   5000
                   P ) min 20x3 +       x5 − 37.000
                                     3
                                         1          5
                           s.a    x1 + x3 − x5 = 35
                                        10          3
                                7                175
                                   x3 + x4 −           x5 = 175
                                10                3
                                         1
                                   x2 − x3 + 5x5 = 15
                                        10
                                                 x 1 , x2 ≥ 0
                                           x 3 , x4 , x5 ≥ 0
  • Dado que las variables deben ser no negativas, el valor ´ptimo no puede
                                                            o
    ser inferior a -$37.000.
  • Basta hacer x3 = x5 = 0 para obtener una soluci´n factible que alcanza
                                                   o
             ınima para el valor ´ptimo −37.000.
    la cota m´                   o

Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                     Programaci´n Lineal • 61
                                                                              o
Ejercicio Simplex

  • El tableau final entrega los multiplicadores asociados a cada uno de los
    recursos necesarios para producir planchas de aluminio.
  • µ1 y µ2 son los multiplicadores asociados a la no negatividad de las
    variables x1 y x2, mientras que µ3, µ4 y µ5 los multiplicadores asociados
    a las restricciones de minutos de trabajo, m2 de material y litros de
    pintura, respectivamente.
  • Los costos reducidos indican que si x3 aumenta en una unidad, la funci´n
                                                                          o
    objetivo empeora en $20. Es decir, µ3 = 20.
  • An´logamente, µ4 = 0 y µ5 = 1666, 6 lo que es consistente con nuestros
       a
    resultados previos.




Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                              Programaci´n Lineal • 62
                                                                       o




                      Soluci´n B´sica Factible Inicial
                            o   a

  • El m´todo Simplex requiere de una soluci´n inicial factible b´sica (SIFB)
        e                                   o                    a
    para comenzar a iterar.
  • En cualquier problema de programaci´n lineal en forma est´ndar con
                                         o                   a
    b ≥ 0, es f´cil identificar una SIFB:
               a
      – Definir el conjunto de variables b´sicas como el conjunto de holguras
                                          a
        de las restricciones: xholguras = b, y las dem´s variables originales
                                                      a
        (no b´sicas) iguales a cero.
             a
  • Los problemas que tienen restricciones de igualdad o desigualdades ”≥”,
    tal que al asignar un valor cero a las variables originales del problema
    no se obtiene un punto factible del dominio.




Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                              Programaci´n Lineal • 63
                                                                       o
Soluci´n B´sica Factible Inicial
                               o   a

  • En el ejemplo del aluminio, supongamos ahora que estamos forzados a
    utilizar al menos 15 lts de pintura.
  • El problema en forma est´ndar ser´ entonces:
                            a        ıa
                        min −800x1 − 600x2
                    s.a      15x1 + 5x2 + x3         =   600
                             7x1 + 14x2 + x4         =   630
                         0, 3x1 + 0, 3x2 − x5        =   15
                                           xi        ≥   0,    i ∈ {1, 2, 3, 4, 5}
     en que x3 y x4 son variables de holgura y x5 es de exceso.




Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                    Programaci´n Lineal • 64
                                                                             o




                         Soluci´n B´sica Factible Inicial
                               o   a

  • Como podemos ver, no el problema no posee una SIFB trivial:
                         Tipo 2




                                                     D




                              (0,0) no es factible                   Tipo 1



Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                    Programaci´n Lineal • 65
                                                                             o
Primera Fase

  • Soluci´n: resolver el problema en dos fases:
          o
      – En la primera fase se usa el Simplex para determinar una SIFB
      – En la segunda fase se usa el m´todo Simplex a partir de la SIFB
                                        e
        encontrada.
  • En la primera fase se procurar´ inventar una soluci´n b´sica al problema
                                  a                    o a
    que sea evidente:
      – Agregar´ una variable artificial yi no negativa en cada una de las
                 a
        restricciones que no cumpla con el formato est´ndar.
                                                      a
      – Esto genera inmediatamente una SBIF del nuevo problema.
  • Cualquier soluci´n a este nuevo problema s´lo ser´ factible en el prob-
                     o                            o      a
    lema original si todas las variables artificiales son nulas.
  • Reemplazar, s´lo durante la primera fase del algoritmo, la funci´n ob-
                   o                                                o
    jetivo del problema original por:
                                                        min            yi
                                                                 i


Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                                         Programaci´n Lineal • 66
                                                                                                  o




                                              Primera Fase

  • Supongamos que el problema original es el siguiente:
                                                min c x
                                                s.a. A1x               ≤      b1
                                                     A2x               ≥      b2
                                                     A3x               =      b3
                                                       x               ≥      0
  • El problema queda:
                                       min                    yi +            yi
                                                     yi ∈a2          yi ∈a3
                                                s.a. A1x + h1                      =   b1
                                                 A2x − e2 + a2                     =   b2
                                                      A3x + a3                     =   b3
                                                 x, h1, e2, a2, a3                 ≥   0
  • La SIFB de este problema es evidente: h1, a2 y a3 como el conjunto de
    variables b´sicas.
               a
Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                                         Programaci´n Lineal • 67
                                                                                                  o
Primera Fase

  • Es posible aplicar Simplex directamente comenzando en dicha SIBF.
  • Se pueden dar dos casos:
      1. En la soluci´n ´ptima a este problema todos los elementos yi tanto
                     o o
         de a2 como de a3 son nulos, entonces basta eliminar las variables
         artificiales del problema y utilizar la soluci´n ´ptima como SIFB
                                                      o o
         para el problema original.
      2. La soluci´n ´ptima contempla alg´n yi > 0 significa que no es posi-
                   o o                     u
         ble encontrar una soluci´n en que todos los yi sean nulos.
                                 o
         Esto indica que el dominio del problema original no admite solu-
         ciones factibles, es decir, es vac´ıo.




Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                               Programaci´n Lineal • 68
                                                                                        o




                                            Primera Fase

  • En una primera fase, nos interesa resolver el siguiente problema:
                                      min y3
                    s.a      15x1 + 5x2 + x3               =   600
                             7x1 + 14x2 + x4               =   630
                    0, 3x1 + 0, 3x2 − x5 + y3              =   15
                                           xi              ≥   0,        i ∈ {1, 2, 3, 4, 5}
                                           y3              ≥   0
  • Su tableau asociado es el siguiente:
                                  x1   x2            x3   x4   x5   y3       v.b.
                                  15    5            1    0    0    0    600 x3
                                   7   14            0    1    0    0    630 x4
                                  0, 3 0, 3          0    0    −1   1     15 y3
                                   0    0            0    0    0    1     0
                                 −800 −600           0    0    0    0      0


Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                               Programaci´n Lineal • 69
                                                                                        o
Primera Fase

  • Es util incluir una fila adicional en la parte inferior del tableau con la
       ´
    funci´n objetivo original. Esto facilita la transici´n entre la Fase 1 y la
         o                                              o
    Fase 2, en la que se vuelve a la funci´n objetivo original.
                                           o
  • La funci´n objetivo de la Fase I est´ en la pen´ltima fila.
            o                           a          u
  • La SBIF corresponde a x3 = 600, x4 = 630, y3 = 15. Las dem´s
                                                              a
    variables (no b´sicas) son cero.
                   a
  • Hay que ajustar la funci´n objetivo en el tableau para que contenga
                              o
    s´lo ceros en las columnas asociadas a las variables b´sicas:
     o                                                    a
                      x1   x2 x3 x4 x5 y3            v.b.
                      15    5    1 0 0 0 600 x3
                       7   14 0 1 0 0 630 x4
                     0, 3 0, 3 0 0 −1 1 15 y3
                    −0, 3 −0, 3 0 0 1 0 −15
                    −800 −600 0 0 0 0 0



Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                   Programaci´n Lineal • 70
                                                                            o




                                            Primera Fase

  • La soluci´n anterior no es ´ptima: x1 y x2 tienen costo reducido negativo
             o                 o
  • Despu´s de una iteraci´n de Simplex en el pivote destacado se alcanza
           e              o
    el siguiente tableau:
                                 x1x2          x3 x4 x5 y3       v.b.
                                 25
                                  20           1 −5 0 0 375
                                                  14              x3
                                  1                1
                                  21           0 14 0 0 45        x2
                                  3               −3
                                 200           0 140 −1 1 1, 5    y3
                                 −3                3
                                 200           0 140 1 0 −1, 5
                                                  600
                              −500 0           0 14 0 0 27000




Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                   Programaci´n Lineal • 71
                                                                            o
Primera Fase Gr´ficamente
                                          a




                         Tipo 2
                    (0,45)




                                                       D




                                                                            Tipo 1



Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                         Programaci´n Lineal • 72
                                                                                  o




                                             Primera Fase

  • La soluci´n b´sica anterior a´n no es factible para el problema original
             o a                 u
    pues y3 a´n es positiva.
             u
  • La soluci´n no es ´ptima para la Fase I: el costo reducido de la variable
             o        o
                       3
    x1 es negativo (− 20 ).
  • Una iteraci´n adicional y obtenemos:
               o
                                  x1   x2   x3 x4     x5     y3           v.b.
                                                            −250
                                  0    0    1 107
                                                      250
                                                       3      3      250 x3
                                                            −10
                                  0    1    0 1 7
                                                       10
                                                       3      3      40 x2
                                  1    0    0 −17
                                                      −20
                                                       3
                                                             20
                                                              3      10 x1
                                  0    0    0 0        0      1       0
                                  0    0    0 −200
                                                7
                                                     −10000 10000
                                                       3      3     32000
  • La soluci´n b´sica alcanzada es ´ptima para la Fase I, ya que todas las
             o a                      o
    variables artificiales han salido de la base.



Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                         Programaci´n Lineal • 73
                                                                                  o
Primera Fase Gr´ficamente
                                          a




                         Tipo 2
                    (0,45)
                                           (10,40)



                                                     D




                                                                     Tipo 1



Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                  Programaci´n Lineal • 74
                                                                           o




                                       Fin Primera Fase

  • A trav´s de operaciones fila transformamos el problema de la Fase I en
           e
    el siguiente:
                                             min y3
                              20    250      250
           s.a          x 3 + x4 +      x5 −     y3      = 250
                              14     3        3
                                 1    10      10
                            x2 + x4 + x5 − y3            = 40
                                 7     3       3
                                 1     20     20
                            x1 − x4 − x5 + y3            = 10
                                 7     3       3
                                                 xi      ≥ 0,      i ∈ {1, 2, 3, 4, 5}
                                                 y3      ≥ 0
  • La soluci´n ´ptima prescinde de la variable y3.
             o o
  • La soluci´n b´sica factible alcanzada es: x1 = 10, x2 = 40, x3 =
             o    a
    250, x4 = x5 = 0 y es factible para el problema original.
  • Basta eliminar la variable artificial y3 y reemplazar la funci´n objetivo
                                                                 o
    por la original para poder comenzar la segunda fase.

Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                  Programaci´n Lineal • 75
                                                                           o
Transici´n Fase I a Fase II
                                    o

  • Las v. b. x1, x2 de esta soluci´n aparecen en la funci´n objetivo original:
                                   o                      o
                                             min −800x1 − 600x2
  • Es necesario realizar operaciones adicionales para que la funci´n objetivo
                                                                   o
    quede expresada s´lo en funci´n de las variables no b´sicas.
                       o           o                        a
  • Esto se obtiene gracias a mantener durante la primera fase la ultima fila
                                                                  ´
    del tableau con la funci´n objetivo original.
                            o
  • Basta reemplazar el valor de las v. b. en la funci´n objetivo original:
                                                      o
    f (x1, x2) = −800x1 − 600x2
                             1      20      20                 1   10 10
               = −800(10 + x4 + x5 − y3 ) − 600(40 − x4 − x5 + y3)
                             7      3        3                 7   3  3
                             200       10000      10000
               = −32.000 −       x4 −        x5 +       y3
                              7          3          3
  • Esto es la expresi´n que aparece en la ultima fila del tableau.
                      o                    ´



Apuntes de Clases • Optimizaci´n • Claudio Seebach
                              o                                   Programaci´n Lineal • 76
                                                                            o

Metodo simplex uc

  • 1.
    Pontificia Universidad Católica Escuela de Ingeniería Departamento de Ingeniería Industrial y de Sistemas Clase 20 • El M´todo Simplex e ICS 1102 • Optimizaci´n o Profesor : Claudio Seebach 16 de octubre de 2006 Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 48 o Pasos en el M´todo Simplex e • El m´todo Simplex est´ compuesto por tres pasos: e a Paso Inicial Paso Iterativo Prueba de Optimalidad No óptima Solución Óptima Fin Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 49 o
  • 2.
    Pasos en elM´todo Simplex e • Los tres pasos son: 1. Paso inicial: Determinar una soluci´n factible en un v´rtice. o e 2. Prueba de optimalidad: La soluci´n factible en un v´rtice es ´ptima o e o cuando ninguna de las soluciones en v´rtices adyacentes a ella sean e mejores. 3. Paso iterativo: Traslado a una mejor soluci´n factible en un v´rtice o e adyacente (repetir las veces que sea necesario). Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 50 o Ejercicio Simplex • Recordemos el ejemplo de las planchas de aluminio: P ) min −800x1 − 600x2 s.a 15x1 + 5x2 ≤ 600 7x1 + 14x2 ≤ 630 0, 3x1 + 0, 3x2 ≤ 15 x 1 , x2 ≥ 0 • Introducir tres variables de holgura: P ) min −800x1 − 600x2 s.a. 15x1 + 5x2 + x3 = 600 (minutos disponibles) 7x1 + 14x2 + x4 = 630 (m2 de aluminio) 0, 3x1 + 0, 3x2 + x5 = 15 (lts de pintura) x 1 , x2 ≥ 0 x 3 , x4 , x 5 ≥ 0 Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 51 o
  • 3.
    Ejercicio Simplex 1.Paso Inicial: • Determinar una soluci´n inicial factible. o • Si todas las restricciones son desigualdades de menor o igual, todas las variables son no negativas y todos los recursos disponibles son no negativos, existe una soluci´n factible trivial: o – Asignar un valor cero a cada una de las variables originales. Tipo 2 x1= x2=0 Tipo 1 Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 52 o Ejercicio Simplex • Las variables b´sicas son x3, x4, x5 y las no b´sicas son x1, x2. a a • En formato tableau: x1 x2 x3 x4 x5 v.b. 15 5 1 0 0 600 x3 7 14 0 1 0 630 x4 0,3 0,3 0 0 1 15 x5 -800 -600 0 0 0 0 0 • Los coeficientes de la ultima fila se denominan costos reducidos ´ • La casilla inferior derecha del tableau indica el inverso aditivo del valor de la funci´n objetivo. o Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 53 o
  • 4.
    Ejercicio Simplex 2.Prueba de Optimalidad: • Si el valor de Z puede mejorar (en este caso disminuir) al hacer que una de las variables no b´sicas crezca. a • Esto se puede verificar observando la ultima fila del tableau (Z): si ´ todos los valores son positivos o cero, estamos en el ´ptimo, de lo o contrario regresamos al paso iterativo. • Tanto la variable x1 como x2 mejoran la funci´n objetivo si aumentan o en una unidad ya que sus coeficientes en la fila de la funci´n objetivo o son estrictamente negativos, por lo que nos convendr´ que una de a ellas (cualquiera) entre a la base. Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 54 o Ejercicio Simplex 3. Paso Iterativo: 3.1 Parte I: Determinar la variable no b´sica que entra a la base. a • T´ıpicamente se escoge la variable cuyo coeficiente en la funci´n o objetivo sea el m´s negativo. a • Sin embargo podr´ escogerse cualquier variable con costo reducido ıa negativo y el m´todo igual converger´ e ıa. • En nuestro ejemplo, la variable que m´s aporta a la funci´n obje- a o tivo es x1, por lo que ´sta ser´ la variable entrante. e a Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 55 o
  • 5.
    Ejercicio Simplex 3.2 Parte II: Se determina la variable b´sica que sale de la base: a • Se elige la variable b´sica que primero alcanza el valor cero cuando a se incrementa la variable b´sica entrante. a • La variable saliente es x3, de min{ 600 , 630 , 0,3 } = 40. 15 7 15 3.3 Parte III: Se determina la nueva soluci´n b´sica factible. o a x1 x2 x3 x4 x5 v.b. 1 1 1 3 15 0 0 40 x1 • El nuevo tableau es: 0 35 −7 1 0 350 3 15 x4 • El nuevo valor ´ptimo es -32.000 o 1 −1 0 5 50 0 1 3 x5 1000 800 0 − 3 15 0 0 32.000 Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 56 o Ejercicio Simplex Tipo 2 µ2= -333.3 µ3= 53.3 x1= 40 Tipo 1 x2= 0 Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 57 o
  • 6.
    Ejercicio Simplex • A´n existe una variable no b´sica cuyo costo reducido es negativo: x2. u a • Esta variable reduce en 1000 la funci´n objetivo por cada unidad que 3 o aumente su valor, por lo que conviene que entre a la base. • ¿por qu´ una unidad extra del producto 2 agrega s´lo $ 1000 a la funci´n e o 3 o objetivo siendo que su utilidad era $600? • Dada la combinaci´n actual de productos, y nula disponibilidad de re- o cursos del tipo 1 (tiempo), cada unidad extra del producto 2 exige dejar de producir 1 de unidad del producto 1. La utilidad neta es 3 $600 − 1 · $800, esto es $ 1000 . 3 3 • La variable que sale de la base es x5: 40 350 3 min 1 , 35 , 1 = {120, 30, 15} = 15 3 3 5 Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 58 o Ejercicio Simplex • El tableau siguiente es: x1 x2 x3 x4 x5 v.b. 1 0 101 0 −53 35 x1 0 0 107 1 −175 175 3 x4 0 1 −1 10 0 5 15 x2 5000 0 0 20 0 3 37.000 Tipo 2 x2= 15 µ3= 20 µ5= 1666.6 x1= 35 Tipo 1 Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 59 o
  • 7.
    Ejercicio Simplex • Prueba de optimalidad: todos los costos reducidos no b´sicos son po- a sitivos, por lo que estamos en una soluci´n ´ptima. o o • Por lo tanto, la soluci´n obtenida es la siguiente: o x1 = 35 x2 = 15 x3 = 0 (Restricci´n activa) o x4 = 175 (Holgura de aluminio) x5 = 0 (Restricci´n activa) o Y el valor ´ptimo es -$37.000 (este valor calza con lo que se esperaba: o −32.000 − 15 ∗ 1000 ). 3 Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 60 o Ejercicio Simplex • La optimalidad de esta soluci´n es evidente si uno transforma este o tableau en el problema de minimizaci´n correspondiente: o 5000 P ) min 20x3 + x5 − 37.000 3 1 5 s.a x1 + x3 − x5 = 35 10 3 7 175 x3 + x4 − x5 = 175 10 3 1 x2 − x3 + 5x5 = 15 10 x 1 , x2 ≥ 0 x 3 , x4 , x5 ≥ 0 • Dado que las variables deben ser no negativas, el valor ´ptimo no puede o ser inferior a -$37.000. • Basta hacer x3 = x5 = 0 para obtener una soluci´n factible que alcanza o ınima para el valor ´ptimo −37.000. la cota m´ o Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 61 o
  • 8.
    Ejercicio Simplex • El tableau final entrega los multiplicadores asociados a cada uno de los recursos necesarios para producir planchas de aluminio. • µ1 y µ2 son los multiplicadores asociados a la no negatividad de las variables x1 y x2, mientras que µ3, µ4 y µ5 los multiplicadores asociados a las restricciones de minutos de trabajo, m2 de material y litros de pintura, respectivamente. • Los costos reducidos indican que si x3 aumenta en una unidad, la funci´n o objetivo empeora en $20. Es decir, µ3 = 20. • An´logamente, µ4 = 0 y µ5 = 1666, 6 lo que es consistente con nuestros a resultados previos. Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 62 o Soluci´n B´sica Factible Inicial o a • El m´todo Simplex requiere de una soluci´n inicial factible b´sica (SIFB) e o a para comenzar a iterar. • En cualquier problema de programaci´n lineal en forma est´ndar con o a b ≥ 0, es f´cil identificar una SIFB: a – Definir el conjunto de variables b´sicas como el conjunto de holguras a de las restricciones: xholguras = b, y las dem´s variables originales a (no b´sicas) iguales a cero. a • Los problemas que tienen restricciones de igualdad o desigualdades ”≥”, tal que al asignar un valor cero a las variables originales del problema no se obtiene un punto factible del dominio. Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 63 o
  • 9.
    Soluci´n B´sica FactibleInicial o a • En el ejemplo del aluminio, supongamos ahora que estamos forzados a utilizar al menos 15 lts de pintura. • El problema en forma est´ndar ser´ entonces: a ıa min −800x1 − 600x2 s.a 15x1 + 5x2 + x3 = 600 7x1 + 14x2 + x4 = 630 0, 3x1 + 0, 3x2 − x5 = 15 xi ≥ 0, i ∈ {1, 2, 3, 4, 5} en que x3 y x4 son variables de holgura y x5 es de exceso. Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 64 o Soluci´n B´sica Factible Inicial o a • Como podemos ver, no el problema no posee una SIFB trivial: Tipo 2 D (0,0) no es factible Tipo 1 Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 65 o
  • 10.
    Primera Fase • Soluci´n: resolver el problema en dos fases: o – En la primera fase se usa el Simplex para determinar una SIFB – En la segunda fase se usa el m´todo Simplex a partir de la SIFB e encontrada. • En la primera fase se procurar´ inventar una soluci´n b´sica al problema a o a que sea evidente: – Agregar´ una variable artificial yi no negativa en cada una de las a restricciones que no cumpla con el formato est´ndar. a – Esto genera inmediatamente una SBIF del nuevo problema. • Cualquier soluci´n a este nuevo problema s´lo ser´ factible en el prob- o o a lema original si todas las variables artificiales son nulas. • Reemplazar, s´lo durante la primera fase del algoritmo, la funci´n ob- o o jetivo del problema original por: min yi i Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 66 o Primera Fase • Supongamos que el problema original es el siguiente: min c x s.a. A1x ≤ b1 A2x ≥ b2 A3x = b3 x ≥ 0 • El problema queda: min yi + yi yi ∈a2 yi ∈a3 s.a. A1x + h1 = b1 A2x − e2 + a2 = b2 A3x + a3 = b3 x, h1, e2, a2, a3 ≥ 0 • La SIFB de este problema es evidente: h1, a2 y a3 como el conjunto de variables b´sicas. a Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 67 o
  • 11.
    Primera Fase • Es posible aplicar Simplex directamente comenzando en dicha SIBF. • Se pueden dar dos casos: 1. En la soluci´n ´ptima a este problema todos los elementos yi tanto o o de a2 como de a3 son nulos, entonces basta eliminar las variables artificiales del problema y utilizar la soluci´n ´ptima como SIFB o o para el problema original. 2. La soluci´n ´ptima contempla alg´n yi > 0 significa que no es posi- o o u ble encontrar una soluci´n en que todos los yi sean nulos. o Esto indica que el dominio del problema original no admite solu- ciones factibles, es decir, es vac´ıo. Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 68 o Primera Fase • En una primera fase, nos interesa resolver el siguiente problema: min y3 s.a 15x1 + 5x2 + x3 = 600 7x1 + 14x2 + x4 = 630 0, 3x1 + 0, 3x2 − x5 + y3 = 15 xi ≥ 0, i ∈ {1, 2, 3, 4, 5} y3 ≥ 0 • Su tableau asociado es el siguiente: x1 x2 x3 x4 x5 y3 v.b. 15 5 1 0 0 0 600 x3 7 14 0 1 0 0 630 x4 0, 3 0, 3 0 0 −1 1 15 y3 0 0 0 0 0 1 0 −800 −600 0 0 0 0 0 Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 69 o
  • 12.
    Primera Fase • Es util incluir una fila adicional en la parte inferior del tableau con la ´ funci´n objetivo original. Esto facilita la transici´n entre la Fase 1 y la o o Fase 2, en la que se vuelve a la funci´n objetivo original. o • La funci´n objetivo de la Fase I est´ en la pen´ltima fila. o a u • La SBIF corresponde a x3 = 600, x4 = 630, y3 = 15. Las dem´s a variables (no b´sicas) son cero. a • Hay que ajustar la funci´n objetivo en el tableau para que contenga o s´lo ceros en las columnas asociadas a las variables b´sicas: o a x1 x2 x3 x4 x5 y3 v.b. 15 5 1 0 0 0 600 x3 7 14 0 1 0 0 630 x4 0, 3 0, 3 0 0 −1 1 15 y3 −0, 3 −0, 3 0 0 1 0 −15 −800 −600 0 0 0 0 0 Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 70 o Primera Fase • La soluci´n anterior no es ´ptima: x1 y x2 tienen costo reducido negativo o o • Despu´s de una iteraci´n de Simplex en el pivote destacado se alcanza e o el siguiente tableau: x1x2 x3 x4 x5 y3 v.b. 25 20 1 −5 0 0 375 14 x3 1 1 21 0 14 0 0 45 x2 3 −3 200 0 140 −1 1 1, 5 y3 −3 3 200 0 140 1 0 −1, 5 600 −500 0 0 14 0 0 27000 Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 71 o
  • 13.
    Primera Fase Gr´ficamente a Tipo 2 (0,45) D Tipo 1 Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 72 o Primera Fase • La soluci´n b´sica anterior a´n no es factible para el problema original o a u pues y3 a´n es positiva. u • La soluci´n no es ´ptima para la Fase I: el costo reducido de la variable o o 3 x1 es negativo (− 20 ). • Una iteraci´n adicional y obtenemos: o x1 x2 x3 x4 x5 y3 v.b. −250 0 0 1 107 250 3 3 250 x3 −10 0 1 0 1 7 10 3 3 40 x2 1 0 0 −17 −20 3 20 3 10 x1 0 0 0 0 0 1 0 0 0 0 −200 7 −10000 10000 3 3 32000 • La soluci´n b´sica alcanzada es ´ptima para la Fase I, ya que todas las o a o variables artificiales han salido de la base. Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 73 o
  • 14.
    Primera Fase Gr´ficamente a Tipo 2 (0,45) (10,40) D Tipo 1 Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 74 o Fin Primera Fase • A trav´s de operaciones fila transformamos el problema de la Fase I en e el siguiente: min y3 20 250 250 s.a x 3 + x4 + x5 − y3 = 250 14 3 3 1 10 10 x2 + x4 + x5 − y3 = 40 7 3 3 1 20 20 x1 − x4 − x5 + y3 = 10 7 3 3 xi ≥ 0, i ∈ {1, 2, 3, 4, 5} y3 ≥ 0 • La soluci´n ´ptima prescinde de la variable y3. o o • La soluci´n b´sica factible alcanzada es: x1 = 10, x2 = 40, x3 = o a 250, x4 = x5 = 0 y es factible para el problema original. • Basta eliminar la variable artificial y3 y reemplazar la funci´n objetivo o por la original para poder comenzar la segunda fase. Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 75 o
  • 15.
    Transici´n Fase Ia Fase II o • Las v. b. x1, x2 de esta soluci´n aparecen en la funci´n objetivo original: o o min −800x1 − 600x2 • Es necesario realizar operaciones adicionales para que la funci´n objetivo o quede expresada s´lo en funci´n de las variables no b´sicas. o o a • Esto se obtiene gracias a mantener durante la primera fase la ultima fila ´ del tableau con la funci´n objetivo original. o • Basta reemplazar el valor de las v. b. en la funci´n objetivo original: o f (x1, x2) = −800x1 − 600x2 1 20 20 1 10 10 = −800(10 + x4 + x5 − y3 ) − 600(40 − x4 − x5 + y3) 7 3 3 7 3 3 200 10000 10000 = −32.000 − x4 − x5 + y3 7 3 3 • Esto es la expresi´n que aparece en la ultima fila del tableau. o ´ Apuntes de Clases • Optimizaci´n • Claudio Seebach o Programaci´n Lineal • 76 o