You are on page 1of 58

OPERACIONES 3

Programación Dinámica

Profesor: Pablo Diez Bennewitz


Escuela Ingeniería - U. del Mar
PROGRAMACION DINAMICA

La programación dinámica (PD) determina la


solución óptima de un problema de n-variables
descomponiéndolo en n-etapas mediante el
criterio del principio de optimalidad

Dependiendo del problema de optimización, la


naturaleza de las etapas difieren, por lo que la
metodología de los cálculos para optimizar cada
etapa también difiere. Quien resuelve un
problema de programación dinámica utiliza su
ingenio, improvisa y diseña los detalles
PROGRAMACION DINAMICA

Problema Original Programación Dinámica

Descomposición
n variables 1 variable
1 etapa n etapas

1 2
7 3 4
8
6 5
PRINCIPIO DE OPTIMALIDAD

Las futuras decisiones para las etapas restantes


constituyen una política óptima, sin importar
cuál haya sido la política adoptada en las etapas
previas

El principio de optimalidad
establece el marco de
referencia unificador para los
n – subproblemas o n – etapas
de los problemas de
programación dinámica
NATURALEZA RECURSIVA EN
LOS CALCULOS DE LA PD
Los cálculos de la programación dinámica se hacen
recursivamente, en el sentido de que la solución
óptima de un subproblema se utiliza como una
entrada para el siguiente subproblema. Al momento
de resolver el último subproblema, se tendrá la
solución óptima para todo el problema
La forma de los cálculos recursivos depende de la
descomposición del problema original. En general,
los subproblemas se unen a través de algunas
restricciones comunes. A medida que se avanza de
un subproblema a otro, hay que dar la razón de la
viabilidad de estas restricciones
NATURALEZA RECURSIVA EN
LOS CALCULOS DE LA PD
Los problemas de la programación
dinámica ocupan recursiones
tanto hacia adelante como hacia
atrás, las que deben producir la
misma solución
Aún cuando el procedimiento
hacia delante parece más lógico,
la programación dinámica utiliza
generalmente la recursión hacia
atrás, puesto que es más eficiente
en los cálculos
METODOLOGIA PARA PLANTEAR
PROBLEMAS DE PROGR. DINAMICA

A medida que se estudie cada aplicación de


la programación dinámica, hay que definir
correctamente los 3 elementos básicos de un
modelo de programación dinámica:

1. Definición de las etapas


2. Definición de las alternativas en cada etapa
3. Definición de los estados para cada etapa
METODOLOGIA PARA PLANTEAR
PROBLEMAS DE PROGR. DINAMICA

A medida que se investiga cada tipo de aplicación


es útil considerar las siguientes preguntas:

• ¿ Qué relaciones unen a las etapas ?

• ¿ Qué información se necesita para


tomar decisiones factibles en la etapa
actual, sin re-examinar las decisiones
tomadas en las etapas anteriores ?
APLICACIONES DE LA
PROGRAMACION DINAMICA

• Problema de la ruta crítica


• Problema de la distribución de esfuerzos
• Problema del número de empleados
• Problema de volumen carga
• Problema del reemplazo de equipo
• Problema de inversión
• Problema de dimensionalidad
PROBLEMA DE LA RUTA CRITICA

Se desea seleccionar la ruta de carretera más corta


entre dos ciudades. Existen diferentes conexiones
mediante ciudades intermedias como se muestra
en el siguiente diagrama:
12
2 5
7 8 9
8 9 6
1 3 6 8
5
13
15
7

8
4 9 7
PROBLEMA DE LA RUTA CRITICA

Se puede resolver el problema enumerando en


forma exhaustiva todas las rutas entre los nodos
1 y 8 (hay 7 rutas). Sin embargo, en una red más
grande, la enumeración exhaustiva no es
eficiente desde el punto de vista de los cálculos

Nomenclatura: X : el estado actual


i : número de orden en la etapa
fi (Xn) : función recursiva
Estados : son las ciudades
PROBLEMA DE LA RUTA CRITICA

El problema tiene tres etapas:


1ª Etapa i=1 2ª Etapa i=2 3ª Etapa i=3

12
2 2 5 5
7 8 9
8 9 6
1 3 3 6 6 8
5
13
7

15
8
4 4 9 7 7

Alternativas = 3 Alternativas = 7 Alternativas = 3


PROBLEMA DE Nº DE EMPLEADOS

En algunos proyectos, las contrataciones y los


despidos se ejercen para mantener un número
de empleados que satisfaga las necesidades del
proyecto

Debido a que tanto las


contrataciones como los
despidos incurren en costos
adicionales, se busca establecer
el número de empleados a
requerir a lo largo del proyecto
PROBLEMA DE Nº DE EMPLEADOS

Supóngase que el proyecto se ejecutará durante el


lapso de n semanas y que el número mínimo de
empleados requeridos en la semana i es bi
trabajadores. Bajo condiciones ideales, es
deseable que el número de empleados en la
semana i fuera exactamente bi; sin embargo,
dependiendo de los costos, puede ser más
económico permitir que el número de empleados
varíe más arriba de los
requerimientos mínimos
PROBLEMA DE Nº DE EMPLEADOS

Sea Xi : número real de trabajadores empleados


en la semana i

C1 (Xi – bi)
Se puede Costo de mantener un número
incurrir en dos de trabajadores excesivo
tipos de costos
en la semana i C2 (Xi – Xi-1 )
Costo de contratar Xi – Xi-1
trabajadores adicionales
PROBLEMA DE Nº DE EMPLEADOS

Etapas : i, son las semanas i = 1, 2, ……, n


Alternativas Xi, el número de trabajadores
empleados en la semana i
Estados Xi-1 , el número de trabajadores
empleados en la semana
inmediatamente anterior
Función Recursiva
fi (Xi - 1) = Mín { C1(Xi – bi) + C2(Xi – Xi-1 ) + fi+1 (Xi) }
Xi > bi i = 1, 2, ……, n
con fn+1 (Xn) = 0
PROBLEMA DE Nº DE EMPLEADOS

Ejemplo: Un contratista de la construcción calcula


que el número de trabajadores necesarios
durante las próximas 5 semanas es de: 5,
7, 8, 4 y 6 trabajadores, respectivamente
El exceso de trabajadores que se mantienen en la
fuerza laboral costará $300 por trabajador y por
semana. Las nuevas contrataciones en cualquier
semana incurrirán en un costo fijo de $400 más
$200 por trabajador y por semana
Se desea tener el menor costo total en la planilla
de la fuerza laboral
PROBLEMA DE Nº DE EMPLEADOS

Solución: C1 = $300 b1 = 5
b2 = 7
$400 fijo
C2 b3 = 8
$200 variable
b4 = 4
b5 = 6
C1(Xi – bi) = 300(Xi – bi) para Xi > bi
C2(Xi – Xi-1 ) = 400 + 200(Xi – Xi-1 ) para Xi > Xi+1
con i = 1, 2, 3, 4, 5
PROBLEMA DEL REEMPLAZO EQUIPO

Cuando una máquina llega a cierta edad, se elevan


sus costos operacionales y de mantención, por lo
que puede ser más económico reemplazarla.
Luego, hay que determinar la edad de vida útil
económica de la máquina
Se supone el problema de
reemplazo de equipo a lo largo de
n años. Al principio de cada año
se decide prolongar el servicio
del equipo un año más, o
reemplazarlo por uno nuevo
PROBLEMA DEL REEMPLAZO EQUIPO
Se definen:
r(t) : beneficio anual del equipo de edad t años
c(t) : costo de operación del equipo de edad t años
s(t) : valor de rescate del equipo que ha estado en
servicio durante t años
I : costo de adquisición de un equipo nuevo en
cualquier año
Beneficios
Conservar
Se pueden tomar la máquina r(t) – c(t)
2 decisiones
cada año Reemplazar
s(t) – I
la máquina
PROBLEMA DEL REEMPLAZO EQUIPO
Etapas : i, son los años i = 1, 2, ……, n
Alternativas conservar la máquina (K)
o reemplazarla (R)
Estados ti, edad de la máquina al principio del año i

Función Recursiva fi(t) Ingreso neto máximo


para los años i, i+1, ……, n
Función Recursiva

fi(t) = Máx r(t) – c(t) + fi+1 (t+1) Si se conserva


s(t) – I + r(0) - c(0) + fi+1 (1) Si se reemplaza
con fn+1 (t) = s(t) Se vende la máquina a valor residual
PROBLEMA DEL REEMPLAZO EQUIPO

Ejemplo:
Se necesita determinar la política
de reemplazo óptima para una
máquina que en la actualidad
tiene 3 años, durante los
próximos 4 años (n = 4), es decir,
hasta principios del año 5
La compañía requiere que una
máquina de 6 años se reemplace.
El costo de una máquina nueva
es de $100.000
PROBLEMA DEL REEMPLAZO EQUIPO

Ejemplo: La siguiente tabla proporciona los datos


del problema
Edad, t (año) Utilidad, r(t) Costo c(t) Rescate, s(t)
0 20.000 ($) 200 ($) –
1 19.000 ($) 600 ($) 80.000 ($)
2 18.500 ($) 1.200 ($) 60.000 ($)
3 17.200 ($) 1.500 ($) 50.000 ($)
4 15.500 ($) 1.700 ($) 30.000 ($)
5 14.000 ($) 1.800 ($) 10.000 ($)
6 12.200 ($) 2.200 ($) 5.000 ($)
PROBLEMA DEL REEMPLAZO EQUIPO

La determinación de los estados es un tanto difícil,


se recomienda hacer una red edad de la máquina
v/s año de la decisión, para distinguir los estados
posibles y los valores factibles para la edad de la
máquina en cada etapa
PROBLEMA DEL REEMPLAZO EQUIPO
Edad de la Máquina
6 6
K
5 5 R
K
4 4 R 4
K
Principio 3 R 3 3
K
K
R R
2 2 R 2 R 2
K K K
1 1 1 1 1
R R R Año de la
Decisión
2 3 4 5
PROBLEMA DE VOLUMEN CARGA

Aborda el problema de cargar artículos que poseen


diferentes niveles de utilidad, en medios de carga
con capacidad limitada. El objetivo es seleccionar
las cargas más valiosas a transportar
PROBLEMA DE VOLUMEN CARGA

Aplicaciones del Problema Volumen Carga

• Transporte Marítimo: cargar artículos en un barco


con capacidad de peso limitada

• Equipaje de Emergencia: un piloto de jet debe


determinar los artículos más valiosos (de
emergencia) a llevar a bordo del jet

• Problema de la Mochila: un soldado (o un


excursionista) debe decidir cuáles son los
artículos más valiosos para llevar en su mochila
PROBLEMA DE VOLUMEN CARGA

La ecuación recursiva (hacia atrás) se desarrolla


para el problema general de un barco con
capacidad para n artículos y W toneladas
Se definen:
• mi : Número de unidades del artículo i en la carga
• ri : Nivel de utilidad unitaria del artículo i
• wi : Peso de cada unidad de carga del artículo i
• n : Número total de artículos a transportar

PROBLEMA DE VOLUMEN CARGA

El problema general se representa por medio de


la siguiente programación lineal entera

Máx: Z = r1m1 + r2m2 + ………. + rnmn

s.a.: w1m1 + w2m2 + ………. + wnmn < W


m1, m2, …………, mn > 0

m1, m2, …………, mn


∈ IN
PROBLEMA DE VOLUMEN CARGA
Etapas : i, son los artículos i = 1, 2, ……, n
Alternativas mi el número de unidades del artículo i
incluidas en la carga mi = { 0, 1, …., W }
wi
Estados Xi, peso total acumulado asignado a las
etapas (artículos) i, i+1, ….., n
Función Recursiva fi(Xi) Utilidad máxima
para los etapas i, i+1, ……, n
Función Recursiva
fi(Xi) = Máx { rimi + fi+1 (Xi+1 ) } i = 1, 2, ……., n
con fn+1 (Xn+1 ) = 0 Al inicio, no se ha asignado carga
PROBLEMA DE VOLUMEN CARGA

Ecuación de balance del peso consumido en etapas:


Xi – Xi+1 = wimi Xi – Xi+1 representa el peso
consumido en la etapa i
Reemplazando se llega a:
Función Recursiva

fi(Xi) = Máx { rimi + fi+1 (Xi - wimi) } i = 1, 2, ……., n

mi = { 0, 1, …., W
wi }
Xi = { 0, 1, ………., W }
PROBLEMA DE VOLUMEN CARGA

Ejemplo:
Un barco de 4 toneladas se carga con uno o más de
tres artículos. La siguiente tabla proporciona el
peso por unidad, wi, en toneladas y la utilidad, ri, en
miles de US$ por cada artículo i
Artículo i wi ri Debido a que los pesos por
1 2 31 unidad, wi y el peso máximo W
2 3 47 asumen todos valores enteros,
3 1 14 el estado Xi sólo puede asumir
valores enteros
PROBLEMA DE INVENTARIO

Se establece el nivel óptimo del inventario para


diferentes períodos, asumiendo que no se permite
faltante alguno. Es decir, que la producción de
artículos permita, a lo menos, cubrir la demanda
en forma íntegra
El modelo asume dos tipos de costos: se
incurre en un costo de preparación siempre
que se inicia un nuevo lote de producción;
además de un costo de almacenamiento,
cada vez que hay acumulación de inventario
PROBLEMA DE INVENTARIO

El modelo trata de minimizar la suma de los


costos de producción, de preparación y de
almacenamiento para todos los n períodos

Sean:

• Zi : Cantidad ordenada en el período i


• Di : Demanda para el período i
• Xi :Inventario al inicio del período i
PROBLEMA DE INVENTARIO

Xn+1 = 0
Z1 Z2 Zi Zi+1 Zn
X1 X2 Xi Xi+1 Xn
D1 Di Dn

El tamaño del inventario es:


Xi+1 = Xi + Zi - Di
Los costos son:
• Ki : Costo de preparación para el período i
• hi : Costo por unidad del almacenamiento
del inventario, del período i+1
• C (Z ) : Costo de producción para el período i
PROBLEMA DE INVENTARIO

Costo de producción para el período i es:

Ci(Zi) 0 si Zi = 0
Ki + pi(Zi) si Zi > 0
donde: pi(Zi) : Función del costo
de producción
marginal dado Zi
Este problema formula la
programación dinámica con
función recursiva hacia adelante
PROBLEMA DE INVENTARIO

Etapas : i, son los períodos de tiempo i = 1, ……, n


Alternativas Zi la cantidad de la orden de producción

Estados Xi+1 , tamaño inventario al final del período


donde 0 < Xi+1 < Di+1 + …… + Di+n

Función Recursiva fi(Xi+1 ) Minimizar costos


para los etapas i, i+1, ……, n
Función Recursiva

fi(Xi+1 ) = Mín {Ci(Zi) + hiXi+1 + fi-1 (Xi+1 + Di - Zi) }


0 < Zi < Di + Xi+1 i = 1, 2, ……., n
PROBLEMA DE INVENTARIO

Como es una función recursiva hacia delante, el


primer período, la primera etapa queda:

f1(X2) = Mín { C1(Z1) + h1X2 }

0 < Z1 < D1 + X2

El modelo supone Xn+1 = 0

Con f0 (X2 + D1 – Z1) = 0


PROBLEMA DE INVENTARIO

Ejemplo:
Encuentre la solución óptima para la situación del
inventario de tres períodos que a continuación se
proporciona. La demanda ocurre en unidades
discretas y el inventario inicial es de X1 = 1 unidad
Período Demanda Di Costo de Costo de
i (unidades) Preparación Ki Almacenamiento hi
1 3 3 1
2 2 7 3
3 4 6 2
PROBLEMA DE INVENTARIO

Ejemplo:
El costo de producción por unidad es de $10 para
las tres primeras unidades y de $20 por cada unidad
adicional

pi(Zi) 10 Zi 0 < Zi < 3


30 + 20(Zi - 3) Zi > 4
PROBLEMA DE INVERSION

Se desean invertir las cantidades P1, P2, ……., Pn al


inicio de cada uno de los siguientes n años

Se puede invertir en dos bancos: el primer banco


paga una tasa de interés r1 y el segundo banco
paga una tasa de interés r2 y ambas son tasas de
interés compuesto anual. Además, los bancos
pagan bonificaciones sobre las nuevas
inversiones, en forma de un porcentaje sobre la
cantidad invertida
PROBLEMA DE INVERSION
Los porcentajes de las bonificaciones varían de
un año a otro y se dan en el año i como qi1 para el
primer banco y qi2 para el segundo banco. Son
pagaderos al final del año en el cual se hace la
inversión y se pueden reinvertir en cualquiera de
los bancos al año siguiente inmediato

Sólo las bonificaciones y el dinero nuevo se


pueden invertir en cada banco. Sin embargo, una
vez que se deposita una inversión en cualquiera
de los bancos, debe permanecer allí hasta el final
PROBLEMA DE INVERSION

Etapas : i, son los años i = 1, 2, ……, n


Alternativas en las etapas i son Ii e Ii, las
cantidades invertidas en el primer y el
segundo banco respectivamente
Estados Xi, es la cantidad de capital disponible
para invertir al principio del año i
Se observa que: Ii = Xi – Ii
Xi = Pi + qi-1,1 Ii-1 + qi-1,2 Ii-1
Xi = Pi + qi-1,1 Ii-1 + qi-1,2 (Xi-1 – Ii-1 )
PROBLEMA DE INVERSION

Xi = Pi + (qi-1,1 – qi-1,2 )Ii-1 + qi-1,2 Xi-1 con X1 = P1

Xi es la cantidad de reinversión, solo incluye


el dinero nuevo mas cualesquiera de las
bonificaciones obtenidas en el año anterior
El objetivo es maximizar
la suma acumulada (Si)
Función Objetivo
que reportan las
Máx Z = S1 + S2 + .… + Sn
inversiones en ambos
bancos al final del año n
PROBLEMA DE INVERSION

Función Objetivo Máx Z = S1 + S2 + .… + Sn

Dado α j = ( 1 + rj ) j = 1, 2

se tiene α
Si = Ii 1
(n+1-i)
+ (Xi – Ii) α 2
(n+1-i)

Si =α
( 1
(n+1-i)
α
– 2
(n+1-i)
)Ii + Xi α 2
(n+1-i)

Con i = 1, 2, 3, ….., (n-1)

Sn = ( α 1 + qn1 – α 2 – qn2 )In + Xn( α n + qn2 )


PROBLEMA DE INVERSION

Sn = (α 1 + qn1 –α 2 – qn2 )In + Xn( α n + qn2 )

En el último año, los términos qn1 y qn2 se añaden,


debido a que las bonificaciones obtenidas al final
del año n son parte de la suma de dinero final
acumulada de la inversión

Función Recursiva fi(Xi) = Máx {Si + fi+1 (Xi+1 ) }


con fn+1 (Xn+1 ) = 0
0 < Ii < Xi
i = 1, 2, 3, ….., (n-1)
PROBLEMA DE INVERSION
Ejemplo:
Se desea invertir $4.000 ahora y $2.000 al principio
de los años 2 al 4. La tasa de interés anual
compuesta que ofrece el primer banco es del 8% y
los porcentajes de las bonificaciones durante los
próximos 4 años son 1,8 ; 1,7 ; 2,1 ; y 2,5
respectivamente. La tasa de interés compuesta
anual que ofrece el segundo banco es 0,2% menor
que la del primer banco, pero su bonificación es un
0,5% más alta cada año
El objetivo es maximizar el capital acumulado al
final de 4 años
PROGRAMACION DINAMICA
PROBABILISTICA
La programación dinámica probabilística difiere
de la programación dinámica determinística en
que las condiciones y resultados en cada etapa
son probabilísticas
P3
El estado que se alcance P
P1 4
después de una decisión
es incierto, puesto que P5
P2
existen probabilidades de
llegar a más de un estado P
6
PROGRAMACION DINAMICA
PROBABILISTICA

Problema de Inversión:
Una persona desea invertir $C en el
mercado de valores durante los
siguientes n años. El plan de inversión
requiere comprar las acciones al inicio
del año y venderlas al final del mismo
año. Posteriormente, el dinero
acumulado se puede reinvertir (todo o
parte) al inicio del siguiente año
PROGRAMACION DINAMICA
PROBABILISTICA

Problema de Inversión:
El grado de riesgo en la inversión se representa
expresando el rendimiento de forma probabilística:
Un estudio del mercado indica que el rendimiento
sobre la inversión está afectado por m condiciones
del mercado (favorables o desfavorables) y que la
condición i da un rendimiento ri con probabilidad pi

¿ Cómo debe invertirse la cantidad C para alcanzar


la acumulación más alta al final de n años ?
PROGRAMACION DINAMICA
PROBABILISTICA

Problema de Inversión:
Xi : Cantidad de fondos disponibles al inicio del año i
con X1 = C
Yi : Cantidad realmente invertida al inicio del año i
( Yi < Xi )

Etapas : i, son los años i = 1, 2, ……, n


Alternativas en las etapas i son Yi

Estados Xi, cantidad de fondos disponibles


PROGRAMACION DINAMICA
PROBABILISTICA

Problema de Inversión:
Para la condición de mercado k-ésima se observa que:
Xi+1 = ( 1 + rk )Yi + ( Xi – Yi ) K = 1, 2, ……, m
Xi+1 = rkYi + Xi

Dado que la condición de mercado k ocurre


con probabilidad pk, la ecuación recursiva
de programación dinámica es:
m
fi(Xi) = Máx { Σ
k=1
p k fi+1 (Xi+1 ) } para Yi < Xi
PROGRAMACION DINAMICA
PROBABILISTICA

Problema de Inversión:
m
Función Recursiva
fi(Xi) = Máx { Σ pk fi+1 (Xi + rkYi) }
k=1
0 < Yi < Xi

El objetivo es maximizar los fondos


esperados para los años i, i+1, ….., n
Además fn+1 (Xn+1 ) = Xn+1
Ya que ninguna inversión
ocurre después del año n
PROGRAMACION DINAMICA
PROBABILISTICA

Problema de Inversión:
m
Σ
fn(Xn) = Máx {
k=1
p k fn+1 (Xn+1 ) }
m
Σp
fn(Xn) = Máx { k Xn+1 ) }
k=1
m
Σ
fn(Xn) = Máx { p
k=1
k (Xn + rkYn) }

La función es lineal en Yn y, por lo tanto, el


máximo valor de Yn ocurre cuando Yn = Xn
PROGRAMACION DINAMICA
PROBABILISTICA

Problema de Inversión:
m
fn(Xn) = Σ
k=1
p k (Xn + rkXn)
m
fn(Xn) = Σ p X (1 + r ) m
Σ
k n k
k=1 fn(Xn) = Xn pk (1 + rk)
m
fn(Xn) = Xn Σ
k=1
(pk + pkrk) k=1

m m
fn(Xn) = Xn( Σk = 1p +kΣ= 1p r )
k k k

fn(Xn) = Xn (1 + p1r1 + p2r2 + ……. + pmrm)


PROGRAMACION DINAMICA
PROBABILISTICA

Ejemplo:
Se desean invertir $10.000 durante los
siguientes 4 años. Existe un 40% de
probabilidad de obtener una ganancia 2
veces superior a la inversión, 20% de
probabilidad de no ganar ni perder y 40%
de probabilidad de perder toda la
inversión inicial

Diseñe una estrategia óptima de inversión


PROGRAMACION DINAMICA
PROBABILISTICA

Ejemplo:
Se tiene $1 para invertir y puede
hacerlo en A, en B, o si lo desea puede
no invertir, al principio de los próximos
3 años. Solo se puede invertir $1 cada
vez y, los retornos después de la
inversión dependen de diferentes
escenarios, cuyas probabilidades se
indican en la siguiente tabla:
PROGRAMACION DINAMICA
PROBABILISTICA
Ejemplo:

Retorno después
Inversión Probabilidad
de la Inversión
-1 0,4
A
1 0,6
B 0 0,9
1 0,1
Se pide hallar la política de inversión que
maximice la probabilidad de tener a lo
menos $2 al final después del último año

You might also like