You are on page 1of 10

El mtodo del simplex.

Ejercicios resueltos y comentados


1.- Resolver utilizando el mtodo del simplex el programa siguiente
Max x1 + 9 x 2 + x 3 sujeto a x1 + 2 x 2 + 3x 3 9 . 3x1 + 2 x 2 + 2 x 3 15 x1 , x 2 , x 3 0

Solucin:
Paso 1: En primer lugar, transformamos este programa de forma cannica a forma estndar mediante la

introduccin de dos variables de holgura


h Max x1 + 9 x2 + x3 + 0 x1h + 0 x2 sujeto a

Este es el cuerpo de las restricciones

x1 + 2 x2 + 3x3 + x1h 3x1 + 2 x2 + 2 x3 +


h x1 , x2 , x3 , x1h , x2 h x2

=9 = 15 0

Las variables de holgura se incorporan a la funcin objetivo con costos (coeficientes) nulos.

Restricciones de no negatividad para las variables

Expresamos ahora los componentes del problema en forma matricial


1 x1 9 x2 C = 1 ; X = x3 ; h 0 x1 h 0 x2

1 2 3 1 0 9 A= ; B= 3 2 2 0 1 15

y comprobamos que rgA = rg( A, B) = 2 . Esto significa que el sistema AX = B es compatible. Adems obtenemos una base cannica en la matriz A utilizando las dos ltimas columnas lo que implica que no son necesarias variables artificiales para este problema.
Paso 2: Determinamos una primera solucin factible bsica utilizando la matriz bsica cannica Ab =
1 0 , 0 1

y tenemos X 0 = Ab 1 B =

1 0 9 9 = 0 1 15 15

Esta solucin bsica es factible no degenerada y permite considerar las variables de holgura como bsicas y sus costes asociadas como bsicos
xh X b = 1h x2

0 C0 = . 0

Paso 3: Como se trata de un problema de maximizacin utilizaremos el siguiente esquema para la primera

tabla del simplex


XT CT
Aqu se disponen las variables bsicas y sus costes asociados

Xb

Cb

A
C0 T A C T

B
C0T B

Este es el cuerpo de la tabla

zj cj

Calculamos en primer lugar los valores C0 T A C T y C0T B y luego sustituimos en esta primera tabla
1 2 3 1 0 C0 T A C T = ( 0,0) (1,9,1,0,0) = ( 1,9,1,0,0) 3 2 2 0 1 9 C0T B = ( 0,0) = 0 15
h h x1 x 2 x 3 x1 x2

1 9
h0 x1 h0 x2

1 0 0
9 15

1 2 3 1 0 3 2 2 0 1

zj cj

-1 -9 -1 0 0

Paso 4: Para evitar confusiones prescindimos de los valores de la segunda columna y a continuacin

localizaremos el nmero ms negativo de la ltima fila (excluyendo la ltima columna). La columna del cuerpo de la tabla que est situada inmediatamente encima ser la columna de trabajo.
h h x1 x 2 x 3 x1 x2

Esta es la columna de trabajo

1 9 1 0
x1h
h x2

0
9 15

1 3

[ 2] [ 2]

3 1 0 2 0 1

zj cj

-1 -9

-1 0 0

0
Este es el nmero ms negativo de la ltima fila (sin contar el elemento de la ltima columna)

Ahora dividiremos cada nmero de la ltima columna del cuerpo de la tabla por el correspondiente en la columna de trabajo
h h x1 x 2 x 3 x1 x2

1 9 1 0
x1h
h x2

0
9 15

1 3

[ 2] [ 2]

3 1 0 2 0 1

zj cj

-1 -9

-1 0 0

y obtenemos los valores 9/2 = 4,5 y 15/2= 7,5. Entre tales valores se escoge el que d un resultado menor y el elemento de la columna de trabajo que proporciona este valor mnimo se distingue como elemento pivote.
h h x1 x 2 x 3 x1 x2

1 9 1 0
x1h
h x2

0
9 15

1 2* 3 2

3 1 0 2 0 1

zj cj

-1 -9

-1 0 0

Este es el elemento pivote

Paso 5: Prescindimos de los valores numricos de la ltima fila de la tabla y utilizando operaciones

elementales de filas reducimos a ceros todos los elementos de la columna de trabajo distintos del pivote y a ste lo hacemos igual a la unidad
x1 x2
h h x 3 x1 x2

1
x1h
h x2

0
9/2 15

1 / 2 1* 3 / 2 1 / 2 0 3 2 2 0 1

zj cj
Hemos multiplicado por todos los elementos de la primera fila del cuerpo de la tabla

x1

x2

h h x 3 x1 x2

1
x1h
h x2

1
1

0
1

0
9/2 6
A la segunda fila le aadimos el resultado de multiplicar (-2) por la primera

1 / 2 1* 3 / 2 1 / 2 0 2 0 1

zj cj

Paso 6: La variable bsica situada en la fila del pivote pasa a ser no bsica y la variable no bsica situada en

la columna del pivote pasa a ser bsica. Aadimos ahora sus costes asociados. (Sealemos que no es conveniente retocar las variables de la primera fila de la tabla).

x1

x2

h h x 3 x1 x2

1 0
x2 9 h x2 0

1 / 2 1* 3 / 2 1 / 2 0 2 0 1 1 1

9/2 6

zj cj

Paso 7: Reiteramos los pasos 3 y 4 y volvemos a efectar los clculos z j c j , teniendo en cuenta que ahora

es
1 / 2 1* 3 / 2 1 / 2 0 9 / 2 ; B= A= 6 0 1 1 1 2

; C0 =

9 0

y resulta
1 / 2 1* 3 / 2 1 / 2 0 (1,9,1,0,0) = ( 7 / 2, 0, 25 / 2, 9 / 2, 0 ) C0T A C = (9,0 ) 0 1 1 1 2

9 / 2 C0 T B = (9,0 ) = 81 / 2 . 6

Reiteracin del paso 3


x1 x2
h h x 3 x1 x2

1
x2 9 h x2 0

1
1

0
1

0
9/2 6

1 / 2 1* 3 / 2 1 / 2 0 2 0 1

zj cj

7/2 0

0 25/2 9/2

81/2

Reiteracin del paso 4: No es posible debido a que no hay valores negativos en la ltima fila (sin contar la
ltima columna). En consecuencia, el algoritmo se detiene. En el caso de que hubiera aparecido un nmero negativo en esta ltima fila, deberemos reiterar los pasos 5, 6 y 7. Una vez que el algoritmo se ha detenido, identificamos las variables bsicas presentes, que en este caso,
h son x 2 , x 2 y les asociamos los valores de la ltima columna del cuerpo de la tabla

x1

x2

h h x 3 x1 x2

1
x2 9 h x2 0

1
1

0
1

0
9/2 6

1 / 2 1* 3 / 2 1 / 2 0 2 0 1

zj cj

7/2 0

0 25/2 9/2

81/2

x2 9 / 2 h = x2 6 x1 0 y el resto de las variables se hace cero x 3 = 0 quedando como vector solucin h x1 0 x1 0 x 2 9 / 2 x3 = 0 h x1 0 h x2 6

y como valor mximo de la funcin objetivo tenemos el indicado en la ltima fila y ltima columna: 81/2. 2.- Resolver utilizando el mtodo del simplex el programa siguiente
Min z = 80 x1 + 60 x 2 sujeto a 0,20 x1 + 0,32 x 2 0,25 x1 + x2 = 1 x1 , x 2 0

Solucin:
Paso 1: Transformamos este programa de forma mixta a forma estndar mediante la introduccin de una

variable de holgura
Min z = 80 x1 + 60 x 2 + 0 x3 sujeto a 0,20 x1 + 0,32 x 2 + x3 = 0,25 . =1 x1 + x2 x1 , x 2 , x3 0

Como no podemos obtener una base cannica para la determinacin de la primera solucin factible bsica, debemos introducir una variable artificial en la ltima restriccin. Esta variable artificial se incorpora a la funcin objetivo con un coeficiente M muy grande con el fin de que el algoritmo quede penalizado por los valores de esta variable
Min z = 80 x1 + 60 x 2 + 0 x3 + Mx 4 sujeto a 0,20 x1 + 0,32 x 2 + x3 = 0,25 x1 + x2 + x4 = 1 x1 , x 2 , x3 , x 4 0

Expresamos el programa en forma matricial


80 x1 60 x2 C = ; X = x3 ; 0 M x4 0,25 0,20 0,32 1 0 A= ; B = 1 1 0 1 1

y ahora podemos comprobar que rgA = rg( A, B) = 2 .


Paso 2: Determinamos una primera solucin factible bsica utilizando la matriz bsica cannica Ab =
1 0 , 0 1

y tenemos X 0 = Ab 1 B = escribir

1 0 0,25 0,25 . Esta solucin bsica es factible y no degenerada, pudiendo = 0 1 1 1

x3 Xb = x4

0 C0 = . M

Paso 3: Como se trata de un problema de minimizacin utilizaremos el siguiente esquema para la primera

tabla del simplex


XT
CT
Xb Cb

A
CT C0T A

B
C0T B

cj zj

Vamos a efectar los clculos y sustituir en esta primera tabla


0,20 0,32 1 0 0,25 (80, 60,0, M ) ( 0, M ) = (80 M ,60 M ,0,0); ( 0. M ) = M 1 0 1 1 1

x1

x2

x3

x4

80
x3 0 x4 M 0,20 1

60
0,32 1

0
1 0 0 1

M
0,25 1

cj zj

80-M 60-M 0 0

-M

Paso 4: Para evitar errores de redondeo vamos a desglosar la ltima linea de la primera tabla en dos lineas.

La primera contiene a los trminos que no contienen M y la segunda a los trminos que lo contienen.
x1 x2 x3 x4

80

60

x3 0 x4 M

0,20 1

0,32 1

1 0 0 1

0,25 1

80 -1

60 -1

0 -1

0 0

Paso 5: Se aplica ahora el algoritmo del simplex a la ltima fila de la tabla anterior, considerando que el

cuerpo de la tabla se amplia con la penltima fila. As buscamos, en primer lugar, el elemento ms negativo de esta ltima fila (sin incluir la ltima columna).
x1 x2 x3 x4

80

60

x3 x4

0,20 1

0,32 1

1 0 0 1

0,25 1

80 -1

60 -1

0 -1

0 0

Hay dos elementos ms negativos, y elegimos este por comodidad

De esta forma, la columna de trabajo es la primera del cuerpo de la tabla


x1 x2 x3 x4

80

60

x3 x4

[0,20 ]
[1]
80 -1

0,32 1

1 0 0 1

0,25 1

60 -1

0 0

0 0

0 -1

Dividimos cada elemento de la ltima columna del cuerpo de la tabla por el correspondiente en la columna de trabajo.
x1 x2 x3 x4

80

60

x3 x4

[0,20 ]
[1]
80 -1

0,32 1

1 0 0 1

0,25 1

60 -1

0 -1

0 0

y obtenemos 0,25 /0,20 = 1,25 , 1/1 = 1. Esto nos indica que el elemento pivote es el segundo de la primera columna del cuerpo de la tabla
x1 x2 x3 x4

80

60

x3 x4

0,20 0,32 1* 1

1 0

0 1

0,25 1

80 -1

60 -1

0 0

0 0

0 -1

A continuacin hacemos ceros con operaciones elementales de filas en el cuerpo de la tabla y en la ltima fila.
x1 x2 x3 x4

80

60

x3 x4

0 0,12 1 1

1 0,20 0 1

0,05 1

0 -20 0 0

0 0

-80 1

-80 0

Cambiamos las variables bsicas y no bsicas. As x1 pasa a ser bsica y x 4 deja de ser bsica. Observacin importante: Siempre que una variable artificial deja de ser bsica, se elimina de la primera lnea de la tabla junto con toda la columna por debajo de ella. Como la variable x 4 es artificial y ha dejado de ser bsica, podemos eliminar toda la columna por debajo de ella. Observacin importante: La ltima fila de la tabla puede eliminarse si nos da todo ceros.

Como esto ocurre en nuestra tabla podemos suprimir la ltima fila.


x1 x2 x3

80

60

x3 x1

0 0,12 1 1

1 0

0,05 1

0 -20

-80

Calculamos de nuevo CT C0T A y C0T B , con los valores


0 0,05 0 0,12 1 A= ; C0 = , ; B= 80 1 1 1 0 0 0,12 1 0,05 (80,60,0) ( 0,80) = ( 0,20,0) ; ( 0,80) = 80 1 1 0 1

resultando la tabla
x1 x2 x3

80

60

x3 x1

0 0,12 1 1

1 0

0,05 1

0
cj zj

-20

0 0

-80 -80

0 -20

El nmero ms negativo en la ltima fila (excluyendo el correspondiente a la ltima columna) es -20, luego la columna de x 2 es la columna de trabajo.
x1 x2 x3

80

60

x3 x1
Esta es la columna de trabajo correspondiente al nmero ms negativo

0 1

[ 0,12] [1]
-20

1 0

0,05 1

0 0

-80 -80

0 -20

Las razones entre los elementos de ltima columna y los correspondientes de la columna de trabajo son 0,05/0,12= 0,417 y 1/1 =1. De esta manera, el elemento pivote es el 0,12.

x1

x2

x3

80

60

x3 x1

0 0,12* 1 1

1 0

0,05 1

-20

-80

Convertimos el pivote en 1 y hacemos ceros de forma adecuada


x1 x2 x3

80

60

x3 x1

0 1 1 1

8,333 0

0,416 1

0 -20

-80

x1

x2

x3

80

60

x3 x1

0 1

1 0

8,333 8,333

0,416 0,584

166,7

-71,68

Entra como variable bsica x 2 y sale como no bsica x 3 quedando.


x1 x2 x3

80

60

x2 x1

0 1

1 0

8,333 8,333

0,416 0,584

166,7

-71,68

Como en la ltima fila no aparecen elementos negativos se termina la aplicacin del algoritmo y la solucin es z = 71,68 ya que se cambia el signo del valor obtenido en la ltima fila y columna. Este valor se alcanza para
x1 = 0,584, x 2 = 0,416 .

You might also like