La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

PROGRAMACIÓN DINÁMICA DETERMINISTA Lic. Mario Iván Cruz Chin Septiembre, 2009.

Presentaciones similares


Presentación del tema: "PROGRAMACIÓN DINÁMICA DETERMINISTA Lic. Mario Iván Cruz Chin Septiembre, 2009."— Transcripción de la presentación:

1 PROGRAMACIÓN DINÁMICA DETERMINISTA Lic. Mario Iván Cruz Chin Septiembre, 2009

2 PROGRAMACIÓN DINÁMICA La programación dinámica es una técnica que se utiliza para resolver diversos problemas de optimización. Esta técnica llega a la solución trabajando hacia atrás partiendo del final del problema hacia el principio, por lo que un problema enorme e inmanejable se convierte en una serie de problemas más pequeños y manejables.

3 Dos Acertijos para entender la PD Acertijo de las cerillas: Suponga que hay 30 cerillas sobre una mesa. Yo empiezo eligiendo 1, 2 ó 3 cerillas. Luego mi contrincante debe tomar 1, 2 ó 3 cerillas. Así continuamos hasta que alguno de los jugadores toma la última cerilla. Este jugador es el que pierde. ¿Cómo puedo yo (el primer jugador) estar seguro de ganar el juego?

4 Dos Acertijos para entender la PD Acertijo de las tazas de leche Tengo una taza de 9 onzas y otra de 4 onzas. Mi madre me pidió traer a casa exactamente 6 onzas de leche. ¿Cómo puedo cumplir lo pedido?

5 Naturaleza recursiva de la PD Los cálculos de programación dinámica se hacen en forma recursiva, ya que la solución óptima de un subproblema se usa como dato para el siguiente subproblema. Para cuando se resuelve el último subproblema queda a la mano la solución óptima de todo el problema. La forma en la que se hacen los cálculos recursivos dependen de cómo se descomponga el problema original. En particular, los subproblemas se vinculan normalmente mediante restricciones comunes.

6 Un problema de redes… Joe Cougar vive en Nueva York, pero quiere viajar en su automóvil hasta Los Ángeles en busca de fama y fortuna. Los fondos de Joe son limitados, así que decide pasar cada noche de su viaje en la casa de un amigo. Joe tiene amigos en cada ciudad. Joe sabe que puede viajar un día a la vez y avanzar por etapas. Luego de 4 días de manejar Joe puede llegar finalmente a Los Ángeles. Para minimizar la cantidad de millas recorridas, ¿dónde debe Joe pasar cada noche del viaje?

7 Nueva York 1 Omaha 6 Kansas City 5 Lousville 4 Nashville 3 Columbus 2 Dallas 7 San Antonio 9 Denver 8 Los Ángeles 10

8 Solución con programación dinámica Se determinará yendo hacia atrás (Recursividad) Primero clasificamos todas las ciudades en la que Joe puede estar al principio del n-ésimo día de su viaje como ciudades de la etapa n. Etapa 1: Nueva York Etapa 2: Columbus, Nashville, Louisville Etapa 3: Kansas City, Omaha, Dallas Etapa 4: Denver, San Antonio Etapa 5: Los Ángeles

9 Los Ángeles 10 Nueva York 1 Omaha 6 Kansas City 5 Lousville 4 Nashville 3 Columbus 2 Dallas 7 San Antonio 9 Denver Etapa 5 Etapa 4 Etapa 3Etapa 2 Etapa 1

10 Algoritmo para Recursividad La idea de trabajar hacia atrás implica que debemos empezar por resolver un problema fácil que con el tiempo nos servirá para resolver uno más complejo. Empezamos por determinar la trayectoria más corta a Los Ángeles desde cada ciudad de dónde hay sólo un día de viaje en automóvil (ciudades de la etapa 4). Luego usamos esta información para encontrar el camino más corto hasta Los Ángeles desde cada ciudad donde hay 2 días de manejo (ciudades de la etapa 3). Con esta información ya somos capaces de hallar el camino más corto desde cada ciudad que esté a 3 días de viaje (ciudades de la etapa 2). Encontramos, por último, la trayectoria más corta a Los Ángeles desde cada ciudad que está a 4 días de viaje (hay sólo una: Nueva York).

11 Criterios básicos Con el fin de simplificar la exposición usamos los números 1, 2, 3,…, 10 dados en la figura para nombrar las 10 ciudades. Definimos también c ij como las millas entre la ciudad i y la ciudad j. Por ejemplo, c 35 = 580 son las millas entre Nashville y Kansas City. Hacemos f t (i) la distancia del camino más corto desde la ciudad i hasta Los Ángeles, dado que la ciudad i es una ciudad de la etapa t.

12 Nueva York 1 Omaha 6 Kansas City 5 Lousville 4 Nashville 3 Columbus 2 Dallas 7 San Antonio 9 Denver 8 Los Ángeles Etapa 5 Etapa 4 Etapa 3Etapa 2 Etapa 1

13 Cálculos de la Etapa 4 Determinamos el camino más corto desde cada ciudad de la etapa 4 hasta L. A. Como hay un solo camino desde cada ciudad, observamos que: f 4 (8) = 1030 f 4 (9) = 1390 San Antonio 9 Denver 8 Los Ángeles Etapa 5 Etapa 4

14 Cálculos de la Etapa 3 Determinamos el camino más corto desde cada ciudad de la etapa 3 hasta L. A. Determinar f 3 (5) C 58 + f 4 (8) = = 1640 * (5-8-10) C 59 + f 4 (9) = = 2180 Determinar f 3 (6) C 68 + f 4 (8) = = 1570 * (6-8-10) C 69 + f 4 (9) = = 2330 Determinar f 3 (7) C 78 + f 4 (8) = = 1820 C 79 + f 4 (9) = = 1660 * (7-9-10) Omaha 6 Kansas City 5 Dallas 7 San Antonio 9 Denver 8 Los Ángeles E 5 E 4 E 3

15 Cálculos de la Etapa 2 Determinamos el camino más corto desde cada ciudad de la etapa 2 hasta L. A. Determinar f 2 (2) C 25 + f 3 (5) = = 2320* ( ) C 26 + f 3 (6) = = 2360 C 27 + f 3 (7) = = 2710 Determinar f 2 (3) C 35 + f 3 (5) = = 2220* ( ) C 36 + f 3 (6) = = 2330 C 37 + f 3 (7) = = 2320 Determinar f 2 (4) C 45 + f 4 (5) = = 2150* ( ) C 46 + f 4 (6) = = 2270 C 47 + f 4 (7) = = E5 E4 E3 E2

16 Cálculos de la Etapa 1 Como ya conocemos f 2 (2), f 2 (3) y f 2 (4), podemos ir hacia atrás una etapa más para determinar f 1 (1) y, por lo tanto, el camino más corto de la ciudad 1 a la 10. Obsérvese que el camino más corto desde la c1 a la c10 debe empezar por ir a la ciudad 2, 3 ó a la 4. Esto significa que el camino más corto desde la c1 hasta la c10 tiene que ser uno de los siguientes: Camino 1. Ir desde la 1 hasta la 2, luego seguir el camino más corto desde la 2 hasta la 10. [C 12 + f 2 (2) ] Camino 2. Ir desde la 1 hasta la 3, luego seguir el camino más corto desde la 3 hasta la 10. [C 13 + f 2 (3) ] Camino 3. Ir desde la 1 hasta la 4, luego seguir el camino más corto desde la 4 hasta la 10. [C 14 + f 2 (4) ]

17 Continuación… Determinar f 1 (1): C 12 + f 2 (2) = = 2870 C 13 + f 2 (3) = = 3120 C 14 + f 2 (4) = = 2920 Camino óptimo: Desde Nueva York hasta Los Ángeles pasará por: Nueva York, Columbus, Kansas City, Denver y Los Ángeles. Este camino tiene una distancia de f 1 (1) = 2780 millas

18

19


Descargar ppt "PROGRAMACIÓN DINÁMICA DETERMINISTA Lic. Mario Iván Cruz Chin Septiembre, 2009."

Presentaciones similares


Anuncios Google