P. 1
Método de la Gran M

Método de la Gran M

|Views: 7.208|Likes:

More info:

Published by: Domingo González Caraballo on Jun 13, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

07/30/2013

pdf

text

original

Método de la Gran M

No de Visitas:17421

Descripción clara del Método de la Gran M para resolver problemas de Programación Lineal usando el Simplex con restricciones de >= e = Mientras que los Programas Lineales que solo tienen restricciones de <= se pueden resolver sólo usando variables de holgura, para aquellos programas lineales que involucren restricciones de tipo >= e = es necesario como ya lo habíamos comentado, usar variables artificiales. Dijimos también que las variables de holgura tenían un significado físico real que correspondía a las disponibilidades o requerimientos no usados en las restricciones, pero que las variables artificiales no tenían ninguna representación física y que sólo eran usadas como un comodín matemático para ayudar en la solución del problema. Pues bien, cuando tenemos que usar variables artificiales al tener restricciones de >= e = debemos usar uno de las siguientes variantes del simplex:

 

El Método de la Gran M El Método de las dos fases

Aquí detallaremos el Método de la Gran M.

Definimos la letra M como un número muy grande pero finito para usarlo como coeficiente de las variables artificiales en la función objetivo y con sentido contrario a la misma para penalizar de manera muy grande la existencia de las mismas en la solución. Si el objetivo es minimizar las variables artirficiales entraran con M positivo y si es maximizar las variables artificiales se usaran como -M.

Ejemplo:
Min Z = 2X1 + X2 + 3X3
Sujeto a: 3X1 + X2 + 2X3 <= X1 - 2X2 + 3X3 2X1 + 3X2 C.N.N X3 X1 + X2 +2X3 >= <= = 10 6 9 7

1. Convertir al Modelo Estándar:
Cada restricción debe ser convertida de inecuación a una igualdad, agregando variables como se requiera. Con las restricciones de tipo <=, es supremamente fácil. Simplemente se agrega una en cada restricción con coeficiente 1 en la misma restricción y con coeficiente cero en la función objetivo. Por ejemplo:

3X1 + X2 + 2X3 <= 10 queda: 10 3X1 + X2 + 2X3 + S1 = Se puede leer así: el uso de la primera restricción no puede superar la disponibilidad de 10 unidades. Para las restricciones de tipo mayor o igual.. En resumen el modelo queda de la siguiente manera: Min Z = 2X1 + Sujeto a: 3X1 + X1 2X1 + X2 2X2 3X2 + 2X3 + 3X3 X3 + S1 . sin ningún significado físico.S2 + A1 = 6 Al usar una variable artificial debemos penalizar la función objetivo allí la vamos a incluir con un coeficiente muy grande. Podríamos escribirlo también como 6+0..1 o 6+1 o 6+2 .S2 + A1 + S3 = 6 = 9 = 10 X2 + 3X3 + 0S1 + 0S2 + MA1 + 0S3 + MA2 . Eso significa que el uso podría ser 6.. sólo como artificio matemático.1 o tal vez 7 u 8. Lo sumamos al lado izquierdo de la restricción como se muestra a continuación: X1 . lo que equivale a decir que lo usado mas lo que sobre (s1) es igual a 10. etc. Positiva si es minimizando o negativa si es maximizando . de esta manera decir: X1 . La tercera restricción es de tipo <=.S2 = 6 Sin embargo para el método simplex. por lo que no tenemos ningún problema con ella: 2X1 + 3X2 2X1 + 3X2 X3 <= 9 queda 9 X3 + S3 = La cuarta restricción es de tipo =. Para este tipo de restricción simplemente adicionamos una variable artificial al lado izquierdo: X1 + X2 +2X3 X1 + X2 +2X3 = 7 queda: 7 + A2 = Recordemos: las variables de holgura quedan con coeficiente 0 en la función objetivo y las variables artificiales con coeficiente M. la lógica es la misma. o en términos generales: X1 .MA1. llamado M. llamada Variable Artificial.2X2 + 3X3 = 6 + S2 que es equivalente a decir: lo usado en la restricción2es igual al mínimo requerido que es 6 mas el adicional que esta en S2. cuando aparece esta restricción tipo >= es necesario adicionar una variable comodín..2X2 + 3X3 .2X2 + 3X3 >= 6 Se puede leer como: el uso de la restricción 2 debe ser como mínimo 6 unidades. al estar minimizando la sumamos + . Esto lo podemos reescribir como: X1 .2X2 + 3X3 .

-Si hay variables de decisión. tomamos la S1 para la base. las demás variables las llamamos No Básicas y se se toman con valor cero (de manera análoga a cuando resolvemos un sistema de ecuaciones que tiene más variables que ecuaciones.N. S1. R2. R1. indicando los nombres de las variables en negro queda asi: Fig 1 Min Z R1 R2 R3 R4 X1 2 3 1 2 1 X2 1 1 -2 3 1 X3 3 2 3 -1 2 S1 0 1 0 0 0 S2 0 0 -1 0 0 A1 M 0 1 0 0 S3 0 0 0 1 0 A2 M 0 0 0 1 RHS 10 6 9 7 Dónde X1. Definir la Variable que entra Recordemos que tenemos un grupo de variables que llamamos base a las que tenemos en cuenta en cada iteración para dar la solución.X1 + X2 + 2X3 + A2 = 7 C. 3. de decisión y artificial. -Si hay variables de decisión y artificiales se toma la variable artificial. (RHS= Right Hand Side: "el lado derecho" es decir los valores numéricos). S2 y S3 son las variables de Holgura. Por esta razón para la primera restricción dónde hay variables de decisión (Xi) y la de holgura S1. R4 son las restricciones y RHS son las disponibilidades o Requerimientos de las restricciones. X2. de holgura y artificiales se toma la variable artificial.N (Condición de No Negatividad) 2. en la segunda restricción hay de holgura. Escribir en formato de Tabla Simplex. se toma la de holgura. R3. En la primera iteración la regla para escoger las variables que estarán en la base es la siguiente: -Si hay variables de decisión y de holgura. Si lo escribimos como una matriz. X3 son las variables de decisión. . tenemos que hacer cierta cantidad de estas variables iguales a cero).

por lo que tomamos la A2 para la base.. Rapidamente nos damos cuenta que corresponde a 3-5M. etc.. las disponibilidades/requerimientos de las restricciones en la columna RHS. a cuál?? Fig 2 X1 X2 X3 S1 S2 A1 S3 A2 . haga lo siguiente: reemplace M por un valor grande positivo en la fila Cj -Zj. Todas las demás se asumen en la primera iteración con valor cero.tomamos la artificial A1.. tomamos la de holgura S3 y por último en la cuarta restricción hay de decisión y artificial. Llenar la tabla inicial. Hay muchos formatos de tablas.de igual manera para las otras 5 columnas. En este momento nos hacemos la siguiente pregunta: cuál variable al entrar a la base hace que la función objetivo disminuya más (porque estamos minimizando)? O en otras palabras. sólo para dar un poco más de claridad a la iteración. luego vienen las restricciones con sus coeficientes. en la primera columna están los coeficientes de las variables básicas. pero en esencia son el mismo.. Algunas personas omiten la fila Z.. en la tercera hay de decisión y de holgura. Si no lo ve tan rápido. una columna vacía llamada Theta que ya llenaremos. muy grande. Por lo tanto ésta variable debe entrar a reemplazar a otra variable en la base. 0 * 1 + M * (-2) + 0*3 + M*1 0*2+M*3 + 0 *-1 + M*2 La fila Cj-Zj es el resultado de restar el coeficiente de la función objetivo (la segunda fila de negro) con el valor de Z que acabamos de calcular. Realmente no es necesaria.000. notará de inmediato que el valor más negativo esta en la columna respectiva a la variable X3.. Las dos ultimas filas son para determinar que variable va a entrar a la base. así: 0*3+M*1 + 0*2 + M*1 = 2M = -M = 5M . Esta el listado de variables que se tienen en la base (en la segunda columna rotulada como base). cuál es el valor más negativo de Cj-Zj? Recordemos que M representa un número finito. La fila Z es el resultado de la suma del producto de la columna 'coef' y de cada columna en la restricción. 2-2M = 2-M (evidente!) 1-(-M) = 1+M. digamos por 1000. muy. puesto que de todas es la que tiene el valor negativo de M con mayor valor absoluto. Tal como se ve en la tabla de abajo.

67 3/3 = 1(Pivote) 0/3= 0 -1/3= -0. En la fig 2 corresponde al valor 3. Iteración: Gauss-Jordan Luego que se ha encontrado que variable sale de la base. Sobre ella se empleará el método de Gauss-Jordan. acabamos de decir que es la variable X3. A la intersección entre la columna de la variable que entra y de la fila de la variable que sale. 4. Vamos paso por paso: Convertir la celda pivote en 1. correspondiendo a la variable A1. (Para convertir el pivote en 1).. Por lo tanto sale A1 y entra X3. dividiendo toda la fila por ella misma * Convertir todas las celdas por encima y por debajo de la celda pivote en cero.5 La variable que más nos restringe. 10 /2 = 5 6/3 =2 9 / -1 = . y cual entra y que pr lo tanto ya tenemos una celda pivote. en caso que dividamos por un valor negativo. no lo vamos a tener en cuenta para salir. Este cociente lo vamos a llamar Theta. la fila que contiene el pivote la vamos a pasar al nuevo formato convertida mediante la siguiente operación: dividimos toda la fila por el valor del pivote.33 0/3=0 0/3=0 6/3= 2 (En la columna del RHS) .Zj 2-2M 1+M 3-5M Entra 0 1 0 0 0 0 0 0 0 -1 0 0 -M M M 0 1 0 0 M 0 0 0 0 1 0 0 0 M RHS Theta 0 10 5. por lo tanto la que el valor de theta es menor (pero positivo) es de 2.33 -2/3 = -0.. Llenamos un formato vacio simplex.00 Sale 0 9 M 1 7 3. Algunos libros lo llaman 'ratio'. 7/2 = 3.Coef Base 2 1 3 0 S1 3 1 2 M A1 1 -2 3 0 S3 2 3 -1 M A2 1 1 2 Z 2M -M 5M Cj. Definir la Variable que Sale Para establecer que variable debe salir de la base. Ello lo podemos resumir como: * Convertir la celda pivote en 1.50 M 13M 0 3. por lo que lo rotulamos como M. la llamamos pivote. 1/3 = 0. es necesario realizar la eliminación gaussiana.33 1/3=0. bueno. Aquí siempre he señalado el pivote de color verde. en nuestro caso. hacemos un cociente entre la disponibilidad (RHS) y la columna de la variable que entra.00 0 6 2.

5. Y es sencillamente lo siguiente. Lo mismo para el caso de la maximización. En la fig 2 nos damos cuenta que habían todavia valores negativos en Cj-Zj. que contiene el 3. Ej Para la primera fila que contiene el 2 que deseamos eliminar multiplicamos la fila pivote por -2 y se la sumamos asi: La fila pivote que quedó convertida en esto: 0. en el pivote en verde. ahora en la fig 3. Por encima encontramos el 2 y por debajo encontramos el -1 y el 2. Si al calcular esta fila aún hay valores negativos y estamos minimizando.67 1 0 -0.67 1. precisamente el que acabamos de convertir en 1.33 0 0 2 La multiplicamos por -2 y nos da: -0. de sus clases de algebra lineal sientase libre de saltar esta explicación): Multiplicamos la fila que contenia el pivote por el opuesto de cada número que deseamos eliminar y se lo sumamos a la fila que deseamos convertir. Estos valores son los que debemos convertir en ceros. Esta nueva fila que hemos calculado va a servir para convertir las demas celdas por la columna del pivote en cero.67 -0. aún no hemos llegado al óptimo.33 0.66 0 0 6 Este valor es el que copiamos en el nuevo formato en la fig 3 en la fila correspondiente.33 0 1 0. Con ello ya llenamos todo el formato. entonces es posible mejorar aún más la solución. Si hay valores positivos en la fila Cj-Zj y estamos maximizando.33 2. Prueba de Optimidad: La prueba de optimidad se debe hacer cada vez que se evalua si hay una variable que debe entrar a la base.33 -2 0 0.67 0 0 -4 El valor anterior lo sumamos componente a componente a la fila en la que queremos hacer la eliminación: que es la siguinte: 3 1 2 1 0 0 0 0 10 Y el resultado es: 2. Fijemonos un momento en la fig 2.Y la pasamos al nuevo formato (Fig3).67 -0. Para ello hacemos operaciones entre filas y columnas de la siguiente manera (s recuerda bien los detalles de esto. Repetimos este procedimiento para la fila 3 y la fila 4. como es el requisito del método. aún quedan valores negativos. la primera. por lo tanto no se había terminado. Se hace la pregunta: Hay alguna variable que al entrar mejora la solución? Ello lo vemos en la fila Cj-Zj.33 -0. . el más negativo de ellos esta en la variable X2 por lo tanto debe entrar.

33 2. .00 0.14 M+0.86 Fig 4 Coef Base 0 S1 3 X3 0 S3 1 X2 Z Cj.00 0. evaluamos si hay algun valor negativo en la fila Cj-Zj. Hemos llegado al óptimo: La solución es Z=9.00 1.14 1.00 -0.14 0.00 -0.00 X3 3 0.00 0.33M Cj.00 3.00 0.00 1.00 0.62 S3 A2 0 M RHS Theta 0. por lo que no hay ninguna variable que al entrar mejore la solución. Hacemos gauss-jordan.00 M+2.00 3.00 0.29 -0.57 X2 1 0.33 1 0 11 4.43 1.33 0.Zj X1 2 2.33M 3-2.86 1.67 -0.29 -0.00 8.00 0.00 0.29. la reemplazamos en el tablero de la figura 4. X1 X2 Coef Base 2 1 0 S1 2.00 0.33 0.00 0.14 -1.33 3 X3 0.29 Sale 0 -1+0.66M 0 M 6+3M 0 1-0.14 0.00 -1.29 2.) X2= 1.00 0.8571 X1=0 (Por que no estaba en la base.29 0.Zj 1-0.00 1.43 Nota: al escribir esto he tenido la duda de si explico demasiado básico para mis lectores o si por el contrario asumo cosas y no explico lo suficiente.00 0.71 0.00 1.00 0.33 Z 1+0.57 0. luego calculamos Z y calculamos Cj-Zj.8571 0.00 0.33 2.00 0.00 0.43 2.33 -0.33M Entra X3 3 0.67 0 0 6 2.33 0 0 2 M 0.43 0.00 0.67 0 S3 2.00 0.00 0.00 0. nos damos cuenta que no.66M 1-0.00 -1.00 0. Usted tiene la palabra en los comentarios .67 -0.29 9.Continuando el algoritmo en la fig3 evaluamos que la variable A2 debe salir.00 -0.33 2.00 0.66M -1+1.00 3 0 S1 S2 A1 S3 A2 0 0 M 0 M RHS Theta 1.14 0. X3=2.33 M A2 0.33M -2+2. Fig 3.66M 0 0 Aquí en el tablero de la figura 4.00 1.00 S1 0 1.00 0.00 1.67 0 1 3 1.00 S2 A1 0 M 0.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->