R 53430
R 53430
R 53430
PROGRAMACIN DINMICA
La programacin dinmica es una tcnica que se utiliza para resolver diversos problemas de optimizacin. Esta tcnica llega a la solucin trabajando hacia atrs partiendo del final del problema hacia el principio, por lo que un problema enorme e inmanejable se convierte en una serie de problemas ms pequeos y manejables.
Naturaleza recursiva de la PD
Los clculos de programacin dinmica se hacen en
forma recursiva, ya que la solucin ptima de un subproblema se usa como dato para el siguiente subproblema. Para cuando se resuelve el ltimo subproblema queda a la mano la solucin ptima de todo el problema. La forma en la que se hacen los clculos recursivos dependen de cmo se descomponga el problema original. En particular, los subproblemas se vinculan normalmente mediante restricciones comunes.
Un problema de redes
Joe Cougar vive en Nueva York, pero quiere viajar en su
automvil 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 da a la vez y avanzar por etapas. Luego de 4 das de manejar Joe puede llegar finalmente a Los ngeles. Para minimizar la cantidad de millas recorridas, dnde debe Joe pasar cada noche del viaje?
Columbus
Kansas City
Denver 8
Nueva York 1
Nashville 3
Omaha 6
Los ngeles 10
San Antonio 9
Lousville
Dallas
puede estar al principio del n-simo da 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
Columbus
680
Kansas City
2
580
5
790
610
550
Denver 8
790
540
1030
Nueva York 1
Etapa 1
900
Nashville 3
760
Omaha 6
940
Los ngeles 10
1390 Etapa 5
660 770
790
San Antonio 9
Etapa 4 270
Lousville
Dallas
830
4
Etapa 2
7
Etapa 3
resolver un problema fcil que con el tiempo nos servir para resolver uno ms complejo. Empezamos por determinar la trayectoria ms corta a Los ngeles desde cada ciudad de dnde hay slo un da de viaje en automvil (ciudades de la etapa 4). Luego usamos esta informacin para encontrar el camino ms corto hasta Los ngeles desde cada ciudad donde hay 2 das de manejo (ciudades de la etapa 3). Con esta informacin ya somos capaces de hallar el camino ms corto desde cada ciudad que est a 3 das de viaje (ciudades de la etapa 2). Encontramos, por ltimo, la trayectoria ms corta a Los ngeles desde cada ciudad que est a 4 das de viaje (hay slo una: Nueva York).
Criterios bsicos
Con el fin de simplificar la exposicin usamos los
nmeros 1, 2, 3,, 10 dados en la figura para nombrar las 10 ciudades. Definimos tambin 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 ms corto desde la ciudad i hasta Los ngeles, dado que la ciudad i es una ciudad de la etapa t.
Columbus
680
Kansas City
2
580
5
790
610
550
Denver 8
790
540
1030
Nueva York 1
Etapa 1
900
Nashville 3
760
Omaha 6
940
Los ngeles 10
1390 Etapa 5
660 770
790
San Antonio 9
Etapa 4 270
Lousville
Dallas
830
4
Etapa 2
7
Etapa 3
Clculos de la Etapa 4
Determinamos el camino ms 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
Denver
8
1030
Los ngeles
10
1390 Etapa 5
San Antonio
9
Etapa 4
Clculos de la Etapa 3
Determinamos el camino ms corto desde
Kansas City 5
610
790
Denver
8
540 103 0
Determinar f3(6) C68 + f4(8) = 540 + 1030 = 1570 * (6-8-10) C69 + f4(9) = 940 + 1390 = 2330 Determinar f3(7) C78 + f4(8) = 790 + 1030 = 1820 C79 + f4(9) = 270 + 1390 = 1660 * (7-9-10)
Omaha 6
940 139 0
San Antonio
9
Los ngeles
E 10 5
790
E4 270
Dallas
7
E3
Clculos de la Etapa 2
Determinamos el camino ms corto
68 0 58 0
5
79 0 61 0
8
10 30
79 0
54 0 94 0
10
13 90 E5
Determinar f2(3) C35 + f3(5) = 580 + 1640 = 2220* (3-5-8-10) C36 + f3(6) = 750 + 1570 = 2330 C37 + f3(7) = 660 + 1660 = 2320 Determinar f2(4) C45 + f4(5) = 510 + 1640 = 2150* (4-5-8-10) C46 + f4(6) = 700 + 1570 = 2270 C47 + f4(7) = 830 + 1660 = 2490
10 50
79 0
9
27 0 E4
4
E2
7
E3
Clculos de la Etapa 1
Como ya conocemos f2(2), f2(3) y f2(4), podemos ir hacia atrs
una etapa ms para determinar f1(1) y, por lo tanto, el camino ms corto de la ciudad 1 a la 10. Obsrvese que el camino ms corto desde la c1 a la c10 debe empezar por ir a la ciudad 2, 3 a la 4. Esto significa que el camino ms 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 ms corto
desde la 2 hasta la 10. [C12 + f2(2) ] Camino 2. Ir desde la 1 hasta la 3, luego seguir el camino ms corto desde la 3 hasta la 10. [C13 + f2(3) ] Camino 3. Ir desde la 1 hasta la 4, luego seguir el camino ms corto desde la 4 hasta la 10. [C14 + f2(4) ]
Continuacin
Determinar f1(1): C12 + f2(2) = 550 + 2320 = 2870 C13 + f2(3) = 900 + 2220 = 3120 C14 + f2(4) = 770 + 2150 = 2920 Camino ptimo: 1-2-5-8-10
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
5
1 3 3
4
4
10
3 4 3
3 6 1
4
5