Sie sind auf Seite 1von 4

PROGRAMACIN DINMICA DETERMINSTICA

INTRODUCCIN A LA PROGRAMACIN DINMICA 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. Esta idea proporciona mtodos eficientes de solucin para problemas en los que los subproblemas son versiones ms pequeas del problema original. La programacin dinmica es til para resolver un problema donde se deben tomar una serie de decisiones interrelacionadas. 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. Conviene resaltar que a diferencia de la programacin lineal, el modelado de problemas de programacin dinmica no sigue una forma estndar. As, para cada problema ser necesario especificar cada uno de los componentes que caracterizan un problema de programacin dinmica. La solucin de problemas mediante esta tcnica se basa en el llamado principio de optimalidad que establece la idea de que 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. Esta tcnica llega a una 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. La programacin dinmica se utiliza tanto en problemas lineales como no lineales.

PROGRAMACIN DINMICA DETERMINSTICA 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. Se analizar posteriormente.

NATURALEZA RECURSIVA DE LA PROGRAMACIN DINMICA 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. La forma en la que se hacen los clculos recursivos depende de cmo se descomponga el problema original. En particular, los subproblemas se vinculan normalmente mediante restricciones comunes. Al pasar de un subproblema al siguiente se debe mantener la factibilidad de esas restricciones comunes.

RECURSIN EN AVANCE Y EN REVERSA 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. Aunque el procedimiento en avance parece ms lgico, en las publicaciones sobre programacin dinmica se usa la recursin en reversa. La razn de esta preferencia es que, en general, la recursin en reversa es ms eficiente desde el punto de vista computacional.

ELEMENTOS DE UN PROBLEMA DE PROGRAMACIN DINMICA ETAPA (n) Es el perodo de tiempo, lugar, fase o situacin en donde se produce un cambio debido a una decisin (xn). ESTADO (sn) Muestra la situacin actual del sistema cuando nos encontramos en la etapa n. En la terminologa de la programacin dinmica, a sn se le llama estado del sistema en la etapa n. De hecho, se considera que el estado del sistema en la etapa n es la informacin que enlaza, conecta o vincula las etapas, de tal modo que se puedan tomar las decisiones para las etapas restantes sin volver a examinar cmo se lleg a las decisiones de las etapas anteriores. Tambin se puede decir que por estado se quiere dar a entender la informacin que se necesita en cualquier etapa para tomar una decisin ptima. VARIABLES DE DECISIN (xn) Hacen referencia a toma de decisiones (o poltica de decisin) que se producen en una etapa y que produce un cambio en el estado actual del sistema. FUNCIN RECURRENTE (fn) Refleja el comportamiento del sistema en funcin de los estados y de las variables de decisin: fn(sn, xn). La recursin relaciona el costo o la contribucin ganada durante alguna etapa con el costo o la contribucin ganada en la etapa posterior de forma acumulativa.

La programacin dinmica se puede describir en un diagrama como el siguiente: n=1 n=2 n=3 n=4

s1

x1

s2

x2

s3

x3

s4
f4(s4 , x4)

x4

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

N n sn xn xn*

= nmero de etapas = etiqueta de la etapa actual (n = 1, 2, N) = estado actual de la etapa n = variable de decisin de la etapa n = valor ptimo de xn (dado sn)

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 valores 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) = csnxn + fn*+1(sn+1) Los valores de csnxn son los incurridos al establecer sn el estado actual y xn el destino inmediato. Seleccionando el valor ptimo a la variable xn* y determinando la contribucin total a la funcin objetivo fn*(sn), el procedimiento de solucin se mueve atrs una etapa.

CARACTERSTICAS DE UN PROBLEMA DE PROGRAMACIN DINMICA Para que un problema pueda ser resuelto con la tcnica de programacin dinmica, debe cumplir con ciertas caractersticas: o o o o o El problema puede ser dividido en etapas, cada una de las cuales requiere de una poltica de decisin. Cada etapa se relaciona con una cierta cantidad de etapas. Cada etapa tiene cierto nmero de estados asociados con su inicio. La decisin ptima de cada etapa depende solo del estado actual y no de las decisiones anteriores. La decisin o poltica de decisin tomada en una etapa determina el modo en que el estado de la etapa actual se transforma en el estado de la etapa siguiente.

EJEMPLO PROTOTIPO DE PROGRAMACIN DINMICA El siguiente problema se elabor especialmente para ilustrar las caractersticas de la programacin dinmica e introducir la terminologa empleada en sta. (Pudiera relacionrselo con el modelo de red de la ruta ms corta, pero en realidad es ste el que utiliza la filosofa de la programacin dinmica)
B
7 4 6 2 3 6 2 4 3 4 1 3 3 5 4

E
1

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.

H
3

F
3 4

J I

Solucin: 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: Estado: Ruta a seleccionar: xn : destino inmediato de la etapa n, donde: (n = 1, 2, 3, 4) sn : lugar donde se encuentra en la etapa n A x1 x2 x3 x4, donde x4 = J

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)= cs x + f5*(x4)
4 4

Etapa 4: 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
s4 H I f4(s4 ,x4)= cs4x4 + f5*(x4) x4 = J J J Solucin ptima f4*(s4) x4* 3 J 4 J

Etapa 3:
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

s3 E F G

Etapa 2:
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

s2 B C D

Etapa 1:
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

s1 A

Interpretacin: Costo total =11 Ruta1: A-C-E-H-J, Ruta2: A-D-E-H-J, Ruta3: A-D-F-I-J

Das könnte Ihnen auch gefallen