Está en la página 1de 29

Programacin Dinmica.

Lic. Mario Ninaquispe Soto

Objetivos
Discutir los principios Programacin Dinmica Entender y utilizar la utilizacin de la Programacin Dinmica para plantear problemas reales. la

Determinar la poltica ptima que produce el mejor retorno

Aplicar los conceptos de Programacin Dinmica para solucionar problemas reales en la industria.

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.

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. Cmo puedo yo (el primer jugador) estar seguro de ganar el juego?

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. Cmo puedo cumplir lo pedido?

La Programacin Dinmica es una tcnica matemtica til en la toma de una serie de decisiones interrelacionadas.
la de un con descomponindolo en , siendo cada etapa un subproblema de una sola variable.

Proporciona un procedimiento sistemtico para determinar la combinacin ptima de decisiones.


La condicin del proceso en una etapa dada es el estado en esa etapa. Cada decisin afecta la transicin del estado actual al estado asociado en la siguiente etapa

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.

MODELO CONCEPTUAL DE LA PROGRAMACIN DINMICA

MODELO DEL SISTEMA

Describe la forma en que un sistema evoluciona a causa de las decisiones tomadas Etapas Estados Variable de decisin
ESTRUCTURA DE COSTO

Describe como se acumulan los costos/beneficios conforme el sistema evoluciona


SOLUCIN APLICANDO EL PRINCIPIO DE OPTIMALIDAD

Trayectoria invertida: FIN INICIO

PROGRAMACIN DINMICA
Enfoque de programacin dinmica para problemas determinsticos en donde el estado en la siguiente etapa est completamente determinado por el estado y la poltica de decisin de la etapa actual.
Etapa n xn Estado:
Sn Sn+1

Etapa n+1

Valor:

fn (Sn , xn)

f*n+1 (s n+1)

Aplicaciones de la PD

La Programacin Dinmica se puede aplicar para solucionar problemas de gran complejidad presentes en los siguientes tpicos: Problema de Redes Problemas de Asignacin Problemas de Inventario Problema de la Mochila

EL PROBLEMA DE LA DILIGENCIA
El costo de la pliza estndar para el viaje en diligencia, del estado i al estado j, que se denota por cij, es

H B A 2 C 4 D 3 E F G 1 6 3

I 4 3 3

EL PROBLEMA DE LA DILIGENCIA

H A

I D G

EL PROBLEMA DE LA DILIGENCIA

f*3 (s3 , x3)= Min (c3 + f*4)


x3 S4 f*4 X*4 H I f*3(S) x*3

s3
E

EL PROBLEMA DE LA DILIGENCIA
f*2 (s2 , x2)= Min (c2 + f*3)
x2 s2 E F G f*2(S) x*2

EL PROBLEMA DE LA DILIGENCIA

f*1 (s1 , x1)= Min (c1 + f*2)


x1 B s1 C D f*1(S) x*1

Caso: Problema de red

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 2

Kansas City 5

Denver 8

Nueva York 1

Nashville 3

Omaha 6

Los ngeles 10

San Antonio 9

Lousville 4

Dallas 7

Solucin con PD

Se determinar yendo hacia atrs (Recursividad) Primero clasificamos todas las ciudades en la que Joe 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 2

680

Kansas City 5
580 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 1050

San Antonio 9
Etapa 4
270

510

700

Lousville 4
Etapa 2 830

Dallas 7
Etapa 3

Algoritmo para Recursividad

La idea de trabajar hacia atrs implica que debemos empezar por 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 2

680

Kansas City 5
580 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 1050

San Antonio 9
Etapa 4
270

510

700

Lousville 4
Etapa 2 830

Dallas 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:

Denver 8
1030

Los ngeles 10
1390 Etapa 5

f4(8) = 1030 f4(9) = 1390

San Antonio 9
Etapa 4

Clculos de la Etapa 3

Determinamos el camino ms corto desde cada ciudad de la etapa 3 hasta L. A. Determinar f3(5)

Kansas City 5

610 790

C58 + f4(8) = 610 + 1030 = 1640 * (5-8-10) C59 + f4(9) = 790 + 1390 = 2180
Omaha 6

Denver 8
540 103 0

Determinar f3(6)

C68 + f4(8) = 540 + 1030 = 1570 * (6-8-10) C69 + f4(9) = 940 + 1390 = 2330 C78 + f4(8) = 790 + 1030 = 1820 C79 + f4(9) = 270 + 1390 = 1660 * (7-9-10)

Los ngeles
940 139 0
San Antonio 9

E 10 5

Determinar f3(7)

790

E4 270

Dallas 7
E3

Clculos de la Etapa 2

Determinamos el camino ms corto desde cada ciudad de la etapa 2 hasta L. A. Determinar f2(2)

C25 + f3(5) = 680 + 1640 = 2320* (2-5-810) C26 + f3(6) = 790 + 1570 = 2360 C27 + f3(7) = 1050 + 1660 = 2710 C35 + f3(5) = 580 + 1640 = 2220* (3-5-810) C36 + f3(6) = 750 + 1570 = 2330 C37 + f3(7) = 660 + 1660 = 2320 C45 + f4(5) = 510 + 1640 = 2150* (4-5-810) C46 + f4(6) = 700 + 1570 = 2270 C47 + f4(7) = 830 + 1660 = 2490

68 0 58 0

5
79 0 61 0

8
10 30

Determinar f2(3)

76 0 66 0 51 0 70 0 83 0

79 0

54 0
94 0

10
13 90 E5

Determinar f2(4)

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

4 3
3 6

1
3

4
5

"Si planificas para un ao, siembra trigo. Si planificas para una dcada, planta rboles. Si planificas para una vida, educa personas" Kwan Tzu