mÉtodo del simplex_01.pptx

64
* MÉTODO DEL SIMPLEX Ing. Wili Nelson TARMA VIVAS

Upload: manu-garces

Post on 28-Sep-2015

222 views

Category:

Documents


2 download

DESCRIPTION

MÉTODO DEL SIMPLEX_01.pptx

TRANSCRIPT

MTODO DEL SIMPLEX

MTODO DEL SIMPLEXIng. Wili Nelson TARMA VIVASIntroduccinEl mtodo del simplex es un algoritmo general para resolver cualquier problema de programacin linealAdmite cualquier nmero de variables.Es un mtodo iterativo que nos conduce progresivamente hasta la solucin final.En cada iteracin examina un punto extremo de la regin factible S.Antes de usarlo es preciso pasar el problema a la llamada forma estndar, que estudiaremos a continuacin.Forma estndarDefinicin: Un problema de programacin lineal est en forma estndar si est expresado como:

NOTACIN MATRICIAL

NOTACIN ESCALARPASO A LA FORMA ESTNDARLas dificultades que podemos encontrar para pasar un problema a forma estndar, y las soluciones correspondientes son: Si aparece una inecuacin del tipo aiTx bi. En tal caso, aadimos una nueva variable, llamada variable de exceso, si, con la restriccin si 0, de tal manera que la inecuacin se convierte en la ecuacin aiTx si = bi. La nueva variable aparece con coeficiente cero en la funcin objetivo.

Si aparece una inecuacin del tipo aiTx bi. En tal caso, aadimos una nueva variable, llamada variable de holgura, si, con la restriccin si 0, de tal manera que la inecuacin se convierte en la ecuacin aiTx + si = bi. La nueva variable aparece con coeficiente cero en la funcin objetivo.Aparece una variable xi que no tiene restriccin de no negatividad. En este caso, sustituimos xi en todas las restricciones y en la funcin objetivo por la diferencia de dos variables nuevas xn+1 y xn+2, que s tienen restriccin de no negatividad: xn+1 0, xn+2 0.PASO A LA FORMA ESTNDAREl problema es de minimizar, y no de maximizar. En este caso, tendremos en cuenta que minimizar una funcin objetivo F es lo mismo que maximizar la funcin objetivo F. Por tanto, basta con multiplicar por 1 la funcin objetivo.Siguiendo estas guas podemos pasar cualquier problema de programacin lineal a la forma estndar. Debemos tener en cuenta que las nuevas variables que se insertan para resolver un inconveniente no pueden reutilizarse para resolver otro PASO A LA FORMA ESTNDAREjemplos de paso a la forma estndarMaximizar Z = x1 + 2x2 Sujeto a:1/2 x1 + x2 1x1 + x2 2x1, x2 0Maximizar Z = x1 + 2x2 + 0x3Sujeto a:1/2 x1 + x2 +x3 = 1x1+ x2 2x1, x2 , x3 0Maximizar Z = x1 + 2x2 + 0x3 + 0x4Sujeto a:1/2 x1 + x2 +x3 = 1x1+ x2 +x4 = 2x1, x2 , x3 , x4 0Ejemplos de paso a la forma estndarMaximizar Z = 7x1 9x2 Sujeto a:4 x1 + 8x2 23x1 + x2 8x1, x2 0Maximizar Z = 7x1 9x2 + 0x3Sujeto a:4 x1 + 8x2 x3 = 23x1 + x2 8x1, x2 , x3 0Maximizar Z = 7x1 9x2 + 0x3 + 0x4Sujeto a:4 x1 + 8x2 x3 = 23x1 + x2 +x4 = 8x1, x2 , x3 , x4 0Ejemplos de paso a la forma estndarMaximizar 3x1 5x2 Sujeto a:10 x1 + 18x2 = 74x1 + 5x2 9x1 0Maximizar 3x1 5x3 + 5x4Sujeto a:10 x1 +18x3 18x4 = 24x1 + 5x3 5x4 9x1, x3 , x4 0Maximizar 3x1 5x3 + 5x4 + 0x5Sujeto a:10 x1 +18x3 18x4 = 24x1 + 5x3 5x4 +x5 = 9x1, x3 , x4 , x5 0Ejemplos de paso a la forma estndarMinimizar 7x1 4x2 Sujeto a:8 x1 + 2x2 1 x1 + 5x2 = 6x1, x2 0Maximizar 7x1 + 4x2 Sujeto a:8 x1 + 2x2 1 x1 + 5x2 = 6x1, x2 0Maximizar 7x1 + 4x2 + 0x3Sujeto a:8 x1 + 2x2 + x3 = 1 x1 + 5x2 = 6x1, x2 , x3 0SITUACIN INICIAL PARA APLICAR EL MTODO SIMPLEXPartimos de un problema de programacin lineal, con m ecuaciones y n incgnitas (o variables de decisin) expresado en forma estndar:

Adems el mtodo simplex exige que bi 0 i{1, ..., m} VERSIN BSICA DEL ALGORITMO SIMPLEX1. Construir la primera tabla2. Mientras Condicin Parada = Falso hacer2.1. Elegir variable que sale2.2. Elegir variable que entra2.3. Actualizar tabla3. Dar resultado

CONSTRUCCIN DE LA PRIMERA TABLADado el problema tal como se explica en Situacin inicial, lo primero que hay que hacer es localizar un conjunto de m variables de tal manera que si eliminramos las dems y reorganizsemos las ecuaciones, nos quedara la matriz de coeficientes del sistema de ecuaciones convertida en la matriz identidad. Estas m variables formarn la primera base, y la solucin del sistema de ecuaciones se que obtendra con esos cambios es una solucin bsica factible (SBF). CONSTRUCCIN DE LA PRIMERA TABLALlamaremos i1, i2,..., im a los ndices de las m variables de la base, de tal manera que la variable ij es la que tiene un uno de coeficiente en la ecuacin nmero j. En las tablas aparecen los valores zi, que pueden calcularse mediante la siguiente ecuacin: zj=cBTPj, donde T indica trasposicin de vectores. Construimos la primera tabla de esta manera (lo que va en negrita son rtulos que se ponen tal cual):MODELO DE TABLAc1c2...cnBasecBP0P1P2PnPi1ci1bi1a11a12a1nPi2ci2bi2a21a22a2n...Pimcimbimam1am2amnz0z1 c1z2 c2zn cnCONDICIN DE PARADA. CRITERIO DE ENTRADACondicin de parada: El bucle se detiene cuando la tabla actual es tal que en su ltima fila no aparece ningn valor estrictamente negativoEleccin de la variable que entra: En caso de que el algoritmo no se haya detenido, hay que elegir qu variable, de entre las que no estn en la base, va a entrar en dicha base. Para ello nos fijamos en los valores estrictamente negativos que haya en la ltima fila. Escogeremos la variable j correspondiente al ms negativo (es decir, mayor valor absoluto) de estos valores. CRITERIO DE SALIDAEleccin de la variable que sale: Una vez elegida la variable j que entra, nos fijamos en la columna cuyo ttulo es Pj. Dividimos el vector P0 entre el Pj, componente a componente. De entre las fracciones con denominador estrictamente positivo que resulten (es decir, las correspondientes a componentes estrictamente positivas de Pj), escogemos la mnima. La fila donde hemos obtenido este valor mnimo es la de la variable de la base que sale. ACTUALIZACIN DE LA TABLAConstruimos una tabla nueva, en la que las dos primeras filas son las mismas que en la antigua (son los ci y los rtulos). Las columnas con ttulos cB y Base slo se ven alteradas en un elemento cada una: el elemento de la fila correspondiente a la variable que ha cambiado en la base.La subtabla formada por los ajk y los biz debe ser alterada de tal modo que en cada una de sus filas haya un uno en el elemento de la columna de la variable de la base que corresponde a esa fila, y un cero en los elementos de las columnas de las dems variables de la base. Esto debe hacerse usando siempre transformaciones elementales (es decir, las que se usan para resolver sistemas de ecuaciones lineales por Gauss-Jordan). Tras haber hecho esto, la ltima fila de la tabla global se actualiza recalculando sus valores con las frmulas que se usaron para la construccin de la primera tabla.Ntese que, como lo nico que hacemos son transformaciones elementales, en realidad lo que estamos haciendo en cada iteracin del mtodo simplex es expresar el sistema de ecuaciones de otra manera.ACTUALIZACIN DE LA TABLARESULTADO DEL MTODOLos valores ptimos de las variables que forman la base vienen dados por la columna P0 de la ltima tabla. El resto de las variables tienen valor ptimo cero.El valor ptimo de la funcin objetivo (funcin que estbamos maximizando) es el z0 de la ltima tabla. EjemplosProblema:Maximizar Z= x1 + 2x2 sujeto a:-1/2 x1 + x2 1x1+ x2 2x1, x2 0

EjemplosTabla 11200BasecBP0P1P2P3P4P301-1/2110P40211010-1-200Criterio de entrada: mn { -1, -2 } = -2, luego entra x2Criterio de salida: mn { 1, 2 } = 1, luego sale x3Maximizar Z = x1 + 2x2 sujeto a:-1/2 x1 + x2 1x1+ x2 2x1, x2 0EjemplosTabla 21200BasecBP0P1P2P3P4P221-1/2110P4013/20-112-2020Criterio de entrada: mn { -2 } = -2, luego entra x1Criterio de salida: mn { 2/3 } = 2/3, luego sale x4EjemplosTabla 31200BasecBP0P1P2P3P4P224/3012/31/3P112/310-2/32/310/3002/34/3Se cumple la condicin de parada. Valor ptimo: 10/3Solucin ptima: (2/3, 4/3, 0, 0)TEjemplosProblema:Maximizar Z = x1 + 6x2 sujeto a:-2x1+ x2 4-x1+ x2 12x1+ x2 6x1, x2 0

EjemplosTabla 116000BasecBP0P1P2P3P4P5P304-21100P401-11010P506210010-1-6000Criterio de entrada: mn { -1, -6 } = -6, luego entra x2Criterio de salida: mn { 4, 1, 6 } = 1, luego sale x4Maximizar Z = x1 + 6x2 sujeto a:-2x1+ x2 4-x1+ x2 12x1+ x2 6x1, x2 0EjemplosTabla 216000BasecBP0P1P2P3P4P5P303-101-10P261-11010P505300-116-70060Criterio de entrada: mn { -7 } = -7, luego entra x1Criterio de salida: mn { 5/3 } = 5/3, luego sale x5EjemplosTabla 316000BasecBP0P1P2P3P4P5P3014/3001-4/31/3P268/30102/31/3P115/3100-1/31/353/300011/37/3Se cumple la condicin de parada. Valor ptimo: 53/3Solucin ptima: (5/3, 8/3, 14/3, 0, 0)TEjemplosProblema:Maximizar Z = 5x1 + 4x2 sujeto a:3x1+ 3x2 1012x1+ 6x2 24x1, x2 0

EjemplosTabla 15400BasecBP0P1P2P3P4P30103310P4024126010-5-400Criterio de entrada: mn { -5, -4 } = -5, luego entra x1Criterio de salida: mn { 10/3, 2 } = 2, luego sale x4Maximizar Z = 5x1 + 4x2 sujeto a:3x1+ 3x2 1012x1+ 6x2 24x1, x2 0EjemplosTabla 25400BasecBP0P1P2P3P4P30403/21-1/4P15211/201/12100-3/205/12Criterio de entrada: mn { -3/2 } = -3/2, luego entra x2Criterio de salida: mn { 8/3, 4 } = 8/3, luego sale x3EjemplosTabla 35400BasecBP0P1P2P3P4P248/3012/3-1/6P152/310-1/31/6140011/6Se cumple la condicin de parada. Valor ptimo: 14Solucin ptima: (2/3, 8/3, 0, 0)TEjemplosProblema:Maximizar Z = 20x1 + 24x2 sujeto a:3x1+ 6x2 604x1+ 2x2 32x1+ 2x2 16x1, x2 0

EjemplosTabla 12024000BasecBP0P1P2P3P4P5P306036100P403242010P5016120010-20-24000Criterio de entrada: mn { -20, -24 } = -24, luego entra x2Criterio de salida: mn { 10, 16, 8 } = 8, luego sale x5Maximizar Z = 20x1 + 24x2 sujeto a:3x1+ 6x2 604x1+ 2x2 32x1+ 2x2 16x1, x2 0EjemplosTabla 22024000BasecBP0P1P2P3P4P5P30120010-3P40163001-1P22481/21001/2192-800012Criterio de entrada: mn { -8 } = -8, luego entra x1Criterio de salida: mn { 16/3, 16 } = 16/3, luego sale x4EjemplosTabla 32024000BasecBP0P1P2P3P4P5P30120010-3P12016/31001/3-1/3P22416/3010-1/62/3704/30008/328/3Se cumple la condicin de parada. Valor ptimo: 704/3Solucin ptima: (16/3, 16/3, 12, 0, 0)TCASOS ANMALOSPROBLEMAS CON INFINITAS SOLUCIONESEn la tabla final hay algn valor nulo en la ltima fila, que corresponde a una variable que no est en la base. En tal caso, podramos introducir dicha variable en la base, y nos saldra otra base que dara tambin el valor ptimo. Esto quiere decir que el problema tiene infinitas soluciones, todas ellas con el mismo valor ptimo de la funcin objetivo. Sea K el nmero de vectores solucin obtenidos de esta manera (habiendo K1 ceros extra), y sean dichos vectores x1, x2, ..., xK. Entonces las infinitas soluciones del problema sern:

EjemplosProblema:Maximizar Z = 6x1 + 3x2 sujeto a:-x1+ x2 12x1+ x2 6x1, x2 0

EjemplosTabla 16300BasecBP0P1P2P3P4P301-1110P40621010-6-300Criterio de entrada: mn { -6, -3 } = -6, luego entra x1Criterio de salida: mn { 3 } = 3, luego sale x4Maximizar Z = 6x1 + 3x2 sujeto a:-x1+ x2 12x1+ x2 6x1, x2 0EjemplosTabla 26300BasecBP0P1P2P3P4P30403/211/2P16311/201/2180003Se cumple la condicin de parada. Valor ptimo: 18. Primera solucin ptima: xA=(3, 0, 4, 0)TEn la ltima fila, el cero que no est en la base indica otrasolucin ptima. Para hallarla, hacemos entrar a x2EjemplosTabla 36300BasecBP0P1P2P3P4P238/3012/31/3P165/310-1/31/3180003Segunda solucin ptima: xB=(5/3, 8/3, 0, 0)T. Tambin son soluciones ptimas todos los puntos del segmento AxA+BxB, con A , B 0, A + B = 1.PROBLEMAS CON SOLUCIN ILIMITADAAl intentar elegir la variable que sale, nos podemos encontrar con que la columna Pj de la variable j que tena que entrar tiene todos sus elementos negativos o nulos. En tal caso el problema tiene solucin ilimitada, es decir, se puede hacer crecer el valor de la funcin objetivo tanto como se quiera sin violar ninguna restriccin. Para ello, bastara con hacer crecer ilimitadamente la variable que tena que entrar en la base. EjemplosProblema:Maximizar Z = x1 + x2 sujeto a:5x1- x20x1- 4 x2 0x1, x2 0

EjemplosTabla 11100BasecBP0P1P2P3P4P300-5110P4001-4010-1-100Criterio de entrada: mn { -1, -1 } = -1, y elegimos que entre x1Criterio de salida: mn { 0/1 } = 0, luego sale x4Maximizar Z = x1 + x2 sujeto a:5x1- x20x1- 4 x2 0x1, x2 0EjemplosTabla 21100BasecBP0P1P2P3P4P3000-1915P1101-40100-501Criterio de entrada: mn { -5 } = -5, luego entra x2Criterio de salida: No hay fracciones con denominador estrictamente positivo, luego el problema tiene solucin ilimitadaMTODO DE LAS DOS FASESINTRODUCCINSi al intentar aplicar el mtodo simplex nos encontramos con que no es posible encontrar una solucin bsica factible (SBF) inicial, es preciso usar el mtodo de las dos fases.Para ello, usamos el siguiente algoritmo:1. Aadir variables artificiales al problema2. Fase I.3. Fase II.ADICIN DE VARIABLES ARTIFICIALESSe trata de aadir al problema tantas variables como sean necesarias para construir una SBF. Sus coeficientes en las ecuaciones sern los que convengan para nuestro propsito. Por consiguiente, tendremos que cada variable artificial tendr coeficiente 1 en una ecuacin y coeficiente 0 en todas las demsFase ISe trata de aplicar el mtodo simplex para resolver un problema auxiliar que consiste en minimizar la suma de las variables artificiales. Para que la tabla ptima aparezca lo antes posible conviene que, en caso de empate en el criterio de salida y que una de las variables empatadas sea artificial, saquemos la artificial.Una vez resuelto este problema auxiliar, caben dos posibilidades:El valor ptimo de la funcin objetivo es distinto de cero. En tal caso el problema original no tena solucin. El valor ptimo de la funcin objetivo es cero. En tal caso podemos pasar a la Fase II. Fase IIConsiste en aplicar el mtodo simplex, usando la funcin objetivo del problema original, pero empezando con una primera tabla que se obtiene quitando de la ltima tabla de la Fase I las columnas de las variables artificialesLa solucin obtenida en la Fase II ser la solucin del problema original (tngase en cuenta que en la Fase II no aparecen variables artificiales)EjemplosProblema:Maximizar Z = 6x1 + x2 sujeto a:-x1+ x2 12x1+ x2 6x1, x2 0

EjemplosTabla 1 de la Fase I0000-1BasecBP0P1P2P3P4P5

P5-11-11-101P40621010-11-1100Criterio de entrada: mn { -1 } = -1, luego entra x2Criterio de salida: mn { 1, 6 } = 1, luego sale x5Maximizar Z = 6x1 + x2 sujeto a:-x1+ x212x1+ x2 6x1, x2 0EjemplosTabla 2 de la Fase I0000-1BasecBP0P1P2P3P4P5

P201-11-101P4053011-1000001Se cumple la condicin de parada. Valor ptimo: 0 (el problema tiene solucin).Construimos la primera tabla de la Fase II quitando la variable artificial x5EjemplosTabla 1 de la Fase II6100BasecBP0P1P2P3P4P211-11-10P40530111-70-10Criterio de entrada: mn { -7, -1 } = -7, luego entra x1Criterio de salida: mn { 5/3 } = 5/3, luego sale x4EjemplosTabla 2 de la Fase II6100BasecBP0P1P2P3P4P218/301-2/31/3P165/3101/31/338/3004/37/3Se cumple la condicin de parada. Valor ptimo: 38/3Solucin ptima: (5/3, 8/3, 0, 0)TEjemplosProblema:Maximizar Z = 4x1 + x2 + 6x3 sujeto a:-2x1- x2+ 2x31x1+ x2+ x3 6x1, x2 , x3 0

EjemplosTabla 1 de la Fase I00000-1-1BasecBP0P1P2P3P4P5P6

P7

P6-11-2-12-1010P7-161110-101-710-31100Criterio de entrada: mn { -3 } = -3, luego entra x3Criterio de salida: mn { 1/2, 6 } = 1/2, luego sale x6Maximizar Z = 4x1 + x2 + 6x3 sujeto a:-2x1- x2+ 2x3 1x1+ x2+ x3 6x1, x2 , x3 0EjemplosTabla 2 de la Fase I00000-1-1BasecBP0P1P2P3P4P5P6

P7

P301/2-1-1/21-1/201/20P7-111/223/201/2-1-1/21-11/2-2-3/20-1/213/20Criterio de entrada: mn { -2, -3/2, -1/2 } = -2, luego entra x1Criterio de salida: mn { 11/3 } = 11/3, luego sale x7EjemplosTabla 3 de la Fase I00000-1-1BasecBP0P1P2P3P4P5P6

P7

P3013/401/41-1/4-1/21/41/2P1011/413/401/4-1/2-1/41/200000011Se cumple la condicin de parada. Valor ptimo: 0 (el problema tiene solucin).Construimos la primera tabla de la Fase II quitando las variables artificiales x6 y x7EjemplosTabla 1 de la Fase II41600BasecBP0P1P2P3P4P5P3613/401/41-1/4-1/2P1411/413/401/4-1/261/207/20-1/2-5Criterio de entrada: mn { -1/2, -5 } = -5, luego entra x5Criterio de salida: No hay fracciones con denominador estrictamente positivo, luego el problema tiene solucin ilimitadaEjemplosProblema:Maximizar Z = x1 + x2 sujeto a:x1- x262x1- 2 x2 10x1, x2 0

EjemplosTabla 1 de la Fase I0000-1BasecBP0P1P2P3P4P5P5-161-1-101P40102-2010-6-11100Criterio de entrada: mn { -1 } = -1, luego entra x1Criterio de salida: mn { 6, 5 } = 5, luego sale x4Maximizar Z = x1 + x2 sujeto a:x1- x262x1- 2 x2 10x1, x2 0EjemplosTabla 2 de la Fase I0000-1BasecBP0P1P2P3P4P5P5-1100-1-1/21P1051-101/20-10011/20Se cumple la condicin de parada. Valor ptimo: -1. Como no resulta valor ptimo 0, el problema original no tiene solucin.