Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Programacin Lineal
Ejemplo de los Fertilizantes: (Fase 1: formulacin del problema) Una empresa se dedica a la elaboracin de dos tipos diferentes de fertilizantes: H-Fosfato y L-Fosfato. Para ello, utiliza tres clases de materias primas: Crudo 1, Crudo 2, Crudo 3. Los datos concretos para la fabricacin de los fertilizantes son los siguientes:
Tm de Crudo por Tm de Fertilizante Disponibilidad mensual (en Tm) de Crudo H-Fosfato L-Fosfato
Crudo
1 2 3
Precio venta Tm
2 1 1 15
1 1 0 10
Se desea determinar el nmero de Tm a producir mensualmente, de cada fertilizante, para maximizar el ingreso total por ventas.
Definicin de las variables de decisin: x1 = nmero de Tm de H-Fosfato a producir mensualmente x2 = nmero de Tm de L-Fosfato a producir mensualmente
Construccin del modelo matemtico: Max. f(x) = 15 x1 + 10 x2 sujeto a 2 x1 + x2 1500 x1 + x2 1200 x1 500 x1 0, x2 0
(Tm de Crudo 1) (Tm de Crudo 2) (Tm de Crudo 3)
Programacin Lineal
semiplano 2 x1 + x2 1 500
semiplano x1 + x2 1 200
semiplano x1 500
Programacin Lineal
Ejemplo de los Fertilizantes: (Fase 3: resolucin del modelo y obtencin de la solucin) Resolucin grfica
(0,1200) f = 12 000
(300,900) f = 13 500
(500,0) f = 7 500
Programacin Lineal
Ejemplo de los Fertilizantes: (Fase 3: resolucin del modelo y obtencin de la solucin) Resolucin mediante ecuaciones de igualdad: mtodo algebraico
Max. f(x) = 15 x1 + 10 x2 + 0 h1 + 0 h2 + 0 h3 sujeto a 2 x1 + x2 + h1 = 1500 x1 + x2 + h2 = 1200 x1 + h3 = 500 x1 0 , x2 0 , h1 0 , h2 0 , h3 0
A las variables h1, h2, h3 las denominamos variables de holgura (as, h1 es el nmero de Tm de Crudo 1 que sobra al mes). 1 Solucin Factible Bsica (SFB): x=(0,0)
x1 = 0, x2 = 0, h1 = 1500, h2 = 1200, h3 = 500 (x1, x2 variables no bsicas ; h1, h2, h3 variables bsicas )
f= 0
Para ver si se puede aumentar el valor de f, se escriben de otro modo las igualdades iniciales: se ponen las variables bsicas y la funcin f en trminos de las variables no bsicas h1 = 1500 - 2 x1 - x2 h2 = 1200 - x1 - x2 h3 = 500 - x1 f = 0 + 15 x1 + 10 x2 aumentar f aumentar x1 (por cada unidad que aumente x1, f aumenta 15): cunto? x1 1500 = 750, 2 x1 1200, x1 500
Programacin Lineal
x2 = 0, h3 = 0 ; h1 = 500,
h2 = 700,
x1 = 500
f= 7500
(x1, h3 variables no bsicas ; h1, h2, x1 variables bsicas ) Repetimos el proceso anterior y escribimos las variables bsicas y la funcin f en trminos de las variables no bsicas; para ello, despejamos x1 en la 3 restriccin y sustituimos su valor en la 1, 2 y f h1 = 1500 - 2 (500- h3) - x2 h2 = 1200 - (500- h3) - x2 x1 = 500 - h3 f = 0 + 15 (500- h3) + 10 x2 es decir, h1 = 500 - x2 + 2 h3 h2 = 700 - x2 + h3 x1 = 500 - h3 f = 7500 + 10 x2 - 15 h3 aumentar f aumentar x2: cunto? x2 500, x2 700
h1 = 0, h3 = 0 ; x2 = 500,
h2 = 200,
x1 = 500
f= 12500
(h1, h3 variables no bsicas ; x2, h2, x1 variables bsicas ) Repetimos el proceso y escribimos las variables bsicas y la funcin f en trminos de las variables no bsicas; para ello, despejamos x2 en la 1 restriccin y sustituimos su valor en la 2, 3 y f x2 = 500 - h1 + 2 h3 h2 = 700 - (500 - h1 + 2 h3) + h3 x1 = 500 - h3 f = 7500 + 10 (500 - h1 + 2 h3) - 15 h3
Programacin Lineal
x2 = 500 - h1 + 2 h3 h2 = 200 + h1 - h3 x1 = 500 - h3 f = 12500 - 10 h1 + 5 h3 aumentar f aumentar h3: cunto? h3 200, h3 500
h1 = 0, h2 = 0 ; x2 = 900,
h3 = 200,
x1 = 300
f= 13500
(h1, h2 variables no bsicas ; x2, h3, x1 variables bsicas ) Repetimos el proceso y escribimos las variables bsicas y la funcin f en trminos de las variables no bsicas; para ello, despejamos h3 en la 2 restriccin y sustituimos su valor en la 1, 3 y f x2 = 500 - h1 + 2 (200 + h1 - h2) h3 = 200 + h1 - h2 x1 = 500 - (200 + h1 - h2) f = 12500 - 10 h1 + 5 (200 + h1 - h2)
Programacin Lineal
Desarrollo grfico
(0,1200) f = 12 000
(300,900) f = 13 500
(500,0) f = 7 500
(300,900) f = 13 500
Programacin Lineal
Programacin Lineal
Ejemplo de los Fertilizantes: (Fase 3: resolucin del modelo y obtencin de la solucin) Resolucin por ecuaciones de igualdad: otra forma equivalente (para WinQSB)
Max. f(x) = 15 x1 + 10 x2 + 0 h1 + 0 h2 + 0 h3 sujeto a 2 x1 + x2 + h1 = 1500 x1 + x2 + h2 = 1200 x1 + h3 = 500 x1 0 , x2 0 , h1 0 , h2 0 , h3 0
h1 = 1500 - 2 x1 - x2 2 x1 + x2 + h1 = 1500 h2 = 1200 - x1 - x2 x1 + x2 + h2 = 1200 h3 = 500 - x1 x1 + h3 = 500 f = 0 + 15 x1 + 10 x2 f(x) = 15 x1 + 10 x2 + 0 (x1, x2 variables no bsicas ; h1, h2, h3 variables bsicas ) aumentar f aumentar x1: cunto? x1 1500 = 750, 2 x1 1200, x1 500
hacemos x1 = 500 h3 = 0
2 Solucin Factible Bsica (SFB): x=(500,0) x2 = 0, h3 = 0, x1 = 500, h1 = 500, h2 = 700 f= 7500 = 500 = 700 = 500 7500
h1 = 500 - x2 + 2 h3 x2 + h1 - 2 h3 h2 = 700 - x2 + h3 x2 + h2 - h3 x1 = 500 - h3 x1 + h3 f = 7500 + 10 x2 - 15 h3 f(x) = 10 x2 - 15 h3 + (x1, h3 variables no bsicas ; h1, h2, x1 variables bsicas ) aumentar f aumentar x2: cunto? x2 500, x2 700
hacemos x2 = 500 h1 = 0
Programacin Lineal
x2 = 500 - h1 + 2 h3 x2 + h1 - 2 h3 = 500 h2 = 200 + h1 - h3 - h1 +h2 + h3 = 200 x1 = 500 - h3 x1 + h3 = 500 f = 12500 - 10 h1 + 5 h3 f(x) = - 10 h1 + 5 h3 + 12500 (h1, h3 variables no bsicas ; x2, h2, x1 variables bsicas ) aumentar f aumentar h3: cunto? h3 200, h3 500
hacemos h3 = 200 h2 = 0
4 Solucin Factible Bsica (SFB): x=(300,900) h1 = 0, h2 = 0, x1 = 300, x2 = 900, h3 = 200 f= 13500 = 900 = 200 = 300 13500
x2 = 900 + h1 - 2 h2 x2 - h1 +2 h2 h3 = 200 + h1 - h2 - h1 + h2 + h3 x1 = 300 - h1 + h2 x1 +h1 - h2 f = 13500 - 5 h1 - 5 h2 f(x) = - 5 h1 -5 h2 + (h1, h2 variables no bsicas ; x2, h3, x1 variables bsicas ) aumentar f no se puede: solucin ptima
10
Programacin Lineal
(300,900) f = 13 500
11
Programacin Lineal
Ejemplo de los Fertilizantes: (Fase 3: resolucin del modelo y obtencin de la solucin) Resolucin en forma de tabla
variables SFB Costo inicial Coeficientes de las variables en las restricciones coeficientes de las variables no bsicas en la funcin objetivo (costos reducidos) Valor var. bsicas test del cociente
x2
10
h1
0
h2
0
h3
0
h1 0 h2 0 h3 0
2 1 1 15
1 1 0 10
1 0 0 0
0 1 0 0
0 0 1 0
x2
10
h1
0
h2
0
h1 h2 x1
0 0 15
0 0 1 0
1 1 0 10
1 0 0 0
0 1 0 0
x2
10
h1
0
h2
0
h3
0
x2 h2 x1
10 0 15
0 0 1 0
1 0 0 0
1 -1 0 -10
0 1 0 0
-2 1 1 5
x2
10
h1
0
h2
0
h3
0
x2 10 h3 0 x1 15
0 0 1 0
1 0 0 0
-1 -1 1 -5
2 1 -1 -5
0 1 0 0
12
Programacin Lineal
(300,900) f = 13 500
13
Programacin Lineal
Max f(x) = c x T
sujeto a
A xT = b x0
x1 x2 Max. f(x1,x2,h1,h2,h3) = (15,10,0,0,0) h1 h2 h3 (c) (x T ) sujeto a x1 2 1 1 0 0 x2 1500 1 1 0 1 0 h1 = 1200 1 0 0 0 1 h2 500 h3 (A) (x T ) (b) x = (x1 , x2 , h1 , h2 , h3) 0
14
Programacin Lineal
Ideas previas para el algoritmo del Simplex: tablas en forma matricial SFB inicial
variables coeficientes en la f.o. SFB Costo inicial Coeficientes de las variables en las restricciones coeficientes de las variables en la funcin objetivo (costos reducidos) Valor var. bsicas test del cociente
xi: variables c xB cB
A = B-1 A
b = B-1 b
valor de la f. o.
c = c - cB B-1 A
15
Programacin Lineal
x2
10
h1
0
h2
0
h3
0
h1 h2 h3
0 0 0
2 1 1 15
1 1 0 10
1 0 0 0
0 1 0 0
0 0 1 0
1 0 0 1 0 0 1 B = 0 1 0 B = 0 1 0 0 0 1 0 0 1
x2
10
h1
0
h2
0
h1 0 h2 0 x1 15
0 0 1 0
1 1 0 10
1 0 0 0
0 1 0 0
1 0 2 1 0 2 1 B = 0 1 1 B = 0 1 1 0 0 1 0 0 1
x2
10
h1
0
h2
0
h3
0
x2 h2 x1
10 0 15
0 0 1 0
1 0 0 0
1 -1 0 -10
0 1 0 0
-2 1 1 5
1 0 2 1 0 2 1 B = 1 1 1 B = 1 1 1 0 0 1 0 0 1
16
Programacin Lineal
x2
10
h1
0
h2
0
h3
0
x2 10 h3 0 x1 15
0 0 1 0
1 0 0 0
-1 -1 1 -5
2 1 -1 -5
0 1 0 0
1 0 2 1 2 0 1 B = 1 0 1 B = 1 1 1 0 1 1 1 1 0
17
Programacin Lineal
h1
0
h2
0
h3
0
1 0 0 = 0 1 0 0 0 1
15
multiplicado por
h1 h2 h3
0 0 0
2 1 1 15
1 1 0 10
1 0 0 0
0 1 0 0
0 0 1 0
se obtiene la tabla x1
15
x2
10
h1
0
h2
0
h3
0
h1 h2 h3
0 0 0
2 1 1 15
1 1 0 10
1 0 0 0
0 1 0 0
0 0 1 0
x1
15
x2
10
h1
0
h2
0
h3
0
1 0 2 = 0 1 1 multiplicado por 0 0 1
h1 h2 h3
0 0 0
2 1 1 15
1 1 0 10
1 0 0 0
0 1 0 0
0 0 1 0
se obtiene la tabla x1
15
x2
10
h1
0
h2
0
h1 h2 x1
0 0 15
0 0 1 0
1 1 0 10
1 0 0 0
0 1 0 0
18
Programacin Lineal
1 0 2 1 0 2 1 B = 1 1 1 B = 1 1 1 0 0 1 0 0 1
x1 x2
10
h1
0
h2
0
h3
0
B 1
1 0 2 = 1 1 1 multiplicado por 0 0 1
15
h1 0 h2 0 h3 0
2 1 1 15
1 1 0 10
1 0 0 0
0 1 0 0
0 0 1 0
se obtiene la tabla x1
15
x2
10
h1
0
h2
0
h3
0
x2 10 h2 0 x1 15
0 0 1 0
1 0 0 0
1 -1 0 -10
0 1 0 0
-2 1 1 5
1 0 2 1 2 0 1 B = 1 0 1 B = 1 1 1 0 1 1 1 1 0
x1 x2
10
h1
0
h2
0
h3
0
1 2 0 = 1 1 1 multiplicado por 1 1 0
15
h1 0 h2 0 h3 0
2 1 1 15
1 1 0 10
1 0 0 0
0 1 0 0
0 0 1 0
se obtiene la tabla x1
15
x2
10
h1
0
h2
0
h3
0
x2 10 h3 0 x1 15
0 0 1 0
1 0 0 0
-1 -1 1 -5
2 1 -1 -5
0 1 0 0
19
Programacin Lineal
x2
10
h1
0
h2
0
h3
0
h1 0 h2 0 h3 0
2 1 1 15
1 1 0 10
1 0 0 0
0 1 0 0
0 0 1 0
1 0 0 1 0 0 B = 0 1 0 B 1 = 0 1 0 0 0 1 0 0 1
2 1 1 0 0 1 1 0 1 0 = A 1 0 0 0 1
= cB B-1 b = 0 I b = 0
x2
10
h1
0
h2
0
h1 0 h2 0 x1 15
0 0 1 0
1 1 0 10
1 0 0 0
0 1 0 0
1 0 2 1 0 2 B = 0 1 1 B 1 = 0 1 1 0 0 1 0 0 1
20
Programacin Lineal
0 = 0 1 0 = 0 1
1 1 0
-1
1 1 0 1 0 1 0 0 0
= 2 1 1 =
1 0 2 2 1 c = c - cB B A = (15, 10, 0, 0, 0) (0, 0, 15) 0 1 1 1 1 I 0 0 1 1 0 0 1 1 0 2 = (15, 10, 0, 0, 0) (0, 0, 15) 0 1 0 1 1 = 1 0 0 0 1 = (15 - 15, 10 - 0, 0 - 0, 0 - 0, 0 - 15) = (0, 10, 0, 0, -15)
-1
x2
10
h1
0
h2
0
h3
0
x2 h2 x1
10 0 15
0 0 1 0
1 0 0 0
1 -1 0 -10
0 1 0 0
-2 1 1 5
1 0 2 1 0 2 1 B = 1 1 1 B = 1 1 1 0 0 1 0 0 1
21
Programacin Lineal
1 0 2 2 1 A = B A = 1 1 1 1 1 0 0 1 1 0
-1
0 = 0 1 0 = 0 1
1 0 0 1 1
B
0
-1
0 1 1 0 0 0
= 2 1 1
1 0 2 2 1 c = c - cB B A = (15, 10, 0, 0, 0) (10, 0, 15) 1 1 1 1 1 I 0 0 1 1 0 0 1 1 0 2 = (15, 10, 0, 0, 0) (10, 0, 15) 0 0 1 1 1 = 1 0 0 0 1 = (15 - 15, 10 - 10, 0 - 10, 0 - 0, 0 + 5) = (0, 0, -10, 0, 5)
-1
22
Programacin Lineal
x2
10
h1
0
h2
0
h3
0
x2 h3 x1
10 0 15
0 0 1 0
1 0 0 0
-1 -1 1 -5
2 1 -1 -5
0 1 0 0
1 0 2 1 2 0 1 B = 1 0 1 B = 1 1 1 0 1 1 1 1 0
1 2 0 2 1 A = B A = 1 1 1 1 1 1 1 0 1 0
-1
0 = 0 1 0 = 0 1
B 0 = 0 1 1 2 0 0 1 1 1 0 1 1 0 1
-1
1 2 0 2 1 c = c - cB B A = (15, 10, 0, 0, 0) (10, 0, 15) 1 1 1 1 1 1 1 0 1 0 0 1 1 2 0 = (15, 10, 0, 0, 0) (10, 0, 15) 0 0 1 1 1 = 1 0 1 1 0 = (15 - 15, 10 - 10, 0 - 5, 0 - 5, 0 + 0) = (0, 0, -5, -5, 0)
-1
23
Programacin Lineal
Ejercicio 1: repetir el proceso anterior para el siguiente Ejemplo de los Productos lquidos Una empresa familiar se dedica a la elaboracin de dos tipos diferentes de productos lquidos para el hogar. Dichos productos precisan de la
utilizacin de tres mquinas distintas. Los datos concretos para la elaboracin de los productos lquidos son los siguientes:
ndice de produccin (horas/unidad) capacidad semanal
Mquina
1 2 3
Beneficio neto
Producto1 10 5 5 10
Producto2 20 5 2 15
(horas/semana)
Se desea determinar el nmero de unidades de cada uno de los dos productos lquidos a producir semanalmente, para maximizar el beneficio neto por ventas.
Definicin de las variables de decisin: x1 = nmero de unidades de Producto1 a fabricar semanalmente x2 = nmero de unidades de Producto2 a fabricar semanalmente
Construccin del modelo matemtico: Max. f(x) = 10 x1 + 15 x2 sujeto a 10 x1 + 20 x2 4000 5 x1 + 5 x2 1500 5 x1 + 2 x2 800 x1 0 , x2 0
24
Programacin Lineal
Ejercicio 2: repetir el proceso anterior para el siguiente Ejemplo de Fabricacin de Productos Una empresa elabora dos tipos de productos: A y B. Cada unidad de producto, tanto del tipo A como del B, necesita para su elaboracin, de la utilizacin de dos tipos diferentes de mquinas M1 y M2: el producto A requiere 4 horas de utilizacin de la mquina M1 y ninguna de la mquina M2; mientras que el producto B, requiere 1 hora de la mquina M1 y 1 hora de la M2. Por el nmero de mquinas disponibles de los tipos M1 y M2, se pueden conseguir 2400 y 350 horas de trabajo semanalmente respectivamente. Todas las unidades producidas a lo largo de la semana se venden durante esa semana, y el beneficio que deja cada unidad del producto A es de 7 unidades monetarias, mientras que el B deja 5 unidades monetarias. Adems, por restricciones de tipo legal, no se pueden producir ms de 350 unidades del producto A. Plantear el problema de programacin lineal que analice el nmero de unidades que se deben fabricar de cada tipo con el fin de maximizar el beneficio.
Definicin de las variables de decisin: x1 , nmero de unidades fabricadas por semana del producto A x2 , nmero de unidades fabricadas por semana del producto B
25
Programacin Lineal
Construccin del modelo matemtico: Max. f(x1,x2) = 7 x1 + 5 x2 sujeto a 4 x1 + x1 x2 2400 x2 350 350
x1 , x2 0
26