You are on page 1of 28

S1 Programacin Dinmica Determinista

Ing. en Sistemas Computacionales Modelos Probabilsticos Paul Ramrez De la Cruz 23 ene 2007

Contenido

Introduccin Ejemplo prototipo Referencias

23ene2007

Programacin Dinmica Determinista

Introduccin

La investigacin de operaciones es un rea de las matemticas surgida durante la Segunda Guerra Mundial La investigacin de operaciones se refiere al diseo y aplicacin de modelos matemticos con el fin de obtener la mejor solucin posible a un problema, dadas ciertas limitaciones de recursos La programacin dinmica es un mtodo de investigacin de operaciones que permite resolver un problema de n variables dividindolo en n problemas de una variable cada uno La solucin particular de cada etapa depende del contexto, por lo que no hay un modelo general para programacin dinmica La solucin ptima de cada etapa se utiliza como variable de entrada de la etapa siguiente

23ene2007

Programacin Dinmica Determinista

Ejemplo prototipo

Supongamos que una corporacin tiene un presupuesto de $5 millones para hacer ampliaciones en tres de sus plantas Cada planta tiene varias propuestas de inversin, junto con su costo de expansin (c) y el retorno (beneficio) total esperado (r)

Planta 1 Propuesta

Planta 2

Planta 3

c1 0 1 2 -

r1 0 5 6 -

c2 0 2 3 4

r2 0 8 9 12

c3 0 1 -

r3 0 4 4

1 2 3 4

23ene2007

Programacin Dinmica Determinista

Ejemplo prototipo

Supongamos que a cada planta se le permitir realizar una de sus propuestas El objetivo es maximizar el beneficio de la compaa al invertir los $5 millones por completo Una forma poco eficiente de realizar la seleccin de la propuesta adecuada para cada planta es realizar un anlisis exhaustivo En esta situacin, habr 3(4)(2) = 24 combinaciones posibles

Algunas no son factibles, por ejemplo: (3,3,2) requiere de una inversin de $6 millones Otras son factibles, pero con un beneficio bajo, por ejemplo: (1,1,2) produce un retorno de slo $4 millones
Programacin Dinmica Determinista 5

23ene2007

Ejemplo prototipo

Otras dificultades que enfrentar:

Si se tiene un problema con muchas ms opciones, el anlisis exhaustivo se hace an ms ineficiente La informacin obtenida de combinaciones examinadas previamente no se utiliza para eliminar nuevas combinaciones que sean peores o infactibles El problema no se puede formular como programacin lineal, porque el beneficio obtenido no es una funcin lineal de la inversin
Programacin Dinmica Determinista 6

23ene2007

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 numeracin 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

23ene2007

Programacin Dinmica Determinista

Planteamiento

Notemos que a diferencia de la programacin lineal, aqu las xi, son una representacin de los posibles estados de cada etapa Cada estado tiene asociado un beneficio Observemos tambin que a fin de tomar una decisin en la tercera etapa, slo requerimos conocer cunto se gast en las dos etapas previas y no cmo se gast
Programacin Dinmica Determinista 8

23ene2007

Planteamiento

Determinemos el beneficio asociado con cada estado Comenzando con la primera planta:

Si el capital disponible, x1, es

Entonces la propuesta ptima es

Y el beneficio por la etapa uno es

23ene2007

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:

0 1 2 3 4 5

1 2 3 3 3 3

0 5 6 6 6 6
9

Programacin Dinmica Determinista

Planteamiento

Ahora realicemos los clculos para la etapa 2 Supongamos que deseamos calcular la mejor asignacin para cuando x2 = 4 La propuesta 1 de la etapa 2 da un beneficio de 0; como se requiere de una asignacin 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
Programacin Dinmica Determinista 10

23ene2007

Planteamiento
Si el capital disponible, x2, es
0 1 2

Entonces la Y el beneficio por propuesta ptima es las etapas 1 y 2 es


1 1 2 0 5 8

3
4 5
23ene2007

2
2o3 4
Programacin Dinmica Determinista

13
14 17
11

Planteamiento

Ahora vayamos a la etapa 3. Como debemos asignar toda la inversin, 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 opcin 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 clculos se hacen de forma recursiva: para calcular la etapa 3 se usa la etapa 2, y esta a su vez se resuelve usando la solucin de la etapa 1

23ene2007

Programacin Dinmica Determinista

12

Principio de optimalidad

Las futuras decisiones para las etapas restantes constituirn una poltica ptima, sin importar cul haya sido la poltica adoptada en las etapas previas

23ene2007

Programacin Dinmica Determinista

13

Ejercicio

Repita el ejemplo anterior, Suponga que la corporacin tiene un presupuesto de $6 millones para hacer ampliaciones en tres de sus plantas

Planta 1 Propuesta

Planta 2

Planta 3

c1 0 1 2 -

r1 0 6 5 -

c2 0 2 3 4

r2 0 4 6 8

c3 0 1 -

r3 0 5 14

1 2 3 4

23ene2007

Programacin Dinmica Determinista

Caractersticas comunes de los problemas de programacin dinmica


El problema original de n variables de decisin se puede dividir en n etapas con una decisin por tomar en cada etapa Cada etapa tiene un nmero de estados asociado a ella La decisin tomada en una etapa conduce a cierto estado en la etapa siguiente (anterior) Dado el estado actual, la decisin ptima para cada uno de los estados restantes no depende de las decisiones o etapas previos Existe una relacin recursiva que identifica la decisin ptima para la etapa i, dado que la etapa i-1 (recursin hacia delante) o i+1 (recursin hacia atrs) ha sido resuelta La etapa final (inicial) debe ser resoluble sin hacer referencia a las siguientes

23ene2007

Programacin Dinmica Determinista

15

Frmulas recursivas hacia delante

Denotemos por rij al beneficio por la propuesta j en la etapa i y al costo correspondiente por cij Sea fi xi el beneficio obtenido en la etapa i, suponiendo que se est en el estado xi , entonces f1 x1 max r1 j y
fi xi max rij fi 1 xi cij ; i 2,3
cij xi

c1 j x1

23ene2007

Programacin Dinmica Determinista

16

Frmulas recursivas hacia atrs

Sean rij y cij como antes Sea yi el beneficio ptimo obtenido en las etapas 1, 2,, i Sea fi yi el beneficio obtenido en la etapa i, suponiendo que se est en el estado y i , entonces f 3 y3 max r3 j
c3 j y3

fi yi max rij fi 1 yi cij ; i 2,3


cij yi
23ene2007 Programacin Dinmica Determinista 17

Ejemplo 2

Suponga que se desea seleccionar la ruta ms corta entre las ciudades O y T La red a continuacin muestra las rutas posibles entre ambas ciudades, las cuales cruzan por las ciudades intermedias A-E

A 7 8 O B

12 8 9 7 C 13 E D 9 T

23ene2007

Programacin Dinmica Determinista

18

Ejemplo 2

fi xi
23ene2007

Utilizando programacin dinmica 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 frmulas recursivas hacia delante: f0 x0 0
rutas xi1 , xi

min

d x

i 1

, xi fi 1 xi 1 ; i 1, 2,3

Programacin Dinmica Determinista

19

Ejemplo 2

Frmulas recursivas hacia atrs


f4 x4 0

fi xi

rutas xi , xi1

min

d x , x f x ;
i i 1 i 1 i 1

i 1, 2,3

23ene2007

Programacin Dinmica Determinista

20

Etapas
f0 = 0 7 8 O 5 5 C 5 C 7 13 17 E f1 = 7 A 8 B f1 = 7 A 8 B 9 17 6 E T 12 8 D D 9 f2 = 12 f2 = 12 f3 = 21

23ene2007

Programacin Dinmica Determinista

21

Etapa 1

Nodo A

Distancia ms corta al nodo A = 7 (desde el nodo O) Distancia ms corta al nodo B = 8 (desde el nodo O) Distancia ms corta al nodo C = 5 (desde el nodo O)
Programacin Dinmica Determinista 22

Nodo B

Nodo C

23ene2007

Etapa 2

Nodo D

Ruta AD: 7+2 = 19; Ruta BD: 8+8 = 16; Ruta CD: 5+7 = 12 Distancia ms corta al nodo D = min{7+12,8+8,5+7} = 12 (desde el nodo C) Ruta BE: 8+9 = 17; Ruta CE: 5+13 = 18 Distancia ms corta al nodo E = min{8+9,5+13} = 17 (desde el nodo B)
Programacin Dinmica Determinista 23

Nodo E

23ene2007

Etapa 3

Nodo T

Ruta DT: 12+9 = 21; Ruta ET: 17+6 = 23 Distancia ms corta al nodo T = min{12+9,17+6} = 21 (desde el nodo D)

23ene2007

Programacin Dinmica Determinista

24

Ejercicio 2

Resuelva el problema anterior con recursin hacia atrs Verifique que se obtiene el mismo resultado

23ene2007

Programacin Dinmica Determinista

25

Ejercicio 3

Encuentre la ruta ms corta entre O y T usando programacin dinmica con recursin hacia adelante suponiendo que se tiene la siguiente red
10 A D

17
5 O 8 9 C
23ene2007

4 B 10

8 T 9 E
26

Programacin Dinmica Determinista

Tarea

Encuentre la ruta ms corta entre O y T usando programacin dinmica con recursin hacia adelante suponiendo que se tiene la siguiente red
A 6 2 3 B 4 2 C 4 1 5 F 3 H
27

7 4 D 4 6 2 E 3 4 3 3 T 1 G

23ene2007

Programacin Dinmica Determinista

Referencias

Hillier, Frederick S. y Lieberman Gerald J. Introduccin a la investigacin de operaciones. McGraw-Hill Interamericana. 8 edicin. Mxico, 2006. Optimization Partner. Dictionary of optimization. http://www.optimizationpartner.se/index.php?cid=38 Consultado el 22 de enero de 2007 Taha, Hamdy A. Investigacin de operaciones. Una introduccin. Pearson Educacin. 6 edicin. Mxico, 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

23ene2007

Programacin Dinmica Determinista

28

You might also like