Está en la página 1de 15

Mtodo Simplex

En el ao 1947 el doctor George Dantzig present el algoritmo que desarroll y que denomin simplex. A partir de este logro se pudieron resolver problemas que por ms de un siglo permanecieron en calidad de estudio e investigacin con modelos formulados pero no resueltos. El desarrollo paralelo de la computacin digital, hizo posible su rpido desarrollo y aplicacin empresarial a todo tipo de problemas. El mtodo simplex disminuye sistemticamente un nmero infinito de soluciones hasta un nmero finito de soluciones bsicas factibles. El algoritmo simplex utiliza el conocido procedimiento de eliminacin en la solucin de ecuaciones lineales de Gauss- Jordan y, adems aplica los llamados criterios del simplex con los cuales se asegura mantener la bsqueda dentro de un conjunto de soluciones factibles al problema; as valora una funcin econmica Z, exclusivamente en vrtices factibles. Tambin se consigue con eficiencia, debido a que se dirige la bsqueda haciendo cambios a una solucin bsica factible adyacente, que se distingue al tener m-1 variables bsicas iguales; es decir, dos vrtices adyacentes slo difieren en una variable bsica; seleccionando la ruta de mayor pendiente, para mejorar el valor de Z, o por lo menos conservarlo. El mtodo Simplex es un procedimiento iterativo que permite ir mejorando la solucin a cada paso. El proceso concluye cuando no es posible seguir mejorando ms dicha solucin. Partiendo del valor de la funcin objetivo en un vrtice cualquiera, el mtodo consiste en buscar sucesivamente otro vrtice que mejore al anterior. La bsqueda se hace siempre a travs de los lados del polgono, o de las aristas del poliedro, si el nmero de variables es mayor. Cmo el nmero de vrtices y de aristas es finito, siempre se podr encontrar la solucin. El mtodo Simplex se basa en la siguiente propiedad: si la funcin objetivo, f, no toma su valor mximo en el vrtice A, entonces hay una arista que parte de A, a lo largo de la cual f aumenta. Deber tenerse en cuenta que este mtodo slo trabaja para restricciones que tengan un tipo de desigualdad "" y coeficientes independientes mayores o iguales a 0, y habr que estandarizar las mismas para el algoritmo. En caso de que despus de ste proceso, aparezcan restricciones del tipo "" o "=" habr que emplear otros mtodos, siendo el ms comn el mtodo de las Dos Fases.

PREPARANDO EL MODELO PARA ADAPTARLO AL MTODO SIMPLEX


Esta es la forma estndar del modelo: Funcin objetivo: Sujeto a: c1x1 + c2x2 + ... + cnxn a11x1 + a12x2 + ... + a1nxn = b1 a21x1 + a22x2 + ... + a2nxn = b2 ... am1x1 + am2x2 + ... + amnxn = bm x1,..., xn 0

Para ello se deben cumplir las siguientes condiciones: 1. El objetivo es de la forma de maximizacin o de minimizacin. 2. Todas las restricciones son de igualdad. 3. Todas las variables son no negativas. 4. Las constantes a la derecha de las restricciones son no negativas.

Cambio del tipo de optimizacin.


Si en nuestro modelo, deseamos minimizar, podemos dejarlo tal y como est, pero deberemos tener en cuenta nuevos criterios para la condicin de parada (deberemos parar de realizar iteraciones cuando en la fila del valor de la funcin objetivo sean todos menores o iguales a 0), as como para la condicin de salida de la fila. Con objeto de no cambiar criterios, se puede convertir el objetivo de minimizar la funcin F por el de maximizar F(-1). Ventajas: No deberemos preocuparnos por los criterios de parada, o condicin de salida de filas, ya que se mantienen. Inconvenientes: En el caso de que la funcin tenga todas sus variables bsicas positivas, y adems las restricciones sean de desigualdad "", al hacer el cambio se quedan negativas y en la fila del valor de la funcin objetivo se quedan positivos, por lo que se cumple la condicin de parada, y por defecto el valor ptimo que se obtendra es 0. Solucin: En la realidad no existen este tipo de problemas, ya que para que la solucin quedara por encima de 0, alguna restriccin debera tener la condicin "", y entonces entraramos en un modelo para el mtodo de las Dos Fases.

Conversin de signo de los trminos independientes (las constantes a la derecha de las restricciones)
Deberemos preparar nuestro modelo de forma que los trminos independientes de las restricciones sean mayores o iguales a 0, sino no se puede emplear el mtodo Simplex. Lo nico que habra que hacer es multiplicar por "-1" las restricciones donde los trminos independientes sean menores que 0. Ventaja: Con sta simple modificacin de los signos en la restriccin podemos aplicar el mtodo Simplex a nuestro modelo. Inconvenientes: Puede resultar que en las restricciones donde tengamos que modificar los signos de las constantes, los signos de las desigualdades fueran ("=", ""), quedando ("=","") por lo que en cualquier caso deberemos desarrollar el mtodo de las Dos Fases. Este inconveniente no es controlable, aunque nos podra beneficiar si slo existen trminos de desigualdad ("",""), y los "" coincidieran con restricciones donde el trmino independiente es negativo. Si en nuestro modelo aparece una inecuacin con una desigualdad del tipo "", deberemos aadir una nueva variable, llamada variable de exceso si, con la restriccin si 0. La nueva variable aparece con coeficiente cero en la funcin objetivo, y restando en las inecuaciones.

Surge ahora un problema, veamos cmo queda una de nuestras inecuaciones que contenga una desigualdad ": a11x1 + a12x2 b1 a11x1 + a12x2 - 1xs = b1

Como todo nuestro modelo, est basado en que todas sus variables sean mayores o iguales que cero, cuando hagamos la primera iteracin con el mtodo Simplex, las variables bsicas no estarn en la base y tomarn valor cero, y el resto el valor que tengan. En este caso nuestra variable xs, tras hacer cero a x1 y x2, tomar el valor b1. No cumplira la condicin de no negatividad, por lo que habr que aadir una nueva variable, xr, que aparecer con coeficiente cero en la funcin objetivo, y sumando en la inecuacin de la restriccin correspondiente. Quedara entonces de la siguiente manera: a11x1 + a12x2 b1 a11x1 + a12x2 - 1xs + 1 xr = b1 Este tipo de variables se les llama variables artificiales, y aparecern cuando haya inecuaciones con desigualdad ("=",""). Esto nos llevar obligadamente a realizar el mtodo de las Dos Fases. Del mismo modo, si la inecuacin tiene una desigualdad del tipo "", deberemos aadir una nueva variable, llamada variable de holgura si, con la restriccin si "" 0 . La nueva variable aparece con coeficiente cero en la funcin objetivo, y sumando en las inecuaciones.

Desarrollando el mtodo simplex


Una vez que hemos estandarizado nuestro modelo, puede ocurrir que necesitemos aplicar el mtodo Simplex

Mtodo Simplex
Construccin de la primera tabla: En la primera columna de la tabla aparecer lo que llamaremos base, en la segunda el coeficiente que tiene en la funcin objetivo cada variable que aparece en la base (llamaremos a esta columna Cb), en la tercera el trmino independiente de cada restriccin (P0), y a partir de sta columna aparecern cada una de las variables de la funcin objetivo (Pi). Para tener una visin ms clara de la tabla, incluiremos una fila en la que pondremos cada uno de los nombres de las columnas. Sobre sta tabla que tenemos incluiremos dos nuevas filas: una que ser la que liderar la tabla donde aparecern las constantes de los coeficientes de la funcin objetivo, y otra que ser la ltima fila, donde tomar valor la funcin objetivo. Nuestra tabla final tendr tantas filas como restricciones.

Los valores de la fila Z se obtienen de la siguiente forma: El valor Z0 ser el de sustituir Cim en la funcin objetivo (y cero si no aparece en la base). El resto de columnas se obtiene restando a este valor el del coeficiente que aparece en la primera fila de la tabla. Se observar al realizar el mtodo Simplex, que en esta primera tabla, en la base estarn las variables de holgura. Condicin de parada: Comprobaremos si debemos de dar una nueva iteracin o no, que lo sabremos si en la fila Z aparece algn valor negativo. Si no aparece ninguno, es que hemos llegado a la solucin ptima del problema. Eleccin de la variable que entra: Si no se ha dado la condicin de parada, debemos seleccionar una variable para que entre en la base en la siguiente tabla. Para ello nos fijamos en los valores estrictamente negativos de la fila Z, y el menor de ellos ser el que nos de la variable entrante. Eleccin de la variable que sale: Una vez obtenida la variable entrante, obtendremos la variable que sale, sin ms que seleccionar aquella fila cuyo cociente P0/Pj sea el menor de los estrictamente positivos (teniendo en cuenta que slo se har cuando Pj sea mayor de 0). La interseccin entre la columna entrante y la fila saliente nos determinar el elemento pivote.

Actualizacin de la tabla: Las filas correspondientes a la funcin objetivo y a los ttulos permanecern inalterados en la nueva tabla. El resto deber calcularse de dos formas diferentes: Si es la fila pivote cada nuevo elemento se calcular: Nuevo Elemento Fila Pivote = Elemento Fila Pivote actual / Pivote. Para el resto de elementos de filas se calcular: Nuevo Elemento Fila = Elemento Fila Pivote actual - (Elemento Columna Pivote en la fila actual * Nuevo Elemento Fila).

Identificando casos anmalos y soluciones


Obtencin de la solucin: Cuando se ha dado la condicin de parada, obtenemos el valor de las variables bsicas que estn en la base y el valor ptimo que toma la funcin que estn en la base mirando la columna P0. En el caso de que estemos minimizando, se multiplicar por "-1" el valor ptimo. Infinitas soluciones: Cumplida la condicin de parada, si se observa que alguna variable que no est en la base, tiene un 0 en la fila Z, quiere decir que existe otra solucin que da el mismo valor ptimo para la funcin objetivo. Si estamos ante este caso, estamos ante un problema que admite infinitas soluciones, todas ellas comprendidas dentro del segmento que define Ax+By=Z0. Si se desea se puede hacer otra iteracin haciendo entrar en la base a la variable que tiene el 0 en la fila Z, y se obtendr otra solucin. Solucin ilimitada: Si al intentar buscar la variable que debe abandonar la base, nos encontramos que toda la columna de la variable entrante tiene todos sus elementos negativos o nulos, estamos ante un problema que tiene solucin ilimitada. No hay valor ptimo concreto, ya que al aumentar el valor de las variables se aumenta el valor de la funcin objetivo, y no viola ninguna restriccin. No existe solucin: En el caso de que no exista solucin, seguro que tendremos que realizar las dos fases, por lo que al trmino de la primera sabremos si estamos en tal situacin. Empate de variable entrante: Se puede optar por cualquiera de ellas, sin que afecte a la solucin final, el inconveniente que presenta es que segn por cual se opte se harn ms o menos iteraciones. Se aconseja que se opte a favor de las variables bsicas, ya que son aquellas las que quedarn en la base cuando se alcance la solucin con estos mtodos. Empate de variable saliente: Se puede nuevamente optar por cualquiera de ellas, aunque se puede dar el caso degenerado y entrar en ciclos perpetuos. Para evitarlos en la medida de lo posible, discriminaremos a favor de las variables bsicas haciendo que se queden en la base. Curiosidad: Pivote puede ser 0?: No, ya que siempre se realizan los cocientes entre valores no negativos y mayores que cero.

Ejemplo 1: Maximizar sujeto a: Z= f(x,y)= 3x + 2y 2x + y 2x + 3y 3x + y X 0, y 18 42 24 0

Se consideran las siguientes fases: 1. Convertir las desigualdades en igualdades Se introduce una variable de holgura por cada una de las restricciones, para convertirlas en igualdades, resultando el sistema de ecuaciones lineales: 2x + y + h = 18 2x + 3y + s = 42 3x +y + d = 24 2. Igualar la funcin objetivo a cero - 3x - 2y + Z = 0 3. Escribir la tabla inicial simplex En las columnas aparecern todas las variables del problema y, en las filas, los coeficientes de las igualdades obtenidas, una fila para cada restriccin y la ltima fila con los coeficientes de la funcin objetivo:

4. Encontrar la variable de decisin que entra en la base y la variable de holgura que sale de la base Para escoger la variable de decisin que entra en la base, nos fijamos en la ltima fila, la de los coeficientes de la funcin objetivo y escogemos la variable con el coeficiente negativo mayor (en valor absoluto). En nuestro caso, la variable x de coeficiente - 3.

La columna de la variable que entra en la base se llama columna pivote. Para encontrar la variable de holgura que tiene que salir de la base, se divide cada trmino de la ltima columna (valores solucin) por el trmino correspondiente de la columna pivote, siempre que estos ltimos sean mayores que cero. En nuestro caso: 18/2 [=9], 42/2 [=21] y 24/3 [=8] El trmino de la columna pivote que en la divisin anterior d lugar al menor cociente positivo, el 3, ya 8 es el menor, indica la fila de la variable de holgura que sale de la base, d. Esta fila se llama fila pivote. En la interseccin de la fila pivote y columna pivote tenemos el elemento pivote operacional, 3. 5. Encontrar los coeficientes de la nueva tabla. Los nuevos coeficientes de x se obtienen dividiendo todos los coeficientes de la fila d por el pivote operacional, 3, que es el que hay que convertir en 1. A continuacin mediante la reduccin gaussiana hacemos ceros los restantes trminos de su columna, con lo que obtenemos los nuevos coeficientes de las otras filas incluyendo los de la funcin objetivo Z. Tambin se puede hacer utilizando el siguiente esquema: Fila del pivote: Nueva fila del pivote= (Vieja fila del pivote) / (Pivote) Resto de las filas: Nueva fila= (Vieja fila) - (Coeficiente de la vieja fila en la columna de la variable entrante) X (Nueva fila del pivote) Es decir:

Como en los elementos de la ltima fila hay uno negativo, -1, significa que no hemos llegado todava a la solucin ptima. Hay que repetir el proceso:

La variable que entra en la base es y, por ser la variable que corresponde al coeficiente -1 Para calcular la variable que sale, dividimos los trminos de la ltima columna entre los trminos correspondientes de la nueva columna pivote: 2:1/3 [=6] , 26:7/3 [=78/7] y 8:1/3 [=8] y como el menor cociente positivo es 6, tenemos que la variable de holgura que sale es h. El elemento pivote, que ahora hay que hacer 1, es 1/3. Operando de forma anloga a la anterior obtenemos la tabla:

Como en los elementos de la ltima fila hay uno negativo, -1, significa que no hemos llegado todava a la solucin ptima. Hay que repetir el proceso: La variable que entra en la base es d, por ser la variable que corresponde al coeficiente -1 Para calcular la variable que sale, dividimos los trminos de la ltima columna entre los trminos correspondientes de la nueva columna pivote: 6/(-2) [=-3] , 12/4 [=3], y 6:1 [=6] y como el menor cociente positivo es 3, tenemos que la variable de holgura que sale es s. El elemento pivote, que ahora hay que hacer 1, es 4. Obteniendo la tabla:

Como todos los coeficientes de la fila de la funcin objetivo son positivos, hemos llegado a la solucin ptima. Los solucin ptima viene dada por el valor de Z en la columna de los valores solucin, en nuestro caso: 33. En la misma columna se puede observar el vrtice donde se alcanza, observando las filas correspondientes a las variables de decisin que han entrado en la base: D(3,12). Ejemplo 2: Resolver el siguiente problema de Programacin Lineal utilizando el Mtodo Simplex: Max 40*X1 + 60*X2 Sujeto a: 2*X1 + 1*X2 <= 70 o 1*X1 + 1*X2 <= 40 o 1*X1 + 3*X2 <= 90 o X1 >= 0 X2 >= 0

Para poder aplicar el Mtodo Simplex, es necesario llevar el modelo a su formato estndar, para lo cual definimos X3, X4, X5 0 como las respectivas variables de holgura para la restriccin 1, 2 y 3. De esta forma queda definida la tabla inicial del mtodo de la siguiente forma:

X1 2 1 1 -40

X2 1 1 3 -60

X3 1 0 0 0

X4 0 1 0 0

X5 0 0 1 0 70 40 90 0

En esta situacin, las variables de holgura definen una solucin bsica factible inicial, condicin necesaria para la aplicacin del mtodo. Luego, se verifican los costos reducidos de las variables no bsicas (X1 y X2 en la tabla inicial) y se escoge como variable que entra a la base aquella con el costo reducido "ms negativo". En este caso, X2. Luego, para escoger que variable bsica deja la base debemos buscar el mnimo cociente entre el lado derecho y los coeficientes asociados a la variable entrante en cada fila. El mnimo se alcanza en Min {70/1, 40/1, 90/3} = 30 asociado a la tercera fila, el cual corresponde a la variable bsica actual X5, en consecuencia, X5 deja la base. En la posicin que se alcanza el mnimo cuociente lo llamaremos "Pivote" (marcado con rojo) el cual nos servir para realizar las respectivas operaciones filas, logrando la siguiente tabla al cabo de una iteracin:

X1 5/3 2/3 1/3 -20

X2 0 0 1 0

X3 1 0 0 0

X4 0 1 0 0

X5 -1/3 -1/3 1/3 20 40 10 30 1800

El valor de la funcin objetivo luego de una iteracin ha pasado de 0 a 1.800. La actual tabla no corresponde a la solucin ptima del problema P) debido a que existe una variable no bsica con costo reducido negativo, por tanto X1 entra a la base. Posteriormente, mediante el criterio del mnimo cociente calculamos la variable que debe dejar la base: Min {40/(5/3), 10/(2/3), 30/(1/3)} = 15, asociado a la fila 2 (variable bsica actual X4), por tanto X4 deja la base. Obtenido lo anterior se aplica una iteracin del mtodo:

X1 0 1 0 0

X2 0 0 1 0

X3 1 0 0 0

X4 -5/2 3/2 -1/2 30

X5 1/2 -1/2 1/2 10 15 15 25 2100

Finalmente se alcanza la solucin ptima del problema (P), y la solucin alcanzada es X1* = 15, X2* = 25 con V(P) = 2.100.

1. Una compaa produce dos dispositivos para lmparas (producto 1 y 2) que requieren partes de meta y componentes elctricos. La administracin desea determinar cuntas unidades de cada producto fabricar para maximizar la ganancia. Por cada unidad del producto 1 se requieren 1 unidad de partes de metal y 2 unidades de componentes elctricos. Por cada unidad del producto 2 se necesitan 3 unidades de partes de metal y 2 unidades de componentes elctricos. La compaa tiene 200 unidades de partes de metal y 300 de componentes elctricos. Cada unidad del producto 1 da una ganancia de $1 y cada unidad del producto 2, hasta 60 unidades, da una ganancia de $2. Cualquier exceso de 60 unidades del producto 2 no genera ganancia, por lo que fabricar ms de esa cantidad.

2. Con el comienzo del curso se va a lanzar unas ofertas de material escolar. Unos almacenes quieren ofrecer 600 cuadernos, 500 carpetas y 400 bolgrafos para la oferta, empaquetndolo de dos formas distintas; en el primer bloque pondr 2 cuadernos, 1 carpeta y 2 bolgrafos; en el segundo, pondrn 3 cuadernos, 1 carpeta y 1 bolgrafo. Los precios de cada paquete sern 6.5 y 7 , respectivamente. Cuntos paquetes le conviene poner de cada tipo para obtener el mximo beneficio?

3. Un constructor va a edificar dos tipos de viviendas A y B. Dispone de 600 millones de pesos y el coste de una casa de tipo A es de 13 millones y 8 millones una de tipo B. El nmero de casas de tipo A ha de ser, al menos, del 40 % del total y el de tipo B, el 20 % por lo menos. Si cada casa de tipo A se vende a 16 millones y cada una de tipo B en 9. Cuntas casas de cada tipo debe construir para obtener el beneficio mximo?

4. Un herrero con 80 kgs. de acero y 120 kgs. de aluminio quiere hacer bicicletas de paseo y de montaa que quiere vender, respectivamente a 20.000 y 15.000 Bolvares cada una para sacar el mximo beneficio. Para la de paseo emplear 1 kg. De acero y 3 kgs de aluminio, y para la de montaa 2 kgs. de ambos metales. Cuntas bicicletas de paseo y de montaa vender?

5. Una compaa de auditores se especializa en preparar liquidaciones y auditorias de empresas pequeas. Tienen inters en saber cuntas auditorias y liquidaciones pueden realizar mensualmente para maximizar sus ingresos. Se dispone de 800 horas de trabajo directo y 320 horas para revisin. Una auditoria en promedio requiere de 40 horas de trabajo directo y 10 horas de revisin, adems aporta un ingreso de 300 dlares. Una liquidacin de impuesto requiere de 8 horas de trabajo directo y de 5 horas de revisin, produce un ingreso de 100 dlares. El mximo de liquidaciones mensuales disponibles es de 60.