SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
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

Más contenido relacionado

Destacado

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Destacado (20)

Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 

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 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
  • 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 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
  • 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 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