Está en la página 1de 131

P ROGRAMACI ÓN

L INEAL
Noviembre 2012

Universidad Politécnica de Madrid

Alvaro Garcı́a Sánchez


Miguel Ortega Mier
Índice general

Índice general 2

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL. TEOREMA FUN-


DAMENTAL 3
1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1. Caracterización de soluciones . . . . . . . . . . . . . . . 4
1.2. Teorema Fundamental . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1. Enunciado . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2. Demostración . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Implicaciones del Teorema Fundamental . . . . . . . . . . . . . 6
1.4. Ejempo de aplicación . . . . . . . . . . . . . . . . . . . . . . . . . 7

2. FUNDAMENTOS DEL MÉTODO DEL SIMPLEX 11


2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2. Regla de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3. Regla de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4. Criterio de optimalidad . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5.1. Primera iteración . . . . . . . . . . . . . . . . . . . . . . . 15
2.5.2. Segunda iteración . . . . . . . . . . . . . . . . . . . . . . 18
2.5.3. Tercera iteración . . . . . . . . . . . . . . . . . . . . . . . 20

3. MÉTODO DEL SIMPLEX.VARIANTE DE LA MATRIZ COMPLETA 23


3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2. Variante de la matriz completa . . . . . . . . . . . . . . . . . . . 24
3.3. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4. MÉTODOS DE LA M GRANDE Y DE LAS DOS FASES 25


4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2. Método de la M grande . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3. Método de las 2 fases . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.4.1. Método de la M grande . . . . . . . . . . . . . . . . . . . 30
4.4.2. Método de las dos fases . . . . . . . . . . . . . . . . . . 31
Índice general 3

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

7. MÉTODO DEL LEMKE 57


7.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.2. Cuándo es interesante el método de Lemke . . . . . . . . . . . 58
7.2.1. Problemas de mı́nimos con c ≥ 0 . . . . . . . . . . . . . 58
7.2.2. Al introducir un cambio en b, una vez obtenida la so-
lución óptima . . . . . . . . . . . . . . . . . . . . . . . . . 60
7.2.3. Al añadir una restricción adicional a un programa, una
vez obtenida la solución óptima . . . . . . . . . . . . . 61
7.3. Reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.3.1. Criterio de factibilidad . . . . . . . . . . . . . . . . . . . 61
7.3.2. Regla de supresión . . . . . . . . . . . . . . . . . . . . . 61
7.3.3. Regla de introducción . . . . . . . . . . . . . . . . . . . . 62
7.4. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

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

9.6. Cambio en aij . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76


9.6.1. Cambio en aij con xj no básica . . . . . . . . . . . . . 76
9.6.2. Cambio en aij con xj básica . . . . . . . . . . . . . . . 77
9.7. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
9.7.1. Cambio de b . . . . . . . . . . . . . . . . . . . . . . . . . 78
9.7.2. Cambio de c . . . . . . . . . . . . . . . . . . . . . . . . . . 78
9.7.3. Nueva actividad . . . . . . . . . . . . . . . . . . . . . . . 79
9.7.4. Nueva restricción . . . . . . . . . . . . . . . . . . . . . . 80
9.7.5. Análisis de sensibilidad de b . . . . . . . . . . . . . . . 81
9.7.6. Análisis de sensibilidad de c . . . . . . . . . . . . . . . 82
9.8. La aparente paradoja de b . . . . . . . . . . . . . . . . . . . . . . 84

10. PROGRAMACIÓN PARAMÉTRICA 85


10.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
10.2. Programación con c(λ) . . . . . . . . . . . . . . . . . . . . . . . . 85
10.2.1. Método general . . . . . . . . . . . . . . . . . . . . . . . . 85
10.2.2. Ejemplo c(λ) . . . . . . . . . . . . . . . . . . . . . . . . . 85
10.3. Programación con b(λ) . . . . . . . . . . . . . . . . . . . . . . . . 89
10.3.1. Método general . . . . . . . . . . . . . . . . . . . . . . . . 89
10.3.2. Ejemplo c(λ) . . . . . . . . . . . . . . . . . . . . . . . . . 89
10.4. Ejemplo c(λ) y b(λ) . . . . . . . . . . . . . . . . . . . . . . . . . . 91

11. TRANSPORTE Y ASIGNACIÓN 96


11.1. Presentación del problema de transporte . . . . . . . . . . . . . 96
11.1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . 96
11.1.2. Formulación . . . . . . . . . . . . . . . . . . . . . . . . . . 96
11.1.3. Presentación matricial . . . . . . . . . . . . . . . . . . . 97
11.1.4. Representación del problema . . . . . . . . . . . . . . . 98
11.1.5. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . 98
11.2. Métodos de resolución . . . . . . . . . . . . . . . . . . . . . . . . 99
11.2.1. Obtención del solución inicial de partida . . . . . . . . 100
11.2.2. Regla de entrada. Stepping-stone . . . . . . . . . . . . . 100
11.2.3. Regla de entrada. MODI . . . . . . . . . . . . . . . . . . . 100
11.2.4. Regla de salida . . . . . . . . . . . . . . . . . . . . . . . . 101
11.2.5. Criterio de optimalidad . . . . . . . . . . . . . . . . . . . 101
11.3. Problemas desequilibrados . . . . . . . . . . . . . . . . . . . . . 101
11.3.1. Oferta superior a demanda . . . . . . . . . . . . . . . . 101
11.3.2. Demanda superior a oferta . . . . . . . . . . . . . . . . 101
11.4. Soluciones degeneradas . . . . . . . . . . . . . . . . . . . . . . . 101
11.5. Transporte y dualidad . . . . . . . . . . . . . . . . . . . . . . . . 102
11.6. Para pensar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
11.7. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
11.8. El problema de asignación . . . . . . . . . . . . . . . . . . . . . . 104
11.8.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . 104
11.8.2. Representación . . . . . . . . . . . . . . . . . . . . . . . . 104
11.8.3. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Índice general 5

11.8.4. Método Húngaro . . . . . . . . . . . . . . . . . . . . . . . 106

12. PROGRAMACIÓN ENTERA. FUNDAMENTOS 107


12.1. Divide y vencerás . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
12.2. Enumeración implı́cita . . . . . . . . . . . . . . . . . . . . . . . . 107
12.3. Branch and Bound: un ejemplo . . . . . . . . . . . . . . . . . . . 109

13. PROGRAMACIÓN ENTERA. BRANCH AND BOUND 112


13.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
13.2. Optimalidad y relajación . . . . . . . . . . . . . . . . . . . . . . . 113

14. DUALIDAD 116


14.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
14.2. Teorı́a sobre dualidad . . . . . . . . . . . . . . . . . . . . . . . . . 119
14.2.1. El problema dual . . . . . . . . . . . . . . . . . . . . . . . 119
14.2.2. El dual del dual es el primal . . . . . . . . . . . . . . . . 119
14.2.3. Relaciones entre el problema primal y el problema
dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
14.2.4. La función objetivo . . . . . . . . . . . . . . . . . . . . . 122
14.2.5. Teorema fundamental de la dualidad . . . . . . . . . . 123
14.2.6. Teorema de las holguras complementarias . . . . . . . 124
14.3. Interpretación económica de las variables duales en el óptimo 126
14.4. Algoritmo del simplex dual . . . . . . . . . . . . . . . . . . . . . 128
Capı́tulo 1

INTRODUCCIÓN A LA PROGRAMACIÓN
LINEAL. TEOREMA FUNDAMENTAL

1.1. Introducción

Un problema de Programación Lineal tiene la siguiente forma. Forma general


de un problema
maz z =cx (función objetivo)
s.a:
(1.1)
Ax = b (restricciones funcionales)
x≥0 (restricciones de no negatividad)

Matriz de coeficientes técnicos: A Dimensiones de


• matriz m × n A, b, c y x
• m filas - restricciones
• n columnas - variables
Vector de disponibilidad de recursos: b
• matriz m × 1
• tantos elementos como restricciones
Vector de contribuciones unitarias al beneficio: c
• matriz 1 × n
• tantos elementos como variables
Solución del problema x
• matriz n × 1

Podrı́a haber tres casos para la relación entre y m y n: Relación entre


myn
1. m > n, tı́picamente, solución no factible. Sistema incompatible.
O el modelo está mal (por ejemplo, si se trata de un modelo de un
sistema que existe y que está en funcionamiento).
O no existe solución factible.
2. m = n, tı́picamente, solución factible única. Sistema compatible deter-
minado. Existe una única solución, con lo que no hay un problema de
decisión.
Capı́tulo 1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL. TEOREMA FUNDAMENTAL 7

3. n > m, tı́picamente, infinitas soluciones factibles. Sistema compatible


indeterminado. Infinitas soluciones, el problema consiste en obtener la
mejor.

1.1.1. Caracterización de soluciones

Un conjunto de valores x es una solución del problema si cumple el sistema Solución


de ecuaciones Ax = b

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.

Una solución x es linealmente independiente si las columnas de la matriz A Solución


correspondientes a las variables con valor no nulo son linealmente indepen- linealmente
dientes. independiente

Una solución x es linealmente dependiente si las columnas de la matriz A co- Solución


rrespondientes a las variables con valor no nulo son linealmente dependientes. linealmente
dependiente
Dado que en un problema de programación lineal n > m, si el rango de la Caracterı́siticas
matriz A es m: de las soluciones
linealmente
el número máximo de componentes no nulas de una solución linealmen-
independientes
te independiente es, m y
el número mı́nimo de componentes no nulas de una solución linealmen-
te dependiente tı́picamente es m + 1 1

1.2. Teorema Fundamental

1.2.1. Enunciado

Dado un problema de programación lineal: Enunciado

Si existe una solución factible, existe una solución linealmente indepen-


diente factible y
si la solución óptima es única, esta es una solución linealmente indepen-
diente; si la solución óptima es múltiple, al menos existe una solución
linealmente independiente óptima.
1 Esto es ası́ siempre cuando el rango de todas las matrices de m columnas de A es m. Si exis-

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

Si se demuestra que dada una solución linealmente dependiente x 0 de un pro-


blema de programación lineal, basta con que el problema esté acotado para
que exista una solución linealmente independiente x tal que cx ≥ cx 0 , queda
demostrado el teorema, ya que:

1. se demostrarı́a que existe una solución linealmente independiente y


2. si para cualquier dependiente, siempre es posible encontrar otra lineal-
mente independiente no peor, de haber una única óptima es linealmente
independiente y, si hay varias, al menos una es linealmente independien-
te. En este segundo caso, si se conoce que alguna de las soluciones ópti-
mas es linealmente independiente, quedarı́a demostrado. Si no, alguna
de las soluciones óptimas serı́a linealmente dependiente, por aplicación
del enunciado, serı́a posible encontrar otra linealmente independiente no
peor, y como la solución linealmente dependiente es óptima existirı́a al
menos una solución linealmente independiente también óptima.

En el primer enunciado del Teorema Fundamente, se entiende implı́citamente,


que el problema considerado está actado. En efecto, si el problema no está aco-
tado, entonces no existe una solución óptima. Al contrario, si el problema
sı́ está acotado, existe al menos una solución óptima.

Se trata de una demostración constructiva, partiendo de la solución x 0 . Como Propiedades de


x 0 es una solución linealmente dependiente se puede encontrar un vector y, x0
con las siguientes propiedades:

Ay = 0 y
yi = 0 si xi = 0
cy ≥ 0 (si no es ası́, basta con cambiar de signo a y).

A partir de x 0 se puede construir una nueva solución x 1 : Una nueva


solución x 1
x 1 = x 0 + ty (con t ≥ 0) (1.2)

Efectivamente, es solución:

Ax 1 = A(x 0 + ty) = Ax 0 + tAy = b + t0 = b (1.3)

x 1 no es peor
z1 = cx 1 = c(x 0 + ty) = cx 0 + tcy = z0 + tcy (1.4) que x 0

Dado que cy ≥ 0, siempre se cupmle z1 ≥ z0 .


Capı́tulo 1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL. TEOREMA FUNDAMENTAL 9

Los valores de las variables de la nueva solución son: Una


componente
nula más
xi1 = xi0 + tyi (1.5)

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

Si cy = 0 siempre se puede encontrar t ∈ (−∞, ∞) tal que x 1 tenga una


componente nula más que x 0 . En este caso:
• x 1 es factible
• cx 1 = cx 0
• x 1 tiene una componente nula más
Si cy > 0
x1
• Si ∃yi < 0, con t = min{i/yi ≤0} yii se obtiene una solución no peor
con una componente nula más.
• Si yi > 0 el problema no está acotado, el valor de la función objeti-
vo pude ser tan grande como se desee.

En términos de Ingenierı́a de Organización, los problemas no acotados no tie- Problemas no


nen sentido. acotados

Al llegar a una linealmente independiente, ya no se puede iterar, porque no Iterando


existe y que cumpla 1.2.2. Por supuesto, por otro lado, se habrı́a encontrado
la solución linealmente independiente deseada.

1.3. Implicaciones del Teorema Fundamental

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.

Una forma de resolver un problema de Programación Lineal es la siguiente: Enumeración


explı́cita
1. Resolver todos los sistemas de ecuaciones correspondientes a todas las
soluciones linealmente independientes.
2. Descartar las no factibles
3. Escoger la que tenga mayor valor de la función ojetivo
Capı́tulo 1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL. TEOREMA FUNDAMENTAL 10

Eficaz, pero poco eficiente. El problema


 
n n!
Con m restricciones y n variables, existen = m!(n−m)!
m

Tiempos de resolución en años supondiendo que cada sistema se resuelve en Ejemplo


10−6 segundos. numérico

Nº variables 10 100 1000


Nº restricciones 4 40 400
Nº sol. Básicas 210 1.37462E+28 4.9653E+290
Tiempo res. (años) 4.3589E+14 1.5745E+277

1.4. Ejempo de aplicación

maz z =4x1 + 4x2 + 6x3 + 8x4


2x1 + 3x2 + 3x3 + 6x4 + x5 = 400
(1.7)
1x1 + 2x2 + 6x3 + 3x4 + x6 = 200
5x1 + 5x2 + 5x3 + 5x4 + x7 = 10000

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

Como las columnas correspondientes a componentes no negativas de x son


linealmente dependientes, se pueden encontrar varlores de y2 , y3 , y4 , y5 y y7
no todos ellos nulos que cumplan:
⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞
3 3 6 1 0
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
y2 ⎝ 2 ⎠ + y3 ⎝ 6 ⎠ + y4 ⎝ 3 ⎠ + y5 ⎝ 0 ⎠ + y7 ⎝ 0 ⎠ =
5 5 5 0 1
⎛ ⎞ (1.9)
0
⎜ ⎟
=⎝ 0 ⎠
0

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)

Es decir, es posible encontrar y que cumple Ay = 0, con yi = 0 si xi = 0

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

Se puede comprobar que AX 1 = b. En efecto: x 1 es solución


⎛ ⎞
0
⎜ ⎟
⎜ 4 ⎟
⎛ ⎞⎜ ⎟
2 3 3 6 1 0 0 ⎜⎜ 14 ⎟

1 0 ⎜ ⎟⎜ ⎟
Ax = A(x + ty) = ⎝ 1 2 6 3 0 1 0 ⎠⎜ 36 ⎟
⎜ ⎟
5 5 5 5 0 0 1 ⎜⎜ 130 ⎟

⎜ ⎟
⎝ 0 ⎠
9370
⎛ ⎞
0
⎜ ⎟
⎜ 0,1 ⎟
⎛ ⎞⎜ ⎟ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞
2 3 3 6 1 0 0 ⎜⎜ −0,567 ⎟
⎟ 400 0 400
⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
+t ⎝ 1 2 6 3 0 1 0 ⎠⎜ 1,067 ⎟ = ⎝ 200 ⎠ + ⎝ 0 ⎠ = ⎝ 200 ⎠
⎜ ⎟
5 5 5 5 0 0 1 ⎜⎜ −5 ⎟
⎟ 1000 0 1000
⎜ ⎟
⎝ 0 ⎠
−3
(1.12)

Se puede comprobar que cy ≥ 0 x 1 no peor que


x0
Capı́tulo 1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL. TEOREMA FUNDAMENTAL 12

⎛ ⎞
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

La nueva solución es:


⎛ ⎞ ⎛ ⎞ ⎛ ⎞
0 0 0
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 4 ⎟ ⎜ 0,1 ⎟ ⎜ 6,47 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 14 ⎟ ⎜ −0,567 ⎟ ⎜ 0 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
1 ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
x =⎜ 36 ⎟ + 24,56 ⎜ 1,067 ⎟ = ⎜ 62,35 ⎟ (1.16)
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 130 ⎟ ⎜ −5 ⎟ ⎜ 6,55 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎝ 0 ⎠ ⎝ 0 ⎠ ⎝ 0 ⎠
9370) −3 9655,93
Capı́tulo 1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL. TEOREMA FUNDAMENTAL 13

z1 = 524,68

y = (0, −4,2, 0, 2,8, −4,2, 0, 7)T Segunda


iteración
t = min{ 6,47
4,2 ,
6,54
4,2 = 1,54

x 2 = (0, 0, 0, 66,66, 0,07, 0, 9666,71)T

z2 = 533,38
Capı́tulo 2

FUNDAMENTOS DEL MÉTODO DEL SIMPLEX

2.1. Introducción

Dado un problema de Programación Lineal Solución básica

maz z =cx
s.a:
(2.1)
Ax = b
x≥0

donde A es una matriz m × n, con n > m y rang(A) = m:


Se define:

Base B como un conjunto de m columnas de A linealmente independien-


tes.
Solución básica correspondiente a la base B, valores de x resultantes de
resolver el sistema de ecuaciones Ax = b anulando todas las variables
correspondientes a columnas diferentes de las de B. Una solución básica:
• es linealmente independiente y
• como máximo, tiene m componentes no nulas, tantas como res-
tricciones.

En lo que sigue identificaremos:

solución básica con solución linealmente independiente. 1


solución no básica con solución linealmente dependiente.

Además:

una solución básica tiene como máximo m componentes no nulas y


1 En efecto. Por la propia definición, una solución básica es linealmente independiente. Por
otro lado, cualquier solución linealmente independiente con m componentes no nulas es bási-
ca. Y cualquier solución linealmente independiente con menos de p < m componenetes nulas
también es básica por la siguiente razón. Si tomamos la matriz con las p columnas de las varia-
bles no nulas, siempre podemos añadir otras m − p columnas de variables para que formen una
base (el rango de A es m y esto siempre es posible. Haciendo eso obtendrı́amos una solución
básica con p varuables básicas no nulas y m − p variables básicas nulas, lo que se conoce como
solución degenerada.
Capı́tulo 2. FUNDAMENTOS DEL MÉTODO DEL SIMPLEX 15

una solución no básica tiene, tı́picamente, al menos m + 1 componentes


no nulas2 .

Dada una solución básica, con base B, hay dos tipos de variables:

Variable básica: cada una de las variables correspondientes a las colum-


nas de B, que son pontencialmenete no nulas.
Variable no básica: cada una de las variables correspondientes a las co-
lumnas de A no incluidas en B, que son siempre nulas.

Podemos expresar las restricciones Ax = b como: Nivel de


realización
BuB + A(−B) x (−B) = b (2.2)

Donde

uB es el nivel de realización de las actividades básicas (valor de las varia-


bles básicas).
x (−B) representa las variables no básicas, que son nulas por definición.
A(−B) es el conjunto de columnas de las actividades no básicas.

c B es un vector fila con los elmentos de c correspondientes a las variables Vector c B


básicas

z = cx = c B uB + c (−B) x (−B) (2.3)

Donde c (−B) es el vector fila de las contribuciones unitarias al beneficio de las


variables no básicas.

El vector de multiplicadores del simplex o precios sombra: Precios sombra


πB
π B = c B B −1 (2.4)

El vector de criterios del Simplex: Criterio del


Simplex, V B
V B = c − c B B −1 A (2.5)

V B es un vector fila de n × 1. El criterio del simplex de la variable xk es VkB =


ck − c B B −1 Ak , y es un escalar.

El vector de tasas de sustitución de las variables básicas: Tasas de


sustitución, p B
p B = B −1 A (2.6)
2 Podrı́a ocurrir que m columnas de A sean linealmente dependientes, de forma que el sistema

de ecuaciones corrrespondiente fuera compatible indeterminado. Podrı́an existir soluciones no


básicas con m componentes no nulas
Capı́tulo 2. FUNDAMENTOS DEL MÉTODO DEL SIMPLEX 16

p es una matriz m × n. Las tasas de sustitución de las variables básicas con


respecto a la variable xk es p B = B −1 Ak , que es un vector columna m × 1.

Figura 2.1: Lógica del método del Simplex

1. Una solución básica factible de partida; Lo que


2. Un criterio de optimalidad; necesitamos
3. Una regla de entrada; y
4. Una regla de salida.

2.2. Regla de entrada

Dada una solución básica B, si la variable xk es no básica, interesa introducirla Enunciado


en la base si se cumple:

VkB = ck − c B B −1 Ak > 0 (2.7)

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)

Es decir, como xk = t ≠ 0, los valores originales de las variables básicas (uB )


cambian en función del valor de la variable xk = t, y por esto la notación uB (t).
Despejando:

uB (t) = B −1 b − tB −1 Ak = uB − tpkB (2.9)


Capı́tulo 2. FUNDAMENTOS DEL MÉTODO DEL SIMPLEX 17

El valor de z al introducir la nueva variable es: Si entra xk


cambia el valor
z = cx(t) = c B uB (t) + tck = c B (B −1 b − tB −1 Ak ) + tck =
(2.10) de z
c B B −1 b + t(ck − c B B −1 Ak ) = z + tVkB

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

VkB = ΔzΔxk =1 (2.11)

2.3. Regla de salida

Si a partir de una solución básica de base B entra la variable xk en la base, Enunciado


la variable que debe salir de la base es aquella variable es la i-ésima, y que
cumple:
⎧ ⎫
uBi ⎨ uB ⎬
j
= min pB >0 (2.12)
pB jk ⎩ pB ⎭
ik jk

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

Si pjB k > 0, la j-ésima variable básica disminuye al introducir xk


Si pjB k < 0, la j-ésima variable básica aumenta al introducir xk
Si pjB k = 0, la j-ésima variable básica no se modifica al introducir xk

2.4. Criterio de optimalidad

Una solución es óptima si V B ≤ 0, es decir, VjB ≤ 0 ∀j Enunciado

En efecto, si VjB ≤ 0∀j, la introducción de una variable no básica en la base


darı́a lugar a un incremento negativo de la función objetivo. Con lo que no hay
posiblidad de mejora; la solución es óptima.
Capı́tulo 2. FUNDAMENTOS DEL MÉTODO DEL SIMPLEX 18

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)

Dada cualquier solución x, se pueden multiplicar por la derecha los términos


de la expresión anterior y operar:

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

2.5.1. Primera iteración

No hacer nada. Variables básicas: variables de holgura. Solución inicial

Las columnas de las variables básicas. La base

⎛ ⎞
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

La función objetivo se puede calcular de la siguiente manera: La función


objetivo
⎛ ⎞

16
⎜ ⎟
zB1 = cx 1 = c B1 uB1 = 0 0 0 ⎝ 26 ⎠ = 0 (2.20)
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

Las componentes de c B1 son las componentes de c de las variables básicas. c B1



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

Como sabemos que t = 12

⎛ ⎞ ⎛ ⎞ ⎛ ⎞
16 1 4
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
uB1 (12) = ⎝ 26 ⎠ − 12 ⎝ 2 ⎠ = ⎝ 2 ⎠ (2.27)
24 2 0

Es decir, al introducir x3 en la base, los niveles de realización de las tres varia-


bles básicas disminuyen y la primera que se anula es x6 cuando x3 = 12

A partir de la primera base, que no es óptima: Resumen


B
interesa introducir x3 , cuyo criterio del simplex es V3 1 = 3 y
y que entre con valor x3 = 12
para que salga de la base x6
B
y que la función objetivo se incremente en tV3 1 = 12 × 3 = 36
Capı́tulo 2. FUNDAMENTOS DEL MÉTODO DEL SIMPLEX 21

2.5.2. Segunda iteración

Hacer solo 12 unidades de producto P3 y nada del resto. Variables básicas: x4 , Solución inicial
x5 y x3 .

Las columnas de las variables básicas. La base

⎛ ⎞
1 0 1
⎜ ⎟
B2 = ⎝ 0 1 2 ⎠ (2.28)
0 0 2

En este caso, la inversa de la base ya no es la identidad. La inversa de la


base
⎛ ⎞
1 0 − 12
⎜ ⎟
B2−1 =⎜
⎝ 0 1 −1 ⎟ ⎠ (2.29)
1
0 0 2

En este caso, el nivel de realización no coincide con b. El nivel de


realización de
⎛ ⎞⎛ ⎞ ⎛ ⎞ las variables
1 0 − 12 16 4
⎜ ⎟⎜ ⎟ ⎜ ⎟ básicas
uB2 = B2−1 b = ⎜
⎝ 0 1 −1 ⎟ ⎠ ⎝ 26 ⎠ = ⎝ 2 ⎠ (2.30)
1
0 0 2
24 12

⎛ ⎞ 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

Las componentes de c B2 son las componentes de c de las variables básicas. c B2



c B2 = 0 0 3 (2.33)

El criterio del Simplex es el siguiente. El criterio del


Simplex


V B2 = c − c B2 B2−1 A = 1 2 3 0 0 0
⎛ ⎞⎛ ⎞
1

⎜ 1 0 −2 ⎟ 1 2 01 1 0
3 ⎜ ⎟⎜ ⎟
− 0 0 ⎝ 0 1 −1 ⎠ ⎝ 3 −2 0 ⎠=
2 0 1
1
0 0 2
1 0 12 0 0


1 2 3 0 0 0 (2.34)
⎛ ⎞
1

⎜ 2 0 1 0 − 21
2 ⎟
− 0 0 3 ⎜ 2 −2 0 0 1 −1 ⎟
⎝ ⎠
1 1
2 0 1 0 0 2


= − 21 2 0 0 0 − 32

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

Como sabemos que t = 2

⎛ ⎞ ⎛ ⎞ ⎛ ⎞
4 2 0
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
uB2 (2) = ⎝ 2 ⎠ − 2 ⎝ −2 ⎠ = ⎝ 6 ⎠ (2.38)
12 0 12

Es decir, al introducir x2 en la base, los niveles de realización solo x4 disminu-


ye y, en particular, se hace cero cuando x2 = 2

A partir de la segunda base, que no es óptima: Resumen


B
interesa introducir x2 , cuyo criterio del simplex es V2 2 = 2 y
y que entre con valor x3 = 2
para que salga de la base x4
B
y que la función objetivo se incremente en tV2 2 = 2 × 2 = 4

2.5.3. Tercera iteración

Hacer solo 12 unidades de producto P3 y cuatro de P2 . Variables básicas: x2 , Solución inicial


x5 y x3 .

Las columnas de las variables básicas. La base

⎛ ⎞
2 0 1
⎜ ⎟
B3 = ⎝ −2 1 2 ⎠ (2.39)
0 0 2

En este caso, la inversa de la base ya no es la identidad. La inversa de la


base
⎛ ⎞
1
0 − 14
⎜ 2 ⎟
B3−1 =⎜
⎝ 1 1 − 32 ⎟
⎠ (2.40)
1
0 0 2
Capı́tulo 2. FUNDAMENTOS DEL MÉTODO DEL SIMPLEX 24

En este caso, el nivel de realización no coincide con b. El nivel de


realización de
⎛ ⎞⎛ ⎞ ⎛ ⎞ las variables
1
0 − 14 16 2 básicas
⎜ 2 ⎟ ⎜ ⎟ ⎜ ⎟
uB3 = B3−1 b = ⎜
⎝ 1 1 − 32 ⎟
⎠ ⎝ 26 ⎠ = ⎝ 6 ⎠ (2.41)
1
0 0 2
24 12

⎛ ⎞ 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

Las componentes de c B3 son las componentes de c de las variables básicas. c B3



c B3 = 2 0 3 (2.44)

El criterio del Simplex es el siguiente. El criterio del


Simplex


V B3 = c − c B3 B −1 A = 1 2 3 0 0 0
⎛ ⎞⎛ ⎞
1 1

⎜ 2 0 −4 ⎟ 1 2 1 1 0 0
3 ⎟⎜ ⎟
− 0 0 3 ⎜
⎝ 1 1 − 2 ⎠ ⎝ 3 −2 2 0 1 0 ⎠ = (2.45)
1
0 0 2
1 0 2 0 0 1


= −1 0 0 −1 0 −1
Capı́tulo 2. FUNDAMENTOS DEL MÉTODO DEL SIMPLEX 25

La solución de la base B3 es óptima, ya que V B3 ≤ 0 La solución es


óptima
Capı́tulo 3

MÉTODO DEL SIMPLEX.VARIANTE DE LA


MATRIZ COMPLETA

3.1. Introducción

oper andopor f ilas




(B|A) → I|B −1 (3.2)

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

Es posible encontrar una matriz M, tal que MA = B


⎛ ⎞
2 0 0
⎜ ⎟
M =⎝ 2 1 0 ⎠ (3.4)
0 0 1

En 3.2, la matriz por la que estamos multiplicando tanto B como A es B − 1


Podemos ampliar el conjunto de matrices con el que operamos por filas
oper andopor f ilas


(b|A|B|I) → uB |p B |I|B −1 | (3.5)

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.2. Variante de la matriz completa

Figura 3.1: Lógica del método del Simplex

3.3. Ejemplo

El siguiente problema es el mismo que el del ejemplo disponible en 2.5, resuel-


to mediante el método del simplex, en su variante de la matriz completa.

maz z =1x1 + 2x2 + 3x3 El problema


1x1 + 2x2 + 1x3 + x4 = 16
3x1 − 2x2 + 2x3 + x5 = 26 (3.7)
1x1 + 0x2 + 2x3 + x6 = 24
xi ≥ 0, i = 1 · · · 6

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

MÉTODOS DE LA M GRANDE Y DE LAS DOS


FASES

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

todas se pueden expresar como:


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

La base es igual a la matriz identidad, B = I.


uB = b, es decir el valor de cada variables básicas, correspondiente a
una variable de holgura es igual al valor de la disponibilidad del recurso
correspondiente.
z = 0.
V B = c.
pB = A
cB = 0
πB = 0
Capı́tulo 4. MÉTODOS DE LA M GRANDE Y DE LAS DOS FASES 29

Si existe alguna restricción de tipo ≥, se puede convertir en una igualdad Restricciones ≥


añadiendo una variable de holgura con coeficiente −1:


aij xj ≥ bi bi ≥ 0
j
 (4.3)
aij xj − hi = bi bi ≥ 0
j

Si existe alguna restricción de tipo =, no es necesario introducir ninguna va- Restricciones =


riable de holgura:


aij xj = bi
(4.4)
j

Si existen restricciones de tipo ≥ o =, al convertirlas en restricciones en térmi-


nos de igualdad, no es tan sencillo obtener una solución de partida trivial.

4.2. Método de la M grande

Dado un problema de Programación Lineal P : Problema


original, P y

aij xj ≤ bi problema
j auxiliar P


ai
j xj ≥ bi

j (4.5)

ai

j xj = bi

xj ≥ 0

Es posible convertirlo en un problema en donde las restricciones respondan a


la forma de Ax = b:

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

Se puede definir un problema P


de la forma:
 
max. z
= cx − M ai
− M ai

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

Donde M es un número ’suficientemente grande’ y las variables ai


y ai

se
denominan variables artificiales.

Cualquier solución factible de P es solución factible de P


. propiedades de
Una solución factible de P
lo es también de P si todas las variables arti- P

ficiales son simultáneamente cero.


Si no existe ninguna solución factible de P
con todas las variables artifi-
ciales simultáneamente nulas, no existe solución factible de P .
Si para cualquier solución óptima de P
, siempre una variable artificial
toma un valor no nulo, P no tiene solución factible.
Siempre es posible encontrar una solución básica factible de partida de
P

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

tantas componentes de c adicionales como variables artificiales (con va-


lor nulo) y
tantas columnas en A adicionales como variables artificiales (columnas
de la matriz identidad).
Salvo por esas columnas c, A, b y x son idénticos para los dos problemas
Capı́tulo 4. MÉTODOS DE LA M GRANDE Y DE LAS DOS FASES 31

Cuando se obtiene una solución básica de P


en la que las variables artificiales
no están en la base:

B = B
, c B = c B , uB = uB , por lo que:

VB = VB

pB = pB

uB = uB

zB = zB

Es decir, la tabla obtenida en la resolución de P


es completamente idéntica a la
correspondiente a P , salvo por las columnas correspondientes a las variables
artificiales.

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

4.3. Método de las 2 fases

El método de las dos fases se apoya, igualmente, en un problema auxiliar P


,
igual que el de la M salvo en la función objetivo. Esta función es la suma de las
variables artificiales con coeficiente −1. Es decir, P
tiene la forma:
 
max. z
= − ai
− ai

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

Las propiedades del problema P


son las siguientes: propiedades de
P

Cualquier solución factible de P es solución factible de P


.
Una solución factible de P
lo es también de P si todas las variables arti-
ficiales son simultáneamente cero.
Si no existe ninguna solución factible de P
con todas las variables artifi-
ciales simultáneamente nulas, no existe solución factible de P .
Si para cualquier solución óptima de P
, siempre una variable artificial
toma un valor no nulo, P no tiene solución factible.
Siempre es posible encontrar una solución básica factible de partida de
P

Capı́tulo 4. MÉTODOS DE LA M GRANDE Y DE LAS DOS FASES 32

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

el vector de disponibilidad de los recursos b = b


y
la matriz de coeficientes técnicos de las variables no artificiales Ai = A
i
si xi no es una variable artificial.

Dada una solución básica factible de P


en la ninguna variables básica es arti- Relación entre
ficial las bases de dicha solución es común para P y P
bases

Cuando se obtiene una solución básica de P


en la que las variables artificiales
no están en la base, los siguientes elementos son coincidentes:

B = B

B −1 = B
−1

uB = u
B (ya que B −1 b = B
−1 b
)

p B = p
B

Pero los siguientes elementos son diferentes


c B ≠c’B

zB ≠ z
B

B

V ≠V
B

Es decir, de la tabla obtenida en la resolución de P


de pueden reutilizar todas
las filas menos la que contienen −z y V B , que hay que recalcular.

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

4.4.1. Método de la M grande

max. z = x1 + 2x2 + 3x3 Problema P


x1 + x2 + x3 ≤ 16
3x1 + 2x2 + 2x3 = 26 (4.9)
x1 + x3 ≥ 10
x1 , x2 , x3 ≥ 0

max. z = x1 + 2x2 + 3x3 Problema P


x1 + x2 + x3 + h1 = 16 reformulado
3x1 + 2x2 + 2x3 = 26 (4.10)
x1 + x3 − h3 = 10
x1 , x2 , x3 , h1 , h3 ≥ 0

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

36M 1+4M 2+2M 3+3M -M 0 0 0 F 0


= F 0 + MF 2 + MF 3
h1 16 1 1 1 0 1 0 0 F 1
= F1
a2 26 3 2 2 0 0 1 0 F 2
= F2
a3 10 1 0 1 -1 0 0 1 F 3
= F3

4M−26 4−2M 7+M −1−4M


3 0 3 3 -M 0 3 0 F 0

= 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

-18 0 6 0 7 0 2-M -7-M F 0

= 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

La solución anterior es una solución básica factible de P y también una solu-


ción básica factible de P
(ya que las actividades artificiales son simultánea-
mente nulas).

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

4.4.2. Método de las dos fases

max. z = x1 + 2x2 + 3x3 Problema P


x1 + x2 + x3 ≤ 16
3x1 + 2x2 + 2x3 = 26 (4.12)
x1 + x3 ≥ 10
x1 , x2 , x3 ≥ 0
Capı́tulo 4. MÉTODOS DE LA M GRANDE Y DE LAS DOS FASES 35

max. z = x1 + 2x2 + 3x3 Problema P


x1 + x2 + x3 + h1 = 16 reformulado
3x1 + 2x2 + 2x3 = 26 (4.13)
x1 + x3 − h3 = 10
x1 , x2 , x3 , h1 , h3 ≥ 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

Dado un problema de Programación Lineal, {P : max. z = cx, s.a Ax = b, x ≥ Elementos


0}, existen varios elementos caracterı́sticos del problema y que no dependen caracterı́sticos
de la solución: de un problema

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

Este capı́tulo se ocupa de la interpretación de estos elementos que dependen Un ejemplo


de la base. Por ejemplo, más adelante, se habla sobre el valor de los recursos en
un problema y para una solución (una base). Pues bien, el valor de los recursos
depende de dicha solución. Por ejemplo, el valor que tiene para un centro
de cálculo depende de la forma en la que operar de dicho centro. Un servidor
adicional no tiene ningún valor si en dicho centro de cálculo existen servidores
desocupados. Esto no significa que el servidor adicional no tenga valor, no
tiene valor para dicha forma de operar del centro de cálculo.

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

Tı́picamente, la interpretación económica se realiza para la solución óptima,


porque es la solución más interesante pero se podrı́a realizar el mismo análsis
para cada cualquier solución del problema considerado.

5.1.1. Ejemplo de aplicación

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 .

Además, existe un compromiso comercial de entregar al menos 4 productos Compromiso


semanales, donde estos cuatro productos pueden ser cualquier combinación comercial
de productos P1 y P2 .

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.

Si xi representa el número de unidades de palés de tipo Pi , i = 1, 2, se puede


construir el siguiente modelo de Programación Lineal para obtener la produc-
ción que reporte un mayor beneficio.

max z = 2x1 + x2 Formulación


sujeto a:
3x1 + 1x2 ≤ 30
(5.1)
4x1 + 3x2 ≤ 16
x1 + 2x2 ≥ 4
x1 + 3x2 ≥ 5
Capı́tulo 5. INTERPRETACIÓN TÉCNICO-ECONÓMICA 38

Este problema se puede reformular introduciendo variables de holgura, h1 , h2 ,


h3 y h4 que representan, respectivamente:

h1 : el número de horas del taller T1 que no se llegan a utilizar.


h2 : el número de horas del taller T2 que no se llegan a utilizar
h3 : el número de productos entregados a los clientes por encima de la
cantidad mı́nima pactada.
h4 : el número de horas en la que el colectivo citado trabaja por encima
del mı́nimo pactado con la admisnistración.

max z = 2x1 + x2 Formulación


sujeto a: equivalente
3x1 + x2 + h1 = 30
(5.2)
4x1 + 3x2 + h2 = 16
x1 + 2x2 − h3 = 4
x1 + 3x2 − h4 = 5

La solución óptima de este problema queda descrita en la siguiente tabla La solución


óptima
x1 x2 h1 h2 h3 h4
-70/9 0 0 0 -5/9 0 -2/9
h1 167/9 0 0 1 -8/9 0 -5/9
h3 5/9 0 0 0 1/9 1 -5/9
x1 11/3 1 0 0 1/3 0 1/3
x2 4/9 0 1 0 -1/9 0 -4/9

El plan óptimo consiste en lo siguiente. Interpretación

Se montan, por término medio, 11 palés de tipo 1 cada tres semanas


(x1 = 11/3) y
se montan, por término medio un 4 palés de tipo 2 cada nueve semanas
(x2 = 4/9)

con lo que se obtiene un beneficio semanal de 7.78 u.m.

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

La solución óptima se alcanza cuando las variables básicas son h1 , h3 x1 y x2 . Caracterización


Es decir la base, B es la siguiente: ⎛ ⎞
1 0 3 1
⎜ ⎟
  ⎜ 0 0 4 3 ⎟
B = Ah1 Ah3 Ax1 Ax2 = ⎜ ⎜ 0 −1 1 2 ⎟
⎟ (5.3)
⎝ ⎠
0 0 1 3

5.2. Tasas de sustitución

5.2.1. Discusión teórica

Las tasas de sustitución se definen como p B = B −1 A Definición

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)

5.2.2. Ejemplo de aplicación

En el ejemplo de aplicación, para la solución óptima, p B es la siguiente matriz:


⎛ ⎞
0 0 1 −8/9 0 −5/9
⎜ ⎟
⎜ 0 0 0 1/9 1 −5/9 ⎟
pB = ⎜


⎟ (5.5)
⎝ 1 0 0 1/3 0 1/3 ⎠
0 1 0 −1/9 0 −4/9

Por ejemplo, las tasas de sutitución de la variable h2 con respecto a las varia-
bles básicas se discuten a continuación.

Antes, conviene notar que h2 es una variable no básica. Hacer que h2 = 1


significa que el taller T2 , que en la solución óptima está ocupado al completo,
tuviera una hora desocupada. En este caso, los valores de las variables básicas
se modificarı́an de la siguiente manera.
B
p14 = −8/9
• Cuando h2 = 1, Δh1 = 8/9.
• Es decir, al desocupar una hora de taller T2 , de dejan de utilizar 8/9
de hora más con respecto a la cantidad que no se estaba utilizando
de T1 .
B
p24 = 1/9
Capı́tulo 5. INTERPRETACIÓN TÉCNICO-ECONÓMICA 40

• Cuando h2 = 1, Δh3 = −1/9


• Es decir, al desocupar una hora de taller T2 , el número de productos
que se entregan por encima del compromisio comercial disminuye
en 1/9.
B
p34 = 1/3
• Cuando h2 = 1, Δx1 = −1/3
• Es decir, al desocupar una hora de taller T2 , se produce 1/3 de palés
de tipo 1 menos.
B
p44 = −1/9
• Cuando h2 = 1, Δx2 = 1/9
• Es decir, al desocupar una hora de taller T2 , se produce 1/9 de palés
de tipo 2 más.

5.3. Multiplicadores del simplex

5.3.1. Discusión teórica

El vector de multiplicadores del simplex (o precios sombra), π B se define como: Definición

π B = c B B −1 (5.6)

El vector de multiplicadores del simplex representa, para una solución deter-


minada (es decir, para una base B determinada), el valor de los recursos. De
otra manera: πiB representa el valor que tiene una unidad adicional de recurso
Ri (es decir, un incremento unitario de b1 ). En efecto, como se cumple que:

z = c B uB = c B B −1 b = π B b (5.7)

Si Δbi = 1, es decir, si se incrementa la disponibilidad del recurso Ri en una


unidad: ⎛ ⎛ ⎞⎞
0
⎜ ⎜ 0 ⎟⎟
⎜ ⎜ ⎟⎟
⎜ ⎜ ⎟⎟
⎜ ⎜ ... ⎟⎟
z
= c B uB = c B B −1 b
= π B ⎜
⎜b + ⎜ ⎟⎟
⎜ 1 ⎟⎟ =
⎜ ⎜ ⎟⎟
⎜ ⎜ ⎟⎟
⎝ ⎝ ... ⎠⎠
0
⎛ ⎞ (5.8)
0
⎜ 0 ⎟
⎜ ⎟
⎜ ⎟
B

B ⎜ ... ⎟
⎟ B B
=π b+π ⎜ ⎟ = z + πi ⇒ Δz = πi
⎜ 1 ⎟
⎜ ⎟
⎝ ... ⎠
0
Capı́tulo 5. INTERPRETACIÓN TÉCNICO-ECONÓMICA 41

La relación que existe entre los multiplicadores del simplex y los valores de los
criterios del simplex es la siguiente.

El criterio del simplex de una variable de holgura, hi , correspondiente a


una restricción de tipo ≤ es:
VhBi = chi − c B B −1 Ahi = chi − π B Ahi =
⎛ ⎞
0
⎜ 0 ⎟
⎜ ⎟


⎜ ...

⎟ (5.9)
B B B B ⎜ ⎟ B
= 0 − π1 , π2 , ..., πi , ..., πm ⎜ 1 ⎟ = −πi
⎜ ⎟
⎜ ⎟
⎝ ... ⎠
0

El criterio del simplex de una variable de holgura, hi , correspondiente a


una restricción de tipo ≥ es:
VhBi = chi − c B B −1 Ahi = chi − π B Ahi =
⎛ ⎞
0
⎜ 0 ⎟
⎜ ⎟


⎜ ...

⎟ (5.10)
B ⎜ ⎟
= 0 − π1B , π2B , ..., πiB , ..., πm B
⎜ −1 ⎟ = πi
⎜ ⎟
⎜ ⎟
⎝ ... ⎠
0

En el caso de la solución óptima, V B ≤ 0 y, en particular, VhBi ≤ 0

En el caso de los recursos correspondientes a las restricciones de tipo ≤:


• Si hi no es una variable básica, la restricción se cumple en términos
de igualdad: hi = 0 ⇒ πiB = −VhBi ≥ 0.
En este caso, un aumento de unitario positivo de b1 (relajar la res-
tricción) reporta un incremento del beneficio postivo Δz = π B y un
incremento unitario negativo de b1 (hacer más restrictiva la restric-
ción) reporta un incremento del beneficio negativo Δz = −π B .
• Si hi es una variable básica (salvo en casos especiales) la restricción
no se cumple en términos de igualdad: hi ≥ 0 ⇒ πiB = −VhBi = 0
En este caso, el incremento unitario positivo o negativo de la dis-
ponibilidad del recurso Ri no afecta a la función objetivo (Δz = 0)
En el caso de los recursos correspondientes a las restricciones de tipo ≥:
• Si hi no es una variable básica, la restricción se cumple en términos
de igualdad: hi = 0 ⇒ πiB = VhBi ≤ 0.
En este caso, un aumento de unitario negativo de b1 (hacer me-
nos restrictiva la restricción) reporta un incremento del beneficio
postivo Δz = π B y un incremento unitario positivo de b1 (hacer
más restrictiva la restricción) reporta un incremento del beneficio
negativo Δz = −π B .
• Si hi es una variable básica (salvo en casos especiales) la restricción
no se cumple en términos de igualdad: hi ≥ 0 ⇒ πiB = −VhBi = 0
Capı́tulo 5. INTERPRETACIÓN TÉCNICO-ECONÓMICA 42

En este caso, el incremento unitario positivo o negativo de la dis-


ponibilidad del recurso Ri no afecta a la función objetivo (Δz = 0)

5.3.2. Ejemplo de aplicación

El vector de multiplicadores del simplex (precios sombra) correspondiente a


esta solución es:


 5 2

π B = π1B , π2B , π3B , π4B = 0, , 0, − (5.11)
9 9

Restricción 1. El recurso R1 no se está utilizando completamente. Como


sobran horas de taller T1 , no estamos dispuestos a pagar nada por dispo-
ner de una hora adicional del mismo y cederı́amos una hora del mismo
si nos dieran cualquier cantidad (positiva) por esa hora.
Restricción 2. El taller T2 se está utilizando completamente. Estamos
dispuestos a pagar un máximo de 5/9 unidades monetarias por disponer
de una hora adicional del mismo y cederı́amos una hora del mismo si
nos dieran cualquier cantidad mayor que 5/9.
Restricción 3. Estamos cumpliendo el compromiso comercial por encima
del mı́nimo pactado. No estamos dispuestos a pagar nada por tener que
cumplir un compromiso menos exigente (y pasar de b3 = 4 a b3 = 3).
Con cualquier cantidad que recı́biéramos estarı́amos dispuestos hacer
más exigente el compromiso comercial.
Restricción 4. Estamos cumpliendo el compromiso de la ocupación de la
mano de obra de un colectivo con el menor valor posible. Estamos dis-
puestos a pagar 29 por tener que cumplir un compromiso menos exigente
(y pasar de b4 = 5 a b4 = 4). También estamos dispuestos a recibir una
cantidad de dinero mayor 29 que para hacer más exigente el compromiso
comercial (y pasar de b4 = 5 a b4 = 6).

5.4. Criterios del simplex

5.4.1. Discusión teórica

El criterio del Simplex se define como Definición

V B = c − c B B −1 A (5.12)
Capı́tulo 5. INTERPRETACIÓN TÉCNICO-ECONÓMICA 43

En particular, el criterio del simplex de la variable xk es:

VkB = ck − c B B −1 Ak (5.13)

El criterio del Simplex, ya se vio en el capı́tulo 2, representa el incremento de Primera


la función objetivo cuando Δxk = 1. Es decir: aproximación

VkB = Δz|xk =1 (5.14)

El primer término ck representa el beneficio unitario que reporta la actividad ck


xk . Existen dos formas de interpretar VkB :

VkB = ck − c B pkB
VkB = ck − π B Ak

En ambos casos, se obtiene con la diferencia entre ck (beneficio unitario) y un


témino que puede interpretarse de dos maneras.

El término −c B pkB es el producto de: VkB = ck − c B pkB

c B : que es el beneficio unitario correspondiente a las variables básicas y


−p B : el incremento de los valores de dichas variables básicas.

De forma que c B pkB representa lo que se deja de ganar por la cantidad en la


que se modifican las variables básicas.

Ası́ que VkB es el resultado de:

aumentar el valor de la función objetivo por el beneficio derivado de


hacer una unidad de la actividad k (xk = 1), es decir, por ingresar ck y
disminuir la función objetivo por la modificación del ingreso debido a la
modificación del valor de las variables básicas −c B pkB .

Por lo tanto, se puede concluir lo siguiente.

Si V B > 0, el aumento de la función objetivo debido a la realización de


la nueva actividad supera a la reducción de la función objetivo debida a
la disminución de beneficios debida a la modificación del nivel de reali-
zación de las variables básicas. La realización de la actividad k mejora
netamente el valor de la función objetivo.
Si V B < 0, el aumento de la función objetivo debido a la realización
de la nueva actividad no compensa la reducción de la función objetivo
debida a a la disminución de beneficios debida a la modificación del nivel
de realización de las variables básicas. La realización de la actividad k
empeora netamente el valor de la función objetivo.
Capı́tulo 5. INTERPRETACIÓN TÉCNICO-ECONÓMICA 44

Si V B = 0, la realización de la actividad k no modifica el valor de la


función objetivo.

El término π B Ak es el producto de: VkB = ck − π B Ak


π B : que es valor de cada uno de los recursos y
Ak : que es el consumo de cada uno de esos recursos en los que se incurre
al realizar la actividad k, xk = 1.

De forma que π B Ak es el valor de los recursos correspondientes a la realiza-


ción de una unidad de la actividad k. Es decir, hacer una unidad de la actividad
k, significa consumir recursos que están dedicados a otra actividades. El valor
de esos recursos empleados en esas actividades es π B Ak , con lo que si se em-
plean en la actividad k y no en las correspondientes a las variables básicas, la
función objetivo se reducirı́a en ese valor.

Ası́ que VkB es el resultado de:


aumentar el la función objetivo por el beneficio ck , dervidado de hacer
una unidad de la actividad k (xk = 1) y
disminuir la función objetivo por el hecho de que se detraen recursos
que antes estaban dedicados a realizar las actividades básicas y cuyo
valor es π B Ak .

Por lo tanto, se puede concluir lo siguiente.


Si V B > 0, el aumento de la función objetivo debido a la realización de la
nueva actividad supera a la reducción del beneficio debida la detracción
de recursos que ya no se destinan a las actividades básicas y que se
destinan a realizar la actividad k. La realización de la actividad k mejora
netamente el valor de la función objetivo.
Si V B < 0, el aumento de la función objetivo debido a la realización
de la nueva actividad no compensa la reduccióndel beneficio debida la
detracción de recursos que ya no se destinan a las actividades básicas y
que se destinan a realizar la actividad k. La realización de la actividad k
empeora netamente el valor de la función objetivo.
Si V B = 0, la realización de la actividad k no modifica el valor de la
función objetivo.

5.4.2. Ejemplo de aplicación

Como se ha dicho al principio del capı́tulo, la interpretación de los elementos Presentación


que se han comentado es válido y, en particular, en cualquier solución. A titulo
de ilustración, a continuación se discute la interpretación del criterio del sim-
plex de una variable para una solución diferente de la óptima. La discusión,
insistimos, podrı́a realizarse igualmente para la solución óptima.
Capı́tulo 5. INTERPRETACIÓN TÉCNICO-ECONÓMICA 45

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

El criterio del simplex de la variable x1 se puede entender como la difencia V1B


entre el beneficio unitario por realizar la actividad correspondiente y c B p1B =
π B A1 .

Con cualquiera de las dos posibles interpretaciones, c1 = 2, representa el be- c1


neficio unitario por realizar una unidad de la actividad 1, es decir por montar
y vender un palé de tipo 1.

c B = (0, 0, 0, 1) c B p1B
  (5.15)
5 5 1 1 T
pB = , , ,
2 2 2 2

Al hacer una unidad de x1 :

h1 disminuye en 52 unidades, cada una de las cuales reportaba un bene-


ficio de ch2 = 0, con lo que dejamos de ganar 52 × 0.
h2 disminuye en 52 unidades, cada una de las cuales reportaba un bene-
ficio de ch2 = 0, con lo que dejamos de ganar 52 × 0.
h4 disminuye en 12 unidades, cada una de las cuales reportaba un bene-
ficio de ch2 = 0, con lo que dejamos de ganar 12 × 0.
x2 disminuye en 12 unidades, cada una de las cuales reportaba un bene-
ficio de ch2 = 1, con lo que dejamos de ganar 12 × 1.

1
Es decir, dejamos de ganar 2

Netamente: V1B = c1 − c B p1B

El beneficio aumenta, por un lado en 2 y


disminuye, por otro, en 12 ,

por lo que, globalmente, si hacemos un palé de tipo 1, aumentamos el beneficio


en V1B = 2 − 12 = 32

Se puede interpretar el valor de V2B en términos de π B π B A1


Capı́tulo 5. INTERPRETACIÓN TÉCNICO-ECONÓMICA 46

π B = (0, 0, −1, 0)
 T (5.16)
1
A1 = 3, 4, − , 0
2

Al hacer una unidad de x1 :

Se consumen 3 unidades del recurso 1, es decir, se emplean 3 horas de


taller T1 , cuyo valor es π1 = 0 (sobran horas).
Se consumen 4 unidades del recurso 2, es decir, se emplean 4 horas de
taller T2 , cuyo valor es π2 = 0 (sobran horas).
Se “consume” 1 unidad del recurso 3. En este caso, esto significa contri-
buir con 1 unidad adicional al cumplimiento del compromiso comercial.
Cada unidad en la que el cumplimiento comercial se hace más restrici-
tivo, esto deteriora la función objetivo en − 12 (esta solución se cumple
exactamente al lı́mite (h3 = 0)). Fabricar un pale de tipo 1 provoca supe-
rar el compromiso comercial y eso deteriora la función objetivo en − 12
El razonamiento es análogo para la cuarta restriccion, pero en este caso,
ya se está π4 = 0.

1
Es decir, dejamos de ganar 2

Netamente: V1B = c1 − π B A1

El beneficio aumenta, por un lado en 2 y


disminuye, por otro, en 12 ,

por lo que, globalmente, si hacemos un palé de tipo 1, aumentamos el beneficio


en V1B = 12
Capı́tulo 6

INTERPRETACIÓN GRÁFICA

6.1. Introducción

En este capı́tulo se presenta la interpretación gráfica en el plano de muchos Dos


de los conceptos presentados hasta ahora. Este capı́tulo no pretende ser un dimensiones
tratado exhaustivo de la geometrı́a de los problemas de Programación Lineal.

El objetivo es ilustrar dichos conceptos pero no ofrecer herramientas para el Objetivo


tratamiento de problemas de Programación Lineal.

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.

6.2. Conceptos generales

Dado un problema de Programación lineal en el plano

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

donde m es el número de restricciones


Capı́tulo 6. INTERPRETACIÓN GRÁFICA 48

En el ejemplo que sigue m = 2 Ejemplo

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.

El problema del ejemplo anterior se puede formular en términos de igualdad


añadiendo las variables de holgura necesarias.

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

Dado un punto cualquiera en el plano, P (x1 , x2 ) y una restricción Ri :

Si este punto está situado en el semimplano de soluciones factibles con


respecto a Ri , entonces el P cumple la restricción Ri y hi ≥ 0.
En particular, puede estar sobre la propia recta, en cuyo caso, se cumple
la restricción con hi = 0
Si este punto está situado en el semimplano de soluciones no factibles
con respecto a Ri , entonces el P no cumple la restricción Ri y hi < 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

• Está a la derecha de la recta R2 , el su semiplano no factible, con lo


que h2 < 0
• Está a la izquierda de la recta R3 , el su semiplano factible, con lo
que h3 > 0

Figura 6.1: Restricciones de un problema de Programación Lineal

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 región de soluciones factibles siempre es un polı́gono y es una región conve-


xa; es decir, para cualesquiera dos puntos de la solución de regiones factibles,
todos los puntos pertenecientes al segmento que uno aquellos dos puntos
también está dentro de la región de soluciones factibles.
Capı́tulo 6. INTERPRETACIÓN GRÁFICA 50

Figura 6.2: Región de soluciones factibles de un problema de Programación


Lineal

La función objetivo de un problema de Programación lineal en el plano tiene la Función objetivo


forma de z = c1 x1 + c2 x2 . Para cada valor de z tenemos una recta en particu-
lar, donde todos los puntos de dicha recta proporcionan el mismo valor de la
función objetivo.

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

Figura 6.3: Región de soluciones factibles de un problema de Programación


Lineal

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.

Sin embargo, la recta x1 + 2x2 = 6 sı́ tiene un segmento dentro de la región de


factiblidad. Existe un conjunto de soluciones factibles que reportan un valor
de z = 6, correspondiente a todos los puntos del segmento en el que la recta
anterior intersecta con la región de soluciones factibles.

Un problema en el plano tiene n variables (x1 , x2 y todas las variables de Soluciones


holgura correspondiente a restriciones leq o geq) y una solución básica tiene básicas
m variables básicas. En particular, en el caso de que todas las retricciones
tengan variables de holgura, una solución básica tiene:

m variables básicas y
2 variables no básicas.
Capı́tulo 6. INTERPRETACIÓN GRÁFICA 52

Figura 6.4: Región de soluciones factibles de un problema de Programación


Lineal

Es decir en una solución básica, como mı́nimo, debe haber dos variables nulas:

x1 y x2 (la solución es el origen de coordenadas);


x1 o x2 y una variable de holgura (la solució es la intersección la restric-
ción correspondiente con uno de los ejes);
dos variables de holgura (la solución es la itersección de dos restriccio-
nes).

Es decir, las soluciones básicas de un problema de programación lineal son:

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

En el ejemplo, existen tres restricciones (m = 3), por lo que el número de


5
soluciones básicas es = 10, que aparecen indicadas en 6.4
2

Figura 6.5: Región de soluciones factibles de un problema de Programación


Lineal

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

Figura 6.6: Región de soluciones factibles de un problema de Programación


Lineal

La interpretación gráfica del Teorema Fundamental es la siguiente. Dada cual- Teorema


quier solución no básica (un punto interior del pólı́gono de soluciones facti- fundamental
bles), es posible desplazarse hacia una solución en una restricción (con una
componente con un cero más que la de partida) y, desde ella, a una solución
básica (con dos componentes nulas adicionales), siendo esta solución no peor
que la de partida.

En la figura 6.7 se muestra una solución no básica x NB . Desde ella es posible


desplazarse por múltiples caminos hasta llegar a una solución básica no pero
que x NB .

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.

Igualmente, siguiendo el camino naranja, nos desplazamos primero a una so-


lución no básica sobre la restricción R1 (con una componente nula adicional:
h1 ). Y, desde ella es posible llegar a x 7 , en la que hay dos componentes nulas:
h1 y h2 y tres no nulas: es una solución básica y mejor que la de partida.
Capı́tulo 6. INTERPRETACIÓN GRÁFICA 55

Figura 6.7: Región de soluciones factibles de un problema de Programación


Lineal

6.3. Método del Simplex

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

Figura 6.8: Lógica general del método del Simplex

El criterio del simplex de la variable básica xi , ViB representa el incremento Regla de


unitario de la función objetivo si x1 . En la figura 6.9, considerando la solución introducción V B
básica x 1 , las variables no básicas de esa solución son x1 y x2 .

Si partiendo de x 1 , hacemos que x1 = 1, serı́a equivalente a desplazarse por el


eje de abscisas, hasta llegar al punto (1, 0). La función objetivo de este punto
es z = 1. Igualemente, si partiendo de x 1 ahora hacemos que x2 = 1, serı́a
equivalente a desplazarse por el eje de abscisas, hasta llegar al punto (0, 1). La
función objetivo de este punto es z = 2. Es decir, V1B = 1 y V2B = 2.

En efecto, tanto la introducción de x1 como la de x2 en la base, a partir de x 1 ,


dan lugar a un incremento de la función objetivo, por lo que, según la regla de
entrada, ambas son potenciales candidatas para obtener una nueva solución
básica factible, mejor que x 1
Capı́tulo 6. INTERPRETACIÓN GRÁFICA 57

Figura 6.9: Región de soluciones factibles de un problema de Programación


Lineal

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:

si x1 = 2, las variables básicas son: x2 , h2 y h3 (solución básica x 5 )


si x1 = 6, las variables básicas son: x2 , h1 y h3 (solución básica x 9 )
si x1 = 10, las variables básicas son: x2 , h1 y h2 (solución básica x 10 )

Lo anterior es lo esperado. Para el ejemplo anterior, en cada solución básica


existen tres variables básicas y dos no básicas, con lo que desde cada solu-
ción básica, una vez decidida la variable de entrada, podemos acceder a otras
tres soluciones básicas suprimiendo de la base alguna de las tres las variables
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

Sabemos que una solución básica es óptima si V B ≤ 0, es decir, si introducien- Criterio de


do cualquier variable no básica la función objetivo disminuye. En el ejemplo, optimalidad
podemos apreciar en la figura 6.10 que la solución x 7 es óptima.

Figura 6.10: Criterio de optimalidad

En efecto, las variables no básicas de x 7 son h1 y h2 . La introducción de cada


una de ellas supone seguir desplazarse por las restricciones R2 y R1 , respecti-
vamente, tal y como aparece en la imagen según las fechas rojas. Los valores
de z para esas soluciones son peores que la de x 7 .

6.4. Método de las dos fases y de la M grande

Pendiente Problema
auxiliar
Pendiente Regiones de
factibilidad de P
Pendiente y de P

Iteraciones del
problema P

Pendiente Iteraciones del


problema P
Capı́tulo 6. INTERPRETACIÓN GRÁFICA 59

6.5. Método de Lemke

Pendiente Lógica general

Pendiente Regla de
supresión V B
Pendiente Regla de
introducción p B
Pendiente Criterio de
factiblidad
Capı́tulo 7

MÉTODO DEL LEMKE

7.1. Introduction

En el capı́tulo 2 se presentó el método del Simplex para resolver problemas de Introducción


Programación Lineal. Este método consistı́a en, a partir de una solución básica
factible de partida, de forma iterativa, transitar por diferentes solución básicas
factibles hasta alcanzar una que también fuera óptima.

Lógica del
método del
Simplex

Figura 7.1: 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.

Al respecto de las diferencias y las analogı́as entre los dos métodos:

El ambos métodos siempre se transita de solución básica en solución


básica.
Las soluciones por las que transita el método del Simplex siempre son
factibles.
Las soluciones por las que transita el método del Lemke siempre cum-
plen el criterio de optimalidad.
Capı́tulo 7. MÉTODO DEL LEMKE 61

En el método del Simplex, con las diferentes iteraciones, se mejora el


criterio de optimalidad hasta alcanzar una solución óptima (que también
es factible).
En el método del Simplex, con las diferentes iteraciones, se mejora el
criterio de factiblidad hasta alcanzar una solución factible (que también
es óptima).

Figura 7.2: Lógica del método de Lemke

Para aplicar el método de Lemke, de acuerdo con la lógica anterior, es necesa- Qué necesita-
rio: mos

1. una solución básica que cumpla el criterio de optimalidad de partida,


2. un criterio de factiblidad,
3. una regla de supresión y
4. una regla de introducción.

7.2. Cuándo es interesante el método de Lemke

El método de Lemke es potencialmente interesante cuando existe una solu-


ción básica que cumple el criterio de optimalidad, pero que no es factible. A
continuación se discuten tres casos habituales.

7.2.1. Problemas de mı́nimos con c ≥ 0

Los problemas que cumplen con las siguientes caracterı́sticas:

La función objetivo es de la forma min. z = cx con c ≥ 0.


Todas las restricciones son de tipo ≤ o ≥.
Capı́tulo 7. MÉTODO DEL LEMKE 62

Por ejemplo, un problema como el siguiente. Ejemplo

min. z =1x1 + 2x2 + 3x3


1x1 + 2x2 + 1x3 ≥ 10
4x1 + 2x2 + 3x3 ≥ 20 (7.1)
1x1 + x2 + x3 ≤ 40
xi ≥ 0

En efecto:

Si un problema es del tipo min. z = cx con c ≥ 0, se puede transfomar


en uno equivalente del tipo max. (−z) = −cx con c ≤ 0.
Al añadir las variables de holgura a todas y cada una de las restricciones
(ninguna es originalmente de tipo =), existe una solución básica en la que
hi = bi .

Para dicha solución c B = 0 0 ... 0 y, por lo tanto: V B = c −


c B B −1 A = c − 0 0 ... 0 B −1 A = c ≤ 0

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.

El problema de 7.1 se puede formular como: Ejemplo

max. z = − 1x1 − 2x2 − 3x3


− 1x1 − 2x2 − 1x3 + h1 = −10
− 4x1 − 2x2 − 3x3 + h2 = −20 (7.2)
1x1 + x2 + x3 + h3 = 40
xi , hi ≥ 0

Si las variables básicas son h1 , h2 y h3 :




cB = 0 0 0 .



V B = c − c B B −1 A = −1 −2 −3 0 0 0 − 0 0 0 B −1 A =


−1 −2 −3 0 0 0 . Es decir, V B ≤ 0.
Por lo tanto, esta solución es básica, cumple el criterio de optimalidad y
no es factible: es una solución de partida válidad para aplicar el método
de Lemke.
Capı́tulo 7. MÉTODO DEL LEMKE 63

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

7.2.2. Al introducir un cambio en b, una vez obtenida la solución


óptima

Dado un problema P del que se ha obtenido la solución óptima, si cambia el


vector de disponibilidad de recursos b, se modificarı́an:

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.

Para el problema de ejemplo del capı́tulo 3, en el epı́grafe 3.3 Ejemplo


maz z =1x1 + 2x2 + 3x3
1x1 + 2x2 + 1x3 + x4 = 16
3x1 − 2x2 + 2x3 + x5 = 26 (7.3)
1x1 + 0x2 + 2x3 + x6 = 24
xi ≤ 0, i = 1 · · · 6

Se conoce la solución óptima

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

La nueva tabla cuando las variables básicas son x2 , x5 y x3 es la siguiente:

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.

7.2.3. Al añadir una restricción adicional a un programa, una vez


obtenida la solución óptima

Pendiente

7.3. Reglas

7.3.1. Criterio de factibilidad

Una solucion básica (base B) es factible si uB ≥ 0

7.3.2. Regla de supresión

Dada una solución básica no factible interesa eliminar de la base cualquier


variable con valor negativo. En particular, eliminaremos la variable i-ésima que
cumple.
Capı́tulo 7. MÉTODO DEL LEMKE 65

 
 
uBi = maxuB <0 uBk  (7.5)
k

7.3.3. Regla de introducción

Dado que la variable i-ésima de la base es la que se debe suprimir, la varia-


ble que entra en su lugar es la variable j-ésima del problema que cumple lo
siguiente.

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

min. z =300x1 + 400x2 + 100x3 + 50x4 El problema


4x1 + 5x2 + 2x3 + x4 ≥ 800
2x1 + 4x2 + x3 ≥ 600 (7.9)
1x1 + x2 + 4x4 ≤ 2000
xi ≥ 0

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

8.2. Óptimo múltiple

Dado un problema de programación lineal, P , se conoce una solución óptima Caracterización


básica y factible, x B , asociada a una base B. Si una variable no básica, xk , es tal analı́tica
que VkB = 0, existe la posiblidad de introducir dicha variable en la base1 y:

se obtiene una solución básica, x B diferente de la anterior (con otra base


B
y
con el mismo valor de la función objetivo.

Las dos soluciones básicas anteriores x B y x B son soluciones básicas y ópti-


mas del problema P

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

En general, pueden existir r soluciones básicas factibles (x B1 , x B2 ...x Br ) y ópti- Generalización


r r
mas y todas las soluciones de la forma s=1 λs x Bs , con s=1 λs = 1

En el plano, existen soluciones óptimas múltiples cuando la función objeti- Interpretación


vo es paralela a la restricción que contiene dos soluciones básicas factibles y gráfica
óptimas.
Capı́tulo 8. CASOS ESPECIALES 68

Figura 8.1: Soluciones óptimas múltiples

max. z = 3x1 + 4x2 Ejemplo


3x1 + 4x2 ≤ 12
x2 ≤ 2 (8.1)
x1 − x2 ≤ 1
x1 , x2 ≥ 0

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

Existen dos soluciones óptimas que son básicas: Soluciones


T óptimas
x = (4/3, 2, 0, 0, 0, 7/6)
1

x 2 = (16/7, 9/7, 0, 5/7, 0)T


Y todas las siguientes que son no básicas: x NB = λ (4/3, 2, 0, 0, 0, 7/6)T +
(1 − λ) (16/7, 9/7, 0, 5/7, 0)T , con λ ∈ (0, 1)

Para todas ellas, z = 12

8.3. Solución degenerada

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

max. z = x1 + 4x2 Ejemplo


Interpretación
2x1 + 3x2 ≤ 6 gráfica
(8.2)
x1 + 2x2 ≤ 4
x1 , x2 ≥ 0

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

Figura 8.2: Solución degenerada

Las tres soluciones básicas son la misma, todas corresponden a x =


(0, 2, 0, 0)T . Se trata de tres bases que conducen a la misma solución.

8.4. Problema no factible

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.

Cuando se aplica el método de Lemke, se puede concluir que el problema no Caracterización


tiene solución factible si para se llega a una solución en la que para todas las analı́tica. Lemke
variables básicas negativas, todas las tasas de sustituciones de las variables no
básicas con respecto a dichas variables básicas son positivas.
Capı́tulo 8. CASOS ESPECIALES 71

Figura 8.3: Problema sin solución factible

min. z = 2x1 + 3x2 = max. (−z) = −2x1 − 3x2 Ejemplo


x1 + 2x2 ≤ 1
(8.3)
x1 + x2 ≥ 3
x1 , x2 ≥ 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

Al aplicar Lemke se iterarı́a de la siguiente manera Aplicando


Lemke
Capı́tulo 8. CASOS ESPECIALES 72

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

8.5. Región de factibilidad no acotada

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.

max. z = −x1 + x2 Ejemplo


−x1 + 2x2 ≤ 6
(8.4)
−2x1 + 2x2 ≤ 0
x1 , x2 ≥ 0

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

Si el VkB = 0, es posible introducir esta variable, con el consiguiente incremento Soluciones


de todas las variables básicas, la introducción de xk no altera el valor de la óptimas
función objetivo con lo que existen soluciones óptimas múltiples. múltiples

max. z = −2x1 + 4x2 Ejemplo


−x1 + 2x2 ≤ 6
(8.5)
−2x1 + 2x2 ≤ 0
x1 , x2 ≥ 0
Capı́tulo 8. CASOS ESPECIALES 73

Figura 8.4: Región de factibilidad no actodada con solución óptima y única

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

Si el VkB ≥ 0, es posible introducir esta variable, con el consiguiente incremento z no acotada


de todas las variables básicas y el incremento de z, con lo que el problema no
está acotado y no se puede hablar de solución óptima.
Capı́tulo 8. CASOS ESPECIALES 74

Figura 8.5: Región de factibilidad no actodada con solución óptimas múltiples

Figura 8.6: Región de factibilidad no actodada con función objetivo no actoda-


da
Capı́tulo 8. CASOS ESPECIALES 75

max. z = 3x1 + x2 Ejemplo


−x1 + 2x2 ≤ 6
(8.6)
−2x1 + 2x2 ≤ 0
x1 , x2 ≥ 0

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

Dado un problema de PL:

max z = cx
Ax = b (9.1)
x≥0

Una vez otenida la solución óptima x ∗ , podrı́an producirse cambios en el pro-


blema, que pueden hacer que la x ∗ deje de ser la solución óptima. En particu-
lar, puede cambiar:

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

Si el vector de disponibilidad de recursos cambia, b


, cambia:

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

La solución puede dejar de ser factible, si algún u


i < 0. En análisis consiste en
recalcular u
B :

1. Si u
B
i ≥ 0 ∀i la solución sigue siendo factible y, como V ≤ 0, las varia-
B

bles básicas son las mismas, con un nuevo nivel de realización u


B y un
nuevo valor de la función objetivo z

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

Si el vector de contribuciones unitarias al beneficio, c


, cambia:

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

La solución puede dejar de ser óptima, si algún Vi


B > 0. En análisis consiste
en recalcular V
B :

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.

Si solo cambia una componente de c, se pueden dar dos situaciones:

1. Cambia ck y xk no es variable básica. Solo cambia VkB , con lo que esta


actividad, que no era básica, al cambiar VkB pordrı́a ocurrir que VkB ≥ 0,
en cuyo caso la solución original no serı́a óptima.
2. Cambia ck y xk es variable básica, con lo que cambiarı́a todo V B .
Capı́tulo 9. POSTOPTIMIZACIÓN 78

9.4. Nueva actividad

Una actividad k queda caracterizada por:

1. ck la contribución unitaria al beneficio de dicha actividad y


2. Ak el consumo que hace dicha actividad de cada uno de los recursos.

Con la aparición de una nueva actividad, la solución óptima del problema pue-
de ser la misma o puede ser otra mejor.

Es decir, si interesa realizar dicha actividad, será porque la solución a la que


se llegará será mejor. Si no interesa realizar dicha actividad, la mejor solución
será la obtenida para el problema antes de introducir dicha actividad.

En efecto, con la introducción de una nueva actividad, se debe calcular el cri-


terio del simples VkB la variable correspondiente xk .

Si VkB ≤ 0 la solución sigue siendo óptima y no interesa realizar dicha


actividad.
Si VkB > 0, la solución deja de ser óptima porque la introducción de la
nueva actividad representa una oportunidad de mejora. Se debe aplicar
el método del Simplex hasta alcanzar la solución óptima

9.5. Nueva restricción

Una restricción l queda caracterizada por:

1. bl la contribución unitaria al beneficio de dicha actividad y


2. alj el consumo que hacen todas las actividades del nuevo recurso y
3. el signo de la desigualdad

En el caso de una restriccion de igualdad o de desigualdad se convierte en una


de igualdad con la variable de holgura correspondiente

 
alj xj ≤ bl alj xj + hl = bl
j j
  (9.2)
alj xj ≥ bl alj xj − hl = bl
j j

En el caso de una restricción de tipo igual, es equivalente a dos: una de con ≤


y otra con lgeq:
Capı́tulo 9. POSTOPTIMIZACIÓN 79

⎧ 
 ⎨ a x 
alj xj = bl equivalente a j lj j alj xj l (9.3)
⎩ j alj xj
j j

Con la aparición de una nueva restricción, la solución óptima del problema


puede ser la misma o puede ser otra peor. Es decir:

si la solución óptima original cumple la nueva restricción, la solución


óptima seguirá siendo factible y también óptima, es decir, la solución
óptima no cambiará;
si la solución óptima obtenida no cumple con la nueva restricción, la
solución seguirá dejará de ser factible y habrá que obtener una nueva
solución factible y óptima, peor que la original.

Cuando aparece una nueva restricción, la forma de obtener la nueva solución


factible sin resolver el problema desde el principio consiste en:

1. Introducir en la tabla de la solución óptima final la nueva restricción tal


y como habrı́a aparecido en la primera tabla y
2. operar con las filas para conseguir ceros en la matriz p B donde deberı́a
haberlos (esto se explica en el ejemplo final, 9.7.4).

9.6. Cambio en aij

Se pueden dar dos situaciones, que la variable xj sea básica o que no.

9.6.1. Cambio en aij con xj no básica

Si cambia aij y xj es una variable no básica, cambia:

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

Solo cambia VjB , con lo que:

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.

9.6.2. Cambio en aij con xj básica

Si cambia aij y xj es una variable básica, cambia:

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

Se pueden dar cuatro situaciones, ligadas a la pérdida o no de las condiciones


de solución factible y de solución óptima. La tabla siguiente resume los casos
que se pueden dar:

V’B ≤ 0 ∃V B ≥ 0
u’B ≥ 0 Solución óptima Simplex
∃uB ≤ 0 Lemke -

9.7. Ejemplo

max z = x1 + 2x2 + 3x3


sujeto a:
x1 + x2 + x3 ≤ 16 (9.4)
3x1 + 2x2 + 2x3 = 26
x1 + x3 ≥ 10

Tabla correspondiente a la solución óptima.

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

La solución sigue siendo factible y óptima.


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

La solución ya no es factible y es necesario aplicar Lemke.

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

El nuevo valor del vector de criterios del Simplex, V


B serı́a:
Capı́tulo 9. POSTOPTIMIZACIÓN 82

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)

La solución sigue siendo factible y óptima.



Supongamos que c
= 6 1 3 0 0

El nuevo valor del vector de criterios del Simplex, V


B serı́a:

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)

La solución ya no es óptima y es necesario aplicar el método del Simplex.

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

9.7.3. Nueva actividad

Existe la posiblidad de realizar una nueva actividad, x4 y se sabe que:

c4 = 5

T
A4 = 1 1 1
Capı́tulo 9. POSTOPTIMIZACIÓN 83

El criterio del simplex de la nueva actividad es:

V4B = c4
− c B B −1 A4 = c4
− π B A4
⎛ ⎞

1 (9.9)
⎜ ⎟
5 − 0 3/2 0 ⎝ 1 ⎠ = 7/2
1

La solución ya no es óptima y es necesario aplicar el método del Simplex. Para


reutilizar la tabla, es necesario calcular p4B

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

9.7.4. Nueva restricción

Supongamos que aparece la siguiente nueva restricción

x1 + x3 ≤ 15 (9.11)

Como x2 + x3 = 0 + 13 ≤ 15, la solución sigue siendo factible y óptima.

Supongamos que aparece la siguiente nueva restricción

x2 + x3 ≤ 10 (9.12)
Capı́tulo 9. POSTOPTIMIZACIÓN 84

Como x2 + x3 = 0 + 13  10, la solución óptima ya no cumple esta nueva


restricción, con lo que ya no es solución factible del nuevo problema.

La restricción se puede formular como:


x2 + x3 − h4 = 10 (9.13)

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

9.7.5. Análisis de sensibilidad de b



T
Si b = b1 26 10 , el nuevo valor de las variables básicas, u
B serı́a: Análisis b1

⎛ ⎞⎛ ⎞
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

9.7.6. Análisis de sensibilidad de c

Variable x1 . Variable no básica Análisis c1

⎛ ⎞

1
⎜ ⎟
V1B = c1 − π B a2 = c1 − 0 3/2 0 ⎝ 3 ⎠ = c1 − 9/2 ≤ 0 ⇒ c1 ≤ 9/2
1
(9.18)

Variable x2 . Variable no básica Análisis c2

⎛ ⎞

1
⎜ ⎟
V2B = c2 − π B a3 = c2 − 0 3/2 0 ⎝ 2 ⎠ = c2 − 3 ≤ 0 ⇒ c2 ≤ 3 (9.19)
0

Variable x3 . Variable básica Análisis c3

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

9.8. La aparente paradoja de b

Dado el problema

max z = x1 + 3x2
x1 + 2x2 ≤ 20
(9.22)
2x1 + x2 ≥ 20
x1, x2 ≥ 0

La tabla del simplex correspondiente a la solución óptima es:

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

Si realizamos en análisis de sensibilidad con respecto a b1 , el resultado es el


siguiente:
    
2/3 −1/3 b1 1 2b1 − 20
uB = B −1 b = = ≥ 0 ⇒ 10 ≤ b1 ≤ 40
−1/3 2/3 20 3 −b2 + 40
(9.23)

Es decir, si la disponibilidad el recurso R1 (b1 ) es superior a 40, la solución


no es factible. ¿Cómo puede ser que si aumentamos la disponibilidad de un
recurso de una restricción de tipo ≤ la solución se haga no factible?
Capı́tulo 10

PROGRAMACIÓN PARAMÉTRICA

10.1. Introducción

10.2. Programación con c(λ)

10.2.1. Método general

Procedimiento general: Tras la resolución para un valor de λ0

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.

10.2.2. Ejemplo c(λ)

max z = 5x1 + 6x2 + 8x3


s.a.
2x1 + 3x2 + 4x3 ≤ 25 (10.1)
3x1 + 2x2 + 1x3 = 20
x1 , x2 , x3 ≥ 0
Capı́tulo 10. PROGRAMACIÓN PARAMÉTRICA 89

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

Sea c1 = λ, si λ = 5, T0 es la tabla correspondiente a la solución óptima.



A continuación vamos a realizar el análisis para c(λ) = λ 6 8 , , con
0≤λ≤∞

Si λ modifica su valor, se modificará el vector de criterios del Simplex V B (λ).


Siempre y cuando V B (λ) ≤ 0 las actividades básicas serán x1 y x3 , con los
niveles de realización de la tabla T0 . El criterio del Simplex V B (λ) es:

 


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)

Las variables básicas son x1 y x3 siempre y cuando V B (λ). Es decir:

4−λ≤0
⇒ 4 ≤ λ ≤ 24 (10.3)
λ − 24 ≤ 0

Si 4 ≤ λ ≤ 24, la tabla corresondiente a la solución óptima es T0 (λ):

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

Si λ = 4, la tabla se convierte en T1 , correspondiente a un óptimo múltiple.


Introduciendo x2 y sacando x3 se obtiene una nueva solución a la que le co-
rresponde la tabla T2
Capı́tulo 10. PROGRAMACIÓN PARAMÉTRICA 90

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

Si λ modifica su valor, se modificará el vector de criterios del Simplex V B (λ).


Siempre y cuando V B (λ) ≤ 0 las actividades básicas serán x1 y x2 , con los
niveles de realización de la tabla T2 . El criterio del Simplex V B (λ) es:

 


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.

La explicación es la siguiente. Si las variables básicas con x1 y x2 (aun cuando


c1 = λ << 0), podemos tratar de introducir:

x3 . Para cualquier valor positivo de x3 , x1 aumenta, con la que la solución


es aún peor en términos de la función objetivo (por eso, el criterio del
simplex de x3 siempre es negativo).
h1 . Para cualquier valor positivo de h3 , x1 aumenta, con la que la solu-
ción es aún peor en términos de la función objetivo (por eso, el criterio
del simplex de h3 siempre es negativo).

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

Alternativamente, se puede explicar la aparente paradoja por el hecho de que


cualquier solución para la cual x1 = 0, la solución correspondiente es no facti-
ble.

Volviendo a la tabla T0 (λ), si λ = 24, la tabla se convierte en la tabla T3 , co-


rrespondiente a un óptimo múltiple. Introduciendo h1 sacando x3 se obtiene
la tabla T4 correspondiente a la solución óptima alternativa:

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

De nuevo, Si λ modifica su valor, se modificará el vector de criterios del Simplex


V B (λ). Siempre y cuando V B (λ) ≤ 0 las actividades básicas serán x1 y h1 , con
los niveles de realización de la tabla T4 . El criterio del Simplex V B (λ) es:

 


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:

Variables básicas: x1 = 2 y x2 = 7 si λ ≤ 4 con z = 42 + 2λ


Variables básicas: x1 = 11/2 y x3 = 7/2 si 4 ≤ λ ≤ 24 con z = 28 + 11λ/2
Variables básicas: x1 = 20/3 y h1 = 35/3 si 24 ≥ λ con z = 20λ/3
Capı́tulo 10. PROGRAMACIÓN PARAMÉTRICA 92

10.3. Programación con b(λ)

10.3.1. Método general

Procedimiento general:

1. Resolución para un valor de λ0


2. Cálculo de V B (λ0 )
3. Cálculo del λ1 y λ2 , tal que V B ≤ 0 si λ1 ≤ λ ≤ λ2
4. 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 solución óptima múltiple para λ = λ1 :
1) Si es posible aplicar el método del Simplex, obtener una solu-
ción óptima básica alternativa y volver al punto 1.
2) Si no es posible aplicar el método del Simplex, es que no hay
solución factible fuera del valor de λ extremo estudiado.

10.3.2. Ejemplo c(λ)

max z = 3x1 + 4x2 + 2x3 + 3x4


s.a.
30x1 + 10x2 + 10x3 + 15x4 ≤ 120 (10.6)
50x1 + 50x2 + 30x3 + 30x4 ≤ 150
x1 , x2 , x3 , x3 ≥ 0

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

La siguiente tabla es válida si uB ≥ 0. Es decir, si −150 ≤ λ ≤ 30

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

T1 (λ = 30) -18 -7/3 0 -2/3 0 -1/60 -1/60


x2 0 -1/3 1 1/3 0 -2/30 1/30
x4 6 20/9 0 4/9 1 1/9 -2/90

    
B −1 −1/60 1/30 120 − λ (−30 + λ)/10
u (λ) = B b(λ) = =
1/9 −2/90 150 + λ (900 − 12λ)/90
(10.8)

La siguiente tabla es válida si uB ≥ 0. Es decir, si 30 ≤ λ ≤ 75

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

T2 (λ = 75) -18 -9 0 -2 -3 -2/5 0


x2 9/2 3 1 1 3/2 1/10 0
h2 0 -100 0 20 -45 -5 1
Capı́tulo 10. PROGRAMACIÓN PARAMÉTRICA 94

    
B −1 −1/10 0 120 − λ (−120 + λ)/10
u (λ) = B b(λ) = =
−5 1 150 + λ 6λ − 450
(10.9)

La siguiente tabla es válida si uB ≥ 0. Es decir, si 75 ≤ λ ≤ 120

T2 (λ) -18 -9 0 -2 -3 -2/5 0


x2 (-120+λ)/10 3 1 1 3/2 1/10 0
h2 6λ − 450 -100 0 20 -45 -5 1

Para λ > 120 no existe solución factible del problema.

En resumen:

No existe solución factible para λ < −150


Variables básicas: h1 = 45 − 3λ
2 y x4 = 5 +
λ
30 si −150 ≤ λ ≤ 30
−30+λ 900−12λ
Variables básicas: x2 = 10 y x4 = 90 si 30 ≤ λ ≤ 75
−120+λ
Variables básicas: x2 = y h2 =
6λ − 450 si 75 ≤ λ ≤ 120
10
No existe solución factible para λ > 120

10.4. Ejemplo c(λ) y b(λ)

max z = 2x1 + 4x2 + x3


s.a.
2x1 + 5x2 + 1x3 ≤ 40 (10.10)
x1 + 4x2 + 2x3 ≤ 24
x1 , x2 , x3 ≥ 0


T
b(λ) = 40 24 − 3λ y


c(λ) = 2 4+λ 1 0 0 , co λ ≥ 0

Solución óptima para λ = 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

La condición más restricitiva es λ ≤ 1, ya que cuando esto ocurre, el problema


tiene dos soluciones básicas óptimas factibles. Con λ > 1, las soluciones en las
que x1 y x3 son variables básicas son no factibles. A continuación figuran tres
tablas, correspondientes, respectivamente a la solución básica con x1 y x3 en
función de λ, la tabla para λ = 1 y la solución básica óptima alternativa para
ese valor de λ.

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 0 -1/3 -8/9 -2/9


x1 40 1 0 -2 4/3 -5/3
x2 0 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:

Variables básicas: x1 = (56 + 3λ)/3 y x3 = (8 − 6λ)/3 si 0 ≤ λ ≤ 1


Variables básicas: x1 = (45 + 15λ)/3 y x2 = (8 − 6λ)/3 si 1 ≤ λ ≤ 4/3
Variables básicas: x1 = 24 − 3λ y h1 = −8 + 6λ si 4/3 ≤ λ ≤ 4
Variables básicas: x1 = (24 − 3λ)/4 y h2 = (40 + 15λ)/4 si 4 ≤ λ ≤ 8
No existe solución factible para λ > 8
Capı́tulo 11

TRANSPORTE Y ASIGNACIÓN

11.1. Presentación del problema de transporte

11.1.1. Introducción

Se trata de un caso particular de PL

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

el problema consiste en determinar las cantidades transportadas desde el ori-


gen i ∈ O al destino j ∈ D con el mı́nimo coste, xij .

max z = Cij xij
ij

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

Formulación equivalente, si el problema está equilibrado



max z = Cij xij
ij

s.a.

xij = Oi ∀i ∈ O (11.2)
j∈D

xij = Dj ∀j ∈ D
i∈

xij ≥ 0 ∀j ∈ D, ∀i ∈ O

11.1.3. Presentación matricial

La formulación extendida de 11.2

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

Las matrices son:


⎛ ⎞
1 0 0 ... 0
⎜ ⎟
⎜ 0 1 0 ... 0 ⎟
⎜ ⎟
⎜ 0 0 1 ... 0 ⎟
A=⎜


⎟ (11.5)
⎜ ... ... ... ... ... ⎟
⎜ ⎟
⎝ 0 0 0 ... 1 ⎠
I I I ... I

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)

11.1.4. Representación del problema

Representación tabular especı́fica, diferente, por ejemplo, de la matriz comple-


ta del método del simplex

destino 1 ... destino j ... destino J


c11 c1j cIJ
origen 1 x11 ... x1j ... x1J O1


c11 c1j c1J


... ... ... ... ...
ci1 cij ciJ
origen i xi1 ... xij ... x1jJ Oj


cij cij cij


... ... ... ... ...
cI1 cIj cIJ
origen J xI1 ... xIj ... x1J OJ


cI1 cIj cIj

donde cij es el coste reducido asociado al a variable xij , que se presentará más
adelante.

11.1.5. Propiedades

Las propiedades..

1. Si el problema es equilibrado, existe al menos una solución factible: xij =


OD OD
 i j =  i j En efecto, cumple las restricciones:
i∈O Oi j∈D Dj
Capı́tulo 11. TRANSPORTE Y ASIGNACIÓN 102


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

2. La base de cualquier solución, B es una matriz unimodular y los elemen-


tos de B −1 son 0, 1 o -1.
3. El número de restricciones linealmente independientes es car d(O) +
car d(D) − 1

11.1.5.1. Propiedades de las soluciones básicas

El número de variables básicas es igual al número de restricciones lineal-


mente independientes es car d(O) + car d(D) − 1
Dada una solución existe un único ciclo (pasarela) Existe al menos uno:
cualquier actividad no básica se puede obtener como combinación linea
de las básicas Existe solo uno: solo hay una forma de combinar lineal-
mente actividades básicas
Las celdas de una solución básica no permiten formar ciclos: no se pue-
den combinar linealmente
Las tasas de sustitución son 1, −1 o 0

11.2. Métodos de resolución

Si el problema se formula como PE, el carácter unimodular de la base garantiza


que el la solución de la relajación lineal siempre es entera.
Además de cualquier método general de PL, dos atlernativas:

1. Stepping-stone
2. MODI

Procedimiento:

1. Solución inicial de partida. Para esto existen diferentes métodos


2. Criterio de optimalidad. En este paso es donde se diferencian los méto-
dos de Stepping-stone y MODI
3. Regla de entrada
4. Regla de salida
Capı́tulo 11. TRANSPORTE Y ASIGNACIÓN 103

11.2.1. Obtención del solución inicial de partida

Métodos

Rincón NO
Mı́nimo coste
Voguel
Otros

Diferente esfuerzo y diferente calidad de la solución de partida

11.2.2. Regla de entrada. Stepping-stone

11.2.3. Regla de entrada. MODI

Las restricciones convenientemente modificadas se pueden exprear como:



Oi − xij = 0 ∀i ∈ O
j∈D
 (11.9)
Dj − xij = 0 ∀j ∈ D
i∈

Se definen ui y vi A su vez, a la función objetivo se le pueden sumar los térmi-


nos nulos, que son los primeros miembros de las dos expresiones anteriors y,
posteriormente, se puede operar:
⎛ ⎞ ⎛ ⎞
     
z= Cij xij = Cij xij − ui ⎝Oi − xij ⎠ − vj ⎝Dj − xij ⎠ =
ij ij i j j i
 
= Oi Dj + xij (cij − ui − vj )
ij ij
(11.10)

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

Se pueden elegir los valores de ui y vi de tal manera que cij − ui − vj = 0 si


la variable xij es básica. De esta manera, la expresión 11.11 es estrictamente
−B
nula. El primer término lo es por que cij − ui − vj = 0 y el segundo porque xij
al tratarse de variables básicas.
Capı́tulo 11. TRANSPORTE Y ASIGNACIÓN 104

Por lo tanto, si una variable no básica entra a formar parte de la solución, el


incremento de la función objetivo es, precisamente, el valor de cij = cij − ui −


vj . Es decir

Δz|Δx −B =1 = cij − ui − vj (11.12)


ij

11.2.4. Regla de salida

11.2.5. Criterio de optimalidad

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 ,

por lo que la solución es óptima si cij ≥ 0, ∀j ∈ D, ∀i ∈ O

11.3. Problemas desequilibrados

11.3.1. Oferta superior a demanda

Es necesario introducir un destino ficticio d∗ . El problema se redefine sobre


un conjunto D∗ = D ∪ {d∗ }.
La variable xid∗ representa la capacidad no utilizada del origen i ∈ O.
En la representación tabular, de incorpora una fila más.
Los costes de las nuevas variables son...

11.3.2. Demanda superior a oferta

Es necesario introducir un destino ficticio o∗ . El problema se redefine sobre un


conjunto O∗ = O ∪ {o∗ }.
La variable xo∗ j representa la demanda no atendida del destino j ∈ D.
En la representación tabular, de incorpora una columna más.
Los costes de las nuevas variables son...

11.4. Soluciones degeneradas


Capı́tulo 11. TRANSPORTE Y ASIGNACIÓN 105

11.5. Transporte y dualidad

El dual del problema de transporte es


 
max z = = Oi ui + Dj vj
i j

s.a.
(11.13)
ui + vj ≤ cij ∀i ∈ O, ∀j ∈ D
ui libre de signo ∀i ∈ O
vj libre de signo ∀j ∈ D

Justificación. El problema 11.13 es equivalente a


 
max z = = Oi (u+ −
i − ui ) + Dj (vi+ − vi− )
i j

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

El dual de este problema es



min z = Cij xij
ij

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

Que es equivalente a 11.2


Por otro lado, V B de un problema P y de es ese mismo problema, formulado
en términos de máximo son iguales, pero cambiados de signo.
Del teorema de las holguras complementarias:

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.6. Para pensar

11.7. Ejemplo
Capı́tulo 11. TRANSPORTE Y ASIGNACIÓN 107

11.8. El problema de asignación

11.8.1. Introducción

Se trata de un caso particular del problema de transporte, en el que:

m = car d(O) = car d(D) = n


Oi = 1 ∀i ∈ O y
Dj = 1 ∀j ∈ D

Es decir, el número de orı́genes y de destinos es el mismo y la capacidad de los


primeros y la demanda de los segundos es igual a 1.
Ejemplos...
El problema se puede formular como:

max z = Cij xij
ij

s.a.

xij ≤ 1 ∀i ∈ O (11.17)
j∈D

xij ≥ 1 ∀j ∈ D
i∈O

xij ≥ 0 ∀j ∈ D, ∀i ∈ O

De las m + n restricciones, en este caso existen I = J linealmente independien-


tes, con lo que una solución básica contendrá m = n variables básicas.

11.8.2. Representación

Dada la estructura particular de este problema, se puede represetnar con una


tabla cuadrada con tantas filas y columnas como el número de origenes o de
destinos.

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

Donde Cij es el coste de asignar el origen i al destino j


Por ejemplo,...
Capı́tulo 11. TRANSPORTE Y ASIGNACIÓN 108

D1 D2 D3 D4
O1 4 2 3 1
O2 5 2 6 3
O3 1 8 9 2
O4 10 1 6 4

Una posible asignación podrı́a ser

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)

Se puede justificar, igualmente para una columna. En particular, k puede


ser el opuesto del menor valor de la fila o la lı́nea corerspondiente.
En un problema en el que todos los costes son no negativos y hay un
conjunto de ceros, de tal manera que se puede encontrar un conjunto de
dichos ceros, de manera que hay un 0 y solo uno cada cada fila y un 0
y solo un en cada columna, la solución consiste en asignar los orignes y
destinos correspondientes a dichos ceros, con un coste total igual a 0.

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

11.8.4. Método Húngaro

1. Restar a cada fila el menor coste de dicha fila


2. Restar a cada columna el menor coste de dicha columna
3. Si existe un conjunto de costes iguales a cero que permiten realizar una
asignación con coste global igual a cero, se ha obtenido la solució óptima,
si no, hay que continuar.
4. Tachar todos los ceros con el mı́nimo número posible de lı́neas (siempre
habrá que utilizar menos que el número de orignes o destinos, porque si
no, existirı́a una asignación con coste cero).
5. Identificar k igual al coste mı́nimo de todos los costes no tachados y
obtener un problema equivalente:
Restar k a los elementos sin tachar, sumar k
Sumar k a los elementos tachados
Dejar igual los elementos tachados una sola vez

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

PROGRAMACIÓN ENTERA. FUNDAMENTOS

12.1. Divide y vencerás

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.

12.2. Enumeración implı́cita

Como ya hemos visto anteriormente, la enumeración completa (o explı́cita) es


imposible de hacer para muchos problemas cuando el número de variables
enteras crece. Luego a parte de dividir indefinidamente el problema tenemos
que hacer algo más. ¿Cómo podemos usar de forma inteligente algunas cotas
de los valores de {zk }? Vamos a ello.
Si S = S1 ∪· · ·∪Sk es una descomposición de S en un conjunto más pequeño de
problemas, zk = max{cx : x ∈ Sk } para k = 1 . . . K, zk es una cota superior de
zk y zk es una cota inferior de zk ; entonces z = maxk zk es una cota superior
de z y z = maxk zk es una cota inferior de z.
Capı́tulo 12. PROGRAMACIÓN ENTERA. FUNDAMENTOS 111

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.

Figura 12.1: Poda por acotamiento

Podemos ver que z = maxk zk = max{20, 25} = 25 y que z = maxk zk =


max{20, 15} = 20. Además las cotas inferiores y superiores de z1 con iguales
y no hace falta seguir examinando el conjunto S1 . Entonces la rama correspo-
niente al conjunto S1 del árbol puede ser podada por optimalidad.

. En la figura 12.2 vemos de nuevo la descomposición del conjunto S en dos Ejemplo 2


subconjuntos S1 y S2 y las cotas superiores e inferiores de los distintos pro-
blemas.

Figura 12.2: No poda posible

Podemos ver que z = maxk zk = max{20, 26} = 26 y que z = maxk zk =


max{18, 21} = 21. A parte, la función objetivo del problema tiene un valor
como poco de 21 y la cota superior z1 = 20, luego la solución óptima no puede
estar en el subconjunto S1 . En este caso la rama correspondiente a S1 se poda
por acotamiento.

. En la figura 12.3 está descompuesto de nuevo el conjunto S en dos subcon- Ejemplo 3


juntos S1 y S2 con diferenctes cotas superiores e inferiores.
Podemos ver que z = maxk zk = max{24, 37} = 37 y que z = maxk zk =
max{13, −} = 13. En este caso no podemos decir nada y hay que seguir explo-
rando los subconjuntos S1 y S2 .
Basados en estos tres ejemplos se pueden enumerar las tres razones que per-
miten podar alguna rama del árbol y con ello enumerar de forma implı́cita un
gran número de soluciones:

1. Poda por optimalidad: zt = {max cx : x ∈ St } se ha resuelto.


2. Poda por acotamiento: zt ≤ z.
3. Poda por infactibilidad: St = ∅

Si nos preguntamos cómo se pueden obtener las cotas, la respuesta es la mis-


ma que lo que vimos en el capı́tulo anterior. Las cotas inferiores se calculan al
obtener soluciones factibles y las cotas superiores mediante relajaciones.
Capı́tulo 12. PROGRAMACIÓN ENTERA. FUNDAMENTOS 112

Figura 12.3: Poda por optimalidad

Construir un algoritmo de enumeración implı́cita basado en los visto anterior-


mente es ya una tarea sencilla, aunque quedan aún muchas preguntas por re-
solver para poder tener bien definido el algoritmo. Algunas de estas pregunta
puede ser:

¿Qué relajación vamos a utilizar para hallar las cotas superiores?¿Cómo


elegir entre una sencilla cota débil fácil de obtener y una cota fuerte
cuyos cálculos llevan más tiempo?
¿Cómo generamos los distintos subconjuntos del problema principal
S = S1 ∪ · · · ∪ SK ?¿Cada conjunto se tiene que dividir en dos o más
subconjuntos?¿Tenemos que tener una regla a priori para subdividir los
problemas o es mejor que esas divisiones dependan de cómo evoluciona
el problema?
¿En qué orden vamos a examinar los problemas? Normalmente tendre-
mos un conjunto de nodos activos (ramas sin podar). ¿Tenemos que es-
tudiar el primer nodo al que hayamos llegado (FIFO), el que tenga mejor
cota superior u otro criterio?

Estas y otras cuestiones se discuten en el siguiente apartado.

12.3. Branch and Bound: un ejemplo

La forma más común de resolver problemas con números enteros es usando


la enumeración implı́cita o branch & bound, en donde las relajaciones lineales
se utilizan para calcular las cotas superiores.
Por ejemplo, dado este problema:

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

xj ≤ 2} y S2 = S ∩ {x : xj ≥ 3}. Se puede ver en la figura ??. A los dos


subproblemas (nodos del árbol) que deben ser examinados se les llama nodos
activos.
Elección de un nodo. La lista de nodos activos que deben ser examinados con-
tiene a S1 y S2 . Arbitrariamente elegimos S1 .
Reoptimización. ¿Cómo podemos resolver las relajaciones lineales de los nue-
vos subproblemas sin necesidad de partir de cero? Como simplemente hemos
añadido una restricción que sabemos que no se cumple, al añadir la la fila co-
rrespondiente a la tabla del simplex expresada en la base actual tendremos una
solución no factible. Utilizando el método de Lemke en varios pivotes (tablas)
podemos llegar a la nueva solución óptima.
Al resolver la relajación lineal de S1 añadimos la restricción x1 ≤ 2 o x1 + h4 =
2, h4 ≥ 0. Y tendrı́amos la siguiente tabla que será igual que la anterior pero
con una fila más en la parte inferior:

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

Después de pasar por dos soluciones intermedias se llega la la siguiente solu-


ción óptima
Capı́tulo 12. PROGRAMACIÓN ENTERA. FUNDAMENTOS 114

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

PROGRAMACIÓN ENTERA. BRANCH AND


BOUND

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

Figura 13.1: Cotas de un problema entero

13.2. Optimalidad y relajación

Dado un problema entero de la forma:

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

de cotas superiores, y una secuencia creciente

z 1 ≤ z 2 ≤ · · · ≤ zt ≥ z

de cotas inferiores serı́a muy interesante y se podrı́a parar cuando

zs − zt ≤ 

donde  es un valor positivo elegido.


Luego lo que nos interesa es encontrar formas de obtener cotas superiores e
inferiores.

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 idea centra de estos heurı́sticos es, a partir de no tneer una solución, ir


construyéndola paso a paso (dando valor una a una a cada variable) y en cada
paso tomar la decisión que suponga una mayor mejora de la función objetivo.

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:

hacer mayor el conjunto de soluciones factibles de forma que el proble-


ma se resuelve sobre un conjunto mayor, o
reemplazar la función objetivo (max) por una función que tiene el mismo
o mayor valor que la original siempre.

Se dice que el problema (RP) {zR = max{f (x) : x ∈ T ⊆ R n } es una relajación


del problema (IP) {z = max{c(x) : x ∈ X ⊆ R n } si:

x ⊆ T, y
f (x) ≥ c(x)para todo x ∈ X

Si RP es una relajación de IP, entonces zR ≥ z.


La cuestión entonces está en cómo encontrar relajaciones interesantes. Una de
las más naturales y más utilizadas es la relajación lineal.

Dado un problema entero max{c(x) : x ∈ P ⊆ Z n } siendo P = x ∈ R+ n


: Ax ≤ Relajaciones
b}, la relajación lineal es el problema lineal zLP = mboxmax{cx : x ∈ P }. lineales
Como P ∩Z n ⊆ P y la función objetivo no cambia, es claramente una relajación.
Por ejemplo, si consideramos el problema entero:

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

max z = 7x1 + 4x2 + 5x3 + 2x4


s.a.
(13.2)
3x1 + 3x2 + 4x3 + 2x4 ≤ 6
x ∈ {0, 1}

tiene como solución óptima x ∗ = (1, 1, 0, 0). Como x ∗ es entera, es también


solución óptima 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)

Para introducir el tema vamos a ver un ejemplo sencillo en el se puede observar


de forma rápida las relaciones entre un problema y un dual (aunque aún no se
haya descrito como construir el problema dual de uno dado).

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

El beneficio neto obtenido tras la venta de un supercomputador 1 es de 400


u.m. y tras la venta de una unidad tipo 2 es de 600 u.m. Con esta informa-
ción se plantea y resuelve inicialmente un problema que permita determinar
el número de unidades de cada tipo de ordenador con objeto de maximizar el
beneficio total. Se definen las variables x1 y x2 como el número de ordenado-
res elaborados de tipo 1 y 2 respectivamente, con estas variables el problema
queda:

max z = 400x1 + 600x2


s.a:
6x1 + 4x2 ≤ 2000 (14.1)
2x1 + 4x2 ≤ 1000
x1 ≥ 0, x2 ≥ 0

La solución óptima de dicho problema es elaborar 250 unidades del tipo 1 y y


125 unidades del modelo 2 con un beneficio de 175000 u.m. En la figura 14.1
se puede ver las soluciones por las que se pasa hasta x ∗ = (250, 125). La tabla
correspondiene a la solución óptima es la siguiente:

-175000 0 0 -25 -125


x1 250 1 0 1/4 -1/4
x2 125 0 1 -1/8 3/8

Ahora podemos cambiar el enfoque sobre el problema planteado, nuestro


propósito va a ser determinar los precios a los cuales esta empresa deberı́a
valorar sus recursos (horas de trabajo de los dos procesos) de tal manera que
puedan determinar el mı́nimo valor total al cual estarı́a dispuesta a arrendar o
vender los recursos.
Sean y1 e y2 , la renta percibida por hora de los procesos P1 y P2 res-
pectivamente (precios de los recursos). La renta total obtenida serı́a pues,
2000y1 + 1000y2 . Se desea como objetivo encontrar el mı́nimo valor de
2000y1 + 1000y2 de modo que la empresa pueda, de una manera inteligen-
te, analizar algunas propuestas de alquiler o compra de todos los recursos
como un paquete total.
Se consideran las condiciones siguientes, los precios pagados por el alquiler
serı́an no negativos, es decir y1 ≥ 0, y2 ≥ 0. Además los precios y1 e y2
deben ser competitivos con las alternativas disponibles, es decir, el beneficio
que la empresa debe obtener por los recursos necesarios para elaborar un
Capı́tulo 14. DUALIDAD 121

x2

2
x ∗ (250, 125)
1

0
0 1 2 3 4 5 x1

Figura 14.1: Solución gráfica del problema inicial

supercomputador al menos deben ser iguales a los que obtendrı́a al utilizar


dichos recursos en la elaboración del computador, es decir, para el modelo
1 tendremos 6y1 + 2y2 ≥ 400 y para el modelo 2 queda 4y1 + 4y2 ≥ 600.
Con esto se garantiza la obtención de precios con los que al menos iguala el
beneficio obtenido al producir el mismo los equipos. El problema planteado
queda:

min z = 2000y1 + 1000y2


s.a:
6y1 + 2y2 ≤ 400 (14.2)
2y1 + 4x2 ≤ 600
y1 ≥ 0, y2 ≥ 0

La resolución de este problema proporciona un valor de 25 para cada unidad


del primer recurso (montaje) y un valor de 125 para cada unidad del segundo
(embalaje), con un beneficio de 175000, igual al obtenido en el planteamiento
del primer problema. Este nuevo problema es problema dual del problema
planteado originalmente.
En la siguiente tabla se puede ver la tabla correspondiente a la solución óptima
de est segundo subproblema:

175000 0 0 -250 -125


x1 25 1 0 -1/4 1/8
x2 125 0 1 1/4 -3/8
Capı́tulo 14. DUALIDAD 122

14.2. Teorı́a sobre dualidad

14.2.1. El problema dual

Dado el problema de programación lineal:

Max z = cx
Ax ≤ b (14.3)
x≥0

se le asocia otro problema:

Min s = yb
yAT ≥ c (14.4)
y ≥0

Al problema (14.3) se le denomina primal y a (14.4) se le denomina dual.

14.2.2. El dual del dual es el primal

En efecto, dado el problema primal

Max z = cx
Ax ≤ b (14.5)
x≥0

tiene como problema dual asociado:

Min s = yb
yAT ≥ c (14.6)
y ≥0

El problema dual puede expresarse como:

max (−s) = −bT y T


− Ay T ≤ −c T (14.7)
y ≥0

El problema (14.7) considerado como un problema primal, tiene como proble-


ma dual asociado el siguiente problema de programación lineal:

min u = t(−c T )
t(−AT ) ≥ −bT (14.8)
t≥0
Capı́tulo 14. DUALIDAD 123

El problema dual (14.8) puede expresarse como:

max (−u) = ct T
At T ≥ b (14.9)
T
t ≥0

Al comparar el problema (14.5) y el problema (14.9) se observa que:

el vector c es el mismo en los dos problemas,


la matriz A es la misma en los dos problemas,
el vector b es el mismo en los dos problemas,

por lo cual, los vectores x y t T y los valores de z y u son iguales, es decir


se comprueba que en efecto el problema dual asociado a un problema dual
coincide con el problema primal inicial.

14.2.3. Relaciones entre el problema primal y el problema dual

teorema De la propia definición de problema primal y problema dual asociado


se deducen unas primeras relaciones entre ambos problemas:

una variable del problema primal genera una restricción en el problema


dual;
una restricción del problema primal genera una variable en el problema
dual,
una restricción de desigualdad en el problema primal genera una variable
no negativa en el problema dual.

Existen otras relaciones no evidentes entre ambos problemas:

una restricción de igualdad en el problema primal genera una variable


libre de signo en el problema dual;
una variable libre de signo en el problema primal genera una restricción
de igualdad en el problema dual.

En efecto, la restricción del problema primal

a31 x1 + a32 x2 + a33 x3 + a34 x4 = b3

que es equivalente a :

a31 x1 + a32 x2 + a33 x3 + a34 x4 ≤ b3


a31 x1 + a32 x2 + a33 x3 + a34 x4 ≥ b3
La segunda restricción se puede expresarse como:

−a31 x1 − a32 x2 − a33 x3 − a34 x4 = −b3


La inecuación primera, corresponde a una restricción en el problema primal y
genera en el problema dual un variable que se denominará y3+ y, por lo tanto,
se obtiene en dicho problema:
Capı́tulo 14. DUALIDAD 124

un término en la función objetivo: b3 y3+


una columna en el sistema de restricciones técnicas:
• +a31 y3+
• +a32 y3+
• +a33 y3+
• +a34 y3+

La otra inecuación, vista de una forma u otra, genera a su vez en e problema


dual la variable y3− y, por lo tanto:

un término en la función objetivo: b3 y3−


una columna en el sistema de restricciones técnicas:
• −a31 y3−
• −a32 y3−
• −a33 y3−
• −a34 y3−

Por lo que, la resricción a nivel de igualdad del problema primal genera en el


problema dual:

dos términos en la función objetivo: b3 (y3+ + y3− )


dos columnaa en el sistema de restricciones técnicas:
• +a31 y3+ + a31 y3−
• +a32 y3+ + a32 y3−
• +a33 y3+ + a33 y3−
• +a34 y3+ + a34 y3−

Efectuando un cambio de variable:

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:

1. si y3+ ≥ 0 y y3− = 0 y 3 = y3+ ≥ 0


2. si y3− ≥ 0 y y3+ = 0 y 3 = y3− ≥ 0

Las dos condiciones anteriores se cumplen ya que:

se parte de un problema primal con restricciones técnicas de desigual-


dad, lo que genera en el problema dual variables no negativas, es decir
y3+ ≥ 0 y y3− ≥ 0.
el criterio del simplex de la variable y+3 respecto a cualquier solución
básica es

V B y3+ = b3 cBB−1 (a31 , a32 , a33 , a34 )T


el criterio del simplex de la variable y-3 respecto a cualquier solución
básica es
V B y3− = −b3 cBB−1 (−a31 , −a32 , −a33 , −a34 )T
Capı́tulo 14. DUALIDAD 125

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.

14.2.4. La función objetivo

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

además, al ser x 0 solución del problema primal se cumple que Ax 0 ≤ b al


premultiplicar por y 0 la expresión anterior, como y 0 se factible, se cumple
que:

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

De ambas expresiones se obtiene que:

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

Corolario 1. El valor de la función objetivo del problema primal de máximo


para cualquier solución factible es una cota inferior del mı́nimo valor de la
función objetivo del dual, y reciprocamente, el valor de la función objetivo del
problema dual de mı́nimo para cualquier solución factible dual es una cota
superior del máximo valor de la función objetivo del primal.
Corolario 2. Si el problema primal es factible y su solución es no acotada,
(z → ∞), entonces el problema dual no tiene solución. Análogamente, si el
problema dual es factible pero con solución no acotada, (s → −∞), entonces el
problema primal no tiene solución factible.

14.2.5. Teorema fundamental de la dualidad

Dada una solución básica factible óptima, x ∗ , de un problema primal a la que le


corresponde una base B y un vector de multiplicadores del simplex π B = cB B −1 ,
la solución básica factible óptima del problema dual es y ∗ = π B .
En efecto:

1. y* es la solución del problema dual.


Como x* es solución óptima del problema primal se cumple:

VxB = c − cB B −1 A ≤ 0

identificando los términos correspondientes a las variables iniciales del


problema primal, c y A, y los términos correspondientes a las variables
de holgura del problema primal, ch e I, la expresión anterior se transfor-
ma en:
VxB = [(c, ch ) − cB B −1 (A, I)] ≤ 0

por lo que:
c − cB B −1 A ≤ 0

ch − cB B −1 I ≤ 0

En la expresión primera al sustituir cB B −1 = y ∗ se obtiene c −


y ∗ A ≤ 0 es decir y ∗ A ≥ c luego y ∗ = π B cumple las restricciones
técnicas del problema dual.
Al sustituir y ∗ por su valor en la segunda expresión y ch por su
valor se obtiene 0y ∗ I ≤ 0 es decir y ∗≥ 0 luego el vector y ∗ es una
solución factible del problema dual.
Capı́tulo 14. DUALIDAD 127

2. y ∗ = π B es solución óptima del problema dual.


En el epı́grafe anterior se comprobaba que el valor de la función objeti-
vo para una solución factible del problema primal es siempre una cota
inferior del valor de la función objetivo para una solución factible del
problema dual, es decir z0 ≤ s 0
Por otra parte,
z∗ es el valor de la función objetivo correspondiente a la solución
óptima del problema primal, se cumple que z0 ≤ z∗ = cx ∗
s ∗ es el valor de la función objetivo correspondiente a la solución
óptima del problema dual, luego y ∗ b = s∗ ≤ s 0
Además, z∗ = cx ∗ = cB B −1 b = π B b = y ∗ b = s ∗ Por lo cual podemos
afirmar que z no puede tener un valor mayor y s no puede tener un valor
menor y ambos coinciden.

Corolario 3. Si el problema primal tiene solución óptima finita entonces el


problema dual también, y recı́procamente, si el problema dual tiene solución
óptima finita entonces el primal también.
Corolario 4. Si el problema primal es no factible entonces su dual o no tiene
solución o tiene solución no acotada, y recı́procamente, si el dual es no factible
entonces el primal o es no factible o tiene solución no acotada.
Dado un problema primal y su dual sólo una de las siguientes afirmaciones es
cierta:

El primal tiene solución óptima (finita)  el dual tiene solución óptima


(finita).
Si el primal es no factible ⇒ el dual es no factible o tiene solución no
acotada.
Si el dual es no factible ⇒ el primal es no factible o tiene solución no
acotada.
Si el primal tiene solución no acotada ⇒ el dual es no factible.
Si el dual tiene solución no acotada ⇒ el primal es no factible.

14.2.6. Teorema de las holguras complementarias

El teorema fundamental de la dualidad permite, cuando se conoce la solución


óptima de uno de los problemas asociados, conocer cual es el valor de las
variables iniciales de su problema dual que son componentes de la solución
óptima de dicho problema. El teorema de las holguras complementarias per-
mite conocer el valor del resto de las componentes de la solución del problema
dual.
La demostración del teorema de las holguras complementarias se realizará pa-
ra las soluciones óptimas de los problemas duales asociados aunque se cumple
para todas las soluciones intermedias. Se parte del conocimiento de las dos so-
luciones óptimas de los problemas duales correspondientes, x ∗ e y ∗ .
Capı́tulo 14. DUALIDAD 128

El teorema fundamental de la dualidad dice que:

cx ∗ = y ∗ b

a la expresión anterior le restamos a ambos miembros y ∗ Ax ∗ ,

cx ∗ y ∗ Ax ∗ = y ∗ by ∗ Ax ∗

o lo que es lo mismo:
(cy ∗ A)x ∗ = y ∗ (bAx ∗ )

En la igualdad anterior el primer miembro es un número negativo y el segundo


miembro es un número positivo, por lo cual, sólo es posible cuando ambos
términos son iguales a cero.
En efecto:

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

y el producto de un número positivo por un número negativo es un


número negativo.
2. y ∗ · (bAx ∗ )
- como y ∗ es la solución óptima del problema primal y ∗ ≥ 0
- como x ∗ es la solución óptima del problema dual

Ax ∗ ≤ b ⇒ bAx ∗ ≥ 0

y el producto de un número positivo por un número positivo es un número


positivo.
Por lo cual:

1. (cy ∗ A) · x ∗ = 0
2. y ∗ · (bAx ∗ ) = 0

Veamos ambas expresiones.


(1) (cy ∗ A) · x ∗ = 0 . Para analizar esta expresión vectorial se identifica uno de
sus términos:
(cj y ∗ Aj )xj∗ = 0

Si cj y ∗ Aj < 0, la restricción del dual no se cumple como igualdad y,


por lo tanto, la holgura , yhj , de la restricción forma parte de la solución
óptima; es necesario que xj∗ = 0, lo que genera que dicha restricción no
forma parte de la solución óptima del primal.
Además ,
cj y ∗ Aj ≤ 0
Capı́tulo 14. DUALIDAD 129

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

Además, como yhj = −VxB∗ se comprueba que yhj = 0 ya que el criterio


j
del simplex de una variable básica, xj∗ , es cero.

(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:

si una variable inicial de un problema pertenece a la solución óptima,


la restricción que genera dicha variable en el problema dual se cumple
como igualdad, es decir la variable de holgura de dicha restricción no
pertenece a la solución óptima,
si una restricción de un problema de optimización lineal se cumple como
desigualdad, es decir, la variable de holgura correspondiente pertenece a
la solución óptima, la variable que genera dicha restricción es el proble-
ma dual no forma parte de la solución óptima de dicho problema dual,
finalmente, el valor del criterio del simplex cambiado de signo de una
variable inicial del problema primal es el valor de la variable de holgura
de la restricción que genera dicha variable en el problema dual.

14.3. Interpretación económica de las variables duales en el


óptimo

Por el teorema fundamental de la dualidad los valores óptimos de las funcio-


nes objetivo de un problema primal [P] y su dual [D] son iguales, si x es una
Capı́tulo 14. DUALIDAD 130

solución básica factible y óptima no degenerada de [P] e y (calculada como


y = π B = cB B −1 ) podemos escribir:

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:

z(x̃) = c1 x̃1 + c2 x̃2 + · · · + cn x̃n = ỹ1 (b1 + Δb1 ) + ỹ2 + · · · + ỹm bm =

= (y 1 b1 + y 2 + · · · + y m bm ) + yΔb1 = S(y) + yΔb1 = Z((x)) + yΔb1

De esta expresión se desprende que el valor óptimo de la variable dual y 1


asociada a la primera restricción del problema primal representa la cantidad
en la que se modifica el valor de la función objetivo de [P] por cada unidad
adicional de recurso 1 (siempre que la modicación mantenga la base óptima).
Esto puede hacerse en general para cualquier recurso bi del problema primal.
Teniendo en cuenta esto, si nos situamos, por ejemplo, en un problema primal
de máximo con restricciones de tipo ≤, lo resolvemos y calculamos la solución
del problema dual, entonces los valores óptimos de las variables duales (que
son ≥ 0) representan la variación unitaria de la función objetivo del primal por
cada unidad adicional del recurso correspondiente que pudieramos conseguir.
Esto nos permite también interpretar dichos valores como la mayor cantidad
que estarı́amos dispuestos a pagar por una unidad adicional de recurso.
Capı́tulo 14. DUALIDAD 131

14.4. Algoritmo del simplex dual

Vamos a pensar en este apartado en un algoritmo “análogo” al del simplex,


pero pensando en el problema dual en lugar de en el primal.
Dado un primal (de máximos) diremos que una base del problema primal (no
necesariamente factible) si y sólo si

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.

Ese algoritmo lo hemos estudiado como Método de Lemke (desarrollado por


por C. E. Lemke en 1954).

El dual de un problema grande Corolarios del Tma fundamental Ejercicios

También podría gustarte