I. RESUMEN Existen muchos problemas tanto en la ciencia, la tecnología así como la economía, donde se usa la programación matemática u optimización la cual busca hallar una solución que permita formular y resolver diversos problemas orientados a la toma de decisiones. En problemas de optimización es indispensable el conocimiento de determinados métodos que permitan la solución de dichos problemas. El “Método Simplex” es un método algebraico sistemático que examina las esquinas, llamadas vértices o puntos extremos de un conjunto restringido de programación lineal en busca de una solución óptima. El “Método Simplex” muestra la eficacia de este método en la formulación y solución de diversos problemas de optimización y demás. Este método permite ver las aplicaciones a las ramas de las ciencias é ingeniería. 3 II. INTRODUCCCIÓN El método simplex fue creado por George B. Dantzig en los últimos años de la década de los cuarenta (1947), fue hecho fundamentalmente en la recién desarrollada área investigación de operaciones, desde entonces Dantzig y otros han continuado su desarrollo. El desarrollo de la programación lineal se sitúa entre los avances científicos más importantes de la mitad del siglo XX, y debemos estar de acuerdo con esta afirmación si tenemos en cuenta que su impacto desde 1950 ha sido extraordinario. La resolución de problemas de programación lineal de grandes dimensiones lo permite muy eficazmente “El Método Simplex”, siendo este un algoritmo el cual sirve para determinar con eficiencia cuando una solución existe. El método simplex es un procedimiento operativo, el cual a medida que se avanza va mejorando, hasta cuando ya no sea posible mejorar más dicha solución. 2.1. PLANTEAMIENTO DEL PROBLEMA DE INVESTIGACIÓN Existen muchos problemas tanto de la ciencia, la tecnología así como la economía donde se trata de asignar o compartir determinados recursos sólo disponibles en cantidades limitadas, donde usamos la programación matemática u optimización la cual busca hallar una solución que permita formular y resolver diversos problemas orientados a la toma de decisiones. 4 En problemas de optimización es indispensable el conocimiento de determinados métodos que permitan la solución de dichos problemas; esto nos lleva, en forma natural al planteamiento del siguiente problema: ¿Es posible hallar un método que permita la resolución de problemas de optimización de manera eficaz? 2.2. OBJETIVOS Y ALCANCES DE LA INVESTIGACIÓN A. Objetivo general: Desarrollar el Método Simplex y algunas de sus aplicaciones. B. Objetivos específicos: Mostrar los conceptos básicos de Programación lineal. Desarrollar la Programación Lineal que es la técnica de programación matemática que busca encontrar aquella solución o alternativa de entre las muchas posibles de un problema que mejor identifica u en determinado criterio lineal atendiendo a diversas condiciones también lineales. Elaborar un marco teórico del Método Simplex. Mostrar algunas aplicaciones del Método Simplex. 2.3. IMPORTANCIA Y JUSTIFICACIÓN DE LA INVESTIGACIÓN El avance de la ciencia y la tecnología hacen indispensable el conocimiento de herramientas que permitan dar solución a problemas presentados, para lo cual la optimización sea un camino de solución. 5 El conocimiento del Método Simplex es importante porque nos permite dar solución a problemas de programación lineal que es una de las metodologías más importantes para formular y resolver diversos problemas orientados a la toma de decisiones en las diferentes áreas de la Ingeniería, la Economía además j uega un papel fundamental no solo en optimización y economía, sino también en planificación estratégica, análisis de algoritmos, problemas combinatorios, criptografía, y en muchos otros campos y en particular, en la Investigación Operativa y que surge como la forma más natural de abordar dichos problemas. La investigación queda justificada por la importancia y el numero de sus aplicaciones de este método y que nosotros desarrollaremos con la idea de ser utilizada con facilidad. 6 III. MARCO TEORICO 3.1. NOCIONES PRELIMINARES En este trabajo de investigación incluye la presentación de modelos y algoritmos usados para resolver estos modelos, siendo uno de objetivos resolver los problemas planteados (modelos) del mundo real, buscando optimizar los resultados, que no es otra cosa que la respuesta óptima de un problema matemático propuesto por el modelo. Un modelo es una representación abstracta, un sustituto de la realidad, siendo estos importantes porque captan la esencia de muchos problemas importantes, pueden manejar un gran número de variables e interacciones, además nos permiten usar el poder de las matemáticas mano a mano con la capacidad y velocidad de las computadoras. Cuando un modelo tiene limitantes, se conoce como modelo de optimización restringida, que significa alcanzar los mejores resultados (matemáticos) posibles considerando las restricciones. La forma simbólica general de un modelo de optimización restringida, es: Maximizar (o minimizar): f ( x 1 , x 2 , ..., x n ) Sujeta a las restricciones: 7 g 1 ( x 1 , x 2 , ..., x n ) b1 g 2 ( x 1 , x 2 , ..., x n ) b 2 g m ( x 1 , x 2 , ..., x n ) b m Siendo: -) La función f, la función objetivo, -) La funciones g1, g2,…, gm las funciones restricción, -) Las variables x1 , x2 , x3 ,..., xn se llaman variables de decisión, los cuales deben tener solo valores no negativos (positivos o nulos), llamadas condiciones de no negatividad. -) A las constantes b1 , b2 , b3 ,..., bn se denominan parámetros (valor numérico determinado), y -) El conjunto de las relaciones g i ( x 1 , x 2 , ..., x n ) b i , son todas las m restricciones, que limitan indirectamente los valores que pueden ser asignados a las variables de decisión. El modelo reconocerá solamente las decisiones que satisfagan todas las restricciones, incluyendo las condiciones de no negatividad, tales decisiones se llaman decisiones factibles (permisible). 8 Cuando las restricciones de este modelo son lineales, se tiene el importante caso del “modelo de programación lineal”. Todos los modelos de programación lineal tienen en común dos importantes rasgos: uno es la existencia de las restricciones segundo una función objetivo que se va a maximizar o minimizar. 9 y el 3.2. PROGRAMACION LINEAL La Programación Lineal es la técnica de programación matemática, u optimización que busca encontrar aquella solución o alternativa de entre las muchas posibles de un problema que mejor identifica un determinado criterio lineal atendiendo a diversas condiciones también lineales. La Programación Lineal surge como la forma más natural de abordar muchos problemas de la ciencia, la tecnología o la economía donde se trata de asignar o compartir determinados recursos sólo disponibles en cantidades limitadas. La formidable extensión de la programación lineal y el papel tan importante que juega hoy en todos aquellos entornos donde se utiliza para la asignación de recursos de cualquier tipo se debe fundamentalmente a dos hechos: La aparición en 1947 del denominado método simplex, que permite la resolución de problemas de programación lineal de grandes dimensiones muy eficazmente, y al enorme desarrollo de los ordenadores. La programación lineal juega un papel fundamental no solo en optimización y economía, sino también en planificación estratégica, análisis de algoritmos, problemas combinatorios, criptografía, y en muchos otros campos. 10 La programación lineal se usa extensamente en problemas de asignación de recursos. A fin de ilustrar esto, a continuación daremos el ejemplo de un problema simple de una ocupación cotidiana y mostraremos como formular el modelo matemático para ello. Un fabricante de cierto producto químico tiene dos plantas en las que elabora. La planta X puede entregar a lo más 30 toneladas por semana y la planta Y rinde a lo más 40 toneladas en el mismo lapso. El fabricante quiere producir un total de al menos 50 toneladas por semana. Se mide la cantidad de partículas suspendidas determinadas semanalmente en la atmósfera de una población cercana y se determina que es de 20 libras por cada tonelada del producto fabricado por la planta X y 30 libras por cada tonelada elaborada en la planta Y. ¿Cuántas toneladas deben fabricarse semanalmente en cada planta para minimizar la cantidad total de partículas suspendidas en la atmósfera? Solución Sean x y y las cantidades de toneladas del producto fabricado en las plantas X y Y respectivamente, cada semana. Luego la cantidad total producida por semana es: x y . Como se quiere producir al menos 50 toneladas por semana, se debe tener: x y 50 . Como la planta X puede producir a lo más 30 toneladas, se tiene: x 30 De manera similar la planta Y, puede fabricar a lo más 40 toneladas por semana, se debe tener: y 40 Y como x é y no pueden ser negativos, entonces: x 0 11 y0 La cantidad total de partículas suspendidas (en libras) en la atmósfera, es: z 20 x 30 y , lo cual se quiere minimizar. Así, la formulación matemática del problema es: Determinar los valores de x y y que minimicen: z 20 x 30 y Sujeto a las siguientes restricciones sobre x y y : x y 50 x 30 y 40 x0 y0 12 3.2.1. CONCEPTOS Y DEFINICIONES La programación lineal trata de la búsqueda de la solución del siguiente problema de criterio lineal: Maximizar: b1 x1 b2 x2 b3 x3 ... bn xn Sujeto a a11 x1 a12 x2 ... a1n xn c1 a 21 x1 a 2 2 x2 ... a 2 n x n c2 am1 x1 am 2 x2 ... amn xn cm x1 , x2 , x3 ,..., xn 0 Donde: -) A la función b1 x1 b2 x2 b3 x3 ... bn xn se la denomina función objetivo (la cual busca usualmente maximizar o minimizar de manera óptima un determinado producto); -) A las funciones: a i 1 x1 a i 2 x 2 ... a i n x n c i ; i 1, 2, ....., n , se les llama restricciones o condiciones. -) Las variables del problema x1 , x2 , x3 ,..., xn se denominan variables de decisión y 13 -) A las constantes b1 , b2 , b3 ,..., bn se denominan coeficientes de coste. -) La matriz de coeficientes de las condiciones del problema A, es: a11 ... a1n A am1 ... amn -) AC c1 , c2 , c3 ,..., cn se le denomina vector término de la t derecha. -) Un vector x x1 , x2 , x3 ,..., xn que satisface todas las t condiciones se denomina factible. Y el conjunto F de todos los vectores factibles constituye la región factible. Con notación vectorial, el problema de programación lineal se plantea de la siguiente manera: Minimice: bt , x Sujeto a: Ax c, x0 La región factible es F x R n : Ax c, x 0 . 14 3.2.2. MODELO STANDARD DE PROGRAMACIÓN LINEAL Optimizar Z C 1 . X 1 C 1 . X 2 ... C n X n . Función objetivo. Sujeta a a11 X 1 a11 X 2 ... a1 n X n ) b1 a21 X 1 a21 X 2 ... a2 n X n ) b1 Restricciones: am 1 X 1 am 1 X 2 ... amn X n ) bm Debiendo ser: X 1 0, X 2 0,..., X n 0 Donde: X j : variables de decisión, j = 1,2.., n. n : número de variables. m : número de restricciones. aij , bi , c j constantes, i 1,2.., m Pasos para la construcción del modelo: 1) Definir las variables de decisión. 2) Definir el objetivo o meta en términos de las variables de decisión. 3) Definir las restricciones. 4) Restringir todas las variables para que sean no negativas. 15 3.2.3. FORMA ESTÁNDAR DE PROBLEMAS DE PROGRAMACIÓN LINEAL (SLP).- Esta forma está dado como: Minimice b ,x Sujeto a: Ax c, x 0 Donde x es un vector de Rn, A es una matiz de orden nxn, b 0 es un vector en Rn, y c en un vector en Rm. 3.2.4. FORMA INCORPORADA DE PROBLEMAS DE PROGRAMACIÓN LINEAL (ILP). - Los problemas de programación Lineal (SLP) pueden ser escritos de la siguiente forma: Minimice b , x Sujeto a: A c I x 0 , Donde: -) I es la matriz identidad de orden nxn, -) 0 es el vector cero en Rn. Si nosotros denotamos la matriz del lado izquierdo por A y el vector del lado derecho por c , eliminando las tildes, podemos establecer el Problema de Programación Lineal (ILP) como: 16 Minimice b , x Sujeto a: Ax c, Donde: -) A es una matriz de orden nxn, -) b Rn y c Rm , aquí hemos incorporado la condición x 0 en la matriz A y el vector c. TEOREMA .- Sea ˆ una solución de la forma incorporada de problemas de programación lineal (ILP). Entonces existe un 0 en Rm tal que ( ˆ , ) satisface lo siguiente: (i) Aˆ c, t (ii) A b , (iii) 0 (iv) Aˆ c, 0 (v) b, ˆ c, n Si existe un ˆ R y un en Rm tal que satisface las condiciones de la (i) al (iv), entonces ˆ es una solución del ILP. Demostración (i) Es obvia por la definición de conjunto factible y de que ˆ es solución del ILP. 17 (ii) y (iii) se prueba que ˆ no es un punto interior del conjunto factible X. Sea ai que denota la i-ésima fila de la matriz A. Luego la matriz A se subdivide en dos sub matrices AE, AI donde, E i : ai , ˆ ci , I i : ai , ˆ ci , Como ˆ no es un punto interior de X el conjunto E . AE denota la submatriz de A de las filas ai con i E , y AI la submatriz de A consistiendo de las filas ai con i I . Afirmamos que el sistema AE x 0, b , x 0 ……………. * No tiene solución en x R . n Intuitivamente, esto es claro, si xo fuera solución también x 0 es solución con 0 , luego tendríamos AE ( ˆ x0 ) cE para 0 suficientemente pequeño. Por continuidad deberíamos tener que AI ( ˆ x0 ) cI luego, si el sistema tiene solución deberíamos ser capaces de mover el conjunto factible y al mismo tiempo incrementar b, ˆ o disminuir b, ˆ . Esto contradice que ˆ es el óptimo. 18 Como el sistema * no tiene solución se sigue (Lema de Farkas) que y R mE donde mE es la dimensión del subespacio existe un vector generado por las filas de AE, tal que AEt y b, y0 Por lo tanto, si mI es la dimensión del espacio generado por las filas de AI entonces: AEt y AIt O b, Donde O es el vector cero en RmI. Si tomamos y,0 entonces R y At ( AEt , AIt ) b, 0 n y satisface 0 ……….. * 1 Así tenemos probado (ii) y (iii). (iv) De * 1 se observa que las componentes de correspondientes a los índices en I son cero. Por la definición de E, A E ˆ c E 0 , entonces: Aˆ c, ( AE ˆ cE , AI ˆ cI ), y , 0 0 Esto demuestra (iv). (vi) Usando (iv) y (ii) se tiene (v), esto es: c, Aˆ , ˆ , At ˆ , b 19 Observaciones: 1) Una prueba alternativa de (iv) y (v) es establecer (v) primero y luego usarlo para establecer (iv). Así. b, ˆ At , ˆ , Aˆ A y , 0 , E ˆ AI y , AE ˆ y , cE ( y , 0), ( cE , cI ) , c Esto es (v). Para establecer (iv), hacemos: 0 b, ˆ , c At , ˆ c, , Aˆ c, Aˆ c, 2) Se sigue de (i) y (iii) que (iv) se cumple si y solo si para cada i = 1,..,m ( ai , ˆ ci )i 0 …………………..(iv)’ Es decir, (iv)’ es equivalente a (iv). La condición (iv)’ es algunas veces llamado condición de holgura complementaria. Esto establece que si existe holgura en la en la i-ésima restricción en ˆ , es decir, si ai , ˆ ci entonces i 0 . 20 3) Sea el problema de Programación lineal reformulado con X0 un conjunto arbitrario de Rn. Es claro de la prueba que si ˆ es una solución de este problema, entonces las condiciones necesarias se cumplen. Recíprocamente, si existe un punto ˆ en X0 tal que las condiciones necesarias se cumplen, entonces ˆ es factible y el mínimo es alcanzado en ˆ . Nota: La restricción dada por la inecuación Ax c, puede ser convertida en una ecuación introduciendo un vector no negativo cuyas componentes son llamadas variables de holgura y escribimos. Ax c, 0 Así, el problema de Programación lineal formulado en puede ser escrito como: Minimice: ( b , 0), ( x, ) Sujeto a x ( A, I ) c, 0 x 0, Es decir, el problema ILP puede ser escrito como un problema de programación lineal canónico (CLP). Minimice b , x Sujeto a 21 Ax c, x0 El método Simplex es aplicado a problemas en forma canónica. Recíprocamente, el problema CLP puede ser escrito como un problema ILP escribiendo la restricción Ax = c como dos desigualdades restricción, incorporando la restricción Ax c, y Ax c, luego, x 0 en la matriz se tiene: Minimice b , x Sujeto a: A c A x c I 0 COROLARIO 1.- Sea ˆ una solución del problema de programación lineal estándar (SLP). Entonces existe un vector 0 en Rm tal que ( ˆ , ) satisface lo siguiente: (i) Aˆ c, ˆ 0; m (ii) a i 1 i i bj , j 1,..., n ; cumpliéndose la igualdad si ˆ j 0 (iii) 0 (iv) Aˆ c, 0 (v) b, ˆ c, 22 Si existe un ˆ R y un en Rm tal que satisface (i) al (v), entonces n ˆ es una solución del SLP. COROLARIO 2.- Sea ˆ una solución del problema de programación lineal canónico (CLP). Entonces existe un vector 0 en Rm tal que ( ˆ , ) satisface lo siguiente: (i) Aˆ c, ˆ 0; m (ii) a i 1 i i bj , j 1,..., n cumpliéndose la igualdad si ˆ j 0 (iii) Aˆ c, 0 (iv) b, ˆ c, m Si existe un ˆ R y un R tal que satisface (i) al (iv), entonces n ˆ es una solución del CLP. 23 3.3. EL METODO SIMPLEX Y ALGUNAS APLICACIONES El método simplex es un algoritmo para resolver problemas de Programación Lineal. Es un procedimiento iterativo que permite ir mejorando la solución a cada paso. Esto concluye cuando no es posible seguir mejorando dicha solución. Este método fue desarrollado por George Bernard Dantzig (8 de noviembre de 1914 – 13 de mayo de 2005) fue un matemático reconocido y es considerado como el "padre de la programación lineal". Recibió muchos honores, tales como la Medalla Nacional a la Ciencia en 1975 y el premio de Teoría John von Neumann en1974. Fue miembro de la Academia Nacional de Ciencias, la Academia Nacional de Ingeniería y la Academia Americana de Artes y Ciencias. Obtuvo su grado de bachiller en matemáticas y físicas en la Universidad de Maryland en 1936, su grado de magister en matemáticas en la Universidad de Míchigan, y su doctorado en Berkeley en 1946. Recibió además un doctorado honorario de la universidad de Maryland en 1976. El Método Simplex, permite la resolución de problemas de programación lineal de grandes dimensiones muy eficazmente, y al enorme desarrollo de los ordenadores. El método simplex consiste en buscar sucesivamente otro vértice que mejore el anterior, partiendo del valor de la función objetivo en un vértice cualquiera. Como el número de vértices y de aristas es finito, siempre se podrá encontrar la solución. 24 El método simplex se basa en la propiedad que dice si la función objetivo f, toma su valor máximo en el vértice A, entonces hay una arista que parte de A, a lo largo de la cual f aumenta. Este método solo trabaja para restricciones que tengan un tipo de desigualdad “ ” y coeficientes independientes mayores o iguales a 0, (se estandariza para el algoritmo). Si después de este proceso, aparezcan (o no varíen) restricciones del tipo “ ” o “=” habrá que emplear otros métodos, siendo el método de más común el método de Dos Fases. Mostramos a continuación algunos ejemplos en R2. Ejemplo1: Minimice f ( x ) x 1 2 x 2 con las restricciones x1 x 2 1 x1 x 2 0 x1 2 x 2 4 x1 0 , x2 0 El conjunto factible está indicado en la siguiente figura, las curvas de nivel f(x) = 0, f(x) = -1, están indicadas por las líneas punteadas. Las flechas indican las direcciones de los vectores gradientes de f. Desde que el vector gradiente indica la dirección de máximo crecimiento de f. vemos de la figura que f alcanza su mínimo en el punto extremo ( 4 4 , ) del conjunto factible. 3 3 25 2 f ( x) 1 g( x) h ( x) 0 1 2 3 4 5 v ( x) u ( x) 1 2 x Figura Ejemplo 2: Este ejemplo difiere del ejemplo anterior en que consideramos la función f ( x ) x 1 x 2 , las curvas de nivel son paralelas a la recta x 1 x 2 1 un segmento que es parte de la frontera del conjunto factible. Como el gradiente de f es (1,1) y en este es la dirección de máximo crecimiento de f, se sigue que f alcanza su mínimo en todos los puntos frontera del conjunto factible que están en la recta x 1 x 2 1 . En particular el mínimo se alcanza en los puntos extremos ( ½ , ½) y (1,0). 26 Ejemplo 3: Minimice f ( x ) x 1 x 2 Sujeto a x1 x 2 0 x1 2 x 2 2 x1 0 , x2 0 En este caso el conjunto factible no es acotado. La curva de nivel f ( x ) 6 es x1 x2 6 , como el gradiente de f es (-1,-1). Se sigue del gráfico que este problema no tiene solución. Un conjunto factible no acotado no implica que el problema de programación lineal no tenga solución. Si modificamos este ejemplo tomando f ( x ) x 1 x 2 el problema tiene una solución en (2,2). Según los ejemplos considerados un problema de programación lineal tiene o no solución y están en un punto extremo del conjunto factible. Hay de hecho una tercera posibilidad, que el conjunto factible sea vacio. Se demuestra que en un problema de programación lineal estas son solamente las posibilidades. 27 3.3.1. EL MÉTODO SIMPLEX ES APLICADO A PROBLEMAS EN FORMA CANÓNICA Para colocar el problema del ejemplo 1 del método simplex en forma canónica introducimos variables de holgura x 3 , x 4 , x 5 y escribimos el problema como: Minimice f ( x ) x 1 2 x 2 Sujeto a: x1 x2 x3 1 x1 x2 x4 0 x1 2 x2 x5 4 Desde que las variables x3 , x4 , x5 no aparecen en la fórmula para f, el problema con conjunto factible definido tiene su mínimo en x1 4 4 5 , x 2 , x 3 , x 4 0, x 5 0 3 3 3 28 3.3.2. PUNTOS EXTREMOS DE CONJUNTOS FACTIBLES Lo que veremos a continuación es que si un problema de programación lineal tiene solución, entonces existe un punto extremo en que este se alcanza. Se puede demostrar esto para problemas en forma canónica sin asumir que el conjunto factible es compacto, lo cual también se cumple para problemas en forma estándar. También se puede dar una caracterización analítica de los puntos extremos del conjunto factible para problemas CLP. El significado de estos resultados es que para una solución de un problema de programación lineal podemos confinar nuestros resultados a los puntos extremos del conjunto factible, puntos para los que tenemos una caracterización analítica. El método Simplex es un algoritmo para determinar eficientemente cuando una solución existe, y si es así, para hallar un punto extremo que resuelve el problema. Consideremos el problema de programación lineal en forma canónica Maximice: b , x Sujeto a Ax c, x0 Como es usual en programación lineal se remplaza el objetivo de minimizar b , x por el objetivo equivalente de maximizar b ,x . Asumiremos que x, b están en Rn, i) mn ii) Ran(A) = m c Rm , 29 A es de orden mxn y que Teorema - Un punto factible x0 es un punto extremo del conjunto factible si y solo si las columnas Aj de la matriz A que corresponden a componentes positivas de xo son linealmente independientes. Corolario 1.- Un punto extremo del conjunto factible tiene a lo más m componentes positivas. Corolario 2.- El número de puntos del conjunto factible es menor o igual que m n! n m !(n m)! Teorema.- Sea el problema de programación lineal en forma canónica con una solución x0, entonces existe un punto extremo z del conjunto factible que es también una solución. Ejemplo: Si aplicamos para un sistema moderado de 6 restricciones y 30 variables, hay como 30 30! 6 6!24! 593, 775 puntos extremos. Así el simple plan de evaluar la función objetivo en todos los posibles puntos extremos y luego seleccionar el punto en el que el valor máximo es alcanzado no es práctico. 30 El método Simplex es un algoritmo para hallar una solución partiendo de un punto extremo del conjunto factible a otro en tal forma que la función objetivo sea no decreciente. Definiciones Consideremos el sistema Ax c, …………………….. (1) Que define el conjunto factible para el CLP. A es una matriz de orden mxn y de rango m. B de orden mxm denota la submatriz obtenida por tomar m columnas linealmente independientes de A y sea N la submatriz de A consistiendo de las n -m columnas restantes. Podemos escribir un vector x en Rn como x ( x B , x N ), Donde xB consiste de esas componentes de x correspondiendo a las columnas en B y xN consiste de aquellas componentes de x correspondiendo a las columnas en N. Definición.- Las columnas de B se llaman una base, las componentes de xB son llamadas variables básicas. Las componentes de llamadas variables no básicas o variables libres. Podemos escribir el sistema (1) como xB c . ………………………… (2) x N B, N 31 xN son Cualquier vector de la forma ( B , x N ), donde x N es arbitrario y B B 1c B 1 Nx N Será una solución de (2). Existe una única solución de (2) con xN 0 N ( B , 0 N ), B B 1c ……………….. (3) Definición .a) Una solución de (1) de la forma (3) es llamada una solución básica. b) Si B 0B , entonces es factible y es llamada una solución factible básica. c) Si algunas de las componentes de B son cero, entonces es llamada una solución básica degenerada. Al aplicar el método Simplex, reformulamos el problema establecido en (1) introduciendo una variable escalar z y escribiendo el problema como Maximice z Sujeto a Ax c, b , x z 0 …………(4) x0 32 3.3.3. FASES DEL MÉTODO SIMPLEX El método Simplex consiste de dos fases. En la fase I el método determina una solución básica o determina que el conjunto factible es vacío En la fase II el método comienza con una solución factible básica y determina que la solución óptima no existe o determina una solución óptima. A continuación veremos las fases el Método Simplex: 3.3.3.1. Fase I del método Simplex.- Sea el programa en forma SLP Maximice b , x Sujeto a: Ax c , x0 Supongamos que el vector c es no negativo. Colocamos el problema en su forma canónica CLP añadiendo variables de holgura x S ( x n 1 , ..., x n m ), xni 0, Escribimos el problema como: Maximice b , x 33 i 1, ..., m Sujeto a: x c, x S A, I x 0, xS 0 Como c 0 , el vector ( x , xS ) (0n , c ) , donde 0n es el vector n cero en R , es una solución factible básica para el problema CLP. Pasamos a la fase II con solución factible básica inicial ( , S ) (0n , c) . Si algunas de las componentes de c son negativas, el vector (0 n , c ) es una solución básica del sistema CLP, pero no es factible. Introducimos un problema auxiliar (PA) Minimice x0 ; sujeto a x ( A, I , e) xS c, x 0, xs 0, x0 0 ………………… (3) x 0 Donde e (1,1,...,1) , I es la matriz identidad de orden mxm. En términos de componentes el sistema PA es: 34 n a ij j 1 x j xn i x0 ci , i 1,..., m. x j 0, j 0,1,..., n m Un vector , s es factible para el problema CLP si y solo si , s , 0 es factible para el problema PA. Por lo tanto, , s es factible para el problema CLP si y solo si , s , 0 es óptimo para el problema auxiliar (PA). Si escribimos la función objetivo del problema auxiliar como: “maximice w x0 ” entonces el problema auxiliar viene a ser un problema CLP al que podemos aplicar la fase II del método simplex. Ejemplo &: El problema auxiliar es de la forma: Maximice w x0 sujeto a: x1 x2 x3 x0 1 x1 x2 x 4 x0 0 x1 2 x2 x5 x0 4 xi 0, i 0,1,..., 5 35 El vector , , , , (0,0,0,1,0,4) es una solución 0 1 2 3 4, 5 básica pero no es factible. La única entrada negativa en el lado derecho es -1 y ocurre en la primera ecuación, por lo tanto, en la matriz aumentada de los coeficientes pivoteamos sobre x0 en la fila 1, resultando: x1 1 0 2 x2 x3 x4 x5 x0 1 2 1 1 0 1 0 0 1 0 3 1 0 1 0 c 1 ............(i ) 1 5 Así, 0 , 1 , 2 , 3 , 4 , 5 (1, 0, 0, 0,1,5) es una solución factible básica. De (i) tenemos: x1 x2 x3 x0 1 w x0 1 x1 x2 x3 ......(ii ) Podemos comenzar la fase II del problema de minimizar (ii) sujeto a las restricciones dados por (i) Minimizar w 1 x1 x2 x3 Sujeto a: 2 x2 x3 x4 1 2 x1 3 x2 x3 x5 5 36 Retornemos a la situación general. Obtenemos un sistema equivalente a (3) y teniendo una solución factible básica. Sea cp la componente más negativa de c. Así. C p min ci : i 1,..., m . Si existe más que una de tales componentes, escogemos uno con el índice más pequeño. Seguidamente, pivoteamos sobre x0 en la fila p del sistema (3) el resultado será un sistema equivalente x A ', e1 ,..., e p1 , e, e p1 ,..., em , e p xs c '. ……….. (7) x 0 Donde e (1,...,1) y c ' p cp 0, c 'i ci cp 0, i 1,..., p 1, p 1,..., m El sistema (7) en componentes es de la forma n a ' j 1 ij x j xn p xn i c ' i , n a x j 1 pj j xn p x0 c p 37 . i p Así una solución factible básica de (7) es 0 c p , n i ci, i 1,..., p 1, p 1,..., m , i 0 , i = 1,…,n, n + p. ……………………………….. (8) Y n w x0 c p xn p a pj x j ..................(9) j 1 Las variables básicas son: xn 1 ,..., xn p 1 , x0 , xn p 1 ,..., xn m ..................(10) Hemos transformado el problema auxiliar (3) al siguiente problema. Maximice w como en (9) sujeto a (8) y xi 0, i 0,1,..., n m . Para este problema tenemos determinada una solución factible básica dada por (8) con variables básicas dadas por (10). Podemos ahora aplicar la fase II al problema en esta forma. Si incorporamos una rutina anti cíclica en nuestra implementación de la fase II, en un número finito de pasos determinaremos que el problema auxiliar no tiene solución o determina una solución óptima al problema auxiliar. 38 Si el problema no tiene solución, entonces el problema de programación lineal original no tiene solución factible. Si el problema auxiliar tiene una solución. La variable es inicialmente básica. Aplicando la fase II al problema auxiliar, note que nuestra regla para escoger la variable saliente es tal que si en alguna iteración x0 es el candidato para salir de la base, entonces x0 es la variable saliente. Si en alguna iteración I k la variable x0 sale de la base, entonces en la iteración I k 1 la variable x0 tendrá el valor cero. La solución ( , s , 0 ) de la ecuación restricción en también una solución de (3). Luego, si ( , s ) 0 0 es óptimo para la relación (1). Así, si en la iteración Ik , I k 1 será entonces w = 0 y 0 deja la base a la siguiente iteración tendremos una solución del problema auxiliar y entonces una solución básica factible par al relación (2). Podemos entonces empezar la fase II con esta solución factible básica. Lema .- Si una rutina anti cíclica es incluida, entonces la fase I del método simplex determina que no existe solución factible o determina una solución factible básica. 39 Teorema. El método simplex incorporando una rutina anti cíclica aplicado a un problema de programación lineal determina una de las siguientes afirmaciones en un número finito de iteraciones: (i) No existe soluciones factibles (ii) El problema no tiene solución óptima. (iii) Una solución óptima. A continuación veremos la fase II del Método Simplex: 3.3.3.2. Fase II del método Simplex.- Nuestro propósito es explicar lo esencial del método simplex. Supongamos que el problema está formulado del siguiente modo Maximice z Sujeto a Ax c b, x z 0 x0 Comenzamos nuestra discusión de la fase II asumiendo que por medio de la fase I, o de otro modo, nosotros hemos obtenido una solución básica factible cero en R nm . ( B , 0 N ) , donde 0N es el vector Denotamos el valor de la función objetivo en p o r . Así bB , B . Llamamos a ( B , 0 N ) la solución factible básica actual, la matriz B asociada con B 40 la base actual y el valor actual de la función objetivo por abuso de notación también llamamos a las componentes de B la base actual. El método simplex consiste de una sucesión de iteraciones. En una iteración dada determinamos que la solución factible básica actual es óptima o que no existe solución óptima o determinamos una nueva solución factible básica que hace que no disminuya el valor de la función objetivo. Cada iteración consiste de cuatro pasos. Ilustraremos el proceso usando el ejemplo &. Paso 1. Expresar z y las variables básicas xB en términos de las variables no básicas xN . El problema formulado puede escribirse como B t bB N bNt x 0m B x 1 N Z c 0 ...............(1) m Donde 0m es el vector cero en R . Si multiplicamos la matriz aumentada correspondiente a las primeras m ecuaciones por B 1 por la izquierda tenemos 41 Im t bB Donde B 1 N bNt Im xB B y xB 0 m B 1 c xN 1 0 …………….. (2) Z es la matriz identidad de orden mxm, Haciendo x N 0 N se tiene B B 1c........................(3) De (2) y (3) se tiene: xB B B 1 Nx N ........................(4) De (2) y (4) vemos que z b , B b N b Bt B 1 N , x N Haciendo xN 0 N se tiene bB , B ....................(5) Y así: z bN bBt B 1 N , x N .................(6) Ecuaciones (4) y (6) expresan x B y z en términos de xN 42 Sea d N bN bBt B 1 N ( d jm 1 ,..., d jn )................(7) Donde jm+1,…,jn son los índices de las componentes de x que constituyen xN . Entonces podemos escribir (6) como z d N , xN n p m 1 d ip xip ................(8) Observación: En virtud de (3) el lado derecho de (2) puede ser escrito como ( , 0)t . 1 La dificultad en ecuación (4) y (6) es el cálculo de B . Presentamos ahora un segundo, aparentemente diferente, método de obtener xB y z en términos de xN . El método del Tableau: es un método que sistemáticamente registra la secuencia de pasos y cálculos que se describen. Comenzamos con la matriz aumentada de (1), por una secuencia de operaciones elementales aplicados a las primeras m filas de (1), podemos transformar esta matriz a una matriz equivalente: 43 Im t bB c ' ....................(9) 1 0 D 0m bNt Cada una de esas operaciones pueden ser efectuadas por una premultiplicación por una matriz elemental Ei . Desde que la secuencia de operaciones transforman B a I. El producto de matrices elementales asociadas con esa transformación es igual 1 a B , Entonces: 1 D B N c ' B y 1 c y tenemos como antes que (1) es equivalente a: Im t bB Donde B 1 N bNt 0m c ' ........................(10) 1 0 c ' B 1 c . De (10) se obtiene (3) y (4). Ahora supongamos que las columnas de B son las columnas j1 ,..., jm de A. si sucesivamente multiplicamos la fila 1 de (10) b j1 y sumamos el resultado a la fila anterior, multiplicar la por fila 2 de (10) por b j 2 y añadimos el resultado a la fila anterior, así, entonces transformamos (10) en 44 Im 0B B 1 N bNt bNt B 1 N 0m c' .....................(11) 1 bB , c ' De esta matriz se tiene: z bB , B 1c bNt bBt B 1 N , x N Observación: 1 De (11) y c ' B c de nuevo obtenemos (3) y (5). Consecuentemente, el lado derecho de (11) puede ser escrito , . t como De esta relación y de (3) y (5) de nuevo tenemos (6). Ilustramos la descripción precedente del paso 1 usando el segundo método. Ejemplo Primeramente introducimos variables de holgura x3 , x4 , x5 y escribimos el problema como en (2) de la sección 1. Podemos entonces escribir el problema como un problema de maximización en el formato de (4) de la sección (2.4). Maximice z sujeto a: 45 x1 x 2 x4 0, x1 2 x 2 x5 4 , x1 2 x 2 z 0 Se puede verificar que s 1, 0 , 0 , 1, 3 que corresponde al punto (1,0) en la figura1.es una solución factible básica. El valor de z en este punto es -1. Así, x 1 , x 4 , x 5 son las variables básicas y x 2 , x 3 son las variables no básicas. La matriz de coeficientes aumentada es x1 x4 x5 x1 x2 x3 x4 x5 z 1 1 1 0 0 0 1 1 0 1 0 0 1 2 0 0 1 0 1 2 0 0 0 1 c 1 0 ……….. (13) 4 0 Arriba de cada columna de la matriz tenemos indicada la variable correspondiente a la columna. A la izquierda de la matriz tenemos listadas las variables básicas actuales. En la descripción tableau del método simplex la matriz (13) es el tableau inicial. La matriz B en (13) es la submatriz formada por las primeras tres filas y las columnas 1, 4, y 5. Así 1 B 1 1 0 1 0 0 0 1 46 Para obtener la matriz correspondiente a (11), debemos transformar B en la matriz identidad por una sucesión de operaciones elementales fila sobre (13). Así obtenemos x1 x4 x5 x1 1 x2 1 x3 1 x4 0 x5 0 z 0 0 0 2 1 1 1 1 0 0 1 0 0 0 3 1 0 0 1 c 1 1 3 1 ………….. (14) De esto tenemos que x1 1 x 2 x 3 x 4 1 2 x 2 x 3 ......................(15) x5 3 x2 x3 Y z 1 3 x 2 x 3 ………………. (16) Que son (4) y (6) para este ejemplo. Note que la última columna de (14) da el valor actual de 1 , 4 , 5 , en concordancia con (4) y (6). Paso 2. Chequear la solución factible básica para optimalidad. Si cada componente del vector d N definida en (7) es no positivo (es decir, 0 ) entonces la solución factible básica es optima y el proceso termina. 47 Para ver que esto es así, recalcamos que necesitamos solamente considerar soluciones factibles básicas en nuestra búsqueda para la solución óptima. La solución factible básica actual es la única solución factible básica con xN 0N . Así, cualquier otra solución factible básica tendrá al menos una xN de las componentes de dN 0 positiva. Pero desde que , tenemos de (8) que el valor de la función objetivo decrece o no cambia. Así la solución factible básica actual es óptima. En nuestro ejemplo, vemos de (16) que la solución actual no es óptima. Paso 3. Si la solución factible básica no es óptima, determine una nueva base y la correspondiente solución factible básica tal que no decrece el valor actual de z o determine que z es no acotada y por lo tanto el problema no tiene solución. Primeramente motivamos el paso 3 usando el ejemplo & De (16) vemos que si hacemos tender el valor de incrementamos el valor de valor de z. Las variables (15) y la condición Haciendo x3 0 requerimiento que x2 , x3 a cero e entonces incrementaríamos el x 1 , x 2 , x 3 , x 4 , x 5 deben satisfacer xi 0, i 1, ..., 5 en y (15) tomando para factibilidad. en cuenta x 1 , x 4 , x 5 deben ser no negativos se tiene: 48 el 1 x2 0, 1 2 x2 0, 3 x2 0, Para que estas tres desigualdades se cumplan debemos incrementar el valor de x 2 a 1/2 . Si x 2 entonces de (15) tenemos que x1 1 y x3 0 2 1 5 , x4 0, x5 . 2 2 5 1 1 Tenemos ahora otra solución factible , , 0 , 0 , 2 2 2 que 1 1 corresponde al punto , , el valor de z se incrementa de -1 2 2 a 1/2. Demostremos enseguida que esta solución es básica. La matriz correspondiente al sistema (15) es la submatriz de (14) consistiendo de las tres primeras filas de (14). La matriz B correspondiente a 5 1 1 , , 0 , 0 , es la matriz formada por 2 2 2 las columnas 1,2 y 5 de esta submatriz. Así 1 B 0 0 1 2 1 49 0 0 1 Como las columnas de B son linealmente independientes el 5 1 1 , , 0 , 0 , es una solución factible básica. 2 2 2 punto En resumen: la variable básica original x4 cuyo valor fue 1 es ahora una variable no básica y la variable no básica x2 es ahora una variable básica con valor 1/2. La variable variable x4 x2 se dice que es la variable saliente de la base y la se dice que es la variable entrante. Antes de presentar el paso 3 en general, llamamos la atención a otra posible situación. Supongamos que tenemos un ejemplo tal que en vez de (15) arribamos al sistema x1 1 x 2 x 3 x4 1 x2 x3 x5 3 x2 x3 Con z como en (16) y donde Si hacemos , , son todos no negativos. x 3 0 y x 2 t entonces obtenemos soluciones factibles t 0 . Si hacemos que t , tenemos que z , así la función objetivo es no acotada y el problema no tiene solución. Ahora describimos el paso 3 dividiéndolo en dos subpasos: 50 Paso 3ª) Escoger la variable no básica que entrará en la nueva base. Sea d N como en (7), desde que la solución actual es no óptima, al menos una de las componentes de dN es positiva. Escogemos la componente de d N que es de mayor valor, si existe más de una de tales componentes, escogemos la de índice menor. Supongamos que la componente de d N escogida es la q-ésima componente de ( x 1 , ...., x n ) , la variable x q será la base de entrada. La columna de A correspondiente a xq es Aq . Paso 3b) Determine que el problema no tiene solución o escoja la variable básica que sale de la base. Sea vq Entonces la columna de B 1 N correspondiendo a xq . v q B 1 Aq . Sea x B x i 1 , ..., x im Y sea , B (i1 ,..., im ) ……..…….. (17) v q v 1 q , ..., v m q . Sea x q t , t 0 y sean las otras componentes de cero. 51 IV. MATERIALES Y MÉTODOS 4.1. MATERIALES Materiales de Oficina Materiales de Consulta Materiales de Cómputo e Impresora 4.2. MÉTODOS En el presente trabajo de Investigación, que tiene como propósito mostrar la eficacia de este método en la formulación y solución de diversos problemas de optimización orientados a la toma de decisiones, ha demandado la construcción .de una manera secuencial y lógica del contenido, ordenándolo por capítulos para facilitar no solo la lectura sino también el aprendizaje de los diferentes conceptos importantes que permitan su comprensión y aplicación. Con la información obtenida durante la etapa profesional de los profesores investigadores, permitió desarrollar cada uno de estos capítulos de este trabajo de investigación, con las características didácticas presentadas, para lo cual fue necesario usar el método analítico y deductivo. 52 V. RESULTADOS En el desarrollo de este proyecto de investigación, titulado “EL MÉTODO SIMPLEX Y ALGUNAS APLICACIONES”, se presenta en tres capítulos, haciendo mención en cada uno de estos capítulos de la parte teórica con el planteamiento de ejercicios para su mejor comprensión, dando las nociones preliminares importantes relativas al tema en mención. En este trabajo de investigación se ajusta a una filosofía de enseñanzaaprendizaje teniendo como base el Algebra Lineal, trabajando particularmente con matrices y sistemas de ecuaciones lineales que contrasta conocimientos específicos, para más adelante tratar con la programación lineal y el tema central el método simplex, que nos permite ver las ventajas al dar solución a problemas importantes de programación lineal , pudiendo manejar un gran número de variables e interacciones, mediante el uso de modelos y algoritmos que nos permiten resolver los problemas cotidianos, optimizando los resultados. 53 VI. DISCUSIÓN El presente trabajo titulado “EL MÉTODO SIMPLEX Y ALGUNAS APLICACIONES”, que es el resultado presente investigación, se caracteriza por presentar en una forma ordenada, sencilla y de fácil comprensión las definiciones, teorías y ejercicios resueltos, aplicados de manera que el alumno logre entenderlos y manejarlos en forma adecuada. En el desarrollo del presente trabajo de investigación podemos afirmar que se han dado diversas alternativas con la tendencia de dar soluciones a diversos problemas presentados muchas veces sin los resultados esperados. El presente trabajo de investigación del “Método Simplex” muestra la eficacia de este método en la formulación y resolución de problemas de optimización orientados a la toma de decisiones en las diferentes áreas de la Ingeniería, la Economía, etc.,siendo de gran utilidad. permite ver el uso las matemáticas en un capacidad y velocidad de las computadoras. 54 Además mano a mano con la VII. REFERENCIALES 1. BERNARD KOLMAN. Algebra Lineal con Aplicaciones y Matlab, Prentice-Hall, México. 1999. 2. HARTLEY, R., Linear and Nonlinear Programming: An Introduction to Linear, 1985 3. SEDGEWICH R. Algorithms in C Part 5: Graph Algorithms. Addison-Wesley Pub Co, 2001 4. SCHELD FRANCIS, DI COSTANZO ROSA E, Métodos Numéricos, Mc Graw Hill, Segunda Edición, 1991 5. MATHEISS TH, RUBIN DS. A survey and comparison of methods for finding all vertices of convex polyhedral sets. Mathematics of Operations Research, 1980 6. KNUT SYDSAETER HAMMOND Peter J Matemáticas para el Análisis Económico, Pearson Prentice Hall, Madrid 1996. 7. DE LA FUENTE O’CONNOR,Técnicas de Cálculo para Sistemas José Luis, de Ecuaciones, Programación Lineal y Programación Entera, Editorial Reverte S.A., 1998. 8. J.B.HIRIART URRUTY Y C. LEMARECHAL, Convex Analysis and minimization algorithms, Fundamental Principles of Mathematical Sciences, Springler-Verlag Berlin 1993 55