Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacion Lineal
Programacion Lineal
L INEAL
Noviembre 2012
Índice general 2
5. INTERPRETACIÓN TÉCNICO-ECONÓMICA 33
5.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.1.1. Ejemplo de aplicación . . . . . . . . . . . . . . . . . . . . 34
5.2. Tasas de sustitución . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2.1. Discusión teórica . . . . . . . . . . . . . . . . . . . . . . . 36
5.2.2. Ejemplo de aplicación . . . . . . . . . . . . . . . . . . . . 36
5.3. Multiplicadores del simplex . . . . . . . . . . . . . . . . . . . . . 37
5.3.1. Discusión teórica . . . . . . . . . . . . . . . . . . . . . . . 37
5.3.2. Ejemplo de aplicación . . . . . . . . . . . . . . . . . . . . 39
5.4. Criterios del simplex . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.4.1. Discusión teórica . . . . . . . . . . . . . . . . . . . . . . . 39
5.4.2. Ejemplo de aplicación . . . . . . . . . . . . . . . . . . . . 41
6. INTERPRETACIÓN GRÁFICA 44
6.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.2. Conceptos generales . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.3. Método del Simplex . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.4. Método de las dos fases y de la M grande . . . . . . . . . . . . 55
6.5. Método de Lemke . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
8. CASOS ESPECIALES 64
8.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.2. Óptimo múltiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.3. Solución degenerada . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.4. Problema no factible . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.5. Región de factibilidad no acotada . . . . . . . . . . . . . . . . . 69
9. POSTOPTIMIZACIÓN 73
9.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
9.2. Cambio en b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
9.3. Cambio en c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
9.4. Nueva actividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
9.5. Nueva restricción . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Índice general 4
INTRODUCCIÓN A LA PROGRAMACIÓN
LINEAL. TEOREMA FUNDAMENTAL
1.1. Introducción
Un conjunto de valores x es una solución factible del problema si cumple el Solución factible
sistema de ecuaciones Ax = b (es solución) y cumple que x ≥ 0, es decir todos
los valores son no negativos.
1.2.1. Enunciado
tiera una submatriz dentro de A con menos de m columnas linealmente dependientes, podrı́a
existir una solución linealmente dependiente con menos de m componentes.
Capı́tulo 1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL. TEOREMA FUNDAMENTAL 8
1.2.2. Demostración
Ay = 0 y
yi = 0 si xi = 0
cy ≥ 0 (si no es ası́, basta con cambiar de signo a y).
Efectivamente, es solución:
x 1 no es peor
z1 = cx 1 = c(x 0 + ty) = cx 0 + tcy = z0 + tcy (1.4) que x 0
Se puede dar un valor a t de manera que ninguna variable tenga valor negativo x 1 no es peor
y que tenga una componente nula más que x 0 . que x 0
xi0
t = min{i/yi ≤0} (1.6)
yi
Examinando de forma exhaustiva los casos que se pueden dar, la discusión Discusión
completa es la siguiente. completa
De acuerdo con lo que se sigue del teorema fundamental, siempre existe una Dónde buscar
solución óptima dentro del conjunto de todas las soluciones linealmente inde-
pendientes.
Solución inicial: x 0 = (0, 4, 14, 36, 130, 0, 9370)T , z0 = 388. Se trata de una
solución porque se cumple Ax = b. Efectivamente, se puede comprobar que:
⎛ ⎞
0
⎜ ⎟
⎜ 4 ⎟
⎛ ⎞⎜ ⎟ ⎛ ⎞
2 3 3 6 1 0 0 ⎜ ⎜ 14 ⎟
⎟ 400
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
Ax 0 = ⎝ 1 2 6 3 0 1 0 ⎠ ⎜ 36 ⎟ = ⎝ 200 ⎠ (1.8)
⎜ ⎟
5 5 5 5 0 0 1 ⎜ ⎜ 130 ⎟
⎟ 1000
⎜ ⎟
⎝ 0 ⎠
9370
O lo que es equivalente:
Capı́tulo 1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL. TEOREMA FUNDAMENTAL 11
⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞
2 3 3 6 1 0 0
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
0 ⎝ 1 ⎠ + y2 ⎝ 2 ⎠ + y3 ⎝ 6 ⎠ + y4 ⎝ 3 ⎠ + y5 ⎝ 0 ⎠ + 0 ⎝ 1 ⎠ + y7 ⎝ 0 ⎠ =
5 5 5 5 0 0 1
⎛ ⎞
0
⎜ ⎟
=⎝ 0 ⎠
0
(1.10)
Un posible vector y es y = (0, 0,1, −0,567, 1,067, −5, 0, −3)T , con el que es Primera
posible construir una nueva solución x 1 iteración
⎛ ⎞ ⎛ ⎞ La nueva
0 0
⎜ ⎟ ⎜ ⎟ solución
⎜ 4 ⎟ ⎜ 0,1 ⎟
⎜ ⎟ ⎜ ⎟
⎜ 14 ⎟ ⎜ −0,567 ⎟
⎜ ⎟ ⎜ ⎟
1 0 ⎜ ⎟ ⎜ ⎟
x = x + ty = ⎜ 36 ⎟+t⎜ 1,067 ⎟ (1.11)
⎜ ⎟ ⎜ ⎟
⎜ 130 ⎟ ⎜ −5 ⎟
⎜ ⎟ ⎜ ⎟
⎜ ⎟ ⎜ ⎟
⎝ 0 ⎠ ⎝ 0 ⎠
9370 −3
⎛ ⎞
0
⎜ ⎟
⎜ 0,1 ⎟
⎜ ⎟
⎜ −0,567 ⎟
⎜ ⎟
⎜ ⎟
cy = 4 4 6 8 0 0 0 ⎜ 1,067 ⎟ = 5,534 (1.13)
⎜ ⎟
⎜ −5 ⎟
⎜ ⎟
⎜ ⎟
⎝ 0 ⎠
−3
De no ser ası́, bastarı́a con cambiar el signo a y y todo lo anterior serı́a cierto. x 1 no peor que
1
Dado que cy > 0, el valor de la función de objetivo de x es mayor que la de x0
0
x en una cantidad igual a cy
cx 1 = c x 0 + tcy) =
⎛ ⎞ ⎛ ⎞
0 0
⎜ ⎟ ⎜ ⎟
⎜ 4 ⎟ ⎜ 0,1 ⎟
⎜ ⎟ ⎜ ⎟
⎜ 14 ⎟ ⎜ −0,567 ⎟
⎜ ⎟
⎜ ⎟
⎜ ⎟ ⎜ ⎟
4 4 6 8 0 0 0 ⎜ 36 ⎟ + t 4 4 6 8 0 0 0 ⎜ 1,067 ⎟ =
⎜ ⎟ ⎜ ⎟
⎜ 130 ⎟ ⎜ −5 ⎟
⎜ ⎟ ⎜ ⎟
⎜ ⎟ ⎜ ⎟
⎝ 0 ⎠ ⎝ 0 ⎠
9370 −3
388 + 24,56 × 5,534
(1.14)
Dado que sólo y3 , y5 e y7 son negativas, solo es posible que las componentes
x3 , x5 y x7 se hagan nulas con t > 0. En particular, los valores que hacen
14
respectivamente 0 cada una de esas componentes de x 1 son 0,57 , 130
5 y
9730
3 .
En menor valor de los anteriores hace que una componente, x3 , se haga nula y
no se haga negativa ninguna de las otras dos.
14 130 9730
t = min , , = 24,56 (1.15)
0,57 5 3
z1 = 524,68
z2 = 533,38
Capı́tulo 2
2.1. Introducción
maz z =cx
s.a:
(2.1)
Ax = b
x≥0
Además:
Dada una solución básica, con base B, hay dos tipos de variables:
Donde
Dada una base B, se cumple Ax = b o, lo que es lo mismo, dado que todas Si entra xk
las variables no básicas son nulas: BuB = b. Si introducimos la variable xk con cambia el valor
nivel de realización t, la expresión se convierte en: de las variables
básicas
BuB (t) + tAk = b (2.8)
Por lo tanto, si VkB es positivo, la nueva función objetivo es mayor. En concreto, Intepretación de
V B representa el incremento unitario de la función objetivo al introducir xk . VB
uBk
uB (t) = uB − tpkB ⇒ uBk (t) = uB − t B (2.13)
pjk
B
pjk representa cuánto disminuye el valor de la j-ésima variable básica cuando Interpretación
se introduce la variable no básica k con valor igual a 1. de p B
Otra forma de justificarlo es la siguiente. Dada una solución básica con base B:
V B ≤ 0 ⇒ c − c B B −1 A ≤ 0 (2.14)
cx − c B B −1 Ax = z − c B B −1 b = z − c B uB = z − zB ≤ 0 ⇒ zB ≥ z (2.15)
2.5. Ejemplo
El problema
max. z =1x1 + 2x2 + 3x3
1x1 + 2x2 + 1x3 + x4 = 16
3x1 − 2x2 + 2x3 + x5 = 26 (2.16)
1x1 + 0x2 + 2x3 + x6 = 24
xi ≥ 0, i = 1 · · · 6
⎛ ⎞
1 0 0
⎜ ⎟
B1 = (A5 A6 A7 ) = ⎝ 0 1 0 ⎠ (2.17)
0 0 1
En este caso, la inversa de la base es la identidad también, pero solo en este La inversa de la
caso. base
⎛ ⎞
1 0 0
⎜ ⎟
B1−1 =⎝ 0 1 0 ⎠ (2.18)
0 0 1
Capı́tulo 2. FUNDAMENTOS DEL MÉTODO DEL SIMPLEX 19
En este caso, el nivel de realización coincide con b, pero solo en este caso. El nivel de
realización de
⎛ ⎞⎛ ⎞ ⎛ ⎞ las variables
1 0 0 16 16 básicas
⎜ ⎟⎜ ⎟ ⎜ ⎟
uB1 = B1−1 b = ⎝ 0 1 0 ⎠ ⎝ 26 ⎠ = ⎝ 26 ⎠ (2.19)
0 0 1 24 24
En este caso, las tasas de sustitución coinciden con la matriz de coeficientes Las tasas de
técnicos, pero solo en este caso. sustitución
⎛ ⎞⎛ ⎞
1 0 0 1 2 1 1 0 0
−1 ⎜ ⎟⎜ ⎟
p B1 = B1 A = ⎝ 0 1 0 ⎠⎝ 3 −2 2 0 1 0 ⎠=
0 0 1 1 0 2 0 0 1
⎛ ⎞ (2.21)
1 2 1 1 0 0
⎜ ⎟
⎝ 3 −2 2 0 1 0 ⎠
1 0 2 0 0 1
c B1 = 0 0 0 (2.22)
El criterio del Simplex es igual a c, pero sólo en este caso. El criterio del
Simplex
V B1 = c − c B1 B −1 A = 1 2 3 0 0 0
⎛ ⎞⎛ ⎞
1 0 0 1 2 1 1 0 0
⎜ ⎟⎜ ⎟
− 0 0 0 ⎝ 0 1 0 ⎠⎝ 3 −2 2 0 1 0 ⎠= (2.23)
0 0 1 1 0 2 0 0 1
= 1 2 3 0 0 0
Capı́tulo 2. FUNDAMENTOS DEL MÉTODO DEL SIMPLEX 20
Aquella de las no básicas con criterio del Simplex positivo y, de entre ellas, la Variable de
mayor. En este caso, la variable de entrada es x3 . entrada
Las tasas de sustitución de la variable x3 con respecto a las variables básicas Variable de
B
son p3 1 salida
⎛ ⎞⎛ ⎞ ⎛ ⎞
1 0 0 1 1
⎜ ⎟⎜ ⎟ ⎜ ⎟
= B −1 A3 = ⎝ 0
B
p3 1 1 0 ⎠⎝ 2 ⎠ = ⎝ 2 ⎠ (2.24)
0 0 1 2 2
Las variables candidatas a salir de la base son aquellas que tienen tasa de
sutitución postiva con respecto a x3 , que son las tres variables básicas. Aquella
uBi
que sale es aquella correspondiente al menor cociente de B , que será el valor
p3i1
t de la variable de entrada:
16 26 24
t = min , , = 12 (2.25)
1 2 2
Los valores de las variables básicas de la primera base cambian al introducir Nuevos valores
x3 de las variables
básicas
⎛ ⎞ ⎛ ⎞
16 1
B ⎜ ⎟ ⎜ ⎟
uB1 (t) = uB1 − tp3 1 = ⎝ 26 ⎠ − t ⎝ 2 ⎠ (2.26)
24 2
⎛ ⎞ ⎛ ⎞ ⎛ ⎞
16 1 4
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
uB1 (12) = ⎝ 26 ⎠ − 12 ⎝ 2 ⎠ = ⎝ 2 ⎠ (2.27)
24 2 0
Hacer solo 12 unidades de producto P3 y nada del resto. Variables básicas: x4 , Solución inicial
x5 y x3 .
⎛ ⎞
1 0 1
⎜ ⎟
B2 = ⎝ 0 1 2 ⎠ (2.28)
0 0 2
⎛ ⎞ La función
4
B2 2 B2 B2 ⎜ ⎟ objetivo
z = cx = c u = 0 0 3 ⎝ 2 ⎠ = 36 (2.31)
12
B
En efecto, como esperábamos z2 = z1 + x3 V3 1 = 0 + 36 = 36
En este caso, las tasas de sustitución no coinciden con la matriz de coeficientes Las tasas de
técnicos. sustitución
⎛ ⎞⎛ ⎞
1 0 − 12 1 2 1 1 0 0
⎜ ⎟⎜ ⎟
p B2 = B2−1 A = ⎜
⎝ 0 1 −1 ⎟ ⎠⎝ 3 −2 2 0 1 0 ⎠=
1
0 0 2
1 0 2 0 0 1
⎛ ⎞ (2.32)
1
2 0 1 0 − 12
⎜ 2 ⎟
⎜ 2 −2 0 0 1 −1 ⎟
⎝ ⎠
1 1
2 0 1 0 0 2
Capı́tulo 2. FUNDAMENTOS DEL MÉTODO DEL SIMPLEX 22
c B2 = 0 0 3 (2.33)
Aquella de las no básicas con criterio del Simplex positivo y, de entre ellas, la Variable de
mayor. En este caso, la variable de entrada es x2 . entrada
Las tasas de sustitución de la variable x2 con respecto a las variables básicas Variable de
B
son p2 2 salida
⎛ ⎞⎛ ⎞ ⎛ ⎞
1 0 − 12 2 2
⎜ ⎟⎜ ⎟ ⎜ ⎟
= B2−1 A2 = ⎜ −1 ⎟
B
p2 2 ⎝ 0 1 ⎠ ⎝ −2 ⎠ = ⎝ −2 ⎠ (2.35)
1
0 0 2
0 0
Las variables candidatas a salir de la base son aquellas que tienen tasa de
sutitución postiva con respecto a x2 , que son la variables básica x4 . Aquela
uBi
que sale es aquella correspondiente al menor cociente de B , que será el valor
p2i2
t de la variable de entrada:
4
t= =2 (2.36)
2
Capı́tulo 2. FUNDAMENTOS DEL MÉTODO DEL SIMPLEX 23
Los valores de las variables básicas de la primera base cambian al introducir Nuevos valores
x3 de las variables
básicas
⎛ ⎞ ⎛ ⎞
4 2
B ⎜ ⎟ ⎜ ⎟
uB2 (t) = uB2 − tp2 2 = ⎝ 2 ⎠ − t ⎝ −2 ⎠ (2.37)
12 0
⎛ ⎞ ⎛ ⎞ ⎛ ⎞
4 2 0
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
uB2 (2) = ⎝ 2 ⎠ − 2 ⎝ −2 ⎠ = ⎝ 6 ⎠ (2.38)
12 0 12
⎛ ⎞
2 0 1
⎜ ⎟
B3 = ⎝ −2 1 2 ⎠ (2.39)
0 0 2
⎛ ⎞ La función
2
⎜ ⎟ objetivo
zB3 = cx 3 = c B3 uB3 = 2 0 3 ⎝ 6 ⎠ = 40 (2.42)
12
B
En efecto, como esperábamos z3 = z2 + x2 V2 2 = 36 + 2 × 2 = 40
En este caso, las tasas de sustitución son las siguientes. Las tasas de
sustitución
⎛ ⎞⎛ ⎞
1
0 − 14 1 2 1 1 0 0
⎜ 2 ⎟⎜ ⎟
p B3 = B3−1 A = ⎜
⎝ 1 1 − 32 ⎟ ⎝
⎠ 3 −2 2 0 1 0 ⎠=
1
0 0 2
1 0 2 0 0 1
⎛ ⎞ (2.43)
1 1
1 0 0 − 14
⎜ 4 2 ⎟
⎜ 5
0 0 1 1 − 32 ⎟
⎝ 2 ⎠
1 1
2 0 1 0 0 2
c B3 = 2 0 3 (2.44)
3.1. Introducción
Operar por filas una matriz es idéntico a premultipilcar por una matriz
En 3.3, la matriz A
se puede obtener a patir de la matriz A de la siguiente
manera.
F 1
= 2 × F 1
F 2
= F 2 + F 1
= F 2 + 2 × F 1
F 3
= F 3
⎛ ⎞ ⎛ ⎞
1 −1 3 2 −2 6
⎜ ⎟
⎜ ⎟
A=⎝ 2 1 0 ⎠ A =⎝ 4 −1 6 ⎠ (3.3)
0 4 1 0 4 1
Finalmente:
0 c cB 0 −z VB 0 −π B
-
b A B I uB pB I B −1
(3.6)
Capı́tulo 3. MÉTODO DEL SIMPLEX.VARIANTE DE LA MATRIZ COMPLETA 27
3.3. Ejemplo
x1 x2 x3 x4 x5 x6
0 1 2 3 0 0 0 F0
16 1 1 1 1 0 0 F1
26 3 -2 2 0 1 0 F2
24 1 0 2 0 0 1 F3
0 1 2 3 0 0 0 F0
= F0
x4 16 1 1 1 1 0 0 F1
= F1
x5 26 3 -2 2 0 1 0 F2
= F2
x6 24 1 0 2 0 0 1 F3
= F3
-36 − 21 2 0 0 0 − 32 F0
= F0
− 3F3
x4 4 1
2 2 0 1 0 − 12 F1
= F1
− F3
x5 2 2 -2 0 0 1 -1 F2
= F2
− 2F3
x3 12 1
2 0 1 0 0 1
2 F3
= F3
/2
-40 -1 0 0 -1 0 -1 F0
= F0
− 2F1
x2 2 1
4 1 0 1
2 0 − 14 F1
= F1
/2
x5 6 5
2 0 0 1 1 − 32 F2
= F2
+ 2F1
x3 12 1
2 0 1 0 0 1
2 F3
= F3
Capı́tulo 4
4.1. Introducción
Para aplicar el método del Simplex es necesario disponer de una solución Por qué estos
básica factible de partida del sistema Ax = b a partir de la cual iterar. métodos
Cuando todas las restricciones son ≤ con término independiente no negativo, Solución inicial
es decir, de la forma: sencilla
aij xj ≤ bi bi ≥ 0 (4.1)
j
aij xj + hi = bi bi ≥ 0 (4.2)
j
En este caso existe una solución de partida básica factible inicial trivial, con las Solución inicial
variables de holgura como variables básicas. Para esta solución: trivial
aij xj ≥ bi bi ≥ 0
j
(4.3)
aij xj − hi = bi bi ≥ 0
j
aij xj = bi
(4.4)
j
ai
j xj ≥ bi
j (4.5)
ai
j xj = bi
xj ≥ 0
max. z = cx
aij xj + hi = bi
j
ai
j xj − hi
= bi
(4.6)
j
ai
j xj = bi
xj , hi , hi
≥ 0
Capı́tulo 4. MÉTODOS DE LA M GRANDE Y DE LAS DOS FASES 30
i
i
aij xj + hi = bi
j
ai
j xj − hi
+ ai
= bi
(4.7)
j
ai
j xj + ai
= bi
xj , hi , hi
, ai
, ai
≥ 0
se
denominan variables artificiales.
1. Dado P construir P
Método de
2. Resolver P
: resolución
a) Si al resolver P
mediante el método del simplex se obtiene una
solución básica factible de P
en la que todas la variables artificiales
son nulas, esa es una solució básica de partida del problema P ,
que puede servir de solución de partida para aplicar el método del
Simplex en la resolución de P .
b) Si para cualquier solución óptima de P
, siempre al menos una va-
riable artificial toma un valor no nulo, P no tiene solución factible.
P y P
solo se diferencian en que P
tiene un conjunto de actividades adiciona- Relación entre P
les (las ficticias), lo cual es traduce en y P
B = B
, c B = c B , uB = uB , por lo que:
VB = VB
pB = pB
uB = uB
zB = zB
Las columnas auxiliares de las variables correspondientes a las variables arti- Las columnas
ficiales permiten disponer, en todo momento, de parte de las columnas de la de las variables
inversa de la base. artificiales
i
i
aij xj + hi = bi
j
ai
j xj − hi
+ ai
= bi
(4.8)
j
ai
j xj + ai
= bi
xj , hi , hi
, ai
, ai
≥ 0
1. Dado P construir P
Método de
2. Resolver P
: resolución
a) Si al resolver P
mediante el método del simplex se obtiene una
solución básica factible de P
en la que todas la variables artificiales
son nulas, esa es una solución básica de partida del problema P ,
que puede servir de solución de partida para aplicar el método del
Simplex en la resolución de P .
b) Si para cualquier solución óptima de P
, siempre al menos una va-
riable artificial toma un valor no nulo, P no tiene solución factible.
Los problemas P y P
se diferencian en lo siguiente: Diferencias
entre P y P
que P
tiene un conjunto de actividades adicionales (las ficticias) y
que las contribuciones unitarias al beneficio, c y c
son diferentes.
Los problemas P y P
comparten: Analogı́as entre
P y P
B = B
B −1 = B
−1
uB = u
B (ya que B −1 b = B
−1 b
)
p B = p
B
c B ≠c’B
zB ≠ z
B
B
V ≠V
B
Las columnas auxiliares de las variables correspondientes a las variables arti- Las columnas
ficiales permiten disponer, en todo momento, de parte de las columnas de la de las variables
inversa de la base. artificiales
Capı́tulo 4. MÉTODOS DE LA M GRANDE Y DE LAS DOS FASES 33
4.4. Ejemplos
max. z
= x1 + 2x2 + 3x3 − Ma2 − Ma3 Problema P’
x1 + x2 + x3 + h1 = 16
3x1 + 2x2 + 2x3 + a2 = 26 (4.11)
x1 + x3 − h3 + a3 = 10
x1 , x2 , x3 , h1 , h3 , a2 , a3 ≥ 0
Capı́tulo 4. MÉTODOS DE LA M GRANDE Y DE LAS DOS FASES 34
x1 x2 x3 h3 h1 a2 a3
0 1 2 3 0 0 -M -M F0
16 1 1 1 0 1 0 0 F1
26 3 2 2 0 0 1 0 F2
10 1 0 1 -1 0 0 1 F3
= F 0
− (1 + 4M)F 2
22 1 1 −1
h1 3 0 3 3 0 1 3 0 F 1
= F 1
− F 2
26 2 2 1
x1 3 1 3 3 0 0 3 0 F 2
= F 2
/3
4 −2 1 −1
a3 3 0 3 3 -1 0 3 1 F 3
= F 3
− F 2
= F 0
− 7+M
3 F3
h1 6 0 1 0 1 1 0 -1 F 1
= F 1 − 1/3F 3
x1 6 1 2 0 2 0 1 -2 F 2
= F 2
− 2/3F 3
x3 4 0 -2 1 -3 0 -1 3 F 3
= 3F 3
x1 x2 x3 h3 h1 a2 a3
-18 0 6 0 7 0 2 -7
h1 6 0 1 0 1 1 0 -1
x1 6 1 2 0 2 0 1 -2
x3 4 0 -2 1 -3 0 -1 3
-39 − 27 -1 0 0 0 − 32 -0
h1 3 − 21 0 0 0 1 − 12 -0
1 1
h3 3 2 1 0 1 0 2 -1
3 1
x3 13 2 1 1 0 0 2 0
max. z
= −a2 − a3 Problema P’
x1 + x2 + x3 + h1 = 16
3x1 + 2x2 + 2x3 + a2 = 26 (4.14)
x1 + x3 − h3 + a3 = 10
x1 , x2 , x3 , h1 , h3 , a2 , a3 ≥ 0
x1 x2 x3 h3 h1 a2 a3
fase 1 0 0 0 0 0 0 -1 -1 F 01
fase 2 0 1 2 3 0 0 0 0 F 02
16 1 1 1 0 1 0 0 F1
26 3 2 2 0 0 1 0 F2
10 1 0 1 -1 0 0 1 F3
fase 1 36 4 2 3 -1 0 0 0 F 0
1 = F 01 + F 2
+ F 3
fase 2 0 1 2 3 0 0 0 0 F 0
2 = F 02
h1 16 1 1 1 0 1 0 0 F 1
= F 1
a2 26 3 2 2 0 0 1 0 F 2
= F 2
a3 10 1 0 1 -1 0 0 1 F 3
= F 3
fase 1 4
3 0 − 23 1
3 -1 0 − 43 0 F 0
1 = F 01 − 4F 2
fase 2 − 26
3 0 4
3
7
3 0 0 − 13 0 F 02 = F 01 − F 2
22 1 1
h1 3 0 3 3 0 1 − 13 0 F 1
= F 1
− F 2
26 2 2 1
x1 3 1 3 3 0 0 3 0 F 2
= F 2
/3
4
a3 3 0 − 23 1
3 -1 0 − 13 1 F 3
= F 3
− F 2
fase 1 0 0 0 0 0 0 -1 -1 F 0
1 = F 0
1
1 − 3F3
F 0
7
fase 2 -18 0 6 0 7 0 2 -7 2 = F 01 − 3 F 3
h1 6 0 1 0 1 1 0 -1 F 1
= F 1
− 1/3F 3
x1 6 1 2 0 2 0 1 -2 F 2
= F 2
− 2/3F 3
x3 4 0 -2 1 -3 0 -1 3 F 3
= 3F 3
Capı́tulo 5
INTERPRETACIÓN TÉCNICO-ECONÓMICA
5.1. Introducción
c
b
A
Para un problema y una base B (que caracteriza a la solución básica corres- Elementos
pondiente), existen varios elementos caracterı́sticos de esa solución para ese caracterı́sticos
problema de una solución
uB
cB
pB
πB
En otro contexto, el valor que tiene un vaso de agua cuando alguien lleva varios Un ejemplo más
dı́as sin suministro en el desierto es muy diferente del valor que tiene ese vaso doméstico
de agua en el domicilio de una ciudad con un buen suministro de agua potable
corriente. El vaso de agua es el mismo pero el valor depende de la situación.
Aquı́ diremos que los recursos tienen diferente valor según la solución, es
decir, según la base elegida.
Capı́tulo 5. INTERPRETACIÓN TÉCNICO-ECONÓMICA 37
Para ilustrar la interpretación, en lo que sigue del capı́tulo emplearemos el Presentación del
siguiente ejemplo. Una empresa monta dos tipos de palés. Los palés de tipo problema
1 contienen un producto P1 y los palés de tipo 2 contienen, a su vez, dos
productos P2 .
Con la venta de cada palé de tipo 1, la empresa tiene un beneficio neto de 2 El beneficio
unidades monetarias (u.m.) Igualmente, la empresa tiene un beneficio neto de
1 u.m. con cada palé de tipo 2.
Los palés deben ser preparados en dos talleres, T1 y T2 , de los que se dispone Los talleres
de un total de 30 y 16 horas semanales, respectivamente, para realizar las
operaciones correspondientes a cada uno de ellos. Cada palé 1 requiere 3 horas
de preparación en T1 y 4 horas de preparación en T2 . Cada palé 2 requiere 1
hora de preparación en T1 y 3 horas de preparación en T2 .
Por último, existe un colectivo al respecto del cual la empresa tiene un compro-
miso consistente en emplear un número mı́nimo de horas de dicho colectivo.
Con cada palé de tipo 1 se emplea una hora de este colectivo y con cada palé 2
se ocupan 3 horas del mismo. La empresa debe ocupar al menos 5 horas de
mano de obra del colectivo citado.
h1 = 167/9, es decir, el taller T1 no está ocupado todo el tiempo. De las Uso de los
30 horas, está ocioso un total de 18.56 horas. recursos
h2 = 0, es decir, el taller T2 está ocupado las 16 horas en las que está dis-
ponible cada semana.
h3 = 5/9, es decir, se producen 0.56 palés más del mı́nimo comprometi-
do. Es decir, se entregan 4.56 por término medio cada semana.
h4 = 0, es decir, el nivel de ocupación del colectivo al que se refiere el
compromiso está ocupado un número de horas igual al mı́nimo.
Capı́tulo 5. INTERPRETACIÓN TÉCNICO-ECONÓMICA 39
B
El elemento pij relaciona la variable básica que ocupa la posición i-ésima y la
B
variable j-ésima del problema. En particular, pij representa en qué medida dis-
minuye el nivel de realización de la actividad básica i-ésima cuando se realiza
la actividad j-ésima con valor unitario. De otra manera:
B
pij = −ΔuBi |xj =1 (5.4)
Por ejemplo, las tasas de sutitución de la variable h2 con respecto a las varia-
bles básicas se discuten a continuación.
π B = c B B −1 (5.6)
z = c B uB = c B B −1 b = π B b (5.7)
La relación que existe entre los multiplicadores del simplex y los valores de los
criterios del simplex es la siguiente.
5 2
π B = π1B , π2B , π3B , π4B = 0, , 0, − (5.11)
9 9
V B = c − c B B −1 A (5.12)
Capı́tulo 5. INTERPRETACIÓN TÉCNICO-ECONÓMICA 43
VkB = ck − c B B −1 Ak (5.13)
VkB = ck − c B pkB
VkB = ck − π B Ak
x1 x2 h1 h2 h3 h4 Otra solución
-2 3/2 0 0 0 1/2 0
h1 28 5/2 0 1 1 1/2 0
h2 10 5/2 0 0 0 3/2 0
h4 1 1/2 0 0 0 -3/2 1
x2 2 1/2 1 0 0 -1/2 0
c B = (0, 0, 0, 1) c B p1B
(5.15)
5 5 1 1 T
pB = , , ,
2 2 2 2
1
Es decir, dejamos de ganar 2
π B = (0, 0, −1, 0)
T (5.16)
1
A1 = 3, 4, − , 0
2
1
Es decir, dejamos de ganar 2
Netamente: V1B = c1 − π B A1
INTERPRETACIÓN GRÁFICA
6.1. Introducción
Existe una forma de abordar lo que aquı́ se presenta de forma muy somera Teorı́a de
conocida como teorı́a de poliedros, sı́ resulta útil para el tratamiento y la reso- poliedros
lución de problemas de Programación Lineal, pero que queda fuera del alcance
de este texto.
maz z =cx
s.a:
(6.1)
Ax = b
x≥0
x ∈ R+
2×1 Dimensiones
A ∈ Rm×2
c ∈ R1×2
b ∈ Rm×1
max z = x1 + 2x2
sujeto a:
−2x1 + x2 ≤ 2 Restricción R1
(6.2)
x1 + x2 ≤ 6 Restricción R2
2x1 + x2 ≤ 10 Restricción R3
x1 , x2 ≥ 0
En la figura 6.1, aparecen representadas las tres restricciones. Cada restricción Restricciones
de tipo ≤ o ≥ divide al plano en dos semiplanos, de tal manera que uno de
ellos corresponde a soluciones factibles con respecto a dicha restricción y el
otro semiplano a soluciones con factibles con respecto a la misma restricción.
max z = x1 + 2x2
sujeto a:
−2x1 + x2 + h1 = 2
(6.3)
x1 + x2 + h2 = 6
2x1 + x2 + h3 = 10
x1 , x2 h1 h2 h3 ≥ 0
Por ejemplo:
El punto (4, 2)
• Está a la derecha de la recta R1 , el su semiplano factible, con lo que
h1 > 0
• Está sobre la recta R2 , con lo que h2 = 0
• Está sobre la recta R3 , con lo que h3 = 0
El punto (1, 6)
• Está a la izquierda de la recta R1 , el su semiplano no factible, con
lo que h1 < 0
Capı́tulo 6. INTERPRETACIÓN GRÁFICA 49
Las restricciones funcionales junto con las restricciones de no negatividad de- Región de
finen la región de factiblidad (sombreada en la figura 6.2). Cualquier punto soluciones
perteneciente a la región de soluciones factibles cumple con todas las restric- factibles
ciones, incluidas las de no negatividad.
La función objetivo se puede entender como un haz de rectas paralelas c1 x1 + Haz de rectas
c2 x2 = k.
Capı́tulo 6. INTERPRETACIÓN GRÁFICA 51
En el ejemplo del problema, la recta x1 + 2x2 = 14 es el conjunto de todas las Función objetivo
soluciones que proporcionan un valor de la función objetivo de 14. Ninguno
de los puntos de dicha recta están en la región de soluciones factibles, por lo
que no existe ninguna solución factible que proporcione un valor de z = 14.
Lo mismo ocurre con z = 12.
m variables básicas y
2 variables no básicas.
Capı́tulo 6. INTERPRETACIÓN GRÁFICA 52
Es decir en una solución básica, como mı́nimo, debe haber dos variables nulas:
el eje de coordenadas,
cada una de las intersecciones de una restricción con cada uno de los
ejes y
cada una de las intersecciones de los difernetes pares de restricciones.
Por otro lado, en el caso de que todas las retricciones tengan variables
de
hol- Número de
m+2 soluciones
gura, el problema tiene un número de soluciones básicas igual =
m básicas
2m2 + 2m − 4
Capı́tulo 6. INTERPRETACIÓN GRÁFICA 53
De las soluciones básicas anteriores, algunas son factibles (en azul) y otras son
no factibles (en rojo). Y de las factibles, aquella que tiene una función objetivo
mayor es la solución óptima del problema.
Capı́tulo 6. INTERPRETACIÓN GRÁFICA 54
x NB , no está sobre ninguna restricción, ni sobre ningún eje, con lo que tiene
cinco componentes no nulas (es decir, todas). Siguiendo el camino verde, nos
desplazamos primero a una solución no básica sobre el eje x1 (con una com-
ponente nula adicional: x2 ). Y, desde ella es posible llegar a x 3 , en la que hay
dos componentes nulas: x2 y h3 y tres no nulas: es una solución básica y mejor
que la de partida.
El método del Simplex, al cual se dedicaron los capı́tulos 2 y 3, opera transi- Lógica general
tando de solución básica factible en solución básica factible hasta llegar a una
que es óptima. En la figura 6.8, en particular, se muestran dos posibles transi-
ciones, la primera entre las soluciones x 1 y x 5 y la segunda entre x 5 y x 7 , que
es la solución óptima. Como se ha comentado antes, las solución básicas son
los vértices del polı́gono de la región de factiblidad.
Capı́tulo 6. INTERPRETACIÓN GRÁFICA 56
El cada iteración del método del simplex, se introduce una variable nueva en Regla de
la base con un valor que hace que una de las que era básica, se haga cero. supresión p B
Por ejemplo, si a partir de x 1 , decidimos que la variable x2 deje de ser cero,
podemos acceder a tres nuevas soluciones básicas:
En el ejemplo anterior, las tres soluciones a las que se puede acceder desde
x1 son básicas, pero solo una es factible. La regla de supresión del método del
simplex garantiza que al introducir una nueva variable, el valor con el que esta
entra no hace ninguna de las variables negativas, por lo que siempre se accede
a una nueva solución básica factible.
Capı́tulo 6. INTERPRETACIÓN GRÁFICA 58
Pendiente Problema
auxiliar
Pendiente Regiones de
factibilidad de P
Pendiente y de P
Iteraciones del
problema P
Pendiente Regla de
supresión V B
Pendiente Regla de
introducción p B
Pendiente Criterio de
factiblidad
Capı́tulo 7
7.1. Introduction
Lógica del
método del
Simplex
En este capı́tulo se va a presentar el método de Lemke, o dual del Simplex, que Lógica del
también permite resolver problemas de Programación Lineal. En este método método de
consistı́a en, a partir de una solución básica que cumple el criterio de optimali- Lemke
dad (V B ≤ 0) de partida, de forma iterativa, se transita por diferentes solución
básicas que también cumplen el criterio de optimalidad hasta alcanzar una que
también es factible.
Para aplicar el método de Lemke, de acuerdo con la lógica anterior, es necesa- Qué necesita-
rio: mos
En efecto:
Es decir, la solución en la que las variables básicas son las variables de holgura
es una solución que cumple el criterio de optimalidad y es básica, con lo cual
es una solución a partir de la cual se puede aplicar el método del ejemplo.
La tabla inicial a partir de la cual se podrı́a comenzar a iterar, tal y como se La tabla inicial
describe más adelante serı́a la siguiente.
x1 x2 x3 h1 h2 h3 La tabla inicial
0 -1 -2 -3 0 0 0
-10 -1 -2 -1 1 0 0
-20 -4 -2 -3 0 1 0
40 1 1 1 0 0 1
uB = B −1 b
zB = c B uB
Y no se modfiicarı́a:
VB
pB
Si el cambio de b hace que algún uBi sea negativo, la solución que era óptima
y factible deja de ser factible y sigue siendo cumpliendo V B ≤ 0, por lo que es
una solución a partir de la cual se puede aplicar el método de Lemke.
x1 x2 x3 x4 x5 x6
-40 -1 0 0 -1 0 -1
1 1
x2 2 4 1 0 2 0 − 14
5
x5 6 2 0 0 1 1 − 32
1 1
x3 12 2 0 1 0 0 2
Capı́tulo 7. MÉTODO DEL LEMKE 64
T
Si el nuevo vector fuera b
= 10 26 24 , el nuevo valor de uB serı́a el
siguiente.
⎛ ⎞⎛ ⎞ ⎛ ⎞
1
0 − 14 10 −1
⎜ 2 ⎟ ⎜ ⎟ ⎜ ⎟
uB = B −1 b
= ⎜
⎝ 1 1 − 32 ⎟
⎠ ⎝ 26 ⎠ = ⎝ 0 ⎠ (7.4)
1
0 0 2
24 12
T
El nuevo valor de z serı́a c B uB = 2 0 3 −1 0 12 = 34
x1 x2 x3 x4 x5 x6
-34 -1 0 0 -1 0 -1
1 1
x2 -1 4 1 0 2 0 − 14
5
x5 0 2 0 0 1 1 − 32
1 1
x3 12 2 0 1 0 0 2
A partir de esa tabla se podrı́a iterar aplicando el método de Lemke, tal y como
se comenta más adelante en el capı́tulo.
Pendiente
7.3. Reglas
uBi = maxuB <0 uBk (7.5)
k
VjB VkB
= minpB >0 B (7.6)
pij ik pik
Si, en general, entra la variable j-ésima del problema, los nuevos criterios del
Simplex son:
= pik B
VkB VkB − B Vj (7.7)
pij
Para garantizar que con la nueva base, se sigue cumpliendo el criterio de opti-
malidad se debe cumplir 7.6.
=
B
pik B
pik VkB VjB
VkB VkB − B VjB ≤ 0 ⇒ VkB ≤ B VjB ⇒ B ≥ B
B
dado que pik ≤0 (7.8)
pij pij pik pij
7.4. Ejemplo
Problema equivalente
max. (−z) = − 300x1 − 400x2 − 100x3 − 50x4
− 4x1 − 5x2 − 2x3 − x4 ≤ −800
− 2x1 − 4x2 − x3 ≤ −600 (7.10)
1x1 + x2 + 4x4 ≤ 2000
xi , hi ≥ 0
Capı́tulo 7. MÉTODO DEL LEMKE 66
Problema equivalente
max. (−z) = − 300x1 − 400x2 − 100x3 − 50x4
− 4x1 − 5x2 − 2x3 − x4 + h1 = −800
− 2x1 − 4x2 − x3 + h2 = −600 (7.11)
1x1 + x2 + 4x4 + h3 = 2000
xi , hi ≥ 0
x1 x2 x3 x4 h1 h2 h3
0 -300 -400 -100 -50 0 0 0 F0
h1 -800 -4 -5 -2 -1 1 0 0 F1
h2 -600 -2 -4 -1 0 0 1 0 F2
h3 2000 1 1 0 4 0 0 1 F3
40000 -100 -150 0 0 -50 0 0 F0
= F0 + 100F1
x3 400 2 5
2 1 1
2 − 12 0 0 F1
= −F1
/2
h2 -200 0 − 32 0 1
2 − 12 1 0 F2 = F2 + F1
h3 2000 1 1 0 0 0 0 1 F3
= F3
60000 -100 0 0 -50 0 -100 0 F0
= F0
+ 150F2
x3 200
3 2 0 1 4
3 − 43 5
3 0 F1
= F1
− 5/2F2
x2 400
3 0 1 0 − 13 − 13 − 23 0 F2
= −2/3F2
h3 5600
3 1 0 0 13
3 − 13 2
3 1 F3
= F3
− F2
Capı́tulo 8
CASOS ESPECIALES
8.1. Introducción
Pendiente
Además, todas las soluciones del tipo x = λx B + (1 − λ)x B con λ ∈ (0, 1) son Soluciones no
soluciones no básicas y óptimas del problema. básicas óptimas
Soluciones
1 Esto es ası́ siempre. Si existen variables básicas con tasas de sustitución positiva con respecto óptima básicas
a xk , una de ellas será la que abandone la base. Si todas las tasas de sustitución son negativas
se trata de un caso que se describe en la sección 8.5
Capı́tulo 8. CASOS ESPECIALES 69
x1 x2 h1 h2 h3
-12 0 0 -1 0 0
x1 4/3 1 0 1/3 -4/3 0
x2 2 0 1 0 1 0
h3 7/6 0 0 -1/3 7/3 1
-12 0 0 -1 0 0
x1 16/7 1 0 1/7 0 4/7
x2 9/7 0 1 1/7 0 -3/7
h2 5/7 0 0 -1/7 1 3/7
Se dice que una solución básica es degenerada si alguna de las variables básicas Caracterización
toma valor 0, es decir, algún uBi = 0 analı́tica
x1 x2 h1 h2 Solución del
-8 -5/3 0 -4/3 0 problema
x2 2 2/3 1 1/3 0
h2 0 -1/3 0 -2/3 1
-8 -1 0 0 -2
x2 2 1/2 1 0 1/2
h1 0 1/2 0 1 -3/2
-8 0 0 2 -5
x2 2 0 1 -1 2
x1 0 1 0 2 -3
Capı́tulo 8. CASOS ESPECIALES 70
Cuando se aplica el método del Simplex para resolver el problema auxiliar Caracterización
correspondiente al método de las dos fases o de la M grande, el problema analı́tica.
original no tiene solución factible si para todas las soluciones óptimas del Simplex
problema auxiliar existe al menos una variable artificial diferente de 0.
Esta serı́a la tabla a la que se llegarı́a aplicando el método de las dos fases. Aplicando las
dos fases
x1 x2 h2 h1 a2
2 0 -1 -1 -1 0
x1 1 1 2 0 1 0
a2 2 0 -1 -1 -1 1
x1 x2 h1 h2
0 -2 -3 0 0
h1 1 1 2 1 0
h2 -3 -1 -1 0 1
0 0 -1 0 -2
h1 -2 0 1 1 1
x1 3 1 1 0 -1
B
Si en la solución óptima existe una variable, xk , no básica, y pik ≤ 0 para Caracterización
todas las variables básicas (i = 1...m), entonces si al aumentar el valor de analı́tica
xk aumenta el valor de todas las variables básicas, con lo que la región de
soluciones factibles no está acotada.
Si el VkB ≤ 0, a pesar de que es posible introducir esta variable, con el con- Solución óptima
siguiente incremento de todas las variables básicas, la introducción de xk no única
resulta interesante, con lo que la solución óptima es única.
x1 x2 h1 h2 Solución del
-2/3 0 0 -1/3 -1/3 problema
x1 2/3 1 0 1/3 -2/3
x2 4/3 0 1 2/3 -1/3
x1 x2 h1 h2 Solución del
-4 0 0 -2 0 problema
x1 2/3 1 0 1/3 -2/3
x2 4/3 0 1 2/3 -1/3
x1 x2 h1 h2 Solución del
-21/3 0 0 -8/3 10/3 problema
x1 2/3 1 0 1/3 -2/3
x2 4/3 0 1 2/3 -1/3
Capı́tulo 9
POSTOPTIMIZACIÓN
9.1. Introduction
max z = cx
Ax = b (9.1)
x≥0
1. b
2. c
3. Aparición de una nueva actividad (una nueva columna en A y una nueva
componente en c)
4. Aparición de una nueva restricción (una nueva fila en A y una nueva
componente en b)
5. Cambio en aij
9.2. Cambio en b
1. u
B = B −1 b
2. z
= c B u
B
No cambia
1. B
2. B −1
3. p B = B −1 A
4. V B = c − c B B −1 A. En particular, al tratarse de la solución óptima V B ≤ 0
Capı́tulo 9. POSTOPTIMIZACIÓN 77
1. Si u
B
i ≥ 0 ∀i la solución sigue siendo factible y, como V ≤ 0, las varia-
B
2. Si ∃u
B
i < 0 la solución deja de ser factible pero cumple el criterio de op-
timalidad, V B ≤ 0. Se debe aplicar el método de Lemke hasta obtener una
solución que además de cumplir el crierio de optimalidad sea factible, la
nueva solución óptima, que tendrá un conjunto de variables básicas de
las de la solución original.
9.3. Cambio en c
1. z
= c
B uB
2. V B = c
− c
B B −1 A
No cambia:
1. B
2. B −1
3. p B = B −1 A
4. uB = B −1 b. En particular, como la solución era factible uB ≥ 0
1. Si Vj
B ≤ 0 ∀j la solución sigue siendo óptima y, como uB ≥ 0, las varia-
bles básicas son las mismas, con el mismo nivel de realización uB y un
nuevo valor de la función objetivo z
2. Si ∃Vj
B > 0 la solución deja de ser óptima pero sigue siendo factible,
uB ≥ 0: se debe aplicar el método de Simplex hasta obtener una solución
que además de ser factible cumpla el crierio de optimalidad, la nueva
solución óptima, que tendrá un conjunto de variables básicas de las de
la solución original.
Con la aparición de una nueva actividad, la solución óptima del problema pue-
de ser la misma o puede ser otra mejor.
alj xj ≤ bl alj xj + hl = bl
j j
(9.2)
alj xj ≥ bl alj xj − hl = bl
j j
⎧
⎨ a x
alj xj = bl equivalente a j lj j alj xj l (9.3)
⎩ j alj xj
j j
Se pueden dar dos situaciones, que la variable xj sea básica o que no.
1. Vj
B = cj − c B B −1 Aj
2. pj
B = B −1 Aj
No cambia:
1. B
2. B −1
3. z = c B uB
4. VkB , k ≠ j (no cambia el criterio del simplex del resto de variables básicas)
5. pk
B = B
−1 A
k k ≠ j
6. u
B = B
−1 b
Capı́tulo 9. POSTOPTIMIZACIÓN 80
si VjB > 0 interesa realizar dicha actividad , en cuyo caso habrı́a que apli-
car el método del Simplex y xj entrarı́a en la base en la primera iteración.
Se deberı́a iterar hasta alcanzar la nueva solución óptima;
si VjB ≤ 0 no interesa introducir la variable xj en la base y la solución
óptima no varı́a.
1. B
2. B
−1
3. u
B = B
−1 b
4. z
= c
B u
B
5. V
B = c − c
B B
−1 A
6. p
B = B
−1 A
V’B ≤ 0 ∃V B ≥ 0
u’B ≥ 0 Solución óptima Simplex
∃uB ≤ 0 Lemke -
9.7. Ejemplo
x1 x2 x3 h3 h1 a2 a3
-39 -7/2 -1 0 0 0 -3/2 0
h1 3 -1/2 0 0 0 1 -1/2 0
h3 3 1/2 1 0 1 0 1/2 -1
x3 13 3/2 1 1 0 0 1/2 0
Capı́tulo 9. POSTOPTIMIZACIÓN 81
9.7.1. Cambio de b
T
Supongamos que b
= 14 22 11 . El nuevo valor de las variables bási-
B
cas, u serı́a:
⎛ ⎞⎛ ⎞ ⎛ ⎞
1 −1/2 0 14 3
⎜ ⎟⎜ ⎟ ⎜ ⎟
u
B = B −1 b
= ⎝ 0 1/2 −1 ⎠ ⎝ 22 ⎠ = ⎝ 0 ⎠ (9.5)
0 1/2 0 11 11
T
Supongamos que b
= 12 26 11 . El nuevo valor de las variables bási-
B
cas, u serı́a:
⎛ ⎞⎛ ⎞ ⎛ ⎞
1 −1/2 0 12 −1
⎜ ⎟⎜ ⎟ ⎜ ⎟
u
B = B −1 b
= ⎝ 0 1/2 −1 ⎠ ⎝ 26 ⎠ = ⎝ 2 ⎠ (9.6)
0 1/2 0 11 13
x1 x2 x3 h3 h1 a2 a3
-39 -7/2 -1 0 0 0 -3/2 0
h1 -1 -1/2 0 0 0 1 -1/2 0
h3 2 1/2 1 0 1 0 1/2 -1
x3 13 3/2 1 1 0 0 1/2 0
-32 0 -1 0 0 -7 2 0
x1 2 1 0 0 0 -2 1 0
h3 1 0 1 0 1 1 0 -1
x3 10 0 1 1 0 3 -1 0
9.7.2. Cambio de c
Supongamos que c
= 2 2 4 0 0
V ‘B = c
− c
B B −1 A =
⎛ ⎞
−1/2 0 0 0 1
⎜ ⎟
2 2 4 0 0 − 0 0 4 ⎝ 1/2 1 0 1 0 ⎠ = −4 −2 0 0 0
3/2 1 1 0 0
(9.7)
Supongamos que c
= 6 1 3 0 0
V ‘B = c
− c
B B −1 A =
⎛ ⎞
−1/2 0 0 0 1
⎜ ⎟
6 1 3 0 0 − 0 0 3 ⎝ 1/2 1 0 1 0 ⎠ = 3/2 −2 0 0 0
3/2 1 1 0 0
(9.8)
x1 x2 x3 h3 h1 a2 a3
-39 3/2 -2 0 0 0 -3/2 0
h1 3 -1/2 0 0 0 1 -1/2 0
h3 3 1/2 1 0 1 0 1/2 -1
x3 13 3/2 1 1 0 0 1/2 0
-48 0 -5 0 -3 0 -3 3
h1 6 0 1 0 1 1 0 -1
x1 6 1 2 0 2 0 1 -2
x3 4 0 -2 1 -3 0 -1 3
c4 = 5
T
A4 = 1 1 1
Capı́tulo 9. POSTOPTIMIZACIÓN 83
V4B = c4
− c B B −1 A4 = c4
− π B A4
⎛ ⎞
1 (9.9)
⎜ ⎟
5 − 0 3/2 0 ⎝ 1 ⎠ = 7/2
1
p4B = B −1 A4 =
⎛ ⎞⎛ ⎞ ⎛ ⎞
1 −1/2 0 1 1/2
⎜ ⎟⎜ ⎟ ⎜ ⎟ (9.10)
⎝ 0 1/2 −1 ⎠ ⎝ 1 ⎠ = ⎝ −1/2 ⎠
0 1/2 0 1 1/2
x1 x2 x3 x4 h3 h1 a2 a3
-39 3/2 -2 0 7/2 0 0 -3/2 0
h1 3 -1/2 0 0 1/2 0 1 -1/2 0
h3 3 1/2 1 0 -1/2 1 0 1/2 -1
x3 13 3/2 1 1 1/2 0 0 1/2 0
-60 0 -1 0 0 0 -7 2 0
x4 6 -1 0 0 1 0 2 -1 0
h3 6 0 1 0 0 1 1 0 -1
x3 10 2 1 1 0 0 -1 1 0
x1 + x3 ≤ 15 (9.11)
x2 + x3 ≤ 10 (9.12)
Capı́tulo 9. POSTOPTIMIZACIÓN 84
x1 x2 x3 h3 h1 h4 a2 a3
-39 -7/2 -1 0 0 0 0 -3/2 0
h1 3 -1/2 0 0 0 1 0 -1/2 0
h3 3 1/2 1 0 1 0 0 1/2 -1
x3 13 3/2 1 1 0 0 0 1/2 0
10 0 1 1 0 0 1 1/2 0
h4 -3 -3/2 0 0 0 0 1 -1/2 0
-32 0 -1 0 0 0 7/3 2 0
h1 4 0 0 0 0 1 -1/3 1 0
h3 2 0 1 0 1 0 1/3 0 -1
x3 10 0 1 1 0 0 1 -1 0
x1 2 1 0 0 0 0 -2/3 1/3 0
⎛ ⎞⎛ ⎞
1 −1/2 0 b1
⎜ ⎟⎜ ⎟
uB = B −1 b = ⎝ 0 1/2 −1 ⎠ ⎝ 26 ⎠ =
0 1/2 0 10
⎛ ⎞ (9.14)
b1 − 13
⎜ ⎟
⎝ 3 ⎠ ≥ 0 ⇒ b1 ≥ 13
13
T
Si b = 16 b2 10 , el nuevo valor de las variables básicas, u
B serı́a: Análisis b2
⎛ ⎞⎛ ⎞
1 −1/2 0 16
⎜ ⎟⎜ ⎟
uB = B −1 b = ⎝ 0 1/2 −1 ⎠ ⎝ b2 ⎠ =
0 1/2 0 10
⎛ ⎞
16 − b2 /2
⎜ ⎟
⎝ b2 /2 − 10 ⎠ ≥ 0 ⇒ 20 ≤ b2 ≤ 32
b2 /2
(9.15)
Capı́tulo 9. POSTOPTIMIZACIÓN 85
T
Si b = 16 26 b3 , el nuevo valor de las variables básicas, u
B serı́a: Análisis b3
⎛ ⎞⎛ ⎞
1 −1/2 0 16
⎜ ⎟⎜ ⎟
uB = B −1 b = ⎝ 0 1/2 −1 ⎠ ⎝ 26 ⎠ =
0 1/2 0 b3
⎛ ⎞
3
⎜ ⎟
⎝ 13 − b3 ⎠ ≥ 0 ⇒ b3 ≤ 13
13
(9.16)
Resumen
13 ≤ b1 < ∞
20 ≤ b2 ≤ 32 (9.17)
−∞ < b3 ≤ 13
⎛ ⎞
1
⎜ ⎟
V1B = c1 − π B a2 = c1 − 0 3/2 0 ⎝ 3 ⎠ = c1 − 9/2 ≤ 0 ⇒ c1 ≤ 9/2
1
(9.18)
⎛ ⎞
1
⎜ ⎟
V2B = c2 − π B a3 = c2 − 0 3/2 0 ⎝ 2 ⎠ = c2 − 3 ≤ 0 ⇒ c2 ≤ 3 (9.19)
0
V B = c − c B B −1 A =
⎛ ⎞
−1/2 0 0 0 1
⎜ ⎟
1 2 c3 0 0 − 0 0 c3 ⎝ 1/2 1 0 1 0 ⎠= (9.20)
3/2 1 1 0 0
1 − 3/2c2 2 − c3 0 0 0 ≤ 0 ⇒ c3 ≥ 2
Capı́tulo 9. POSTOPTIMIZACIÓN 86
Resumen
−∞ < c1 ≤ 4,5
−∞ < c2 ≤ 3 (9.21)
2 ≤ c3 < ∞
Capı́tulo 9. POSTOPTIMIZACIÓN 87
Dado el problema
max z = x1 + 3x2
x1 + 2x2 ≤ 20
(9.22)
2x1 + x2 ≥ 20
x1, x2 ≥ 0
x1 x2 h1 h2
-80/3 0 0 -5/3 -1/3
x2 20/3 0 1 2/3 1/3
x1 20/3 1 0 -1/3 -2/3
PROGRAMACIÓN PARAMÉTRICA
10.1. Introducción
1. Cálculo de uB (λ0 )
2. Cálculo del λ1 y λ2 , tal que uB ≤ 0 si λ1 ≤ λ ≤ λ2
3. Para λ1 (ı́dem para λ2 )
a) si λ1 es −∞ (si λ2 es ∞), no hay valores menores (mayores) de λ
que analizar.
b) en caso contrario: obtener la degenerada para λ = λ1 :
1) Si es posible aplicar el método del Lemke, iterar para obtener
otra base de la misma solución degenerada y volver al punto 1.
2) Si no es posible aplicar el método del Lemke, es que no hay
solución factible fuera del valor de λ extremo estudiado.
x1 x2 x3 h1 a
-111/2 0 -1/2 0 -19/10 -2/5
x3 7/2 0 1/2 1 3/10 -1/5
x1 11/2 1 1/2 0 -1/10 2/5
A continuación vamos a realizar el análisis para c(λ) = λ 6 8 , , con
0≤λ≤∞
0 1/2 1 3/10
B B −1 B
V (λ) = c − c B A=c−c p = λ 6 8 0 − 8 λ =
1 1/2 0 −1/10
4−λ λ−24
0 2 0 10
(10.2)
4−λ≤0
⇒ 4 ≤ λ ≤ 24 (10.3)
λ − 24 ≤ 0
T0 (λ) x1 x2 x3 h1
−28 − 11λ
2 0 4−λ
2 0 λ−24
10
x3 7/2 0 1/2 1 3/10
x1 11/2 1 1/2 0 -1/10
T1 x1 x2 x3 h1
-50 0 0 0 -2
x3 7/2 0 1/2 1 3/10
x1 11/2 1 1/2 0 -1/10
T2 x1 x2 x3 h1
-50 0 0 0 -2
x2 7 0 1 2 3/5
x1 2 1 0 -1 -2/5
0 1 2 3/5
V B (λ) = c − c B B −1 A = c − c B p = λ 6 8 0 − 6 λ =
1 0 −1 −2/5
2λ−18
0 0 λ−4 5
(10.4)
El criterio del Simplex de la tabla T2 nunca se anula para valores de λ tales que
λ ≤ 4.
Es decir, para cualquier valor de λ menor que 4, las variables básicas con x1
y x2 . Existe aquı́ una aparente contradicción por el hecho de que si c1 es muy
grande en valor absoluto y negativo, parece sensato pensar que x1 deberı́a
no ser una variable básica porque deteriora notablemente la función objetivo.
Por ejemplo, parace razonable pensar que si c1 = −1000, si z representa el
beneficio de un sistema real, estarı́amos perdiendo 1000 unidades monetarias,
con lo que parece intuitivo pensar que esta variable no deberı́a estar en la
solución final.
Es decir, el criterio del simplex nos dice cómo se modifica la z al introducir una
variable no básica con valor 1. Dada la estructura de las restricciones, hacer
que cualquier de las variables no básicas crezca hace que x1 crezca también,
Capı́tulo 10. PROGRAMACIÓN PARAMÉTRICA 91
con lo que la solución a la que se llega es peor, ası́ que para cualquier λ ≤ 4,
las variables básicas de la solución óptima son x1 y x2
T3 x1 x2 x3 h1
−160 0 -10 0 0
x3 7/2 0 1/2 1 3/10
x1 11/2 1 1/2 0 -1/10
T4 x1 x2 x3 h1
−160 0 -10 0 0
h3 35/3 0 5/3 10/3 1
x1 20/3 1 2/3 1/3 0
0 5/3 10/3 1
B B −1 B
V (λ) = c − c B A=c−c p = λ 6 8 0 − 0 λ =
1 2/3 1/3 0
6−2λ 24−λ
0 3 3 0)
(10.5)
El criterio del Sipmlex no se hace positivo para ningún valor de λ tal que λ > 24
En resumen:
Procedimiento general:
T0 x1 x2 x3 x4 h1 h2
-15 -2 -1 -1 0 0 -1/10
h1 45 5 -15 -5 0 1 -1/2
x4 5 5/3 5/3 1 1 0 1/30
T
b(λ) = 120 − λ 150 + λ
B −1 1 −1/2 120 − λ 45 − 3λ/2
u (λ) = B b(λ) = = (10.7)
0 1/30 150 + λ 5 + λ/30
Capı́tulo 10. PROGRAMACIÓN PARAMÉTRICA 93
T0 (λ) x1 x2 x3 x4 h1 h2
-15 -2 -1 -1 0 0 -1/10
h1 45-3λ/2 5 -15 -5 0 1 -1/2
x4 5-λ/30 5/3 5/3 1 1 0 -1/30
Si λ = 30
T0 (λ = 30) x1 x2 x3 x4 h1 h2
-18 -2 -1 -1 0 0 -1/10
h1 0 5 -15 -5 0 1 -1/2
x4 6 5/3 5/3 1 1 0 -1/30
B −1 −1/60 1/30 120 − λ (−30 + λ)/10
u (λ) = B b(λ) = =
1/9 −2/90 150 + λ (900 − 12λ)/90
(10.8)
T1 (λ) x1 x2 x3 x4 h1 h2
-18 -7/3 0 -2/3 0 -1/60 -1/60
x2 (-30+λ)/10 -1/3 1 1/3 0 -2/30 1/30
x4 (900-12λ)/90 20/9 0 4/9 1 1/9 -2/90
Si λ = 75
T1 (λ = 75) x1 x2 x3 x4 h1 h2
-18 -7/3 0 -2/3 0 -1/60 -1/60
x2 9/2 -1/3 1 1/3 0 -2/30 1/30
x4 0 20/9 0 4/9 1 1/9 -2/90
B −1 −1/10 0 120 − λ (−120 + λ)/10
u (λ) = B b(λ) = =
−5 1 150 + λ 6λ − 450
(10.9)
En resumen:
T
b(λ) = 40 24 − 3λ y
c(λ) = 2 4+λ 1 0 0 , co λ ≥ 0
x1 x2 x3 h1 h2
-40 0 -1 0 -1 0
x1 56/3 1 2 0 2/3 -1/3
x3 8/3 0 1 1 -1/3 2/3
Capı́tulo 10. PROGRAMACIÓN PARAMÉTRICA 95
V B (λ) = c − c B B −1 A = c − c B p B =
1 2 0 2/3 −1/3
2 4+λ 1 0 0 − 2 1 = (10.11)
0 1 1 −1/3 2/3
0 λ − 1 0 −1 0
2/3 −1/3 40 1 56 + 3λ
uB (λ) = B −1 b(λ) = = (10.12)
−1/3 2/3 24 − 3λ 3 8 − 6λ
VB ≤ 0 ⇒ λ ≤ 1 (10.13)
4
uB ≥ 0 ⇒ λ ≤ (10.14)
3
x1 x2 x3 h1 h2
0 λ−1 0 -1 0
x1 (56 + 3λ)/3 1 2 0 2/3 -1/3
x3 (8 − 6λ)/3 0 1 1 -1/3 2/3
-40 0 0 0 -1 0
x1 59/3 1 2 0 2/3 -1/3
x3 2/3 0 1 1 -1/3 2/3
-40 0 0 0 -1 0
x1 55/3 1 0 -2 4/3 -5/3
x2 2/3 0 1 1 -1/3 2/3
V B (λ) = c − c B B −1 A = c − c B p B =
1 0 −2 4/3 −5/3
2 4+λ 1 0 0 − 2 4+λ =
0 1 1 −1/3 2/3
0 0 1 − λ (λ − 4)/3 (2 − 2λ)/3)
(10.15)
Capı́tulo 10. PROGRAMACIÓN PARAMÉTRICA 96
B −1 4/3 −5/3 40 1 40 + 15λ
u (λ) = B b(λ) = =
−1/3 2/3 24 − 3λ 3 8 − 6λ
(10.16)
VB ≤ 0 ⇒ 1 ≤ λ ≤ 4 (10.17)
4
uB ≥ 0 ⇒ −3/8λ ≤ (10.18)
3
Por lo tanto, para que las variables básicas x1 y x2 conduzcan a una solución
óptima y factible 1 ≤ λ ≤ 43 . El extremo inferior de este intervalo coincide, na-
turalmente, con el extremo superior del intervalo obtenido para las soluciones
básicas con x1 y x3 .
4 4
Con λ = 3 se obtiene una solución degenerada. Con λ > 3 se obtiene una solu-
ción básica no factible, por lo que deja de ser la solución óptima y factible del
problema. A continuación figuran las siguientes tres tablas: la correspondiente
a x1 y x2 como variables básicas, en función de λ, la anterior con λ = 43 y la
solución obtenida al aplicar Lemke a patir de la anterior.
x1 x2 x3 h1 h2
0 0 1−λ (λ − 4)/3 (2-2λ)/3
x1 (40 + 15λ)/3 1 0 -2 4/3 -5/3
x2 (8 − 6λ)/3 0 1 1 -1/3 2/3
0 -8/3 -3 0 -2
x1 40 1 4 2 0 1
h1 0 0 -3 -3 1 -2
V B (λ) = c − c B B −1 A = c − c B p B =
1 4 2 0 1
2 4+λ 1 0 0 − 2 0 = (10.19)
0 −3 −3 1 −2
0 −4 + λ −3 0 −2
Capı́tulo 10. PROGRAMACIÓN PARAMÉTRICA 97
B −1 0 1 40 24 − 3λ
u (λ) = B b(λ) = = (10.20)
1 −2 24 − 3λ −8 + 6λ
VB ≤ 0 ⇒ λ ≤ 4 (10.21)
4
uB ≥ 0 ⇒ ≤λ≤8 (10.22)
3
Por lo tanto, para que las variables básicas x1 y h2 conduzcan a una solución
4
óptima y factible 3 ≤ λ ≤ 4. El extremo inferior de este intervalo coincide, na-
turalmente, con el extremo superior del intervalo obtenido para las soluciones
básicas con x1 y x2 .
Con λ = 4 se obtiene una solución degenerada. Con λ > 4 se obtiene una solu-
ción básica no óptima, por lo que deja de ser la solución óptima y factible del
problema. A continuación figuran las siguientes tres tablas: la correspondiente
a x1 y h1 como variables básicas, en función de λ, la anterior con λ = 4 y la
solución obtenida al aplicar el método del Simplex a patir de la anterior.
x1 x2 x3 h1 h2
0 −4 + λ -3 0 -2
x1 24 − 3λ 1 4 2 0 1
h1 8 + 6λ 0 -3 -3 1 -2
0 0 -3 0 -2
x1 12 1 4 2 0 1
h1 16 0 -3 -3 1 -2
0 0 -3 0 -2
x2 3 1/4 1 1/2 0 1/4
h1 25 3/4 0 -3/2 1 -5/4
V B (λ) = c − c B B −1 A = c − c B p B =
1/4 1 1/2 0 1/4
2 4+λ 1 0 0 − 4+λ 0 =
3/4 0 −3/2 1 −5/4
1 − λ4 0 −1 − λ2 0 −1 − λ4
(10.23)
Capı́tulo 10. PROGRAMACIÓN PARAMÉTRICA 98
B −1 0 1/4 40 1 24 − 3λ
u (λ) = B b(λ) = = (10.24)
1 −5/4 24 − 3λ 4 40 + 15λ
V B ≤ 0∀λ ≥ 4 (10.25)
uB ≥ 0 ⇒ λ ≤ 8 (10.26)
Por lo tanto, para que las variables básicas x2 y h1 conduzcan a una solución
óptima y factible 4 ≤ λ ≤ 8. El extremo inferior de este intervalo coincide, na-
turalmente, con el extremo superior del intervalo obtenido para las soluciones
básicas con x1 y x2 .
Con λ = 8 se obtiene una solución degenerada. Con λ > 8 se obtiene una solu-
ción básica no óptima, por lo que deja de ser la solución óptima y factible del
problema. A continuación figuran las siguientes dos tablas: la correspondiente
a x2 y h1 como variables básicas, en función de λ, la anterior con λ = 8. Se
observa que para la variable x2 no existen tasas de sustitución negativas, con
lo que si λ > 4 no existe solución factible, porque no es posible que x2 salga
de la base.
x1 x2 x3 h1 h2
1 − λ4 0 −1 − λ2 0 −1 − λ4
x2 (24 − 3λ)/4 1/4 1 1/2 0 1/4
h1 (40 + 15λ/4 3/4 0 -3/2 1 -5/4
-1 0 -5 0 -3
x2 0 1/4 1 1/2 0 1/4
h1 40 3/4 0 -3/2 1 -5/4
En resumen:
TRANSPORTE Y ASIGNACIÓN
11.1.1. Introducción
11.1.2. Formulación
Dados
un conjunto de orı́genes (O), cada uno de los cuales tiene asociada una
capacidad Oi (unidades de producto)
un conjunto de destinos (D), cada uno de los cuales tiene una demanda
asociada Dj (unidades de producto) y
el coste Cij asociado a transportar una unidad de producto del origen
i ∈ O al destino j ∈ D
s.a.
xij ≤ Oi ∀i ∈ O (11.1)
j∈D
xij ≥ Dj ∀j ∈ D
i∈O
xij ≥ 0 ∀j ∈ D, ∀i ∈ O
Problemas equilibrados: i∈D Oi = j∈D Dj
Capı́tulo 11. TRANSPORTE Y ASIGNACIÓN 100
s.a.
xij = Oi ∀i ∈ O (11.2)
j∈D
xij = Dj ∀j ∈ D
i∈
xij ≥ 0 ∀j ∈ D, ∀i ∈ O
max z = s.a.
x11 +x12 ... +x1J ... = O1
+x21 x22 ... +x2J ... = O2
... +xI1 +xI2 ... +xIJ = OI
x11 +x21 ... +xI1 +xIJ = D1
x12 x22 ... +xI2 = D2
... ... ... ... =
+x1J +x2J ... +xIJ = DJ
xij ≥ 0 ∀j ∈ D, ∀i ∈ O
(11.3)
De acuerdo con
max z = cx
s.a.
(11.4)
Ax = b
x≥0
donde 1 representa un vector fila con tantos elementos como destinos, todos
ellos con valor 1 y 0 representa un vector fila con tantos elementos como
destinos, todos ellos con valor 0.
Capı́tulo 11. TRANSPORTE Y ASIGNACIÓN 101
⎛ ⎞
O1
⎜ ⎟
⎜ ... ⎟
⎜ ⎟
⎜ OI ⎟
b=⎜
⎜
⎟
⎟ (11.6)
⎜ D1 ⎟
⎜ ⎟
⎝ ... ⎠
DJ
c= C11 ... CI1 ... Cij c1J ...CIJ (11.7)
donde cij es el coste reducido asociado al a variable xij , que se presentará más
adelante.
11.1.5. Propiedades
Las propiedades..
max z = Cij xij
ij
s.a.
Oi Dj j∈D Dj (11.8)
xij = = Oi = Oi ∀i ∈ O
j∈D j∈D
D
j∈D j j∈D Dj
Oi Dj Oi
xij = = Dj i∈O = Dj ∀j ∈ D
i∈O i∈O i∈O O i i∈O Oi
1. Stepping-stone
2. MODI
Procedimiento:
Métodos
Rincón NO
Mı́nimo coste
Voguel
Otros
Por lo tanto, la función ojetivo se puede expresar como la suma de dos térmi-
B
nos, uno constante y otro que depende de xij . Si se denota con xij a las va-
−B
riables básicas y xij a las no basicas, el término variable se puede reformular
como:
B −B
xij (cij − ui − vj ) = xij (cij − ui − vj ) + xij (cij − ui − vj )
(11.11)
ij ij ij
Sean como sean calculados, el coste reducido cij representa la reducción uni-
taria de la función objetiva al introducir con valor 1 la variable no básica xij ,
s.a.
(11.13)
ui + vj ≤ cij ∀i ∈ O, ∀j ∈ D
ui libre de signo ∀i ∈ O
vj libre de signo ∀j ∈ D
s.a.
+ − + − (11.14)
(u − u ) + (v − v ) ≤ cij ∀i ∈ O, ∀j ∈ D
u+ −
i , ui libre de signo ∀i ∈ O
vi+ , vi− libre de signo ∀j ∈ D
s.a.
xij ≤ Oi ∀i ∈ O
j∈D
xij ≥ Oi ∀i ∈ O (11.15)
j∈D
xij ≤ Dj ∀j ∈ D
i∈
xij ≥ Dj ∀j ∈ D
i∈
xij ≥ 0 ∀j ∈ D, ∀i ∈ O
h
ij = −Vij
B B
= Vij
max min
B
(11.16)
cij − ui − vj = Vij
min
Capı́tulo 11. TRANSPORTE Y ASIGNACIÓN 106
11.7. Ejemplo
Capı́tulo 11. TRANSPORTE Y ASIGNACIÓN 107
11.8.1. Introducción
s.a.
xij ≤ 1 ∀i ∈ O (11.17)
j∈D
xij ≥ 1 ∀j ∈ D
i∈O
xij ≥ 0 ∀j ∈ D, ∀i ∈ O
11.8.2. Representación
D1 D2 ··· Dj ··· DJ
O1 C11 C12 C1j C1J
O2 C21 C22 C2j C2J
··· C
Oi Ci1 Ci2 Cij CiJ
···
OI CI1 CI2 CIj CIJ
D1 D2 D3 D4
O1 4 2 3 1
O2 5 2 6 3
O3 1 8 9 2
O4 10 1 6 4
D1 D2 D3 D4
O1 ×
O2 ×
O3 ×
O4 ×
11.8.3. Propiedades
En una solución del problema, para cada fila i, solo un valor xij = 1
En una solución del problema, para cada columna j, solo un valor xij = 1
Si se suma una constante k a todos los costes de una fila o de una co-
lumna, el problema resultante alcanza la solución óptima para la misma
asignación que el problema original. En efecto, por ejemplo, si cambian
todos los costes del origen i∗ Ci
∗ j = Ci∗ j + k ∀j, la nueva función obje-
tivo es:
z
= Cij xij = Cij xi,j + (Ci
∗ j + k)xi,j = Ci,j xij + Ci
∗ j xij + kxij =
i,j i≠i∗ ,j j i≠i∗ ,j i=i∗ ,j i=i∗ ,j
Ci,j xij + k xij = z + k
i≠i,j i=i∗ ,j
(11.18)
D1 D2 D3 D4
O1 2 0 1 3
O2 0 2 1 1
O3 2 5 7 0
O4 3 1 0 3
Capı́tulo 11. TRANSPORTE Y ASIGNACIÓN 109
D1 D2 D3 D4
O1 1 4 3 1
O2 2 1 6 7
O3 3 2 6 6
O4 1 2 3 7
D1 D2 D3 D4
O1 0 3 2 0
O2 1 0 5 6
O3 1 0 4 4
O4 0 1 2 6
-1 -1 -1
D1 D2 D3 D4
O1 0 3 0 0
O2 1 0 3 6
O3 1 0 2 4
O4 0 1 0 6
D1 D2 D3 D4
O1 0 4 0 0
O2 0 0 2 5
O3 0 0 1 3
O4 0 2 0 6
Capı́tulo 12
Considera el problema
z = max{cx : x ∈ S}
¿Será posible dividir este problema en un conjunto de problemas de menor
tamaño y más fáciles de resolver, resolverlos y luego juntar toda la información
para hallar la solución del porblema original?
Se dice que S = S1 ∪ · · · ∪ Sk es una descomposición de S en un conjunto
más pequeño de problemas y que si zk = max{cx : x ∈ Sk } para k = 1 . . . K,
entonces z = maxk zk .
Una forma tı́pica de representar el enfoque “divide y vencerás” es mediante los
árboles de enumeración. Por ejemplo si S ⊆ {0, 1}3 , se puede construir el árbol
que se presenta en la figura [?].
En este caso se divide el conjunto S en dos: S0 = {x ∈ S : x1 = 0} y S1 =
{x ∈ S : x1 = 1}. Después estos dos subconjuntos se dividen en dos cada
uno: S00 = {x ∈ S0 : x2 = 0} = {x ∈ S : x1 = x2 = 0}, S01 = {x ∈ S0 : x2 = 1}
y ası́ sucesivamente. Si nos fijamos, cualquier hoja final del árbol Si1,i2,i3 es no
vacı́a si y sólo si s = (i1, i2, i3) está en S. Es decir, las hojas finales (nodos) del
árbol corresponden precisamente a los puntos del conjunto B 3 que habrı́amos
examinado mediante la enumeración completa.
Vamos a ver ahora tres casos hipotéticos para ver cómo podemos utilizar con
sentido la información relativa a las cotas de un problema. ¿Qué se puede decir
sobre la solución óptima con la infomación relativa a las cotas y qué conjun-
tos (suproblemas) neceistan seguir examinándose para encontrar la solución
óptima?
. En la figura 12.1 se pude ver una descomposición del conjunto S en dos sub- Ejemplo 1
conjuntos S1 y S2 y las cotas superiores e inferiores de los distintos problemas.
max z = 4x1 − x2
s.a.
(12.1)
7x1 − 2x2 ≤ 14
2
x2 ≤ 32x1 − 2x2 ≤ 3x ∈ Z+
Acotamiento. Para obtener una primera cota superior, añadimos las holguras
correspondientes (h1 , h2 y h3 ) y resolvemos la relajación lineal de este proble-
ma (quitando las restricciones de integrabilidad). La tabla óptima a la que se
llega es:
x1 x2 h1 h2 h3
RL
z 50/7 0 0 -4/7 -1/7 0
x1 20/7 1 0 1/7 2/7 0
x2 3 0 1 0 1 0
h3 23/7 0 0 -2/7 10/7 1
Capı́tulo 12. PROGRAMACIÓN ENTERA. FUNDAMENTOS 113
59
De aquı́ obtenemos una cota superior z = 7 , y una solución que no es entera
( 20
7 , 3). ¿Hay alguna forma de encontrar una solución factible? Pues aparente-
mente, no. Luego no tenemos ninguna cota inferior aún, z = −∞.
Ramificación. Como z ≤ z tenemos que dividir o ramificar. ¿Cómo podemos di-
vidir la región factible? Una idea muy sencilla es elegir una variable que esté en
la base y que debiera de ser entera pero no lo es, y dividir el problema en dos
subproblemas en función del valor del valor que tiene la variable. Veamos, si
xj = x j ∉ Z 1 , se puede
dividir el problema en:
S1 = S ∩ {x : xj ≤ x j }
!
S2 = S ∩ {x : xj ≥ x j }
Está claro que S = S1 ∪ S2 y que S1 ∩ S2 = ∅. Otra razón por la que se eligen
estos subproblemas es que la solución de la relajación lineal no es factible en
las relajaciones lineales de S1 ni S2 . Esto es muy importante pues evita degene-
raciones de la solución (o múltiples soluciones); con lo cual max{z1 , z2 } ≤ z
y la cota superior tendrá siempre menor valor.
Siguiendo esta idea, como x 1 = 20 7 ∉ Z , los subproblemas serán S1 = S ∩ {x :
1
x1 x2 h1 h2 h3 h4
z1RL 50/7 0 0 -4/7 -1/7 0 0
x1 20/7 1 0 1/7 2/7 0 0
x2 3 0 1 0 1 0 0
h3 23/7 0 0 -2/7 10/7 1 0
h4 -6/7 0 0 -1/7 -2/7 0 1
x1 x2 h1 h2 h3 h4
z1RL 15/2 0 0 0 0 -1/2 -3
x1 20/7 1 0 0 0 0 1
x2 3 0 1 0 0 -1/2 1
h1 23/7 0 0 1 0 -1 -5
h2 -6/7 0 0 0 1 1/2 6
con z1RL = 15 1 1 1
2 y (x 1 , x 2 ) = (2, 2 ).
Ramificación.
Capı́tulo 13
13.1. Introducción
Existe una gran varedad de problemas que se pueden formular y resolver uti-
lizando variables enteras, por ejemplo: programación de horarios de trenes
o de tripulaciones en una compañı́a aérea, problemas de programación de la
producción, de cálculo de rutas, etc.
En ocasiones, las variables enteras aparecen por la propia naturaleza de la
decisión.
En otras ocasiones, se debe
Supongamos que tenemos un problema de programación lineal:
max{cx cx : Ax ≤ b, x ≥ 0 }
donde A es una matriz m por n, c es un vector fila de dimensión n, b es un
vector columna de dimensión m y x es un vector columna de dimensión n.
A este problema le añadimos la restricción de que ciertas variables tienen que
ser enteras.
Si sólo alguna (no todas) las variables tienen que ser enteras, entonces tenemos
un problema de programación lineal entera mixto (Mixed Integer Problem, MIP).
Si todas las variables tienen que ser enteras, entonces tenemos un problema
de programación lineal puro (Integer Programming, IP).
Y, si todas la variables están restringidas a los valores 0 − 1, entonces tenemos
un problema de programación entera binaria (Binary Integer Problem, BIP).
Dado que los problemas enteros se parecen bastante a los lineales, no sorpren-
de que tanto la teorı́a como la práctica de la programación lineal es fundamen-
tal para comprender y resolver problemas enteros.
Una de las primeras ideas que nos viene a la mente es la del redondeo: resolver
el problema como si fuera lineal y luego redondear el valor de las variables.
AÑADIR No tiene sentido en muchos problemas: “3.5 aviones” son 3 o 4, ...
Ejemplo: (apuntes Miguel)
Capı́tulo 13. PROGRAMACIÓN ENTERA. BRANCH AND BOUND 116
z = max{c(x) : x ∈ X ⊆ Z n }
¿cómo se puede probar que una solución x ∗ es óptima? O dicho de otra forma,
serı́a muy interesante encontrar algunas condiciones que nos garanticen la
optimalidad y ası́ dejar de buscar la solución óptima en un problema entero.
Para ello es importante darse cuenta de que se necesita encontrar una cota
inferior (lower bound) z ≤ z y una cota superior (upper bound) z ≥ z tal que
z = z = z. Prácticamente esto significa que cualquier algoritmo que encuentre
una secuencia decreciente
z 1 ≥ z 2 ≥ · · · ≥ zs ≥ z
z 1 ≤ z 2 ≤ · · · ≤ zt ≥ z
zs − zt ≤
Todas las soluciones factibles x ∗ ∈ X son una cota inferior z = c(x ∗ ) ≤ z∗ . Cotas prima-
Ésta es la única forma de encontrar cotas inferiores: encontrando soluciones les/inferiores
factibles. Para algunos problemas PLE encontrar una solución factible es senci-
llo y lo complicado es encontrar buenas cotas inferiores (cercanas al óptimo);
esto ocurre por ejemplo en el problema del TSP (cualquier ciclo que contenga
todas las ciudades es una solución factible que ofrece una cota inferior). Pero
para otros problemas, encontrar una solución factible es tan complicado como
resolver el problema entero.
Para algunos problemas no es difı́cil utilizar algoritmos greedy (algoritmo ávi-
dos) que permiten encontrar soluciones factibles “buenas” (cotas inferiores).
Capı́tulo 13. PROGRAMACIÓN ENTERA. BRANCH AND BOUND 117
La tarea de encontrar cotas superiores muy distinta de la anterior. Una de las Cotas dua-
formas de hallar las cotas superiores es mediante “relajaciones”. La idea que les/superiores
hay detrás de las relajaciones es reemplazar un problema entero “difı́cil” de
maximizar (como normalmente formulamos los problemas) por otro problema
más sencillo cuya función objetivo es mayor o igual que la z del problema
original.
Para que el problema relajado cumpla esta propiedad hay dos posibilidades:
x ⊆ T, y
f (x) ≥ c(x)para todo x ∈ X
max z = 4x1 − x2
s.a.
7x1 − 2x2 ≤ 14
(13.1)
x2 ≤ 3
2x1 − 2x2 ≤ 3
2
x ∈ Z+
El punto (2, 1) es una solución factible luego tenemos una cota inferior z ≥
7. Para obtener una cota superior podemos recurrir a la relajación lineal. La
20 59
solución óptima es x ∗ = ( 7 , 3) con función objetivo zLP = 7 . Como el valor
de la función objetivo del problema entero tiene que ser entero (en este caso),
podemos redondear y obtener z ≤ 8.
Las relajaciones no sólo permiten obtener cotas superiores, sino que también
sirven paara probar la optimalidad. Si la relajación (RP) es no factible, el pro-
blema original entero (IP)también. Si al resolver la relajación lineal (RP) resulta
Capı́tulo 13. PROGRAMACIÓN ENTERA. BRANCH AND BOUND 118
que cumple las condiciones de integralidad del problema entero (IP) resulta
que también es su solución óptima.
Por ejemplo, la relajación lineal del problema entero
Existen más tipos de relajaciones que perimten hallar cotas superiores. Entre Otras
ellas, por ejemplo, las relajaciones combinatorias que son especı́ficas para de- relajaciones
terminados problemas (TSP, Knapsack, etc.); y las relajaciones lagrangianas, lineales
mucho más generales y que se basan en relajar restricciones (quitarlas) pero
su cumplimiento afecta a la función objetivo con un coste.
Capı́tulo 14
DUALIDAD
14.1. Introducción
Existen dos problemas de optimización lineal asociados que cada uno de ellos
proporciona información sobre el otro, de tal manera que la solución óptima de
uno de los problemas nos permite conocer la solución del problema asociado.
A los dos problemas asociados se les denomina problemas duales y su relación
se va a tratar en este capı́tulo.
La dualidad es una parte clave en la programación lineal que muchas veces ¿Por qué?
pasa como desapercibida pero que es lo que permite que tenga sentido toda la
teorı́a correspondiente. ¿Por qué estudiar la dualidad? Hay varias razones:
Por una lado aporta elementos clave que van a ayudar a comprender la
programación lineal
Es una herramienta útil para resolver problemas de programación lineal;
cuando hay mucha diferencia entre filas y columnas (hay distinto coste
computacional) puede ser interesante resolver el dual en lugar del pro-
blema primal
El problema dual ayuda a conocer la factibilidad o no acotación del pro-
blema primal
Fundamental para el desarrollo de técnicas más avanzadas (descomposi-
ción de Benders, etc.)
La dualidad ofrece otra forma de ver el significado de los precios sombra
La dualidad ofrece otra visión del método de Lemke (o dual del simplex)
Una empresa internacional produce y vende estos dos tipos de supercompu- Ejemplo de
tadores: el modelo 1 y el modelo 2. En la elaboración de ambos tipos de equi- problema dual
pos hay que destacar dos procesos, el de ensamblado final y el de empaque-
tado (procesos P1 y P2). Esta empresa dispone mensualmente de 2000 horas
dedicadas al proceso de ensamblado y 1000 horas dedicadas al proceso de
empaquetado, además se sabe que los tiempos requeridos para realizar dichas
Capı́tulo 14. DUALIDAD 120
operaciones para cada uno de los tipos de supercomputadores son los que se
muestran en la tabla siguiente:
Horas requeridas
Proceso Modelo 1 Modelo 2 Horas disponibles
Montaje 6 4 2000
Embalaje 2 4 1000
x2
2
x ∗ (250, 125)
1
0
0 1 2 3 4 5 x1
Max z = cx
Ax ≤ b (14.3)
x≥0
Min s = yb
yAT ≥ c (14.4)
y ≥0
Max z = cx
Ax ≤ b (14.5)
x≥0
Min s = yb
yAT ≥ c (14.6)
y ≥0
min u = t(−c T )
t(−AT ) ≥ −bT (14.8)
t≥0
Capı́tulo 14. DUALIDAD 123
max (−u) = ct T
At T ≥ b (14.9)
T
t ≥0
que es equivalente a :
y3 = y3+ y3−
y3 será libre se signo siempre que y3+ y y3− sean no negativas y, además, no
puedan estar ambas en la solución del problema. En dicho caso:
es decir V B y3+ = V B y3− lo que implica que: si V B y3+ > 0 ⇒ V B y3− < 0 y
que si V B y3+ < 0 ⇒ V B y3− > 0
por lo cual, si interesa introducir en la solución y3+ no interesa introducir
y3− , y si no interesa introducir y3+ en la solución sı́ interesa introducir y3− .
Cuando una de las variables pertenece a la solución, por ejemplo y3∗ , el crite-
rio del simplex de ambas variables tiene un valor de V B y3+ = 0 y V B y3− = 0
pero al analizar el vector de tasas de sustitución se comprueba que Py3+ =
(0, ..., 1, ..., 0)T y P y3− = (0, ..., −1, ..., 0)T por lo cual no es posible sustituir
y3+ por y3− sin que la solución deje de ser factible. Con lo que se comprueba
que una restricción de igualdad en el problema primal genera en el problema
dual una variable libre de signo. En el epı́grafe anterior se comprobaba que el
problema dual de un problema dual es el problema primal, por lo cual ya se
puede afirmar que una variable libre de signo en el problema primal genera
una restricción de igualdad en el problema dual.
El valor de la función objetivo para cualquier solución factible del problema pri-
mal es una cota inferior del valor de la función objetivo para cualquier solución
factible del problema dual.
Es decir: z0 ≤ s 0
En efecto, se parte de las dos soluciones factibles de los dos problemas aso-
ciados primal y dual x 0 e y 0 para las cuales el valor de cada función objetivo
es
z0 = cx 0 s 0 = y 0 b
y 0 Ax 0 ≤ y 0 b
Por otra parte, al ser y 0 solución del problema dual se cumple que y 0 AT ≥ c
al postmultiplicar por x 0 la expresión anterior, como x 0 es factible, se cumple
que:
y 0 Ax 0 ≥ cx 0
cx 0 ≤ y 0 Ax 0 ≤ y 0 b
es decir:
z0 = cx 0 ≤ y 0 b = s 0
luego:
z0 ≤ s 0
Capı́tulo 14. DUALIDAD 126
s 0 dual
z0 ≤ s 0
z0 primal
VxB = c − cB B −1 A ≤ 0
por lo que:
c − cB B −1 A ≤ 0
ch − cB B −1 I ≤ 0
cx ∗ = y ∗ b
cx ∗ y ∗ Ax ∗ = y ∗ by ∗ Ax ∗
o lo que es lo mismo:
(cy ∗ A)x ∗ = y ∗ (bAx ∗ )
1. (c ∗ − y ∗ A) · x ∗ = 0
- como x ∗ es la solución óptima del problema primal x ∗ ≥ 0
- como y ∗ es la solución óptima del problema dual
y ∗ A ≥ c ⇒ cy ∗ A ≤ 0
Ax ∗ ≤ b ⇒ bAx ∗ ≥ 0
1. (cy ∗ A) · x ∗ = 0
2. y ∗ · (bAx ∗ ) = 0
transformado en igualdad,
cj y ∗ Aj + yhj = 0
luego
yhj = −(cj y ∗ Aj ) = −(cj − π B Aj ) = −VxB∗
j
que es mayor que cero ya que el criterio del simplex de una variable no
básica en la solución óptima del problema es negativo.
Si xj∗ > 0, es decir xj pertenece a la solución óptima del problema primal,
entonces cj y ∗ Aj = 0, es decir la restricción que genera la variable xj en
el problema dual se cumple como una igualdad y, por lo tanto, la variable
de holgura correspondiente no forma parte de la solución óptima del
problema, ya que:
cj y ∗ Aj ≤ 0 ⇒ cj y ∗ Aj + yhj = 0
y como:
cj y ∗ Aj = 0 ⇒ yhj = 0
(2) y ∗ · (bAx ∗ ) = 0.
Se puede obtener el mismo resultado anterior con las variables del dual y las
restricciones (por lo tanto las variables de holgura ) del primal.
Como conclusión, la aplicación del teorema de las holguras complementarias
a dos problemas duales asociados permite saber que:
z(x) = c1 x 1 + c2 x 2 + · · · + cn x n = y 1 b1 + y 2 + · · · + y m bm = s(y)
Vamos a supoer ahora que se modifica un recurso, por ejemplo b1 , en una can-
tidad “pequeña” Δb1 , de manera que la solución óptima del problema primal
siga siendo factible, y en consecuencia óptima (c − cB B −1 A no varı́a). Es decir,
de manera tal que
⎛ ⎞
Δb1
⎜ ⎟
⎜ 0 ⎟
−1 ⎜ ⎟
B (b + ⎜ ⎟) ≥ 0
⎜ ... ⎟
⎝ ⎠
0
Consideremos ahora los problemas [P1] y [D1], donde [P1] es el problema
primal en el que se ha cambiado b por b + (Δb1 , 0, . . . , 0)T y [D1] es su
dual. La solución óptima de [P1], x̃, tiene la mismas variables básicas que x
(por la elección de Δb1 ) y el valor que toma la parte básica de dicha solu-
ción es ũB = B −1 [b + (Δb1, 0, · · · , 0)T ], por otro lado la solución de [D1] es
ỹ = π B = c B B −1 , las variables básicas de x̃ no han cambiado entonces B sigue
siendo la misma que antes y ỹ = y, teniendo en cuenta estos hechos tenemos
que:
c − c B B −1 A ≤ 0
Se puede apreciar que dicha definición es equivalente a decir que una base
es factible dual si c B B −1 constituye una solución factible para el problema
dual. Por ejemplo, si llamamos y = c B B −1 (Teorema fundamental) tenemos
que c − c B B −1 A = c − yA ≤ 0 que es equivalente a la expresión que define las
restricciones funcionales del problema dual.
Alternativamente, la definición de base factible dual sólo implica que la co-
rrespondiente base primal verifica las condiciones de optimalidad. Si diera la
casualidad que además fuera factible entonces dicha solución serı́a una solu-
ción óptima.
El algoritmo simplex dual trabaja con soluciones básicas factibles duales que
por medio de operaciones apropiadas finalizarán (si es posible) en una solu-
ción que además serı́a factible primal. Mientras el simplex trabaja con solu-
ciones que no cumplen el criterio de optimalidad y poco a poco se mejoraban
hasta conseguir la optimalidad, en el simplex dual se trabaja con soluciones
primales no factibles en las que poco a poco se “mejorará” la factibilidad has-
ta alcanzarla (realmente lo que se irá mejorando serı́a las soluciones del dual
y = c B B −1 ).
El algoritmo del simplex dual va a utilizar herramientas análogas a las utiliza-
das en el simplex. Los pasos son los siguientes:
1. Construcción de una solución básica primal que sea básica factible dual
(óptimo del primal).
2. Si una solución es factible primal entonces dicha solución serı́a óptima.
3. En caso de que la solución no sea factible primal, entonces habrı́a que
construir una solución básica primal que sea básica factible dual y que
sea adyacente a la anterior, para lo cual deberemos determinar que varia-
ble sale de la base actual, que variable entra en la nueva base y deberemos
realizar la operación de cambio de base.