28
S1 – Programación Dinámica Determinista Ing. en Sistemas Computacionales Modelos Probabilísticos Paul Ramírez De la Cruz 23 ene 2007

S1 _ Programación Dinámica Determinística

Embed Size (px)

Citation preview

Page 1: S1 _ Programación Dinámica Determinística

S1 – Programación Dinámica Determinista

Ing. en Sistemas ComputacionalesModelos ProbabilísticosPaul Ramírez De la Cruz23 ene 2007

Page 2: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 2

Contenido

Introducción Ejemplo prototipo Referencias

Page 3: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 3

Introducción

La investigación de operaciones es un área de las matemáticas surgida durante la Segunda Guerra Mundial

La investigación de operaciones se refiere al diseño y aplicación de modelos matemáticos con el fin de obtener la mejor solución posible a un problema, dadas ciertas limitaciones de recursos

La programación dinámica es un método de investigación de operaciones que permite resolver un problema de n variables dividiéndolo en n problemas de una variable cada uno

La solución particular de cada etapa depende del contexto, por lo que no hay un modelo general para programación dinámica

La solución óptima de cada etapa se utiliza como variable de entrada de la etapa siguiente

Page 4: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 4

Ejemplo prototipo

Supongamos que una corporación tiene un presupuesto de $5 millones para hacer ampliaciones en tres de sus plantas

Cada planta tiene varias propuestas de inversión, junto con su costo de expansión (c) y el retorno (beneficio) total esperado (r)

  Planta 1 Planta 2 Planta 3

Pro-pues-

ta c1 r1 c2 r2 c3 r3

1 0 0 0 0 0 0

2 1 5 2 8 1 4

3 2 6 3 9 - -

4 - - 4 12 - -

Page 5: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 5

Ejemplo prototipo

Supongamos que a cada planta se le permitirá realizar una de sus propuestas

El objetivo es maximizar el beneficio de la compañía al invertir los $5 millones por completo

Una forma poco eficiente de realizar la selección de la propuesta adecuada para cada planta es realizar un análisis exhaustivo

En esta situación, habrá 3(4)(2) = 24 combinaciones posibles Algunas no son factibles, por ejemplo: (3,3,2) requiere de

una inversión de $6 millones Otras son factibles, pero con un beneficio bajo, por

ejemplo: (1,1,2) produce un retorno de sólo $4 millones

Page 6: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 6

Ejemplo prototipo

Otras dificultades que enfrentar: Si se tiene un problema con muchas más

opciones, el análisis exhaustivo se hace aún más ineficiente

La información obtenida de combinaciones examinadas previamente no se utiliza para eliminar nuevas combinaciones que sean peores o infactibles

El problema no se puede formular como programación lineal, porque el beneficio obtenido no es una función lineal de la inversión

Page 7: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 7

Planteamiento

Dividamos el problema en tres etapas, cada una de las cuales representa el dinero que se asigna a una sola planta Etapa 1: Dinero asignado a la planta 1 Etapa 2: Dinero asignado a las plantas 1 y 2 Etapa 3: Dinero asignado a las plantas 1, 2 y 3 En este caso la numeración de las etapas es arbitraria

Observemos que cada etapa tiene un conjunto de estados que puede asumir: {0,1,2,3,4,5}: La cantidad de dinero gastada en la planta 1, x1 {0,1,2,3,4,5}: La cantidad de dinero gastada en las plantas 1 y 2,

x2 {5}: La cantidad de dinero gastada en las plantas 1, 2 y 3

(porque se debe gastar todo), x3

Page 8: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 8

Planteamiento

Notemos que a diferencia de la programación lineal, aquí las xi, son una representación de los posibles estados de cada etapa

Cada estado tiene asociado un beneficio Observemos también que a fin de tomar

una decisión en la tercera etapa, sólo requerimos conocer cuánto se gastó en las dos etapas previas y no cómo se gastó

Page 9: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 9

Planteamiento

Determinemos el beneficio asociado con cada estado

Comenzando con la primera planta: Si el capital disponible, x1, es

de cero, entonces la propuesta que maximiza el beneficio para dicho capital es la propuesta uno, y el beneficio en la etapa uno será de cero

Si el capital disponible, x1, es de uno, entonces la propuesta que maximiza el beneficio para dicho capital es la propuesta dos, y el beneficio en la etapa uno será de cinco…

Prosiguiendo así, tenemos:

Si el capital disponible,

x1, es

Entonces la propuesta óptima es

Y el beneficio

por la etapa uno es

0 1 0

1 2 5

2 3 6

3 3 6

4 3 6

5 3 6

Page 10: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 10

Planteamiento

Ahora realicemos los cálculos para la etapa 2 Supongamos que deseamos calcular la mejor asignación

para cuando x2 = 4 La propuesta 1 de la etapa 2 da un beneficio de 0; como se

requiere de una asignación de 0, quedan 4 para la etapa 1, la cual a su vez proporciona 6. Beneficio total: 6

La propuesta 2 da un beneficio de 8, quedan 2 para la etapa 1, la cual a su vez proporciona 6. Beneficio total: 14

La propuesta 3 da un beneficio de 9, queda 1 para la etapa 1, que a su vez da 5. Beneficio total: 14

La propuesta 4 da un beneficio de 12, lo cual deja 0 para la etapa 1, que da un beneficio de 0. Beneficio total: 12

Viendo las opciones anteriores, la mejor propuesta es (etapa 1,etapa 2) = (3,2) o (2,3), lo cual da un beneficio total de 14

Page 11: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 11

Planteamiento

Si el capital disponible, x2, es

Entonces la propuesta óptima es

Y el beneficio por las etapas 1 y 2 es

0 1 0

1 1 5

2 2 8

3 2 13

4 2 o 3 14

5 4 17

Page 12: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 12

Planteamiento

Ahora vayamos a la etapa 3. Como debemos asignar toda la inversión, debe ocurrir que x3 = 5

La propuesta 1 de la etapa 3 da un beneficio de 0; como tiene costo de 0, quedan 5 para las etapas 1 y 2, entonces la opción a tomar en la etapa 2 es la 4, que da un beneficio acumulado de 17 para las etapas 1 y 2. Beneficio total: 17

La propuesta 2 da un beneficio de 4, deja 4 para las etapas 1 y 2, por lo cual la mejor propuesta para estas dos es la 2 o la 3, lo cual da un beneficio acumulado de 14 para las etapas 1 y 2. Beneficio total: 18

Notemos que los cálculos se hacen de forma recursiva: para calcular la etapa 3 se usa la etapa 2, y esta a su vez se resuelve usando la solución de la etapa 1

Page 13: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 13

Principio de optimalidad

Las futuras decisiones para las etapas restantes constituirán una política óptima, sin importar cuál haya sido la política adoptada en las etapas previas

Page 14: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 14

Ejercicio

Repita el ejemplo anterior,

Suponga que la corporación tiene un presupuesto de $6 millones para hacer ampliaciones en tres de sus plantas

  Planta 1 Planta 2 Planta 3

Pro-pues-

ta c1 r1 c2 r2 c3 r3

1 0 0 0 0 0 0

2 1 6 2 4 1 5

3 2 5 3 6 - -

4 - - 4 8 - -

Page 15: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 15

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

Page 16: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 16

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

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 17: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 17

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

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 18: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 18

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

O B

C E

D

A

T

7

8

5

12

8

9

7

13

6

9

Page 19: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 19

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: 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 20: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 20

Ejemplo 2

Fórmulas recursivas hacia atrás

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 21: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 21

Etapas

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 22: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 22

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)

Page 23: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 23

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)

Page 24: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 24

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)

Page 25: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 25

Ejercicio 2

Resuelva el problema anterior con recursión hacia atrás

Verifique que se obtiene el mismo resultado

Page 26: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 26

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

O B

C E

DA

T

5

9

8

10

4

10

9

9

8

17

9

Page 27: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 27

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

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 28: S1 _ Programación Dinámica Determinística

23ene2007 Programación Dinámica Determinista 28

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