Iounidad2

Page 1

´Indice general Introducci´ on 1. Programaci´ on lineal, algoritmo simplex 1.1. Notaci´on . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Soluciones factibles, b´asicas factibles y bases . . . . 1.3. Forma expl´ıcita de un problema respecto a una base 1.4. Algoritmo Simplex . . . . . . . . . . . . . . . . . . 1.5. Soluciones b´asicas factibles iniciales . . . . . . . . . 1.5.1. M´etodo de las dos fases . . . . . . . . . . . . 1.5.2. M´etodo de la gran M . . . . . . . . . . . . . Bibliograf´ıa

3 . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

5 5 5 7 11 13 14 20 25

1



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



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.

Soluciones factibles, b´ asicas factibles y bases

En los problemas de optimizaci´on se busca la mejor soluci´on, pero que sea factible, es decir, que satisface los requerimientos del problema. Puesto que las variables regularmente representan cantidades de cosas, se pide tambi´en que las variables sean no negativas. Las soluciones que cumplen las restricciones y son no negativas se llaman soluciones factibles. Consideremos el Problema de Programaci´on Lineal P Max P s.a.

z = c′ x A′ x ≤ b x ≥ 0.

Vamos a partir de que el problema P no tiene restricciones redundantes o bien que la matriz es de rango completo por renglones, esta consideraci´on la vamos a suponer 5


´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION para el desarrollo de las secciones que siguen. Por lo visto en la unidad anterior el problema se puede transformar a su forma est´andar agregando variables de holgura, resultando el siguiente planteamiento: Max z = c′1×n xn×1 + 01×m hm×1 ′ s.a. Am×n xn×1 + Im×m hm×1 = bm×1 x ≥ 0n×1 h ≥ 0m×1 . Observamos que ahora la matriz asociada a las restricciones resulta Am×(n+m) = A′m×n |Im×m y b no cambia. Otra manera de ver el conjunto de restricciones es como una combinaci´on lineal de las columnas de la matriz; si denotamos por Aj a la j-´esima columna de la matriz A las restricciones se pueden expresar as´ı: x1 A1 + x2 A2 + . . . + xn An + h1 An+1 + hm An+m = b. Es claro que una posible soluci´on factible del problema es x = 0n×1, h = b; la factibilidad depende de que b ≥ 0n×1 . Con esta forma de ver las restricciones, la parte de la soluci´on que es diferente de −1 cero, h, se puede calcular como h = Im×m b = b, puesto que x = 0n×1 en el sistema de ecuaciones. Observamos que la matriz Im×m es invertible adem´as, su inversa es ella misma. Las soluciones que se obtienen de esta forma se llaman soluciones b´asicas, y la base 1 de estas soluciones son las m columnas linealmente independientes de la matriz que son multiplicadas por las variables. De lo anterior tenemos que hay una correspondencia biun´ıvoca entre bases y soluciones b´asicas2 . Como las variables est´an asociadas a las columnas, xj Aj , una elecci´on de las columnas la tenemos eligiendo los ´ındices de sus variables asociadas, es decir, {i1 , . . . , im }, entonces una posible3 base es la matriz formada por las columnas Ai1 . . . Aim . Se har´a un abuso de notaci´on con la letra B, que seg´ un el contexto denotar´a una matriz cuadrada formada por las columnas de A o tambi´en el conjunto de ´ındices de las variables asociadas a dichas columnas {i1 , . . . , im }; de igual manera la letra N puede denotar la matriz formada por las columnas restantes de la matriz A, adem´as de los ´ındices N = {1, 2, . . . , n + m} \ {i1 , . . . , im }. Una base se construye con m columnas linealmente independientes de la matriz y −1 su soluci´ on b´asica asociada se obtiene as´ı: xB = B b, xN = 0. Si adem´as se cumple xB que x ≥ 0 donde x = , entonces se trata de una soluci´on b´asica factible. Los xN conceptos de esta secci´on se ilustran con el siguiente ejemplo. 1

El concepto de base es el que se conoce en el contexto de espacios vectoriales, son conjuntos linealmente independientes que generan al espacio vectorial. 2 Las soluciones b´ asicas no necesariamente son factibles. 3 Es una posible base porque no hay garant´ıa de que las columnas sean linealmente independientes.

6


FORMA EXPL´ICITA DE UN PROBLEMA RESPECTO A UNA BASE 1.3 Ejemplo 1. Consideremos un problema de maximizar en forma can´onica en el que agregamos las variables de holgura x5 y x6 . Luego de agregar dichas variables obtenemos el planteamiento en forma est´andar que sigue. Max s.a.

z = 3x1 + x3

2x1 − x2 + x3 + x4 + x5 x1 + 3x2 + 2x3 + x4 +

=3 x6 = 2

x1 , x2 , x3 , x4 , x5 , x6 ≥ 0 Una soluci´on b´asica x = (0, 0, 0, 0, 3, 2)T se obtiene de la base B = {5, 6}, 5 6 N = {1, 2, 3, 4}, la base est´a formada por las columnas A y A de A. 21 tenemos la soluci´on b´asica Si elegimos la base B = {1, 3} o bien B = 12 4/3 , xN = (0, 0, 0, 0)T , N = {2, 4, 5, 6}. xB = B −1 b = 1/3 −1 1 3 21 = Otra base es B = {1, 4}, xB = 1 2 11 1 x1 , xN = (x2 , x3 , x5 , x6 )T = (0, 0, 0, 0)T . = xB = 1 x4

1.3.

Forma expl´ıcita de un problema respecto a una base

En esta secci´on se explica el desarrollo que da origen al algoritmo simplex, para ello 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 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 }. 7


´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION La soluci´on b´asica obtenida a partir de una base B se puede expresar de la xB , donde xB = B −1 b y los valores de las variables no siguiente forma: x0 = xN b´asicas xN son cero; el valor de la funci´on objetivo en esta soluci´on est´a dado por xB = cB xB + cN xN = cB (B −1 b). z0 = (cB , cN ) 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. X xB = B −1 b − 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: X z = z0 + (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. P Max z = z0 + (cj − zj )xj j∈N

s.a.

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 P −z + (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

8

Y j1 · · · Y jn cj1 − zj1 · · · cjn − zjn

Im×m ··· 0 ···

B −1 b −z0


FORMA EXPL´ICITA DE UN PROBLEMA RESPECTO A UNA BASE 1.3 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 o´ptimo 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 cero4 . 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 hasta5 min

i / Yij >0

(B −1 b)i Yij

.

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 algoritmo simplex.

4

Esto significa que no tenemos m´as de una base asociada al punto extremo, es decir, el punto no es degenerado. 5 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

9


´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION Con las proposiciones siguientes se argumenta que en caso de que exista soluci´on factible o´ptima, ´esta se puede encontrar entre las soluciones b´asicas factibles. Con lo que tiene sentido aplicar el algoritmo simplex para encontrar la soluci´on o´ptima, el cual parte de una soluci´on b´asica factible y en cada iteraci´on puede mejorar el valor de la funci´on objetivo al mismo tiempo que cambia de soluci´on b´asica6 Proposici´on 1.- Las soluciones b´asicas factibles son puntos extremos del conjunto de soluciones factibles. Proposici´on 2.- Si existe soluci´on factible ´optima, entonces existe al menos un punto extremo que tambi´en es soluci´on factible ´optima. Proposici´on 3.- A todo punto extremo del conjunto de soluciones factibles se le puede asociar al menos una base. En seguida presentamos una versi´on del algoritmo simplex.

6

10

En ausencia de degeneraci´ on en la soluci´on b´ asica.


ALGORITMO SIMPLEX 1.4

1.4.

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 paso7 (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.

7

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.

11


´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION Ejemplo 2. Resolver el problema P con el algoritmo simplex.

Max z = x + 5y s.a.

x − 2y ≤ 1

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. 12


´ SOLUCIONES BASICAS FACTIBLES INICIALES 1.5 iteraci´on

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 - 75

9 6 4 -20

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 76 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.5.

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. 13


´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION

1.5.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∗ la soluci´on factible ´optima de PI (primera fase) y wM in el valor o´ptimo Sea 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.

14


´ SOLUCIONES BASICAS FACTIBLES INICIALES 1.5

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∗ es la soluci´on factible ´optima del problema PI y wM in el valor Donde x = 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 elimina8 . 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 3. 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 : 8

En general, no se sabe de antemano si la matriz de un problema lineal tiene rango completo por renglones.

15


´ 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 - 21 5 2 1 2

1 2 - 32 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 4. Caso 2: wM in = 0 y no hay variables artificiales en la base. Encuentra una soluci´on factible para el siguiente problema.

P:

16

Max z = x + 5y s.a. 2x + y ≥ 8 x+ y ≤9 −x + 3y ≤ 3 x , y ≥ 0.


´ SOLUCIONES BASICAS FACTIBLES INICIALES 1.5 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 - 21 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 - 41

- 71 - 71 2 7 - 79 - 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. 17


´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION y

c

n3 (6, 3)

n2 (3, 2)

(9, 0) (4, 0)

x

Ejemplo 5. 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 :

18

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


´ SOLUCIONES BASICAS FACTIBLES INICIALES 1.5 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) 19


´ LINEAL, ALGORITMO SIMPLEX CAP´ITULO 1: PROGRAMACION

1.5.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

20

´ ∄ 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 ´


´ SOLUCIONES BASICAS FACTIBLES INICIALES 1.5 x∗ es la soluci´on factible ´optima del problema PM . Donde x = a∗ A continuaci´on presentamos un ejemplo de cada caso.

Ejemplo 6. 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 - 71 - 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

1 3 1 3 - 37

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

a 0 1 0 0

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. 21


´ 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 7. Caso 2: PM tiene ´ optimo 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: Max s.a. PM :

z = x + 2y − Ma 2x + y + h1 =6 3x + y − h2 + a = 15 −x + 2y + h3 = 2 x, y, h1 , h2 , h3 , a ≥ 0.

Aplicando el algoritmo simplex:

h1 a h3 -z x a h3 -z 22

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

− 21 −

3M 2

h2 0 -1 0 -M 0 -1 0 -M

h3 0 0 1 0 0 0 1 0

a 0 1 0 0 0 1 0 0

6 15 2 15M 3 6 5 -3+6M


´ SOLUCIONES BASICAS FACTIBLES INICIALES 1.5 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 o´ptima 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 8. 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

23


´ 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 - 21 2

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 - 12

0

3 +2M 2

0

1 +M 2

-z h1

0

0

1

x

1

0

0

y

0

1

-z

0

0

h1 a1 a2 -z h1 x a2

-1

a2 0 0 1 0 0 0 1

3 2 6 8M 2 1 4

-M

- 21 -2M

0

-1+4M

- 43

- 45

- 41 - 21

1 4 - 21

3 4 1 4 1 2

5

0

5 4 - 41 1 2

0

- 41

3 4

- 41 -M

- 34 -M

-4

1 2 - 12

1

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 + 12 h3 , 5 + 43 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 o´ptimo 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)

24

1 x


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.

25


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.