Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cap01 - Programación Dinámica PDF
Cap01 - Programación Dinámica PDF
Programación Dinámica
1
Programación Dinámica (PD) Ingeniería Civil Industrial
2
Agenda Ingeniería Civil Industrial
• Problema de la Diligencia
• Características de la Programación Dinámica
• Elementos Básicos
• Programación Dinámica Determinística
• Programación Dinámica Probabilística
3
Problema de la Diligencia Ingeniería Civil Industrial
4
Problema de la Diligencia Ingeniería Civil Industrial
Costo del
recorrido
7
2 4
5 1
6 4
2
8 3
3 6
4 2
1 3 6 3 10
4
4
3 4
1
3
3
9
5
4 7
Estado
6 4
2
8 3
3 6
4 2
1 3 6 3 10
4
4
3 4
1
3
3
9
5 6
4 7
Problema de la Diligencia
Ingeniería Civil Industrial
Solución 3:
PROGRAMACIÓN
DINÁMICA
Método de Solución ƒ
n
n Etapa, subproblema que
estamos resolviendo
ƒ( S
n
0
ƒ( S
,Xn )
,Xn )
(n=1,2,3,4) . 1
n
Variable de decisión,
estado inmediato en la Xn
etapa n
s Función Recursiva:
{ }
Estado
Costo del estado S a Xn ƒn *( S ) = Min ƒn ( S, X
n ) = ƒn ( S, X *) n
Xn
Método de Solución
ETAPA 4 ; n = 4
S ƒ *(S) X4
*
4
8 3 10
9 4 10
ETAPA 3 ; n = 3
9
Problema de la Diligencia Ingeniería Civil Industrial
Método de Solución
ETAPA 2 ; n = 2
2 7 + 4 = 11 4 + 7 = 11 6 + 6 = 12 11 5ó6
3 4 + 6 = 10
4
El problema de la diligencia es
ETAPA 1 ; n = 1 un diseño conceptual, para dar
ƒ(S,X1 ) = C1X 1+ ƒ *(X1 ) una interpretación física literal
X1 1 2
ƒ*(S) de los problemas de PD.
S 2 3 4 1 X1*
1 2 + 11 = 13 4 + 7 = 11 3 + 8 = 11 11 3ó4
}
1 3 5 8 10
Identifiquemos
la solución 1 4 5 8 10
optima.
10
1 4 6 9 10
Características de PD Ingeniería Civil Industrial
11
Elementos básicos de PD Ingeniería Civil Industrial
12
Elementos básicos de PD Ingeniería Civil Industrial
13
Elementos básicos de PD Ingeniería Civil Industrial
• Se dispone de una “relación recursiva” que identifica la política óptima para cada
estado en la etapa n, dada la política óptima para cada estado en la etapa (n+1).
• Usando esta relación recursiva, el procedimiento de resolución se mueve “hacia
atrás”, etapa por etapa - hallando en cada ocasión la política óptima para cada
estado de esa etapa - hasta que se encuentra la política óptima cuando se parte de
la etapa inicial.
Resultado de la
ƒ(*S ) = Min { CSXn + ƒ(*Xn ) }
{ }
política óptima en
* la etapa siguiente n Xn n +1
ƒ ( S ) = Máx Min ƒ( S, Xn ) (n+1)
n n
Xn
f n ( s , xn ) =
s x1 x2 x3 … .. fn*(s) xn*
Estado posible de la
etapa Actual (n)
14
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 1:
Nº de Tienda
cargas 1 2 3
0 0 0 0
1 5 6 4
2 9 11 9
3 14 15 13
4 17 19 18
5 21 22 20
16
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 1:
Función recursiva:
*
17
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 1:
Etapa 3, n=3, s4=0
s3 * x3
0 0 0
1 4 1
2 9 2
3 13 3
4 18 4
5 20 5
18
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 1:
Etapa 2, n=2
19
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 1:
Etapa 1, n=1
s1/x1 0 1 2 3 4 5 f1*(s1) x* 1
5 0+24=24 5+20=25 9+15=24 14+11=25 17+6=23 21+0=21 25 1ó3
xn 1 2 2
xn 3 2 0
20
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 2
Etapa: meses a satisfacer, n={1,2,3,4,5}
xn: cantidad a producir en el mes n, xn∈{0,1,2,3,4,5}
Estado: stock inicial en el mes n
sn: stock inicial en el mes n, sn∈{0,1,2,3,4}
Decisión: cantidad de unidades a producir en el mes n
dn: demanda del mes n, dn={1,2,3,4}
s1=0
s5=0
sn+1=sn+xn-dn
Función recursiva:
*
22
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 2
Etapa 4, n=4, d4=4, s5=0
s5=s4+x4-d4 * *
s4+x4 = 4
s4 f4*(s4) x4
s4\ x4 0 1 2 3 4 5 0 7 4
0 7 1 6 3
1 6 2 5 2
2 5 3 4 1
3 4 4 0 0
4 0
23
Programación Dinámica
Determinísticas f*(s ) x4
Ingeniería Civil Industrial
4 4 4
Ejercicio 2 0 7 4
Etapa 3, n=3, d3=2 1 6 3
s4= s3+x3-d3 2 5 2
0<s4<4 3 4 1
4 0 0
* f3*(s3) x*3
s3\x3 0 1 2 3 4 5
24
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 2 s3 f3*(s3) x3
0 12 2
Etapa 2, n=2, d2=3
1 10 5
s3=s2+x2-d2 2 7 0
0<s3<4 3 6.5 0
4 0 0
* f*2(s2) x*2
s2\x2 0 1 2 3 4 5
25
Programación Dinámica
Determinística Ingeniería Civil Industrial
s4 f4(s4) x4
Ejercicio 2
0 16 5
Etapa 1, n=1, d1=1, s1=0 1 15 4
s2=s1+x1-d1 2 14 3
0<s2<4 3 12 0
4 10.5 0
* f*1(s1) x *1
s1\x1 0 1 2 3 4 5
26
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 2
Mes 1 Mes 2 Mes 3 Mes 4
xn 1 5 0 4
dn 1 3 2 4
sn 0 2 0 0
27
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 3:
Función recursiva:
*
29
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 3:
Puntos de
Etapa 4, n=4, s5=0
Calificación
s4 * x4 Estimados
Días
1 6 1 Cursos
2 7 2
1 2 3 4
3 9 3
1 3 5 2 6
4 9 4
2 5 5 4 7
3 6 6 7 9
4 7 9 8 9
30
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 3: s4 f4*(s4) x4
Etapa 3, n=3 1 6 1
2 7 2
3 9 3
s3/x3 1 2 3 4 f3(s3) x3
4 9 4
1
2 2+6=8 8 1
3 2+7=9 4+6=10 10 2
4 2+9=11 4+7=11 7+6=13 13 3
5 2+9=11 4+9=13 7+7=14 8+6=14 14 3ó4
31
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 3:
Etapa 2, n=2
s2/x2 1 2 3 4 f2(s2) x2
1
2
3 5+8=13 13 1
4 5+10=15 5+8=13 15 1
5 5+13=18 5+10=15 6+8=14 18 1
6 5+14=19 5+13=18 6+10=16 9+8=17 19 1
32
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 3:
Etapa 1, n=1
s1/x1 1 2 3 4 f1*(s) x1
7 3+19=22 5+18=23 6+15=21 7+13=20 23 2
xn 2 1 3 1
33
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 4:
36
Programación Dinámica
Determinística Ingeniería Civil Industrial
Ejercicio 4:
Años de vida adicionales totales,
f n ( s , xn ) : considerando la mejor política para
las etapas restantes y que en la
etapa n, el estado es S y la decisión
tomada fue Xn.
f n*+1 ( sn − xn )
3
Max Z = ∑ i i
i = n +1
P ( x ) La relación recursiva
i =3
f n ( sn , xn ) = Pn ( xn ) + s.a ∑ xi = S n − xn ƒ ( S, Xn ) = Pn ( Xn ) + ƒ *( S - Xn )
i = n +1
n n+1
xi ≥ 0; xi ∈ Ζ
38
Programación Dinámica
Determinística Ingeniería Civil Industrial
0 0 0 0
ƒ ( S, Xn ) = Pn ( Xn ) + ƒ *( S - Xn ) 1 45 20 50
n n+1 2 70 45 70
3 90 75 80
4 105 110 100
5 120 150 130
f 2 ( s, x2 ) = P2 ( x2 ) + f 3* ( s − x2 ) *
* x
f (s) 2
2
0 1 2 3 4 5
0 0+0=0 0 0
1 0+50=50 20+0=20 50 0
2 0+70=70 20+50=70 45+0=45 70 0ó1
3 0+80=80 20+70=90 45+50=95 75+0=75 95 2
4 0+100=100 20+80=100 45+70=115 75+50=125 110+0=110 125 3
5 0+130=130 20+100=120 45+80=125 75+70=145 110+50=160 150+0=150 160 4
40
Programación Dinámica
Determinística Ingeniería Civil Industrial
0 0 0 0
ƒ ( S, Xn ) = Pn ( Xn ) + ƒ *( S - Xn ) 1 45 20 50
n n+1 2 70 45 70
3 90 75 80
4 105 110 100
5 120 150 130
x1 f1 ( s, x1 ) = P1 ( x1 ) + f 2* ( s − x1 )
f1*(s) x1*
s 0 1 2 3 4 5
5 0+160=160 45+125=170 70+95=165 90+70=160 105+50=155 120+0=120 170 1
xn 1 3 1
41
Programación Dinámica
Determinística Ingeniería Civil Industrial
Min Z = ∏ 3i =n +1 Pi ( xi ) f n*+1 ( s − xn )
3
f n ( s, xn ) = Pn ( xn ) * s.a. ∑ xi = s − xn
i = n +1
xi ≥ 0;∈ Ζ
f n ( s, xn ) = Pn ( xn ) * f n*+1 ( s − xn ) f 4* (0) = 1
43
Programación Dinámica
Determinística Ingeniería Civil Industrial
x2 f 2 ( s, x2 ) = P2 ( x2 ) * f 3* ( s − x2 )
*
s 0 1 2 2
* x
f (s) 2
0 0.6*0.8=0.48 0.48 0
1 0.6*0.5=0.3 0.4*0.8=0.32 0.3 0
2 0.6*0.3=0.18 0.4*0.5=0.2 0.2*0.8=0.16 0.16 2
44
Programación Dinámica
Determinística Ingeniería Civil Industrial
x1 f1 ( s, x1 ) = P1 ( x1 ) * f 2* ( s − x2 )
s 0 1 2 f1* ( s ) x1*
2 0.4*0.16=0.064 0.2*0.3=0.06 0.15*0.48=0.072 0.06 1
xn 1 0 1
45
Programación Dinámica
Determinística Ingeniería Civil Industrial
46
1.- Formulación Ingeniería Civil Industrial
Condiciones :
S1 = P
H1 = M
fn+1 = 0
Hn+1 > 0
Sn+1 > 0
48
2.- Ingeniería Civil Industrial
49
• Observamos que Ingeniería Civil Industrial
0 Si S3 < 100 o H3 = 0
3 De otra manera
50
Ingeniería Civil Industrial
n = 2
*
S2 H2 f 2* X 2*
0 1 2 3 4 5
200 0 0 - - - - - 0 0
51
n =1 Ingeniería Civil Industrial
*
S1 H 1 0 1 2 3 4 5 f1* X1*
La familia queda con presupuesto final: 0*US 200 + 3*US 300 + 2*US 100 = US1.100
52
Programación Dinámica
Probabilística Ingeniería Civil Industrial
P1
Decisión
Estado: Sn Xn P2 C2 2
CN
N
ƒ*(1)
54
n+1
Programación Dinámica
Probabilística Ingeniería Civil Industrial
• Estado Indeterminado
• Ejercicio 1: Producción artículo particular
La Cía. Industrial Hir - And - Miss ha recibido un pedido para surtir un
articulo de tipo particular. Sin embargo el cliente ha especificado
requerimientos de calidad tan rigurosos que es posible que el fabricante
tenga que producir más de un articulo para obtener uno aceptable.
El fabricante estima que cada articulo de este tipo que produce será
aceptable con probabilidad de ½ y será defectuoso (sin probabilidad de
reparación), con probabilidad de ½.
55
Programación Dinámica
Probabilística Ingeniería Civil Industrial
• Estado Indeterminado
• Ejercicio 1: Producción artículo particular (seguida)
Se estima que los CMg (costos marginales) de producción son de $ 100 por
artículo (incluso si es defectuoso) y los artículos en exceso no tienen valor.
56
Ingeniería Civil Industrial
2 2
xn
1
= K ( xn ) + xn + ⋅ f n*+1 (1)
2
Donde f 4* (1) es igual a 16, el costo terminal por no haber obtenido artículos aceptables
De esta manera, la relación recursiva para los cálculos de programación dinámica es
1
xn
f n (1) = mín K ( xn ) + xn + ⋅ f n +1 (1)
* *
xn = 0,1,...
2
para n = 1, 2,3.
58
Para n=3
Ingeniería Civil Industrial
x3
1
x3 f 3 (1, x3 ) = K ( x3 ) + x3 + 16
2
s3 0 1 2 3 4 5 f 3* ( s3 ) x3*
0 0 - - - - - 0 0
1 16 12 9 8 8 8,5 8 3o4
Para n=2
x2
1
x2 f 2 (1, x2 ) = K ( x2 ) + x2 + f 3* (1)
2
s2 0 1 2 3 4 f 2* ( s2 ) x2*
0 0 0 0
1 8 8 7 7 7,5 7 2o3
59
Para n=1
Ingeniería Civil Industrial
x1
x1 1
f1 (1, x1 ) = K ( x1 ) + x1 + f 2* (1)
2
s1 0 1 2 3 4 f1* ( s1 ) x1*
60
Programación Dinámica
Probabilística Ingeniería Civil Industrial
• Estado Indeterminado
• Ejercicio 2: Juego popular en las Vegas
Un emprendedor estadístico joven ha desarrollado un sistema para ganar en
un popular juego de las vegas. Sus colegas no creen que esto sea posible, de
modo que hacen una gran apuesta con el que, empezando con tres fichas, no
tendrá cinco fichas después de tres jugadas. Cada jugada comprende la
apuesta de cualquier número de fichas.
El estadístico cree que su sistema le dará una probabilidad de 2/3 de ganar
cada jugada.
Suponiendo que el estadístico está en lo correcto, determínese su política
optima de cuantas fichas apostar ( de apostar alguna ) en cada una de las
tres jugadas. La decisión de cada jugada debe tomar en cuenta los resultados
de las jugadas anteriores.
El objetivo es maximizar la probabilidad de ganar las apuestas a sus colegas.
61
Formulación: Ingeniería Civil Industrial
62
• Procedimiento de solución: Ingeniería Civil Industrial
n=3
S3 f 3* X 3*
0 0 −
1 0 −
2 0 −
3 2/3 2 o más
4 2/3 1 o más
>=5 1 0
63
n=2 Ingeniería Civil Industrial
X 2 f2
S2 f 2* X *
2
0 1 2 3 4
0 0 0 −
1 0 0 0 −
2 04 /9 4 /9 4/9 1o2
3 2 /3 4 /9 2 /3 2 /3 2/3 0, 2 o 3
4 2 /3 8/9 2 /3 2 /3 2 /3 8/9 1
>=5 1 1 0
64
n=1 Ingeniería Civil Industrial
X1 f1
S1 f 1* X 1*
0 1 2 3
3 2/3 20 / 27 2 / 3 2/3 20 / 27 1
Resultado del problema:
si gana , X 3 =0
*
si gana, X 2 = 1
*
si pierde, X 3 = 2 o 3
*
X 1* = 1
2 o 3 ( para X *
= 1)
si gana, X 3 =
* 2
si pierde, X *
2 = 1 o 2 1, 2,3 o 4 ( para X 2 = 2)
*
si pierde, la apuesta esta perdida
67
Formulación
Ingeniería Civil Industrial
68
Procedimiento de solución Ingeniería Civil Industrial
Etapa 3: S3 X *3 f*3
0 0 0
1 1 2
2 2 3.4
>=3 3 4.35
S2\x2 0 1 2 3 x* 2 f*2
Etapa 2:
0 0 - - - 0 0
1 2 2 - - 0ó1 2
2 3.4 4 3.25 - 1 4
3 4.35 5.4 5.25 4.35 1 5.4
4 4.35 6.35 6.65 6.35 2 6.65
5 4.35 6.35 7.6 7.75 3 7.75
6 4.35 6.35 7.6 8.7 3 8.7
69
Procedimiento de solución Ingeniería Civil Industrial
Etapa 1:
S1\x1 0 1 2 3 x* 1 f*1
6 8.7 9.75 9.75 9.45 1o2 9.75
Por lo tanto, tenemos 2 combinaciones optimas con las cuales podemos maximizar
nuestras ganancias, las cuales se resumen a continuación,
Caso 2 2 2 2
70