Está en la página 1de 25

Programacin Dinmica

Dr. Enrique F. Garza Escalante Facultad de Ingeniera

Introduccin
Mtodo de optimizacin para resolver problemas que involucran decisiones secuenciales. Una decisin tomada en una etapa afectar los estados del problema y las posibles decisiones en la etapa siguiente. No existe un formato estndar, sino ms bien se trata de una forma general de resolver este tipo de problemas.

Una serie de estados agrupados en etapas, de cada etapa a la siguiente ocurre una transformacin la cual depende de mi decisin. Los posibles estados en cada etapa, si son finitos o enumerables, los puedo representar como Nodos. Las transformaciones que me llevan a cada estado posible en la siguiente etapa a partir de cada estado actual los puedo representar como arcos.
3

Caractersticas bsicas
El problema se puede dividir en etapas, con una decisin xt que se debe tomar en cada etapa. Existe un cierto nmero de estados s asociados a cada etapa t, y la decisin realizada en una etapa afecta el estado del sistema en la siguiente etapa. Iniciando con la ltima etapa, un sub-problema de una etapa puede ser resuelto dando las decisiones ptimas para cada estado en la ltima etapa. Pueden encontrarse relaciones recursivas que permiten la solucin de subproblemas de una etapa que sean empleadas para encontrar las soluciones a mayores y mayores subproblemas hasta que el ltimo subproblema es el problema original.
4

Principio de Optimalidad para Programacin Dinmica


Dado el estado actual, la decisin ptima para las etapas restantes, es independiente de las decisiones previamente tomadas. Por ello, slo depende del estado actual y no de cmo llegamos a l.

N=# de etapas (5 en el ejemplo), s= estado. Definimos fn(s)=costo de la ruta ptima para las etapas n a N dado que estamos en el estado s. Del ejemplo tenemos que f5(10)=2, f5(11)=4, f5(12)=2 fn(s,xn)=costo de ir de s a xn en la etapa n + costo de la ruta ptima para las etapas n+1 a N dado que llegamos a xn fn(s)=mnimo{fn(s,xn)=c(s,xn)+fn+1(xn)} sobre todos los s posibles. c(s,xn)=costo de ir del estado s al xx en la etapa n

Cmo difiere del algoritmo de Ruta ms corta? Programacin Dinmica es una herramienta para procesos de Etapas y en su bsqueda de un ptimo va generando rutas ptimas en cada Etapa, por ello es muy til para anlisis de sensibilidad En su versin estocstica, va ms all del modelado determinstico empleado en el caso de Ruta ms corta
12 9

8
14 11 11

5 15 10
7

Ejemplo
Un ejemplo de la versatilidad de empleo de esta herramienta la tenemos con el Ejemplo2 del captulo 11 del texto de Hillier & Lieberman: La Organizacin Mundial de la Salud est tratando de decidir cuntos equipos mdicos asignar a cada uno de tres pases en desarrollo. El impacto del trabajo de los equipos incide en el incremento en expectativa de vida lo que se traduce en miles de aos-persona de vida adicionales por pas. Slo se tienen 5 equipos y se tienen que mantener operando de manera ntegra. La tabla siguiente muestra el impacto asociado:
Pas
Equipos Mdicos 0 1 2 3 4 5 0 45 70 90 105 120 1 0 20 45 75 110 150 2 0 50 70 80 100 130 8 3

Estado 1

2 0 0

3 0 0 0

50
1

20 0

50
1 70 2

70
120 2

80

105 90

95
3 3

100

125
4
150 110 75 45

70
45 0

130

170
5

165
5

20 0

Procesos Dinmicos de flujos de efectivo


Existen procesos que requieren administracin peridica. Los flujos futuros, aunque determinsticos, dependen de las decisiones tomadas en cada perodo.

10

Procesos Dinmicos de flujos de efectivo


Este tipo de modelos se emplean en problemas de explotacin de recursos norenovables, donde existe un recurso limitante.

11

Procesos Dinmicos de flujos de efectivo


La manera de visualizar estos problemas es representndolos grficamente con rboles de decisin con mallas (lattice). Estas representaciones constan de nodos y arcos. Los nodos representan diferentes estados del sistema y estn interconectados por arcos.
12

Procesos Dinmicos de flujos de efectivo


Cada arco corresponde a una posible accin administrativa. Nosotros trabajaremos con rboles y mallas binomiales (dos arcos salen de cada nodo), pero se pueden construir con ms arcos saliendo de cada nodo.

13

Arbol y malla de decisin


Nodos por nivel 2^n vs. n+1

Arbol binomial

Malla binomial

14

Arbol y malla de decisin


El rbol de decisin permite incorporar diferencias a diferentes rutas para llegar a un mismo estado final del recurso limitante, mientras que la malla supone que los caminos para llegar al mismo nodo final son enteramente equivalentes.

15

Arbol y malla de decisin


El tipo de decisiones que analizaremos consisten, tpicamente, en llevar a cabo no una accin especfica (Por ejemplo, pescar no; extraer petrleo no, etc). El realizar la accin no tendr consecuencias en ingresos, egresos y estado del recurso limitante.

16

Arbol y malla de decisin


Si distintos caminos conducen al mismo estado del recurso limitante y este estado es caracterizado por una sola utilidad (ingreso - egreso), entonces una malla ser la representacin adecuada.

17

Informacin
Tpicamente los nodos contienen informacin sobre el estado del recurso (posiblemente ms datos en caso de los rboles) y los arcos, la utilidad generada en el perodo (normalmente refleja la ganancia al inicio del nodo que emite).

18

Administracin ptima
Cada camino, en el caso de un rbol determina una posible alternativa (de un total de 2^(n+1) -1 alternativas posibles). La estrategia podra ser encontrar el valor presente para cada alternativa, pero si n=12, las alternativas son 8,191. Para n=24, son ms de 16 millones!

19

Administracin ptima
Alternativamente podemos usar programacin dinmica. La programacin dinmica implica emplear los valores presentes de manera recursiva. As tendremos que Vki representar el mejor valor presente recursivo en el nodo i en el tiempo k.

20

Administracin ptima
Los valores en los nodos finales tiempo n representan los valores terminales del proyecto bajo cada alternativa (por ejemplo valores de rescate de equipo empleado), y son parte de la descripcin del problema.

21

Administracin ptima
La siguiente etapa consiste en analizar los nodos en el tiempo inmediato anterior n-1 Para cualquier nodo en el tiempo n-1 suponemos que ya estamos ah y ahora trataremos de hacer lo mejor posible en el futuro. Maximizar nuestro VPN en n1 para cada nodo en ese tiempo.
22

Administracin ptima
La decisin que nos queda es a que nodo dirigirnos en el tiempo n del nodo (n-1, i). Para cada arco a emanando del nodo (n1, i) calculamos cuanto vale

a n 1

Dn1,nVn,a
23

Administracin ptima

a Donde c es el flujo inmediato asociado al n 1 arco a y V es el valor presente en el nodo al


n,a

que el arco a lleva (que incluye cualquier flujo que se derive en ese momento de haber tomado el arco a). Luego elegimos la mejor opcin as:

Vn1,i max(c
a

a n 1

Dn1,nVn,a )
24

Administracin ptima
Luego, regresamos un perodo adicional a n-2 y repetimos el procedimiento, as sucesivamente hasta llegar al tiempo 0. En general, el proceso recursivo est dado por:

Vk ,i max(c
a

a k ,i

Dk ,k 1Vk 1,a )
25