Simplex
Simplex
Simplex
Este popular método fue creado en el año de 1947 por el estadounidense George Bernard Dantzig y
el ruso Leonid Vitalievich Kantorovich, con el ánimo de crear un algoritmo capaz de solucionar problemas
lineales de optimización de m restricciones y n variables positivas (n < m) [Dantzig & Thapa,1997/2003].
MAXIMIZAR
donde ⎧ ⎫ ⎧ ⎫
⎪ x1 ⎪ ⎪ b1 ⎪
⎪
⎨ x2 ⎬⎪ ⎪
⎨ b2 ⎪ ⎬
c = {c1 , c2 , · · · , cn } x= .. b= .. (3.a, b, c)
⎪
⎪ ⎪ ⎪ ⎪
⎩ . ⎪ ⎭ ⎪
⎩ . ⎪ ⎭
xn bm
⎡ ⎤ ⎧ ⎫
a11 a12 ··· a1n ⎪ 0⎪
⎪
⎨0⎪⎬
⎢ a21 a22 ··· a2n ⎥
A=⎢
⎣ ... .. .. .. ⎥ 0 = .. ó {0, 0, · · · , 0}1×m (3.d, e)
. . . ⎦ ⎪
⎪
⎩.⎪
⎪
⎭
am1 am2 · · · amn 0 m×1
Esto es
c ∈ R1×n , x ∈ Rn×1 , b ∈ Rm×1 , A ∈ Rm×n y 0 ∈ Rn×1 ó R1×n (4)
1
(para n = 2 la hiperarista es un punto-vértice) y cada n restricciones se intersectan en un único vértice,
considerado uno o varios de ellos la solución básica factible al problema (se puede demostrar por reducción
al absurdo que la solución al problema debe estar en un vértice y no en una hiperarista o hiperplano [Hillier
& Lieberman,2010]). El número total d vértices que pueden ofrecer una solución tiene como cota superior a
(n+m)!
la combinación ( n+m
n ) = m!n! (que es el mismo número de ecuaciones posibles de formar del total), de las
cuales sólamente la mitad o un tercio son factibles.
Para obtener la forma aumentada del problema de programación lineal, introducimos el vector columna
de las variables de holgura xs , esto es
⎧ ⎫
⎪ xn+1 ⎪
⎨ xn+2 ⎪
⎪ ⎬
xs = .. (5)
⎪
⎪ . ⎪
⎪
⎩ ⎭
xn+m m×1
de tal manera que las restricciones se convierten en una igualdad (sistema de ecuaciones lineales, puesto que
cada variable de holgura compensa cada una de las desigualdades)
x x
[A| I ] . =b ≥0 (6)
xs xs
donde ⎡ ⎤
1 0 ··· 0
⎢0 1 ··· 0⎥
I=⎢
⎣ ... ... .. .⎥ (7)
. .. ⎦
0 0 · · · 1 m×m
es la matriz identidad de orden m × m (en (6), {0}(n+m)×1).
Debemos identificar las variables básicas y no básicas de
x
[A| I ] . =b (8)
xs
dado que se tienen que eliminar las variables no básicas al igualarlas a cero entonces queda un conjunto de m
ecuaciones con m incógnitas (las variables básicas). Este sistema de ecuaciones lo denotamos por B.xb = b,
donde el vector de variables básicas ⎧ ⎫
⎪ xb1 ⎪
⎨ xb2 ⎪
⎪ ⎬
xb = .. (9)
⎪
⎪ ⎪
⎩ . ⎪ ⎭
xbm
se obtiene al eliminar las variables no básicas del total de variables (n + m variables)
x
(10)
xs
escogiendo por defecto las básicas (m variables) y la matriz base B a partir del sistema más grande (8)
(n+m)!
(existen en total ( n+m
m ) = m!n!
opciones, algunas válidas, invertibles, esas son el número de iteraciones, y
otras no, descartadas). Esta matriz denotada por B ∈ Rm×m es
⎡ ⎤
B11 B12 ··· B1m
⎢ B21 B22 ··· B2m ⎥
B=⎢
⎣ ... .. .. ⎥ (11)
. ⎦
..
. .
Bm1 Bm2 · · · Bmm
2
y se obtiene al eliminar las columnas de
[A| I ] (12)
correspondientes a las variables no básicas. Como la matriz base B es invertible entonces la solución deseada
para las variables básicas es xb = B−1. b. La escogencia de las variables básicas es fundamental en el método,
puesto que cada escogencia debe ser un sistema invertible y da un valor de z diferente, y la correcta es la
solución al problema con el mayor valor de z.
Sea cb el vector renglón cuyos elementos son los coeficientes de la función objetivo (incluye los ceros
para las variables de holgura) que corresponden a los elementos de xb . Ası́, el vector de la función objetivo
de la solución básica xb = B−1. b es z = cb .xb = cb .B−1. b.
En el caso del conjunto de ecuaciones originales del modelo inicial aumentado, incluyendo la ecuación
de la función objetivo z, se puede representar como
⎧ ⎫
⎨ z ⎬
1 −c 0 0
. x = (13)
0 A I ⎩ ⎭ b
xs
MINIMIZAR
en lugar de (6), donde se ha invertido el procedimiento restando la variables de holgura, ahora de exceso, una
para cada desigualdad para compensar la diferencia. El procedimiento iterativo se vuelve similar al anterior,
3
sólo que en éste, al contrario, se busca minimizar z. Las ecuaciones (13) y (15) ahora cambian sustituyendo
−I en lugar de I, -1 en lugar de 1 y c en lugar de −c, como se indica a continuación
⎧ ⎫
⎨ z ⎬
−1 c 0 0
. x = (19)
0 A −I ⎩ ⎭ b
xs
NO LINEAL
4
(Signo de arriba para maximizar y el de abajo para minimizar) nos permite encontrar el nuevo iterado en la
iteración k + 1
x̂k+1 = x̂k + ω Δx̂k Jg (x) = [∇g(x)]t (24)
donde ∇h(x) es el gradiente de la función escalar h(x) evaluada en x y Jg (x) es el jacobiano de la función
vectorial g(x) evaluada en x y ω es el factor de relajación (∇ = ei ∂i ∈ Rn ).
Cuando pre-multiplicamos el sistema de ecuaciones lineales con desiguales incógnitas y ecuación por
[A(x̂k )]t igualamos el número de ecuaciones y variables a (n + m + 1), similar a como se hizo en (21). Con
lo cual nos queda el sistema lineal para la iteración k de la forma
[Â(x̂k )].Δx̂k = b̂(x̂k ) [Â(x̂k )] = [A(x̂k )]t . [A(x̂k )] b̂(x̂k ) = −[A(x̂k )]t . f (x̂k ) (25)
donde, después de operar con las matrices queda la matriz del sistema
⎡ ⎤
1 −∇h(x) 0
[Â(x̂)] = ⎣ −∇h(x) ∇h(x)t ∇h(x) + [Jg (x)]t .[Jg (x)] ±[Jg (x)] ⎦ (26.a)
0 ±Jg (x)] I
y el término independiente
⎧ ⎫
⎨ z − h(x) ⎬
b̂(x̂) = − ∇ht [ h(x) − z ] + [Jg (x)]t. [ g(x) ± I.xs − b ] (26.b)
⎩ ⎭
±[ g(x) ± I.xs − b ]
los cuales cambian ambos en cada iteración. La observaciones hechas antes para el termino central de (21.b)
son también válidas para el término central de (26.a).
Este artı́culo es prácticamente una copia de la sección II.1.3.5 del capı́tulo II de [Granados,2024].
REFERENCIAS
[1] Dantzig, G. B. Linear Programming and Extensions Princeton University Press (New Jersey),
1963.
[2] Dantzig, G. B.; Thapa, M. N. Linear Programming, Vol.1 Introduction, Vol.2 Theory and Exten-
sions. Springer-Verlag (New York), 1997/2003.
[3] Granados M., A. L. Curso Sobre: Métodos Numéricos. Universidad Simón Bolı́var, Agosto, 2016.
Editorial Académica Española (ISBN 978-3-8417-5153-9 Saarbrücken, Alemania), Ago., 2016. Editorial
Digiterı́a (Depósito Legal MI2016000489 Caracas Venezuela), Nov., 2016. Revisión Ene., 2024.
[4] Hillier, F. S.; Gerald J. Lieberman, G. J. Introducción a La Investigacion de Operaciones, 9na
Edición. McGraw-Hill (México), 2010.
[5] Taha, H. A. Investigacion de Operaciones, 9na Edición. Pearson Educación (México), 2012.