Método Simplex
Método Simplex
Método Simplex
Resumen de la unidad 2
1
INDICE
2 METODO SIMPLEX
2.1 Teoría del Método Simplex………………………………………………… 3
2.2 Forma Tabular del Método Simplex………………………………………. 4
2.3 Problemas de programación lineal que requieren la introducción de
variables artificiales……………………………………………………………... 6
2.3.1 Método de las “M” y método de las dos fases…………………... 11
2.4 El método simplex revisado………………………………………………... 13
Conclusiones…………………………………………………………………………….. 15
Bibliografía……………………………………………………………………………… 16
2
2.1 TEORÍA DEL MÉTODO SIMPLEX
La mayoría de los problemas reales de programación lineal tienen más de dos variables, por
lo tanto, demasiado grande para una solución gráfica, el método simplex puede ser utilizado
para encontrar la solución óptima de los problemas con multivariables. 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; la mayor utilidad o el menor costo.
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, y habrá que
estandarizar las mismas para el algoritmo. En caso de que después de éste proceso,
aparezcan restricciones del tipo "≥" o "=" habrá que emplear otros métodos, siendo el más
común el método de las Dos Fases.
2
2.2 FORMA TABULAR DEL MÉTODO SIMPLEX
La forma tabular del método simplex registra:
1. Los coeficientes de las variables.
2. Las constantes del lado derecho de las ecuaciones.
3. La variable básica que aparece en cada ecuación
Tabla
C1 C2 ... Cn
Base Cb P0 P1 P2 ... Pn
Pi1 Ci1 bi1 a11 a12 ... a1n
Pi2 Ci2 bi2 a21 a22 ... a2n
... ... ... ... ... ... ...
Pim Cim bim am1 am2 ... amn
Z Z0 Z1-C1 Z2-C2 ... 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). 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 método Simplex, que en esta primera tabla, en la base estarán las
variables de holgura.
- Condición de parada: Comprobaremos si debemos de dar una nueva iteración o no, que lo
sabremos si en la fila Z aparece algún valor negativo. Si no aparece ninguno, es que hemos
llegado a la solución óptima del problema.
- Elección de la variable que entra: Si no se ha dado la condición 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.
- Elección de la variable que sale: Una vez obtenida la variable entrante, obtendremos la
variable que sale, 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).
2
La intersección entre la columna entrante y la fila saliente nos determinará el elemento
pivote.
- 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. El resto deberá calcularse de dos formas
diferentes:
• Si es la fila pivote cada nuevo elemento se calculará:
Nuevo Elemento Fila = Elemento Fila Pivote actual - (Elemento Columna Pivote
en la fila actual * Nuevo Elemento Fila).
2
2.3 PROBLEMAS DE PROGRAMACIÓN LINEAL QUE
REQUIEREN LA INTRODUCCIÓN DE VARIABLES
ARTIFICIALES
Z = f(x,y) = 3x +
Maximizar
2y
sujeto a: 2x + y ≤ 18
2x + 3y ≤ 42
3x + y ≤ 24
x≥0,y≥0
Se introduce una variable de holgura por cada una de las restricciones del tipo ≤, para
convertirlas en igualdades, resultando el sistema de ecuaciones lineales:
2x + y + r = 18
2x + 3y + s =
42
3x +y + t = 24
- 3x - 2y + Z = 0
En las columnas aparecerán todas las variables básicas del problema y las variables de
holgura/exceso. En las filas se observan, para cada restricción las variables de holgura con
sus coeficientes de las igualdades obtenidas, y la última fila con los valores resultantes de
sustituir el valor de cada variable en la función objetivo, y de operar tal como se explicó en
la teoría para obtener el resto de valores de la fila:
Tabla I. Iteración nº 1
3 2 0 0 0
Base Cb P0 P1 P2 P3 P4 P5
P3 0 18 2 1 1 0 0
2
P4 0 42 2 3 0 1 0
P5 0 24 3 1 0 0 1
Z 0 -3 -2 0 0 0
4. Condición de parada
Cuando en la fila Z no existe ningún valor negativo, se ha alcanzado la solución óptima del
problema. En tal caso, se ha llegado al final del algoritmo. De no ser así, se ejecutan los
siguientes pasos.
A. Primero debemos saber la variable que entra en la base. Para ello escogemos la
columna de aquel valor que en la fila Z sea el menor de los negativos. En este caso
sería la variable x (P1) de coeficiente - 3.
La columna de la variable que entra en la base se llama columna pivote (En color
verde).
Si hubiera algún elemento menor o igual a cero no se realiza dicho cociente, 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.
Si al calcular los cocientes, dos o más son iguales (caso de empate), se escoge
aquella que no sea variable básica (si es posible).
2
Los nuevos coeficientes de la fila pivote, t (P5), se obtienen dividiendo todos los
coeficientes de dicha fila entre el elemento pivote, 3, que es el que hay que convertir en 1.
Veámoslo con un ejemplo una vez calculada la fila del pivote (fila de x (P1) en la Tabla II):
Vieja fila de P4 42 2 3 0 1 0
Menos - - - - - -
Coeficiente 2 2 2 2 2 2
Por x x x x x x
Nueva fila pivote 8 1 1/3 0 0 1/3
= = = = = =
Nueva fila de P4 26 0 7/3 0 1 -2/3
Se puede observar que no hemos alcanzado la condición de parada ya que en los elementos
de la última fila, Z, hay uno negativo, -1. Hay que repetir el proceso:
2
A. La variable que entra en la base es y (P2), por ser la variable que corresponde a la
columna donde se encuentra el coeficiente -1.
B. Para calcular la variable que sale, dividimos los términos de la última columna entre
los términos 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 que sale es r (P3).
Como en los elementos de la fila Z hay uno negativo, -1, significa que no hemos llegado
todavía a la solución óptima. Hay que repetir el proceso:
A. La variable que entra en la base es t (P5), por ser la variable que corresponde al
coeficiente -1.
B. Para calcular la variable que sale, dividimos los términos de la última columna entre
los términos 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 que sale es s (P4).
Obtenemos la tabla:
2
Z 33 0 0 5/4 0 0
Se observa que en la última fila todos los coeficientes son positivos, por lo tanto se cumple
la condición de parada, obteniendo la solución óptima.
La solución óptima viene dada por el valor de Z en la columna de los valores solución, en
nuestro caso: 33. En la misma columna se puede observar el punto donde se alcanza,
observando las filas correspondientes a las variables de decisión que han entrado en la base:
(x, y) = (3,12)
2
2.3.1 Método de las “M” y método de las dos fases
Fase 1
2
En esta primera fase, se realiza todo de igual manera que en el método Simplex normal,
excepto la construcción de la primera tabla, la condición de parada y la preparación de la
tabla que pasará a la fase 2.
- Construcción de la primera tabla: Se hace de la misma forma que la tabla inicial del
método Simplex, pero con algunas diferencias. La fila de la función objetivo cambia para la
primera fase, ya que cambia la función objetivo, por lo tanto aparecerán todos los términos
a cero excepto aquellos que sean variables artificiales, que tendrán valor "-1" debido a que
se está minimizando la suma de dichas variables.
La otra diferencia para la primera tabla radica en la forma de calcular la fila Z. 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.
Tabla
C0 C1 C2 ... Cn-k ... Cn
Base Cb P0 P1 P2 ... Pn-k ... Pn
Pi1 Ci1 bi1 a11 a12 ... a1n-k ... a1n
Pi2 Ci2 bi2 a21 a22 ... a2n-k ... a2n
... ... ... ... ... ... ... ... ...
Pim Cim bim am1 am2 ... amn-k ... amn
Z Z0 Z1 Z2 ... Zn-k ... Zn
Siendo Zj = Σ(Cb·Pj) - Cj y los Cj = 0 para todo j comprendido entre 0 y n-k (variables de
decisión, holgura y exceso), y Cj = -1 para todo j comprendido entre n-k y n (variables
artificiales).
2
2.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. Para ayudar al lector a
distinguir entre matrices, vectores y escalares, se usarán siempre letras MAYUSCULAS en
negritas para representar matrices, letras minúsculas en negritas para representar vectores y
letras cursivas normales en el caso de los 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), mientras que el
cero normal (0) seguirá representando el número cero.
Si se emplean matrices, 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,
en donde c es un vector renglón
c = [c1,c2,…,cn],
y A es la Matriz
a11 a12 a1 n
a21 a22 a2 n
A=
am 1 am 2 amn
Para obtener la forma de igualdades del problema se introduce al vector columna de las
variables de holgura
Xn + 1
Xn + 2
XS =
Xn + m
De manera que las restricciones se convierten en
2
X X
[A , I]
XS
=b y
XS
≥0
en donde I es la matriz idéntica m x n y b el vector 0 ahora tiene (n + m) elementos.
2
CONCLUSIONES
2
BIBLIOGRAFIA
http://www.investigacion-operaciones.com/SIMPLEX_analitico.htm
http://www.phpsimplex.com/teoria_metodo_simplex.htm
www.unap.cl/public/MetodoSimplexRevisado.doc