You are on page 1of 28

S1 – Programación Dinámica

Determinista

Ing. en Sistemas Computacionales


Modelos Probabilísticos
Paul Ramírez De la Cruz
23 ene 2007
Contenido
 Introducción
 Ejemplo prototipo
 Referencias

23ene2007 Programación Dinámica Determinista 2


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 3


Ejemplo prototipo
 
Planta 1 Planta 2 Planta 3
 Supongamos que una
corporación tiene un
presupuesto de $5 Pro- c1 r1 c2 r2 c3 r3
pues-ta
millones para hacer
ampliaciones en tres 1 0 0 0 0 0 0
de sus plantas
 Cada planta tiene 2 1 5 2 8 1 4
varias propuestas de
inversión, junto con su 3 2 6 3 9 - -
costo de expansión (c)
y el retorno (beneficio)
4 - - 4 12 - -
total esperado (r)
23ene2007 Programación Dinámica Determinista 4
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 5
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 6
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 7


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 8
Planteamiento
Si el capital  Entonces la  Y el beneficio 
 Determinemos el beneficio disponible, x1,  propuesta  por la etapa 
asociado con cada estado es óptima es uno es
 Comenzando con la primera
planta:
 Si el capital disponible, x1, es 0 1 0
de cero, entonces la
propuesta que maximiza el
beneficio para dicho capital 1 2 5
es la propuesta uno, y el
beneficio en la etapa uno será 2 3 6
de cero
 Si el capital disponible, x1, es
de uno, entonces la 3 3 6
propuesta que maximiza el
beneficio para dicho capital 4 3 6
es la propuesta dos, y el
beneficio en la etapa uno será
de cinco… 5 3 6
 Prosiguiendo así, tenemos:

23ene2007 Programación Dinámica Determinista 9


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 10


Planteamiento
Si el capital  Entonces la  Y el beneficio por 
disponible, x2, es propuesta óptima es las etapas 1 y 2 es

0 1 0

1 1 5

2 2 8

3 2 13

4 2o3 14

5 4 17

23ene2007 Programación Dinámica Determinista 11


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 12


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 13


Ejercicio
 
Planta 1 Planta 2 Planta 3
 Repita el ejemplo
anterior, Pro- c1 r1 c2 r2 c3 r3
pues-ta
 Suponga que la
corporación tiene 1 0 0 0 0 0 0
un presupuesto de
2 1 6 2 4 1 5
$6 millones para
hacer ampliaciones 3 2 5 3 6 - -
en tres de sus
plantas 4 - - 4 8 - -

23ene2007 Programación Dinámica Determinista 14


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 15


Fórmulas recursivas hacia
delante
 Denotemos por rij al beneficio por la
propuesta j en la etapa i y al costo
correspondiente por cij
 Sea fi ( xi ) el beneficio obtenido en la
etapa i, suponiendo que se está en el
estado xi , entonces f1 ( x1 ) = max { r1 j } y
c1 j ≤ x1

{
fi ( xi ) = max rij + fi −1 ( xi − cij ) ; i = 2,3
cij ≤ xi
}
23ene2007 Programación Dinámica Determinista 16
Fórmulas recursivas hacia
atrás
 Sean rij y cij como antes
 Sea yi el beneficio óptimo obtenido en las
etapas 1, 2,…, i
 Sea f i ( yi ) el beneficio obtenido en la etapa
i, suponiendo que se está en el estado yi ,
entonces f ( y ) = max r
3 3
c3 j ≤ y3
{ }3j

{
fi ( yi ) = max rij + fi +1 ( yi − cij ) ; i = 2,3
cij ≤ yi
}
23ene2007 Programación Dinámica Determinista 17
Ejemplo 2
 Suponga que se A 12
desea seleccionar la D
ruta más corta entre 7 8 9
las ciudades O y T 8
O B T
 La red a continuación 9
muestra las rutas
posibles entre ambas 5 7
6
ciudades, las cuales
cruzan por las C E
13
ciudades intermedias
A-E

23ene2007 Programación Dinámica Determinista 18


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: f 0 ( x0 ) = 0
fi ( xi ) = min
rutas ( xi −1 , xi
{) d ( x i −1 , xi ) + fi −1 ( xi −1 ) } ; i = 1, 2,3

23ene2007 Programación Dinámica Determinista 19


Ejemplo 2
 Fórmulas recursivas hacia atrás

f 4 ( x4 ) = 0

fi ( xi ) = min
rutas ( xi , xi +1
{) d ( x , x ) + f ( x ) } ;
i i +1 i +1 i +1 i = 1, 2,3

23ene2007 Programación Dinámica Determinista 20


Etapas
f0 = 0 f1 = 7 f1 = 7 f2 = 12 f2 = 12 f3 = 21

A A 12
7
D D 9
8
8 8
8
O B B T
9
5
5 5 17 17
7
6
C C E E
13

23ene2007 Programación Dinámica Determinista 21


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 22
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 23


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 24


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 25


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
10
A D
17
5
8
9 4
O B T
10
8 9
9
C E
9
23ene2007 Programación Dinámica Determinista 26
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
A 7
4 D 1 G
6
2 4
6 3
4 3
O B 2 E T

4 3
2 4
4 3
1
C 5 F 3 H
23ene2007 Programación Dinámica Determinista 27
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

23ene2007 Programación Dinámica Determinista 28

You might also like