Está en la página 1de 11

UNIDAD 3 MTODO SIMPLEX Fundamentos del mtodo simplex Teora

Este mtodo busca la solucin, en cada paso, de forma mejorada hasta que no pueda seguir mejorando dicha solucin. Al comienzo el vrtice principal es un vrtice cualquiera, hasta que va mejorando, comparndolo con el vrtice anterior, en los pasos de la ecuacin. 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 (o no varen) restricciones del tipo "" o "=" habr que emplear otros mtodos, siendo el ms comn el mtodo de las Dos Fases. Resumen del mtodo simplex. Paso 1 Convertir el LP a suma forma estndar.

Paso 2 Encontrar una solucin bsica factible. Si todas las restricciones son de tipo =<se pueden usar las variables de holgura si para cada la i. Paso 3 Si todas las variables no bsicas tienen un coeficiente no negativo en la 0, la bfs actuales optima. Si hay variables en la 0 con coeficientes negativos, se debe escoger la que acompae al coeficiente ms negativo en la 0 para entrar a la base. Esta variable se denomina la variable entrante. Paso 4 Emplear el pivoteo para hacer que la variable entrante ingrese a la base en la que restringido su valor. Una vez obtenida la base, volver al paso 3, empleando la forma canonca actual. Solucin factible Una solucin basal de (2.3) en el cual todas las variables son no negativas es una Solucin basal factible o bfs. Los siguientes dos teoremas explican la importancia de concepto de solucin basal factible en LP. Teorema 1 La regin factible para cualquier problema de

programacin lineal es un conjunto convexo. Adems, si un LP tiene solucin ptima, el ptimo debe ser un punto extremo de la regin factible. La justificacin del Teorema 1 fue discutida intuitivamente cuando se estudio la resolucin grafica de LP de dos variables, adems en dos variables tambin se vio que el optimo corresponde un punto extremo.

Teorema 2 Para cualquier LP, existe un nico punto extremo de la regin factible correspondiente a cada solucin basal factible. Adems, existe a los menos una bfs correspondiente a cada punto extremo de la regin factible. Solucin bsica factible Siempre se debe incorporar una variable entrante en la que controla su valor mximo. En el ejemplo, para hacer que x1 sea la variable basal en la 3 se debe emplear operaciones las elementales para conseguir que x1 tenga coeficiente 1 en dicha la y 0 en las otras las. El procedimiento se denomina pivoteo en la 3. El resultado es que x1 reemplace a s3 como variable bsica de la 3. Los pasos a seguir son los siguientes: Paso 1 Se crea un coeficiente 1 para x1 en la 3 multiplicando la completa por . El resultante de la operacin es: x1 + 0;75x2 + 0;25x3 + 0;5s3 = 4 Paso 2 Se crea un coeficiente 0 para la variables x1 en la 0. Para ello basta multiplicar por 60 (3.12) y sumarla a la 0 actual: z + 15x2 5x3 + 30s3 = 240 Paso 3 Para fabricar un coeficiente 0 para la variables x1 en la 1 se multiplica por 8 (3.12) y se suma a la 1 actual: x3 + s1 4s3 = 16

Paso 4 Creamos un coeficiente 0 para la variables x1 en la la 2 multiplicando por 4 (3.12) y sumndosela a la la 2 actual: x2 + 0;5x3 + s2 2s3 = 4 Debido a que en la 4 no aparece la variable x1, no es necesario aplicar operaciones las para eliminar x1 de la. Luego, la 4 queda igual que antes: x2 + s4 = 5 Efectuando todas las medicaciones descritas se completa el Cuadro 3.3. Las variables basales y no basales en este caso definen los siguientes conjuntos: BV = fz; s1; s2; x1; s4g NBV = fs3; x2; x3g Variable entrante: Se puede comenzar a desarrollar con cualquier variable solo que segn la que tome se realizaran ms o menos iteraciones. Se recomienda usar las variables bsicas, ya que estas sern la base en la solucin en estos mtodos. Variable saliente Igualmente se puede comenzar con cualquiera de ellas, aunque se puede dar el caso corrido de caer en un ciclo repetitivo. Para que no ocurran estos casos de repeticin no se tomaran en cuenta las

variables bsicas haciendo que siempre estn en la base. En caso de igualdad de las variables se, en el segundo mtodo, se tomara las variables artificiales. Mtodo de las dos faces Trata, en diferencia del mtodo simplex, en que primero hay que resolver el problema auxiliar tratando de minimizar la suma las variables artificiales. Una vez resolvido el problema se ordena la tabla final y comenzamos con el mtodo simplex normal. Fase 1 En esta primera fase, se realiza todo de igual manera que en el mtodo Simplex normal, excepto la construccin de la primera tabla, la condicin de parada y la preparacin de la tabla que pasar a la fase 2 - Construccin de la primera tabla: Se hace de la misma forma que la tabla inicial del mtodo Simplex, pero con algunas diferencias. La fila de la funcin objetivo cambia para la primera fase, ya que cambia la funcin objetivo, por lo tanto aparecern todos los trminos a cero excepto aquellos que sean variables artificiales, que tendrn valor "-1" debido a que se est minimizando la suma de dichas variables (recuerde que minimizar F es igual que maximizar F(-1)). La otra diferencia para la primera tabla radica en la forma de calcular la fila Z. Ahora tendremos que hacer el clculo de la siguiente forma: Se sumarn los productos CbPj para todas las filas y al resultado se

le restar el valor que aparezca (segn la columna que se ste haciendo) en la fila de la funcin objetivo. - Condicin de parada: La condicin de parada es la misma que en el mtodo Simplex normal. La diferencia estriba en que pueden ocurrir dos casos cuando se produce la parada: la funcin toma un valor 0, que significa que el problema original tiene solucin, o que tome un valor distinto, indicando que nuestro modelo no tiene solucin. - Eliminar Columna de variables artificiales: Si hemos llegado a la conclusin de que el problema original tiene solucin, debemos preparar nuestra tabla para la segunda fase. Deberemos eliminar las columnas de las variables artificiales, modificar la fila de la funcin objetivo por la original, y calcular la fila Z de la misma forma que en la primera tabla de la fase 1. Mtodo simplex revisado Procedimiento de clculo Resolver el siguiente problema mediante el mtodo simplex revisado. max z = 2x2 + x3 s/a x1 2x2 + x3 >= 4 x1 + x2 + x3 <= 9 2x1 x2 x3 <= 5

x1, x2, x3 >= 0 Preliminares. Lo primero que debemos hacer es convertir el problema a su forma estndar. En nuestro caso, max z = 2x2 + x3 s/a x1 + 2x2 x3 + x4 = 4 x1 + x2 + x3 + x5 = 9 2x1 x2 x3 + x6 = 5 x1, x2, x3 >= 0 Matricialmente, max z = c.x s/a A.x = b x >= 0 Donde, y c = (0,2, 1, 0, 0, 0). Estos vectores/matrices van a permanecer constantes a lo largo del ejercicio. No obstante, cuando introduzcamos B, N, xB, xN, cB y cN, estos ltimos van a variar segn la base establecida en cada iteracin. Bsqueda primer solucin factible. El

problema es origen factible, as que no tenemos necesidad de utilizar el mtodo de las dos fases. Simplemente, Podemos comenzar con la base B = (a4, a5, a6). Obviamente, N = (a1, a2, a3). Test de optimalidad. Recordemos la forma general del diccionario, xB = B1.b B1.N.xN z = cB.B1.b + (cN cB.B1.N).xN Debemos investigar los coeficientes de la funcin objetivo

(i.e.cNcB.B1.N). Llamemos w al vector que resulta del producto cB.B1. Utilizando la primera solucin factible hallada, cB resulta ser el vector nulo, as que tambin w = (0, 0, 0). Lo siguiente es evaluar los coeficientes de la funcin objetivo (correspondientes a las variables no bsicas) hasta encontrar uno que sea estrictamente positivo: c1 w.a1 = 0, c2 w.a2 = 2, c3 w.a3 = 1, por lo tanto entra x3 a la base.

Test de factibilidad. Ahora tenemos que hallar la variable saliente que ms restriccin impone, cuando x3 comienza a crecer. De la forma general del diccionario, veamos que xB = B1.b B1.N.xN = b N.xN = b a3.x3, Pues B1 = I y x3 dejara de ser cero, pero no as las otras variables no bsicas (x1 = x2 = 0). En resumen, x4 = 4 + x3, que no impone restriccin, x5 = 9 x3, que impone la restriccin x3 _ 9, x6 = 5 + x3, que no impone restriccin. La variable que ms restriccin impone es x5 y, por lo tanto, sale de la base. Actualizacin. Para poder pasar a la prxima iteracin (la cual comienza con el test de optimalidad) debemos actualizar la base, y con ella, los vectores/matrices B, N, xB, xN, cB y cN. Todas ellas se hallan mediante un reordenamiento de sus componentes (donde estaba antes la columna/valor correspondiente a la variable entrante, ahora estar la de la variable saliente y viceversa). Es decir, B = (a4, a3, a6), N = (a1, a2, a5), xB = (x4, x3, x6)T , xN = (x1, x2, x5)T , cB = (0, 1, 0) y cN = (0,2, 0). Cabe destacar que tambin podemos aprovechar a calcular la nueva B1 de una manera eficiente, a partir de la B1 previa. Llamemos B1 a

la matriz B antes de iterar y B2 a la matriz luego de iterar. Observemos que B2 = (a4, a3, a6) = (a4, a5, a6).T = B1.T, T es una identidad modificada, en donde se ha cambiado su columna del medio por la columna correspondiente a x3 en el resultado B1.N ya calculado en el paso anterior (dicha columna haba resultado ser simplemente a3). Luego, B12 = (B1.T )1 = T1.B11 = T1.I = T1 En general, T1 es tambin una identidad, salvo que la columna cambiada k (en nuestro caso, es la del medio, k = 2) est formada por la columna (t1k/tkk,t2k/tkk, , 1/tkk, )T Obsrvese que la fila k de esta columna se calcula de una manera diferente al resto. Test de optimalidad. Nuevamente, volvemos a calcular los coeficientes de la funcin objetivo correspondiente a las nuevas variables no bsicas. En primer lugar, w = cB.B1 = (0, 1, 0). c1 w.a1 = 1, c2 w.a2 = 3, c5 w.a5 = 1. Como todos los coeficientes no son estrictamente positivos, hemos alcanzado el ptimo.

Resultado. Para conocer los valores de x_ y z_, volvemos a recordar la forma general del diccionario, y hacemos x*B = B1.b, x* N = 0, z* = cB.B*1.b = w.b. Nos queda x*B = (13, 9, 14) y z_ = 9. En particular, las slacks no nos interesan y podemos descartarlas, dejando X1 = x_ x2 = 0 y x_

También podría gustarte