S1 – Programación Dinámica DeterminÃstica

Post on 25-Oct-2014

105 views 0 download

Tags:

Transcript of 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

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)

23

en

e2

00

7P

rog

ram

aci

ón

Din

ám

ica

D

ete

rmin

ista

8

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

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

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

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

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

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