Академический Документы
Профессиональный Документы
Культура Документы
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.
20
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
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
22
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
23
24
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
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
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
27
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.
28
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
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 .
30
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 .
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
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.
32
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
33
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 =
34
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
OpenCourseWare, UPV/EHU
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
yij ai .
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
cBi yij .
36
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
37
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
= y14
+ y24
y4 =
z4 c4 = cT B y4 c4 = (3, 4)
= 3 6 = 9. 2
38
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
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
39
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
i=1 i=r
yij ai ] = b. yrj
(xBi
i=1 i=r
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
40
2. xBr
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
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
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
yrj ) = 0, yrj
( ) =
i=1
Haciendo c alculos
m
z=
i=1
cBi yij + cj
i=1
(2.7)
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
42
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
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
43
(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 .
44
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
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
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.
46
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
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
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
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
48
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
49
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
50
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
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
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.
x=
i=1
i xi 0.
c x=c
T i=1
i xi =
i=1
i c xi = z
i=1
i = z . 2
52
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
OpenCourseWare, UPV/EHU
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 .
54
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
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
56
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
57
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:
58
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
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 .
OpenCourseWare, UPV/EHU
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
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
60
OpenCourseWare, UPV/EHU
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
62
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
sujeto a
=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
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.
64
xBr = min i yr 1
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 , 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
OpenCourseWare, UPV/EHU
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
Nueva la 3. Multiplicador: m3 = (0 ,
1 1 1 , 1 , , 1 , , 0 , 1) = 2 2 2 = (0 , 1 , 3 , 0 , 4 , 1 , 0 , 16). 2
66
+w 1 +x5
= 30 = 10 +w 2 = 5
3x2 + 5x3
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
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
x1
3x1 + 4x2 = 10
68
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
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
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
70
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
71
Ejemplo 1. max z = 2x1 + 3x2 5x3 sujeto a 2x1 + 2x2 + 2x3 = 14 2x1 + 5x2 x3 10 x1 , x2 , x3 0
72
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
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
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
74
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
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
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.
76
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
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
1 0 0
y1 = B1 a1 = 0 1 0 0 0 1 3 4 10 , , 1 2 1
2 = 2 . 1 1 = 2 sale a6 .
78
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
= (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.
80
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
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
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.
82
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