Académique Documents
Professionnel Documents
Culture Documents
Programación Lineal
Revolución informática:
Primer problema resuelto manualmente: 1948, “problema de la dieta” de Stigler Æ
120 días de trabajo (solución óptima sólo 24 cts más barata que la heurística de
Stigler)
Primer problema resuelto por computadora: 1952 (computadora SEAC)
Actualmente:
“Programa” = plan para planificar y controlar las estrategias de inversión, la
producción, la distribución, la comercialización, etc, de las actividades o productos
que constituyen el objeto de interés de una empresa.
Aplicaciones: Medio Ambiente, Sociología, Educación, Administración Pública,
Industria, Informática, Economía, Logística, Telecomunicaciones, etc
MODELO:
Programa lineal: Modelo o problema de maximización o
minimización de una función lineal, sujeta a restricciones lineales,
con variables reales positivas. Función objetivo
min c1 x1 + c2 x2 + K + cn xn
s.a. a11 x1 + a12 x2 + K + a1n xn ≥ b1
a21 x1 + a22 x2 + K + a2 n xn ≥ b2 Restricciones
M M funcionales
am1 x1 + am 2 x2 + K + amn xn ≥ bm
x1 , x 2 , K , x n ≥ 0
Restricciones de no negatividad
r
x≥0
SOLUCIÓN: Buscar entre todos los puntos de la región
factible aquel o aquellos que minimicen la función objetivo
Nota: Las regiones factibles siempre son convexas (se puede ir en línea recta
desde un punto a otro de la región sin salir de la misma)
Ejemplo: Una empresa láctea plantea la producción de dos nuevas bebidas.
Producir un litro del primer tipo de bebida cuesta 2$, mientras que un litro del
segundo tipo de bebida cuesta 5$. Para realizar el lanzamiento comercial se
necesitan más de 6000000 litros de bebida, aunque del segundo tipo no podrán
producirse (por limitaciones técnicas) más de 5000000. Además, se desea
producir más cantidad de bebida del segundo tipo que del primero. ¿Cuántos
litros habrá que producir de cada tipo de bebida para que el coste de producción
sea mínimo?
restricciones: x1 + x2 > 6
x2 < 5
x1 - x2 < 0
x1 , x2 > 0
Región factible
Y
5
: 0.0 X + 1.0 Y = 5.0
0
0 1 2 3 4 5 X
Y
5
2 Solución óptima
0
0 1 2 3 4 5 X
Y
3 Payoff: 4.0 X + 14.0 Y = 42.0
: 2.0 X + 7.0 Y = 21.0
0
0 1 2 3 X
70
60
50
Payoff: 2.0 X + 1.0 Y = 80.0
: 2.0 X - 1.0 Y = 40.0
40
30
20
0
0 10 20 30 40 50 60
n=6 variables
S.B.F. : 6-4=2 variables no básicas (=0) y
m=4 ecuaciones
4 variables básicas
: 0.0 X1 + 2.0
X2
2
D : -3.0 X1 + 2.0 X2 = 3.0
C
1
Payoff: 4.0 X1 + 3.0 X2 = 5.4
: 2.0 X1 + 3.0
A B
0
0 1 2 X1
: 2.0X1 + 3.0X2 <= 6.0 A: x1= x2= 0 C: s1= s4= 0 E: x1= s2= 0
: -3.0X1 + 2.0X2 <= 3.0
: 0.0X1 + 2.0X2 <= 5.0 B: x2= s4= 0 D: s1= s2= 0
: 2.0X1 + 1.0X2 <= 4.0
Búsqueda de una S.B.F. inicial para empezar el algoritmo:
⎛ x1 ⎞ ⎛ x1 ⎞ ⎛ 0 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎛ 2 3 1 0 0 0 ⎞ ⎜ x2 ⎟ ⎛ 6 ⎞ ⎜ x2 ⎟ ⎜ 0 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ s ⎟ ⎜6⎟
⎜−3 2 0 1 0 0 ⎟ s1
⎜ ⎟ ⎜ 3⎟ ⎜ 1⎟=⎜ ⎟
⎜ 0 ⎟ ⋅ =⎜ ⎟ A
2 0 0 1 0 ⎜ s2 ⎟ 5 ⎜ s2 ⎟ ⎜ 3 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜s ⎟ ⎜ ⎟
⎜ 2 1 ⎟⎠ ⎜ s3 ⎟ ⎜⎝ 4 ⎟⎠
⎝ 1 0 0 0 ⎜ 3 ⎟ ⎜5⎟
⎜s ⎟ ⎜ s ⎟ ⎜ 4⎟
⎝ 4⎠ ⎝ 4⎠ ⎝ ⎠
Maximizar
S.B.F. inicio
La variable con coeficiente “más negativo” en z será la que más aumente la f.o.
(minimizar〉 coeficiente “más positivo”)
si aumenta x1 , z tendrá un mayor aumento
NUEVA TABLA:
Básicas x1 x2 s1 s2 s3 s4 Solución
z 0 -1 0 0 0 2 8
s1 0 2 1 0 0 -1 2
s2 0 7/2 0 1 0 3/2 9
s3 0 2 0 0 1 0 5
x1 1 1/2 0 0 0 1/2 2
Básicas x1 x2 s1 s2 s3 s4 Solución
z 0 -1
-1 0 0 0 2 8
s1 0 22 1 0 0 -1 2
s2 0 7/2 0 1 0 3/2 9
s3 0 2 0 0 1 0 5
x1 1 1/2 0 0 0 1/2 2
Básicas x1 x2 s1 s2 s3 s4 Solución
z 0 0 1/2 0 0 3/2 9
x2 0 1 1/2 0 0 -1/2 1
s2 0 0 -7/4 1 0 13/4 11/2
s3 0 0 -1 0 1 1 3
x1 1 0 -1/4 0 0 3/4 3/2
Esta nueva tabla nos indica que estamos en C (s1= s4=0). La solución es óptima,
porque todos los coeficientes en z son positivos. Por lo tanto:
x1* = 3/2 , x2* = 1, (s1* = 0 , s2* = 11/2 , s3* = 3 , s4* = 0) y z*=9
El problema de la S.B.F. inicial
8
: 30.0 X1 + 10.0 X2 = 135.0
7
: 10.0 X1 + 15.0 X2 = 150.0
6
2
: 1.0 X1 - 3.0 X2 = 0.0
1
0
0 1 2 3 4 5 6 7 X1
8
: 30.0 X1 + 10.0 X2 = 135.0
7
: 10.0 X1 + 15.0 X2 = 150.0
6
2
: 1.0 X1 - 3.0 X2 = 0.0
1
0
0 1 2 3 4 5 6 7 X1
8
: 30.0 X1 + 10.0 X2 = 135.0
7
: 10.0 X1 + 15.0 X2 = 150.0
6
2
: 1.0 X1 - 3.0 X2 = 0.0
1
0
0 1 2 3 4 5 6 7 8 9 10 X1
X2
9
3
: 1.0 X1 + 1.0 X2 = 5.0
2
: 1.0 X1 - 3.0 X2 = 0.0
1
0
0 1 2 3 4 5 6 7 X1