en otra ventana

Anuncio
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).
Descargar