• No se han encontrado resultados

Método de las dos fases

Conclusión:

El método simplex es más práctico que el método algebráico, pero para problemas de un mediano número de variables y restricciones, fácilmente se vuelve dispendioso por el número de iteraciones y demorado para obtener la solución óptima, es aquí donde el uso del computador se hace indispensable y útil en términos de eficiencia, para ello existe el software adecuado, los más conocidos son:

WinQsb de Yih-Long Chang, distribuido por John Wiley & Sons. Inc N.Y. Se puede descargar una versión gratuita de: http://www.softonic.com/s/winqsb

Solver de Frontline Systems Inc., que viene integrado con el Excel de Microsoft.

Se sugiere consultar las siguientes páginas web:

http://www.unibague.edu.co/~francisco.chediak http://www.freewebtown.com/kchediak/

http://operativa.tripod.com/index.html www.lindo.com

Fase I

Minimizar Z = 4X1 + X2 + MX3 + MX5 La fase I siempre será minimizar la sumatoria de todas las varia- bles que tenga el problema.

c.s.r.

3X1 + X2 + X3 = 3

4X1 + 3X2 - X4 + X5 = 6

X1 + 2X2 + X6 = 4

Xj ≥ 0; j = 1, 2, 3, 4, 5, 6

A continuación procedemos a solucionar el problema planteado, usando el método simplex, ya sea manualmente o mediante el software WinQsb. De forma manual, los resultados son los siguientes:

C%j V.B.$ b X01 X02 X13 X04 X15 X06 b/a

1 X3 3 3 1 1 0 0 0 1 $(1/3)

1 X5 6 4 3 0 -1 1 0 3/2

0 X6 4 1 2 0 0 0 1 4

Zj - Cj 9 7 4 0 -1 0 0

(

C%j V.B.$ b X01 X02 X13 X04 X15 X06 b/a

0 X1 1 1 1/3 1/3 0 0 0 3 (-4)(-1)

1 X5 2 0 5/3 -4/3 -1 1 0 6/5 $(3/5)

0 X6 3 0 5/3 -1/3 0 0 1 9/5

Zj - Cj 2 0 5/3 -7/3 -1 0 0

(

Cj $ 0 0 1 0 1 0

% V.B. b X1 X2 X3 X4 X5 X6

0 X1 3/5 1 0 3/5 1/5 -1/5 0

0 X2 6/5 0 1 -4/5 -3/5 3/5 0 (-1/3)(-5/3)

0 X6 1 0 0 1 1 -1 1

Zj - Cj 0 0 0 -1 0 -1 0

En esta solución óptima de la primera fase, todas las variables artificiales son iguales a cero (X3 = X5 = 0) y Z* = 0, luego procedemos a la segunda fase.

Fase II

En el tablero óptimo de la fase I, se estableció que las variables artificiales X3 y X5 son iguales a cero y son variables no básicas, que no pueden volver a entrar a la base, esto quiere decir que sus respectivas columnas pueden ser eliminadas del tablero óptimo de la fase I, siendo el problema a resolver en la segunda fase el siguiente:

Minimizar Z = 4X1 + X2

Con las siguientes restricciones:

X1 + 1/5X4 = 3/5

X2 - 3/5X4 = 6/5

X4 + X6 = 1 Xj ≥ 0; j = 1, 2, 4, 6

En la fase II, la función objetivo es la original del problema. El nuevo problema a resolver, no tiene la gran M, ya que han dejado de figurar las variables artificiales, en atención a que en la fase I se estableció que son iguales a cero y por ser artificiales, nunca serán escogidas para entrar a la base. La solución al nuevo problema se halla mediante el método simplex. Así:

C%j V.B.$ b X41 X12 X04 X06 b/a

4 X1 3/5 1 0 1/5 0 3

1 X2 6/5 0 1 -3/5 0 NR

0 X6 1 0 0 1 1 1 $

Zj - Cj 18/5 0 0 1/5 0

(

Cj $ 4 1 0 0

% V.B. b X1 X2 X4 X6

4 X1 2/5 1 0 0 -1/5

1 X2 9/5 0 1 0 3/5

0 X4 1 0 0 1 1 (-1/5)(3/5)

Zj - Cj 17/5 0 0 0 -1/5

Solución:

X1* = 2/5 X4* = 1

X2* = 9/5 X6* = 0

Z* = 17/5 X3* = X5* =0

En la siguiente página se presenta un paralelo entre el tablero simplex con la gran M y el método de las dos fases.

Paralelo entre el tablero simplex y el método de las dos fases, observe que el método de las dos fases evita los tableros donde figura la gran M, ello le cuesta una iteración adicional.

Tablero Simplex con la gran M Método de las dos fases

Cj$ 4 1 M 0 M 0

b/a Cj $ 0 0 1 0 1 0

% B b X1 X2 X3 X4 X5 X6 % B b X1 X2 X3 X4 X5 X6 b/a

M X3 3 3 1 1 0 0 0 1 $(1/3) 1 X3 3 3 1 1 0 0 0 1 $(1/3)

M X5 6 4 3 0 -1 1 0 3/2 1 X5 6 4 3 0 -1 1 0 3/2

0 X6 4 1 2 0 0 0 1 4 0 X6 4 1 2 0 0 0 1 4

Zj - Cj 9M7M-4 4M-1 0 -M 0 0 Zj - Cj 9 7 4 0 -1 0 0

( (

Cj $ 4 1 M 0 M 0

b/a Cj $ 0 0 1 0 1 0

% B b X1 X2 X3 X4 X5 X6 % B b X1 X2 X3 X4 X5 X6 b/a

4 X1 1 1 1/3 1/3 0 0 0 3 (-4)(-1) 0 X1 1 1 1/3 1/3 0 0 0 3 (-4)(-1) M X5 2 0 5/3 -4/3 -1 1 0 6/5$(3/5) 1 X5 2 0 5/3 -4/3 -1 1 0 6/5$(3/5)

0 X6 3 0 5/3 -1/3 0 0 1 9/5 0 X6 3 0 5/3 -1/3 0 0 1 9/5

Zj - Cj 2M+4 0 5/3M+1/3 -7/3M+4/3 -M 0 0 Zj - Cj 2 0 5/3 -7/3 -1 0 0

( (

Cj $ 4 1 M 0 M 0

b/a Cj $ 0 0 1 0 1 0

% B b X1 X2 X3 X4 X5 X6 % B b X1 X2 X3 X4 X5 X6

4 X1 3/5 1 0 3/5 1/5 -1/5 0 3 0 X1 3/5 1 0 3/5 1/5 -1/5 0

1 X2 6/5 0 1 -4/5 -3/5 3/5 0 NR(-1/3)(-5/3) 0 X2 6/5 0 1 -4/5-3/5 3/5 0 (-1/3)(-5/3)

0 X6 1 0 0 1 1 -1 1 1 $ 0 X6 1 0 0 1 1 -1 1

Zj - Cj 18/5 0 0 -M+8/51/5-M-1/5 0 Zj - Cj 0 0 0 -1 0 -1 0 (

Cj $ 4 1 M 0 M 0 Cj $ 4 1 0 0

% B b X1 X2 X3 X4 X5 X6 % B b X1 X2 X4 X6 b/a

4 X1 2/5 1 0 2/5 0 0 -1/5 4 X1 3/5 1 0 1/5 0 3

1 X2 9/5 0 1 -1/5 0 0 3/5 1 X2 6/5 0 1 -3/5 0 NR

0 X4 1 0 0 1 1 -1 1 (-1/5)(3/5) 0 X6 1 0 0 1 1 1 $

Zj - Cj 17/5 0 0 -M+7/5 0 -M -1/5 Zj - Cj 18/5 0 0 1/5 0 (

Solución: Cj $ 4 1 0 0

X1* = 2/5 X4* = 1 % B b X1 X2 X4 X6

X2* = 9/5 X6* = 0 4 X1 2/5 1 0 0 -1/5 (3/5)

Z* = 17/5 X3*=X5*=0 1 X2 9/5 0 1 0 3/5

0 X4 1 0 0 1 1 (-1/5)(3/5) Zj - Cj 17/5 0 0 0 -1/5

Tabla de Garfinkel

La tabla de Garfinkel se basa en las siguientes aseveraciones:

Si las columnas de las variables básicas, siempre son vectores unitarios, ¿para qué escribirlas en el tablero? Lo anterior lleva a eliminar del tablero simplex, las columnas de las variables básicas, de tal forma que el tablero estará conformado en sus filas por las variables básicas y en sus columnas por las variables no básicas.

Si las variables artificiales, al salir de la base nunca serán escogidas para entrar de nuevo, ¿para qué escribir su columna en el tablero? Lo anterior lleva a eliminar las columnas de las variables artificiales que abandonen la base.

Propiedades

1. Maneja solo las columnas de las variables no básicas.

2. Todos los cálculos están en función del elemento pivote

3. Cuando de la base, sale una variable artificial, se elimina la columna que ella ocupará.

Algoritmo para la tabla de Garfinkel

1. Escoja variable para entrar y variable para salir, de igual forma que en el tablero simplex.

2. Invierta el elemento pivote (elemento donde se cruza la fila k-ésima de la variable que sale, con la columna l-ésima de la variable que entra, el inverso, colóquelo en la misma posición, pero en la tabla de la siguiente iteración.

3. Dividir todos los elementos de la fila k-ésima, (exceptuando la casilla del elemento pivote akl) por el valor del elemento pivote akl, los resultados, son los elementos de la fila k-ésima en la nueva tabla.

4. Dividir todos los elementos de la columna l-ésima (exceptuando la casilla del elemento pivote akl por menos (-) el elemento pivote (-akl), los resultados, son los elementos de la columna l-ésima en la nueva tabla.

5. Calcular el resto de los elementos de la tabla nueva, así:

a

kl = Elemento pivote, en donde, k = Fila donde se encuentra el elemento pivote, l = Columna donde se encuentra el elemento pivote.

a

kl(nuevo) =

a

kl(viejo)

1

a

ij(nuevo)

= a

ij(viejo)

- a

il

* a

kj

a

kl

6. Si hay variable para entrar, regrese al punto 1, de lo contrario, parar y esa es la solución óptima factible.

Ejemplo 3.8 Método simplex, Tabla de Garfinkel, sin la gran M

Maximizar Z=X1+3/2X2 Maximizar Z = X1 + 3/2X2

c.s.r. c.s.r.

2X1 + 2X2 ≤ 16 2X1 + 2X2 + X3 = 16

X1 + 2X2 ≤ 12 X1 + 2X2 + X4 = 12

4X1 + 2X2 ≤ 28 4X1 + 2X2 + X5 = 28

Xj ≥ 0; j = 1, 2 Xj ≥ 0; j = 1, 2, 3, 4, 5

Cj $ 1 3/2

b/a El elemento pivote es: a22 = 2, luego en la tabla nueva, el elemento a22 es: 1/2

Toda la fila 2 actual, se divide por el elemento pivote (2), dando origen a la nueva fila 2: 12/2=6;

1/2=1/2

Todos los elementos de la columna 2 se dividen por el menos pivote (-2), dando origen a la nue- va columna 2: 2/-2=-1; 2/-2=-1. Hechas estas operaciones, la nueva tabla queda así:

% V.B. b X1 X2

0 X3 16 2 2 8

0 X4 12 1 2 6 $

0 X5 28 4 2 14

Zj - Cj 0 -1 -3/2 (

Cj $ 1 0

b/a Los demás elementos del nuevo tablero, se calculan empleando la siguiente formula:

a

ij(nuevo)

= a

ij(viejo)

- a

il

* a

kj

a

kl

Enunciada en el punto 5 del algoritmo, los cál- culos son los siguientes:

% V.B. b X1 X4

0 X3 -1

3/2 X2 6 1/2 1/2

0 X5 -1

Zj - Cj

a11(nuevo) = 2 - (2)(1)

= 1 b1(nuevo) = 16 - (2)(12)

2 2 = 4

a31(nuevo) = 4 - (2)(1)

= 3 b3(nuevo) = 28 - (2)(12)

2 2 = 16

La segunda tabla completa es:

Cj $ 1 0 b/a Una vez terminada la segunda tabla, se procede a determinar la variable que entra y la variable que sale, nuevamente se ejecu- tan los pasos descritos en el algoritmo y el resultado de la tercera tabla es:

% V.B. b X1 X4

0 X3 4 1 -1 4 $

3/2 X2 6 1/2 1/2 12

0 X5 16 3 -1 16/3

Zj - Cj 9 -1/4 3/4 (

Cj $ 0 0 X1* = 4

X2* = 4 X3* = X4* = 0 X5* = 4 Z* = 10

% V.B. b X3 X4

1 X1 4 1 -1

3/2 X2 4 -1/2 1

0 X5 4 -3 2

Zj - Cj 10 1/4 1/2

Ejemplo 3.9 Método simplex. Tabla de Garfinkel, con la gran M

Minimizar Z = 4X1 + X2 Minimizar Z = 4X1 + X2 + MX3 + MX5

c.s.r. c.s.r.

3X1 + X2 = 3 3X1 + X2 + X3 = 3

4X1 + 3X2 ≥ 6 4X1 + 3X2 - X4 + X5 = 6

X1 + 2X2 ≤ 4 X1 + 2X2 + X6 = 4

Xj ≥ 0; j = 1, 2 Xj ≥ 0; j = 1, 2, 3, 4, 5, 6

Cj $ 4 1 0

b/a Fíjese que aquí no aparecen las columnas de las variables básicas:

X3, X5 y X6, ya que se sabe que son vectores unitarios .

% V.B. b X1 X2 X4

M X3 3 3 1 0 1 $

M X5 6 4 3 -1 3/2

0 X6 4 1 2 0 4

Zj - Cj 9M 7M-4 4M-1 -M (

Cj $ 1 0

b/a Fíjese que al salir de la base la va- riable artificial X3 su columna desa- parece, ya por ser variable artificial, no puede ser escogida para entrar, luego es inoficioso operar con ella.

% V.B. b X2 X4

4 X1 1 1/3 0 3

M X5 2 5/3 -1 6/5 $

0 X6 3 5/3 0 9/5

Zj - Cj 2M+4 5/3M+1/3 -M (

Cj $ 0 b/a Aquí, la variable básica que salió de la base fue X5 y como es artificial, su columna se elimina.

% V.B. b X4

4 X1 3/5 1/5 3

1 X2 6/5 -3/5 NR

0 X6 1 1 1 $

Zj - Cj 18/5 1/5 (

Cj $ 0 Solución óptima:

X1* = 2/5 X2* = 9/5 X3* = 0 X4* = 1 X5* = 0

X6* = 0 Z* = 17/5

% V.B. b X6

4 X1 2/5 -1/5

1 X2 9/5 3/5

0 X4 1 1

Zj - Cj 17/5 -1/5

Ejemplo 3.10 Método simplex, Tabla de Garfinkel, método de las dos fases

Minimizar Z = 4X1 + X2

Minimizar

Z = 4X1 + X2 + MX3 + MX5

Minimizar Z = X3 + X5

c.s.r. c.s.r. c.s.r.

3X1+ X2 = 3 3X1+ X2+ X3 = 3 3X1+ X2+ X3 = 3

4X1+ 3X2 6 4X1+ 3X2 - X4+ X5 = 6 4X1+ 3X2 - X4 + X5 = 6

X1+ 2X2 4 X1+ 2X2 + X6 = 4 X1+ 2X2 + X6= 4

Xj ≥ 0; j = 1, 2 Xj ≥ 0; j = 1, 2, 3, 4, 5, 6 Xj ≥ 0; j = 1, 2, 3, 4, 5, 6

Cj2F $ 4 1 0 El Z1F corresponde al Zj - Cj de la primera fase. El Z2F corresponde al Zj - Cj de la segun- da fase. Todos los elementos de la tabla se calculan con la fórmula:

a

ij(nuevo)

= a

ij(viejo)

- a

il

* a

kj

a

kl

% Cj1F $ 0 0 0

% RHS* X1 X2 X4

Z2F 0 -4 -1 0

Z1F 9 7 4 -1

0 1 X3 3 3 1 0

0 1 X5 6 4 3 -1

0 0 X6 4 1 2 0

*RHS: Del inglés “Right-Hand Side” = Lado derecho. Son los bi de las restricciones.

A manera de ejemplo se muestra el cálculo de toda la fila correspondiente al Z1F, así:

(1 1 0)

(

364

)

= 9 (1 1 0)

(

341

)

- 0= 7 (1 1 0)

(

132

)

- 0= 4 (1 1 0)

(

-100

)

- 0= -1

El cálculo correspondiente a la fila del Z2F es el siguiente:

(0 0 0)

(

364

)

= 0 (0 0 0)

(

341

)

- 4= -4 (0 0 0)

(

132

)

- 1= -1 (0 0 0)

(

-100

)

- 0= 0

RHS X2 X4 RHS X4 RHS X6

Z2F 4 1/3 0 Z2F 18/5 1/5 Z2F 17/5 -1/5

Z1F 2 5/3 -1 Z1F 0 0 X1 2/5 -1/5

X1 1 1/3 0 X1 3/5 1/5 X2 9/5 3/5

X5 2 5/3 -1 X2 6/5 -3/5 X4 1 1

X6 3 5/3 0 X6 1 1

Solución óptima:

X1* = 2/5 X4* = 1 X3* = 0 X2* = 9/5 X6* = 0 X5* = 0 Z* = 17/5