La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

INVESTIGACIÓN DE OPERACIONES II

Presentaciones similares


Presentación del tema: "INVESTIGACIÓN DE OPERACIONES II"— Transcripción de la presentación:

1 INVESTIGACIÓN DE OPERACIONES II
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 Columbus 2 Kansas City 5 Denver 8 Nueva York 1 Nashville 3 Omaha 6 Los Ángeles 10 San Antonio 9 Lousville 4 Dallas 7

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 8 550 900 760 770 580 680 660 830 700 510 790 1050 270 540 940 610 1030 1390 Etapa 5 Etapa 4 Etapa 3 Etapa 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 cij como las millas entre la ciudad i y la ciudad j. Por ejemplo, c35 = 580 son las millas entre Nashville y Kansas City. Hacemos ft(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 Columbus 2 Kansas City 5 Denver 8 Nueva York 1 Nashville 3 Omaha 6
680 610 580 790 Denver 8 550 1030 540 790 Nueva York 1 Nashville 3 Omaha 6 Los Ángeles 10 900 760 940 Etapa 1 1390 Etapa 5 660 San Antonio 9 770 790 510 1050 700 Etapa 4 270 Lousville 4 Dallas 7 830 Etapa 2 Etapa 3

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: f4(8) = 1030 f4(9) = 1390 San Antonio 9 Denver 8 Los Ángeles 10 1030 1390 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 f3(5) C58 + f4(8) = = 1640 * (5-8-10) C59 + f4(9) = = 2180 Determinar f3(6) C68 + f4(8) = = 1570 * (6-8-10) C69 + f4(9) = = 2330 Determinar f3(7) C78 + f4(8) = = 1820 C79 + f4(9) = = 1660 * (7-9-10) Omaha 6 Kansas City 5 Dallas 7 San Antonio 9 Denver 8 Los Ángeles 10 270 790 540 940 610 1030 1390 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 f2(2) C25 + f3(5) = = 2320* ( ) C26 + f3(6) = = 2360 C27 + f3(7) = = 2710 Determinar f2(3) C35 + f3(5) = = 2220* ( ) C36 + f3(6) = = 2330 C37 + f3(7) = = 2320 Determinar f2(4) C45 + f4(5) = = 2150* ( ) C46 + f4(6) = = 2270 C47 + f4(7) = = 2490 6 5 4 3 2 7 9 8 10 760 580 680 660 830 700 510 790 1050 270 540 940 610 1030 1390 E5 E4 E3 E2

16 Cálculos de la Etapa 1 Como ya conocemos f2(2), f2(3) y f2(4), podemos ir hacia atrás una etapa más para determinar f1(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. [C12 + f2(2) ] Camino 2. Ir desde la 1 hasta la 3, luego seguir el camino más corto desde la 3 hasta la 10. [C13 + f2(3) ] Camino 3. Ir desde la 1 hasta la 4, luego seguir el camino más corto desde la 4 hasta la 10. [C14 + f2(4) ]

17 Continuación… Determinar f1(1): Camino óptimo: 1-2-5-8-10
C12 + f2(2) = = 2870 C13 + f2(3) = = 3120 C14 + f2(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 f1(1) = 2780 millas

18

19 1 6 5 4 3 2 7 9 8 10


Descargar ppt "INVESTIGACIÓN DE OPERACIONES II"

Presentaciones similares


Anuncios Google