Post on 14-Aug-2015
S1 – Programación Dinámica Determinista
Ing. en Sistemas ComputacionalesModelos ProbabilísticosPaul Ramírez De la Cruz23 ene 2007
23ene2007 Programación Dinámica Determinista 2
Contenido
Introducción Ejemplo prototipo Referencias
23ene2007 Programación Dinámica Determinista 3
Introducción
La investigación de operaciones es un área de las matemáticas surgida durante la Segunda Guerra Mundial
La investigación de operaciones se refiere al diseño y aplicación de modelos matemáticos con el fin de obtener la mejor solución posible a un problema, dadas ciertas limitaciones de recursos
La programación dinámica es un método de investigación de operaciones que permite resolver un problema de n variables dividiéndolo en n problemas de una variable cada uno
La solución particular de cada etapa depende del contexto, por lo que no hay un modelo general para programación dinámica
La solución óptima de cada etapa se utiliza como variable de entrada de la etapa siguiente
23ene2007 Programación Dinámica Determinista 4
Ejemplo prototipo
Supongamos que una corporación tiene un presupuesto de $5 millones para hacer ampliaciones en tres de sus plantas
Cada planta tiene varias propuestas de inversión, junto con su costo de expansión (c) y el retorno (beneficio) total esperado (r)
Planta 1 Planta 2 Planta 3
Pro-pues-
ta c1 r1 c2 r2 c3 r3
1 0 0 0 0 0 0
2 1 5 2 8 1 4
3 2 6 3 9 - -
4 - - 4 12 - -
23ene2007 Programación Dinámica Determinista 5
Ejemplo prototipo
Supongamos que a cada planta se le permitirá realizar una de sus propuestas
El objetivo es maximizar el beneficio de la compañía al invertir los $5 millones por completo
Una forma poco eficiente de realizar la selección de la propuesta adecuada para cada planta es realizar un análisis exhaustivo
En esta situación, habrá 3(4)(2) = 24 combinaciones posibles Algunas no son factibles, por ejemplo: (3,3,2) requiere de
una inversión de $6 millones Otras son factibles, pero con un beneficio bajo, por
ejemplo: (1,1,2) produce un retorno de sólo $4 millones
23ene2007 Programación Dinámica Determinista 6
Ejemplo prototipo
Otras dificultades que enfrentar: Si se tiene un problema con muchas más
opciones, el análisis exhaustivo se hace aún más ineficiente
La información obtenida de combinaciones examinadas previamente no se utiliza para eliminar nuevas combinaciones que sean peores o infactibles
El problema no se puede formular como programación lineal, porque el beneficio obtenido no es una función lineal de la inversión
23ene2007 Programación Dinámica Determinista 7
Planteamiento
Dividamos el problema en tres etapas, cada una de las cuales representa el dinero que se asigna a una sola planta Etapa 1: Dinero asignado a la planta 1 Etapa 2: Dinero asignado a las plantas 1 y 2 Etapa 3: Dinero asignado a las plantas 1, 2 y 3 En este caso la numeración de las etapas es arbitraria
Observemos que cada etapa tiene un conjunto de estados que puede asumir: {0,1,2,3,4,5}: La cantidad de dinero gastada en la planta 1, x1 {0,1,2,3,4,5}: La cantidad de dinero gastada en las plantas 1 y 2,
x2 {5}: La cantidad de dinero gastada en las plantas 1, 2 y 3
(porque se debe gastar todo), x3
23ene2007 Programación Dinámica Determinista 8
Planteamiento
Notemos que a diferencia de la programación lineal, aquí las xi, son una representación de los posibles estados de cada etapa
Cada estado tiene asociado un beneficio Observemos también que a fin de tomar
una decisión en la tercera etapa, sólo requerimos conocer cuánto se gastó en las dos etapas previas y no cómo se gastó
23ene2007 Programación Dinámica Determinista 9
Planteamiento
Determinemos el beneficio asociado con cada estado
Comenzando con la primera planta: Si el capital disponible, x1, es
de cero, entonces la propuesta que maximiza el beneficio para dicho capital es la propuesta uno, y el beneficio en la etapa uno será de cero
Si el capital disponible, x1, es de uno, entonces la propuesta que maximiza el beneficio para dicho capital es la propuesta dos, y el beneficio en la etapa uno será de cinco…
Prosiguiendo así, tenemos:
Si el capital disponible,
x1, es
Entonces la propuesta óptima es
Y el beneficio
por la etapa uno es
0 1 0
1 2 5
2 3 6
3 3 6
4 3 6
5 3 6
23ene2007 Programación Dinámica Determinista 10
Planteamiento
Ahora realicemos los cálculos para la etapa 2 Supongamos que deseamos calcular la mejor asignación
para cuando x2 = 4 La propuesta 1 de la etapa 2 da un beneficio de 0; como se
requiere de una asignación de 0, quedan 4 para la etapa 1, la cual a su vez proporciona 6. Beneficio total: 6
La propuesta 2 da un beneficio de 8, quedan 2 para la etapa 1, la cual a su vez proporciona 6. Beneficio total: 14
La propuesta 3 da un beneficio de 9, queda 1 para la etapa 1, que a su vez da 5. Beneficio total: 14
La propuesta 4 da un beneficio de 12, lo cual deja 0 para la etapa 1, que da un beneficio de 0. Beneficio total: 12
Viendo las opciones anteriores, la mejor propuesta es (etapa 1,etapa 2) = (3,2) o (2,3), lo cual da un beneficio total de 14
23ene2007 Programación Dinámica Determinista 11
Planteamiento
Si el capital disponible, x2, es
Entonces la propuesta óptima es
Y el beneficio por las etapas 1 y 2 es
0 1 0
1 1 5
2 2 8
3 2 13
4 2 o 3 14
5 4 17
23ene2007 Programación Dinámica Determinista 12
Planteamiento
Ahora vayamos a la etapa 3. Como debemos asignar toda la inversión, debe ocurrir que x3 = 5
La propuesta 1 de la etapa 3 da un beneficio de 0; como tiene costo de 0, quedan 5 para las etapas 1 y 2, entonces la opción a tomar en la etapa 2 es la 4, que da un beneficio acumulado de 17 para las etapas 1 y 2. Beneficio total: 17
La propuesta 2 da un beneficio de 4, deja 4 para las etapas 1 y 2, por lo cual la mejor propuesta para estas dos es la 2 o la 3, lo cual da un beneficio acumulado de 14 para las etapas 1 y 2. Beneficio total: 18
Notemos que los cálculos se hacen de forma recursiva: para calcular la etapa 3 se usa la etapa 2, y esta a su vez se resuelve usando la solución de la etapa 1
23ene2007 Programación Dinámica Determinista 13
Principio de optimalidad
Las futuras decisiones para las etapas restantes constituirán una política óptima, sin importar cuál haya sido la política adoptada en las etapas previas
23ene2007 Programación Dinámica Determinista 14
Ejercicio
Repita el ejemplo anterior,
Suponga que la corporación tiene un presupuesto de $6 millones para hacer ampliaciones en tres de sus plantas
Planta 1 Planta 2 Planta 3
Pro-pues-
ta c1 r1 c2 r2 c3 r3
1 0 0 0 0 0 0
2 1 6 2 4 1 5
3 2 5 3 6 - -
4 - - 4 8 - -
23ene2007 Programación Dinámica Determinista 15
Características comunes de los problemas de programación dinámica
El problema original de n variables de decisión se puede dividir en n etapas con una decisión por tomar en cada etapa
Cada etapa tiene un número de estados asociado a ella La decisión tomada en una etapa conduce a cierto estado en
la etapa siguiente (anterior) Dado el estado actual, la decisión óptima para cada uno de
los estados restantes no depende de las decisiones o etapas previos
Existe una relación recursiva que identifica la decisión óptima para la etapa i, dado que la etapa i-1 (recursión hacia delante) o i+1 (recursión hacia atrás) ha sido resuelta
La etapa final (inicial) debe ser resoluble sin hacer referencia a las siguientes
23ene2007 Programación Dinámica Determinista 16
Fórmulas recursivas hacia delante
Denotemos por al beneficio por la propuesta j en la etapa i y al costo correspondiente por
Sea el beneficio obtenido en la etapa i, suponiendo que se está en el estado , entonces y
ijr
ijc
i if x
ix 1 1
1 1 1maxj
jc x
f x r
1max ; 2,3ij i
i i ij i i ijc x
f x r f x c i
23ene2007 Programación Dinámica Determinista 17
Fórmulas recursivas hacia atrás
Sean y como antes Sea yi el beneficio óptimo obtenido en las
etapas 1, 2,…, i Sea el beneficio obtenido en la etapa i, suponiendo que se está en el estado , entonces
ijr ijc
i if yiy
3 3
3 3 3maxj
jc y
f y r
1max ; 2,3ij i
i i ij i i ijc y
f y r f y c i
23ene2007 Programación Dinámica Determinista 18
Ejemplo 2
Suponga que se desea seleccionar la ruta más corta entre las ciudades O y T
La red a continuación muestra las rutas posibles entre ambas ciudades, las cuales cruzan por las ciudades intermedias A-E
O B
C E
D
A
T
7
8
5
12
8
9
7
13
6
9
23ene2007 Programación Dinámica Determinista 19
Ejemplo 2
Utilizando programación dinámica podemos dividir el problema en tres etapas
La red siguiente muestra las etapas 1, 2 y 3 en que se ha dividido el problema
Definimos las fórmulas recursivas hacia delante: 0 0 0f x
1
1 1 1,min , ; 1,2,3
i ii i i i i irutas x xf x d x x f x i
23ene2007 Programación Dinámica Determinista 20
Ejemplo 2
Fórmulas recursivas hacia atrás
4 4 0f x
1
1 1 1,min , ; 1,2,3
i ii i i i i irutas x xf x d x x f x i
23ene2007 Programación Dinámica Determinista 21
Etapas
O B
C
A7
8
5
E
D
T
6
9
B
C E
D
A 12
8
9
7
13
f1 = 7 f3 = 21
17
f2 = 12
8
5
f1 = 7
8
5 17
f2 = 12f0 = 0
23ene2007 Programación Dinámica Determinista 22
Etapa 1
Nodo A Distancia más corta al nodo A = 7 (desde el
nodo O) Nodo B
Distancia más corta al nodo B = 8 (desde el nodo O)
Nodo C Distancia más corta al nodo C = 5 (desde el
nodo O)
23ene2007 Programación Dinámica Determinista 23
Etapa 2
Nodo D Ruta AD: 7+2 = 19; Ruta BD: 8+8 = 16; Ruta
CD: 5+7 = 12 Distancia más corta al nodo D =
min{7+12,8+8,5+7} = 12 (desde el nodo C) Nodo E
Ruta BE: 8+9 = 17; Ruta CE: 5+13 = 18 Distancia más corta al nodo E = min{8+9,5+13}
= 17 (desde el nodo B)
23ene2007 Programación Dinámica Determinista 24
Etapa 3
Nodo T Ruta DT: 12+9 = 21; Ruta ET: 17+6 = 23 Distancia más corta al nodo T =
min{12+9,17+6} = 21 (desde el nodo D)
23ene2007 Programación Dinámica Determinista 25
Ejercicio 2
Resuelva el problema anterior con recursión hacia atrás
Verifique que se obtiene el mismo resultado
23ene2007 Programación Dinámica Determinista 26
Ejercicio 3
Encuentre la ruta más corta entre O y T usando programación dinámica con recursión hacia adelante suponiendo que se tiene la siguiente red
O B
C E
DA
T
5
9
8
10
4
10
9
9
8
17
9
23ene2007 Programación Dinámica Determinista 27
Tarea
Encuentre la ruta más corta entre O y T usando programación dinámica con recursión hacia adelante suponiendo que se tiene la siguiente red
O B
C H
GA
T
2
4
2 4
3
E
F
D46
7
4
23
5
14
1
4
6
3
3
3
23ene2007 Programación Dinámica Determinista 28
Referencias
Hillier, Frederick S. y Lieberman Gerald J. Introducción a la investigación de operaciones. McGraw-Hill Interamericana. 8ª edición. México, 2006.
Optimization Partner. Dictionary of optimization. http://www.optimizationpartner.se/index.php?cid=38 Consultado el 22 de enero de 2007
Taha, Hamdy A. Investigación de operaciones. Una introducción. Pearson Educación. 6ª edición. México, 1997
Trick, Michael A. A tutorial on dynamic programming. http://mat.gsia.cmu.edu/classes/dynamic/dynamic.html Consultado el 22 de enero de 2007