Sunteți pe pagina 1din 19

UNIVERSIDAD NACIONAL DE TRUJILLO

Programacin Dinmica
INTRODUCCION

ELEMENTOS DE UN PROBLEMA DE PROGRAMACION DINAMICA EJEMPLO PROTOTIPO DE PROGRAMACION DINAMICA

PROGRAMACION DINAMICA INTRODUCCION


Temas
Programacin Dinmica Programacin Dinmica Determinstica Naturaleza Recursiva de la PD Una forma razonable y comnmente empleada de resolver un problema es definir o caracterizar su solucin en trminos de las soluciones de subproblemas del mismo.

La programacin dinmica encuentra la solucin ptima de un problema con n variables, descomponindolo en n etapas, siendo cada etapa un subproblema de una sola variable.
A diferencia de la programacin lineal, el modelado de problemas de programacin dinmica no sigue una forma estndar. Principio de optimalidad: Dado el estado actual, la decisin ptima para cada una de las etapas restantes no tiene que depender de los estados ya alcanzados o de las decisiones tomadas previamente.

PROGRAMACION DINAMICA INTRODUCCION


Temas
Programacin Dinmica Programacin Dinmica Determinstica Naturaleza Recursiva de la PD

En este tipo de programacin dinmica, el estado de la siguiente etapa est determinado por completo por el estado y la poltica de decisin de la etapa actual. El caso probabilstico es en el cual existe una distribucin de probabilidad del valor posible del siguiente estado.

PROGRAMACION DINAMICA INTRODUCCION


Temas
Programacin Dinmica Programacin Dinmica Determinstica 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 se obtiene la solucin ptima de todo el problema. Al pasar de un subproblema al siguiente se debe mantener la factibilidad de esas restricciones comunes. Se usa la recursin en avance, cuando los clculos se hacen de la primera etapa a la ltima etapa; y se usa la recursin en reversa, cuando los clculos se hacen de la ltima etapa a la primera etapa. Con las recursiones en avance y en reversa se obtiene la misma solucin. Se usa la recursin en reversa porque, en general, es ms eficiente desde el punto de vista computacional.

UNIVERSIDAD NACIONAL DE TRUJILLO

Programacin Dinmica
INTRODUCCION

ELEMENTOS DE UN PROBLEMA DE PROGRAMACION DINAMICA EJEMPLO PROTOTIPO DE PROGRAMACION DINAMICA

PROGRAMACION DINAMICA ELEMENTOS DE UN PROBLEMA DE PROGRAMACION DINAMICA


Elemento
Etapa (n)

Estado (sn)

n=1

n=2

n=3

n=4

Variable de decisin (xn)


Evolucin del sistema

Funcin recurrente (fn)


Es el perodo de tiempo, lugar, fase o situacin en donde se produce un cambio debido a una decisin (xn).

PROGRAMACION DINAMICA ELEMENTOS DE UN PROBLEMA DE PROGRAMACION DINAMICA


Elemento
Etapa (n)

Estado (sn)

n=1 s1

n=2 s2

n=3 s3

n=4 s4

Variable de decisin (xn)


Evolucin del sistema

Funcin recurrente (fn)


Muestra la situacin actual de cada etapa. Informacin que enlaza las etapas, de tal modo que se puedan tomar las decisiones. Tambin se puede decir que es la informacin que se necesita en cualquier etapa para tomar una decisin ptima.

PROGRAMACION DINAMICA ELEMENTOS DE UN PROBLEMA DE PROGRAMACION DINAMICA


Elemento
Etapa (n)

Estado (sn)

n=1 s1
x1

n=2 s2
x2

n=3 s3
x3

n=4 s4
x4

Variable de decisin (xn)


Evolucin del sistema

Funcin recurrente (fn)


Hacen referencia a toma decisiones (o poltica decisin) que se producen una etapa y que produce cambio en el estado actual sistema. de de en un del

PROGRAMACION DINAMICA ELEMENTOS DE UN PROBLEMA DE PROGRAMACION DINAMICA


Elemento
Etapa (n)

Estado (sn)

n=1 s1
x1

n=2 s2
x2

n=3 s3
x3

n=4 s4
x4 f4(s4 ,, x4)) f4(s4 x4

Variable de decisin (xn)


Evolucin del sistema f2(s2 , x2) f1(s1 , x1) f3(s3 , x3)

Funcin recurrente (fn)


Refleja el comportamiento del sistema en funcin de los estados y de las variables de decisin. Relaciona el costo o la contribucin ganada durante alguna etapa con el costo o la contribucin ganada en la etapa posterior de forma acumulativa.

PROGRAMACION DINAMICA ELEMENTOS DE UN PROBLEMA DE PROGRAMACION DINAMICA


Tomar en cuenta: En la etapa n, el proceso se encuentra en algn estado sn. Al tomar la decisin xn se mueve a algn estado sn+1 en la etapa n+1, etapa en la que se habra contribuido con fn*+1(sn+1), que incluye las contribuciones de las etapas siguientes; al acumular esta cantidad con la contribucin actual (por ejemplo la contribucin inmediata csnxn) a la funcin objetivo se tiene a fn(sn , xn) como la contribucin de la etapa n en adelante. Dados sn y n, sea xn* el mejor valor entre todos los que pueda adoptar xn al calcular su propio fn(sn , xn), y sea fn*(sn) el valor mnimo correspondiente a todos los fn(sn, xn). Entonces: fn*(sn) = min fn(sn , xn) = fn(sn , xn*) donde: fn(sn , xn) = costo mnimo inmediato (etapa n) + costo futuro mnimo (etapas n+1 en adelante) fn(sn , xn) = csnxn + fn*+1(sn+1) Los valores de csnxn son los incurridos al establecer sn como estado actual y xn como destino. Seleccionando el valor ptimo a la variable xn* y determinando la contribucin total a la funcin recursiva fn*(sn), el procedimiento de solucin se mueve atrs una etapa.

UNIVERSIDAD NACIONAL DE TRUJILLO

Programacin Dinmica
INTRODUCCION

ELEMENTOS DE UN PROBLEMA DE PROGRAMACION DINAMICA EJEMPLO PROTOTIPO DE PROGRAMACION DINAMICA

PROGRAMACION DINAMICA EJEMPLO PROTOTIPO DE PROGRAMACION DINAMICA


Problema
Enunciado Anlisis Etapa 4 Etapa 3
A
2 3 4 6 2 4 3 4 3 1 3 5

Tomando en cuenta el siguiente sistema de caminos, si se encuentra inicialmente en el nodo A, encontrar la trayectoria ms econmica para llegar al nodo J considerando que los valores que se encuentran en las ramas representan los costos de trasladarse de un nodo a otro.

B
4 6

E
1 4

H
3

F
3 4

J I

Etapa 2 Etapa 1 Interpretacin

PROGRAMACION DINAMICA EJEMPLO PROTOTIPO DE PROGRAMACION DINAMICA


Problema
Enunciado Anlisis Etapa 4 Estado: Etapa 3 Etapa 2 Etapa 1 Interpretacin Ruta a seleccionar: sn : lugar donde se encuentra en la etapa n A x1 x2 x3 x4, donde x4 = J Si se tomara la decisin de ir por la ruta ms barata en cada etapa, sta sera: A B F I J con un costo total asociado de 13. Pero note que si desde el nodo A llegamos al nodo F mediante D, en lugar de ir por B el costo sera menor. El evaluar todas las posibles rutas y sus costos asociados sera una tarea tediosa. Mediante la programacin dinmica se puede hallar la solucin con mucho menor esfuerzo. Variables de decisin: xn : destino inmediato de la etapa n,

Como el destino final es J y se alcanza al terminar la etapa 4, entonces f5*(x4) = f5*(J) = 0 El objetivo es encontrar f1*(A) y la ruta correspondiente. La programacin dinmica la encuentra al determinar en forma sucesiva f4*(s4), f3*(s3), f2*(s2) y f1*(s1) Funcin recursiva: f4(s4 , x4)= cs4x4 + f5*(x4)

PROGRAMACION DINAMICA EJEMPLO PROTOTIPO DE PROGRAMACION DINAMICA


Problema
Enunciado Anlisis Etapa 4 Etapa 3 Etapa 2 Etapa 1 Interpretacin Cuando se est en la ltima etapa, el destino final es x4 = J y su estado actual s4 puede ser H o I , de manera que su ltimo tramo es desde s4 hacia J. Por lo tanto, f4*(s4) = f4(s4, J) = cs4J
B
4 6 2 3 6 2 4 3 4 1 3 3 5 4 7

E
1

H
3

F
3 4

J I

s4 H I

f4(s4 ,x4)= cs4x4 + f5*(x4) x4 = J 3 4

Solucin ptima f4*(s4) x4* 3 J 4 J

PROGRAMACION DINAMICA EJEMPLO PROTOTIPO DE PROGRAMACION DINAMICA


Problema
B
4

E
1 4

Enunciado Anlisis Etapa 4 Etapa 3 Etapa 2 Etapa 1 Interpretacin

6 2 3

H
3 6 2 4

F
3 4

J I

3 4 1 3 3 5

s3 E F G

f3(s3 ,x3)= cs3x3 + f4*(x3) x3 = H x3 = I 1+3=4 4+4=8 6+3=9 3+4=7 3+3=6 3+4=7

Solucin ptima f3*(s3) x3* 4 H 7 I 6 H

PROGRAMACION DINAMICA EJEMPLO PROTOTIPO DE PROGRAMACION DINAMICA


Problema
B
4

E
1 4

Enunciado Anlisis Etapa 4 Etapa 3 Etapa 2 Etapa 1 Interpretacin

6 2 3

H
3 6 2 4

F
3 4

J I

3 4 1 3 3 5

s2 B C D

f2(s2 ,x2)= cs2x2 + f3*(x2) x2 =E x2 =F x2 =G 7+4=11 4+7=11 6+6=12 3+4=7 2+7=9 4+6=10 4+4=8 1+7=8 5+6=11

Solucin ptima f2*(s2) x2* 11 EoF 7 E 8 EoF

PROGRAMACION DINAMICA EJEMPLO PROTOTIPO DE PROGRAMACION DINAMICA


Problema
B
4

E
1 4

Enunciado Anlisis Etapa 4 Etapa 3 Etapa 2 Etapa 1 Interpretacin

6 2 3

H
3 6 2 4

F
3 4

J I

3 4 1 3 3 5

s1 A

f1(s1 ,x1)= cs1x1 + f2*(x1) x1 =B x1 =C x1 =D 2+11=13 4+7=11 3+8=11

Solucin ptima f1*(s1) x1* 11 CoD

PROGRAMACION DINAMICA EJEMPLO PROTOTIPO DE PROGRAMACION DINAMICA


Problema
Enunciado Anlisis Etapa 4 Etapa 3 Etapa 2 Etapa 1 Interpretacin Costo total =11 Ruta1: A-C-E-H-J Ruta2: A-D-E-H-J Ruta3: A-D-F-I-J

s4 H I s3 E F G s2 B C D s1 A

x4 J J x3 H I H x2 EoF E EoF x1 CoD

UNIVERSIDAD NACIONAL DE TRUJILLO

Programacin Dinmica
INTRODUCCION

ELEMENTOS DE UN PROBLEMA DE PROGRAMACION DINAMICA EJEMPLO PROTOTIPO DE PROGRAMACION DINAMICA

S-ar putea să vă placă și