Método Simplex

Resumen de la unidad 2
En este documento se describen: el método simplex, el método de las dos fases, el método de las “M” y el método simplex revisado.

Ing. Lorenie Izet Moreno Fuentes
José Leonardo Saucedo García 07380654 21 de mayo de 2010

1

3..INDICE 2 METODO SIMPLEX 2.3 Problemas de programación lineal que requieren la introducción de variables artificiales…………………………………………………………….1 Teoría del Método Simplex………………………………………………… 3 2. 4 2. 15 Bibliografía……………………………………………………………………………… 16 2 ..1 Método de las “M” y método de las dos fases………………….2 Forma Tabular del Método Simplex……………………………………….4 El método simplex revisado………………………………………………. 11 2.. 6 2.. 13 Conclusiones……………………………………………………………………………....

se pasa a partir de él a otro vértice adyacente. la mayor utilidad o el menor costo... + a1n·xn = b1 a21·x1 + a22·x2 + . + amn·xn = bm x1. xn ≥ 0 Para ello se deben cumplir las siguientes condiciones: 1. Todas las variables son no negativas. por un criterio semejante al del gradiente... El método simplex es un conjunto de instrucciones con las cuales se examinan los puntos en las esquinas de una forma metódica hasta conseguir la mejor solución. Partiendo del valor de la función objetivo en un vértice cualquiera. en el que mejore el valor de la función objetivo o función económica.. demasiado grande para una solución gráfica... en cuyo caso ya se ha alcanzado el óptimo. repitiéndose esta operación hasta que no sea posible mejorar la función objetivo. aparezcan restricciones del tipo "≥" o "=" habrá que emplear otros métodos. el método simplex puede ser utilizado para encontrar la solución óptima de los problemas con multivariables. desarrollado por George Dantzig en 1947 La mayoría de los problemas reales de programación lineal tienen más de dos variables. Deberá tenerse en cuenta que este método sólo trabaja para restricciones que tengan un tipo de desigualdad "≤" y coeficientes independientes mayores o iguales a 0.. El objetivo es de la forma de maximización o de minimización. siendo el más común el método de las Dos Fases. En caso de que después de éste proceso... El método Simplex se basa en la siguiente propiedad: si la función objetivo. 2. 4.. el método consiste en buscar sucesivamente otro vértice que mejore al anterior. am1·x1 + am2·x2 + . + a2n·xn = b2 . f. Si no lo es.1 TEORÍA DEL MÉTODO SIMPLEX Es un método genérico de solución de problemas lineales. El método Simplex es un procedimiento iterativo que permite ir mejorando la solución a cada paso. y habrá que estandarizar las mismas para el algoritmo. 3. no toma su valor máximo en el vértice A. + cn·xn Sujeto a: a11·x1 + a12·x2 + .2. Todas las restricciones son de igualdad. Las constantes a la derecha de las restricciones son no negativas.. El proceso concluye cuando no es posible seguir mejorando más dicha solución. a lo largo de la cual f aumenta. entonces hay una arista que parte de A. 2 . por lo tanto... El método consiste en partir de un vértice del conjunto de soluciones o solución inicial y determinar si es óptima. Preparando El Modelo Para Adaptarlo Al Método Simplex Esta es la forma estándar del modelo: Función objetivo: c1·x1 + c2·x2 + .

. que lo sabremos si en la fila Z aparece algún valor negativo. El resto de columnas se obtiene restando a este valor el del coeficiente que aparece en la primera fila de la tabla..... .2.. debemos seleccionar una variable para que entre en la base en la siguiente tabla. Pim Z Cb Ci1 Ci2 .. . Si no aparece ninguno... en la tercera el término independiente de cada restricción (P 0). 2 . am1 Z1-C1 C2 P2 a12 a22 .. obtendremos la variable que sale... Cim P0 bi1 bi2 . en la segunda el coeficiente que tiene en la función objetivo cada variable que aparece en la base (Cb). y a partir de ésta columna aparecerán cada una de las variables de la función objetivo (Pi). Las constantes del lado derecho de las ecuaciones. Los coeficientes de las variables. es que hemos llegado a la solución óptima del problema. Para ello nos fijamos en los valores estrictamente negativos de la fila Z. .. y otra que será la última fila. que en esta primera tabla.Construcción de la primera tabla: En la primera columna de la tabla aparecerá lo que llamaremos base.. La variable básica que aparece en cada ecuación . amn Zn-Cn Los valores de la fila Z se obtienen de la siguiente forma: El valor Z0 será el de sustituir Cim en la función objetivo (y cero si no aparece en la base). Tabla C1 Base Pi1 Pi2 . bim Z0 P1 a11 a21 .. . donde tomará valor la función objetivo. am2 Z2-C2 .. 2..Condición de parada: Comprobaremos si debemos de dar una nueva iteración o no. . 3..Elección de la variable que sale: Una vez obtenida la variable entrante. . . en la base estarán las variables de holgura.Elección de la variable que entra: Si no se ha dado la condición de parada.. Cn Pn a1n a2n ...2 FORMA TABULAR DEL MÉTODO SIMPLEX La forma tabular del método simplex registra: 1.. incluiremos una fila en la que pondremos cada uno de los nombres de las columnas.. Para tener una visión más clara de la tabla.. Nuestra tabla final tendrá tantas filas como restricciones. Se observará al realizar el método Simplex. sin más que seleccionar aquella fila cuyo cociente P 0/Pj sea el menor de los estrictamente positivos (teniendo en cuenta que sólo se hará cuando Pj sea mayor de 0).... y el menor de ellos será el que nos de la variable entrante. Sobre ésta tabla que tenemos incluiremos dos nuevas filas: una que será la que liderará la tabla donde aparecerán las constantes de los coeficientes de la función objetivo. .

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. .(Elemento Columna Pivote en la fila actual * Nuevo Elemento Fila).Actualización de la tabla: Las filas correspondientes a la función objetivo y a los títulos permanecerán inalterados en la nueva tabla.La intersección entre la columna entrante y la fila saliente nos determinará el elemento pivote. 2 . Para el resto de elementos de filas se calculará: Nuevo Elemento Fila = Elemento Fila Pivote actual .

para cada restricción las variables de holgura con sus coeficientes de las igualdades obtenidas. Convertir las desigualdades en igualdades Se introduce una variable de holgura por cada una de las restricciones del tipo ≤.3 PROBLEMAS DE PROGRAMACIÓN LINEAL QUE REQUIEREN LA INTRODUCCIÓN DE VARIABLES ARTIFICIALES Resolver mediante el método simplex el siguiente problema: Maximizar sujeto a: Z = f(x. y la última fila con los valores resultantes de sustituir el valor de cada variable en la función objetivo.2.3x . En las filas se observan. Igualar la función objetivo a cero .y≥0 Se consideran las siguientes fases: 1.2y + Z = 0 3. y de operar tal como se explicó en la teoría para obtener el resto de valores de la fila: Tabla I. resultando el sistema de ecuaciones lineales: 2x + y + r = 18 2x + 3y + s = 42 3x +y + t = 24 2. para convertirlas en igualdades. Iteración nº 1 3 Base P3 Cb 0 P0 18 P1 2 2 P2 1 0 P3 1 0 P4 0 0 P5 0 2 . Escribir la tabla inicial simplex En las columnas aparecerán todas las variables básicas del problema y las variables de holgura/exceso.y) = 3x + 2y 2x + y ≤ 18 2x + 3y ≤ 42 3x + y ≤ 24 x≥0.

Esta fila se llama fila pivote (En color verde). se ha alcanzado la solución óptima del problema. 6. Una vez obtenida la variable que entra en la base. se ha llegado al final del algoritmo. el 3. y se escoge el mínimo de ellos. indica la fila de la variable de holgura que sale de la base. 2 . t (P5). Condición de parada Cuando en la fila Z no existe ningún valor negativo. dos o más son iguales (caso de empate). En nuestro caso: 18/2 [=9]. 5. En la intersección de la fila pivote y columna pivote tenemos el elemento pivote. De no ser así. estamos en condiciones de deducir cual será la variable que sale. siempre que el resultado sea mayor que cero. Para ello se divide cada término independiente (P0) entre el elemento correspondiente de la columna pivote. Para ello escogemos la columna de aquel valor que en la fila Z sea el menor de los negativos. C. Primero debemos saber la variable que entra en la base. El término de la columna pivote que en la división anterior dé lugar al menor cociente positivo. En tal caso. se escoge aquella que no sea variable básica (si es posible).P4 P5 Z 0 0 42 24 0 2 3 -3 3 1 -2 0 0 0 1 0 0 0 1 0 4. 42/2 [=21] y 24/3 [=8] Si hubiera algún elemento menor o igual a cero no se realiza dicho cociente. se ejecutan los siguientes pasos. Condición de entrada y salida de la base A. Si al calcular los cocientes. ya que 8 es el menor cociente. Encontrar los coeficientes de la nueva tabla. La columna de la variable que entra en la base se llama columna pivote (En color verde). y caso de que todos los elementos de la columna pivote fueran de ésta condición tendríamos una solución no acotada y terminaríamos el problema. B. En este caso sería la variable x (P1) de coeficiente 3. entonces se optará por aquella variable que sea básica. 3. Si existiesen dos o más coeficientes iguales que cumplan la condición anterior (caso de empate).

que es el que hay que convertir en 1. Z. -1.Los nuevos coeficientes de la fila pivote. con lo que obtenemos los nuevos coeficientes de las otras filas incluyendo los de la función objetivo Z. t (P5). se obtienen dividiendo todos los coeficientes de dicha fila entre el elemento pivote. A continuación mediante la reducción gaussiana hacemos ceros los restantes términos de su columna. Iteración nº 2 3 Base P3 P4 P1 Z Cb 0 0 3 P0 2 26 8 24 P1 0 0 1 0 2 P2 1/3 7/3 1/3 -1 0 P3 1 0 0 0 0 P4 0 1 0 0 0 P5 -2/3 -2/3 1/3 1 Se puede observar que no hemos alcanzado la condición de parada ya que en los elementos de la última fila. 3. hay uno negativo. Hay que repetir el proceso: 2 . También se puede hacer de la siguiente manera: 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) Veámoslo con un ejemplo una vez calculada la fila del pivote (fila de x (P1) en la Tabla II): Vieja fila de P4 Menos Coeficiente Por Nueva fila pivote Nueva fila de P4 42 2 x 8 = 26 2 2 x 1 = 0 3 2 x 1/3 = 7/3 0 2 x 0 = 0 1 2 x 0 = 1 0 2 x 1/3 = -2/3 Tabla II.

El elemento pivote. Iteración nº 4 3 Base P2 P5 P1 Cb 2 0 3 P0 12 3 3 P1 0 0 1 2 P2 1 0 0 0 P3 -1/2 -7/4 -3/4 0 P4 0 0 0 0 P5 0 1 0 2 . Iteración nº 3 3 Base P2 P4 P1 Z Cb 2 0 3 P0 6 12 6 30 P1 0 0 1 0 2 P2 1 0 0 0 0 P3 3 -7 -1 3 0 P4 0 1 0 0 0 P5 -2 4 1 -1 Como en los elementos de la fila Z hay uno negativo. significa que no hemos llegado todavía a la solución óptima. Operando de forma análoga a la anterior obtenemos la tabla: Tabla III. El elemento pivote. Para calcular la variable que sale. y 6/1 [=6] y como el menor cociente positivo es 3. Obtenemos la tabla: Tabla IV. C. Para calcular la variable que sale. por ser la variable que corresponde a la columna donde se encuentra el coeficiente -1. La variable que entra en la base es y (P2). 12/4 [=3]. B. que ahora hay que hacer 1. Hay que repetir el proceso: A. es 4. La variable que entra en la base es t (P5). que ahora hay que hacer 1. 26 / 7/3 [=78/7] y 8 / 1/3 [=8] y como el menor cociente positivo es 6. tenemos que la variable que sale es r (P3). es 1/3. B.A. C. por ser la variable que corresponde al coeficiente -1. dividimos los términos de la última columna entre los términos correspondientes de la nueva columna pivote: 2 / 1/3 [=6]. -1. tenemos que la variable que sale es s (P4). dividimos los términos de la última columna entre los términos correspondientes de la nueva columna pivote: 6/(-2) [=-3].

Z 33 0 0 5/4 0 0 Se observa que en la última fila todos los coeficientes son positivos. En la misma columna se puede observar el punto donde se alcanza.12) 2 . en nuestro caso: 33. La solución óptima viene dada por el valor de Z en la columna de los valores solución. y) = (3. observando las filas correspondientes a las variables de decisión que han entrado en la base: (x. por lo tanto se cumple la condición de parada. obteniendo la solución óptima.

consiste en penalizar la inclusión de las variables artificiales en la función objetivo con un coeficiente ‘M’ muy grande que para el caso de maximizar es ‘M’ y para el caso de minimizar es ‘+ M’. en consecuencia del coeficiente ‘M’ muy grande. Si se presenta el caso de que las variables artificiales no se logren sacar de la base y por lo tanto se anulen. A medida que se cumplen las etapas de cálculo en el simplex.1 Método de las “M” y método de las dos fases MÉTODO SIMPLEX PENAL O DE LA ‘M’ GRANDE Como su nombre lo indica. las variables artificiales deberán de ir saliendo de la misma.2.  Esto da lugar a problemas numéricos que conducen a soluciones erróneas.3. La primera solución básica del simplex en tal caso. Una vez resuelto este primer problema y reorganizar la tabla final.  El término independiente (RHS) debe ser ³0. se añade una variable de holgura con coeficiente −1 y una variable artificial con coeficiente +1  A las restricciones del tipo = se añade una variable artificial con coeficiente +1  La contribución de las variables de holgura a la función objetivo es 0  La contribución de las variables artificiales a la función objetivo se fijan: o Min: + M o Max: .  El método de la M Grande incluye variables de apoyo con un coeficiente muy grande (M) o muy pequeño (-M) en la función objetivo. Esto es especialmente grave en problemas de cierto tamaño.M  Siendo M un número suficientemente grande. debe de incluir a todas las variables artificiales que fueron necesarias en el arreglo del modelo de programación lineal por resolver esto último porque las variables artificiales se utilizan precisamente para tomar la primera solución básica. pasamos a la segunda fase. MÉTODO DE LAS DOS FASES Éste método difiere del Simplex en que primero hay que resolver un problema auxiliar que trata de minimizar la suma de las variables artificiales.  A las restricciones del tipo £ se añade una variable de holgura con coeficiente +1  A las restricciones del tipo ³. Fase 1 2 . ello significará que tal problema no tiene solución factible. que consiste en realizar el método Simplex normal.

.. Zn Siendo Zj = Σ(Cb·Pj) . holgura y exceso). la condición de parada y la preparación de la tabla que pasará a la fase 2. am1 C2 P2 a12 a22 . y Cj = -1 para todo j comprendido entre n-k y n (variables artificiales).Eliminar Columna de variables artificiales: Si hemos llegado a la conclusión de que el problema original tiene solución.Construcción de la primera tabla: Se hace de la misma forma que la tabla inicial del método Simplex. y calcular la fila Z de la misma forma que en la primera tabla de la fase 1.. Cn Pn a1n a2n . o que tome un valor distinto. Deberemos eliminar las columnas de las variables artificiales. indicando que nuestro modelo no tiene solución. .. por lo tanto aparecerán todos los términos a cero excepto aquellos que sean variables artificiales.. La otra diferencia para la primera tabla radica en la forma de calcular la fila Z. . 2 .. . Zn-k ... bim C1 P1 a11 a21 .... Ahora tendremos que hacer el cálculo de la siguiente forma: Se sumarán los productos Cb·Pj para todas las filas y al resultado se le restará el valor que aparezca en la fila de la función objetivo. modificar la fila de la función objetivo por la original. ..Cj y los Cj = 0 para todo j comprendido entre 0 y n-k (variables de decisión. amn-k Z Z0 Z1 Z2 . ... pero con algunas diferencias.Condición de parada: La condición de parada es la misma que en el método Simplex normal. Tabla C0 Base Pi1 Pi2 .... amn ... La diferencia estriba en que pueden ocurrir dos casos cuando se produce la parada: la función toma un valor 0.. que significa que el problema original tiene solución.. . ya que cambia la función objetivo...En esta primera fase. .. La fila de la función objetivo cambia para la primera fase.. se realiza todo de igual manera que en el método Simplex normal. . . Pim Cb Ci1 Ci2 .. .. debemos preparar nuestra tabla para la segunda fase.... . . excepto la construcción de la primera tabla...... Cim P0 bi1 bi2 . .. que tendrán valor "-1" debido a que se está minimizando la suma de dichas variables. Cn-k Pn-k a1n-k a2n-k ...... am2 ..

.C2.c2. b y 0 son vectores columna tales que X= X1 X2  Xn b1 0 b= b2  bm 0= 0  0 y A es la Matriz A= a11 a21  am 1 a12 a22  am 2    a1 n a2 n amn Para obtener la forma de igualdades del problema se introduce al vector columna de las variables de holgura XS = Xn + 1 Xn + 2  Xn + m De manera que las restricciones se convierten en 2 .... nuestra forma estándar del modelo general de programación lineal establecido anteriormente se convierte en: Maximizar Z =cx sujeta a Ax ≤ b y x ≥ 0.. mientras que el cero normal (0) seguirá representando el número cero..Cn] X. vectores y escalares. También se usará el cero en negritas (0) para denotar el vector nulo (un vector cuyos elementos son todos cero) ya sea en forma de columna o de renglón (lo que debe ser claro por la forma del problema). en donde c es un vector renglón c = [c1.4 El método simplex revisado El método simplex revisado usa explícitamente operaciones con matrices. por lo que se vuelve importante describir el problema en notación matricial.. Si se emplean matrices. letras minúsculas en negritas para representar vectores y letras cursivas normales en el caso de los escalares.cn].2.….. En donde C es un vector renglón C = [C1. Para ayudar al lector a distinguir entre matrices. se usarán siempre letras MAYUSCULAS en negritas para representar matrices.

I] X XS =b y X XS ≥0 en donde I es la matriz idéntica m x n y b el vector 0 ahora tiene (n + m) elementos. Paso iterativo: Parte 1 Determinar la variable básica entrante Parte 2 Determinar la variable básica que sale igual que para el método simplex original. Pasos del método de simplex revisado 1. y después. excepto que se calculan sólo los números necesarios para realizar esta prueba.[A . se calcula el lado derecho.) Parte 3 Determinar la nueva solución básica factible: obtener B-1 y el conjunto XB = B-1b. 2 . los coeficientes de las variables no básicas en la ecuación (0). (El cálculo de XB es opcional. a menos que la prueba de optimalidad encuentre que es óptima. pero se calcula sólo los números que se necesitan para hacerlo (los coeficientes de la variable básica entrante en todas las ecuaciones menos la ecuación (0). Paso Inicial: El mismo que para el método simplex original 2. Prueba de optimalidad : igual que para el método simplex original.) 3. para cada coeficiente estrictamente positivo. a saber.

CONCLUSIONES El método simplex es muy utilizado principalmente en la computación. ya que facilita la forma de encontrar soluciones a problemas con restricciones para llegar a la solución óptima. 2 .

htm www.doc 2 .cl/public/MetodoSimplexRevisado.htm http://www.phpsimplex.com/SIMPLEX_analitico.unap.BIBLIOGRAFIA http://www.com/teoria_metodo_simplex.investigacion-operaciones.

Sign up to vote on this title
UsefulNot useful