Professional Documents
Culture Documents
Dinámica
Introducción
Existe una serie de problemas cuyas soluciones
pueden ser expresadas recursivamente en
términos matemáticos, y posiblemente la manera
más natural de resolverlos es mediante un
algoritmo recursivo.
En estos casos es cuando la Programación
Dinámica nos puede ofrecer una solución
aceptable. La eficiencia de esta técnica consiste
en resolver los subproblemas una sola vez,
guardando sus soluciones en una tabla para su
futura utilización.
PROGRAMACION DINAMICA
DETERMINISTICA
El estado en la siguiente etapa esta
completamente determinado por el estado
o política de decisión de la etapa actual
PROGRAMACION DINAMICA
PROBABILISTICA
El estado en la siguiente etapa no esta
completamente determinado por el estado
o política de decisión de la etapa actual
Concepto
Es una técnica matemática que se puede aplicar
para resolver muchos problemas de optimización,
lo que se desea es encontrar la solución de valor
óptimo (máximo o mínimo).
En la mayor parte de las veces, la programación
dinámica obtiene soluciones con un avance en
reversa, desde el final de un problema hacia el
principio con lo que un problema grande y
engorroso se convierte en una serie de problemas
mas pequeños y mas tratables.
La programación dinámica resuelve un problema
relativamente complejo descomponiéndolo en
una serie de problemas mas sencillos.
El principio de optimalidad
establece el marco de referencia
unificador para los n –
subproblemas o n – etapas de
los problemas de programación
dinámica
NATURALEZA RECURSIVA EN
LOS CALCULOS DE LA PD
Los cálculos de la programación dinámica se hacen
recursivamente, en el sentido de que la solución óptima de un
subproblema se utiliza como una entrada para el siguiente
subproblema. Al momento de resolver el último subproblema, se
tendrá la solución óptima para todo el problema
Donde:
f = coeficientes conocidos
12
2 5
7 8 9
8 9 6
1 3 6 8
5
13
7
15
8
9
4 7
Se puede resolver el problema enumerando en forma
exhaustiva todas las rutas entre los nodos 1 y 8 (hay 7 rutas).
Sin embargo, en una red más grande, la enumeración
exhaustiva no es eficiente desde el punto de vista de los
cálculos
12
2 2 5 5
7 8 9
8 9 6
1 3 3 6 6 8
5
13
7
15 8
9
4 4 7 7
2 H
3
3
6
4 2
A C F J
3
4
4
3
I
4 3
1
D G 3
Denver
550 8
790 1030
790
540
940 Etapa 4
Día 0 660 1390 Día 4
San Antonio
770 9
510 1050
700 270 Etapa 3
Louisville Dallas Día 3
4 830 7
Etapa 1 Etapa 2
Día 1 Día 2
Solución
• La idea de avanzar en reversa quiere decir que
debemos comenzar por resolver un problema fácil que al
final nos ayude a resolver un problema complejo.
•Por lo tanto, empezando por encontrar la ruta mas corta
a Los Ángeles desde cada ciudad de donde solo hay 1
día de marcha, que son las ciudades de la etapa 4.
•A continuación usaremos esta información para
determinar la ruta mas corta a Los Ángeles desde cada
ciudad desde la cual haya solo 2 días de marcha, o sea,
las ciudades de la etapa 3
Solución
Para n=4
8 9 Menor Ciudad
5 6 7 Menor Ciudad
Para n=1
2 3 4 Menor Ciudad
1 2 5 8 10
Problema
2 8
3
3
6
4 2
1 3 6 10
3
4
4
3
9
4 3
1
4 7 3
5
Solución
12=2 46=1
13=4 47=5
14=3 58=1
25=7 59=3
26=4 68=6
27=6 69=3
35=3 78=3
36=2 79=3
37=4 810=3
45=4 910=4
Solución
Para n=4
10 Ciudad
8 3 10
9 4 10
Solución
Para n=3
8 9 Menor Ciudad
5 1+3=4 3+4=7 4 8
6 6+3=9 3+4=7 7 9
7 3+3=6 3+4=7 6 8
Solución
Para n=2
5 6 7 Menor Ciudad
2 7+4=11 4+7=11 6+6=12 11 5o6
Para n=1
2 3 4 Menor Ciudad
1 2+11=13 4+7=11 3+8=11 11 3o4
1 4 5 8 10
Problema General de Asignación de
Recursos
condiciones :
T
gt(xt) <= w
t=1
Para resolver la Ec.(6) con la programación
dinámica, definimos a ft(d) como el beneficio
máximo que se puede obtener de las
actividades t,t+1,…,T.
C1 (Xi – bi)
Costo de mantener un número de
Se puede incurrir en
trabajadores excesivo
dos tipos de costos en
la semana i
C2 (Xi – Xi-1)
x4 f5(x4) f 5* x5*
4 4+2*2=8 8 6
5 4+1*2=6 6 6
6 0 0 6*
n=4 b4=4;
f4(x3)=3(x4-4)+4+2(x4-x3)+f5(x4)
x3 f 4(x3) f 4* x 4*
X4=4 X4=5 X5=6
8 3(0)+0+8=8 3(1)+0+6=9 3(2)+0+0=6 6 6*
n=3 b3=8;
f3(x2)=C1(x3-8)+C2(x3-x2)+f4(x3)
x2 x3=8 f 3* x3*
7 3(0)+4+2(1)+6=12 12 8
8 3(0)+0+6=6 6 8*
n=2 b2=7;
f2(x1)=c1(x2-7)+c2(x2-x1)+f3(x2)
x0 = 0 Contratar 5 trabajadores.
x1 = 5 Contratar 3 trabajadores.
x2 = 8 Sin cambio.
x3 = 8 Despedir 2 trabajadores.
x4 = 6 Sin cambios.
PROBLEMA DEL REEMPLAZO EQUIPO
Cuando una máquina llega a cierta edad, se elevan sus costos
operacionales y de mantención, por lo que puede ser más
económico reemplazarla. Luego, hay que determinar la edad de
vida útil económica de la máquina
Beneficios
Conservar
Se pueden tomar 2 la máquina r(t) – c(t)
decisiones cada año
Reemplazar
la máquina s(t) – I
Etapas : i, son los años i = 1, 2, ……, n
Función Recursiva fi(t) Ingreso neto máximo para los años i, i+1, ……, n
Función Recursiva
6 6
K
5 5
K R
4 4 4
K R
Principio 3 R 3 3
K
K
2 R R
2 R 2 R 2
K K K
1 1 1 1 1
R R R Año de la
Decisión
2 3 4 5
Edad (t) Utilidad Costo de Operación Valor de Rescate
(años) r(t) $ c(t)$ s(t)$
0 20000 200
1 19000 600 80000
2 18500 1200 60000
3 17200 1500 50000
4 15500 1700 30000
5 14000 1800 10000
6 12200 2200 5000
Solución
Al finalizar el Cuarto año, las maquinas podrán tener 1,2,3
o 6 años.
t=1
t=2
Solución
t=3
t=6
Etapa i=4
t C R Decisión
6 4800 4800 R
Solución
Al finalizar el Tercer año, las maquinas podrán tener 1,2 o
5 años.
t=1
t=2
t=5
Etapa i=3
t C R Decisión
Etapa i=2
t C R Decisión
t=3
Etapa i=1
t C R Decisión
C t=2 C t=3 R
t=3 R t=1
R t=1 C t=2 C
a) R C C R b) R R C C
…Conservar
…Reemplazar
PROBLEMA DE VOLUMEN CARGA
Se definen:
Función Recursiva fi(Xi) - Utilidad máxima para los etapas i, i+1, ……, n
Función Recursiva
Reemplazando se llega a:
Función Recursiva
mi = { 0, 1, …., } W
wi
Xi = { 0, 1, ………., W }
PROBLEMA
Suponga que se ha de llenar una mochila de 10 libras
con los artículos que aparecen en tabla de abajo. Para
maximizar el beneficio total, ¿Cómo se debe llenar la
mochila?
PESO BENEFICIO
Artículo 1 4 lb 11
Artículo 2 3 lb 7
Artículo 3 5 lb 12
7(0) + f3(8) = 12 x2 = 0
7(0) + f3(8) = 12 x2 = 0
7(0) + f3(6) = 12 x2 = 0
7(0) + f3(4) = 0 x2 = 0
7(0) + f3(3) = 0 x2 = 0
11(0) + f2(8) = 24 x2 = 0
Sean:
D1 Di Dn
0 si Zi = 0
Ci(Zi)
Ki + pi(Zi) si Zi > 0
0 < Z1 < D1 + X2
El modelo supone Xn+1 = 0
Se observa que: Ii = Xi – Ii
Xi = Pi + qi-1,1Ii-1 + qi-1,2Ii-1
El objetivo es maximizar la
suma acumulada (Si) que
reportan las inversiones en Función Objetivo
ambos bancos al final del Máx Z = S1 + S2 + .… + Sn
año n
Función Objetivo Máx Z = S1 + S2 + .… + Sn
Dado j = ( 1 + rj ) j = 1, 2
se tiene Si = Ii 1
(n+1-i)
+ (Xi – Ii) 2
(n+1-i)
Si = ( 1
(n+1-i)
– 2 )Ii + Xi
(n+1-i)
2
(n+1-i)
1 0.018 0.018+0.005=0.023
2 0.017 0.022
Bonificación 3 0.026
0.021
4 0.025 0.030
n=4
p1 = $4000
p2 = p3 = p4 = $2000
Estado F4(x4) I4
X4 1.108x4 0
f3(x3) = max { S3 + f4(x4) }
0 ≤ I3 ≤ x3
n=3
=> I3= 0
n=2
como 0 ≤ I2 ≤ x2
I1 = x1 = $4000 → banco 1
I2 = x2 = $2072 → banco 1
I3 = 0 x3 = $2035.22 → banco 2
I4 = 0 x4 = $2052.92 → banco 2
PROGRAMACION DINAMICA
PROBABILISTICA
La programación dinámica probabilística difiere de la
programación dinámica determinística en que las condiciones y
resultados en cada etapa son probabilísticas
P3
0 < Yi < Xi
El objetivo es maximizar los fondos
esperados para los años i, i+1, ….., n
Además fn+1(Xn+1) = Xn+1
m
fn(Xn) = Máx { pk Xn+1) }
k=1
m
fn(Xn) = Máx {
k=1
p k (Xn + rkYn) }
m m
fn(Xn) = Xn(
k=1
p k +
k=1
pr) k k
Retorno después
Inversión Probabilidad
de la Inversión
-1 0,4
A
1 0,6
B 0 0,9
1 0,1
Se pide hallar la política de inversión que
maximice la probabilidad de tener a lo
menos $2 al final después del último año