Está en la página 1de 15

Pontificia Universidad Catlica Escuela de Ingeniera Departamento de Ingeniera Industrial y de Sistemas

Clase 20 El Mtodo Simplex e


ICS 1102 Optimizacin o Profesor : Claudio Seebach 16 de octubre de 2006

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 48 o

Pasos en el Mtodo Simplex e


El mtodo Simplex est compuesto por tres pasos: e a

Paso Inicial Paso Iterativo Prueba de Optimalidad


No ptima Solucin ptima

Fin

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 49 o

Pasos en el Mtodo Simplex e


Los tres pasos son:

1. Paso inicial: Determinar una solucin factible en un vrtice. o e 2. Prueba de optimalidad: La solucin factible en un vrtice es ptima o e o cuando ninguna de las soluciones en vrtices adyacentes a ella sean e mejores. 3. Paso iterativo: Traslado a una mejor solucin factible en un vrtice o e adyacente (repetir las veces que sea necesario).

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 50 o

Ejercicio Simplex
Recordemos el ejemplo de las planchas de aluminio: P ) min 800x1 600x2 s.a 15x1 + 5x2 7x1 + 14x2 0, 3x1 + 0, 3x2 x 1 , x2 600 630 15 0

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

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 51 o

Ejercicio Simplex
1. Paso Inicial: Determinar una solucin 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 solucin factible trivial: o Asignar un valor cero a cada una de las variables originales.
Tipo 2 x1= x2=0 Tipo 1
Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 52 o

Ejercicio Simplex
Las variables bsicas son x3, x4, x5 y las no bsicas son x1, x2. a a En formato tableau: v.b. x1 x2 x3 x4 x5 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 coecientes de la ultima la se denominan costos reducidos La casilla inferior derecha del tableau indica el inverso aditivo del valor de la funcin objetivo. o

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin 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 bsicas crezca. a Esto se puede vericar observando la ultima la 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 funcin objetivo si aumentan o en una unidad ya que sus coecientes en la la de la funcin objetivo o son estrictamente negativos, por lo que nos convendr que una de a ellas (cualquiera) entre a la base.

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 54 o

Ejercicio Simplex
3. Paso Iterativo: 3.1 Parte I: Determinar la variable no bsica que entra a la base. a T picamente se escoge la variable cuyo coeciente en la funcin o objetivo sea el ms negativo. a Sin embargo podr escogerse cualquier variable con costo reducido a negativo y el mtodo igual converger e a. En nuestro ejemplo, la variable que ms aporta a la funcin objea o tivo es x1, por lo que sta ser la variable entrante. e a

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 55 o

Ejercicio Simplex
3.2 Parte II: Se determina la variable bsica que sale de la base: a Se elige la variable bsica que primero alcanza el valor cero cuando a se incrementa la variable bsica entrante. a 15 La variable saliente es x3, de min{ 600 , 630 , 0,3 } = 40. 15 7 3.3 Parte III: Se determina la nueva solucin bsica factible. o a x1 x2 x3 x4 x5 1 1 1 40 3 15 0 0 El nuevo tableau es: 0 35 7 1 0 350 3 15 El nuevo valor ptimo es -32.000 o 1 1 0 3 5 50 0 1 1000 800 0 3 15 0 0 32.000

v.b. x1 x4 x5

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 56 o

Ejercicio Simplex

Tipo 2

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

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 57 o

Ejercicio Simplex
An existe una variable no bsica cuyo costo reducido es negativo: x2. u a

Esta variable reduce en 1000 la funcin objetivo por cada unidad que o 3 aumente su valor, por lo que conviene que entre a la base. por qu una unidad extra del producto 2 agrega slo $ 1000 a la funcin e o o 3 objetivo siendo que su utilidad era $600? Dada la combinacin actual de productos, y nula disponibilidad de reo 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: min 40 350 3 1 , 35 , 1
3 3 5

= {120, 30, 15} = 15

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 58 o

Ejercicio Simplex
El tableau siguiente es: x1 x2 x3 1 1 0 10 7 0 0 10 0 1 1 10 0 0 20
Tipo 2

x4 x5 35 0 5 3 1 175 175 3 0 5 15 5000 0 3 37.000

v.b. x1 x4 x2

x2= 15 x1= 35

3= 20 5= 1666.6 Tipo 1

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 59 o

Ejercicio Simplex
Prueba de optimalidad: todos los costos reducidos no bsicos son poa sitivos, por lo que estamos en una solucin ptima. o o Por lo tanto, la solucin obtenida es la siguiente: o x1 x2 x3 x4 x5 = = = = = 35 15 0 (Restriccin activa) o 175 (Holgura de aluminio) 0 (Restriccin 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 Optimizacin Claudio Seebach o

Programacin Lineal 60 o

Ejercicio Simplex
La optimalidad de esta solucin es evidente si uno transforma este o tableau en el problema de minimizacin correspondiente: o 5000 x5 37.000 P ) min 20x3 + 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 solucin factible que alcanza o la cota m nima para el valor ptimo 37.000. o
Apuntes de Clases Optimizacin Claudio Seebach o Programacin Lineal 61 o

Ejercicio Simplex
El tableau nal 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 funcin o objetivo empeora en $20. Es decir, 3 = 20. Anlogamente, 4 = 0 y 5 = 1666, 6 lo que es consistente con nuestros a resultados previos.

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 62 o

Solucin Bsica Factible Inicial o a


El mtodo Simplex requiere de una solucin inicial factible bsica (SIFB) e o a para comenzar a iterar. En cualquier problema de programacin lineal en forma estndar con o a b 0, es fcil identicar una SIFB: a

Denir el conjunto de variables bsicas como el conjunto de holguras a de las restricciones: xholguras = b, y las dems variables originales a (no bsicas) 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 Optimizacin Claudio Seebach o

Programacin Lineal 63 o

Solucin Bsica 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 estndar ser entonces: a a min 800x1 600x2 s.a 15x1 + 5x2 + x3 7x1 + 14x2 + x4 0, 3x1 + 0, 3x2 x5 xi = = = 600 630 15 0,

i {1, 2, 3, 4, 5}

en que x3 y x4 son variables de holgura y x5 es de exceso.

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 64 o

Solucin Bsica Factible Inicial o a


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

(0,0) no es factible

Tipo 1

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 65 o

Primera Fase
Solucin: 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 mtodo Simplex a partir de la SIFB e encontrada.

En la primera fase se procurar inventar una solucin bsica al problema a o a que sea evidente: Agregar una variable articial yi no negativa en cada una de las a restricciones que no cumpla con el formato estndar. a Esto genera inmediatamente una SBIF del nuevo problema. Cualquier solucin a este nuevo problema slo ser factible en el probo o a lema original si todas las variables articiales son nulas. Reemplazar, slo durante la primera fase del algoritmo, la funcin obo o jetivo del problema original por: min
i
Apuntes de Clases Optimizacin Claudio Seebach o Programacin Lineal 66 o

yi

Primera Fase
Supongamos que el problema original es el siguiente: min c x s.a. A1x A2x A3x x yi +
yi a2 yi a3

b1 b2 b3 0 yi = = = b1 b2 b3 0

El problema queda:

min

s.a. A1x + h1 A2x e2 + a2 A3x + a3 x, h1, e2, a2, a3

La SIFB de este problema es evidente: h1, a2 y a3 como el conjunto de variables bsicas. a


Apuntes de Clases Optimizacin Claudio Seebach o Programacin Lineal 67 o

Primera Fase
Es posible aplicar Simplex directamente comenzando en dicha SIBF. Se pueden dar dos casos: 1. En la solucin ptima a este problema todos los elementos yi tanto o o de a2 como de a3 son nulos, entonces basta eliminar las variables articiales del problema y utilizar la solucin ptima como SIFB o o para el problema original. 2. La solucin ptima contempla algn yi > 0 signica que no es posio o u ble encontrar una solucin en que todos los yi sean nulos. o Esto indica que el dominio del problema original no admite soluciones factibles, es decir, es vac o.

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 68 o

Primera Fase
En una primera fase, nos interesa resolver el siguiente problema: min y3 s.a 15x1 + 5x2 + x3 7x1 + 14x2 + x4 0, 3x1 + 0, 3x2 x5 + y3 xi y3 Su tableau asociado es el siguiente: x1 x2 15 5 7 14 0, 3 0, 3 0 0 800 600 x3 1 0 0 0 0 = = = 600 630 15 0, 0

i {1, 2, 3, 4, 5}

x4 0 1 0 0 0

x5 0 0 1 0 0

y3 0 0 1 1 0

v.b. 600 x3 630 x4 15 y3 0 0

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 69 o

Primera Fase
Es util incluir una la adicional en la parte inferior del tableau con la funcin objetivo original. Esto facilita la transicin entre la Fase 1 y la o o Fase 2, en la que se vuelve a la funcin objetivo original. o La funcin objetivo de la Fase I est en la penltima la. o a u La SBIF corresponde a x3 = 600, x4 = 630, y3 = 15. Las dems a variables (no bsicas) son cero. a Hay que ajustar la funcin objetivo en el tableau para que contenga o slo ceros en las columnas asociadas a las variables bsicas: 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 Optimizacin Claudio Seebach o

Programacin Lineal 70 o

Primera Fase
La solucin anterior no es ptima: x1 y x2 tienen costo reducido negativo o o

Despus de una iteracin de Simplex en el pivote destacado se alcanza e o el siguiente tableau: x2 0 1 0 0 500 0
25 2 1 2 3 20 3 20

x1

x3 x4 x5 y3 1 5 0 0 375 14 1 0 14 0 0 45 3 0 140 1 1 1, 5 3 0 140 1 0 1, 5 600 0 14 0 0 27000

v.b. x3 x2 y3

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 71 o

Primera Fase Grcamente a


Tipo 2 (0,45)

Tipo 1

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 72 o

Primera Fase
La solucin bsica anterior an no es factible para el problema original o a u pues y3 an es positiva. u La solucin no es ptima para la Fase I: el costo reducido de la variable o o 3 x1 es negativo ( 20 ). Una iteracin adicional y obtenemos: o x1 0 0 1 0 0 x2 0 1 0 0 0 x3 x4 1 10 7 0 1 7 0 1 7 0 0 0 200 7 x5 250 3 10 3 20 3 0 y3 250 3 10 3 20 3 1 v.b. 250 x3 40 x2 10 x1 0 32000

10000 10000 3 3

La solucin bsica alcanzada es ptima para la Fase I, ya que todas las o a o variables articiales han salido de la base.

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 73 o

Primera Fase Grcamente a


Tipo 2 (0,45)

(10,40)

Tipo 1

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 74 o

Fin Primera Fase


A travs de operaciones la transformamos el problema de la Fase I en e el siguiente: s.a min y3 20 250 250 x 3 + x4 + x5 y3 14 3 3 1 10 10 x2 + x4 + x5 y3 7 3 3 1 20 20 x1 x4 x5 + y3 7 3 3 xi y3 = 250 = 40 = 10 0, 0 i {1, 2, 3, 4, 5}

La solucin bsica 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 articial y3 y reemplazar la funcin objetivo o por la original para poder comenzar la segunda fase.
Apuntes de Clases Optimizacin Claudio Seebach o Programacin Lineal 75 o

La solucin ptima prescinde de la variable y3. o o

Transicin Fase I a Fase II o


Las v. b. x1, x2 de esta solucin aparecen en la funcin objetivo original: o o min 800x1 600x2 Es necesario realizar operaciones adicionales para que la funcin objetivo o quede expresada slo en funcin de las variables no bsicas. o o a Esto se obtiene gracias a mantener durante la primera fase la ultima la del tableau con la funcin objetivo original. o Basta reemplazar el valor de las v. b. en la funcin objetivo original: o f (x1, x2) = 800x1 600x2 20 20 1 10 10 1 = 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 expresin que aparece en la ultima la del tableau. o

Apuntes de Clases Optimizacin Claudio Seebach o

Programacin Lineal 76 o

También podría gustarte