Programacion Dinamica Intro
Transcript of Programacion Dinamica Intro
1
Programación Dinámica
Dr. Enrique F. Garza Escalante ©Facultad de Ingeniería
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.
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.
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.
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.
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
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
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
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
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.
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.
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.
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.
14
Arbol y malla de decisión
•
•
••
•
•
••
•
••
••
••
•
•
•
•
••
•
•
•
•
•
•
•
Arbol binomial Malla binomial
Nodos por nivel2^n vs. n+1
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.
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.
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.
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).
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!
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.
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.
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.
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
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
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