Características comunes de los problemas de programación dinámica • El problema original de n variables de decisión se puede dividir en n etapas con una decisión por tomar en cada etapa • Cada etapa tiene un número de estados asociado a ella • La decisión tomada en una etapa conduce a cierto estado en la etapa siguiente (anterior) • Dado el estado actual, la decisión óptima para cada uno de los estados restantes no depende de las decisiones o etapas previos • Existe una relación recursiva que identifica la decisión óptima para la etapa i, dado que la etapa i-1 (recursión hacia delante) o i+1 (recursión hacia atrás) ha sido resuelta • La etapa final (inicial) debe ser resoluble sin hacer referencia a las siguientes 23ene2007 Programación Dinámica Determinista 1
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Características comunes de los problemas de programación dinámica• El problema original de n variables de decisión se puede dividir en n
etapas con una decisión por tomar en cada etapa• Cada etapa tiene un número de estados asociado a ella• La decisión tomada en una etapa conduce a cierto estado en la
etapa siguiente (anterior)• Dado el estado actual, la decisión óptima para cada uno de los
estados restantes no depende de las decisiones o etapas previos• Existe una relación recursiva que identifica la decisión óptima para
la etapa i, dado que la etapa i-1 (recursión hacia delante) o i+1 (recursión hacia atrás) ha sido resuelta
• La etapa final (inicial) debe ser resoluble sin hacer referencia a las siguientes
23
en
e2
00
7P
rog
ram
aci
ón
Din
ám
ica
D
ete
rmin
ista
1
Fórmulas recursivas hacia delante• Denotemos por al beneficio por la propuesta j en la etapa i y
al costo correspondiente por • Sea el beneficio obtenido en la etapa i, suponiendo que se
está en el estado , entonces y 23
en
e2
00
7P
rog
ram
aci
ón
Din
ám
ica
D
ete
rmin
ista
2
ijr
ijc
i if x
ix 1 1
1 1 1maxj
jc x
f x r
1max ; 2,3ij i
i i ij i i ijc x
f x r f x c i
Fórmulas recursivas hacia atrás
• Sean y como antes• Sea yi el beneficio óptimo obtenido en las etapas
1, 2,…, i• Sea el beneficio obtenido en la etapa i,
suponiendo que se está en el estado , entonces
23
en
e2
00
7P
rog
ram
aci
ón
Din
ám
ica
D
ete
rmin
ista
3
ijr ijc
i if yiy
3 3
3 3 3maxj
jc y
f y r
1max ; 2,3ij i
i i ij i i ijc y
f y r f y c i
Ejemplo 2• Suponga que se desea
seleccionar la ruta más corta entre las ciudades O y T
• La red a continuación muestra las rutas posibles entre ambas ciudades, las cuales cruzan por las ciudades intermedias A-E
23
en
e2
00
7P
rog
ram
aci
ón
Din
ám
ica
D
ete
rmin
ista
4
O B
C E
D
A
T
7
8
5
12
8
9
7
13
6
9
Ejemplo 2
• Utilizando programación dinámica podemos dividir el problema en tres etapas
• La red siguiente muestra las etapas 1, 2 y 3 en que se ha dividido el problema
• Definimos las fórmulas recursivas hacia delante:
23
en
e2
00
7P
rog
ram
aci
ón
Din
ám
ica
D
ete
rmin
ista
5
0 0 0f x
1
1 1 1,min , ; 1,2,3
i ii i i i i irutas x xf x d x x f x i
Ejemplo 2• Fórmulas recursivas hacia atrás
23
en
e2
00
7P
rog
ram
aci
ón
Din
ám
ica
D
ete
rmin
ista
6
4 4 0f x
1
1 1 1,min , ; 1,2,3
i ii i i i i irutas x xf x d x x f x i
Etapas
23
en
e2
00
7P
rog
ram
aci
ón
Din
ám
ica
D
ete
rmin
ista
7
O B
C
A7
8
5
E
D
T
6
9
B
C E
D
A 12
8
9
7
13
f1 = 7 f3 = 21
17
f2 = 12
8
5
f1 = 7
8
5 17
f2 = 12f0 = 0
Etapa 1
• Nodo A• Distancia más corta al nodo A = 7 (desde el nodo O)
• Nodo B• Distancia más corta al nodo B = 8 (desde el nodo O)
• Nodo C• Distancia más corta al nodo C = 5 (desde el nodo O)