Unidad 2 programación lineal, algoritmo simplex

Page 1

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


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.