Escolar Documentos
Profissional Documentos
Cultura Documentos
INVESTIGACIN DE OPERACIONES
Ing. Csar Canelo Sotelo
EL MTODO SIMPLEX
El algoritmo del simplex provee una metodologa rpida y efectiva para resolver problemas de programacin lineal. El mtodo simplex es un mtodo que llega a la solucin ptima a travs de iteraciones sucesivas. Comienza una solucin bsica factible inicial y sucesivamente obtiene soluciones que ofrecen mejores valores para la funcin objetivo. En cada iteracin el mtodo proporciona un indicador que evala la optimalidad de la solucin encontrada, este indicador es el que nos permite identificar la solucin ptima.
Por ejemplo, se tiene el siguiente PL: Max Z = 4x1 + 3x2 s. a. : x1 + x2 <= 40 2x1 + x2 <= 60 x1, x2 >= 0 Para convertir en restricciones de igualdad, se define para cada restriccin <= una variable de holgura si (variable de holgura para la i-sima restriccin), que es la cantidad de recursos sin usar en la i-sima restriccin).
As se convierte en el siguiente PL: Max Z = 4x1 + 3x2 s. a. : x1 + x2 + s1 = 40 2x1 + x2 + s2 = 60 x1, x2, s1, s2 >= 0 Obsrvese que el PL est en la forma estndar.
En resumen, si la i-sima restriccin de un PL es una restriccin <=, entonces se convierte en una restriccin de igualdad al sumar una variable de holgura si a la i-sima restriccin y aadir la restriccin de signo si >= 0.
Para convertir la i-sima restriccin >= en una restriccin de igualdad, se define una variable de exceso o excedente ei. Se define ei como la cantidad con la cual la i-sima restriccin se satisface en exceso.
En resumen, si la i-sima restriccin de un PL es una restriccin >=, entonces se puede convertir en una restriccin de igualdad al restar una variable de exceso ei en la i-sima restriccin y aadir la restriccin de signo ei >= 0.
Con el objeto de hallar una solucin bsica para AX=b, primero se escoge un conjunto de n-m variables (las variables no bsicas, VNB) y se iguala cada una de las variables a cero. Luego se encuentran los valores de las n-(n-m)=m variables restantes (las variables bsicas, VB) que satisfacen a AX=b. Es evidente que las elecciones distintas de variables no bsicas dan como resultado diferentes soluciones bsicas.
SOLUCIONES FACTIBLES
DEFINICIN Cualquier solucin bsica de un PL en la cual todas las variables son no negativas es una solucin bsica factible (SBF). Por tanto, para el PL del ejemplo, las soluciones bsicas: x1=2, x2=1, x3 =0 y x1=0, x2=3 y x3 =2 son soluciones bsicas factibles. Pero la solucin bsica: x1 = 3, x2 = 0, x3 = -1 no es una solucin bsica factible (porque x3 < 0).
SOLUCIONES FACTIBLES
TEOREMA Un punto en la regin factible de un PL es un punto extremo si y slo si es una solucin bsica factible para un PL. Sea S la regin factible de un PL en la forma estndar. Un punto P es un punto extremo de S si para todos los segmentos de recta que contienen a P y estn contenidos por completo en S, P es un punto terminal. Esto da como resultado que los puntos extremos de la regin factible de un PL y las soluciones bsicas factibles de un PL sean en realidad lo mismo.
SOLUCIONES FACTIBLES
Ejemplo para ilustrar la correspondencia entre puntos extremos y soluciones bsicas factibles sealadas en el Teorema 1. Max z = 4x1 + 3x2 s. a. : x1 + x2 <= 40 2x1 + x2 <= 60 x1, x2 >= 0 Luego de agregar las variables de holgura s1 y s2, se obtiene el modelo de PL en forma estndar: Max z = 4x1 + 3x2 s. a. : x1 + x2 + s1 = 40 2x1 + x2 + s2 = 60 x1, x2, s1, s2 >= 0
SOLUCIONES FACTIBLES
X2 D B E Regin factible A F C X1
Puntos extremos de la regin factible: B = (0, 40), C = (30, 0), E = (20, 20) y F = (0,0)
SOLUCIONES FACTIBLES
Correspondencia entre soluciones factibles y vrtices (puntos extremos). Variables bsicas x1, x2 x1, s1 x1, s2 Variables no bsicas s1, s2 x2, s2 x2, s1 Soluciones factibles bsicas s1=s2=0, x1=x2=20 x2=s2=0, x1=30, s1=10 x2=s1=0, x1=40, s2=-20 Correspondencia a vrtice (punto extremo) E C No es SBF porque s2 < 0 A
x2, s1
x2, s2 s1, s2
x1, s2
x1, s1 x1, x2
SOLUCIONES FACTIBLES
X2 (0,60) D B E Regin factible F (0,0) C (30,0) A (40,0) X1
(0,40)
(20,20)
1) Se encuentra una SBF para el PL, a esta SBF se le llama SBF inicial. En general, la SBF ms reciente se denomina SBF actual, por lo que al principio del problema la SBF inicial es la SBF actual. 2) Se determina si la SBF actual es una solucin ptima para el PL. Si no es as, entonces se determina una SBF adyacente que tenga un mejor valor para la funcin objetivo. 3) Se retorna al paso 2, y se usa la SBF nueva como SBF actual.
s. a. : a11X1 + a12X2 + . . . + a1nXn + Xn+1 = b1 a21X1 + a22X2 + . . . + a2nXn + Xn+2 = b2 ... ... ... ... ... am1X1 + am2X2 + . . . + amnXn + Xn+m = bm Xj >= 0 ,
j = 1, 2, , n, n+1, , n+m
Este modelo PL en forma estndar (modelo aumentado) es el que se lleva al tablero simplex.
EL TABLERO SIMPLEX
Cj Ck Cn+1 Cn+2 ... ... ... Cn+m Xk Xn+1 Xn+2 ... ... ... Xn+m b b1 b2 ... ... ... bm C1 X1 a12 a21 ... ... ... am1 C2 X2 a12 a22 ... ... ... am2 ... ... ... ... ... ... ... ... Cn Xn a1n a2n ... ... ... amn Cn+1 Xn+1 1 0 ... ... ... 0 ... ... ... ... ... ... ... 0 Cn+m Xn+m 0 0 ... ... ... 1
Zj Cj - Zj
Z1 C1-Z1
Z2 C2-Z2
... ...
Zn Cn-Zn
... ...
DEFINICIONES
Todo modelo de programacin lineal, luego de habrsele agregado las variables de holgura y/o exceso, se convierte en un sistema de ecuaciones con n variables y m ecuaciones, siendo n>m , en donde las m restricciones del modelo dan origen a las m ecuaciones del sistema. Una solucin de tal sistema es un vector n-dimensional que satisface la relacin Ax= b.
DEFINICIONES
Solucin bsica.- Es aquella solucin en la que (nm) variables se han igualado a cero y los valores de las m variables restantes se han determinado resolviendo las m ecuaciones con m variables. Una solucin de este tipo puede tener como mximo m componentes no nulos. Solucin bsica no degenerada.- Es una solucin bsica que tiene exactamente m componentes no nulos. Solucin bsica degenerada.- Es una solucin bsica que tiene menos de m componentes distintos de cero.
y de tal manera que las variables Xj estn sujetas a las condiciones: xj >= 0 ; j= 1, 2, ..., n (3)
EL MTODO SIMPLEX
En las ecuaciones (1), se supone que: Algunas de las restricciones pueden haber sido desigualdades antes de que les fueran sumadas o restadas nuevas variables para convertirlas en ecuaciones. Todas las bi >= 0, lo cual puede requerir que algunas de las ecuaciones deba multiplicarse por 1. n > m, y A es de orden mxn. La funcin (2) es la funcin objetivo, se observar que se ha definido el problema general de programacin lineal como un problema de maximizacin, que es el problema que se presenta ms frecuentemente en la prctica.
EL MTODO SIMPLEX
TEOREMA 1 Dado un problema de programacin lineal, en el cual no puedan existir soluciones bsicas factibles degeneradas y en el que se ha formado una solucin bsica factible en funcin de las m primeras variables, puede formarse una nueva solucin bsica factible introduciendo la variable xk, tal que k > m, si al menos un elemento de la k-sima columna de la matriz reducida es positivo.
EL TABLERO SIMPLEX
Cj
Ck Cn+1 Cn+2 ... ... ... Cn+m Xk Xn+1 Xn+2 ... ... ... Xn+m Zj Cj - Zj
C1
X1 a12 a21 ... ... ... am1 Z1 C1-Z1
C2
X2 a12 a22 ... ... ... am2 Z2 C2-Z2
...
... ... ... ... ... ... ... ... ...
Cn
Xn a1n a2n ... ... ... amn Zn Cn-Zn
Cn+1
Xn+1 1 0 ... ... ... 0 Zn+1 Cn+1 Zn+1
...
... ... ... ... ... ... 0 ... ...
Cn+m
Xn+m 0 0 ... ... ... 1 Zn+m Cn+m Zn+m
LA SOLUCIN PTIMA
Cada solucin tiene un valor y la funcin objetivo controla cul de las muchas soluciones es la ptima. Si aplicamos el teorema 1 podemos, efectivamente, encontrar dicha solucin ptima. TEOREMA 2 Dado un problema de programacin lineal en el cual son imposibles las soluciones bsicas factibles degeneradas, en el que la solucin ptima es nica y donde pueden formarse soluciones bsicas factibles adicionales, la solucin mxima debe ser una solucin factible.
Si se sabe de qu tipo es la solucin ptima y cmo generar una solucin de tal ndole a partir de otra, se necesita una regla que permita decidir qu variable se debe introducir en la nueva solucin. TEOREMA 3 Supongamos que tenemos un problema de programacin lineal y una solucin bsica factible del mismo. Si existe una variable Xk para la cual se puede realizar el clculo de mediante su propia regla, se puede generar otra solucin que aumente el valor de la funcin objetivo en un valor determinado de antemano.
Y por el teorema 2 tenemos que: z = z + (ck zk) Puesto que estamos tratando de encontrar la solucin mxima, es lgico exigir que Z > Z . Ya que Z depende de la variable Xk que elegimos, es lgico tambin requerir que k se elija de forma que el cambio del valor de la solucin, Z Z, resulte tan grande como sea posible, como quiera que esto no sucede normalmente, es necesario el clculo de todas las posibles. En vez de hacer esto, el mtodo usual consiste en determinar como variable que formar parte de la nueva solucin, la que satisface
Ck Zk = max ( Cj Zj)
Esta es la regla llamada del ascenso ms rpido.
3. Dividimos la r-sima fila por ark (elemento pivote), para reducir a 1 el correspondiente elemento de ark en la tabla siguiente. Efectuamos luego las operaciones de fila que reducirn a cero todos los otros aik .
4. Repetimos los pasos 1, 2 y 3 hasta que en alguna tabla se cumpla la condicin 1(c). Entonces se ha obtenido la solucin ptima.
UN PROBLEMA DE MAXIMIZACIN
El tipo ms sencillo de problema con el que se trabaja en programacin lineal es el de maximizacin, en el que todas las restricciones son de tipo menor o igual que.
PROBLEMA
Una empresa cuenta con 1000 toneladas del mineral b1, 2000 toneladas del mineral b2 y 500 toneladas del b3. A partir de dichos minerales pueden extraerse y fundirse los productos metlicos 1, 2 y 3. Los requerimientos de fabricacin sobre los productos son los siguientes: Una tonelada del producto 1 requiere 5 toneladas de mineral b1, 10 de b2 y 10 de b3. Una tonelada del producto 2 requiere 5 toneladas de mineral b1, 8 de b2 y 5 de b3. Una tonelada del producto 3 requiere 10 toneladas de mineral b1, 5 de b2 y nada de b3. El fabricante obtendr $100 de ganancia por tonelada del producto 1, $200 por tonelada del producto 2 y $50 por tonelada del producto 3. Se requiere determinar cuntas toneladas de cada producto que deben fabricarse, a partir de los minerales aprovechables, para obtener las mximas ganancias de la operacin.
PROBLEMA
En este problema de programacin lineal, las variables funcionales o de decisin son X1, X2 y X3, que representan las unidades a fabricar de los productos o niveles de actividad. El problema es encontrar el vector X que hace mxima a la funcin objetivo:
PROBLEMA
Puesto que cada una de las restricciones es del tipo menor o igual, debemos sumar nuevas variables no negativa, variables de holgura, para obtener: 5x1 + 5x2 + 10x3 + s1 = 1000 10x1 + 8x2 + 5x3 + s2 = 2000 10x1 + 5x2 + s3 = 500 Vemos inmediatamente que este problema tiene una solucin bsica inicial: s1 = 1000; s2 = 2000; s3= 500
100 X1 5 10 10 0 100
200 X2 5 8 5 0 200
50 X3 10 5 0 0 50
0 S1 1 0 0 0 0
0 S2 0 1 0 0 0
0 S3 0 0 1 0 0
VARIABLES ARTIFICIALES
Para corregir esta situacin, se introduce una variable artificial en la segunda restriccin, para obtener:
5x1 + 5x2 + 10x3 + s1 = 1000 10x1 + 8x2 + 5x3 + a2 = 2000 10x1 + 5x2 + s3 = 500
Ahora se tiene la solucin bsica inicial s1=1000; a2 = 2000; s3 = 500.
VARIABLES ARTIFICIALES
Entonces, una variable artificial en una restriccin cumple el papel de variable bsica en su restriccin. A pesar de que se ha corregido el problema para que tenga la forma correcta para empezar el algoritmo, esta no es una solucin factible. Las variables artificiales representan productos imaginarios, por lo que cualquier valor que tome a2 no satisface la segunda restriccin.
EL MTODO DE PENALIZACIN
Dejamos a2 en el sistema de forma que se pueda empezar el algoritmo, pero intentaremos sacarla de ste asignndole un coeficiente en la funcin objetivo igual a M. La funcin objetivo se convierte entonces en: Z = 100x1 + 200x2 + 50x3 + 0s1 Ma2 + 0s3
Si Z se debe maximizar, a2 debe dejar la solucin y por lo tanto debe hacerse igual a cero, puesto que M se considera un nmero muy grande, tan grande que puede dominar a los dems nmeros que aparecen en el problema. El hecho de penalizar a la variable artificial en la funcin objetivo con un coeficiente M, se conoce como el mtodo de la penalizacin.
EL MTODO DE PENALIZACIN En general, cuando el modelo en la forma estndar para el mtodo simplex contiene variables artificiales, stas se deben penalizar en la funcin objetivo con un coeficiente M: - Ma1 + Ma2 Maximizacin Minimizacin
EL MTODO DE PENALIZACIN
Cuando se realiza el algoritmo simplex en un problema que contiene variables artificiales, se puede llegar a uno de tres casos posibles: 1) Antes de obtener la tabla simplex en la cual todos los cj zj <= 0, la variable artificial se reemplaza por otra variable. Entonces tenemos una solucin bsica factible y se contina hasta determinar la solucin ptima. 2) Se obtiene la tabla simplex en la cual todos los cjzj <= 0, y la variable artificial permanece en la solucin pero con valor cero. Entonces la solucin del problema es ptima y factible.
EL MTODO DE PENALIZACIN
3) Se obtiene una tabla simplex en la cual todos los (cj zj) <= 0, pero la variable artificial permanece en la solucin con un valor positivo. En este caso, la solucin es no factible, es decir, Z no puede optimizarse en funcin de los trminos no negativos. Desde el punto de vista prctico esto significa que se est tratando de hacer algo imposible con los recursos disponibles.
PROBLEMA DE MAXIMIZACIN CON RESTRICCIONES FORMADA POR DESIGUALDADES MAYOR O IGUAL QUE
Continuaremos con el problema que se viene tratando, pero alterado de forma tal que se requiere que se usen al menos 1000 tons. de la materia prima b2. Este requerimiento convierte la segunda restriccin del problema es una restriccin tipo mayor o igual que, esto da lugar al siguiente modelo PL : 5x1 + 5x2 + 10x3 <= 1000 10x1 + 8x2 + 5x3 >= 1000 10x1 + 5x2 <= 500
PROBLEMA DE MAXIMIZACIN CON RESTRICCIONES FORMADA POR DESIGUALDADES MAYOR O IGUAL QUE
Haciendo los clculos apropiados, sumando variables de holgura a la 1ra y 3ra restricciones y restando una variable de exceso a la 2da restriccin, obtenemos: 5x1 + 5x2 + 10x3 + s1 = 1000 10x1 + 8x2 + 5x3 e2 = 1000 10x1 + 5x2 + s3 = 500 Que es el conjunto de ecuaciones que el vector solucin X debe satisfacer a la vez que hace mximo la funcin objetivo: Z = 100x1 + 200x2 + 50x3 No se tiene una solucin bsica inicial factible, puesto que si hacemos x1=x2=x3=0, obtenemos s1=1000, e2= 1000, s3=500. Aqu la variable de exceso e2, que fue restada en la segunda restriccin para convertir la desigualdad en igualdad, no cumple con la restriccin de no-negatividad, lo que da lugar a una solucin bsica inicial no factible.
PROBLEMA DE MAXIMIZACIN CON RESTRICCIONES FORMADA POR DESIGUALDADES MAYOR O IGUAL QUE
Para tener una solucin inicial bsica factible, es necesario aadir una variable artificial a la segunda restriccin. En la funcin objetivo esta variable artificial estar penalizado con el coeficiente M, as: Max Z = 100x1 + 200x2 + 50x3 + 0s1 + 0e2 Ma2 + 0s3 s. a.: 5x1 + 5x2 + 10x3 + s1 = 1000 10x1 + 8x2 + 5x3 e2 + a2 = 1000 10x1 + 5x2 + s3 = 500 x1, x2, x3, s1, e2, s3, a1 >= 0 Este s es un problema con solucin factible, el mtodo simplex da para este problema la siguiente solucin: x1=0, x2=100, x3=50, e2=50, Z=22,500. Se cumple la segunda restriccin con demasa o exceso, es decir el requerimiento de usar por lo menos 1000 tons. del mineral b2 se cumple, pues se usan 1050 tons., el exceso de 50 sobre el lmite mnimo impuesto lo absorbe la variable de exceso e2.
RESMEN
Tipo de restriccin
<= = >=
Cuando se trabaja con variables artificiales, puede suceder que los coeficientes de la funcin objetivo tengan valores muy grandes, y que por lo tanto el valor de M no sea suficientemente grande para estar seguro que las variables artificiales van a tender a salir de la base y que en un cierto nmero de iteraciones vamos a llegar a un resultado correcto. El mtodo de dos fases, es una tcnica para trabajar con variables artificiales.
EL MTODO DE DOS FASES 2da Fase a) La primera tabla simplex de la 2da fase es la ltima tabla simplex de la 1ra fase, en la que se colocan los verdaderos Cj de todas las variables. b) Se recalculan las filas (Zj) y (Cj-Zj) de la tabla simplex y se continan las iteraciones hasta obtener la solucin ptima.
Cj
Ck ... Xk ... Zj Cj - Zj 0 3 0 3 -1 b ... X1 ... X2 ... X3 ... S1 ... S2 ...
Si la variable que va ingresar a la base es la que corresponde a la columna j, y al calcular el cociente = bi/aij, para cada aij>0, se obtiene empate en el cociente mnimo, puede elegirse como variable que sale de la base a cualquiera de las variables que empatan en el cociente mnimo. Por convencin, se selecciona la variable que est en la parte superior. Cuando hay empate en el cociente min, la siguiente solucin ser una solucin degenerada.
2 5 2
Cj Ck 0 10 Xk S1 X2 Zj Cj-Zj b 4 3 30
6 X1 19/5 3/5 6 0
10 X2 0 1 10 0
0 S1 1 0 0 0
0 S2 -2/5 1/5 2 -2
La variable no bsica X1 tiene el indicador (Cj Zj)=0. Se puede obtener una solucin ptima alternativa haciendo otra iteracin, en la que ingresar X1 como nueva variable bsica.
Solucin No Acotada. El vector correspondiente a la columna X3 est formado por aij<=0. No se puede calcular el cociente .
SOLUCIN NO FACTIBLE
Esta condicin ocurre cuando no existe solucin para el programa lineal que satisfaga todas las restricciones, incluyendo las de nonegatividad. Si se usa el mtodo grfico, ello significa que no existe regin factible. El mtodo simplex reconoce la no factibilidad, cuando se ha llegado a obtener una solucin que no puede mejorarse, pero una o ms variables artificiales siguen estando en la solucin con valor positivo.
SOLUCIN NO FACTIBLE
Cj Ck -1 -M Xk X1 a1 Zj Cj - Zj b 1 2 -2M-1
-1 X1 1 0 -1 0
-1 X2 1 -2 2M-1 -2M
0 S1 1 -4 4M-1 1-4M
0 S2 0 -1 M -M
-M a1 0 1 -M 0
Todos los (Cj Zj) <=0, lo que corresponde a una tabla simplex final, en la que hay una variable artificial con valor positivo. Por tanto, se concluye que el problema no tiene solucin factible.
SOLUCIN DEGENERADA Se dice que una solucin es degenerada si una o ms variables bsicas tienen valor cero. La degeneracin se previene cuando hay empate en el cociente min al determinar la variable bsica que saldr de la base. A diferencia de los problemas no acotados y los no factibles, la ocurrencia de la solucin degenerada no impide que se alcance la solucin ptima. Una solucin degenerada es una solucin factible.
SOLUCIN DEGENERADA
Cj Ck 1 0 Xk X1 S2 Zj Cj - Zj b 1 0 1
1 X1 1 0 1 0
3 X2 1 -1 1 2
0 S1 -1 -2 -1 1
0 S2 0 1 0 0
M a1 1 2 1 M-1
M a2 0 -1 0 M
GRACIAS