Вы находитесь на странице: 1из 64

Tema 2 El m etodo simplex

Los modelos lineales con dos o tres variables se pueden resolver gr acamente. En el Tema 1 hemos visto la soluci on gr aca de modelos lineales de dos variables. Sin embargo, este m etodo no puede ser utilizado en modelos que tengan m as de tres variables. Para resolver modelos m as grandes se necesita un procedimiento algebr aico como el algoritmo simplex, publicado en 1949 por George B. Dantzig, para dar soluciones num ericas a problemas de programaci on lineal. El desarrollo de la teor a de la programaci on lineal se basa en la siguiente forma de escribir el modelo. Forma est andar. Un modelo lineal est a escrito en forma est andar si todas las restricciones son del tipo = y todas las variables del modelo y las componentes del vector b son no negativas. El modelo en forma matricial: max(min) z = cT x sujeto a Ax = b x0 Si el objetivo es maximizar, entonces se tiene la forma est andar de maximizaci on y, si el objetivo es minimizar, la forma est andar de minimizaci on.

2.1 Cambios en el modelo


El primer paso en el proceso de encontrar la soluci on o ptima de un modelo lineal es escribir el modelo en forma est andar. La mayor a de los modelos lineales 19

20

Tema 2. El m etodo simplex

no estan inicialmente escritos en esta forma pero se pueden hacer cambios en la funci on objetivo, en las restricciones y en las variables del modelo para obtener la forma est andar. 1. Funci on objetivo. Calcular el m nimo de la funci on z es equivalente a calcular el m aximo de la funci on z .
n n

min z =
j =1

cj xj

max (z ) =
j =1

cj xj .

Por ejemplo, calcular el min z = 3x1 5x2 es equivalente a calcular el max (z ) = 3x1 + 5x2 . Es decir, los valores de las variables x1 y x2 que dan a z el valor m nimo son los mismos que los que dan a z el valor m aximo, de forma que min z = max (z ). 2. Restricciones. (a) Todas las restricciones del modelo lineal se pueden escribir en el mismo sentido dado que se verica
n n

aij xj bi
j =1

j =1

aij xj bi .

Por ejemplo, dada la restricci on 2x1 +3x2 2, multiplicando por 1 los dos miembros de la desigualdad, se puede escribir 2x1 3x2 2. (b) Las restricciones se pueden escribir con igualdad de la siguiente manera:
n n

aij xj bi
j =1 n

j =1 n

aij xj + y = bi , aij xj y = bi .
j =1

aij xj bi
j =1

La variable y utilizada en los dos cambios anteriores se llama variable de holgura; en ambos casos la variable y es mayor o igual que cero. Por ejemplo, la restricci on x1 4x2 4 es equivalente a la restricci on x1 4x2 + y = 4, donde y es una variable no negativa.

OpenCourseWare, UPV/EHU

2.1. Cambios en el modelo

21

(c) Una restricci on con igualdad es equivalente a escribir dos restricciones con desigualdad de la siguiente manera:
n n n

aij xj = bi
j =1 j =1

aij xj bi

y
j =1

aij xj bi .

Por ejemplo, la restricci on 2x1 + x2 = 2 es equivalente a escribir las dos siguientes: 2x1 + x2 2 3. Variables. Las variables deben satisfacer la restricci on de no negatividad. Para garantizar que se cumple dicha restricci on se tienen los siguientes cambios: Si xj 0, entonces se puede hacer el siguiente cambio de variable xj = xj , donde xj 0. Si xj no tiene restricci on de signo, se puede escribir como diferencia de 2 variables positivas de la siguiente forma:
xj = xj x j , donde xj , xj 0.

2x1 + x2 2.

Si xj > x j , entonces xj > 0. Si xj < x j , entonces xj < 0. Si xj = x j , entonces xj = 0. Ejemplo. Escribir el siguiente modelo lineal en forma est andar de maximizaci on. min z = x1 + 2x2 + x3 sujeto a x1 + x2 x3 2 x1 2x2 + 5x3 1 x1 + x2 + x3 = 4 x1 0 , x2 0, x3 : no restringida

Investigaci on Operativa. Programaci on Lineal

22

Tema 2. El m etodo simplex

Funci on objetivo. La forma est andar de maximizaci on es max (z ) = x1 2x2 x3 . Cambios en las restricciones. En la primera restricci on restamos una variable de holgura x4 , x1 + x2 x3 x4 = 2. En la segunda restricci on sumamos una variable de holgura x5 , x1 2x2 + 5x3 + x5 = 1. Para hacer positivo el segundo miembro de la desigualdad multiplicamos por 1 en ambos miembros, x1 + 2x2 5x3 x5 = 1. La tercera restricci on est a en forma est andar, x1 + x2 + x3 = 4. Cambios en las variables. La variable x1 0 verica la restricci on de no negatividad. Para la variable x2 0 se hace el cambio x2 = x2 y para la variable no restringida x3 se hace el cambio x3 = x3 x 3. El modelo despu es de estos cambios es el siguiente: max (z ) = x1 + 2x2 x3 + x 3 + 0x4 + 0x5 sujeto a x1 x2 x3 + x 3 x4 = 2 x1 2x2 5x3 + 5x3 x5 = 1 x1 x2 + x3 x 3 = 4 x1 , x2 , x3 , x3 , x4 , x5 0 Sumar o restar variables de holgura no debe cambiar el objetivo, por tanto los coecientes de las variables de holgura en la funci on objetivo deben ser cero. 2

OpenCourseWare, UPV/EHU

2.2. Soluciones de modelos lineales

23

2.2 Soluciones de modelos lineales


Ya hemos visto que cualquier modelo lineal se puede escribir en forma est andar. El algoritmo simplex introducido en este cap tulo est a dise nado para maximizar y, por eso, de ahora en adelante cuando decimos forma est andar nos referimos a la forma est andar de maximizaci on; recordemos que en la forma est andar las componentes del vector b son no negativas. Sea el siguiente modelo lineal en forma est andar: max z = cT x sujeto a Ax = b x0 donde x y c son vectores n 1, b es un vector m 1 y A es una matriz de tama no m n. Supongamos que m < n y que el rango de la matriz de coecientes es m. Un sistema de este tipo tiene innitas soluciones. El problema es calcular la soluci on que da a la funci on objetivo el valor o ptimo. Veamos las siguientes deniciones que se utilizar an en el desarrollo del m etodo simplex. Denici on 1. Un vector x que satisface Ax = b se dice que es soluci on para el problema. Denici on 2. Si x es soluci on para el problema, es decir, verica Ax = b, se dice que es factible si x 0. Denici on 3. Dada una matriz base B formada por m columnas de la matriz A, se dice que xB es soluci on b asica si verica BxB = b. Todas las componentes no b asicas son 0. Por tanto, una soluci on b asica tiene como m aximo m componentes distintas de cero. Si, adem as, xB tiene todas sus componentes no negativas se dice que es una soluci on factible b asica. Denici on 4. Una soluci on factible b asica se dice que es degenerada si alguna componente b asica es cero, es decir, si tiene menos de m componentes estrictamente positivas. Una soluci on factible b asica que tiene m componentes mayores que cero se llama no degenerada.

Investigaci on Operativa. Programaci on Lineal

24

Tema 2. El m etodo simplex

Denici on 5. El conjunto de todas las soluciones factibles del problema lineal se llama regi on de factibilidad o conjunto convexo de soluciones factibles. Lo denotaremos por F . Denici on 6. La soluci on o ptima del problema se denota por x y el valor o on objetivo por z = cT x . ptimo de la funci Denici on 7. El problema lineal es no acotado cuando la funci on objetivo no tiene valor o ptimo nito, es decir, z + o z . Denici on 8. Se dice que un problema lineal tiene soluciones o ptimas m ultiples u o as de una soluci on o ptima. ptimos alternativos si tiene m En adelante identicaremos matriz base con base. Ejemplo. Considerar el modelo lineal en forma est andar max z = 3x1 + 6x2 + 5x3 + 4x4 + x5 sujeto a 2x1 + 8x2 + 3x3 + x4 + x5 = 6 x1 + x2 + 2x3 + x4 =4 x1 , x2 , x3 , x4 , x5 0 Elementos del modelo: cT = (3, 6, 5, 4, 1), xT = (x1 , x2 , x3 , x4 , x5 ), 2 8 3 11 6 , b = . A= 1 1 2 10 4

El rango de la matriz A es 2, menor que el n umero de incognitas. Por tanto, el sistema de restricciones tiene innitas soluciones. Sin embargo, el n umero de soluciones b asicas es nito. Recordemos que para calcular las soluciones b asicas se eligen todas las posibles bases B entre las columnas de la matriz A y se resuelve el sistema xB = B1 b. xB es el vector de variables b asicas.

OpenCourseWare, UPV/EHU

2.2. Soluciones de modelos lineales

25

1. Si elegimos la matriz B formada por las columnas primera y cuarta de la matriz A, 2 1 , B= 1 1 se puede comprobar que es base. x1 x4 8 3 1 1 2 0 x2

xB = Entonces, 2 1 1 1

N=

y xN = x3 . x5

xB =

6 4

2 1 1 1

x 2 x3 . 1 2 0 x5 8 3 1

(2.1)

Las innitas soluciones del sistema se calculan dando todos los posibles valores a las variables libres x2 , x3 y x5 . Si damos valores x2 = 0, x3 = 0 y x5 = 0 en la ecuaci on (2.1), haciendo c alculos se tiene la siguiente soluci on b asica: 1 1 6 2 = . xB = 1 2 4 2 Esta soluci on es factible porque no tiene componentes negativas. Si damos valores x2 = 0, x3 = 1 y x5 = 0, sustituyendo estos valores de las variables libres en la ecuaci on (2.1), se obtienen los valores de las variables b asicas, 0 1 2 7 1 1 x 1 = . 1 = 1 2 6 1 1 x4 0
Investigaci on Operativa. Programaci on Lineal

26

Tema 2. El m etodo simplex

Es decir, el vector xT = (1, 0, 1, 1, 0) es soluci on. Es factible porque no tiene componentes negativas. Sin embargo, no es soluci on b asica porque la componente no b asica x3 toma un valor distinto de cero. 2. Si elegimos la matriz B formada por las dos primeras columnas de A, 2 8 1 1

B=

es base y, dando valor cero a todas las variables libres, se tiene la siguiente soluci on b asica: 2 8 1 1 1 6 4 1 6
1 6 4 3

xB =

1 3

6 4

13 3

1 3

La soluci on b asica obtenida no es factible dado que la variable x2 es negativa. 3. Si elegimos la matriz B formada por las columnas tercera y quinta de la matriz A, 3 1 , B= 2 0

es base y, dando valor 0 a todas las variables libres, se tiene la soluci on b asica 3 1 2 0 1 6 4 0 1
1 2

xB =

3 2

6 4

2 0

Esta soluci on es factible. Adem as, es degenerada porque una de las componentes b asicas toma el valor 0. 2

OpenCourseWare, UPV/EHU

2.3. Puntos extremos y soluciones b asicas

27

2.3 Puntos extremos y soluciones b asicas


En la soluci on gr aca de modelos lineales hemos visto que la soluci on o ptima se encuentra en un punto extremo del conjunto convexo de soluciones factibles. En el caso de que el problema tenga soluciones o ptimas m ultiples al menos una ser a un punto extremo. Para resolver modelos que tienen m as de 3 variables no se puede utilizar la interpretaci on geom etrica y es necesario resolver el problema algebraicamente. En los dos siguientes teoremas se presentan las demostraciones de los resultados b asicos que permiten pasar de la geometr a al a lgebra. En las demostraciones se utilizan los siguientes resultados de conjuntos convexos. 1. El conjunto F de soluciones factibles de un modelo lineal en forma est andar es un conjunto convexo y cerrado. 2. Se dice que un punto x de un conjunto convexo F es un punto extremo si no existen x1 , x2 F , x1 = x2 tales que x = x1 + (1 )x2 , 0 1.

3. Todo punto x de un conjunto convexo cerrado y acotado se puede escribir como combinaci on lineal convexa generalizada de los puntos extremos.
q q

x=
i=1

i xi , 0 i 1,
i=1

i = 1.

En el siguiente teorema se demuestra que a cada punto extremo con componentes no negativas le corresponde una soluci on factible b asica y, reciprocamente, a cada soluci on factible b asica le corresponde un punto extremo con componentes no negativas. Teorema 2.3.1 Sea el modelo lineal en forma est andar max z = cT x sujeto a Ax = b x0 Un vector x es soluci on factible b asica si y s olo si x es punto extremo de F.

Investigaci on Operativa. Programaci on Lineal

28

Tema 2. El m etodo simplex

Supongamos que existen dos puntos x1 , x2 F , tales que

Demostraci on. Si x es una soluci on factible b asica, veamos que es un punto extremo. Si x es una soluci on factible b asica, como m aximo tiene m variables mayores que cero. Para facilitar la notaci on supongamos que son las m primeras. Entonces, xB . x= 0 x = x1 + (1 )x2 , 0 < < 1. Sean

donde yi , i = 1, 2 es de dimensi on m 1, e y i , i = 1, 2, es de dimensi on (n m) 1. Entonces, de la igualdad xB y2 y1 + (1 ) = 0 y2 y1 se deduce 0 = y 1 + (1 )y 2 . Por ser y 1 , y2 0, > 0 y 1 > 0, se tiene y 1 = y 2 = 0. De lo anterior se deduce que las soluciones x, x1 y x2 son b asicas y asociadas a la misma base, por tanto, xB = x1 = x2 . Concluimos que no existen 2 puntos distintos x1 y x2 del conjunto de soluciones que permitan escribir x como combinaci on lineal convexa restringida y, en consecuencia, x es un punto extremo. Si x es un punto extremo, entonces es soluci on factible b asica. Supongamos que x tiene las k primeras componentes positivas y el resto son cero. Entonces el sistema de restricciones se puede escribir de la siguiente manera:
k

x1 =

y1 y 1

y x2 =

y2 y 2

xi ai = b.
i=1

OpenCourseWare, UPV/EHU

2.3. Puntos extremos y soluciones b asicas

29

Para ver que x es soluci on b asica factible, es suciente probar que los vectores ai , i = 1, . . . , k, son linealmente independientes. En caso contrario, existir an escalares 1 , . . . , k , no todos nulos, tales que
k

i ai = 0.
i=1

Sea T = (1 , . . . , k , 0, . . . , 0), si se denen x1 = x + y x2 = x , se puede elegir adecuadamente el valor de para que los puntos sean factibles. Adem as, se verica que x1 = x2 y 1 1 x = x1 + x2 , 2 2 de donde se deducir a que x no es un punto extremo. 2

En el siguiente teorema se demuestra que en un modelo lineal en forma est andar que tenga una regi on de soluciones acotada la soluci on o ptima se encuentra en un punto extremo de la regi on de factibilidad. Teorema 2.3.2 Considerar el problema lineal en forma est andar max z = cT x sujeto a Ax = b x0 El valor o on objetivo se encuentra en un punto extremo del con ptimo de la funci junto F . Demostraci on. Supongamos que tenemos una soluci on o ptima x que no es un punto extremo y que z = cT x es el valor o ptimo del problema. Entonces, se verica que para todo x F z = cT x cT x = z .

Investigaci on Operativa. Programaci on Lineal

30

Tema 2. El m etodo simplex

Sean {x1 , . . . , xk } el conjunto de los puntos extremos de F . Todo punto de la regi on F , en particular el punto x , se puede escribir como combinaci on lineal convexa de los puntos extremos.
k k

x =
i=1

i xi , i 0,
i=1

i = 1.

Entonces,
k k

z =c x =c

T i=1

i xi =
i=1

i cT xi .

Dado que se verica max(cT xi ) cT xi , i = 1, . . . , k , entonces


i k k k

z =
i=1

i c xi
i=1

i max(c xi ) = max (c xi )
i i i=1

i = max(cT xi ) z .
i

Como consecuencia, z = max (cT xi ) y se concluye que el o ptimo se alcanza en i un punto extremo. 2 En el siguiente ejemplo veremos que se verica el resultado del Teorema 2.3.1 y del Teorema 2.3.2. Teniendo en cuenta que el n umero de soluciones b asicas de un modelo lineal es nito, es posible construir un procedimiento iterativo que comenzando en una soluci on factible b asica se desplace a otra mejor hasta obtener la o ptima. Ejemplo. Sea el modelo lineal max z = x1 + 2x2 sujeto a x1 + 4x2 4 x1 x2 3 x1 , x2 0 En primer lugar, calculamos la soluci on o ptima gr acamente.

OpenCourseWare, UPV/EHU

2.3. Puntos extremos y soluciones b asicas

31

x2

x1 x2 = 3

x1 + 4x2 = 4 B A O C x1 max

La regi on de soluciones F tiene cuatro puntos extremos: O = (0, 0) , A = (0, 1) , B = 16 7 , C = (3, 0). , 3 3

Desplazando la funci on objetivo en el sentido de maximizaci on el o ptimo se obtiene el punto extremo B . Para calcular las soluciones b asicas y ver que a cada punto extremo de la gr aca le corresponde una soluci on b asica factible, escribimos la forma est andar del modelo sumando variables de holgura x3 y x4 . max z = x1 + 2x2 + 0x3 + 0x4 sujeto a x1 + 4x2 +x3 x1 x2 =4 +x4 = 3

x1 , x2 , x3 , x4 0 La matriz de coecientes del sistema tiene cuatro columnas y, por tanto, el m aximo n umero de bases que se pueden elegir es 6, eligiendo entre las 4 columnas todos los posibles grupos de dos columnas linealmente independientes.

Investigaci on Operativa. Programaci on Lineal

32

Tema 2. El m etodo simplex

Primera opci on. Elegir la base B = (a1 a2 ).

Esta soluci on b asica es factible y corresponde al punto extremo B de la gr aca. Segunda opci on. Elegir la base B = (a1 a3 ). 1 1 1 0 1 4 3 0 1 1 1 4 3 3 7

xB =

1 1

4 3

1 3 1 3

4 3 1 3

4 3

16 3 7 3

xB =

Esta soluci on b asica es factible y corresponde al punto extremo C de la gr aca. Tercera opci on. Elegir la base B = (a1 a4 ).

xB =

1 0 1 1

4 3

1 0 1 1

4 3

4 7

Esta soluci on b asica no es factible porque tiene componentes negativas. Por tanto, no se corresponde con ning un punto extremo de la gr aca. Cuarta opci on. Elegir la base B = (a2 a3 ). 4 1 1 0 1 4 3 0 1 1 4 4 3 3 16

xB =

Esta soluci on b asica no es factible porque no todas las componentes son no negativas. Por tanto, no se corresponde con ning un punto extremo de la gr aca.

OpenCourseWare, UPV/EHU

2.4. El m etodo simplex

33

Quinta opci on. Elegir la base B = (a2 a4 ). 4 0 1 1 1 4 3


1 4 1 4

Esta soluci on b asica es factible y se corresponde con el punto extremo A de la gr aca. Sexta opci on. Elegir la base B = (a3 a4 ). 1 0 0 1 1 4 3 1 0 0 1 4 3 4 3

xB =

0 1

4 3

1 4

Esta soluci on b asica es factible y se corresponde con el punto extremo O de la gr aca. 2 En el ejemplo anterior todos los conjuntos de dos vectores elegidos entre las columnas de la matriz de coecientes del sistema son base, por eso se han obtenido 6 soluciones b asicas. En alg un caso puede ocurrir que los vectores elegidos no sean linealmente independientes, entonces no formar an una base y no proporcionar an una soluci on b asica. De las 6 soluciones b asicas calculadas dos de ellas, la tercera y la cuarta, no se corresponden con puntos extremos porque no son factibles.

xB =

2.4 El m etodo simplex


En la soluci on gr aca de modelos lineales se ha visto que para los modelos que tienen soluci on se pueden dar los siguientes casos: soluci on o ptima u nica, soluciones o ptimas m ultiples y soluci on no acotada. El objetivo de esta secci on es identicar las condiciones asociadas a cada tipo de soluci on para poder construir un procedimiento iterativo, el algoritmo simplex, para resolver modelos lineales.

2.4.1 Deniciones y notaci on


Antes de dar los resultados importantes, vamos a jar la notaci on que se utiliza en todo el desarrollo de la programaci on lineal. Considerar el modelo lineal en

Investigaci on Operativa. Programaci on Lineal

34

Tema 2. El m etodo simplex

forma est andar max z = cT x sujeto a Ax = b x0 Suponer que la matriz A tiene m las linealmente independientes y n columnas, con n > m. Se elige una base B formada por m columnas de la matriz A y el resto de columnas forman la matriz N. Para simplicar la notaci on suponer que las columnas elegidas para la base son las m primeras columnas de la matriz A. Denotamos por cB y xB las componentes b asicas de los vectores c y x respectivamente. Y denotamos por cN y xN las componentes no b asicas de los correspondientes vectores. Entonces el modelo lineal se puede escribir de la siguiente manera: x B T max z = (cT B | cN ) xN sujeto a x B (B | N ) = b xN Haciendo c alculos se tiene el modelo
T max z = cT B xB + cN xN sujeto a BxB + NxN = b xB , xN 0

xB , xN 0

Soluci on b asica. Haciendo xN = 0, se tiene BxB = b y se calcula la soluci on b asica xB = B1 b,

OpenCourseWare, UPV/EHU

2.4. El m etodo simplex

35

donde

Valor de la funci on objetivo. Si cT B = (cB 1 , cB 2 , . . . , cBm ), entonces xB1 m xB2 T = cBi xBi . z = cB xB = (cB1 , cB2 , . . . , cBm ) . . . i=1 xBm

x B1 xB2 xB = . . . xBm

Vector de coordenadas. Si a1 , a2 , . . . , an son los vectores columna de la matriz A, para cada vector se pueden calcular sus coordenadas en funci on de la base B. Para ello, se utiliza la siguiente notaci on:
m

aj = y1j a1 + y2j a2 + + ymj am =


i=1

yij ai .

El vector de coordenadas de aj es y 1j y2j yj = . . . ymj

y se calcula resolviendo el sistema aj = Byj . Es decir, yj = B1 aj . C alculo de zj cj . La necesidad de este c alculo aparece en los teoremas posteriores. A este valor se le llama valor indicador. Asociado a cada vector aj se calcula el escalar zj de la siguiente manera:
m

zj =

cT B yj

= cB1 y1j + cB2 y2j + + cBm ymj =


i=1

cBi yij .

Investigaci on Operativa. Programaci on Lineal

36

Tema 2. El m etodo simplex

Ejemplo. Considerar el modelo lineal en forma est andar max z = 3x1 + 4x2 + 5x3 + 6x4 sujeto a 2x1 + x2 + x3 + 8x4 = 6 x1 + x2 + 2x3 + x4 = 4 x1 , x2 , x3 , x4 0 Si consideramos la base formada por las dos primeras columnas de la matriz de coecientes del sistema podemos escribir el modelo en forma matricial, separando la parte b asica de la no b asica. x 1 x2 max z = (3, 4 | 5, 6) x3 x4 x2 6 2 1 1 8 = 4 1 1 2 1 x3 x4 x1 , x2 , x3 , x4 0 x1

sujeto a

Soluci on b asica. 2 1 1 1 1 6 4 2 2

xB = B1 b =
OpenCourseWare, UPV/EHU

2.4. El m etodo simplex

37

Valor de la funci on objetivo. Teniendo en cuenta que cT B = (3, 4) 2 2

z = cT B xB = (3, 4)

= 14.

Coordenadas de un vector que no sea b asico, por ejemplo a4 , en funci on de la base B. 8 1 2 1 1 1 2 1 1 1 7 6 y14 y24

Resolviendo el sistema se obtienen la coordenadas y14 y24 2 1 1 1 1 8 1

= y14

+ y24

y4 =

C alculo del valor indicador z4 c4 . 7 6

z4 c4 = cT B y4 c4 = (3, 4)

= 3 6 = 9. 2

2.4.2 Mejora de una soluci on factible b asica


La soluci on o ptima para un modelo lineal se alcanza en una soluci on factible b asica del conjunto de restricciones del modelo. El siguiente teorema da las condiciones para ir de una soluci on factible b asica a otra que mejore el valor de la funci on objetivo. Comenzando por una soluci on factible b asica, el m etodo simplex utilizar a este teorema para moverse de una soluci on factible b asica a otra adyacente hasta que no sea posible mejorar el valor de la funci on objetivo.

Investigaci on Operativa. Programaci on Lineal

38

Tema 2. El m etodo simplex

Teorema 2.4.1 (Mejora de una soluci on factible b asica) Sea el modelo lineal en forma est andar max z = cT x sujeto a Ax = b x0 Sea B una base elegida en la matriz A y sean xB = B1 b la soluci on factible T b asica asociada y z = cB xB el valor de la funci on objetivo. Si existe un vector aj de la matriz A que no est e en la base y tal que zj cj < 0 y, para ese vector aj , alguna de sus coordenadas yij , i = 1, . . . , m, es positiva, entonces existe otra soluci on factible b asica xB tal que z = cB xB z = cT B xB . Demostraci on. Para facilitar la notaci on podemos suponer que los vectores de la base B son los m primeros vectores de la matriz A, es decir, B = (a1 , . . . , ar , . . . , am ). Si xB es una soluci on factible b asica, entonces verica las restricciones del modelo.
m T

xB1 a1 + xB2 a2 + + xBm am = b =


i=1

xBi ai .

(2.2)

Los sumandos del sistema que no aparecen en la ecuaci on anterior son cero porque las variables asociadas no son b asicas. Los vectores am+1 , . . . , aj , . . . , an no est an en la base y se pueden escribir en combinaci on lineal de los vectores de B,
m

aj =
i=1

yij ai , j = m + 1, . . . , n.

(2.3)

Para j = m + 1, . . . , n, se tiene que el vector aj = 0, por tanto, tiene alguna componente yij distinta de cero. Supongamos que la componente distinta de cero del vector aj es yrj . Separando el sumando r en la ecuaci on (2.3)
m

aj =
i=1 i=r

yij ai + yrj ar ,

(2.4)

OpenCourseWare, UPV/EHU

2.4. El m etodo simplex

39

se puede despejar el sumando r y expresar el vector ar en combinaci on lineal de

los vectores de B= (a1 , . . . , aj , . . . , am ), 1 ar = aj yrj


m

i=1 i=r

yij ai . yrj

Como hemos visto en el teorema A.3.2 del Ap endice el conjunto B es base. Para calcular la nueva soluci on b asica xB separamos en la expresi on (2.2) el sumando r ,
m

xBi ai + xBr ar = b.
i=1 i=r

Sustituyendo el vector ar ,
m

i=1 i=r

1 xBi ai + xBr [ aj yrj

i=1 i=r

yij ai ] = b. yrj

Reordenando los sumandos,


m

(xBi
i=1 i=r

xBr yij xBr )ai + aj = b. yrj yrj

En funci on de B se ha obtenido un conjunto de m componentes que verican las restricciones del modelo lineal y, por tanto, es la nueva soluci on b asica yij xBi xBr yrj xB = xBr yrj i=r i=r

(2.5)

Ahora el problema es comprobar en qu e condiciones xB es factible. Para ser factible debe cumplir que todas las componentes sean mayores o iguales que 0. Es decir, se tiene que cumplir 1. xBi = xBi xBr

yij 0, i = 1, . . . , m, i = r, yrj

Investigaci on Operativa. Programaci on Lineal

40

Tema 2. El m etodo simplex

2. xBr

xBr 0. yrj xBr 0 yrj > 0. yrj

En primer lugar, dado que yrj = 0 y xBr 0, entonces

Para analizar las condiciones que se deben cumplir para que el resto de componentes de la nueva soluci on sean no negativas, tengamos en cuenta que xBi 0, xBr 0 e yrj > 0. Entonces, se dan los siguientes casos: Si yij < 0, entonces se cumple xBi = xBi xBr Si yij = 0, entonces se cumple xBi = xBi xBr Si yij > 0, entonces xBi = xBi xBr

yij 0. yrj

yij = xBi 0. yrj

xBi xBr xBi xBr yij 0 0 . yrj yij yrj yij yrj

Teniendo en cuenta todas las condiciones, el vector ar que es sustituido en la base por aj debe cumplir la siguiente condici on: xBr xBi = min /yij > 0 . (2.6) i yrj yij Hasta ahora se ha probado que el vector ar que verique el criterio (2.6) puede ser sustitu do en la base y se obtiene una nueva soluci on factible b asica. Veamos en qu e condiciones la soluci on xB es mejor que xB . Es decir, en qu e condiciones se verica T z =cB xB cT B xB = z. Calculamos el valor de z separando el sumando r ,
m m cBi xBi = i=1
i=1 i=r

z=

cBi xBi

+ cBr xBr .

OpenCourseWare, UPV/EHU

2.4. El m etodo simplex


41

Teniendo en cuenta que para i = 1, . . . , m, i = r se tiene cBi = cBi y que c Br = cj , sustituyendo en la f ormula anterior,
m

z=
i=1 i=r

cBi (xBi xBr

xBr yij ) + cj = (). yrj yrj

Dado que si i = r cBr (xBr xBr

yrj ) = 0, yrj

en el sumatorio se puede quitar la condici on i = r y se tiene


m

( ) =
i=1

cBi (xBi xBr

yij xBr ) + cj . yrj yrj

Haciendo c alculos
m

z=
i=1

xBr cBi xBi yrj

cBi yij + cj
i=1

xBr xBr =z (zj cj ). yrj yrj

Se puede concluir que z= z Por tanto, z z


xBr (zj cj ). yrj

(2.7)

xBr (zj cj ) 0 yrj

xBr (zj cj ) 0. yrj

Como xBr 0 e yrj > 0, si zj cj < 0, entonces z z . El criterio que debe cumplir un vector aj para entrar en la base a sustituir al vector ar es tener un valor asociado zj cj < 0. Es usual elegir entre todos los valores negativos el menor, seleccionando para entrar en la base el vector ak que cumpla el siguiente criterio: zk ck = min{zj cj /zj cj < 0}.
j

(2.8) 2

Investigaci on Operativa. Programaci on Lineal

42

Tema 2. El m etodo simplex

2.4.3 Reglas de selecci on para el cambio de base


El proceso demostrado en el teorema de mejora consiste en elegir una base B, calcular la soluci on factible b asica asociada y el valor de la funci on objetivo; a continuaci on se elige un vector ak para entrar en la base a sustituir al vector ar

de la base; as se obtiene una nueva base B que proporciona una soluci on factible y tal z es mayor o igual que z . Las reglas de selecci on de los vectores son las siguientes: 1. Regla para elegir el vector que entra en la base. Entra el vector ak tal que zk ck = min{zj cj /zj cj < 0}
j

Esta regla garantiza que cuando se calcula una nueva soluci on el nuevo valor de la funci on objetivo es mejor, es decir z z . 2. Regla para elegir el vector que sale de la base. El vector ak sustituye en la base a un vector ar tal que xBr = min i yrk xBi /yik > 0 yik

Esta regla garantiza que la nueva soluci on es factible, es decir xB 0.

2.4.4 F ormulas para el c alculo de xB y z

Teniendo en cuenta las anteriores reglas de selecci on del vector de entrada y de salida, las f ormulas (2.5) y (2.7) para calcular la nueva soluci on factible b asica y el nuevo valor de la funci on objetivo quedan jadas de la siguiente forma: 1. C alculo de la nueva soluci on. xBi xBr yik i = r yrk xB = xBr i=r
yrk

(2.9)

OpenCourseWare, UPV/EHU

2.4. El m etodo simplex

43

2. C alculo del nuevo valor de la funci on objetivo. z= z

xBr (zk ck ) yrk

(2.10)

Ejemplo. Aplicar el teorema anterior al problema lineal max z = 4x1 + 5x2 + x3 sujeto a x1 + x2 + x3 8 x1 2x2 + x3 2 x1 , x2 , x3 0 El primer paso es obtener la forma est andar del modelo sumando las variables de holgura x4 y x5 y haciendo todas las componentes del vector b no negativas. max z = 4x1 + 5x2 + x3 + 0x4 + 0x5 sujeto a x1 + x2 + x3 +x4 x1 + 2x2 x3 =8 x5 = 2

x1 , x2 , x3 , x4 , x5 0 Comenzamos eligiendo una base, por ejemplo la formada por las columnas primera y cuarta de la matriz de coecientes. Calculamos la soluci on b asica 1 1 1 8 0 1 8 2 = = . xB = B1 b = 1 0 2 1 1 2 6

Esta soluci on es factible y, por tanto, pertenece a la regi on de soluciones. El valor de la funci on objetivo es 2 = 8. z = cT B xB = (4, 0) 6 Veamos si el valor de la funci on objetivo puede mejorar. Selecci on del vector de entrada. Calcular los valores z2 c2 , z3 c3 y z5 c5 asociados a los vectores no b asicos a2 , a3 y a5 .

Investigaci on Operativa. Programaci on Lineal

44

Tema 2. El m etodo simplex

C alculo de z2 c2 . 1 0 1 1 2 = , a2 = , y2 = B1 a2 = 2 1 1 2 1 2 5 = 3 > 0. z2 c2 = cT B y2 c2 = (4, 0) 1

C alculo de z3 c3 . 1 0 1 1 1 , y3 = B1 a3 = = , a3 = 1 1 1 1 2 1 1 = 5 < 0 Puede mejorar. z3 c3 = (4, 0) 2 Calculo de z5 c5 . 0 0 1 0 1 , y5 = B1 a5 = = , a5 = 1 1 1 1 1 1 0 = 4 < 0 Puede mejorar. z5 c5 = (4, 0) 1

Tenemos dos opciones para mejorar el valor de la funci on objetivo: el vector a3 y el vector a5 . Se elige el que debe entrar en la base utilizando la regla de entrada zk ck = min{zj cj / zj cj < 0} =
j

= min{z3 c3 = 5 , z5 c5 = 4} = 5. Entra en la base el vector a3 . Selecci on del vector de salida. Para determinar el vector que debe salir de la base, tenemos en cuenta el vector de coordenadas y3 y el vector soluci on xB : y13 1 xB1 2 = , = . y3 = xB = y23 2 xB2 6
OpenCourseWare, UPV/EHU

2.4. El m etodo simplex

45

Sale de la base el vector ar que verique la regla de salida, xBr = min i yr 3 xBi / yi3 > 0 yi3 = min xB2 6 = y23 2 = 3.

Se elige para salir el segundo vector de la base, es decir, a4 . Cambia la base, la soluci on b asica y el valor objetivo. Calculamos la nueva soluci on con la f ormula (2.9). xB1 = xB1 xB2 xB2 =

y13 1 = 26 y23 2

= 5,

6 xB2 = = 3. y23 2

Calculamos el valor de la funci on objetivo con la f ormula (2.10). z= z

6 xB2 (z3 c3 ) = 8 (5) = 23. y23 2

La nueva soluci on xB es factible y mejora el valor de la funci on objetivo. El teorema se puede aplicar nuevamente (nueva iteraci on) y repetir hasta que todos los valores zj cj sean no negativos. Cuando se cumple esa condici on la soluci on es o ptima; esta condici on se recoge en el siguiente teorema. 2 Teorema 2.4.2 (Condiciones de optimalidad). Sea el problema lineal en forma est andar max z = cT x sujeto a Ax = b x0 Sea B una base elegida en la matriz A y sean xB = B1 b la soluci on factible T b asica asociada y z = cB xB el valor de la funci on objetivo. Si para todos los vectores aj de la matriz A los valores zj cj son mayores o iguales que cero, entonces xB es soluci on factible b asica o ptima para el problema.

Investigaci on Operativa. Programaci on Lineal

46

Tema 2. El m etodo simplex

ptima no acotada 2.4.5 Soluci on o


Como observamos en la soluci on gr aca, en algunos casos el valor o ptimo de la funci on objetivo no es nito. Las condiciones para que la soluci on sea no acotada son las del siguiente teorema. Teorema 2.4.3 Sea el problema lineal en forma est andar max z = cT x sujeto a Ax = b x0 Sea B una base elegida en la matriz A y sean xB = B1 b la soluci on factible T b asica asociada y z = cB xB el valor de la funci on objetivo. Si existe un vector ak en la matriz A, tal que zk ck < 0 y, para ese vector ak , todas las coordenadas yik , i = 1, . . . , m, son menores o iguales que cero, entonces la soluci on del modelo es no acotada. Demostraci on. Sea xB una soluci on factible b asica. Por ser soluci on verica las restricciones del problema xB1 a1 + xB2 a2 + + xBm am = b. (2.11)

Si existe ak tal que zk ck < 0, es posible mejorar el valor de la funci on objetivo. Pero, dado que yik 0 para todo i = 1, . . . , m, no es posible sustituir ning un vector de la base para obtener una nueva soluci on b asica que sea factible. Sin embargo, se puede dar una soluci on (no b asica) factible que da a z un valor que tiende a innito, es decir, el valor de la funci on objetivo ser a no acotado. En la f ormula 2.11 se puede sumar y restar ak , siendo cualquier valor real positivo. Se obtiene xB1 a1 + xB2 a2 + + xBm am ak + ak = b,
m

xBi ai ak + ak = b.
i=1

(2.12)

ak es un vector que no est a en B y se puede escribir como combinaci on lineal de los vectores de B,
m

ak =
i=1

yik ai .

OpenCourseWare, UPV/EHU

2.4. El m etodo simplex

47

Sustituyendo en la ecuaci on (2.12) el vector ak por su expresi on en funci on de la base, la soluci on se puede escribir de la forma
m m

xBi ai
i=1 i=1 m

yik ai + ak = b.

Haciendo c alculos

(xBi yik )ai + ak = b.


i=1

As , se obtiene la siguiente soluci on que depende de m + 1 vectores y, por tanto, es una soluci on no b asica. x y1k B1 xB2 y2k . . . xBm ymk x= (2.13) . 0 . . . . . . 0 Teniendo en cuenta que xBi 0, yik 0 para i = 1, . . . , m y que > 0 xBi yik 0 , i = 1, . . . , m. y, por tanto, la soluci on es factible. El valor de la funci on objetivo en esa soluci on
m m m

z=
i=1

cBi (xBi yik ) + ck =


i=1

cBi xBi
i=1

cBi yik + ck =

= z zk + ck = z (zk ck ). Como zk ck < 0, z crece en funci on de y la soluci on o ptima del problema es no acotada. 2

Investigaci on Operativa. Programaci on Lineal

48

Tema 2. El m etodo simplex

Ejemplo. Calcular la soluci on del problema max z = 3x1 + 2x2 sujeto a x1 x2 5 2x1 3x2 10 x1 , x2 0 La forma est andar max z = 3x1 + 2x2 + 0x3 + 0x4 sujeto a x1 x2 +x3 =5 +x4 = 10 x1 , x2 , x3 , x4 0 Elegimos la base B = (a3 a4 ) y calculamos la soluci on b asica 5 . xB = B1 b = 10 Esta soluci on es factible y el valor de la funci on objetivo es 5 = 0. z = cT B xB = (0, 0) 10 Aplicamos el teorema de mejora.

2x1 3x2

C alculo de z1 c1 . 1 1 0 1 1 = , a1 = , y1 = B1 a1 = 2 0 1 2 2 1 (3) = 3. z1 c1 = cT B y1 c1 = (0, 0) 2


OpenCourseWare, UPV/EHU

2.4. El m etodo simplex

49

C alculo de z2 c2 . 1 1 0 1 1 , y2 = B1 a2 = = , a2 = 3 0 1 3 3 1 2 = 2. z2 c2 = cT B y2 c2 = (0, 0) 3 Aplicando la regla de selecci on,


j

min{zj cj /zj cj < 0} = min{z2 c2 = 2} = 2, se elige para entrar en la base el vector a2 . Para elegir el vector de salida vemos que todas las coordenadas del vector y2 son negativas y, por tanto, ning un vector puede salir de la base. Se cumplen las condiciones del Teorema 2.4.3 y la soluci on es no acotada. Como el problema tiene s olo dos variables originales, podemos resolverlo gr acamente para observar que la soluci on es no acotada.

x2

max

x1

2x1 3x2 = 10 x1 x2 = 5

Investigaci on Operativa. Programaci on Lineal

50

Tema 2. El m etodo simplex

ptimas multiples 2.4.6 Soluciones o


En la soluci on gr aca hemos visto que puede existir m as de una soluci on o ptima para el problema; se dice que el problema tiene soluciones o ultiples u ptimas m o ptimos alternativos. Este tipo de soluciones se puede encontrar para variables acotadas, o para variables no acotadas. En los siguientes teoremas se dan las condiciones de existencia de o ptimos m ultiples. Teorema 2.4.4 Sea el problema lineal en forma est andar max z = cT x sujeto a Ax = b x0 Sea B una base elegida en la matriz A y sean xB = B1 b la soluci on factible T b asica asociada y z = cB xB el valor de la funci on objetivo. Si para todo vector aj de la matriz A se verica que zj cj 0, entonces xB es soluci on o ptima. Si, adem as, existe un vector ak no perteneciente a la base tal que zk ck = 0 y alguna coordenada yik > 0, i = 1, . . . , m, entonces existen soluciones o ptimas m ultiples. Demostraci on. Sea xB una soluci on factible b asica. Dado que para todo aj A se verica que zj cj 0, por el Teorema 2.4.2 podemos decir que xB es o ptima. Si existe ak que no pertenece a la base B y tal que zk ck = 0 y, para ese k existe yrk > 0, entonces ak puede entrar en la base y sustituir a ar que verica xBr = min i yrk

xBi /yik > 0 . yik

Se tiene una nueva base B y una nueva soluci on factible b asica xB . El valor de la funci on objetivo en la nueva soluci on z= z

xBr (zk ck ) = z 0 = z. yrk

Por tanto, xB es tambi en o ptima, dado que el valor de la funci on objetivo es el mismo que el obtenido en xB . 2

OpenCourseWare, UPV/EHU

2.4. El m etodo simplex

51

Teorema 2.4.5 Sea el problema lineal en forma est andar max z = cT x sujeto a Ax = b x0 Sean x1 , . . . , xp soluciones factibles b asicas o ptimas. Entonces las combinaciones lineales convexas generalizadas son soluciones factibles o ptimas. Demostraci on. Sea x el vector de todas las combinaciones lineales convexas.
p p

x=
i=1

ixi , i 0,

i = 1, . . . , p ,
i=1

i = 1.

Probemos que x es soluci on, factible y o ptima. 1. x es soluci on. Dado que xi , i = 1, . . . , p, es soluci on, se verica Axi = b. Entonces,
p p p

Ax = A
i=1

i xi

=
i=1

i Axi = b
i=1

i = b.

Por tanto, x es soluci on. 2. x es factible. Por ser xi 0 y i 0, i = 1, . . . , p, entonces


p

x=
i=1

i xi 0.

Por tanto, x es factible. 3. x es o ptima. Se tiene que xi , i = 1, . . . , p, es o ptima, es decir, z = cT xi . Entonces,


p p p

c x=c

T i=1

i xi =
i=1

i c xi = z

i=1

i = z . 2

Por tanto, x es o ptima.

Investigaci on Operativa. Programaci on Lineal

52

Tema 2. El m etodo simplex

En las condiciones del Teorema 2.4.4 y del Teorema 2.4.5, se obtienen soluciones o ptimas m ultiples con variables acotadas pero, pueden existir soluciones o ptimas m ultiples para valores no acotados de las variables y que den a la funci on objetivo un valor acotado. El siguiente teorema da las condiciones en las que se obtienen ese tipo de soluciones al aplicar el teorema de mejora. Teorema 2.4.6 Sea el problema lineal en forma est andar max z = cT x sujeto a Ax = b x0 Sea B una base elegida en la matriz A y sean xB = B1 b la soluci on factible b asica asociada y z = cT x el valor de la funci o n objetivo. Si para todo vector B B aj de la matriz A se verica que zj cj 0, entonces la soluci on xB es o ptima. Si existe un vector ak que no est e en la base tal que zk ck = 0 y todas sus coordenadas yik , i = 1, . . . , m, son menores o iguales que cero, entonces existen soluciones o ultiples con valores no acotados para las variables. ptimas m Demostraci on. Las soluciones se calculan como en el Teorema 2.4.3 y son del tipo (2.13). De la misma forma que en el mencionado teorema el valor de la funci on objetivo es z = z (zk ck ). En este caso como zk ck = 0, se cumple z = z . En estas condiciones las soluciones del tipo x obtenidas como en el Teorema 2.4.3 son o ptimas. 2

2.4.7 Soluci on factible b asica inicial


Para dar la soluci on o ptima de un modelo lineal en forma est andar, comenzaremos con una soluci on factible b asica. Si se elige como primera base B = I, la soluci on 1 factible b asica asociada se calcula f acilmente dado que B = B = I. Una vez calculada la primera soluci on se aplica el Teorema de mejora hasta que se verican las condiciones de optimalidad dadas en el Teorema 2.4.2. Para elegir como primera base B = I se pueden dar dos casos.

OpenCourseWare, UPV/EHU

2.4. El m etodo simplex

53

Caso 1. Primera base formada por variables de holgura. Si el modelo inicial es max z = cT x sujeto a Ax b x0 con b 0, para escribirlo en forma est andar sumamos un vector y de variables de holgura. max z = cT x + 0T y sujeto a Ax + Iy = b x, y 0 As podemos elegir la base B = I. Entonces, B1 = I y hacemos los c alculos correspondientes a esta base. C alculo de la soluci on. xB = B1 b = Ib = b 0. La soluci on es factible. Valor de la funci on objetivo.
T z = cT B xB = 0 xB = 0.

Para todos los vectores aj de la matriz A se realizan los siguientes c alculos: Vector de coordenadas. yj = B1 aj = Iaj = aj . C alculo de zj cj . Por ser todos los vectores de la base elegida B de holgura, el vector cT B = 0. zj cj = cT B yj cj = 0 cj = cj .

Investigaci on Operativa. Programaci on Lineal

54

Tema 2. El m etodo simplex

La ventaja de elegir como primera base la can onica es que los c alculos asociados a esta primera base coinciden con los par ametros del problema. Ejemplo. Sea el modelo lineal

max z = 2x1 + 3x2 sujeto a 3x1 + x2 2 x1 x2 3 x1 , x2 0 Sumando variables de holgura, la forma est andar del modelo es max z = 2x1 + 3x2 + 0x3 + 0x4 sujeto a 3x1 + x2 +x3 x1 x2 =2 +x4 = 3

x1 , x2 , x3 , x4 0 Elegimos B = (a3 a4 ) = I. C alculo de la soluci on. xB = B1 b = I La soluci on es factible. C alculo del valor de la funci on objetivo. z = cT B xB = (0, 0) 2 3 = 2 3 .

2 3

= 0.

OpenCourseWare, UPV/EHU

2.4. El m etodo simplex

55

Calculo de los vectores de coordenadas yj y de zj cj para todos los vectores de la matriz A. 3 1 0 3 3 = , a1 = y1 = B1 a1 = 1 0 1 1 1 z1 c1 = cT B y1 c1 = (0, 0) a2 = 1 1 y2 = B1 a2 = 3 1 2 = 2. 1 1 = 1 1 ,

1 0 0 1

a3 =

, 0 1 0 0 1 0 = 0. z3 c3 = cT B y3 c3 = (0, 0) 0 0 1 0 0 0 = , a4 = y4 = B1 a4 = 1 0 1 1 1 0 0 = 0. z4 c4 = cT B y4 c4 = (0, 0) 1 0

z2 c2 = cT B y2 c2 = (0, 0) 1 y3 = B1 a3 =

1 1

1 0

3 = 3. 1

Caso 2. Variables articiales en la base inicial Si el modelo tiene restricciones con igualdad o restricciones del tipo y con la componente del vector b no negativa, entonces no es posible obtener

Investigaci on Operativa. Programaci on Lineal

56

Tema 2. El m etodo simplex

como primera base la can onica formada por vectores de holgura. Para resolver este inconveniente y poder elegir como primera base la can onica utilizaremos variables auxiliares, a las que se les da el nombre de variables articiales. Lo vemos en el siguiente ejemplo. Ejemplo. Sea el modelo lineal max z = 3x1 + x2 sujeto a x1 + x2 3 x1 + 2x2 2 x1 , x2 0 Para obtener la forma est andar sumamos y restamos a la primera y segunda restricciones, respectivamente, las variables de holgura x3 y x4 . max z = 3x1 + x2 + 0x3 + 0x4 sujeto a x1 + x2 x1 + 2x2 +x3 =3 x4 = 2

x1 , x2 , x3 , x4 0 No podemos elegir en la matriz de coecientes del sistema la identidad. Para poder hacerlo sumaremos tantas variables articiales como sean necesarias. En este caso si sumamos a la segunda restricci on la variable articial w1 0, las restricciones son x1 + x2 x1 + 2x2 +x3 =3 x4 + w1 = 2

El vector xB no es soluci on para el problema inicial porque w1 = 2 > 0 y, por tanto, la restricci on x1 + 2x2 x4 = 2 no se verica. 2

As podemos elegir la base can onica B = (a3 aw1 ) y la soluci on asociada es factible. 1 0 3 3 = . xB = B1 b = 0 1 2 2

OpenCourseWare, UPV/EHU

2.4. El m etodo simplex

57

2.4.8 Tabla del m etodo simplex


Una forma ordenada de proceder para calcular la soluci on o ptima de un modelo lineal en forma est andar es recoger los c alculos asociados a cada base en una tabla, llamada Tabla del simplex. El proceso siempre empieza eligiendo la base can onica en la matriz de coecientes A. Si una vez obtenida la forma est andar no es posible elegir la base can onica formada por variables de holgura se a naden tantas variables articiales como sean necesarias. La tabla del simplex es la siguiente: Variables originales x1 z1 c1 cB 1 . . . cBi . . . cBm aB1 . . . aBi . . . aBm y11 ... ... ... . . . ... . . . ... xn zn cn y1n Variables auxiliares xn+1 zn+1 cn+1 y1,n+1 ... ... ... . . . ... . . . ... xj zj cj y1,j ... ... ... z xB1 . . . xBi . . .

yi1

yin

yi,n+1

yi,j

...

ym1

ymn

ym,n+1

ym,j

. . . xBm

Sobre la tabla se tienen las variables originales del modelo, x1 , . . . , xn y las de holgura y/o articiales que se han a nadido al modelo xn+1 , . . . , xj , . . . ,. En la primera columna los vectores b asicos: aB1 , . . . , aBi , . . . , aBm . Fuera de la tabla est an las componentes b asicas de c: cB1 , . . . , cBi , . . . , cBm . En el resto de las columnas aparecen las coordenadas yj de todos los vectores aj del modelo en funci on de la base. La u ltima columna de la tabla contiene las componentes de la soluci on factible b asica: xB1 , . . . , xBi , . . . , xBm . En la primera la los valores indicadores zj cj . El u ltimo valor de la la, z , es el valor de la funci on objetivo. Ejemplo. Para el ejemplo de la p agina 54 escrito en forma est andar, la tabla del simplex asociada a la base can onica es la siguiente:

Investigaci on Operativa. Programaci on Lineal

58

Tema 2. El m etodo simplex

x1 2 0 a3 0 a4 3 1

x2 3 1 1

x3 0 1 0

x4 0 0 1 0 2 3

2 Si, como en el ejemplo, s olo se utilizan variables de holgura para obtener la primera base, la tabla del m etodo simplex se puede escribir en funci on de B de la siguiente manera: x1 x2 . . . xn
1 T cT BB A c

xn+1 xn+2 . . . xn+m


1 cT BB

cT B xB

cB

B 1 A

B 1

xB

En la primera tabla B1 = I. Pero, sea cual sea la base para la que se est en haciendo los c alculos, en esas mismas columnas (las correspondientes a la matriz identidad de la primera tabla) siempre se encuentra la matriz B1 de la base correspondiente a la tabla. Si, como en el ejemplo anterior, la primera base est a 1 formada por variables de holgura, B se encuentra donde se expresa en la tabla anterior. En el caso de utilizar variables articiales, hay que identicar las columnas que proporcionan B1 .

2.5 M etodo de penalizaci on


Este m etodo se debe utilizar cuando en la forma est andar no es posible elegir como primera base la can onica. Para resolver este problema se a naden variables articiales como hemos visto en el ejemplo de la p agina 56. Las variables articiales en las restricciones cambian la formulaci on original del problema. Una soluci on para el problema con variables articiales no ser a soluci on del problema original si alguna variable articial es mayor que cero. Para evitar la existencia de este tipo de variables en la base o ptima es necesario

OpenCourseWare, UPV/EHU

2.5. M etodo de penalizaci on

59

penalizar la funci on objetivo. Esta penalizaci on debe asegurar que el valor de la funci on objetivo ser a muy desfavorable si alguna variable articial es positiva. Ejemplo. Sea el modelo lineal max z = 5x1 + 6x2 + 7x3 sujeto a 2x1 + 10x2 6x3 30 5 x1 3x2 + 5x3 10 2 2x1 + 2x2 + 2x3 = 5 x1 , x2 , x3 0 La forma est andar sumando las variables articiales necesarias para obtener la matriz identidad y penalizando la funci on objetivo es la siguiente: max z = 5x1 + 6x2 + 7x3 + 0x4 + 0x5 Mw1 Mw2 sujeto a 2x1 + 10x2 6x3 x4
5 x 2 1

+w 1 +x5

= 30 = 10 +w 2 = 5

3x2 + 5x3

2x1 + 2x2 + 2x3

x1 , x2 , x3 , x4 , x5 , w1 , w2 0 Para obtener B = I se han a nadido 2 variables articiales, w1 , w2 y se ha penalizado la funci on objetivo con M positivo y todo lo grande que sea necesario. La base can onica inicial es B = (aw1 a5 aw2 ) y el vector cT B = (M, 0, M ). La tabla para este ejemplo es la siguiente: x1 x2 x3 x4 M 1 0 0 x5 w1 w2 0 0 1 0 0 1 0 0 0 35M 0 0 1 30 10 5 2

4M + 5 12M 6 4M 7 M aw1 0 a5 2
5 2

10 3 2

6 5 2

M aw2

Investigaci on Operativa. Programaci on Lineal

60

Tema 2. El m etodo simplex

2.6 Algoritmo simplex


Consideremos un problema escrito en forma est andar de maximizaci on, con las variables articiales que sean necesarias, para poder elegir como primera base B = I. Paso 1. Construir la tabla inicial. Paso 2. Si existe zj cj < 0, entonces la soluci on se puede mejorar. Ir al Paso 4. Si para todo vector aj de la matriz A se cumple zj cj 0, entonces no se puede mejorar. Ir al Paso 3. Paso 3. Si en la base hay alguna variable articial con valor positivo 1 , el problema es infactible. Parar. Si no hay variables articiales en la base, la soluci on xB de la tabla es ptima. o * Si para todos los vectores aj de la matriz A que no est an en la ptima base se cumple zj cj > 0, entonces xB es soluci on o unica . Parar. * Si existe un vector ak de la matriz A que no est a en la base tal que zk ck = 0 y, para ese vector, alguna coordenada yik , i = 1, . . . , m, es mayor que cero, entonces se puede calcular una nueva ptima. Ir al Paso 5. soluci on factible b asica o * Si existe un vector ak en la matriz A que no est a en la base tal que zk ck = 0 y, para ese vector, yik 0, i = 1, . . . , m, ptimas multiples entonces el problema tiene soluciones o , pero no son soluciones b asicas. Parar.
1 Si no hay variables articiales con valor positivo y hay alguna variable articial con valor 0 se pueden dar dos casos: soluci on degenerada o ecuaciones redundantes. (Ver ejemplos en la p agina 79)

OpenCourseWare, UPV/EHU

2.6. Algoritmo simplex

61

Paso 4. Si existe un vector aj tal que zj cj < 0 y su vector de coordenadas yj no tiene componentes positivas, entonces la soluci on es no acotada. Parar. Si existe un vector aj tal que zj cj < 0 y para ese vector alguna coordenada yij es mayor que cero, ir al paso 5. Paso 5. Selecci on de la nueva base. Entra en la base el vector ak que cumple zk ck = min{zj cj /zj cj 0}.
j

La columna k es la columna pivote. Sale de la base el vector ar que cumple xBr = min i yrk La la r es la la pivote. Pivote: yrk , pertenece a la columna pivote y a la la pivote. Paso 6. Calcular la nueva tabla La la r de la nueva tabla se calcula dividiendo la la r de la tabla actual por el pivote yrk . Para i = 1, . . . , m, i = r , nueva la i= la i actual mi la pivote. yik , i = 1, . . . , m, i = r El multiplicador mi = y rk Nueva la de indicadores= la de indicadores actual m0 la pivoc k . te. El multiplicador para esta la es m0 = zk yrk Ir al Paso 2. En el caso de que el problema tenga o ptimos m ultiples se calcular an las nuevas bases o ptimas hasta que no se repitan las ya calculadas. xBi /yik > 0 . yik

Investigaci on Operativa. Programaci on Lineal

62

Tema 2. El m etodo simplex

2.7 Soluci on de modelos lineales


ptima unica. Ejemplo 1. Soluci on o

max z = 6x1 + 4x2 + 5x3 + 5x4 sujeto a x1 + x2 + x3 + x4 3 2x1 + x2 + 4x3 + x4 4 x1 + 2x2 2x3 + 3x4 10 x1 , x2 , x3 , x4 0

La forma est andar del modelo es

max z = 6x1 + 4x2 + 5x3 + 5x4 + 0x5 + 0x6 + 0x7

sujeto a

x1 + x2 + x3 + x4 +x5 2x1 + x2 + 4x3 + x4 x1 + 2x2 2x3 + 3x4 +x6

=3 =4 +x7 = 10

x1 , x2 , x3 , x4 , x5 , x6 , x7 0

Elegimos la base can onica B = (a5 a6 a7 ). Hemos visto en el ejemplo de la p agina 54 que los c alculos asociados a esta base coinciden con los par ametros del modelo y son los que se recogen en la primera tabla. La segunda y tercera tablas corresponden a las dos iteraciones necesarias para obtener la soluci on o ptima. El pivote aparece recuadrado y los multiplicadores fuera de la tabla a la derecha.

OpenCourseWare, UPV/EHU

2.7. Soluci on de modelos lineales

63

x1 6 0 0 0 a5 a6 a7 1 2 1

x2 4 1 1

x3 5 1 4

x4 5 1 1 3 2
1 2 1 2 5 2

x5 0 1 0 0 0 1 0 0 4 2 1 5

x6 0 0 1 0 3 1 2
1 2

x7 0 0 0 0 3 4 m3 =
1 2

m0 = 3 m1 =
1 2

2 2 7 1 2 4 3

1 10 0 12 0 0 1 1 2 8

0 1 0 6 0 a5 a1 a7 0 1 0 0 5 6 0 a4 a1 a7 0 1
1 2 1 2 3 2

m0 = 4

m2 = 1 m3 = 5

1 2 1 1 1 2

0 1 0 0

0 16 0 0 1 2 1 3

1 2 0 3 1

0 1

Observamos que zj cj 0 para todos los vectores aj de la matriz A. Han ter ptima minado las iteraciones del algoritmo simplex. El problema tiene soluci on o unica .
x 1 = 1, x2 = 0, x3 = 0, x4 = 2, x5 = 0, x6 = 0, x7 = 3 y z = 16.

A continuaci on se detallan los c alculos de cada iteraci on. Primera iteraci on. En la primera tabla existen valores indicadores negativos y, por tanto, la soluci on puede mejorar. Vector ak que entra en la base. zk ck = min{zj cj /zj cj 0},
j

min{6, 4, 5, 5} = 6 = z1 c1 a1 entra.

Investigaci on Operativa. Programaci on Lineal

64

Tema 2. El m etodo simplex

Vector ar que sale.

xBr = min i yr 1

xBi /yik > 0 , yi1 xB1 a6 sale. y21

min

3 4 10 , , 1 2 1

= min{3, 2, 10} = 2 =

El pivote es y21 = 2. Los c alculos necesarios para obtener la segunda tabla, es decir, la asociada a la nueva base B = (a5 a1 a7 ) son los siguientes: Nueva la 2: la 2 dividida por el pivote. 1 1 1 1 (2, 1, 4, 1, 0, 1, 0, 4) = (1, , 2, , 0, , 0, 2). 2 2 2 2 Nueva la 1: la 1 la pivote m1 . En este caso es m1 = 1 y11 = . y21 2

1 (1 , 1 , 1 , 1 , 1 , 0 , 0 , 3) (2 , 1 , 4 , 1 , 0 , 1 , 0 , 4) = 2 = (0 , 1 1 1 , 1 , , 1 , , 0 , 1). 2 2 2 y31 1 = . y21 2

Nueva la 3: la 3 la pivote m3 . En este caso es m3 =

1 (1 , 2 , 2 , 3 , 0 , 0 , 1 , 10) (2 , 1 , 4 , 1 , 0 , 1 , 0 , 4) = 2 = (0 , 5 1 3 , 4 , , 0 , , 1 , 8). 2 2 2

Nueva la de indicadores: la de indicadores la pivote m0 . En este z1 c1 6 caso es m0 = = = 3. y21 2 (6 , 4 , 5 , 5 , 0 , 0 , 0 , 0) (3)(2 , 1 , 4 , 1 , 0 , 1 , 0 , 4) = = (0 , 1 , 7 , 2 , 0 , 3 , 0 , 12).

OpenCourseWare, UPV/EHU

2.7. Soluci on de modelos lineales

65

Segunda iteraci on. En la segunda tabla existen valores indicadores negativos y, por tanto, la soluci on puede mejorar. Los c alculos se hacen como en la iteraci on anterior. Vector que entra: min{1, 2} = 2 = z4 c4 entra a4 . Vector que sale: 1 1 5 16 xB1 min{1 : , 2 : , 8 : } = min{2, 4, } = 2 = sale a5 . 2 2 2 5 y14 1 El pivote es y14 = . 2 Nueva la 1: 1 1 1 2(0 , , 1 , , 1 , , 0 , 1) = (0 , 1 , 2 , 1 , 2 , 1 , 0 , 2). 2 2 2 Nueva la 2. Multiplicador: m2 = (1 , y24 = 1, y14

1 1 1 1 1 1 , 2 , , 0 , , 0 , 2) 1(0 , , 1 , , 1 , , 0 , 1) = 2 2 2 2 2 2 = (1 , 0 , 3 , 0 , 1 , 1 , 0 , 1). y34 = 5, y14

Nueva la 3. Multiplicador: m3 = (0 ,

5 1 1 1 1 3 , 4 , , 0 , , 1 , 8) 5(0 , , 1 , , 1 , , 0 , 1) = 2 2 2 2 2 2 = (0 , 1 , 1 , 0 , 5 , 2 , 1 , 3). z4 c4 = 4, y14

Nueva la de indicadores. Multiplicador: m0 = (0 , 1 , 7 , 2 , 0 , 3 , 0 , 12) + 4(0 ,

1 1 1 , 1 , , 1 , , 0 , 1) = 2 2 2 = (0 , 1 , 3 , 0 , 4 , 1 , 0 , 16). 2

Investigaci on Operativa. Programaci on Lineal

66

Tema 2. El m etodo simplex

Ejemplo 2. Problema infactible. Ejemplo de la p agina 59.

max z = 5x1 + 6x2 + 7x3 + 0x4 + 0x5 Mw1 Mw2 sujeto a

2x1 + 10x2 6x3 x4


5 x 2 1

+w 1 +x5

= 30 = 10 +w 2 = 5

3x2 + 5x3

2x1 + 2x2 + 2x3

x1 , x2 , x3 , x4 , x5 , w1 , w2 0

x1

x2

x3

x4
M

x5
0

w1
0

w2
0 35M m0 =
12M 6 2

4M + 5 12M 6 4M 7

M aw 1 0 a5 M aw 2

2
5 2

10 3 2

6 1 5 2 0 0
M

0 1 0
0

1 0 0

0 0 1

30 m1 = 5 10 m2 = 3 2 5

2
8M + 11

0 16M 1

0 6M + 3 5M + 15

M aw 1 0 a5 6 a2

8
11 2

0 0 1

16 1 8 1 0 0

0 1 0

1 0 0

5
3 2 1 2

5
35 2 5 2

Se observa en la tabla que zj cj 0 para todos los vectores aj de la matriz A. Las iteraciones del algoritmo simplex han nalizado y se puede concluir que el problema original no tiene soluci on porque hay una variable articial en la base o ptima con valor positivo, w1 = 5. 2

OpenCourseWare, UPV/EHU

2.7. Soluci on de modelos lineales

67

ptimas multiples. Ejemplo 3. Soluciones o min z = 3x1 + 6x2 sujeto a x1 + 2x2 4 x1 + x2 5 3x1 + 4x2 10 x1 , x2 0 El problema en forma est andar de maximizaci on y a nadiendo las variables articiales necesarias es max (z ) = 3x1 6x2 + 0x3 + 0x4 + 0x5 Mw1 Mw2 sujeto a x1 +2x2 x3 x1 +x2 +x4 x5 +w 1 =4 =5 +w2 = 10

3x1 +4x2

x1 , x2 , x3 , x4 , x5 , w1 , w2 0 En la soluci on gr aca podemos ver que el problema tiene soluciones o ptimas m ultiples. x2

x1 + x2 = 5 min

x1 + 2x2 = 4

111 000 000 000 111 111 A 000 111 B

x1

3x1 + 4x2 = 10

Investigaci on Operativa. Programaci on Lineal

68

Tema 2. El m etodo simplex

x1
4M + 3 M 0 M

x2
6M + 6

x3
M

x4 0 0 1 0 0 0 1 0 0

x5
M

w1 0 1 0 0
3M 3
1 2

w2 0 0 0 1
14M m0 =
6M +6 2

aw1 a4 aw2

1 1 3
M

2 1 4

1 0 0

0 0 1
M

4 5 m2 =
1 2

10 m3 = 2
2M +3 2

0 2M + 3 1 0 0 0 1 0 0 0 1 0 0
1 2 1 2

0 2M 12 m0 = 0 0 1
M
3 2

6 0 M

a2 a4 aw2

1 2 1 2

0 0 1
3 2

2 3 2 15
5 2 5 2

1 m1 = 4

1 2 2
M

m2 =

1 4

1 3 2

2 0 0 0 1 3
3 2 1 2

m0 = 15 m1 = m2 =
3 2 1 2

6 0 0

a2 a4 a3

3 4 1 4 1 2

0 1 4 1
1 4

0 0 1
M 3
3 2 1 2

1 4 1 4 1 2

0 1 2 0 0 1 0 0
1 2 1 2

1 12 1 2 2 m2 = 1 m3 = 2 m0 = 0

0
6 0 3

M
1 2 1 2

a2 a4 a1

0 0 1

En la u ltima tabla se tiene zj cj 0 para todos los vectores de la matriz del sistema; no hay variables articiales en la base o ptima y, por tanto, en la tabla se tiene una soluci on factible b asica o ptima para el problema. Una soluci on o ptima:
x 1 = 2, x2 = 1, x3 = 0, x4 = 2, x5 = 0, z = 12.

Esta soluci on corresponde al punto A de la gr aca. ptimas multiples Este problema tiene soluciones o porque z5 c5 = 0. Una nueva iteraci on nos proporciona la siguiente tabla o ptima.

OpenCourseWare, UPV/EHU

2.7. Soluci on de modelos lineales

69

x1 0 0 a5 0 a4 3 a1 0

x2 0

x3 3

x4 0 0 1 0

x5

w1

w2
M

0 M 3 1 0 0

12 2 1 4

2 3 1

3 1 1 1 0 0

0 1 1

2 1

Nueva soluci on o ptima:


x 1 = 4, x2 = 0, x3 = 0, x4 = 1, x5 = 2, z = 12.

Esta soluci on corresponde al punto B de la gr aca. Los puntos del segmento que unen A y B son tambi en soluciones o ptimas. 2 Ejemplo 4. Soluci on no acotada. max z = x1 3x2 sujeto a 2x1 + 2x2 4 4x1 2x2 6 x1 , x2 0 Forma est andar con penalizaci on max z = x1 3x2 + 0x3 + 0x4 Mw1 Mw2 sujeto a 2x1 + 2x2 x3 4x1 + 2x2 x4 +w 1 =4 +w 2 = 6

x1 , x2 , x3 , x4 , w1 , w2 0 Las tres iteraciones del m etodo simplex necesarias para obtener la soluci on son las siguientes

Investigaci on Operativa. Programaci on Lineal

70

Tema 2. El m etodo simplex

x1
6M 1
M M

x2
4M + 3

x3
M

x4
M

w1 0 1 0 0 1 0
M
7 2

w2 0 0 1
3 2M

10M

aw1 aw2

2 4 0
M +

2 2
7 2

1 0
M

0 1
1 2 M 1 4

4 6
M +
3 2

1 2

1 4

M 1

aw1 a1

0 1 0

1
1 2

1 0
7 2

1 2

1 2
1 4

1
3 2 1 2

1 4 2
1 2

0 1 0

M +2

2 1 1 2 2 2 1

3 1

a2 a1

0 1 0

1
1 2

1 1 2 2
1 2

1 2
1 2

1 2 1 0

4 1 2 2 2 1 1 2

1 0 M+2

0 1

a4 a1

0 1

1 0

z3 c3 < 0 y todas las coordenadas yi3 0. La soluci on es no acotada. x2 4x1 2x2 = 6 max

2x1 + 2x2 = 4 x1

OpenCourseWare, UPV/EHU

2.8. El m etodo de las dos fases

71

2.8 El m etodo de las dos fases


Este m etodo es an alogo al m etodo de penalizaci on. Se utiliza, tambi en, cuando es necesario el uso de variables articiales para la primera base B = I. Si el problema tiene soluci on se trata de obtener una tabla en la que se cumplan las condiciones de optimalidad y en la que no haya vectores articiales en la base. En el m etodo de penalizaci on e sto se consigue penalizando la funci on objetivo, y en el de las dos fases minimizando la suma de las variables articiales en una primera fase del m etodo. 1. Primera fase En esta primera fase se tienen en cuenta las restricciones del problema pero, en lugar de utilizar la misma funci on objetivo se optimiza la suma de las variables articiales. El objetivo ser a minimizar esta funci on y el m nimo, si el problema original tiene soluci on, debe ser cero. Para obtener la soluci on en esta primera fase se utiliza el algoritmo simplex que puede conducir a una de las dos siguientes posibilidades: Si el valor de la funci on objetivo de esta primera fase es mayor que cero, entonces el problema inicial no tiene soluci on. En caso contrario, existe soluci on y para calcularla se contin ua en la segunda fase. 2. Segunda fase En esta segunda fase la funci on objetivo que se optimiza es la del problema inicial partiendo de la tabla o ptima de la primera fase. En esa tabla o ptima s olo cambia la la de indicadores. Una vez calculada la nueva la de indicadores, se contin ua con las iteraciones del algoritmo simplex hasta conseguir las condiciones de optimalidad.

Ejemplo 1. max z = 2x1 + 3x2 5x3 sujeto a 2x1 + 2x2 + 2x3 = 14 2x1 + 5x2 x3 10 x1 , x2 , x3 0

Investigaci on Operativa. Programaci on Lineal

72

Tema 2. El m etodo simplex

Primera fase. Para aplicar el algoritmo escribimos las restricciones en forma est andar utilizando las variables articiales necesarias para elegir como primera base la can onica. La funci on objetivo de la primera fase es min z = w1 + w2 . El problema en forma est andar es max (z ) = 0x1 +0x2 +0x3 +0x4 w1 w2 sujeto a 2x1 + 2x2 + 2x3 2x1 5x2 + x3 x4 +w 1 = 14 +w2 = 10

x1 , x2 , x3 , x4 , w1 , w2 0

x1 4 1 aw1 1 aw2 2 2 0 1 aw1 0 a1 0

x2 3 2 5 7 7

x3 3 2 1 1 1
1 2

x4 1 0 1 1 1
1 2

w1 0 1 0 0 1 0 1
1 7 5 14

w2 0 24 0 1 2 1
1 2

14 10 4 4 5 0
4 7 45 7

1 5 2 0 0 1 0 0 1

5 14

0
1 7 6 7

0
1 7 1 7

1
1 7 1 7

0 0

a2 a1

Se ha obtenido el o ptimo para la primera fase, dado que para todos los vectores de la matriz A se tiene zj cj 0. El valor de la funci on objetivo es cero y, por tanto, el problema inicial tiene soluci on.

OpenCourseWare, UPV/EHU

2.8. El m etodo de las dos fases

73

Segunda fase. Optimizar la funci on objetivo del problema inicial max z = 2x1 + 3x2 5x3 . Partimos de la tabla o ptima de la primera fase. Al considerar la nueva funci on objetivo, la la de indicadores cambia y se tiene 0 z1 c1 = (3 , 2) 2 = 0, 1 1 z2 c2 = (3 , 2) 3 = 0, 0 1 50 7 z3 c3 = (3 , 2) +5= , 6 7 7 1 1 z4 c4 = (3 , 2) 7 0 = , 7 1 7 4 102 z = (3 , 2) 7 0 = . 45 7
7

En la primera tabla de la segunda fase no aparecen las columnas asociadas a las variables articiales porque dichas variables no forman parte de la funci on objetivo. x1 0 3 2 a2 a1 0 1 x2 0 1 0 x3
50 7 1 7 6 7

x4
1 7 1 7 1 7 102 7 4 7 45 7

En esta primera tabla ya se tiene que zj cj 0 para todos los vectores de la matriz A y, por tanto, ya se tiene la soluci on o ptima del problema x 1 = 45 4 102 , x2 = y z = . 7 7 7

Investigaci on Operativa. Programaci on Lineal

74

Tema 2. El m etodo simplex

Puede ocurrir que sean necesarias algunas iteraciones del algoritmo simplex en la segunda fase hasta conseguir las condiciones de optimalidad. Ejemplo 2. Resolver el ejemplo de la p agina 69. Primera fase. Para aplicar el algoritmo escribimos las restricciones en forma est andar utilizando las variables articiales necesarias para elegir como primera base la can onica. La funci on objetivo de la primera fase es min z = w1 + w2 . El modelo en forma est andar max z = 0x1 + 0x2 + 0x3 + 0x4 w1 w2 sujeto a 2x1 + 2x2 x3 4x1 + 2x2 x4 +w 1 =4 +w 2 = 6

x1 , x2 , x3 , x4 , w1 , w2 0 x1 6 1 1 aw1 aw2 2 4 x2 4 x3 1 x4 1 0 1 w1 0 1 0 0 1 0 1 1
1 2

w2 0 10 0 1
3 2

2 1 2 0

4 6 1 1
3 2

1 2

0 1 1 0 aw1 a1 0 1 0 0 0 a2 a1 0 1 1
1 2

1 1 2 1
1 2

1 2
1 4

0 1 4 0 0
1 2

1 2

1 1 2
1 2

0 1 1

1 1 0
1 2

1 2

Segunda fase. Partiendo de la tabla o ptima de la primera fase tomamos la funci on objetivo del modelo inicial max z = x1 3x2 . Al considerar la nueva funci on objetivo, la la de indicadores cambia y se tiene

OpenCourseWare, UPV/EHU

2.9. M etodo simplex revisado

75

x1 0 3 a2 0 1 0 0 a4 1 a1 0 1

x2 0 1 0 4 2 1

x3
7 2

x4 2
1 2

2 1 1 1 2 2 2

1
1 2

1 a1

1 2 0 1 0

1 2 2 1 2

En la u ltima tabla se tiene z3 c3 < 0 con todas las componentes del vector y3 negativas y, por tanto, el problema es no acotado. 2

2.9 M etodo simplex revisado


El algoritmo simplex tal como se ha presentado en las secciones anteriores realiza m as c alculos de los estrictamente necesarios para obtener la soluci on o ptima de un modelo lineal. Una revisi on de dicho algoritmo evitando los c alculos innecesarios es la que se presenta en el m etodo simplex revisado. Sea el modelo lineal en forma est andar max z = cT x sujeto a Ax = b x0 Dada una base B y xB soluci on factible b asica, para mejorarla se calculan los T 1 valores indicadores zj cj = cB B aj cj . Entra en la base el vector ak tal que zk ck = min{zj cj /zj cj 0}.
j

Para determinar el vector de salida se calcula el vector de coordenadas de ak . Sale de la base ar tal que xBi xBr = min /yik > 0 . i yrk yik Observamos que en los dos criterios los c alculos se hacen utilizando los datos 1 del enunciado y B que cambia en cada iteraci on. Podemos recoger los c alculos en la siguiente tabla que es m as reducida que la tabla del m etodo simplex.

Investigaci on Operativa. Programaci on Lineal

76

Tema 2. El m etodo simplex

xn+1 xn+2 . . . xn+m


1 cT BB

cT B xB

cB

B 1

xB

Ejemplo. Consideremos el ejemplo de la p agina 62 max z = 6x1 + 4x2 + 5x3 + 5x4 + 0x5 + 0x6 + 0x7 sujeto a x1 + x2 + x3 + x4 +x5 2x1 + x2 + 4x3 + x4 x1 + 2x2 2x3 + 3x4 +x6 =3 =4 +x7 = 10

x1 , x2 , x3 , x4 , x5 , x6 , x7 0

1 0 0 B = 0 1 0 , 0 0 1

cT B = (0 , 0 , 0),

1 1 1 1 N = 2 1 4 1 , 1 2 2 3

1 cT = (0, 0, 0), BB

xB = B1 b = 0 1 0 0 0 1

1 0 0

= 4 4 . 10 10

OpenCourseWare, UPV/EHU

2.9. M etodo simplex revisado

77

La tabla inicial es x5 0 0 a5 0 a6 0 a7 1 0 0 x6 0 0 1 0 x7 0 0 0 0 3 4

1 10

C alculo de los valores indicadores para vectores no b asicos.

1 1 1 1 1 T cT B N c = (0 , 0 , 0) (6, 4, 5, 5) = (6, 4, 5, 5). 2 1 4 1 B N 1 2 2 3 z1 c1 = min{6, 4, 5, 5} = 6 entra a1 . Calculamos la columna pivote

1 0 0

Sale de la base el vector ar tal que xBr = min yr 1

y1 = B1 a1 = 0 1 0 0 0 1 3 4 10 , , 1 2 1

2 = 2 . 1 1 = 2 sale a6 .

La la 2 es la la pivote, el pivote es 2. Multiplicador de la la de indicadores: 6 . 2


1 . Multiplicador de la primera la: 2 1 Multiplicador de la tercera la: 2 .

Investigaci on Operativa. Programaci on Lineal

78

Tema 2. El m etodo simplex

La nueva tabla es x5 0 0 a5 6 a1 0 a7 x6 3 x7 0 12 0 0 1 1 0 1 2 8

1 1 2 0
1 2

0 1 2 1 1 1 T cT 4 B B N cN = (0, 3, 0) 1 2 2 La columna pivote es

= (1, 7, 2, 3).

1 1 (4, 5, 5, 0) = 3 0

z4 c4 = min{1, 2} = 2 entra a4 .

1 1 2 0

1 2 1 2 5 2

1 Pivote: 2 .

1 y4 = B1 a4 = 0 0 1 = 2 3 1 0 1 2

Multiplicador de la la de indicadores: 4. Multiplicador de la segunda la: 1. Multiplicador de la tercera la: 5. La nueva tabla x5 4 5 a4 6 a1 0 a7 2 -1 -5 x6 1 -1 1 2 x7 0 16 0 0 1 2 1 3

OpenCourseWare, UPV/EHU

2.10. Observaciones

79

1 1 1 0 1 T cT B N c = (4 , 1 , 0) (4, 5, 0, 0) = 1 4 0 1 B N 2 2 0 0 = (1, 3, 4, 1). No existe ning un valor indicador negativo y, por tanto, la soluci on es o ptima. 2

2.10 Observaciones
1. Errores de redondeo: Si en las iteraciones del algoritmo simplex los c alculos se hacen a mano, no es necesario utilizar aproximaciones. Pero, dado que los ordenadores utilizan aproximaciones para representar las fracciones, puede suceder que la soluci on factible b asica o ptima obtenida no satisfaga las restricciones del modelo o, siendo de la regi on de factibilidad, no sea o ptima. El error se puede evaluar de la siguiente manera. Si BxB = b, se puede concluir que hay errores de redondeo. Si el error es signicativo, se puede corregir calculando directamente B1 para corregir los errores acumulados y seguir con las iteraciones. ptima. La existencia de variables 2. Variables articiales en la soluci on o articiales con valor cero en la base o ptima indica la existencia de ecuaciones redundantes o bien que la soluci on es degenerada, tal como se puede observar en los dos siguientes ejemplos. Ejemplo 1. Ecuaciones redundantes.

max z = x1 + 2x2 x3 sujeto a 2x1 x2 + x3 = 12 x1 + 2x2 + x3 = 10 x1 + x2 + 2x3 = 22 x1 , x2 , x3 0

Investigaci on Operativa. Programaci on Lineal

80

Tema 2. El m etodo simplex

Se a naden las variables articiales w1 , w2 y w3 , se penaliza la funci on objetivo y se hacen tres iteraciones del algoritmo simplex necesarias hasta lograr las condiciones de optimalidad.

x1
2M 1

x2
2M 2

x3
4M + 1

w1 0 1 0 0 0 1 0 0
2M
1 3 1 3

w2 0 0 1 0
4M 1

w3 0 0 0 1
44M

M M M

aw1 aw2 aw3

2 1 1
6M

1 2 1
6M 4

1 1 2 0 0 1 0 0 0 1 0

12 10 22

0 4M 10 0 0 1 0 0 0 1 0 0 0 1 2 10 1 3 2 10
2 3 32 3

M 1 M

aw1 a3 aw3

3 1 3 0

3 2 3 4 1 1 0 0 0 1 0

1 1 2
2M 1

1 1 M

a1 a3 aw3

1 0 0 0

1 3
2 3

1
2M +
5 3

0
98 3 34 3 32 3

4 2M + 4 3 1 1 0
2 3 1 3

1 2 M

a1 a2 aw3

1 0 0

1 3 2 3

La variable articial w3 se mantiene en la base o ptima pero toma valor cero. En este caso, se tienen ecuaciones redundantes. Si analizamos el modelo nos daremos cuenta de que la tercera restricci on es suma de las dos restantes. Si eliminamos la tercera restricci on, el modelo lineal tiene soluci on. 2

OpenCourseWare, UPV/EHU

2.10. Observaciones

81

Ejemplo 2. Soluci on degenerada.

max z = x1 + x2 + 3x3 sujeto a x1 + 5x2 + x3 7 x1 x2 + x3 = 5 1 x1 2x2 + x3 = 5 2 x1 , x2 , x3 0 Se a nade la variable de holgura x4 y las variables articiales w1 y w2 , se penaliza la funci on objetivo y se hace una iteraci on.

x1

x2

x3

x4 0 1 0 0 0 1 0 0

w1 0 0 1 0 2M + 3 1 1 1

w2 0 0 0 1 0 0 0 1 10M 7 5 5 15 2 5 0

M 1 3M 1 2M 3 3 2 0 M M a4 aw1 aw2
1 M 2

1 1
1 2

5 1 2 M 4 6 1 1

1 1 1 0 0 1 0

+2 0 1 1 2

0 3 M

a4 a3 aw2

En la u ltima tabla ya se dan las condiciones de optimalidad pero la variable articial w3 est a en la base o ptima. La variable articial en la base toma el valor cero, sin embargo, no nos encontramos ante el caso de restricciones redundantes, ya que no todos los valores de la tercera la (los correspondientes a las columnas de variables del modelo original) son cero. En este caso la soluci on o ptima es degenerada.

Investigaci on Operativa. Programaci on Lineal

82

Tema 2. El m etodo simplex

Se puede observar esa soluci on degenerada en la siguiente tabla, eligiendo en la base anterior la tercera la como pivote y la segunda columna como columna pivote. x1 4 0 a4 3 3 a3 1 a2
3 2 1 2

x2 x3 x4 0 0 0 1 0 0 1 0

w1

w2

0 7 + M 4 + M 15 1 0 0 7 2 1 6 1 1 2 5 0 2

3. Problema de ciclado: Al elegir el vector que debe entrar en la base el criterio puede ser satisfecho por m as de un vector. Cualquiera que verique el criterio puede entrar a la base sin que esta elecci on tenga una inuencia signicativa en el n umero de iteraciones. No ocurre lo mismo con el vector que sale de la base. Si hay m as de un vector que verica el criterio de salida no se puede elegir al azar en todos los casos. La raz on es que de no elegir adecuadamente se puede producir ciclado, es decir, regresar despu es de un n umero de iteraciones a la primera base sin alcanzar el o ptimo. Este problema se produce cuando la soluci on 2 es degenerada y el empate en el criterio de vector de salida es 0 . Las reglas lexicogr acas y la regla de Bland permiten una buena elecci on de la variable que debe dejar la base para evitar el ciclado. 4. Eciencia del m etodo simplex. Se han llevado a cabo un buen n umero de estudios que muestran que la eciencia computacional del m etodo simplex es m as sensible al n umero de restricciones que al n umero de variables.

Se puede ver un ejemplo en Linear programming and network ows. M. S. Bazaraa et al.

OpenCourseWare, UPV/EHU

Вам также может понравиться