Está en la página 1de 11

Mtodo de las dos fases

Juan Pablo Concha Universidad de la Frontera


Alguien me dijo que por cada ecuacin que inclua en el libro reducira a la mitad las ventas. Stephen Hawking La poltica dura poco, una ecuacin es para siempre. Albert Einstein. Resumen Este material de apoyo, aborda el tpico de "Mtodo de las dos fases", en el veremos: 1. Introduccin al mtodo de las dos fases 2. Aspecto terico del mtodo 3. Ejemplos simples. 4. Ejercicios resueltos. 5. Ejercicios propuestos. Los comentarios en rojo son posibles preguntas de prueba, por lo tanto, son cosas que deben conocer y asimilar profundamente.

1. Introduccin mtodo de las dos fases


El presente escrito tiene el objetivo de introducir el mtodo de dos fases, este es un mtodo de optimizacion que se utiliza para encontrar una solucin factible bsica y as poder iniciar el mtodo simple, en pocas palabras el mtodo de las dos fases permite determinar si un problema de programacin lineal es factible o no. Recordemo que un problema de programacin lineal no es factible si el conjunto de restriciones es vacio, por ejemplo el siguiente problema min z = 2 x + y S .a x+y2 x+y4 x, y 0 Tiene como conjunto factible {( x, y) 2 / x + y 4, x + y 2, x, y 0} = cuya grca es:

En el ejemplo anterior es fcil ver que el conjunto factible es vaco, pero no siempre fcil notar esto, el mtodo de las dos fases nos permite determinar si el conjunto factible es vaco o no. Adems nos brinda una SFB con la cual iniciaremos la primera iteracin del mtodo simplex. Como modo introductorio trate de encontrar una SFB del sigiuente problema siguiente, es decir colocar el problema en forma explcita con respecto a alguna base. min S .a z = 2x + y x+y3 2 x 3y 4 4 x + 5 y 5 x, y 0 Lo primero que debemos hacer es escribir la forma estndar del problema. min S .a z = 2x + y x + y xh 3 =3 2 x 3 y xh 4 =4 4 x + 5 y + xh 5 =5 h h x, y, xh 3 , x4 , x5 0 El problema esta escrito con respecto a alguna bse? Si porque podemos tomar las variables bsicas h h { xh , 3 x4 , x5 } ya que aparecen una vez en cada restriccin y no aparecen en la funcin objetivo. Entonces el problema en su forma tabular sera: xh 3 xh 4 xh 5 z x 1 2 -4 -2 y 1 -3 5 -1 xh 3 -1 0 0 0 xh 4 0 -1 0 0 xh 5 0 0 1 0 b 3 4 5 0

Notemos que los z j c j son menores que cero por lo tanto es un tabla optima, entonces la solucin x = (0, 0, 3, 4, 5)t es una solucin bsica pero NO ES FACTIBLE porque x no es mayor que cero. Una forma de solucionar esto es agregando variables articiales donde sea necesario, en el ejemplo anterior sera en las restricciones de mayor-igual. min S .a z = 2x + y
a x + y xh 3 + x6 = 3 h 2 x 3 y x4 + xa 7 =4 4 x + 5 y + xh 5 =5 h h x, y, xh , x , x 3 4 5 0

De esta forma la tabla simplex queda as. xa 6 xa 7 xh 5 z x 1 2 -4 -2 y 1 -3 5 -1 xh 3 -1 0 0 0 xh 4 0 -1 0 0 xh 5 0 0 1 0 xa 6 1 0 0 0 xa 7 0 1 0 0 b 3 4 5 0

7 Notemos que x = (0, 0, 0, 0, 5, 3, 4)t es una solucon factible bsica porque x 0, pero x6 a y xa estn a h en la base. Nos gustara que las variables x6 y x5 no estn en la base o se hagan cero, puesto que cuando esto ocurra el problema auxiliar encuentra una solucin factible bsica para el problema original, entonces h a h nuestro objetivo es que xa 6 y x5 sean cero lo cual se reeja mediante la funcin objetivo min z = x6 + x5 , por lo tanto el problema auxiliar sera el siguiente:

min S .a

a z = xa 6 + x5 a x + y xh 3 + x6 = 3 h 2 x 3 y x4 + xa 7 =4 4 x + 5 y + xh 5 =5 h h x, y, xh , x , x 3 4 5 0

Formalmente el mtodo de las dos fases es un mtodo para encontra el ptimo de un problema de programacin lineal. La primera fase determina si el problema es factible y la segunda fase resuelve el problema(simplex).

Mtodo de las dos Fases


Considere el problema de programacin lineal (PL) con algunas restricciones de mayor-igual y restricciones de igualdad min z = ct x S .a (PL) Ax b x0 Donde b 0 y denota restricciones de mayor-igual y restricciones de igualdad. 1. Primera Fase: La primera fase consiste en encontrar una SFB(si es que existe), para esto denimos el siguiente problema auxiliar: min S .a (PLa ) xa a Ax + x = b a x, x 0 za =

Debemos resolver el problema auxiliar (PLa ) mediante el algoritmo simplex. Si za = 0 entonces el problema de programacin lineal (PL) es factible, si no entonces el problema (PL) no es factible. Ejemplo:(Primera fase) Considere el problema de programacin lineal: min S .a z = 2 x1 + x2 x1 2 x2 2 x1 + x2 4 x1 , x2 0 El problema en forma estndar es: min S .a z = 2 x1 + x2 x1 2 x2 + xh 3 =2 x1 + x2 xh 4 =4 h x1 , x2 , xh , x 3 4 0

Figura 1: Ejemplo primera fase

La solucin bsica es x = (0, 0, 2, 4)t, notemos que no es una solucin factible bsica. La grca del conjunto factible nos muestra que el correspondiente punto x = (0, 0)(en rojo) no es un punto factible pero si es una solucin bsica. El problema auxiliar se genera agregando una variable articial en la restriccin de mayor-igual cambiando la funcin objetivo, el problema auxiliar es: min S .a za = xa 5 x1 2 x2 + xh 3 =2 x1 + x2 xh xa + 4 5 =4 h h x1 , x2 , x3 , x4 0 La primera fase consiste en resolver el problema auxiliar: xh 3 xa 5 za x1 1 1 0 x2 -2 1 0 xh 3 1 0 0 xh 4 0 -1 0 xa 5 0 1 -1 b 2 4 0

Notemos que la nueva solucin factible bsica de este problema es x = (0, 0, 2, 0, 4)t, pero la tabla a no esta en el formato simplex porque los z j c j asociados a las variables bsicas { xh 3 , x5 } no son cero (z5 c5 = 1), entonces debemos colocar la tabla en formato simplex, para esto basta con sumar la segunda la con la ltima. xh 3 xa 5 za x1 1 1 1 x2 -2 1 1 xh 3 1 0 0 xh 4 0 -1 -1 xa 5 0 1 0 b 2 4 4

Existe otra forma de determinar la tabla simplex, ya que sabemos que la funcin objetivo es min za = a a h xa 5 y adems x1 + x2 x4 + x5 = 4 podemos despejar x5 de la restriccin y remplazarlo en la funcin objetivo, entonce la funcin objetivo queda min za = x1 x2 + xh 4 + 4 y al ingresar a la tabla las los coecientes que acompaan a las variables cambian de signo(el 4 no cambia de signo). Luego de tener la tabla en formato simplex, comenzamos a iterar segn el algoritmo simplex. Las tablas de las iteraciones se muestran a continuacin: 4

x1 xa 5 za

x1 1 0 0

Iteracin 1 x2 xh xh 3 4 -2 1 0 3 -1 -1 3 -1 -1

xa 5 0 1 0

b 2 2 2

xh 1 xa 2 za

x1 1 0 0

x2 0 1 0

Iteracin 2 xh xh 3 4 1/3 -2/3 -1/3 -1/3 0 0

xa 5 2 /3 1 /3 -1

b 10/3 2 /3 0

El criterio para ver si pasamos a la segunda fase es si za (en rojo en la iteracin 2 ) es cero o no, si es cero entonces podemos pasar a la segundafa se si no es cero entonce el problema no es factible(nada ms que hacer). Este problema es factible y la solucin factible bsica es x = (10/3, 2/3, 0, 0, 0)t. 2. Segunda fase: La segunda fase parte preparando la tabla para iterar por el mtodo simplex, en esta fase se sacan las variables articiales de la base (si quedaron en la base ), se elimina la ltima la de la tabla asociada a za y se elimiinan las columnas asociadas a las variables articiales de la tabla. Ejemplo:(Segunda fases) Continuemos el ejemplo anterior, podemos pasar a esta fase porque el problema es factible, notemos a que xa 5 no esta en la base entonce sacamos la columna asociada a x5 de la tabla. La funcin za no sirve, por lo tanto la sacamos de la tabla y colocamos la funcin objetivo original min z = 2 x1 + x2 en la tabla. x1 1 0 -2 x2 0 1 -1 xh 3 1 /3 -1/3 0 xh 4 -2/3 -1/3 0 b 10/3 2 /3 0

x1 x2 z

Notemos que la tabla obtenida no es una tabla simplex porque los z j c j asociados a las variables bsicas x1 y x2 no son cero, por lo tanto debemos hacer que sean cero, multiplicando por 2 la primera la y sumandola a la ltima la logramos que z1 c1 sea cero. Sumando la penltima la con la ltima la, loagramos que z2 c2 sea cero. As las cosas la tabla para iniciar la segnda base es. x1 1 0 0 x2 0 1 0 xh 3 1 /3 -1/3 1 /3 xh 4 -2/3 -1/3 -5/3 b 10/3 2 /3 22/3

x1 x2 z

Ahora debemos iterar como si fuera una tabla simplex coomn y corriente. x1 3 1 -1 x2 0 1 0 xh 3 1 0 0 xh 4 -2 -1 -1 b 10 4 4

x3 x2 z

Cuya solucin es x = (0, 4, 10, 0)t, la cual se encuentra marcada en la gura con verde.

Figura 2: Ejemplo primera fase

2. Aspecto Terico del mtodo de las dos fases


Sin perdida de generalidad podemos considerar el problema de programacin lineal min S .a (PL) z = ct x Ax b x0

Donde b estndar.

0 agregando variables de holgura positivas, podemos escribir el problema anterior en forma min S .a ) (PL z = ct x

Este problema no tiene una SFB asociada, solamente posee una Solucin Bsica. Recordemos que una solucin factible bsica es un punto extremal y que una solucin bsica solamenta satisface Ax = b, en la gura 3 se puede apreciar grcamente la diferencia entre una SB(verde) y una SFB(rojo). Para solucionar este problema se desarrollo el mtodo de las dos fases. La primera fase encuentra una solucin factible bsica y nos dice si el problema es factible, para esto debemos resolver el siguiente problema auxiliar. min S .a (PLa ) xa a Ax + x = b a x, x 0 za =

h Ax + x = b h x, x 0

Este problema auxiliar tiene las siguientes propiedades. El problema PLa es siempre factible vasta tomar x = (0, b)t para darse cuenta. El problema es acotado inferiormente xa i 0, porque x 0 debibdo a esto podemos concluir, por el teorema de las alternativas, que el problema auxiliar siempre tiene solucin. Segn la teora, Si (PL) es factible, entonces el valor optimal de (PLa ) es cero(za = 0). Viceversa, si la a solucin optimal x a 0), a de ( PL ) hallada por el algoritmo simplex al nal de la primera fase no es cero(z 6

Figura 3: Solucines bsicas(verde) y soluciones factibles bsicas(rojas)

entonces (PL) no es factible. Las propiedades fundamentales son:


m

i) Acotado (
i=1

xa i 0).

ii) Factible (( x, xa ) = (0, b) es solucin factible bsica). iii) Tiene solucin (resultado general sobre PLs). iv) PL factible = za = 0. v) za = 0 = PL infactible.

3. Algoritmo de las dos fases


De forma mecnica el mtodo de las dos fases se puede reducir a lo siguiente. 1. Dado un Problema de programacin lineal (PL) 2. Resolver el problema auxiliar (PLa ) 3. Si za 0 el problema es infactible.

4. Si za = 0 el problema es factible. 4.1 Si existen variables articiales en la base 4.1.1 Si se pueden cambiar por cualquier variable. Ir a 5. 4.1.2 Si no se puede cambiar se elimina la la asociada a la variable articial. Ir a 5. 4.2 Si no existen variables articiales en la base. Ir a 5 5. Eliminar las columnas asociadas a las variables articiales y la funcin objetivo za 6. Colocar z original en la tabla, Iterar segn simplex.

4. Ejercicios Resueltos
4.1. Ejercicio
Resuelva el siguiente problema. En cada iteracin indique cual es la SFB, y la base. max S .a z = 2 x1 + x2 + 5 x3 10 x1 + 10 x2 9 10 x1 + 5 x2 x3 = 1 x1 , x2 , x3 0 Solucin: Lo primero es pasar el problema a la forma estndar mim S .a z = 2 x1 x2 5 x3 10 x1 + 10 x2 + xh 4 9 10 x1 + 5 x2 x3 = 1 x1 , x2 , x3 , xh 4 0 Una vez listo el problema en forma estndar con b 0. Debemos resolver el siguiente problema auxiliar. mim S .a z = 2 x1 x2 5 x3 10 x1 + 10 x2 + xh 4 9 10 x1 + 5 x2 x3 + xa 5 =1 a 0 , x x1 , x2 , x3 , xh 4 5 Pasando a la tabla: xh 4 xa 5 za x1 10 10 0 x2 10 5 0 x3 0 -1 0 xh 4 1 0 0 xa 5 0 1 -1 b 9 1 0

Pero esta no es un tabla simplex a continuacin mostramos la tabla inicial(en formato simplex) y las susecivas iteraciones. x1 10 10 10 Iteracin Inicial x2 x3 xh xa 4 5 10 0 1 0 5 -1 0 1 5 -1 0 0 b 9 1 1 x1 0 1 0 x2 5 1 /2 0 Iteracin 1 x3 xh 4 1 1 -1/10 0 0 0 xa 5 -1 1/10 -1 b 8 1/10 0

xh 4 xa 5 za

xh 4 x1 za

La SFB y la base de la primera y segunda tabla respectivamente son: x = (0, 0, 0, 9, 1)t, x = ( ,y B= 1 0 1 , B= 1 0 0 10 10 1 , 0, 0, 8, 0)t 10

En la ltima tabla za = 0 por lo tanto el problema es factible, no aparece la variable auxiliaren las variables bsicas por lo tanto podemos eliminar la ltima la y la columna asociada a xa 5 , con lo cual tenemos la sigiuente tabla.

xh 4 x1

x1 0 1

x2 5 1 /2

x3 1 -1/10

xh 4 1 0

b 8 1/10

Ahora podemos partir con la segunda fase, colcando la funcin objetivo z del problema original. xh 4 x1 z x1 0 1 -2 x2 5 1 /2 -1 x3 1 -1/10 -5 xh 4 1 0 0 b 8 1/10 0 Esta tabla no es una tabla simplex por lo tanto debemos transpormarla a una tabla simplex multiplicando la segunda la por 2 y sumandola conla ltima.

Con lo cual obtenemos la siguiente tabla optima. xh 4 x1 z x1 0 1 0 x2 5 1 /2 0 x3 1 -1/10 -27/5 xh 4 1 0 0 b 8 1/10 1 /5 x = (1/10, 0, 0, 8)t y B = 1 0 10 10

La solucin x = (1/10, 0, 0, 8)t es ptima y es mltiple porque z2 c2 = 0.

4.2. Ejercicio
Las siguientes tablas, son tablas nales de la primera fase del mtodo de las dos fases, en cada uno de los casos la funcin objetivo del problema original es min z = x1 + 2 x2 , indique cual es la primera tabla de la segunda fase. (No resolver, solo calcular la tabla inicial de la segunda fase), si es que existe. x1 1 -1 -1 x1 1 0 0 0 x1 1 0 0 0 0 x2 1 0 0 x2 0 1 0 0 x2 0 1 0 0 0 xh 3 1 -3 -3 xh 3 -1/2 -1/2 1 /2 0 x3 0 0 0 1 0 xh 4 0 -1 -1 xa 5 0 1 0 b 4 6 6 xh 5 0 0 1 0 xa 5 1 /2 1 /2 -1 0 -2 xa 6 1 /2 1 /2 -1/2 -1 xa 6 -1/2 1 /2 -1 0 -2 xa 7 -1/2 1 /2 -1/2 -1 xa 7 0 0 1 0 0 b 2 2 0 2 0 b 1 /2 3 /2 3 /2 0

a)

x2 xa 5 za

b)

x1 x2 xh 5 za

xh 4 1 /2 -1/2 1 /2 0 xh 4 1 /2 -3/2 0 1 0

c)

x1 x2 xa 7 x3 za

Solucin: a) El problema es factible y la tabla de la segunda fase es la siguiente adems es ptima.

x1 x2 xh 5 z

x1 1 0 0 0

x2 0 1 0 0

x3 -1/2 -1/2 1 /2 -3/2

xh 4 1 /2 -1/2 1 /2 -1/2

x5h 0 0 1 0

b 1 /2 3 /2 3 /2 2

b) El problema es factible, con una restriccin redundante, adems la primera tabla de la segunda fase es ptima. x1 1 0 0 0 0. x2 0 1 0 0 x3 0 0 1 0 xh 4 1 /2 -3/2 1 -1 b 2 2 2 5

x1 x2 x3 z

c) El problema no es factible z j c j 0, za

4.3. Ejercicio
Resuelva el siguiente problema por el mtodo de las dos fases. max S .a z = 2 x1 x2 + x3 2 x1 + x2 8 x1 x2 2 2 x1 + 3 x2 + x3 = 6 xi 0, i = 1..,4 Solucin: Puede resolverse con dos o una variable auxiliar(con una sale ms rpido) Problema en forma estndar min S .a z = 2 x1 + x2 x3 2 x1 + x2 + xh 4 =8 x1 x2 xh + xa 5 6 =2 2 x1 + 3 x2 + x3 = 6 xi 0, i = 1..,4 Problema en forma auxiliar(tabular) x1 2 1 2 1 x1 0 1 0 0 x2 1 -1 3 -1 x2 3 -1 5 0 x3 0 0 1 0 x3 0 0 1 0 10 xh 4 1 0 0 0 xh 4 1 0 0 0 xh 5 0 -1 0 -1 xh 5 2 -1 2 0 xa 6 0 1 0 0 xa 6 -2 1 -2 -1 b 8 2 6 2 b 4 2 2 0

xh 4 xa 6 x3 a z

xh 4 x1 x3 za

El problema es factible za = 0, por lo tanto la primera tabla de la segunda fase es: x1 0 1 0 0 x2 3 -1 5 -4 x3 0 0 1 0 xh 4 1 0 0 0 xh 5 2 -1 2 0 b 4 2 2 -6

xh 4 x1 x3 z

La solucin x = (2, 0, 2, 4, 0)t es mltiple, porque z5 c5 = 0.

4.4. Ejercicio
Resuelva el siguiente problema de programacin lineal, sabiendo de ante mano que x = (0, 4)t es un punto factible. max S .a z = x1 + x2 x1 + x2 4 x1 x2 2 x1 + x2 6 x1 , x2 0 Solucin: El problema en forma estndar es: min S .a z = x1 x2 x1 + x2 xh 3 =4 x1 x2 + xh 4 =2 x1 + x2 + xh 5 =6 h h x1 , x2 , xh 3 , x4 , x5 0 Al saber que x = (0, 4)t es un punto factible no es necesario utilizar el mtodo de las dos fases, basta con colocar el problema en su forma explcita con respecto al punto x = (0, 4, 0, 6, 2)t e iterar segn el mtodo simplex. La forma explcita con respecto al punto x = (0, 4, 0, 6, 2)t es: min S .a z = 4 xh 3 x1 + x2 xh 3 =4 h + x 2 x1 xh 3 4 =6 h 2 x1 + x3 + xh 5 =2 h h , x x1 , x2 , xh , x 3 4 5 0 Luego deben iterar segn el mtodosimplex hasta determinar que el problema es no acotado(Ejercicio).

11

También podría gustarte