S1 – Programación Dinámica DeterminÃstica

14
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

Transcript of S1 – Programación Dinámica DeterminÃstica

Page 1: S1 – Programación Dinámica DeterminÃstica

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

Page 2: S1 – Programación Dinámica DeterminÃstica

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

Page 3: S1 – Programación Dinámica DeterminÃstica

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

Page 4: S1 – Programación Dinámica DeterminÃstica

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

Page 5: S1 – Programación Dinámica DeterminÃstica

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

Page 6: S1 – Programación Dinámica DeterminÃstica

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

Page 7: S1 – Programación Dinámica DeterminÃstica

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

Page 8: S1 – Programación Dinámica DeterminÃstica

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)

23

en

e2

00

7P

rog

ram

aci

ón

Din

ám

ica

D

ete

rmin

ista

8

Page 9: S1 – Programación Dinámica DeterminÃstica

Etapa 2

• Nodo D• Ruta AD: 7+2 = 19; Ruta BD: 8+8 = 16; Ruta CD: 5+7 =

12• Distancia más corta al nodo D = min{7+12,8+8,5+7} =

12 (desde el nodo C)

• Nodo E• Ruta BE: 8+9 = 17; Ruta CE: 5+13 = 18• Distancia más corta al nodo E = min{8+9,5+13} = 17

(desde el nodo B)

23

en

e2

00

7P

rog

ram

aci

ón

Din

ám

ica

D

ete

rmin

ista

9

Page 10: S1 – Programación Dinámica DeterminÃstica

Etapa 3• Nodo T

• Ruta DT: 12+9 = 21; Ruta ET: 17+6 = 23• Distancia más corta al nodo T = min{12+9,17+6} = 21 (desde el

nodo D) 23

en

e2

00

7P

rog

ram

aci

ón

Din

ám

ica

D

ete

rmin

ista

10

Page 11: S1 – Programación Dinámica DeterminÃstica

Ejercicio 2• Resuelva el problema anterior con recursión hacia atrás• Verifique que se obtiene el mismo resultado

23

en

e2

00

7P

rog

ram

aci

ón

Din

ám

ica

D

ete

rmin

ista

11

Page 12: S1 – Programación Dinámica DeterminÃstica

Ejercicio 3• Encuentre la ruta más corta entre O y T usando programación

dinámica con recursión hacia adelante suponiendo que se tiene la siguiente red

23

en

e2

00

7P

rog

ram

aci

ón

Din

ám

ica

D

ete

rmin

ista

12

O B

C E

DA

T

5

9

8

10

4

10

9

9

8

17

9

Page 13: S1 – Programación Dinámica DeterminÃstica

Tarea• Encuentre la ruta más corta entre O y T usando programación

dinámica con recursión hacia adelante suponiendo que se tiene la siguiente red

23

en

e2

00

7P

rog

ram

aci

ón

Din

ám

ica

D

ete

rmin

ista

13

O B

C H

GA

T

2

4

2 4

3

E

F

D46

7

4

23

5

14

1

4

6

3

3

3

Page 14: S1 – Programación Dinámica DeterminÃstica

Referencias

• Hillier, Frederick S. y Lieberman Gerald J. Introducción a la investigación de operaciones. McGraw-Hill Interamericana. 8ª edición. México, 2006.

• Optimization Partner. Dictionary of optimization. http://www.optimizationpartner.se/index.php?cid=38 Consultado el 22 de enero de 2007

• Taha, Hamdy A. Investigación de operaciones. Una introducción. Pearson Educación. 6ª edición. México, 1997

• Trick, Michael A. A tutorial on dynamic programming. http://mat.gsia.cmu.edu/classes/dynamic/dynamic.html Consultado el 22 de enero de 2007

23

en

e2

00

7P

rog

ram

aci

ón

Din

ám

ica

D

ete

rmin

ista

14