25
1 Programación Dinámica Dr. Enrique F. Garza Escalante © Facultad de Ingeniería

Programacion Dinamica Intro

Embed Size (px)

Citation preview

Page 1: Programacion Dinamica Intro

1

Programación Dinámica

Dr. Enrique F. Garza Escalante ©Facultad de Ingeniería

Page 2: Programacion Dinamica Intro

2

Introducción

• Método de optimización para resolver problemas que involucran decisiones secuenciales. Una decisión tomada en una etapa afectará los estados del problema y las posibles decisiones en la etapa siguiente.

• No existe un formato estándar, sino más bien se trata de una forma general de resolver este tipo de problemas.

Page 3: Programacion Dinamica Intro

3

• Una serie de estados agrupados en etapas, de cada etapa a la siguiente ocurre una transformación la cual depende de mi decisión.

• 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.

Page 4: Programacion Dinamica Intro

4

Características básicas

• El problema se puede dividir en etapas, con una decisión xt que se debe tomar en cada etapa.

• Existe un cierto número de estados “s” asociados a cada etapa “t”, y la decisión 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 solución 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.

Page 5: Programacion Dinamica Intro

5

Principio de Optimalidad para Programación Dinámica

• Dado el estado actual, la decisión óptima para las etapas restantes, es independiente de las decisiones previamente tomadas. Por ello, sólo depende del estado actual y no de cómo llegamos a él.

Page 6: Programacion Dinamica Intro

6

• 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)=mínimo{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

Page 7: Programacion Dinamica Intro

7

• ¿Cómo difiere del algoritmo de Ruta más corta?• Programación Dinámica es una herramienta

para procesos de Etapas y en su búsqueda de un óptimo va generando rutas óptimas en cada Etapa, por ello es muy útil para análisis de sensibilidad

• En su versión estocástica, va más allá del modelado determinístico empleado en el caso de Ruta más corta

8

5

9

11

10

12

11

15

14

Page 8: Programacion Dinamica Intro

8

Ejemplo• Un ejemplo de la versatilidad de

empleo de esta herramienta la tenemos con el Ejemplo2 del capítulo 11 del texto de Hillier & Lieberman:

• La Organización Mundial de la Salud está tratando de decidir cuántos equipos médicos asignar a cada uno de tres países en desarrollo. El impacto del trabajo de los equipos incide en el incremento en expectativa de vida lo que se traduce en miles de años-persona de vida adicionales por país. Sólo se tienen 5 equipos y se tienen que mantener operando de manera íntegra. La tabla siguiente muestra el impacto asociado:

Equipos Médicos

1 2 3

0 0 0 0

1 45 20 50

2 70 45 70

3 90 75 80

4 105 110 100

5 120 150 130

País

Page 9: Programacion Dinamica Intro

95 5 5

4 4

3 3

2 2

1 1

0 0 0

0

45

70

90

105

120

150 110 75 45 20 0

0 0

50

70

80

100

130

Estado 1 2 3

20 0

125

165

50

95

70

170

Page 10: Programacion Dinamica Intro

10

Procesos Dinámicos de flujos de efectivo

• Existen procesos que requieren administración periódica. Los flujos futuros, aunque determinísticos, dependen de las decisiones tomadas en cada período.

Page 11: Programacion Dinamica Intro

11

Procesos Dinámicos de flujos de efectivo

• Este tipo de modelos se emplean en problemas de explotación de recursos no-renovables, ó donde existe un recurso limitante.

Page 12: Programacion Dinamica Intro

12

Procesos Dinámicos de flujos de efectivo

• La manera de visualizar estos problemas es representándolos gráficamente con árboles de decisión ó con mallas (“lattice”). Estas representaciones constan de nodos y arcos. Los nodos representan diferentes estados del sistema y están interconectados por arcos.

Page 13: Programacion Dinamica Intro

13

Procesos Dinámicos de flujos de efectivo

• Cada arco corresponde a una posible acción administrativa.

• Nosotros trabajaremos con árboles y mallas binomiales (dos arcos salen de cada nodo), pero se pueden construir con más arcos saliendo de cada nodo.

Page 14: Programacion Dinamica Intro

14

Arbol y malla de decisión

••

••

••

••

••

••

Arbol binomial Malla binomial

Nodos por nivel2^n vs. n+1

Page 15: Programacion Dinamica Intro

15

Arbol y malla de decisión

• El árbol de decisión 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.

Page 16: Programacion Dinamica Intro

16

Arbol y malla de decisión

• El tipo de decisiones que analizaremos consisten, típicamente, en llevar a cabo ó no una acción específica (Por ejemplo, pescar ó no; extraer petróleo ó no, etc). El realizar la acción ó no tendrá consecuencias en ingresos, egresos y estado del recurso limitante.

Page 17: Programacion Dinamica Intro

17

Arbol y malla de decisión

• 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 representación adecuada.

Page 18: Programacion Dinamica Intro

18

Información

• Típicamente los nodos contienen información sobre el estado del recurso (posiblemente más datos en caso de los árboles) y los arcos, la utilidad generada en el período (normalmente refleja la ganancia al inicio del nodo que emite).

Page 19: Programacion Dinamica Intro

19

Administración ó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 podría ser encontrar el valor presente para cada alternativa, pero si n=12, las alternativas son 8,191. Para n=24, son más de 16 millones!

Page 20: Programacion Dinamica Intro

20

Administración óptima

• Alternativamente podemos usar programación dinámica.

• La programación dinámica 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.

Page 21: Programacion Dinamica Intro

21

Administración ó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 descripción del problema.

Page 22: Programacion Dinamica Intro

22

Administración ó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 “n-1” para cada nodo en ese tiempo.

Page 23: Programacion Dinamica Intro

23

Administración óptima

• La decisión que nos queda es a que nodo dirigirnos en el tiempo “n” del nodo (n-1, i).

• Para cada arco “a” emanando del nodo (n-1, i) calculamos cuanto vale

annnan VDc ,,11

Page 24: Programacion Dinamica Intro

24

Administración óptima

• Donde es el flujo inmediato asociado al arco a y Vn,a es el valor presente en el nodo al 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 opción así:

anc 1

)( ,,11,1 annnan

ain VDcmaxV

Page 25: Programacion Dinamica Intro

25

Administración óptima

• Luego, regresamos un período adicional a “n-2” y repetimos el procedimiento, así sucesivamente hasta llegar al tiempo “0”. En general, el proceso recursivo está dado por:

)( ,11,,, akkkaik

aik VDcmaxV