Programación Lineal Unidad 1 Parte 2 • Para la mayoría de los problemas modelados con programación lineal, el método gráfico es claramente inútil para resolverlos, pero afortunadamente y gracias a la dedicación de varios científicos, desde mediados del siglo XX se cuenta con el eficiente método SIMPLEX. Pero como antecedente a la exposición del simplex, conviene aclarar con definiciones algunos conceptos relacionados: • SOLUCIÓN: es un conjunto de n + m variables “Xj” definidas ordenadamente como un vector X= (X1, X2, …Xj… Xn…Xn+1,…,Xn+m) que satisface el conjunto de ecuaciones que constituyen el sistema del problema. En donde m= número de restricciones y n= número de variables de decisión. • SOLUCIÓN FACTIBLE: es un conjunto de n+m variables “Xj”, definidas ordenadamente como vector X= (X1, X2, …Xj… Xn…Xn+1,…,Xn+m) que satisface el conjunto de ecuaciones que constituyen el sistema en el problema • Y además la condición, toda Xj ≥ 0 • SOLUCIÓN BÁSICA: se obtiene cuando en el sistema de ecuaciones se hacen n variables iguales a cero de total de (n+m) variables y resolviendo las ecuaciones para las restantes “m” variables, siempre que el determinante de los coeficientes de estas “m” variables llamadas básicas, no sea cero. • SOLUCIÓN BÁSICA FACTIBLE: es una solución básica que cumple Xj ≥0, para toda j (j= 1,2,…, n+m); es decir, todas las variables básicas son no negativas. En una analogía geométrica con sólo dos variables, se puede comparar con los vértices en el área sombreada. • SOLUCIÓN NO DEGENERADA: es una solución básica factible, con exactamente “m” variables básicas Xj, estrictamente positivas. • SOLUCIÓN DEGENERADA: es una solución básica factible, con menos de “m” variables básicas Xj positivas pues al menos, una de ellas es de valor cero. • SOLUCIÓN ÓPTIMA: es una solución básica factible que optimiza la función Teoremas de programación lineal • El conjunto de soluciones factibles de la programación lineal es convexo • Un conjunto es convexo, si dados dos puntos cualesquiera A y B del mismo, del segmento de recta que los une, se incluye totalmente en dicho conjunto; expresado matemáticamente, un conjunto C es convexo si y sólo si, todos los puntos “P” determinados por combinación convexa entre dos puntos cualesquiera A y B del mismo, están en el conjunto C • Si tanto A como F son vértices factibles, entonces P está en conjunto factible • La función objetivo de un programa lineal tiene su valor óptimo (máximo o mínimo), es un punto extremo (vértice) del conjunto convexo de soluciones factibles. • Si alcanza este óptimo en más de un punto extremo, entonces toma el mismo valor para toda combinación convexa entre esos puntos del problema (soluciones óptimas múltiples) • Una condición necesaria y suficiente para que un punto X ≥ 0 en el conjunto de soluciones factibles sea punto extremo, es que X sea una solución básica factible que satisfaga el sistema: AX= b; o bien expresado así: • Este teorema indica que cada punto extremo corresponde, al menos, a una solución básica y viceversa, cada solución básica significa un punto extremo. Así se concluye que el número de puntos extremos del conjunto de soluciones factibles es finito y no puede exceder el de sus soluciones básicas. • Entonces el número máximo de tales soluciones supuestas únicas se calcula con el binomio: • Es de anotar, que un punto extremo puede estar definido con más de dos restricciones en cuyo caso se dice no único y tener más de una solución básica; además, si es extremo factible, se tiene degeneración en tal vértice. El punto extremo factible único se dice es solución básico no degenerada. Un punto extremo (vértice) del conjunto factible se identifica porque no se puede expresar como combinación convexa de cualquier para de puntos del mismo conjunto, Método Simplex • En el año 1947 el doctor George Dantizg presentó el algoritmo que desarrolló y que denominó SIMPLEX. A partir de este logro se pudieron resolver problemas que por más de un siglo permanecieron en calidad de estudio e investigación con modelos formulados pero no resueltos. El desarrollo paralelo de la computación digital, hizo posible su rápido desarrollo y aplicación empresarial a todo tipo de problemas. • El método simplex disminuye sistemáticamente un número infinito de soluciones hasta un número finito de soluciones básicas factibles. • El algoritmo simplex utiliza el conocido procedimiento de eliminación en la solución de ecuaciones lineales de Guass-Jordan y, además aplica los llamados criterios del simplex con los cuales se asegura mantener la búsqueda dentro de un conjunto de soluciones factibles al problema; así valora una función económica Z, exclusivamente en vértices FACTIBLES ( posibles). • También se consigue con eficiencia, debido a que se dirige la búsqueda haciendo cambios a una solución básica factible adyacente, que se distingue al tener m-1 variables básicas iguales; es decir, dos vértices adyacentes sólo difieren en una variable básica, seleccionando la ruta de mayor pendiente, para mejorar el valor de Z, o por lo menos conservarlo. • Primero se presenta el método simplex, específico para un modelo de PL en forma canónica de máximo, aplicado con la conocida tabla matricial, (también identificada como la tabla u), lo cual se resume mediante el diagrama funcional mostrado anteriormente, que muestra los fundamentos del algoritmo contenidos en niveles o bloques numerados para la referencia en la descripción del mismo. • Nivel 1, FORMA ESTÁNDAR: el modelo de PL en forma canónica de máximo que se desea resolver, tiene m ecuaciones obtenidas la convertir las restricciones de desigualdad a igualdad, agregando m variables de holgura, que sumadas a las n variables de decisión, hacen un total de (m+n) incógnitas. • Las m restricciones con las (m+n) variables, producen un número infinito de soluciones, entre ellas, un conjunto de factibles y también las no factibles. • Nivel 2. CALCULE UNA PRIMERA SOLUCIÓN BÁSICA FACTIBLE: del total, (m+n) variables, sólo n se igualan con cero (n=0), lo cual produce, si existen, un número finito de soluciones básicas con un límite máximo de (m+n)!/m!n!. • Estas pueden ser, factibles y no factibles; se consideran sólo las primeras. • Nivel 3. SE TOMAN EN CUENTA SÓLO LAS SOLUCIONES BÁSICAS FACTIBLES: esto es, las que tienen todas las variables básicas ≥ cero; es decir, con un número de iteraciones menor a (m+n)!/m!n! se obtienen soluciones básicas factibles: no degeneradas, si todas las incógnitas básicas son positivas y soluciones degeneradas si al menos una variable básica es igual a cero. Se aplican los criterios del algoritmo en forma iterativa para evaluar la función objetivo en puntos extremos adyacentes que potencialmente puedan mejorar el valor Z • Nivel 4 SE GENERAN NUEVAS SOLUCIONES BÁSICAS FACTIBLES; tales que el valor de la función objetivo Z mejore, se repite el procedimiento (iteraciones) entre los niveles 3 y 4, hasta que ninguna solución básica factible adyacente resulte mejor, es decir, hasta que no haya incremento de valor, si el problema es de máximo (hasta que no haya decremento, para el problema no tratado ahora, de mínimo) Nivel 5: Se interpretan los resultados de la última (iteración) tabla calculada, porque se identifican las características de una solución óptima. CRITERIOS DEL ALGORITMO SIMPLEX El algoritmo simplex emplea los siguientes criterios para asegurar que la búsqueda de la solución óptima del problema en estudio sea rápida, limitando el cálculo a soluciones básicas (puntos extremos) que sean factibles. Criterio de optimalidad • Se aplica en el simplex para determinar entre las variables no básicas, una que entre (VE) a la base, eligiendo en la columna que tenga el coeficiente más negativo en el reglón “Z” de la tabla, si el problema es maximizar. • Por lo contrario, si el problema es minimizar se elige para variable entrante (VE) a la base que cumpla con el coeficiente más positivo en dicho reglón “Z” Criterio de factibilidad • Se aplica en el simplex para determinar entre las variables básicas, una que salga de la base (VS), eligiéndola que cumpla en donde Xi es el valor de la variable básica en el reglón i; a ik es un coeficiente en el mismo renglón i ubicado en la columna k correspondiente a la variable entrante elegida. Esto es válido tanto para problemas de máximo como de mínimo. Elemento pivote • En el cruce correspondiente a columna y renglón elegidos con los dos criterios anteriores, se ubica un coeficiente denominado pivote (P) que se utiliza durante las iteraciones o etapas de cálculo del simplex. Aplicación método simplex PL forma canónica máximo • Nivel 1: se inicia en forma canónica, sumando una variable de holgura a cada una de las restricciones de desigualdad ≤, que contiene el modelo; convirtiéndose todas ellas en igualdades. Las holgura denotan como Xn+1, Xn+2,…,Xn+m. • Otra conveniente notación es H1, H2,…Hm; en donde 1, 2, …, m son restricciones tipo ≤. Así se pasa a: Ahora se tienen 3 ecuaciones con (n+m)= (2+3)=5 incógnitas, ampliando el sistema a 5 dimensiones para la solución del mismo, lo cual implica un número finito de soluciones. No se puede mostrar una analogía geométrica para el espacio ampliado de forma estándar en 5 dimensiones, pero sí se puede observar el espacio factible OACFE que se genera con sólo dos dimensiones X1 y X2 en gráfica; en ambos espacios existe un número infinito de puntos tanto interiores como en la frontera de la región factible, aunque sólo existe un número finito de puntos extremos (vértices) • En teoría, de acuerdo al segundo teorema ya mencionado, la solución óptima se debe buscar en uno de esos puntos extremos pero para la mayoría de los problemas con suficiente tamaño significaría una labor de cálculo excesiva y costosa e incluso imposible. • Para tener una idea de lo que esto significa, supóngase por ejemplo un problema cuyo modelo de PL contiene m=5 restricciones y n=4 incógnitas, aplicando el conocido binomio ya mencionado se tendría: (m+n)!/m!n! » (5+4)!/5!4!= 126 vértices • Los ejemplos dados en la clase de investigación de operaciones 1, son pequeños, pues lo común en el ámbito de empresa o gobierno, es manejar magnitudes de decenas o cientos, tanto en restricciones como en variables. • Pero el simplex salva esta circunstancia con eficiencia, tal como se expresa enseguida. • Nivel 2: una solución básica se obtiene estableciendo que de las (m+n) incógnitas en el sistema de ecuaciones en forma estándar, n variables tengan el valor cero llamándolas no básicas y resolviendo (si hay solución) para las restantes m variables que son básicas, componen la base o solución básica. • El sistema de restricciones de este ejemplo tiene 3 ecuaciones con 5 variables, se pueden expresar tres cualesquiera de estas en función de las otras dos que por ello se consideran independientes. Como cada variable de holgura H1, H2, H3, se presenta sólo en una de las 3 restricciones, conviene hacerla básicas. De este modo, para la aplicación del algoritmo simplex, se tiene la 1° solución básica factible siguiente La función objetivo Z sólo contiene a las variables de decisión X1, X2, con valor actual cero, por lo tanto Z=3(0)+5(0)=0, no satisface el objetivo de máximo. La comparación geométrica es valorar la línea recta Z en el origen O, como Zo=0. Esta evaluación en O, no puede ser el máximo valor porque aún no se emplean los recursos de las tres restricciones los cuales son asignados a las tres holguras. • Igualando a cero n variables, se reduce la búsqueda desde una infinidad hasta un número finito de vértices, pero tal número, aún puede ser grande. • Nivel 3: con la tabla se inicia el algoritmo simplex, muestra el arreglo matricial de los coeficiente de acuerdo a la forma estándar de este ejemplo, con excepción de la función objetivo que se arregla a su forma equivalente: Máximo Z-3X1-5X2=0, con el formato del sistema de ecuaciones lineales. • Anote el coeficiente cero para las ausentes holguras en el renglón Z, pero en cambio, el coeficiente 1 de cada una de las variables de holgura en cada restricción, forma la diagonal en la matriz unitaria I de base, como conjunto de vectores linealmente independientes que general la primera solución en el punto extremo (X1, X2, H1, H2, H3) =(0,0,4,12,18), vértice O de la analogía gráfica. • Nivel 4: a partir de la solución inicial del algoritmo simplex, se puede generar una nueva solución básica factible; se aplica primero el criterio de optimalidad a la solución básica factible actual, seleccionando entre las variables no básicas, una variable que entre a la base y por lo tanto cambie a básica. La selección de VE se hace con el criterio de conseguir la mayor ganancia unitaria de la función objetivo en un vértice. Se observa que un incremento unitario en X2, aumenta en 5 el valor de Z, mientras que un incremento unitario en X1, aumenta en 3 el valor de Z; si se desea el máximo conviene aumentar a X2, dejando a X1 en cero • En el simplex, para este ejemplo con el objetivo de maximizar, se aplica la optimalidad seleccionando la variable no básica con el coeficiente más negativo en el renglón Z de la tabla, señalando la columna elegida con • La solución básica del simplex, siempre debe tener m (m=3 en el ejemplo), variables básicas, entonces la VE del criterio de optimalidad debe reemplazar a una de las variables básicas que al salir de la base se convierte en no básica. Así en segundo lugar, se aplica el criterio de factibilidad, para determinar entre las variables básicas una que salga de la base • CONDICION DE OPTIMIDAD: la variable que entra en el proceso de maximización (minimización) es la variable no básica con el coeficiente más negativo (positivo) en la función Z. Una coincidencia se anual en forma arbitraria. Cuando todos los coeficientes no básicos de la ecuación z son no negativos (no positivos), se llega al óptimo. para los problemas de maximización y minimización, la variable que sale es la variable básica que tiene la razón más pequeña (con denominador positivo). Una coincidencia se anula de forma arbitraria. • CONDICIÓN DE FACTIBILIDAD: • En la columna izquierda están las variables en la base y en la columna derecha se tiene sus valores, los cuales se dividen entre el coeficiente que sea positivo, en el mismo renglón i de la columna k de la VE; es: Mínimo (12/2=6; 18/2=9)=6; lo cual se cumple para la variable básica H2, que debe señalarse como • En el cruce de la columna que corresponde a VE y en el renglón de la VS , se localiza un coeficiente identificado como pivote (P) que se utiliza para iniciar el procedimiento de solución de ecuaciones lineales conocido como Gauss-Jordan. • Para este ejemplo el pivote es 2, en el renglón saliente y columna entrante, procediendo al cálculo de la siguiente tabla simplex que es la nueva solución básica factible. • La segunda solución básica factible se inicia con la nueva base formada con variables básicas: H1 y H3, que se conservan, pero sale H2 y se reemplaza con la variable X2 como básica en el nuevo punto extremo a evaluar. • La tabla simplex se empieza con el renglón entrante correspondiente a la variable X2; se calcula dividiendo los coeficientes del renglón saliente entre el coeficiente pivote P de la tabla solución anterior, RE=RS/P, para los resultados mostrados en la fila X2. • Al convertir en básica la variable X2, se deben hacer las operaciones fila necesarias para conseguir en su columna, el vector unitario, característico de una variable básica que forma parte de la matriz I. • Tipo 1: (ecuación pivote) Nueva ecuación pivote= ecuación pivote anterior/elemento pivote Tipo 2 (todas las otras ecuaciones, entre ellas Z) Nueva ecuación = ecuación anterior*(-1)*(su coeficiente de la columna de entrada) + (nueva ecuación pivote) • Por lo tanto se escriben, el coeficiente 1 en la posición del pivote y el coeficiente 0 en el resto de la columna. En las fórmulas a la izquierda, se usa la fila RE de la nueva tabla y las filas necesarias de la tabla anterior, la fila H, se copia igual porque ya existe el cero en la columna X2 • Variables de decisión X1=2, X2=6, variable de holgura H1=2. Las variables no presentes en la base, deben valer cero: holguras H2=0,H3=0 • Las restricciones (2) y (3), se cumplen con valor cero para las holguras H2 y H3, significa que en esos recursos no existe sobrante. En cambio, el recurso (1) que vale 4, tiene sobrante que representa la variable básica de holgura H1=2