INVOP2 Programación Dinámica Deterministica
INVOP2 Programación Dinámica Deterministica
INVOP2 Programación Dinámica Deterministica
Artículo p in
n n
1 2 31
2 3 47
3 1 14
Tener en cuenta que el barco puede cargar estos artículos en cualquier orden, además, como
el peso unitario y el peso permisible son enteros, las variables sólo deben tener valores
enteros.
Solución:
Etapa: Cada tipo de artículo hace referencia a una etapa.
Estado: La disponibilidad respecto a la capacidad del barco
Decisión: Cuántas unidades de cada tipo de artículo llevar
Función recursiva: Representa el total de ingreso que se quiere maximizar.
Etapa 3
f3(s3,x3)=14x3 Solución
óptima
*
s3 x3 =0 x3 =1 x3 =2 x3 =3 x3 =4 f3 (s3) x3*
0 14(0)= - - - - 0 0
0
1 14(0)= 14(1)=1 - - - 14 1
0 4
2 14(0)= 14(1)=1 14(2)=2 - - 28 2
0 4 8
3 14(0)= 14(1)=1 14(2)=2 14(3)=4 - 42 3
0 4 8 2
4 14(0)= 14(1)=1 14(2)=2 14(3)=4 14(4)=5 56 4
0 4 8 2 6
s3=0; significa que el barco está lleno, disponibilidad cero.
s3=4; significa que el barco está vacío, disponibilidad 4 ton.
Etapa 2
f2(s2,x2)=47x2+f3*(s2-3x2) Solución
óptima
*
s2 x2 =0 x2 =1 f2 (s2) x2*
0 47(0)+0=0 - 0 0
1 47(0)+14=1 - 14 0
4
2 47(0)+28=2 - 28 0
8
3 47(0)+42=4 47(1)+0=47 47 1
2
4 47(0)+56=5 47(1)+14=6 61 1
6 1
Etapa 1
f1(s1,x1)=31x1+ f2*(s1-2x1) Solución
óptima
*
s1 x1 =0 x1 =1 x1 =2 f1 (s1) x1*
0 31(0)+0=0 - - 0 0
1 31(0)+14=1 - - 14 0
4
2 31(0)+28=2 31(1)+0=31 - 31 1
8
3 31(0)+47=4 31(1)+14=4 - 47 0
7 5
4 31(0)+61=6 31(1)+28=5 31(2)+0=6 62 2
1 9 2
Para obtener la solución óptima, se observa que el máximo ingreso generado en la etapa 1,
es decir $62 mil, se produce cuando se decide llevar 2 unidades del artículo 1.
Etapa 4
Conservar Reemplazar Solución
t óptima
s4 I(t) - C(t) + R(t +1) I(0) + R(t) +R(1) - 100000 - C(0) f4 (s4) x4*
*
Etapa 3
Conservar Reemplazar Solución
t óptima
s3 I(t) - C(t) + f4(t +1) I(0) + R(t) - 100000 - C(0) + f4*(1) f3 (s3) x3*
*
Etapa 2
Conservar Reemplazar Solución
t óptima
s2 I(t) - C(t) + f3(t +1) I(0) + R(t) - 100000 - C(0) + f3*(1) f2 (s2) x2*
*
Etapa 1
Conservar Reemplazar Solución
t óptima
s1 I(t) - C(t) + f2(t +1) I(0) + R(t) - 100000 - C(0) + f2*(1) f1 (s1) x1*
*
PROBLEMA 4
Una empresa requiere 28, 30, 25, 29 y 20 trabajadores para los próximos 5 años
respectivamente. En la actualidad hay 30 empleados en la empresa. Cada trabajador gana
16000 soles al año. Al empezar cada año se puede contratar o despedir trabajadores. Cuesta
1000 soles contratar un trabajador y 15000 soles despedirlo, debido a los seguros y
beneficios que se tienen que pagar. Por lo fatigoso que es el trabajo, cada año renuncian 3
trabajadores (los cuales no cobran los 15000 soles de despido). Mediante el uso de
programación dinámica encontrar la política óptima definiendo las etapas, estados y
variables de decisión; además explicar la función recursiva. Tener en cuenta que, de ser
económico, sería ideal tener el número exacto de trabajadores necesarios en cada semana;
además, la empresa trata en lo posible de evitar los costos de contratación o despido.
Solución:
rn: Requerimiento de año n
xn: Trabajadores asignados el año n
Etapa: año
Estado: trabajadores que quedan al inicio del presente período.
fn(sn,xn)= min{16000(xn) + 1000(xn-sn) + 15000(sn-xn) +fn+1(sn+1) } o también
fn(sn,xn)= min{16000(xn) + 1000(xn-sn) + 15000(sn-xn) + fn+1(xn-3) }
teniendo en cuenta que: 1000(xn-sn); xn>sny15000(sn-xn); sn>xn
PROBLEMA 5
Una empresa requiere tener una máquina que trabaje durante los 5 años siguientes. En la
actualidad tiene una máquina nueva. La compañía podría conservar la máquina o venderla
al empezar cada año y comprar una nueva. Una máquina nueva cuesta 5000 dólares. Los
ingresos obtenidos con la máquina, el costo de mantenimiento y el valor de salvamento que
se puede obtener al venderla al final del año, dependen de la edad de la máquina (véase
tabla). Puede utilizarse una máquina hasta un máximo de tres años de antigüedad.
Utilice la programación dinámica para maximizar la utilidad neta ganada durante los seis
años siguientes.
ETAPAS: Años
ESTADOS: Edad de la máquina
ALTERNATIVAS: Conservar, Reemplazar
Etapa 6
Conservar Reemplazar Solución
t
óptima
s6 *
I(t) - C(t) + R(t +1) I(0) + R(t) +R(1) - 5000 - C(0) f6 (s6) x6*
1 3000-700+1800=4100 4500+3000+3000-5000- 5000 R
500=5000
2 1500-1100+500=900 4500+1800+3000-5000- 3800 R
500=3800
3 Se debe reemplazar 4500+500+3000-5000-500=2500 2500 R
Etapa 5
Conservar Reemplazar Solución
t
óptima
s5
I(t) - C(t) + f6*(t +1) I(0) + R(t) - 5000 - C(0) + f6*(1) *
f5 (s5) x5*
1 3000-700+3800=4100 4500+3000-5000- 7000 R
500+5000=7000
2 1500-1100+2500=2900 4500+1800-5000- 5800 R
500+5000=5800
3 Se debe reemplazar 4500+500-5000-500+5000=4500 4500 R
Etapa 4
Conservar Reemplazar Solución
t
óptima
s4
I(t) - C(t) + f5*(t +1) I(0) + R(t) - 5000 - C(0) + f5*(1) *
f4 (s4) x4*
1 3000-700+5800=8100 4500+3000-5000- 9000 R
500+7000=9000
2 1500-1100+4500=4900 4500+1800-5000- 7800 R
500+7000=7800
3 Se debe reemplazar 4500+500-5000-500+7000=6500 6500 R
Etapa 3
Conservar Reemplazar Solución
t
óptima
s3
I(t) - C(t) + f4*(t +1) I(0) + R(t) - 5000 - C(0) + f4*(1) *
f3 (s3) x3*
1 3000-700+7800=10100 4500+3000-5000- 11000 R
500+9000=11000
2 1500-1100+6500=6900 4500+1800-5000- 9800 R
500+9000=9800
Etapa 2
Conservar Reemplazar Solución
t
óptima
s2
I(t) - C(t) + f3*(t +1) I(0) + R(t) - 5000 - C(0) + f3*(1) *
f2 (s2) x2*
1 3000-700+9800=12100 4500+3000-5000- 13000 R
500+11000=13000
Etapa 1
Conservar Reemplazar Solución
t
óptima
s1
I(t) - C(t) + f2*(t +1) I(0) + R(t) - 5000 - C(0) + f2*(1) *
f1 (s1) x1*
0 3000-700+13000=15300 - 15300 C
PROBLEMA 7
Una compañía construye aviones comerciales para varias líneas aéreas de todo el mundo.
La última etapa del proceso consiste en la fabricación de los motores de turbina y su
instalación en la estructura del avión. La compañía tiene que hacer entrega, próximamente,
de un gran número de aviones y, por este motivo, desea programar la producción de los
motores de turbina para los próximos cuatro meses.
En la siguiente tabla se muestra, para cada uno de los próximos cuatro meses, la cantidad de
motores que deben de estar listos para su instalación, la capacidad de producción máxima
de dicho mes, el coste unitario de fabricar cada motor (que puede variar de mes a mes
debido a las necesidades de personal, alteraciones en los precios de las materiales,
consumos energéticos, etc.), y el coste de almacenar un motor durante un mes (en este caso,
el coste siempre es fijo de $15000 por motor).
Instalacione
Producció Costo unitario Costo unitario
Me s
n de de
s programad
máxima producción* almacenaje*
as
1 10 25 1.08 0.015
2 15 35 1.11 0.015
3 25 30 1.10 0.015
4 20 10 1.13 0.015
*costo dado en millones de $.
Dada las variaciones de los costos de producción, podría valer la pena fabricar algunos
motores antes de su fecha de instalación. Utilice métodos de programación dinámica para
determinar la producción óptima de cada mes, teniendo en cuenta que las cantidades
producidas deben ser múltiplos de 5.
Solución:
Sean:
xn el nivel de producción en el mes n
yn el inventario inicial en el mes n
dn la demanda en el mes n
Función recursiva: Costo mínimo de cumplir las demandas fn(sn ,xn) = min {CP(xn)
+CI(yi+1)+fn+1(sn+1)}
Etapa: Cada mes
Estado: Inventario inicial