metodo simplex uc

15
Pontificia Universidad Católica Escuela de Ingeniería Departamento de Ingeniería Industrial y de Sistemas Clase 20 El M´ etodo Simplex ICS 1102 Optimizaci´on Profesor : Claudio Seebach 16 de octubre de 2006 Apuntes de Clases Optimizaci´on Claudio Seebach Programaci´ on Lineal 48 Pasos en el M´ etodo Simplex El m´ etodo Simplex est´a compuesto por tres pasos: Paso Inicial Paso Iterativo Prueba de Optimalidad Fin No óptima Solución Óptima Apuntes de Clases Optimizaci´ on Claudio Seebach Programaci´ on Lineal 49

Upload: vitioslide

Post on 15-Jul-2015

1.183 views

Category:

Travel


1 download

TRANSCRIPT

Page 1: Metodo simplex uc

Pontificia Universidad CatólicaEscuela de IngenieríaDepartamento de Ingeniería Industrial y de Sistemas

Clase 20 • El Metodo Simplex

ICS 1102 • OptimizacionProfesor : Claudio Seebach

16 de octubre de 2006

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 48

Pasos en el Metodo Simplex

• El metodo Simplex esta compuesto por tres pasos:

Paso Inicial

Paso Iterativo

Prueba de Optimalidad

Fin

No óptimaSoluciónÓptima

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 49

Page 2: Metodo simplex uc

Pasos en el Metodo Simplex

• Los tres pasos son:

1. Paso inicial: Determinar una solucion factible en un vertice.

2. Prueba de optimalidad: La solucion factible en un vertice es optimacuando ninguna de las soluciones en vertices adyacentes a ella seanmejores.

3. Paso iterativo: Traslado a una mejor solucion factible en un verticeadyacente (repetir las veces que sea necesario).

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 50

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

x1, 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)

x1, x2 # 0

x3, x4, x5 # 0

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 51

Page 3: Metodo simplex uc

Ejercicio Simplex

1. Paso Inicial:

• Determinar una solucion inicial factible.

• Si todas las restricciones son desigualdades de menor o igual, todaslas variables son no negativas y todos los recursos disponibles son nonegativos, existe una solucion factible trivial:

– Asignar un valor cero a cada una de las variables originales.

Tipo

2

Tipo 1x1= x2=0

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 52

Ejercicio Simplex

• Las variables basicas son x3, x4, x5 y las no basicas son x1, x2.

• 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 delvalor de la funcion objetivo.

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 53

Page 4: Metodo simplex uc

Ejercicio Simplex

2. Prueba de Optimalidad:

• Si el valor de Z puede mejorar (en este caso disminuir) al hacer queuna de las variables no basicas crezca.

• Esto se puede verificar observando la ultima fila del tableau (Z): sitodos los valores son positivos o cero, estamos en el optimo, de locontrario regresamos al paso iterativo.

• Tanto la variable x1 como x2 mejoran la funcion objetivo si aumentanen una unidad ya que sus coeficientes en la fila de la funcion objetivoson estrictamente negativos, por lo que nos convendra que una deellas (cualquiera) entre a la base.

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 54

Ejercicio Simplex

3. Paso Iterativo:

3.1 Parte I: Determinar la variable no basica que entra a la base.

• Tıpicamente se escoge la variable cuyo coeficiente en la funcionobjetivo sea el mas negativo.

• Sin embargo podrıa escogerse cualquier variable con costo reducidonegativo y el metodo igual convergerıa.

• En nuestro ejemplo, la variable que mas aporta a la funcion obje-tivo es x1, por lo que esta sera la variable entrante.

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 55

Page 5: Metodo simplex uc

Ejercicio Simplex

3.2 Parte II: Se determina la variable basica que sale de la base:

• Se elige la variable basica que primero alcanza el valor cero cuandose incrementa la variable basica entrante.

• La variable saliente es x3, de min{60015 , 630

7 , 150,3} = 40.

3.3 Parte III: Se determina la nueva solucion basica factible.

• El nuevo tableau es:• El nuevo valor optimo es -32.000

x1 x2 x3 x4 x5 v.b.1 1

3115 0 0 40 x1

0 353

!715 1 0 350 x4

0 15

!150 0 1 3 x5

0 !10003

80015 0 0 32.000

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 56

Ejercicio Simplex

Tipo

2

Tipo 1x1= 40x2= 0

µ2= -333.3µ3= 53.3

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 57

Page 6: Metodo simplex uc

Ejercicio Simplex

• Aun existe una variable no basica cuyo costo reducido es negativo: x2.

• Esta variable reduce en 10003 la funcion objetivo por cada unidad que

aumente su valor, por lo que conviene que entre a la base.

• ¿por que una unidad extra del producto 2 agrega solo $10003 a la funcion

objetivo siendo que su utilidad era $600?

• Dada la combinacion actual de productos, y nula disponibilidad de re-cursos del tipo 1 (tiempo), cada unidad extra del producto 2 exigedejar de producir 1

3 de unidad del producto 1. La utilidad neta es$600! 1

3 · $800, esto es $10003 .

• La variable que sale de la base es x5:

min

!4013

,350353

,315

"= {120, 30, 15} = 15

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 58

Ejercicio Simplex

• El tableau siguiente es:

x1 x2 x3 x4 x5 v.b.1 0 1

10 0 !53 35 x1

0 0 710 1 !175

3 175 x4

0 1 !110 0 5 15 x2

0 0 20 0 50003 37.000

Tipo

2

Tipo 1x1= 35

x2= 15µ5= 1666.6µ3= 20

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 59

Page 7: Metodo simplex uc

Ejercicio Simplex

• Prueba de optimalidad: todos los costos reducidos no basicos son po-sitivos, por lo que estamos en una solucion optima.

• Por lo tanto, la solucion obtenida es la siguiente:

x1 = 35

x2 = 15

x3 = 0 (Restriccion activa)

x4 = 175 (Holgura de aluminio)

x5 = 0 (Restriccion activa)

Y el valor optimo es -$37.000 (este valor calza con lo que se esperaba:!32.000! 15 $ 1000

3 ).

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 60

Ejercicio Simplex

• La optimalidad de esta solucion es evidente si uno transforma estetableau en el problema de minimizacion correspondiente:

P ) min 20x3 +5000

3x5 ! 37.000

s.a x1 +1

10x3 !

5

3x5 = 35

7

10x3 + x4 !

175

3x5 = 175

x2 !1

10x3 + 5x5 = 15

x1, x2 # 0

x3, x4, x5 # 0

• Dado que las variables deben ser no negativas, el valor optimo no puedeser inferior a -$37.000.

• Basta hacer x3 = x5 = 0 para obtener una solucion factible que alcanzala cota mınima para el valor optimo !37.000.

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 61

Page 8: Metodo simplex uc

Ejercicio Simplex

• El tableau final entrega los multiplicadores asociados a cada uno de losrecursos necesarios para producir planchas de aluminio.

• µ1 y µ2 son los multiplicadores asociados a la no negatividad de lasvariables x1 y x2, mientras que µ3, µ4 y µ5 los multiplicadores asociadosa las restricciones de minutos de trabajo, m2 de material y litros depintura, respectivamente.

• Los costos reducidos indican que si x3 aumenta en una unidad, la funcionobjetivo empeora en $20. Es decir, µ3 = 20.

• Analogamente, µ4 = 0 y µ5 = 1666, 6 lo que es consistente con nuestrosresultados previos.

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 62

Solucion Basica Factible Inicial

• El metodo Simplex requiere de una solucion inicial factible basica (SIFB)para comenzar a iterar.

• En cualquier problema de programacion lineal en forma estandar con!b # !0, es facil identificar una SIFB:

– Definir el conjunto de variables basicas como el conjunto de holgurasde las restricciones: !xholguras = !b, y las demas variables originales(no basicas) iguales a cero.

• Los problemas que tienen restricciones de igualdad o desigualdades ”#”,tal que al asignar un valor cero a las variables originales del problemano se obtiene un punto factible del dominio.

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 63

Page 9: Metodo simplex uc

Solucion Basica Factible Inicial

• En el ejemplo del aluminio, supongamos ahora que estamos forzados autilizar al menos 15 lts de pintura.

• El problema en forma estandar serıa entonces:

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 • Optimizacion • Claudio Seebach Programacion Lineal • 64

Solucion Basica Factible Inicial

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

Tipo

2

Tipo 1(0,0) no es factible

D

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 65

Page 10: Metodo simplex uc

Primera Fase

• Solucion: resolver el problema en dos fases :

– En la primera fase se usa el Simplex para determinar una SIFB

– En la segunda fase se usa el metodo Simplex a partir de la SIFBencontrada.

• En la primera fase se procurara inventar una solucion basica al problemaque sea evidente:

– Agregara una variable artificial yi no negativa en cada una de lasrestricciones que no cumpla con el formato estandar.

– Esto genera inmediatamente una SBIF del nuevo problema.

• Cualquier solucion a este nuevo problema solo sera factible en el prob-lema original si todas las variables artificiales son nulas.

• Reemplazar, solo durante la primera fase del algoritmo, la funcion ob-jetivo del problema original por:

min#

i

yi

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 66

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%a2

yi +#

yi%a3

yi

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 devariables basicas.

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 67

Page 11: Metodo simplex uc

Primera Fase

• Es posible aplicar Simplex directamente comenzando en dicha SIBF.

• Se pueden dar dos casos:

1. En la solucion optima a este problema todos los elementos yi tantode a2 como de a3 son nulos, entonces basta eliminar las variablesartificiales del problema y utilizar la solucion optima como SIFBpara el problema original.

2. La solucion optima contempla algun yi > 0 significa que no es posi-ble encontrar una solucion en que todos los yi sean nulos.Esto indica que el dominio del problema original no admite solu-ciones factibles, es decir, es vacıo.

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 68

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 • Optimizacion • Claudio Seebach Programacion Lineal • 69

Page 12: Metodo simplex uc

Primera Fase

• Es util incluir una fila adicional en la parte inferior del tableau con lafuncion objetivo original. Esto facilita la transicion entre la Fase 1 y laFase 2, en la que se vuelve a la funcion objetivo original.

• La funcion objetivo de la Fase I esta en la penultima fila.

• La SBIF corresponde a x3 = 600, x4 = 630, y3 = 15. Las demasvariables (no basicas) son cero.

• Hay que ajustar la funcion objetivo en el tableau para que contengasolo ceros en las columnas asociadas a las variables basicas:

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 • Optimizacion • Claudio Seebach Programacion Lineal • 70

Primera Fase

• La solucion anterior no es optima: x1 y x2 tienen costo reducido negativo

• Despues de una iteracion de Simplex en el pivote destacado se alcanzael siguiente tableau:

x1 x2 x3 x4 x5 y3 v.b.252 0 1 !5

14 0 0 375 x312 1 0 1

14 0 0 45 x2320 0 0 !3

140 !1 1 1, 5 y3!320 0 0 3

140 1 0 !1, 5!500 0 0 600

14 0 0 27000

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 71

Page 13: Metodo simplex uc

Primera Fase Graficamente

Tipo

2

Tipo 1

D

(0,45)

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 72

Primera Fase

• La solucion basica anterior aun no es factible para el problema originalpues y3 aun es positiva.

• La solucion no es optima para la Fase I: el costo reducido de la variablex1 es negativo (! 3

20).

• Una iteracion adicional y obtenemos:

x1 x2 x3 x4 x5 y3 v.b.0 0 1 10

72503

!2503 250 x3

0 1 0 17

103

!103 40 x2

1 0 0 !17

!203

203 10 x1

0 0 0 0 0 1 00 0 0 !200

7!10000

310000

3 32000

• La solucion basica alcanzada es optima para la Fase I, ya que todas lasvariables artificiales han salido de la base.

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 73

Page 14: Metodo simplex uc

Primera Fase Graficamente

Tipo

2

Tipo 1

D

(0,45)(10,40)

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 74

Fin Primera Fase

• A traves de operaciones fila transformamos el problema de la Fase I enel siguiente:

min y3

s.a x3 +20

14x4 +

250

3x5 !

250

3y3 = 250

x2 +1

7x4 +

10

3x5 !

10

3y3 = 40

x1 !1

7x4 !

20

3x5 +

20

3y3 = 10

xi # 0, i % {1, 2, 3, 4, 5}y3 # 0

• La solucion optima prescinde de la variable y3.

• La solucion basica factible alcanzada es: x1 = 10, x2 = 40, x3 =250, x4 = x5 = 0 y es factible para el problema original.

• Basta eliminar la variable artificial y3 y reemplazar la funcion objetivopor la original para poder comenzar la segunda fase.

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 75

Page 15: Metodo simplex uc

Transicion Fase I a Fase II

• Las v. b. x1, x2 de esta solucion aparecen en la funcion objetivo original:

min!800x1 ! 600x2

• Es necesario realizar operaciones adicionales para que la funcion objetivoquede expresada solo en funcion de las variables no basicas.

• Esto se obtiene gracias a mantener durante la primera fase la ultima filadel tableau con la funcion objetivo original.

• Basta reemplazar el valor de las v. b. en la funcion objetivo original:

f (x1, x2) = !800x1 ! 600x2

= !800(10 +1

7x4 +

20

3x5 !

20

3y3 )! 600(40! 1

7x4 !

10

3x5 +

10

3y3)

= !32.000! 200

7x4 !

10000

3x5 +

10000

3y3

• Esto es la expresion que aparece en la ultima fila del tableau.

Apuntes de Clases • Optimizacion • Claudio Seebach Programacion Lineal • 76