Está en la página 1de 8

PROGRAMACIN DINMICA:

La gracia de la programacin dinmica es transformar problemas complejos en


problemas ms simples, teniendo estructuras especiales que nos permiten separar las
variables.
Problema 9: P. Dinmico Entero (Introductorio)

Una familia est interesada en planificar sus vacaciones a fin de ao y tiene la


posibilidad de visitar 3 ciudades. El presupuesto alcanza para salir de vacaciones durante 5
das. En una comida familiar el Padre pregunt a cada uno de los integrantes de la familia y
calibr la siguiente funcin de utilidad del viaje:
2 x1 + x2 + 3 x3

Donde xi es el nmero de das en la ciudad i. Plantee y resuelva en forma


dinmica el problema que maximiza la utilidad de la familia.
Respuesta:
El problema de optimizacin es:

Max : 2 x1 + x2 + 3 x3
s.a.
x1 + x2 + x3 5

xi Enteros 0 i = 1, 2,3

Procedamos a resolver el problema por programacin dinmica!.


PASO 1: Vamos de atrs para adelante

Supongamos que la familia est decidiendo por la ltima cuidad, dadas las
elecciones en la primera y segunda cuidad, que ya se hicieron y son ptimas.

Supongamos que nos quedan y3 das disponibles (recursos disponibles).
Cul es la mejor decisin en la tercera cuidad?
Si este fuera el caso, el problema quedara:
ETAPA 3:

Max : 3 x3

s.a.
f3 ( y3 ) =
0 x3 y3
x Entero
3

La solucin ptima de este problema es fcil, hay que asignar todo lo que nos sobra en
visitar la tercera cuidad.

Hagamos una tabla:

y3

f3 ( y3 )

x3 *

0
0
0
1
3
1
2
4.24
2
3
5.20
3
4
6
4
5
6.71
5
Nota: El ptimo es en funcin de los recursos que tenemos disponibles
ETAPA 2:

Ahora suponemos que slo se ha elegido los das en la primera cuidad y es ptimo.
Los das ptimos a elegir en la segunda ciudad dado que tenemos y2 das para visitar la
segunda y la tercera se determinan con el siguiente problema:
Max : x2 + f3 ( y2 x2 )

s.a.
f2 ( y2 )
0 x2 y2
x Entero
2
Nota: Lo que nos sobrara para visitar la tercera cuidad sera ( y2 x2 ) .
Hagamos una tabla:
y2 x2 = 0
0
1
2
3
4
5

0
3
4.24
5.20
6.00
6.71

x2 = 1

x2 = 2

x2 = 3

x2 = 4

x2 = 5

1
4
5.24
6.20
7

1.41
4.41
5.65
6.61

1.73
4.73
5.97

2
5

2.23

f2 ( y2 )
0
3
4.24
5.24
6.20
7

x2 *
0
0
0
1
1
1

ETAPA 1:
Ahora no hemos elegido anteriormente nada. Tenemos por enunciado 5 das de
recurso ( y1 = 5 ) , esto se llama condicin de borde. El problema para elegir la cantidad de
das ptimos a visitar la cuidad 1 es:
Max : 3 x1 + f2 (5 x1 )

s.a.
v* = f1 (5)
0 x1 5
x Entero
1

Nota: f1 (5) corresponde justamente al valor de la funcin objetivo de nuestro problema.


Hagamos una tabla:
y1 x1 = 0
5

x1 = 1

8.20

x1 = 2

8.06

x1 = 3

7.70

x1 = 4

x1 = 5

4.47

f1 ( y1 )

8.20

x1 *

Luego tenemos que el valor ptimo es 8.20.


Cmo obtenemos la solucin objetivo?
PASO 2: Vamos de adelante para atrs
Sabemos que x1* = 1 (de la 3ra tabla).
Esto implica que dejamos y2 = 4 . Con este recurso x2 * = 1 (De la 2da tabla).
Esto implica que y3 = 3 , luego x3 * = 3 (tabla 1).

IMPORTANTE: Notemos que las variables x1 , x2 , x3 fueron escogidas de forma arbitraria.


Puede haber sido en cualquier orden.

Problema 2: Dinmico Continuo


Resolver el siguiente problema a travs de programacin dinmica:
Max : x12 x2 2 x3
s.a.

x1 + x2 + x3 10
xi 0 i=1,2,3

Respuesta:
Nota: Esta vez tenemos un problema continuo pero la base es la misma.
ETAPA 3
Si tenemos y3 recursos para la tercera variable, ya habiendo elegido x1 * y x2 * , el
problema es:
Max : x3
f3 ( y3 )
0 x3 y3
Se tiene que el ptimo es:
x3 *( y3 ) = y3
f3 ( y3 ) = y3

ETAPA 2
Si tenemos y2 recursos, ya habiendo elegido x1 * , el problema es:
Max : x2 2 f3 ( y2 x2 )
Max : x2 2 ( y2 x2 )
 f2 ( y2 )
f2 ( y2 )
0 x2 y2
0 x2 y2

Se tiene que el ptimo es:

2
y2
3
4 3
f2 ( y2 ) =
y2
27

x2 *( y2 ) =

ETAPA 1
Ahora si tenemos y1 = 10 recursos el problema es:

2 4
Max : x12 f 2 (10 x1 )
(10 x1 )3
Max : x1
 v* = f1 (10)
v* = f1 (10)
27
0 x1 10
0 x1 10
Se tiene que el ptimo es:
x1* = 4
v* = f1 (10) = 512

Luego la solucin ptima se obtiene en cadena:


Si x1* = 4  queda y2 = 6  x2 * = 4  queda y3 = 2  x3 * = 2

Problema 3: Produccin e Inventario


Una planta produce un solo producto y enfrenta las siguientes demandas en los perodos
1,..4:
Periodo
1 2 3
1 3 2
Demanda: d n
Las demandas pueden ser satisfechas con lo producido el periodo anterior.
Sean:

K: Costo fijo de produccin = 5


C: Costo unitario variable de produccin = 2
Q: Capacidad mensual mxima de produccin = 3
h: Costo unitario de manutencin de inventario = 1

Se debe decidir cunto producir en cada periodo para satisfacer la demanda a mnimo
costo.
Respuesta:

Las variables de decisin son:


Yn : Tamao del lote de produccin del perodo n
X n : Inventario al final del perodo n
Z n : 1 si Yn > 0, 0 en caso contrario

El problema de optimizacin es:

Min : 5Z n + 2Yn + X n
3

k =1

Min : KZ n + CYn + hX n

s.a.
X 1 = Y1 1

s.a.
X n = X n 1 + Yn d n n

X 3 = X 2 + Y3 2

k =1

Yn QZ n n

X 2 = X 1 + Y2 3

Z n {0,1}

Y3 3Z 3

Y2 3Z 2
Y1 3Z1

Z n {0,1}

Para el modelo de programacin dinmica definimos:

 fn ( Sn ) := Costo mnimo asociado a los perodos n, n+1, , N si el inventario al principio


del perodo n es S n = X n1 .
Por lo tanto, el modelo en cada etapa queda:

Min : (Yn ) + f n +1 ( Sn + Yn d n )

s.a.
f n (Sn ) =
Sn + Yn d n 0
Y 3
n

Con:

h( Sn d n )
(Yn ) =
K + CYn + h( S n + Yn d n )

si
si

Yn = 0

Yn > 0

Luego el valor ptimo ser f1 (0) = V (inicialmente no hay inventario).


fk ( S k ) = 0 k > 3 (son slo 3 periodos)

ETAPA 3:
0
1
2
3

0
1

7
8
9

9
10
11
12

12
13
14
15

9
7
0
1

* (ptimo)
2
1
0
0

Es decir, en cada caso lo ptimo es producir lo menos posible, como es lgico.


ETAPA 2:
0
1
2
3

0+9

7+9
8+7

9+9
10+7
11+0

11+9
12+7
13+0
14+1

20
18
13
9

* (ptimo)
3
2
3
0

26

* (ptimo)
3

ETAPA 1:
0

7+20

10+18

13+13

Por lo tanto, resolviendo de vuelta hacia adelante, lo ptimo es producir 3 unidades en el


primer periodo, 3 en el segundo y ninguna en el tercero. El costo total entonces ser 26.

Problema 4:

Se ha encargado un estudio a la Escuela. El problema es tan complejo que sta ha formado


3 equipos diferentes para resolverlo; sin embargo, las probabilidades de fallar an son altas.
Para asegurarse, la Escuela ha decidido contratar hasta 2 investigadores adicionales, que
deben repartirse entre los equipos de alguna forma. Se sabe que las probabilidades de fallar
de cada equipo por separado, en funcin de la cantidad de investigadores extra asignados a
cada uno, es
Investigadores
extra
0
1
2

1
0,4
0,2
0,15

Equipo
2
0,6
0,4
0,2

3
0,8
0,5
0,3

Usando programacin dinmica, encuentre la asignacin ptima de investigadores a


equipos.
Respuesta:
Sean:

 X i = Nmero de investigadores asignados al equipo i


 Pi ( X i ) = probabilidad de fallar del equipo i al agregarle X i investigadores.

La probabilidad total de fallar es que los 3 equipos fallen simultneamente, por lo que el
problema de optimizacin es:
Min : P1 ( X 1 ) P2 ( X 2 ) P3 ( X 3 )
s.a.

X1 + X 2 + X 3 = 2
X1 , X 2 , X 3 0

Usando programacin dinmica, necesitamos definir:


fn ( Yn ) = Mnima probabilidad de falla asociada a los equipos n, n + 1, . . . ,N si quedan Yn
investigadores por asignar. El problema dinmico queda definido por:
Min : Pn ( X n )* fn+1 (Yn X n )

s.a.
fn (Yn )
X n Yn
X Entero 0
n


El valor ptimo entonces es f1 (2) y fk ( Yk ) = 1 k > 3

ETAPA 3:
y3
0
1
2

0,8
0,5
0,3

x3 *
0
1
2

ETAPA 2:
y2
0
1
2

x2 = 0

x2 = 1

x2 = 2

x1 = 0

x1 = 1

x1 = 2

0,60,8
0,60,5 0,40,8
0,60,3 0,40,5 0,20,8

0,48
0,3
0,16

x2 *
0
0
2

ETAPA 3:
y1

0,40,16 0,20,3 0,150,48 0,06

x1 *

Por lo que resolviendo de vuelta, conviene asignar uno de los investigadores al equipo 1 y
el otro al equipo 3. Al hacerlo as, se obtiene una probabilidad total de fallar de 0,06.

También podría gustarte