Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
Universidad Abierta y a Distancia de México
Licenciatura en Matemáticas
Programa de la asignatura: Investigación de Operaciones
Unidad 2. Programación lineal, Algortimo simplex
Clave 05144843
1 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´Indice general Introducci´ on 1. Programaci´ on lineal, algoritmo simplex 1.1. Notaci´on . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Forma expl´ıcita de un problema respecto a una base 1.3. Algoritmo Simplex . . . . . . . . . . . . . . . . . . 1.4. Soluciones b´asicas factibles iniciales . . . . . . . . . 1.4.1. M´etodo de las dos fases . . . . . . . . . . . . 1.4.2. M´etodo de la gran M . . . . . . . . . . . . . Bibliografı´a
Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
3 . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
5 5 5 9 11 12 18 23
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
Introducci´ on La programaci´on lineal tiene una amplia gama de aplicaciones, por ejemplo, en la industria, el gobierno y el ejercito. En 1947, el matem´atico George. B. Dantzig desarroll´o un algoritmo llamado el m´etodo simplex para resolver problemas de programaci´on lineal, aunque se han propuesto nuevos algoritmos, el m´etodo simplex sigue siendo un medio viable para resolver problemas de este tipo. Desde finales de 1947 cuando Dantzig desarroll´o el algoritmo simplex, mucha gente ha contribuido al crecimiento de la programaci´on lineal, ya sea al desarrollar la teor´ıa matem´atica, dise˜ nar m´etodos computacionales eficientes, experimentar con nuevos algoritmos o aplicando la programaci´on lineal para resolver problemas m´as complejos de control ´optimo. En esta unidad se abordar´an conceptos relacionados con el m´etodo simplex para presentar su algoritmo adem´as, se presenta una forma de aplicarlo en la soluci´on de problemas de programaci´on lineal.
3 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
Cap´ıtulo 1 Programaci´ on lineal, algoritmo simplex 1.1.
Notaci´ on
En el texto se har´a uso de la notaci´on que se observa en los libros de matem´aticas e investigaci´on de operaciones. Sin embargo, aqu´ı se especifica la notaci´on que conviene identificar r´apidamente. Se denotar´a a los vectores con letras min´ usculas, por ejemplo: x, b, c y en el caso correspondiente se indicar´an sus dimensi´ones, en algunos casos agregamos una tilde, por ejemplo u, 0; el vector x transpuesto se denotar´a por xT . Las matrices se denotar´an con letras may´ usculas, por ejemplo A, B, N. La referencia a los renglones y columnas de la matriz A ser´a frecuente, denotaremos al i-´esimo rengl´on de la matriz A por Ai , la j-´esima columna de la matriz A se denotar´a por Aj .
1.2.
Forma expl´ıcita de un problema respecto a una base
Consideremos un problema de programaci´on lineal Max P : s.a.
z = cx Ax ≤ b x ≥ 0,
no donde A es una matriz de tama˜ no m × n con rango m, x y 0 son vectores de tama˜ n × 1, b es un vector de tama˜ no m × 1 y c es un vector de tama˜ no 1 × n. Una base para el espacio vectorial generado por las columnas de la matriz A, se construye con m columnas linealmente independientes de la misma matriz. Si el conjunto de soluciones factibles es no vac´ıo podemos elegir x0 , una soluci´on b´asica factible construida a partir de una base B. Considerando las restricciones del 5 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION problema P observamos que la variable xj est´a asociada a la columna Aj de la matriz, por lo que una elecci´on de columnas tambi´en se obtiene eligiendo los ´ındices de las variables asociadas a dichas columnas, es decir, {i1 , . . . , im }. La soluci´on b´asica obtenida a partir de una base B se puede expresar de la xB siguiente forma: x0 = , donde xB = B −1 b y los valores de las variables no xN b´asicas xN son cero; el valor de la funci´on objetivo en esta soluci´on est´a dado por xB z0 = (cB , cN ) = cB xB + cN xN = cB (B −1 b). xN Las restricciones del problema P se pueden expresar de la siguiente forma: BxB + NxN = b, si multiplicamos este sistema por B −1 y reordenamos los t´erminos obtenemos xB = B −1 b − B −1 NxN . Denotamos por Y j a la j-´esima columna de la matriz B −1 N, es decir, Y j = B −1 N j , sustituyendo esto en el sistema anterior obtenemos lo siguiente. xB = B −1 b −
X
Y j xj .
j∈N
Sustituyendo xB en la funci´on objetivo P j z = cB xB + cN xN obtenemos: z = cB (B −1 b − Y xj ) + cN xN j∈N P j P = cB (B −1 b − Y xj ) + cj xj ; j∈N
j∈N
si recordamos que z0 = cB B −1 b y definimos zj = cB Y j para sustituirlo en la expresi´on anterior obtenemos: z = z0 +
X
(cj − zj )xj .
j∈N
El coeficiente cj − zj se denomina coeficiente de costo reducido de la variable xj . Con lo anterior, podemos plantear el problema en la forma siguiente. Max z = z0 +
(cj − zj )xj
j∈N
s.a. P:
P
P
Y j xj + xB = B −1 b
j∈N
xj ≥ 0, j ∈ N y xB ≥ 0. Escribir el problema P de esta manera es lo que aqu´ı entendemos por expresar el problema en forma expl´ıcita respecto a la base B. Es posible escribir esta informaci´ P on en una tabla, para ello cambiamos la expresi´on de z a la forma −z0 = −z + (cj − zj )xj o bien: j∈N
6 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
FORMA EXPL´ICITA DE UN PROBLEMA RESPECTO A UNA BASE 1.2 −z +
P
(cj − zj )xj = −z0 y la escribimos despu´es de las restricciones. Haciendo
j∈N
estas modificaciones la tabla queda de la siguiente forma. xB −z
Y j1 · · · Y jn cj1 − zj1 · · · cjn − zjn
Im×m ··· 0 ···
B −1 b −z0
Respecto a lo que se coment´o en la secci´on anterior, escribir as´ı el problema lo consideramos como: expresar el problema en forma can´ onica respecto a la soluci´on b´ asica x0 , ya que sin las variables b´asicas que son como variables de holgura las restricciones tienen la desigualdad ≤ en el problema de maximizar, otro nombre utilizado es: escribir el problema en forma expl´ıcita respecto a la base B. Con esta forma de expresar el problema tenemos varias ventajas, la m´as importante es que se conoce la situaci´on del problema, veamos: Situaci´on 1: si los coeficientes de la funci´on objetivo cumplen que cj − zj ≤ 0, ∀ j, j ∈ N, significa que incrementar el valor de la variable xj , j ∈ N implica disminuir o no modificar el valor de la funci´on objetivo, as´ı entonces, tenemos la condici´on de optimalidad. Por otro lado, si se tiene que cj − zj > 0 para alguna j ∈ N entonces, es posible mejorar el valor de la funci´on objetivo en la cantidad cj − zj por cada unidad que se incremente el valor de la variable xj . A partir de este caso se tienen a su vez dos opciones: Situaci´on 2: si la columna Y j asociada a la variable xj tiene todas sus componentes negativas, entonces podemos dar a la variable xj un valor λ arbitrariamente grande y pasar al lado derecho del sistema de ecuaciones un m´ ultiplo de la columna Y j , −1 j es decir, xB = B b − λY lo cual genera una clase de soluciones factibles que conforman un rayo y el valor de la funci´on objetivo, z = z0 +λ(cj −zj ), se incrementa arbitrariamente en funci´on de λ. Esto significa que no hay un ´optimo finito para el problema. Por u ´ ltimo, el otro caso. Situaci´on 3: cuando hay al menos una componente positiva en la columna Y j y el vector B −1 b no tiene componentes iguales a cero1 . Entonces, es posible mejorar el valor de la funci´on objetivo incrementando el valor de la variable xj cuyo coeficiente cj − zj es positivo. El l´ımite para el incremento de la funci´on objetivo nest´a dado o por el m´aximo incremento de la variable xj , que puede ser hasta2 min
i / Yij >0
(B −1 b)i Yij
.
1
Esto significa que no tenemos m´as de una base asociada al punto extremo, es decir, el punto no es degenerado. 2 Pues se busca una mejor soluci´on que siga siendo factible; el m´aximo incremento de la variable xj se har´ a mientras se mantenga la factibilidad y esta se rompe con la primera componente (B −1 b)i − xj Yij < 0; se est´ a disminuyendo una cantidad positiva as´ı que el m´aximo decremento, manteniendo el resultado ≥ 0, es cuando se igualan las cantidades, es decir, (B −1 b)i = xj Yij , por lo que el mayor valor de xj es
(B −1 b)i . Yij
7 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION Entonces, ver escrito el problema en forma expl´ıcita respecto a una base tiene la ventaja de mostrar la situaci´on del problema. La escritura concisa y ordenada de este an´alisis se resume en la versi´on del algoritmo simplex que presentamos en seguida.
8 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
ALGORITMO SIMPLEX 1.3
1.3.
Algoritmo Simplex
(0) Se parte de una base B tal que la soluci´on b´asica asociada es factible y se escribe el problema en forma expl´ıcita con respecto a la base B. (1) Se analizan los coeficientes de costo reducido cj − zj . Si cj − zj 6 0 ∀ j, j ∈ N, terminar, la soluci´on que se tiene es ´optima. Si existe al menos un ´ındice j, j ∈ N, tal que cj − zj > 0, sea ck − zk = max {cj − zj } e ir al paso3 (2). j∈N
(2) Dos opciones: Si Y k 6 0 entonces, existe una clase de soluciones factibles tal que el valor de z → ∞ cuando xk → ∞, es decir: xi = xi − Yik xk i ∈ B, xk = λ > 0, arbitrariamente grande, xj = 0 ∀ j, j ∈ N\ {k}. Terminar, no existe soluci´on optima finita. Si Y k 0 ir al paso (3). (3) Se escoge l ∈ B tal que
(B −1 b)l Ylk
= min
i / Yik >0
n
(B −1 b)i Yik
o
y se pivotea
sobre Ylk , con ello se cambia de base y simult´aneamente se escribe el problema en forma expl´ıcita respecto a la nueva base, luego se regresa al paso (1). Una vez seleccionados los ´ındices de las variables que entran y salen de la base, k y l no b´asica y b´asica respectivamente, el n´ umero Ylk es el pivote; pivotear significa hacer operaciones elementales por rengl´on para tener 1 en la posici´on del pivote y ceros en el resto de su columna, con esto se obtiene una nueva forma expl´ıcita del problema respecto a la nueva base. Despu´es del pivoteo, las nuevas variables b´asicas est´an formadas por las variables b´asicas iniciales menos la variable de salida m´as la variable de entrada. A continuaci´on, describimos la forma de resolver un problema de programaci´on lineal implementado el algoritmo simplex.
3
Este criterio para elegir la variable xj no es indispensable, basta que el coeficiente cj − zj sea positivo. Tomar el m´aximo cj −zj no necesariamente garantiza que se llegue m´as r´apido a la soluci´on factible ´ optima, como se puede ver en algunos ejemplos, pero permite seguir un procedimiento.
9 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION Ejemplo 1. Resolver el problema P con el algoritmo simplex.
Max z = x + 5y x − 2y ≤ 1
s.a. P:
x− y ≤2 −x + 7y ≤ 28 x,
y ≥ 0.
Se agregan variables de holgura para escribir el problema en forma est´andar.
Max z = x + 5y s.a. P:
x − 2y + h1
=1
x − y + h2
=2
−x + 7y
+ h3 = 28
x, y, h1 , h2 , h3 ≥ 0.
En esta forma del problema observamos que las columnas asociadas a las variables de holgura forman una base para el espacio vectorial generado por las columnas de la matriz adem´as, la soluci´on b´asica obtenida con esta base es factible. Entonces podemos iniciar el algoritmo simplex a partir de esta soluci´on b´asica, para ello escribimos la informaci´on en la tabla simplex. 10 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´ SOLUCIONES BASICAS FACTIBLES INICIALES 1.4
0
h1 h2 h3 -z
x 1 1 -1 1
y -2 -1 7 5
h1 1 0 0 0
h2 0 1 0 0
h3 0 0 1 0
1 2 28 0
1
h1 h2 y -z
5 7 6 7 - 17 12 7
0 0 1 0
1 0 0 0
0 1 0 0
2 7 1 7 1 7 - 57
9 6 4 -20
iteraci´on
2
h1 x y -z
0 1 0 0
0 0 1 0
1 0 0 0
- 65 7 6 1 6
1 6 1 6 1 6
-2
-1
4 7 5 -32
Tabla que corresponde a la forma expl´ıcita del problema con respecto a la soluci´on b´asica factible inicial.
Para hacer la primera iteraci´on se eligi´o la variable no b´asica y cuyo coeficiente de costo reducido es 5; la variable h3 sale de la base por tener el cociente m´ınimo; el pivote est´a se˜ nalado con un rect´angulo, es el n´ umero 7 de la tabla inicial.
Para hacer la segunda iteraci´on se eligi´o la variable no b´asica x cuyo coeficiente de costo reducido es 12 ; 7 la variable h2 sale de la base de acuerdo al criterio de salida para la variable; el pivote est´a se˜ nalado con un rect´angulo, es el n´ umero 67 de la segunda tabla.
En la tabla que corresponde a la segunda iteraci´on, los coeficientes de costo reducido de las variables no b´asicas son negativos entonces, se tiene la soluci´on factible ´optima del problema P: x∗ = (7, 5, 4, 0, 0)T con zM´ax = 32. En el ejemplo anterior, a partir de las restricciones del problema en forma est´andar se identific´o una soluci´on b´asica factible inicial y con ella inici´o el algoritmo simplex. En general, las restricciones de un problema no siempre permiten identificar una soluci´on b´asica factible inicial, en esos casos se utiliza un m´etodo para obtener una soluci´on de este tipo; los m´etodos m´as usados son: el m´etodo de las dos fases y el m´etodo de la gran M [Bazaraa].
1.4.
Soluciones b´ asicas factibles iniciales
En esta secci´on vamos a presentar ejemplos de las situaciones que se presentan al aplicar el m´etodo de las dos fases y el m´etodo de la gram M, al final de cada soluci´on presentamos la gr´afica asociada al problema. 11 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION
1.4.1.
M´ etodo de las dos fases
La primera fase consiste en agregar variables artificiales para completar una base factible, la funci´on objetivo del problema original se cambia temporalmente por minimizar la suma de las variables artificiales y se resolver´a esta primera etapa. La soluci´on obtenida genera una base para el problema original o nos indica que el problema no tiene soluciones factibles. Tenemos entonces los problemas:
P:
Max z = cx s.a. Ax = b x ≥ 0n×1 ,
donde c es un vector rengl´on de n componentes, x un vector columna de tama˜ no n, A una matriz de tama˜ no m × n y b un vector columna de m componentes.
Min w = a1 + · · · + ak PI : s.a. Ax + Ua = b x ≥ 0n×1 a ≥ 0k×1 ,
x∗ Sea la soluci´on factible ´optima de PI (primera fase) y wM in el valor ´optimo a∗ de la funci´on objetivo correspondiente entonces, puede ocurrir lo siguiente: Si wM in > 0 entonces existe una componente a∗i > 0 en la soluci´on b´asica ´optima, lo cual implica que P no tiene soluciones factibles. En otro caso, si wM in = 0: Si no existe a∗i en la base entonces, se pasa a la segunda fase y se resuelve P. En otro caso, si existe a∗i en la base, se puede pivotear hasta sacar las variables de la base y se continua con el problema P. Los posibles casos del m´etodo de las dos fases se ilustran en el siguiente diagrama.
12 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´ SOLUCIONES BASICAS FACTIBLES INICIALES 1.4
Casos del m´ etodo de las dos fases Resolver el problema PI wM in = 0 ∄ a∗i en la base
wM in >0
∃ a∗i en la base
∃ a∗i > 0
Pasar a P cambiando a∗i de la base
Pasar a P
P no tiene sol. factibles
x∗ Donde x = es la soluci´on factible ´optima del problema PI y wM in el valor a∗ m´ınimo en esta soluci´on. Cuando existe a∗i > 0 en la soluci´on factible ´optima del problema PI , esta variable se cambia de la base de la siguiente forma: se busca un pivote Aki distinto de cero; el ´ındice i corresponde a la variable b´asica a∗i , k corresponde a una variable no artificial y no b´asica. Si no existe tal pivote significa que la restricci´on correspondiente a ese rengl´on es redundante y se elimina4 . En otro caso, si existe el pivote se hace el pivoteo; notemos que si Aki es negativo, a pesar de ser negativo la factibilidad se mantiene ya que el lado derecho del rengl´on i es cero, porque es el valor de la variable artificial. Esto se repite hasta sacar las variables artificiales de la base. Luego, actualizamos los coeficientes de costo reducido de la funci´on objetivo original y continuamos con el algoritmo simplex. A continuaci´on, ilustramos un ejemplo para cada caso. Ejemplo 2. Caso 1: wM in > 0, P no tiene soluciones factibles. Encuentra una soluci´on factible para el siguiente problema.
P:
Max z = x + 2y s.a. 2x + y ≤ 6 3x + y ≥ 15 −x + 2y ≤ 2 x , y ≥ 0.
Como no se tiene una base factible agregando variables de holgura, entonces es necesario buscar una, para ello construimos el problema PI : 4
En general, no se sabe de antemano si la matriz de un problema lineal tiene rango completo por renglones.
13 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION Min s.a. PI :
w=a 2x + y + h1 =6 3x + y − h2 + a = 15 -x + 2y + h3 = 2 x, y, h1 , h2 , h3 , a ≥ 0.
Resolviendo con el algoritmo simplex:
h1 a h3 -w x a h3 -w
x 2 3 -1 -3 1 0 0 0
y 1 1 2 -1
h1 1 0 0 0
1 2 - 12 5 2 1 2
1 2 - 23 1 2 3 2
h2 0 -1 0 1 0 -1 0 1
h3 0 0 1 0 0 0 1 0
a 0 1 0 0 0 1 0 0
6 15 2 -15 3 6 5 -6
Como los coeficientes de costo reducido de las variables no b´asicas son positivos, tenemos que wM in = 6 > 0 por tanto, el problema P no tiene soluciones factibles. La gr´afica de este problema se ilustra en la siguiente figura. y 3 (4, 3) (2, 2)
(3, 0)
(5, 0) x
1
2
Ejemplo 3. Caso 2: wM in = 0 y no hay variables artificiales en la base. Encuentra una soluci´on factible para el siguiente problema.
P:
Max z = x + 5y s.a. 2x + y ≥ 8 x+ y ≤9 −x + 3y ≤ 3 x , y ≥ 0.
14 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´ SOLUCIONES BASICAS FACTIBLES INICIALES 1.4 Agregando variables de holgura no se tiene una base evidente, entonces buscamos una con el m´etodo de las dos fases. Min s.a. PI :
w=a 2x + y − h1 +a=8 x+y + h2 =9 -x + 3y + h3 = 3 x, y, h1 , h2 , h3 , a ≥ 0.
Resolviendo PI :
a h2 h3 -w x h2 h3 -w
x 2 1 -1 -2 1 0 0 0
y h1 1 -1 1 0 3 0 -1 1 1 - 12 2 1 2 7 2
0
1 2 - 12
0
h2 0 1 0 0 0 1 0 0
h3 0 0 1 0 0 0 1 0
a 1 0 0 0
8 9 3 -8 4 5 7 0
1 2 - 12 1 2
1
Tenemos que wM in = 0, ahora a partir de la base encontrada en la primera fase resolvemos el problema P; actualizando la tabla para ese problema obtenemos: x 1 0 0
y
x h2 h3 -z
0
9 2
1 2 1 2 7 2
h1 - 21
h2 0 1 0
h3 0 0 1
4 5 7
0
0
-4
0 1 0 0
3 4 2 -13
3 4 7 4 - 14
- 17 - 17 2 7 - 97 - 41 - 41 1 4
1 2 - 21
x h2 y -z
1 0 0 0
0 0 1 0
1 2 - 37 4 7 - 17 8 7
x h1 y -z
1 0 0 0
0 0 1 0
0 1 0 0
-2
-1
6 7 3 -21
En la tabla los coeficientes de costo reducido de las variables no b´asicas son negativos, entonces tenemos la soluci´on factible ´optima del problema P: x∗ = (6, 3, 7, 0, 0)T con zM´ax = 21. La gr´afica de este problema se ilustra en seguida. 15 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION c
y
n3 (6, 3) n2 (3, 2)
(9, 0) (4, 0)
x
Ejemplo 4. Caso 3: wM in = 0, con variables artificiales en la base. Encuentra una soluci´on factible para el siguiente problema.
P:
Max ̥ = x + y + z s.a. 4x − 2z = 6 −3x + 6y − 4z = 12 3x + 2y − 4z = 12 x , y, z ≥ 0.
Proponemos el siguiente planteamiento para encontrar una base factible: Min s.a. PI :
w = a1 + a2 + a3 4x − 2z + a1 =6 −3x + 6y − 4z + a2 = 12 3x + 2y − 4z + a3 = 12 x, y, z, a1 , a2 , a3 , ≥ 0
16 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´ SOLUCIONES BASICAS FACTIBLES INICIALES 1.4 Resolvemos este problema aplicando el algoritmo simplex.
a1 a2 a3 -w a1 y a3 -w x y a3 -w
x 3 -3 3 -3 3 - 36 4 -7 1 0 0 0
y 0 6 2 -8 0 1 0 0 0 1 0 0
z -2 -4 -4 10 -2 - 64 - 16 6 28 6 - 23
-1 0 0
a1 1 0 0 0 1 0 0 0
a2 0 1 0 0 0
1 3 1 6 - 43 7 3
0
1 6 - 26 8 6 1 6 - 13 4 3
a3 0 0 1 0 0 0 1 0 0 0 1 0
6 12 12 -30 6 2 8 -14 2 3 0 0
Observamos en la tabla anterior que a3 aparece como variable b´asica, pero no hay un pivote distinto de cero para cambiar esta variable por otra no artificial entonces, la tercera restricci´on es redundante. A partir de la soluci´on b´asica factible encontrada en esta primera fase, ya se puede continuar aplicando el algoritmo simplex con la funci´on objetivo original, actualizando los coeficientes de costo reducido correspondientes adem´as, podemos eliminar la restricci´on redundante. En seguida se presenta la gr´afica asiciada a este problema, la regi´on de soluciones factibles es la recta en R3 que inicia en el punto (2, 3, 0)T y se extiende indefinidamente en el primer octante.
z
b
(2,0,0)
(4,6
b b
,3) (0,2,0)
b
x (4,0,0)
b
(2,3,0)
b
(0,6,0) y
b
(0,0,-3) 17 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION
1.4.2.
M´ etodo de la gran M
Otro m´etodo para encontrar soluciones iniciales factibles es el m´etodo de la gran M; en el m´etodo de las dos fases se ignoran los coeficientes de costo originales y se ocupan las variables artificiales para inicial el algoritmo simplex, a diferencia de este m´etodo, en el m´etodo de la gran M los coeficientes originales permanecen y se busca eliminar las variables artificiales asign´andoles coeficientes muy poco atractivos desde el punto de vista de la funci´on objetivo original. En este m´etodo tambi´en se formula un problema auxiliar, entonces tenemos los problemas P y PM .
P:
PM :
Max z = cx s.a. Ax = b x ≥ 0n×1 ,
Max z = cx − M1a s.a. Ax + Ua = b x ≥ 0n×1 a ≥ 0k×1 ,
donde M es un n´ umero positivo muy grande, el t´ermino M1a representa la suma de las variables artificiales multiplicadas por el coeficiente M, a es un vector de tama˜ no k × 1, la i−´esima restricci´on que requiera una variable artificial agregar´a el i−´esimo vector can´onico de tama˜ no m × 1 como columna de la matriz Um×k . N´otese que habr´a tantas columnas en la matriz U como variables artificiales sean necesarias para completar una base. Los posibles casos que se presentan con ´este m´etodo se ilustran en el siguiente diagrama.
Casos del m´ etodo de la gran M Resolver el problema PM
´ ∃ Optimo finito
´ ∄ Optimo finito
a∗ = 0
a∗ 6= 0
a∗ = 0
x∗ es sol. optima de P ´
P no tiene sol. factibles
P no tiene opt. finito ´
18 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´ SOLUCIONES BASICAS FACTIBLES INICIALES 1.4
x∗ Donde x = es la soluci´on factible ´optima del problema PM . a∗ A continuaci´on presentamos un ejemplo de cada caso. Ejemplo 5. Caso 1: PM tiene ´optimo finito y a∗ = 0. Encuentra una soluci´on factible para el siguiente problema. Max z = −2x + 7y s.a. x − y ≤2 2x + 3y ≥ 9 −x + 7y ≤ 28 x, y ≥0
P:
Agregando variables de holgura no se tiene una base, pero si adem´as se agrega una variable artificial y se modifica la funci´on objetivo obtenemos el siguiente planteamiento. Max s.a. PM :
z = −2x + 7y − Ma x − y + h1 =2 2x + 3y − h2 + a=9 −x + 7y + h3 = 28 x, y, h1 , h2 , h3 , a ≥ 0.
Resolvemos con el m´etodo simplex:
5 3 2 3 - 17 3
y -1 3 7 7+3M 0 1 0
h1 1 0 0 0 1 0 0
h2 0 -1 0 -M - 13 - 13
-z
- 20 3
0
h1 y h2 -z
6 7 - 17 - 17 7
0 1 0 0
h1 a h3 -z h1 y h3
x 1 2 -1 -2+2M
-1
7 3
h3 0 0 1 0 0 0 1
a 0 1 0 0 1 3 1 3 - 73
2 9 28 9M 5 3 7
0
7 3
0
- 73 -M
-21
1 0 0 0
0 0 1 0
1 7 1 7 3 7
0 0 -1 -M
6 4 3 -28
-1
Como los coeficientes de costo reducido de las variables no b´asicas son negativos, la soluci´on factible ´optima es x∗ = (0, 4, 6, 3, 0, 0)T , pero a∗ = 0, as´ı que la soluci´on factible ´optima del problema P es el vector (0, 4, 6, 3, 0)T con zM´ax = 28. En seguida se ilusttra la gr´afica asociada a este problema. 19 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION c y
n3 3
(7, 5)
(0, 4)
n2 2
(0, 3)
(3, 1) 1 x
(2, 0)
Ejemplo 6. Caso 2: PM tiene o ´ptimo finito y a∗ 6= 0. Encuentra una soluci´on factible para el siguiente problema. Max z = x + 2y s.a. 2x + y ≤ 6 3x + y ≥ 15 −x + 2y ≤ 2 x , y ≥ 0.
P:
Entonces, el problema PM es el siguiente: z = x + 2y − Ma 2x + y + h1 =6 3x + y − h2 + a = 15 −x + 2y + h3 = 2 x, y, h1 , h2 , h3 , a ≥ 0.
Max s.a. PM :
Aplicando el algoritmo simplex:
h1 a h3 -z x a h3 -z
x 2 3 -1 1+3M 1 0 0 0
y 1 1 2 2+M
h1 1 0 0 0
1 2 - 12 5 2
1 2 - 23 1 2
3 2
−
M 2
− 12 −
3M 2
h2 h3 0 0 -1 0 0 1 -M 0 0 0 -1 0 0 1 -M 0
a 0 1 0 0 0 1 0 0
6 15 2 15M 3 6 5 -3+6M
20 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´ SOLUCIONES BASICAS FACTIBLES INICIALES 1.4 Como M es un n´ umero positivo muy grande, los coeficientes de costo reducido de las variables no b´asicas son negativos, entonces la soluci´on factible ´optima es x∗ = (3, 0, 0, 0, 5, 6)T y zM´ax = 3 − 6M, como a∗ 6= 0 P no tiene soluciones factibles. En seguida presentamos la gr´afica asociada a este problema. y 3 (4, 3) (2, 2)
(3, 0)
(5, 0) x
1
2
Ejemplo 7. Caso 3: PM no tiene ´ optimo finito y a∗ = 0. Encuentra una soluci´on factible para el siguiente problema. Max s.a. P:
z =x+y x − 2y ≤ 3 2x − y ≥ 2 2x + y ≥ 6 x , y ≥ 0.
El problema PM asociado es el siguiente: Max s.a. PM :
z = x + y − Ma1 − Ma2 x − 2y + h1 =3 2x − y − h2 + a1 =2 2x + y − h3 + a2 = 6 x, y, h1 , h2 , h3 , a1 , a2 ≥ 0
21 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION Resolviendo con el m´etodo simplex tenemos: x 1 2 2 1+4M 0 1 0
y -2 -1 1 1 - 32 - 12 2
-z
h1 1 0 0 0 1 0 0
h2 0 -1 0 -M
h3 0 0 -1 -M 0 0 -1
a1 0 1 0 0 - 21
0
3 +2M 2
0
1 +M 2
h1
0
0
1
1
0
0
y
0
1
0
5 4 - 41 1 2
x
-z
0
0
0
- 41
h1 a1 a2 -z h1 x a2
1 2 - 21
1
-1
a2 0 0 1 0 0 0 1
3 2 6 8M 2 1 4
-M
- 12 -2M
0
-1+4M
- 34
- 54
5
- 14 - 12
1 4 - 12
3 4 1 4 1 2
3 4
- 14 -M
- 34 -M
-4
1 2
2 2
Por los elementos se˜ nalados en la u ´ ltima tabla podemos concluir que se trata de una soluci´on no acotada. El conjunto de soluciones para el problema PM est´a dado por x∗ = (2 + 14 h3 , 2 + 21 h3 , 5 + 34 h3 , 0, h3, 0, 0)T , h3 ∈ R+ y z = −4 + 43 h3 . Como a∗ = (0, 0)T el problema P tiene soluciones factibles, adem´as no tiene ´optimo finito ya que z → ∞. En seguida se ilusttra la gr´afica asociada a este problema. h3 →∞
y
(4, 6)
2 c
(2, 2)
(7, 2) 3
(1, 0) (3, 0)
1 x
22 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas
Investigación de Operaciones Unidad 2. Programación lineal, algortimo simplex Contenido nuclear
Bibliograf´ıa Bazaraa, M.S. (1999). Programaci´ on Lineal y Flujo en Redes. Segunda Edici´on. M´exico: Limusa. Kaufmann, A. (1976). M´etodos y modelos de la Investigaci´ on de Operaciones. Espa˜ na: Compa˜ nia Editorial Continental. Taha, H. (1992). Operations Research: An Introduction. Fifth Edition. U.S.A.: Macmillan Publishing Company.
23 Ciencias exactas e ingenierías y tecnologías/Licenciatura en Matemáticas