You are on page 1of 126

Programación

Dinámica
Introducción
Existe una serie de problemas cuyas soluciones
pueden ser expresadas recursivamente en
términos matemáticos, y posiblemente la manera
más natural de resolverlos es mediante un
algoritmo recursivo.
En estos casos es cuando la Programación
Dinámica nos puede ofrecer una solución
aceptable. La eficiencia de esta técnica consiste
en resolver los subproblemas una sola vez,
guardando sus soluciones en una tabla para su
futura utilización.
 PROGRAMACION DINAMICA
DETERMINISTICA
El estado en la siguiente etapa esta
completamente determinado por el estado
o política de decisión de la etapa actual

 PROGRAMACION DINAMICA
PROBABILISTICA
El estado en la siguiente etapa no esta
completamente determinado por el estado
o política de decisión de la etapa actual
Concepto
Es una técnica matemática que se puede aplicar
para resolver muchos problemas de optimización,
lo que se desea es encontrar la solución de valor
óptimo (máximo o mínimo).
En la mayor parte de las veces, la programación
dinámica obtiene soluciones con un avance en
reversa, desde el final de un problema hacia el
principio con lo que un problema grande y
engorroso se convierte en una serie de problemas
mas pequeños y mas tratables.
La programación dinámica resuelve un problema
relativamente complejo descomponiéndolo en
una serie de problemas mas sencillos.

Primero se resuelve un problema de una etapa,


después uno de dos etapas, y por ultimo uno de
T etapas, T es el numero de etapas en el
problema original.
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
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
•Estado- Es cualquier etapa de la información
necesaria para tomar la decisión correcta en la
etapa actual
•Variable de decisión- Son aquellas sobre las
cuales debemos definir su valor de modo de
optimizar el beneficio acumulado y modificar el
estado de la próxima etapa.
•Etapa de decisión- Es el mecanismo con el que
construimos el problema.
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 ?
•Función objetivo Es la función que deseamos
optimizar, es decir, maximizar o minimizar.
La función objetivo puede ser:

Donde:
f = coeficientes conocidos

•Solución óptima Es el punto o conjunto de puntos


de la región factible donde la función objetivo alcanza
el valor máximo o el valor mínimo. La solución óptima
siempre se alcanza en uno de los vértices o en el
segmento que une dos vértices de la región factible.
Características de la
Programación Dinámica
• El problema se puede dividir en etapas; cada etapa
requiere una decisión.
• Cada etapa tiene un numero de estados asociados
con ella.
• La decisión tomada en cualquier etapa indica como
se transforma el estado en la siguiente etapa.
• Dado el estado actual, la decisión óptima para cada
una de las etapas restantes no debe depender de
estados (o decisiones) previamente tomadas.
Se dispone de una relación recursiva de la forma:

Cuando se usa esta recursiva , el procedimiento


de solución se mueve hacia atrás por la etapa
encontrando cada vez la política optima para esa
etapa hasta que se encuentra la política optima
desde la etapa inicial
En síntesis, la política optima desde un estado s de la
etapa k a la etapa final esta constituida por una
decisión que transforma s en un estado s´ de la etapa
k +1 y por la política optima desde el estado s´ hasta
la etapa final.
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
7

15

8
9
4 7
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


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
9
4 4 7 7

Alternativas = 3 Alternativas = 7 Alternativas = 3


Problema de la diligencia (ejemplo prototipo)
NOTACION
 N=numero de etapas
 n=etiqueta para la etapa actual (n=1,2,3…N)
 =estado actual para la etapa n
 =variable de decisión para la etapa n
 =valor optimo
 = contribución a la función objetivo de las
etapas n, n+1,….N, la forma recursiva tendrá la
forma
Formulación del problema
 , las variables de decisión que representan
el destino inmediato en la etapa n
 el costo total de la mejor política global
para las etapas restantes, dado que el agente de
ventas se encuadra en el estado listo para hincar
la etapa n y elige como destino .Dado s y n,
Entonces

 Donde = costo inmediato (etapa n) +


mínimo costo futuro (etapa n +1 en adelante) =
7
B E
4 1
6 3

2 H

3
3
6
4 2
A C F J
3
4
4
3
I

4 3
1
D G 3

ETAPA 1 ETAPA 2 ETAPA3 ETAPA 4


• En el problema se dividió en cuatro etapas que corresponden
a las cuatro jornadas del viaje.
•Donde cada nodo corresponde un estado y la red
constituiría en columnas de nodos, en cada columna
corresponde a una etapa
En este punto se pude identificar la solución
óptima. Siendo los resultados del problema :

• A ->C ->E -> H ->J

• A ->D ->E -> H ->J

• A ->D ->F -> I ->J


Problema de Red
Joe Cougar vive en la ciudad de Nueva York, pero
esta pensando en conducir hasta Los Ángeles para
buscar fama y fortuna.
Su dinero es escaso y, por lo tanto, ha decidido
pasar cada noche de su viaje en la casa de un
amigo. Tiene amigos en Columbus, Nashville,
Louisville, Kansas City, Omaha, Dallas, San
Antonio Denver. Por ultimo, después de 4 días de
conducir, puede llegar a Los Ángeles.
Para reducir al mínimo el número de millas
recorridas, ¿Dónde debe pasar cada noche del
viaje?
Columbus 680 Kansas City
2 5
580 610
790

Denver
550 8

790 1030
790
540

Nueva York Nashville Omaha Los Ángeles


900 760
1 3 6 10

940 Etapa 4
Día 0 660 1390 Día 4
San Antonio
770 9
510 1050
700 270 Etapa 3
Louisville Dallas Día 3
4 830 7
Etapa 1 Etapa 2
Día 1 Día 2
Solución
• La idea de avanzar en reversa quiere decir que
debemos comenzar por resolver un problema fácil que al
final nos ayude a resolver un problema complejo.
•Por lo tanto, empezando por encontrar la ruta mas corta
a Los Ángeles desde cada ciudad de donde solo hay 1
día de marcha, que son las ciudades de la etapa 4.
•A continuación usaremos esta información para
determinar la ruta mas corta a Los Ángeles desde cada
ciudad desde la cual haya solo 2 días de marcha, o sea,
las ciudades de la etapa 3
Solución

• Con esta información, podremos determinar la distancia


mas corta que hay hasta Los Ángeles desde cada una de
las ciudades que están a una distancia de tres jornadas de
manejo (ciudades de la etapa 2).
•Por último, determinamos la distancia mas corta hasta
Los Ángeles a partir de cada una de las ciudades (sólo
hay una: Nueva York), que está alejada 4 jornadas de
manejo.
Solución
12=550 46=700
13=900 47=830
14=770 58=610
25=680 59=790
26=790 68=540
27=1050 69=940
35=580 78=790
36=760 79=270
37=660 810=1030
45=510 910=1390
Solución

Para n=4

Los Ángeles Ciudad


10
Denver 1030 10
8
San Antonio 1390 10
9
Solución
Para n=3

8 9 Menor Ciudad

5 610+1030=1640 790+1390=2180 1640 8

6 540+1030=1570 940+1390=2330 1570 8

7 750+1030=1820 270+1390=1660 1660 9


Solución
Para n=2

5 6 7 Menor Ciudad

2 680+1640=2320 790+1570=2360 1050+1660=2710 2320 5

3 580+1640=2220 760+1570=2330 660+1660=2330 2220 5

4 510+1640=2150 700+1570=2270 830+1660=2490 2150 5


Solución

Para n=1

2 3 4 Menor Ciudad

1 550+2320=2870 900+2220=3120 770+2150=2920 2870 2

Entonces la ruta mas corta seria:

1  2  5 8  10
Problema

Determinar la trayectoria mas


corta desde el nodo 1 hasta el
nodo 10 en la red de la siguiente
figura.
7
2 5
4 1
6 3

2 8

3
3
6
4 2
1 3 6 10
3
4
4
3
9

4 3
1
4 7 3
5
Solución
12=2 46=1
13=4 47=5
14=3 58=1
25=7 59=3
26=4 68=6
27=6 69=3
35=3 78=3
36=2 79=3
37=4 810=3
45=4 910=4
Solución

Para n=4

10 Ciudad
8 3 10

9 4 10
Solución
Para n=3

8 9 Menor Ciudad
5 1+3=4 3+4=7 4 8

6 6+3=9 3+4=7 7 9

7 3+3=6 3+4=7 6 8
Solución
Para n=2

5 6 7 Menor Ciudad
2 7+4=11 4+7=11 6+6=12 11 5o6

3 3+4=7 2+7=9 4+6=10 7 5

4 4+4=8 1+7=8 5+6=11 8 5o6


Solución

Para n=1

2 3 4 Menor Ciudad
1 2+11=13 4+7=11 3+8=11 11 3o4

Entonces la ruta mas corta seria:


1  3  5 8  10 ó

1  4  5 8  10
Problema General de Asignación de
Recursos

 Suponga que tenemos w unidades de un


recurso disponible, y T actividades a las
que se puede asignar ese recurso.
 Si la actividad t se realiza en un nivel xt,
entonces la actividad t usa gt(xt) unidades
del recurso, y se obtiene un el beneficio
rt(xt).
 El problema de determinar la asignación de recursos
que maximiza el beneficio total, sujeto a la disponibilidad
de recursos se puede formular como sigue:
T
rt(xt)
t=1

condiciones :

T
gt(xt) <= w
t=1
 Para resolver la Ec.(6) con la programación
dinámica, definimos a ft(d) como el beneficio
máximo que se puede obtener de las
actividades t,t+1,…,T.

ft+1(d) = 0 para toda d


ft(d) = max{rt(xt) + ft+1(d-gt(xt))}
xt
Condiciones : xt >= 0;
gt(xt) <= d
rt(xt) gt(xt) w
Beneficio de colocar xt Peso de xt artículos Peso máximo que
artículos tipo t en una del tipo t. puede resistir una
mochila. mochila.

Calificaciones Núm de h/semana xt Núm total de horas


obtenidas en el curso que pasamos disponibles cada
t si solo estudiamos xt estudiando el curso t. semana.
horas por semana.

Ventas de un Costo por asignar xt Presupuesto total del


producto en la región t vendedores a la personal de ventas.
si asignan xt región t.
vendedores a la
región t.
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
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
Sea Xi : número real de trabajadores empleados en la semana i

C1 (Xi – bi)
Costo de mantener un número de
Se puede incurrir en
trabajadores excesivo
dos tipos de costos en
la semana i

C2 (Xi – Xi-1)

Costo de contratar Xi – Xi-1 trabajadores


adicionales
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 con fn+1(Xn) = 0 i = 1, 2, ……, n


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
 ¿ como se debe mantener el número de empleados a
todo lo largo de la vida de un proyecto?
bi : Nro min de empleados requeridos.
xi : Nro real de trabajadores empleados.
c1(xi - bi) : Costo de mantener un Nro excesivo de
trabajadores.
c2(xi – xi-1) : Costo de contratar trabajadores adicionales.
1.-Etapas : semanas de trabajo i = 1/n.
2.-Estado : Nro de trabajadores en la semana (etapa).
fi(xi-1) = min{c1(xi-bi) + c2(xi-xi-1) + fi+1(xi)}
xi>=bi
fn+1(xn)=0 (los calculos empiezan en la etapa n con xn=bn)
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
 n=5 b5=x5=6
f5(x4)= min{3(x5-6)+4+2(x5-x4)}=
x5>=b5
= min{4+2(6-x4)}=

x4 f5(x4) f 5* x5*
4 4+2*2=8 8 6

5 4+1*2=6 6 6

6 0 0 6*
 n=4 b4=4;

f4(x3)=3(x4-4)+4+2(x4-x3)+f5(x4)

x3 f 4(x3) f 4* x 4*
X4=4 X4=5 X5=6
8 3(0)+0+8=8 3(1)+0+6=9 3(2)+0+0=6 6 6*
 n=3 b3=8;

f3(x2)=C1(x3-8)+C2(x3-x2)+f4(x3)

x2 x3=8 f 3* x3*

7 3(0)+4+2(1)+6=12 12 8

8 3(0)+0+6=6 6 8*
 n=2 b2=7;
f2(x1)=c1(x2-7)+c2(x2-x1)+f3(x2)

x1 x2=7 x2=8 f2*(x1) x 2*


5 20 19* 19 8
6 18 17* 17 8
7 12* 15 12 7
8 12 9* 9 8*
 n=1 b1=5;
f1(x0)=C1(x1-5)+C2(x1-x0)+f2(x1)

X0 x1=5* x1=6* x1=7* x1=8* f1(x0) X1*


0 33* 36 36 38 33 5
 Como:

x0 = 0  Contratar 5 trabajadores.
x1 = 5  Contratar 3 trabajadores.
x2 = 8  Sin cambio.
x3 = 8  Despedir 2 trabajadores.
x4 = 6  Sin cambios.
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
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 2 la máquina r(t) – c(t)
decisiones cada año
Reemplazar
la máquina s(t) – I
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

r(t) – c(t) + fi+1(t+1) Si se conserva


fi(t) = Máx
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
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
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 ($)
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
Edad de la Máquina

6 6
K
5 5
K R
4 4 4
K R
Principio 3 R 3 3
K
K
2 R R
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
Edad (t) Utilidad Costo de Operación Valor de Rescate
(años) r(t) $ c(t)$ s(t)$

0 20000 200
1 19000 600 80000
2 18500 1200 60000
3 17200 1500 50000
4 15500 1700 30000
5 14000 1800 10000
6 12200 2200 5000
Solución
Al finalizar el Cuarto año, las maquinas podrán tener 1,2,3
o 6 años.

 t=1

 t=2
Solución

 t=3

 t=6
Etapa i=4

t C R Decisión

1 78400 79800 79800 R

2 67300 59800 67300 C


3 45700 49800 49800 R

6 4800 4800 R
Solución
Al finalizar el Tercer año, las maquinas podrán tener 1,2 o
5 años.

 t=1

 t=2
 t=5

Etapa i=3

t C R Decisión

1 85700 79600 85700 C

2 67100 59600 67100 C


5 17000 19600 19600 R
Al finalizar el Segundo año, las maquinas podrán tener 1 o
4 años.

Etapa i=2

t C R Decisión

1 85500 85500 85500 CoR

4 33400 35500 35500 R


Al finalizar el Primer año, las maquinas podrán tener 3
años.

 t=3

Etapa i=1

t C R Decisión

3 51200 55300 55300 R


Luego:

C t=2 C t=3 R
t=3 R t=1

R t=1 C t=2 C

a) R C C R b) R R C C

Costo total es de $ 55300


Problema de Reemplazo en
Equipo
Muchas empresas encaran el problema de determinar
hasta cuando usar una maquina antes de comprar una
nueva. A los problemas de este tipo se les llama
reemplazo en equipo y se resuelven con frecuencia
mediante programación dinámica.
Mientras más tiempo esté en servicio una máquina, mas
costoso será su mantenimiento y su producción será
menor.
Por eso después de determinado tiempo mas económico
será reemplazarla que mantenerla.
El problema en si es determinar la edad mas económica de
la maquina al iniciar el año, tenemos que tomar una
decisión:
•Dejar la maquina en servicio durante un año mas (C)
•Reemplazarla por una nueva (R)

r(t)  Es la utilidad anual


c(t)  Costo de operación de una maquina de t años
de edad
s(t)  Valor de salvamiento (de la venta de la maquina
vieja)
Los años son etapas i
I  Costo de una máquina nueva
C o R  Alternativas a tomar en la etapa i
 Ingreso neto máximo por los años i, i+1,…n

…Conservar
…Reemplazar
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
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
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

• W : Capacidad de peso del medio de transporte


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


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


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
 Suponga que se ha de llenar una mochila de 10 libras
con los artículos que aparecen en tabla de abajo. Para
maximizar el beneficio total, ¿Cómo se debe llenar la
mochila?

PESO BENEFICIO
Artículo 1 4 lb 11
Artículo 2 3 lb 7
Artículo 3 5 lb 12

Debido a que los pesos por unidad, wi y el peso máximo W


asumen todos valores enteros, el estado Xi sólo puede
asumir valores enteros
SOLUCION

Tenemos que r1(x1)=11x1, r2(x2)=7x2,


r3(x3)=12x3, g1(x1)=4x1, g2(x2)=3x2,
g3(x3)=5x3. Definimos que ft(d) sea el
beneficio maximo que se puede ganar con
la mochila de d libras llena con articulos
del tipo t,t+1,…3.
CÁLCULOS DE LA ETAPA 3.

f3(d) = max {12x3}


x3
donde 5x3<=d y x3 con un entero no negativo.Esto
produce
f3(10) = 24
f3(5) = f3(6) = f3(7) = f3(8) = f3(9) = 12
f3(0) = f3(1) = f3(2) = f3(3) = f3(4) = 0
x3(10) = 2
x3(9) = x3(8) = x3(7) = x3(6) = x3(5) = 1
x3(0) = x3(1) = x3(2) = x3(3) = x3(4) = 0
CÁLCULO DE LA ETAPA 2.

f2(d) = max {7x2 + f3(d-3x2) }


x2
donde x2 debe ser entero no negativo que cumpla con 3x2 <= d.
Obtenemos ahora
7(0) + f3(10) = 24* x2 = 0
7(1) + f3(7) = 19 x2 = 1

f2(10) = max 7(2) + f3(4) = 14 x2 = 2


7(3) + f3(1) = 21 x2 = 3
Así, f2(10) = 24 y x2(10) = 0.
7(0) + f3(9) = 12 x2 = 0
7(1) + f3(6) = 19 x2 = 1

f2(9) = max 7(2) + f3(3) = 14 x2 = 2


7(3) + f3(0) = 21* x2 = 3

Entonces f2(9) = 21 y x2(9) = 3.

7(0) + f3(8) = 12 x2 = 0

f2(8) = max 7(1) + f3(5) = 19 x2 = 1


7(2) + f3(2) = 14* x2 = 2
Entonces f2(8) = 19 y x2(8) = 1.

7(0) + f3(8) = 12 x2 = 0

f2(7) = max 7(1) + f3(5) = 19 x2 = 1


7(2) + f3(2) = 14* x2 = 2

Entonces f2(7) = 14 y x2(7) = 2.

7(0) + f3(6) = 12 x2 = 0

f2(6) = max 7(1) + f3(3) = 7 x2 = 1


7(2) + f3(0) = 14* x2 = 2
Entonces f2(6) = 14 y x2(6) = 2.

7(0) + f3(5) = 12* x2 = 0

f2(5) = max 7(1) + f3(2) = 7 x2 = 1

Entonces f2(5) = 12 y x2(5) = 0.

7(0) + f3(4) = 0 x2 = 0

f2(4) = max 7(1) + f3(1) = 7* x2 = 1

Entonces f2(4) = 7 y x2(4) = 1.

7(0) + f3(3) = 0 x2 = 0

f2(3) = max 7(1) + f3(0) = 7* x2 = 1


Entonces f2(3) = 7 y x2(3) = 1.

f2(2) = 7(0) + f3(2) = 0 x2 = 0

Entonces f2(2) = 0 y x2(2) = 0.

f2(2) = 7(0) + f3(1) = 0 x2 = 0

Entonces f2(1) = 0 y x2(1) = 0.

f2(0) = 7(0) + f3(0) = 0 x2 = 0

Entonces f2(0) = 0 y x2(0) = 0.


CÁLCULO DE LA ETAPA 1.

11(0) + f2(8) = 24 x2 = 0

f1(10) = max 11(1) + f2(5) = 25* x2 = 1


11(2) + f2(2) = 22 x2 = 2

DETERMINACIÓN DE LA SOLUCIÓN OPTIMA

Tenemos que f1(10) = 25 y x1(10) = 1. Por lo tanto, debemos meter


un articulo del tipo 1 en la mochila. Luego tenemos lugar para
10 - 4 = 6 lb para artículos tipo 2 y tipo 3 y, por lo tanto, debemos
meter x2(6) = 2 artículos del tipo 2. Por ultimo, tenemos 6 - 2(3) = 0
lb lugar para artículos del tipo 3.
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
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
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
• Ci(Zi) : Costo de producción para el período i
Costo de producción para el período i es:

0 si Zi = 0
Ci(Zi)
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
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) }


i = 1, 2, ……., n
0 < Zi < Di + Xi+1
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


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
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
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 del horizonte del año - n
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,1Ii-1 + qi-1,2Ii-1

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


Xi = Pi + (qi-1,1 – qi-1,2)Ii-1 + qi-1,2Xi-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) que
reportan las inversiones en Función Objetivo
ambos bancos al final del Máx Z = S1 + S2 + .… + Sn
año n
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 )Ii + Xi
(n+1-i)
 2
(n+1-i)

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

Sn = (  1 + qn1 –  2 – qn2 )In + Xn( +q


n n2 )
Sn = (  1 + qn1 – 2 – qn2 )In + Xn(  +q
n n2 )

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)
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
BANCO 1 BANCO 2

Tasa L1=(1+0.08) L2=(1+0.078)

1 0.018 0.018+0.005=0.023
2 0.017 0.022
Bonificación 3 0.026
0.021
4 0.025 0.030
n=4
p1 = $4000
p2 = p3 = p4 = $2000

S4 = (L1 + q41 - L2 - q42)I41 + (L2 + q42)x4


S4 = (1.08 + 0.025 - 1.078 - 0.030)I41 + (1.078 + 0.030)x4
S4 = -0.03I4 + 1.108x4

como -0.03I4 < 0, para max función I4 = 0

Estado F4(x4) I4

X4 1.108x4 0
f3(x3) = max { S3 + f4(x4) }
0 ≤ I3 ≤ x3
n=3

S3 = (1.082 - 1.0782) I3 + 1.0782x3


S3 = 0.00432I3 + 1.1621x3

x4 = 2000 + (q31 - q32) I3 + q32 x3


x4 = 2000 + (0.021 - 0.026) I3 + 0.026x3
x4 = 2000 - 0.005I3 + 0.026x3

f3(x3) = max {0.00432I3 + 1.1621x3 + 1.108(2000 - 0.005I3 +


0.026x3)}
f3(x3) = max {2216 - 0.00122I3 + 1.1909x3}

=> I3= 0
n=2

S2 = (1.083 - 1.0783) I2 + 1.0783x2


S2 = 0.006985I2 + 1.25273x2

x3 = 2000 + (q21 - q22) I2 + q22 x2


x3 = 2000 - 0.005I2 + 0.022x2

f2(x2) = max{0.006985I2 + 1.25273x2 + 2216 + 1.1909(2000 -


0.005I3 + 0.022x2)}
f2(x2) = 4597.8 + 1.27893x2 + 0.0010305I2

como 0 ≤ I2 ≤ x2

=> f2(x2) = 4597.8 + 1.27996x2


n=1

S1 = (1.084 - 1.0784) I1 + 1.0784x1


S1 = 0.01005I1+ 1.3504x1

x2 = 2000 + (q11 – q12) I1 + q12 x1


x2 = 2000 - 0.005I1 + 0.023x1

f1(x1) = max{0.01005I4 + 1.3504x1 + 4597.8 + 1.27996(2000 -


0.005I1 + 0.023x1)}
f1(x1) = 7157.7 + 1.37984x1 + 0.00365I1

como I1 = $4000 , x1 = $4000

=> f1(x1) = 7157.7 + 1.38349x1


f1(x1) = 12691.66 ;
x2 = 2000 – 0.005I1 + 0.023x1
x2 = 2000 - 0.005(4000) + 0.023(4000)
x2 = 2072;

x3 = 2000 – 0.005I2 + 0.022x2


x3 = 2035.224

x4 = 2000 - 0.005I3 + 0.026x3


x4 = 2052.92

I1 = x1 = $4000 → banco 1
I2 = x2 = $2072 → banco 1
I3 = 0 x3 = $2035.22 → banco 2
I4 = 0 x4 = $2052.92 → banco 2
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 existen
P5
probabilidades de llegar a más P2
de un estado
P
6
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
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 ?
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


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 { p f
k=1
k i+1 (Xi+1) } para Yi < Xi
Problema de Inversión:
m
Función Recursiva
p f
fi(Xi) = Máx {
k=1
k i+1 (Xi + rkYi) }

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
Problema de Inversión:
m
fn(Xn) = Máx { 
k=1
p f (Xn+1) }
k n+1

m
fn(Xn) = Máx {  pk Xn+1) }
k=1
m
fn(Xn) = Máx { 
k=1
p k (Xn + rkYn) }

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


máximo valor de Yn ocurre cuando Yn = Xn
Problema de Inversión:
m
fn(Xn) = 
k=1
p k (Xn + rkXn)
m
fn(Xn) =  p X (1 + r )
k n k m
k=1
m fn(Xn) = Xn p k (1 + rk)
fn(Xn) = Xn 
k=1
(p k + p kr k ) k=1

m m
fn(Xn) = Xn( 
k=1
p k + 
k=1
pr) k k

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


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


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:
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