Capitulo 2 Método Simplex Para explicar el método de generación de columnas se explicaran a continuación conceptos básicos de la programación lineal y el método simplex. En especial, el concepto de costo reducido. En el siguiente capítulo se hará un repaso de algunas propiedades básicas de conjuntos convexos, para después explicar el método simplex. 2.1 Conjuntos convexos Un conjunto 𝑋 en ℝ𝑛 se dice que es convexo si para cualquier par de puntos 𝐱 𝟏 , 𝐱 𝟐 ∈ 𝑋, resultantes de la recta 𝐱 = 𝜆𝐱 𝟏 + 1 − 𝜆 𝐱 𝟐 ∈ 𝑋 (4) para cualquier 𝝀 ∈ 𝟎, 𝟏 (Bazaraa & Jarvis, 1981). Nos podemos dar cuenta que para cada 𝜆 en el intervalo [0,1], 𝐱 representa un punto del segmento de recta que une a 𝐱 𝟏 y 𝐱 𝟐 . A cada punto, de esta forma se le llama combinación convexa o promedio ponderado (Bazaraa & Jarvis, 1981). En la Ilustración 1 se muestra un ejemplo de un conjunto convexo y uno no convexo. x2 x1 x1 x2 Ilustración 1.- Conjunto convexo y conjunto no convexo (Elaboración Propia) Un tipo de conjuntos convexos son los hiperplanos los cuales están definidos de la siguiente manera. Dado un vector no nulo 𝐩 ∈ ℝn , y, un escalar 𝑘, el conjunto 𝐻 es un hiperplano en ℝn si, 𝐻 = 𝐱 ∈ ℝ𝑛 |𝐩𝐭 𝐱 = 𝑘 , cuyos semiespacios están definidos por, 𝐻 + = 𝐱 ∈ ℝ𝑛 |𝐩𝐭 𝐱 ≥ 𝑘 , y, 𝐻 − = 𝐱 ∈ ℝ𝑛 |𝐩𝐭 𝐱 ≤ 𝑘 (Castillo, Conejo, Pedregal, García, & Alguacil, 2002). 2.1.1 Puntos extremos El concepto de puntos extremos juega un papel muy importante dentro de la programación lineal, debido a que cada punto extremo es un posible resultado del problema que se está solucionando. Un punto 𝐱 en un conjunto 𝑋 es extremo, si y solo si no se puede representar como una combinación convexa de cualesquiera dos puntos en el conjunto 𝑋. Por lo tanto si 𝐱 = 𝜆𝐱 𝟏 + 1 − 𝜆 𝐱 𝟐 con 𝜆 ∈ (0,1) y 𝐱 𝟏 ,𝐱 𝟐 ∈ 𝑋, entonces 𝐱 = 𝐱 𝟏 = 𝐱 𝟐 y 𝐱 es un punto extremo (Bazaraa & Jarvis, 1981). En la Ilustración 2, se pueden observar algunos ejemplos de puntos extremos y no extremos, podemos ver que mientras 𝐱 𝟏 es un punto extremo, 𝐱 𝟐 y 𝐱 𝟑 no lo son. x1 x3 x2 Ilustración 2.- Ejemplos de puntos extremos y no extremos (Elaboración Propia). 2.1.2 Rayos y direcciones Otro ejemplo de conjunto convexo es un rayo. Un rayo es una colección de puntos de la forma 𝐱 𝟎 + 𝜆𝐝: 𝜆 ≥ 0}, en donde 𝐝 es un vector distinto de cero. En este caso, 𝐱 𝟎 es el vértice del rayo, y 𝐝 es la dirección del rayo (Bazaraa & Jarvis, 1981). 2.1.2.1 Direcciones de un conjunto convexo Si se tiene un conjunto convexo y un vector 𝐝 distinto de cero, se dice que 𝐝 es una dirección del conjunto si para cada 𝐱 𝟎 dentro del conjunto, el rayo o semirrecta 𝐱 𝟎 + 𝜆𝐝: 𝜆 ≥ 0} también pertenece al conjunto. Basados en esta definición podemos concluir que si un conjunto es acotado, entonces no contiene direcciones (Bazaraa & Jarvis, 1981; Arreola Risa, 2003). 2.1.2.2 Direcciones extremas Análogamente al concepto de punto extremo de un conjunto convexo, el concepto de dirección extrema de un conjunto convexo, se refiere a una dirección del conjunto convexo que no se puede representar como una combinación lineal positiva de dos direcciones diferentes del conjunto. Por lo tanto 𝐝 es una dirección extrema del conjunto convexo 𝑋, si para dos direcciones 𝐝𝟏 y 𝐝𝟐 de 𝑋, es decir, si 𝐝 = 𝜆1 𝐝𝟏 + 𝜆2 𝐝𝟐, 𝜆1 𝑦 𝜆2 ≥ 0, implica que 𝐝𝟏 es proporcional a 𝐝𝟐 2.1.3 Conos convexos Un tipo especial de conjuntos convexos son los conos convexos. Estos tienen la propiedad adicional de que para cualquier cono convexo 𝐶, 𝜆𝐱 Є 𝐶 para cada 𝐱 Є 𝐶 y 𝜆 ≥ 0. Para 𝜆 = 0, un cono convexo siempre contiene al origen. Si a su vez tomamos cualquier punto 𝐱 Є 𝐶 entonces el rayo 𝐫, también pertenece a 𝐶. Por lo tanto un cono convexo es un conjunto convexo cuyos elementos son los rayos que salen del origen (Bazaraa & Jarvis, 1981; Arreola Risa, 2003). 2.1.4 Conjuntos y conos poliédricos. Un conjunto poliédrico es la intersección de un número finito de semiespacios. Se puede representar un semiespacio mediante una desigualdad del tipo 𝐚𝐢 𝐱 ≤ 𝑏𝑖 , por lo tanto un conjunto poliédrico se puede representar por medio de {𝐱 ∈ ℝ𝒏 : 𝐀𝐱 ≤ 𝐛}, donde 𝐀 es una matriz de dimensión 𝑚 × 𝑛, cuyo 𝑖 − ésimo renglón es 𝐚𝐢 y 𝐛 es un vector de dimensión 𝑚 (Bazaraa & Jarvis, 1981). Como ejemplo supóngase que se tienen las siguientes ecuaciones: 𝑥1 + 𝑥2 −𝑥1 + 𝑥2 𝑥2 𝑥1 , 𝑥2 ≤ 6 ≥ −3 ≤ 4 ≥ 0 Ilustración 3.- Conjunto poliédrico (Elaboración Propia). La intersección de estos 5 semiespacios está representada por el espacio sombreado de la Ilustración 3. Podemos también observar que este conjunto es convexo debido a que si tomamos cualesquiera dos puntos dentro del conjunto 𝐱 𝟏 y 𝐱 𝟐 , entonces 𝜆𝐱 𝟏 + 1 − 𝜆 𝐱𝟐 también pertenece al conjunto. Una clase especial de conjuntos poliédricos son los conos poliédricos, los cuales son un número finito de semiespacios cuyos hiperplanos pasan por el origen. Es decir 𝐶 es un cono poliédrico si se puede representar como {𝐱: 𝐀𝐱 ≤ 0} donde 𝐀 es una matriz de dimensión 𝑚 × 𝑛, donde el 𝑖 − ésimo renglón de la matriz 𝐀, es el vector normal al hiperplano que define al 𝑖 − ésimo semiespacio (Bazaraa & Jarvis, 1981). 2.1.5 Conjuntos poliédricos acotados. Consideremos el conjunto poliédrico de la Ilustración 3, podemos observar que este contiene 5 puntos extremos 𝐱 𝟏 , 𝐱 𝟐 , 𝐱 𝟑 , 𝐱 𝟒 , 𝐱 𝟓 (ver Ilustración 4) de la misma manera podemos ver que cualquier punto dentro del conjunto se puede representar como una combinación convexa de estos cinco puntos. Como ejemplo consideremos el punto 𝐱 que se observa en la Ilustración 4 podemos ver que 𝐱 se puede representar como la combinación convexa del punto 𝐲 y el punto 𝐱 𝟐 de la siguiente manera: x = λy + 1 − λ x4 en donde λ ∈ 0,1 (5) A su vez 𝐲 se puede representar como la combinación convexa entre los puntos 𝐱 𝟒 y 𝐱 𝟓 por lo tanto: y = μx4 + 1 − μ x5 en donde μ ∈ 0,1 (6) Sustituyendo de la ecuación (5) y (6) vemos que: x = λμx1 + λ 1 − μ x2 + 1 − λ x4 en donde λ, μ ∈ 0,1 7 , y, λμ + λ 1 − μ + 1 − λ = 1 A través de la ecuación (7), observamos que 𝐱 se puede representar como la combinación convexa entre los puntos 𝐱 𝟐 , 𝐱 𝟒 , 𝐱 𝟓 . De la misma manera, cualquier punto en un conjunto poliédrico acotado se puede representar como una combinación convexa de sus puntos extremos (Bazaraa & Jarvis, 1981). Ilustración 4.- Representación del conjunto poliédrico a través de los puntos extremos (Elaboración Propia). 2.1.6 Conjuntos poliédricos no acotados Si consideramos el conjunto poliédrico definido por las desigualdades que se muestran a continuación: −𝑥1 2𝑥1 1 − 𝑥1 2 1 𝑥 4 1 + 𝑥2 ≤ −2 + 𝑥2 ≥ 10 + 𝑥2 ≤ 4 + 𝑥2 ≥ 3 Podemos observar en la Ilustración 5 que obtenemos un conjunto poliédrico no acotado con tres puntos extremos 𝐱 𝟏 , 𝐱 𝟐 , 𝐱 𝟑 y dos direcciones extremas 𝐝𝟏 , 𝐝𝟐 . De la misma manera que para el caso acotado, cualquier punto dentro del conjunto convexo se puede representar como una combinación convexa de los puntos extremos más una combinación lineal no negativa de las direcciones extremas. Como se observa en la Ilustración 5 el punto 𝐱 se puede representar como la suma de 𝐲 más un múltiplo positivo de la dirección extrema 𝐝𝟐 (nótese que el vector 𝐱 − 𝐲 apunta en la dirección 𝐝𝟐 ), en donde 𝐲 es la combinación convexa entre los puntos 𝐱 𝟐 y 𝐱 𝟑 y por lo tanto: 𝐱 = 𝐲 + 𝜇𝐝𝟐 𝐲 = 𝜆𝐱 𝟐 + 1 − 𝜆 𝐱𝟑 ∴ 𝐱 = 𝜆𝐱 𝟐 + 1 − 𝜆 𝐱𝟑 + 𝜇𝐝𝟐 en donde 𝜆 ∈ 0,1 𝑦 𝜇 > 0 (Bazaraa & Jarvis, 1981) Ilustración 5.- Conjunto Poliédrico no acotado (Elaboración Propia). Esto también es cierto para el caso acotado, pero como no existen direcciones extremas, solo queda la suma de las combinaciones convexas. 2.1.6.1 Teorema de representación Sea 𝑋 = 𝐱: 𝐀𝐱 = 𝐛, 𝐱 ≥ 0 un conjunto poliédrico no vacío, entonces el conjunto de puntos extremos {𝐱 𝟏 , … , 𝐱 𝐤 } es no vacío y finito y el conjunto de direcciones extremas es vacío solo si 𝑋 es un conjunto poliédrico no acotado. De otra manera el conjunto de direcciones extremas {𝐝𝟏 , … , 𝐝𝐥 }, al igual que el conjunto de puntos extremos, es no vacio y contiene un número finito de vectores. De la misma manera, 𝐱 ∈ 𝑋 si y solo si, éste se puede representar como una combinación convexa de los puntos extremos más una combinación lineal no negativa de las direcciones extremas, por lo tanto cualquier 𝐱 dentro del conjunto poliédrico se puede representar de la siguiente manera: 𝑘 𝐱= 𝑙 𝜆𝑗 𝐱 𝐣 + 𝑗 =1 𝑘 𝜇𝑗 𝐝𝐣 𝑗 =1 𝜆𝑗 = 1 𝑗 =1 𝜆𝑗 ≥ 0 𝜇𝑗 ≥ 0 𝑗 = 1, … , 𝑘 𝑗 = 1, … , 𝑙 2.2 El Método Simplex A continuación se explicará el método simplex para resolver un problema de programación lineal. Primero se demostrará que si existe una solución óptima entonces también existe un punto extremo óptimo, después se analizaran los puntos extremos y su relación con las soluciones básicas factibles, y se acabara con describir el método simplex para mejorar soluciones básicas factibles hasta alcanzar la solución óptima (Bazaraa & Jarvis, 1981). 2.2.1 Puntos extremos y optimalidad Considérese el siguiente sistema de programación lineal, en la forma estándar: Minimizar 𝑧 = 𝐜𝐱 Sujeto a: 𝐀𝐱 = 𝐛 (8) 𝐱 ≥ 0 Donde 𝐀 es una matriz de dimensión 𝑚 × 𝑛 con rango 𝑚. Sea 𝐱 los puntos extremos del conjunto poliédrico y 𝐝 las direcciones las direcciones extremas {𝐝𝟏 , 𝐝𝟐 , … , 𝐝𝐥 } las direcciones extremas del conjunto poliédrico, como vimos en la sección 2.1.6, cualquier punto 𝐱 ∈ {𝐱 ∈ ℝ𝒏 : 𝐀𝐱 ≤ 𝐛, 𝐱 ≥ 0} se puede representar como: 𝑘 𝐱= 𝑙 𝜆𝑗 𝐱 𝐣 + 𝑗 =1 𝑘 𝜇𝑗 𝐝𝐣 𝑗 =1 𝜆𝑗 = 1 𝑗 =1 𝜆𝑗 ≥ 0 𝜇𝑗 ≥ 0 𝑗 = 1, … , 𝑘 𝑗 = 1, … , 𝑙 Teniendo esto en cuenta podemos reformular el problema de programación lineal con variables de decisión 𝜆𝑗 , 𝑗 = 1, … , 𝑘 y 𝜇𝑗 , 𝑗 = 1, … , 𝑙 de la siguiente manera. 𝑘 Minimizar 𝑧 = 𝑙 𝐜𝐱 𝐣 𝜆𝑗 + 𝑗 =1 𝐜𝐝𝐣 𝜇𝑗 𝑗 =1 𝑘 Sujeto a 𝜆𝑗 = 𝟏 ≥ ≥ 0 0 𝑗 =1 𝜆𝑗 𝜇𝑗 ∀𝑗 ∈ 𝐽 ∀𝑗 ∈ 𝐽 Si dividimos la función objetivo de acuerdo a las sumatorias que la definen, el mínimo para 𝑙𝑗 =1 𝐜𝐝𝐣 𝜇𝑗 sería igual a -∞ si 𝐜𝐝𝐣 < 0 para alguna 𝑗 = 1, … , 𝑙 debido a que 𝜇𝑗 se puede hacer arbitrariamente grande y el valor de 𝑧 disminuye al aumentar 𝜇𝑗 . Por otro lado si 𝐜𝐝𝐣 ≥ 0 para toda 𝑗 = 1, … , 𝑙 entonces la correspondiente 𝜇𝑗 será igual a 0, y por lo tanto para que un problema de programación lineal tenga una solución óptima finita, 𝐜𝐝𝐣 debe de ser mayor o igual a cero para todas las direcciones extremas. Por otro lado si lo que deseamos es minimizar 𝑘 𝑗 =1 𝐜𝐱 𝐣 𝜆𝑗 sobre las variables 𝜆1 , … , 𝜆𝑘 de tal manera que 𝜆𝑗 ≥ 0 para 𝑗 = 1, … , 𝑘 y que 𝑘 𝑗 =1 𝜆𝑗 = 1, entonces hacer 𝜆𝑟 = 1, donde 𝑟 = min𝑗 =1,⋯,𝑘 {𝐜𝐱 𝐣 } y todas las demás variables 𝜆𝑗 = 0 para toda 𝑗 ≠ 𝑟. Si para un problema de programación lineal 𝐜𝐝𝐣 ≥ 0 para todas las direcciones extremas, entonces podemos determinar el punto mínimo, seleccionando el mínimo de los valores objetivos entre los puntos extremos, por lo tanto si existe una solución óptima debe de poder encontrarse un punto extremo óptimo. Si el mínimo valor objetivo se encuentra en más de un punto extremo entonces cada combinación convexa entre estos puntos es un punto mínimo (Bazaraa & Jarvis, 1981). 2.2.2 Soluciones básicas factibles Consideremos un conjunto poliédrico 𝐀𝐱 = 𝐛, 𝐱 ≥ 0, donde 𝐀 es una matriz de dimensión 𝑚 × 𝑛 y 𝐛 es un vector. Después de un arreglo de las columnas de 𝐀 podríamos escribirla como 𝐀 = [𝐁, 𝐍], donde 𝐁 es la matriz invertible de dimensión 𝐱𝐁 𝑚 × 𝑚 de 𝐀 y 𝐍 es una matriz de dimensión 𝑚 × (𝑛 − 𝑚). Entonces al punto 𝐱 = 𝐱 , 𝐧 −𝟏 tal que, 𝐱 𝐁 = 𝐁 𝐛 y 𝐱 𝐍 = 0, se le llama solución básica. Si 𝐱 𝐁 ≥ 0, entonces 𝐱 es una solución básica factible del sistema. Si 𝐱 𝐁 > 0 entonces a 𝐱 se le llama solución básica factible no degenerada. De lo contrario, si por lo menos una de las componentes de 𝐱 𝐁 es igual a cero, entonces a 𝐱 se le llama solución básica factible degenerada. Aquí a 𝐁 se le conoce como matriz básica, y 𝐍 es la matriz no básica (Bazaraa & Jarvis, 1981). Para ilustrar este concepto consideremos el ejemplo de la sección de 2.1.4. Donde el conjunto poliédrico está definido por las siguientes variables: 𝑥1 + 𝑥2 −𝑥1 + 𝑥2 𝑥2 𝑥1 , 𝑥2 ≤ 6 ≥ −3 ≤ 4 ≥ 0 Agregando las variables de holgura 𝑥3 , 𝑥4 , 𝑥5 podemos escribir el problema de la siguiente forma: 𝑥1 −𝑥1 0𝑥1 𝑥1 + 𝑥2 + 𝑥2 + 𝑥2 , 𝑥2 + 𝑥3 + 0𝑥3 + 0𝑥3 , 𝑥3 + 0𝑥4 − 𝑥4 + 0𝑥4 , 𝑥4 + 0𝑥5 + 0𝑥5 + 𝑥5 , 𝑥5 = 6 = −3 = 4 ≥ 0 Por lo tanto podemos escribir la matriz de restricciones de la siguiente manera: 1 1 1 0 0 𝐀 = −1 1 0 1 0 0 1 0 0 1 Sean 𝐚𝟏 , … , 𝐚𝐧 las columnas de la matriz, entonces 𝐀 = [𝐚𝟏 , 𝐚𝟐 , 𝐚𝟑 , 𝐚𝟒 , 𝐚𝟓 ]. Debido a que nuestra matriz básica 𝐁, debe de ser de dimensión 𝑚 × 𝑚 (3 × 3), debemos de extraer 𝐁 de 𝐀 de todas las formas posibles, por lo tanto tenemos: 5! 5 = = 10 3 3! 2! combinaciones en las que 𝐁 se puede extraer de 𝐀. A continuación se muestran las formas posibles en que esto puede suceder (Bazaraa & Jarvis, 1981). 1. 𝐁 = 𝐚𝟏 , 𝐚𝟐 , 𝐚𝟑 1 1 1 = −1 1 0 0 1 0 𝑥1 0 𝐱 𝐁 = 𝑥2 = 𝐁 −𝟏 𝐛 = 0 𝑥3 1 7 −1 1 6 0 1 −3 = 4 1 −2 4 −5 𝑥4 0 𝐱𝐍 = 𝑥 = 5 0 2. 𝐁 = 1 0 −1 3. 𝐁 = 1 𝐚𝟏 , 𝐚𝟐 , 𝐚𝟒 = −1 0 0 −1 6 0 1 −3 = −1 2 4 1 𝐚𝟏 , 𝐚𝟐 , 𝐚𝟓 = −1 0 𝑥1 0 −1 𝐱 𝐁 = 𝑥2 = 𝐁 −𝟏 𝐛 = 𝑥4 0 𝑥3 0 𝐱𝐍 = 𝑥 = 5 0 1 1 1 2 4 5 1 1 1 0 0 1 𝑥1 6 .5 −.5 0 4.5 −𝟏 𝑥 𝐱 𝐁 = 2 = 𝐁 𝐛 = .5 .5 0 −3 = 1.5 𝑥5 4 −.5 −.5 1 2.5 𝑥3 0 𝐱𝐍 = 𝑥 = 0 4 1 1 0 4. 𝐁 = 𝐚𝟏 , 𝐚𝟑 , 𝐚𝟒 = −1 0 −1 0 0 0 Nótese que las columnas son linealmente dependientes por lo tanto no se puede invertir la matriz. 1 1 0 5. 𝐁 = 𝐚𝟏 , 𝐚𝟑 , 𝐚𝟓 = −1 0 0 0 0 1 𝑥1 0 −𝟏 𝑥 𝐱𝐁 = 3 = 𝐁 𝐛 = 1 𝑥5 0 −1 0 6 3 1 0 −3 = 3 0 1 4 4 𝑥2 0 𝐱𝐍 = 𝑥 = 0 4 1 0 0 6. 𝐁 = 𝐚𝟏 , 𝐚𝟒 , 𝐚𝟓 = −1 −1 0 0 0 1 𝑥1 1 0 0 6 6 𝑥 𝐱 𝐁 = 4 = 𝐁 −𝟏 𝐛 = −1 −1 0 −3 = −3 𝑥5 0 0 1 4 4 7. 𝐁 = 𝐚𝟐 , 𝐚𝟑 , 𝐚𝟒 1 1 = 1 0 1 0 𝑥2 0 𝐱 𝐁 = 𝑥3 = 𝐁 −𝟏 𝐛 = 1 𝑥4 0 8. 𝐁 = 𝐚𝟐 , 𝐚𝟑 , 𝐚𝟓 𝑥2 0 𝐱 𝐁 = 𝑥3 = 𝐁 −𝟏 𝐛 = 1 𝑥5 0 0 −1 0 0 1 6 4 0 −1 −3 = 2 −1 −1 4 7 1 1 = 1 0 1 0 𝑥2 0 𝐱𝐍 = 𝑥 = 3 0 𝑥1 0 𝐱𝐍 = 𝑥 = 5 0 0 0 1 1 0 6 −3 −1 0 −3 = 9 −1 1 4 7 𝑥1 0 𝐱𝐍 = 𝑥 = 0 4 1 0 0 9. 𝐁 = 𝐚𝟐 , 𝐚𝟒 , 𝐚𝟓 = 1 −1 0 1 0 1 𝑥2 1 0 0 6 6 −𝟏 𝑥 𝐱 𝐁 = 4 = 𝐁 𝐛 = 1 −1 0 −3 = −9 𝑥5 −1 0 1 4 −2 𝑥1 0 𝐱𝐍 = 𝑥 = 3 0 1 0 0 10. 𝐁 = 𝐚𝟑 , 𝐚𝟒 , 𝐚𝟓 = 0 −1 0 0 0 1 𝑥3 1 −𝟏 𝑥 𝐱𝐁 = 4 = 𝐁 𝐛 = 0 𝑥5 0 0 0 6 6 −1 0 −3 = 3 0 1 4 4 𝑥1 0 𝐱𝐍 = 𝑥 = 0 2 Obsérvese que las soluciones básicas factibles para este ejemplo son las de los casos: 2, 3, 5, 7 y 10, dado que se cumplen las restricciones de no negatividad. Los casos: 1, 6, 8 y 9 no cumplen con estas restricciones por lo que son soluciones básicas pero no factibles. Estos puntos pertenecen a ℝ5 . En el espacio de las variables originales los casos con soluciones básicas factibles, obtenemos los siguientes puntos: 𝒙𝟐 = 2 , 4 𝒙𝟑 = 4.5 , 1.5 𝒙𝟓 = 3 , 0 𝒙𝟕 = 0 , 4 𝒙𝟏𝟎 = 0 0 En la Ilustración 3, podemos observar como estos puntos son exactamente los puntos extremos de la región factible (Bazaraa & Jarvis, 1981). De igual manera para todos los problemas de optimización con solución finita, tenemos que 𝐱 es una solución básica factible si y solo si, este punto también es un punto extremo, y viceversa, si un punto 𝐱 es un punto extremo entonces también es una solución básica factible (Winston, 2005). Análogamente si se tiene un conjunto poliédrico no vacío, éste tiene al menos una solución básica factible (Bazaraa & Jarvis, 1981). 2.2.3 Mejoramiento de una solución básica factible. Para problemas complejos es muy impráctico obtener todas las soluciones básicas factibles y después comparar cada una de ellas con nuestra función objetivo. El método simplex nos sirve para que obtengamos una mejor solución a partir de una solución básica factible. Consideremos el sistema de programación lineal (8). Donde 𝐀 es una matriz de dimensión 𝑚 × 𝑛 con rango 𝑚, y supóngase que se tiene una solución básica factible −𝟏 inicial 𝐁 𝐛 cuyo valor objetivo (𝑧0 ) está dado por 𝟎 −𝟏 −𝟏 𝒛𝟎 = 𝐜 𝐁 𝐛 = 𝐜𝐁 𝐜𝐍 𝐁 𝐛 = 𝐜𝐁 𝐁 −𝟏 𝐛 (9) 𝟎 𝟎 𝐱𝐁 Si 𝐱 = 𝐱 es una solución básica factible, entonces 𝐱 𝐁 ≥ 0, 𝐱 𝐍 ≥ 0 y 𝐍 𝐛 = 𝐀𝐱 = 𝐁𝐱 𝐁 + 𝐍𝐱 𝐍 . Si se multiplica por 𝐁 −𝟏 y se reordenan los términos se obtiene 𝐱 𝐁 = 𝐁 −𝟏 𝐛 − 𝐁 −𝟏 𝐍𝐱 𝐍 = 𝐁 −𝟏 𝐛 − 𝐁 −𝟏 𝐚𝐣 𝑥𝑗 (10) j∈R Donde 𝑅 es el conjunto de índices de las variables no básicas. De las ecuaciones (9), (10) y de la función objetivo podemos observar que: 𝑧 = = 𝐜𝐱 𝐜𝐁 𝐱 𝐁 = 𝐜𝐁 𝐁 −𝟏 𝐛 − + 𝐜𝐍 𝐱 𝐍 𝐁 −𝟏 𝐚𝐣 𝑥𝑗 + j∈R = 𝑐𝑗 𝑥𝑗 𝑗 ∈𝑅 𝑧0 − 𝑧𝑗 − 𝑐𝑗 𝑥𝑗 (11) 𝑗 ∈𝑅 En donde 𝑧𝑗 = 𝐜𝐁 𝐁 −𝟏 𝐚𝐣 para cada variable no básica. La ecuación (11) nos sirve como guía para mejorar la solución básica factible actual. Debido a que como se desea minimizar 𝑧 nos conviene aumentar el valor de 𝑥𝑗 siempre que (𝑧𝑗 − 𝑐𝑗 ) > 0. Teniendo esto en cuenta se puede aplicar la siguiente regla. Se fijan todos los valores de las variables no básicas 𝑥𝑗 en cero, excepto por una variable no básica (𝑥𝑘 ) cuyo valor 𝑧𝑘 − 𝑐𝑘 , es el más positivo de los 𝑧𝑗 − 𝑐𝑗 (Bazaraa & Jarvis, 1981). Por lo tanto el nuevo valor objetivo estaría dado por: 𝒛 = 𝐳𝟎 − 𝒛𝒌 − 𝒄𝒌 𝒙𝒌 (12) Debido a que 𝑧𝑘 − 𝑐𝑘 > 0 y se desea minimizar 𝑧 es conveniente aumentar el valor de 𝑥𝑘 tanto como sea posible. Conforme 𝑥𝑘 crece deben modificarse las variables básicas de acuerdo a la ecuación (10), y quedaría de la siguiente manera, 𝐱 𝐁 = 𝐁 −𝟏 𝐛 − 𝐁 −𝟏 𝐚𝐤 𝑥𝑘 . Si analizamos esta ecuación es claro que si 𝐁 −𝟏 𝐚𝐤 < 0 entonces ninguna 𝐱 𝐁 puede salir de la base, pues si 𝑥𝑘 aumenta, también aumentaría 𝐱 𝐁 , por lo tanto para que una variable básica salga de la base se debe de cumplir la siguiente condición (Bazaraa & Jarvis, 1981): Sea 𝑏𝑖 = 𝐁 −𝟏 𝐛 y 𝑦𝑖𝑘 = 𝐁 −𝟏 𝑎𝑖𝑘 𝑖 = 1, … , 𝑚 donde 𝑟 es el índice de la primera variable básica que sale de la base entonces, 𝑏𝑟 𝑦 𝑟𝑘 = 𝑀𝑖𝑛𝑖𝑚𝑜 1≤𝑖≤𝑚 𝑏𝑖 𝑦 𝑖𝑘 : 𝑦𝑖𝑘 > 0 = 𝑥𝑘 Para ilustrar esto consideremos el ejemplo visto anteriormente en la sección 2.2.2 donde tenemos el siguiente problema de programación lineal: Minimizar 𝑧 = 𝑥1 + 𝑥2 Sujeto a: 𝑥1 + 𝑥2 ≤ −𝑥1 + 𝑥2 ≥ 𝑥2 ≤ 𝑥1 , 𝑥2 ≥ 6 −3 4 0 Introduciendo las variables de holgura y escribiendo el problema de la forma estándar, tenemos nuestra matriz 𝐀 de restricciones: 1 𝐀 = 𝐚𝟏 , 𝐚𝟐 , 𝐚𝟑 , 𝐚𝟒 , 𝐚𝟓 = −1 0 1 1 0 1 0 1 1 0 0 0 0 1 Si tomamos como variables básicas a 𝑥1 , 𝑥2 y 𝑥4 , entonces las variables no básicas serían 𝑥3 y 𝑥5 y 𝐁 = [𝐚𝟏 , 𝐚𝟐 , 𝐚𝟒 ]. Por lo tanto: 𝑥1 1 0 −1 6 2 𝐱 𝐁 = 𝑥2 = 𝐁 −𝟏 𝐛 = 0 0 = 1 −3 4 𝑥4 −1 −1 2 4 5 𝑥3 0 𝐱𝐍 = 𝑥 = 5 0 Podemos ver que nuestra valor objetivo es 𝑧 = 6. Para mejorar esta solución básica factible debemos de encontrar el valor más positivo de (𝑧𝑗 − 𝑐𝑗 ) > 0 para las variables no básicas utilizando la ecuación [12], tenemos que: 𝑧3 − 𝑐3 = 𝐜𝐁 𝐁 −𝟏 𝐚𝟑 − 𝑐3 = 1 1 0 −1 1 1 0 0 0 1 0 −0 −1 −1 2 0 = 1 1 0 0 0 0 =1 𝑧5 − 𝑐5 = 𝐜𝐁 𝐁 −𝟏 𝐚𝟓 − 𝑐5 1 0 −1 0 0 0 1 0 −0 −1 −1 2 1 = 1 1 0 = 1 0 0 0 0 1 =0 Debido a que lo que se desea es minimizar y 𝑧3 − 𝑐3 > 0 el objetivo mejora cuando 𝑥3 crece. A continuación se debe de modificar 𝐱 𝐁 a partir de la ecuación (10), de la siguiente manera: 𝐱 𝐁 = 𝐁 −𝟏 𝐛 − 𝐁 −𝟏 𝐚𝟑 𝑥3 𝑥1 1 0 −1 6 1 0 −1 1 𝑥2 = 0 0 1 −3 − 0 0 1 0 𝑥3 𝑥4 −1 −1 2 4 −1 −1 2 0 𝑥1 2 1 𝑥2 = 4 − 0 𝑥3 𝑥4 5 −1 Como podemos ver el valor máximo de 𝑥3 es igual a 2, dado que no podemos violar la no negatividad de ninguna de las variables, y si 𝑥3 toma un valor mayor 𝑥1 sería menor a cero. A esta primera variable básica que sale de la base (en este ejemplo 𝑥1 ) se le llama variable de bloqueo pues impide a 𝑥𝑘 (es decir 𝑥3 ) un incremento adicional (Bazaraa & Jarvis, 1981). Por lo que la nueva solución básica factible es: 𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 = 0,4,2,7,0 Por lo tanto 𝑥3 entra a la base y 𝑥1 sale de la base. Para esta solución básica factible nuestro valor objetivo es 𝑧 = 4 por lo que tuvimos una mejora de 2. Si analizamos este resultado también podemos observar como corresponde con la solución básica cuyas variables son 𝑥2 , 𝑥3 y 𝑥4 , y en la Ilustración 6 se muestra este movimiento. Ilustración 6.- Mejoramiento de la solución (Elaboración Propia). Este proceso se vuelve a repetir con nuestra nueva variable básica, mientras que los dos criterios que se muestran a continuación se sigan cumpliendo: 1. Criterio de entrada: 𝑥𝑘 puede entrar si 𝑧𝑘 − 𝑐𝑘 > 0 2. Criterio de salida: 𝑥𝐵𝑟 puede salir si 𝑏𝑟 𝑏𝑖 = mínimo : 𝑦 > 0 = 𝑥𝑘 1≤𝑖≤𝑚 𝑦𝑟𝑘 𝑦𝑖𝑘 𝑖𝑘 Por lo que si 𝑧𝑘 − 𝑐𝑘 ≤ 0, quiere decir que no hay ninguna variable no básica, 𝑥𝑘 , que sea elegible para entrar a la base debido a que no mejoraría el valor objetivo y esto quiere decir que ya se ha alcanzado la solución óptima. Por otro lado si 𝑧𝑘 − 𝑐𝑘 > 0 pero no se puede encontrar ninguna componente 𝑦𝑖𝑘 positiva, entonces la solución óptima es no acotada (Bazaraa & Jarvis, 1981). En resumen, dada una solución básica factible, esta se puede mejorar si 𝑧𝑘 − 𝑐𝑘 > 0, para alguna variable no básica 𝑥𝑘 , si no, el proceso se detiene con un punto óptimo, si 𝑧𝑗 − 𝑐𝑗 ≤ 0 para todas las variables no básicas. Si 𝑧𝑘 − 𝑐𝑘 > 0, y el vector 𝐁 −𝟏 𝐚𝐤 contiene al menos una componente positiva, entonces el incremento en 𝑥𝑘 se verá bloqueado por una de las variables básicas, la cual se hace cero y sale de la base. En caso contrario si 𝑧𝑘 − 𝑐𝑘 > 0 y el vector 𝐁 −𝟏 𝐚𝐤 no contiene ninguna componente positiva, entonces 𝑥𝑘 se puede incrementar indefinidamente y la solución óptima es no acotada con valor de -∞ (Bazaraa & Jarvis, 1981). Para un problema de maximización se pueden hacer dos cosas; la primera, multiplicar los coeficientes de la función objetivo por -1, de esta manera se convierte en un problema de minimización y se resuelve como se ha expuesto. De otra manera se siguen los mismos pasos pero se busca el mínimo 𝑧𝑗 − 𝑐𝑗 y el criterio para detener el proceso es que 𝑧𝑘 − 𝑐𝑘 ≥ 0 (Bazaraa & Jarvis, 1981). 2.2.4 Procedimiento del Método Simplex A continuación se dará un resumen del método simplex paso por paso. Consideremos el siguiente problema de programación lineal en la forma estándar: Minimizar 𝑧 = 𝐜𝐱 Sujeto a: 𝐀𝐱 = 𝐛 𝐱 ≥ 0 Donde 𝐀 es una matriz de dimensión 𝑚 × 𝑛 con rango 𝑚. Para empezar Selecciónese una solución básica factible con base 𝐁 1. Resuélvase el sistema con solución única 𝐱 𝐁 = 𝐁 −𝟏 𝐛 = 𝐛. Sea 𝐱 𝐁 = 𝐛, 𝐱 𝐍 = 0, y 𝑧 = 𝐜𝐁 𝐱 𝐁 2. Resuélvase el sistema con solución única 𝐰 = 𝐜𝐁 𝐁 −𝟏 . Para todas las variables no básicas calcúlese 𝑧𝑗 − 𝑐𝑗 = 𝐰𝐚𝐣 − 𝑐𝑗 . Sea 𝑧𝑘 − 𝑐𝑘 = máx𝑗 ∈𝑅 {𝑧𝑗 − 𝑐𝑗 } Donde 𝑅 es el conjunto de índices de las variables no básicas. Si 𝑧𝑘 − 𝑐𝑘 ≤ 0, entonces el proceso se detiene, y la solución básica factible presente es la óptima. En caso contrario continuar con el paso 3. 3. Resuélvase el sistema con solución única 𝐲𝐤 = 𝐁 −𝟏 𝐚𝐤 . Si 𝐲𝐤 ≤ 0, entonces la solución óptima es no acotada a lo largo del rayo 𝐛 + 𝑥 −𝐲𝐤 : 𝑥 ≥ 0 𝑘 𝑘 𝐞𝐤 𝟎 En donde 𝐞𝐤 , es un vector de ceros excepto por un 1 en la 𝑘 − ésima posición. Si al menos algún componente del vector 𝐲𝐤 es positivo, ir al el paso 4 4. 𝑥𝑘 entra a la base y la variable de bloqueo 𝑥𝐵𝑟 sale de ella, en donde el índice 𝑟 se determina mediante utilizando el criterio de la razón mínima que se muestra a continuación, 𝑏𝑟 𝑏𝑖 = mínimo : 𝑦 > 0 = 𝑥𝑘 1≤𝑖≤𝑚 𝑦𝑟𝑘 𝑦𝑖𝑘 𝑖𝑘 Se modifica la base 𝐁 en donde 𝐚𝐤 reemplaza a 𝐚𝐁𝐫 , se actualiza el conjunto de índices de las variables no básicas 𝑅 ≔ 𝑅 ∖ {Br }⋃{k}. Ir al paso 1 (Bazaraa & Jarvis, 1981).