Está en la página 1de 15

Ing. Miguel Jiménez C. M.Sc.

SOLUCIONARIO
Sobre Programación Dinámica
por
“En algún punto de la línea de desarrollo descubrimos
Ing. Miguel Jiménez Carrión M.Sc lo que somos en realidad, y luego tomamos nuestra verdadera
decisión por la cual somos responsables. Tome esa decisión
mjimenezc@speedy.com.pe
principalmente por usted, ya que nunca se puede vivir realmente
jim_car_miguel@hotmail.com
la vida de otra persona.”

Modelo de la Diligencia Eleanor Roosevelt


Asignación de Recursos
El modelo de la mochila
Producción e Inventario
Confiabilidad

R1 (D1, S2) R2 (D2, S3) R3 (D3, S4)

S1=6 S2 = S1 - D1 S3 = S2 - D2 S4 = S3 - D3
Región 1 Región 2 Región 3

D1 D2 D3
¿Cuántos agentes ¿Cuántos agentes ¿Cuántos agentes
asignar? asignar? asignar?

2004
2
* Programación Dinámica. Ing. Miguel Jiménez C. M.Sc.
PROGRAMACIÓN DINÁMICA Ahora es posible usar la función general de la programación dinámica y luego representar esa
función en términos del problema como sigue:
La programación dinámica es un método para resolver ciertos problemas de programación
matemática, cuya característica de estos problemas es que los modelos matemáticos que los
representan son complejos y por tanto requieren mucho procesamiento de cómputo para encontrar
Función Recursiva
General de PD.
f n* ( S n ) = g [ R n ( D n , S n +1 ) + f n*+1 ( S n +1 )]
su solución, además pueden ser divididos en problemas más pequeños. Esta característica del
problema de dividirse en subproblemas es aprovechada por la programación dinámica para
encontrar la solución. Función Recursiva f n* ( S n ) = Min [ R n ( D n , S n +1 ) + f n*+ 1 ( S n +1 )]
La forma de operar de la programación dinámica es dividir el problema en problemas más para el Problema Dn ,S n
pequeños llamados subproblemas, luego inicia el proceso de solución por etapas; en donde cada
etapa del proceso resuelve un subproblema y al finalizar con todas las etapas, el problema es Donde:
completamente resuelto. Entre una etapa y la siguiente existe una liga que permite el nexo entre
etapas esta liga se llama función recursiva. Rn (Dn , Sn+1 ) = Representa la distancia por tomar la decisión Dn en la etapa n, para pasar
del estado Sn al estado Sn+1
Los ejemplos que siguen muestran el proceso de solución describiendo al mismo tiempo la
notación de la función recursiva, explicándose lo esencial y las características particulares de cada f n*+1 ( S n +1 ) = Representa el mejor valor en la etapa n+1, cuando el estado es Sn+1
problema:

Caso1: Problema de la Diligencia


f n* ( S n ) = Representa el mejor valor en la etapa n, cuando el estado es Sn

1) Este problema está referido a encontrar la ruta óptima (ruta mínima o ruta más confiable), para
viajar desde un punto llamado nodo inicial o fuente hacia otro llamado nodo final o destino a través Nota: debe notar que tanto Sn, como Sn+1 toman un conjunto de valores, por ejemplo S3 toma los valores:
de una red de caminos que los conecta dados los retornos (costos beneficios tiempo, etc),
(5, 6 y 7) y S3+1 = S4, toma los valores (8, 9, 10 y 11).
asociados con los arcos o ramas de la red.

Utilizando la forma tabular de la PD tenemos, para las diferentes etapas:


8
3
9
2 11 5 Para n = 5
2 8
5
8
11 9 3 12 f 5* ( S 5 ) = Min [ R 5 ( D 5 , S 5 + 1 ) + f 5*+ 1 ( S 5 + 1 )]
4 D 5 ,S 5 +1
2 4 7
1 3 6
14
5 6 Estado DECISIÓN (D5)
9 6
10 8 13 3 S5 14 f 5* (S5 ) D5* ( S 5 )
3
6 9 12 4 4 14
4 7 5
4
13 3 3 14
11

1 2 3 4 5

Para n = 4
En este caso lo primero que hay que reconocer es, que al tomar una decisión para decidir que ruta f 4* ( S 4 ) = Min [ R 4 ( D 4 , S 5 ) + f 5* ( S 5 )]
D 4 ,S 5
seguir en forma general para todo el problema, involucra analizar toda la red esto hace que el
problema sea complejo, por cuanto del nodo 1 al 14 existen múltiples alternativas en las que se Estado DECISIÓN (D4)
encuentran varias ramas en la ruta. En segundo lugar, ver si es posible dividir el problema en S4 12 13 f 4* (S 4 ) D4* ( S 4 )
subproblemas o etapas de manera que la decisión en cada subproblema sea más fácil; en este 8 9 + 4 =13 - 13 12
sentido se ha dividió el problema en 5 etapas, de la 1 a la 5 conforme se aprecia en la parte inferior 9 3+4= 7 6+3= 9 7 12
de la red. Obsérvese que es más fácil tomar una decisión en cada etapa pues la decisión será 10 7 + 4 = 11 8 + 3 = 11 11 12,13
directa; por ejemplo si estamos en la etapa 3 (subproblema 3) al inicio nos podemos encontrar en
11 - 5+3= 8 8 13
los nodos 5 , 6 ó 7 y podemos ir a los nodos 8, 9, 10 ú 11 la decisión es inmediata, pues solo existe
una rama en cada alternativa. Esta característica es importante reconocer para tomar la decisión
de aplicar la metodología de la programación dinámica.

3 4
* Programación Dinámica. Ing. Miguel Jiménez C. M.Sc.
Para n = 3 Caso 2: Asignación de recursos con retornos tabulados
f 3* ( S 3 ) = Min [R 3 (D 3 , S 4 ) + f 4* ( S 4 )] 2) Problema de Presupuesto de Capital
D 3 ,S 4
Una compañía tiene tres fábricas existentes, y en cada una se está considerando una posible
expansión. El capital total asignado para expansión es 5 millones de soles. El número de planes
Estado
S3
DECISIÓN (D3) f 3* (S3 ) D3* ( S 3 ) alternativos para la fábrica i,(i = 1,2,3) incluyendo la posibilidad de ninguna expansión, el costo
esperado adicional de cada alternativa para la fábrica i y el retorno correspondiente se tabulan en
8 9 10 11
la siguiente tabla.
5 3 + 13 =16 2+7= 9 - - 9 9
6 8 + 13 = 24 11 + 7 = 18 5 + 11 = 16 9 + 8 = 17 16 10 Fábrica 1 Fábrica 2 Fábrica 3
7 - - - 4 + 8 = 12 12 11 Alternativa C R C R C R
1 0 0 0 0 0 0
2 1 5 2 8 1 3
3 2 6 3 9 - -
Para n=2 4 - - 4 12 - -

f 2* ( S 2 ) = Min [ R 2 (D 2 , S 3 ) + f 3* ( S 3 )] El objetivo del problema de decisión es seleccionar un plan factible para cada fábrica i tal que se
D 2 ,S 3 maximice el ingreso total resultante.

Estado DECISIÓN (D2) La solución de este problema siguiendo la metodología de programación dinámica es dividir el
S2 5 6 7 D 2* ( S 2 )
2 11+9=20 - -
f 2* (20
S2 ) 5
problema en tres etapas en el cual cada etapa constituye una fábrica, el estado del sistema es el
dinero disponible para cada etapa o fábrica y la decisión que se toma en cada etapa es ¿cuanto
3 8+9=17 4+16=20 9+12=21 17 5 invertir?. Procediendo de la siguiente manera:
4 - 6+16=22 6+12=18 18 7 Se grafica las etapas del problema para una mejor ilustración y se aplica el método de solución de
derecha a izquierda.

Para n=1 R1(D1,S2) R2(D2,S3) R3(D3,S4)

f 1 * ( S 1 ) = Min [ R 1 ( D 1 , S 2 ) + f 2* ( S 2 )] S1= 5 Fábrica 1 S2=S1-D1 Fábrica 2 S3=S2-D2 Fábrica 3


S4=S3-D3
D 1 ,S 2

Estado DECISIÓN (D1)


S1 2 3 4 f1* ( S1 ) D1* ( S1 ) ¿Cuánto Invertir? ¿Cuánto Invertir? ¿Cuánto Invertir?
1 5+20=25 2+17=19 3+18=21 19 3

Rn (Dn,Sn) : representa la confiabilidad por tomar la decisión Dn (instalar 1, 2,ó 3); unidades en
¿cómo se obtiene el recorrido mas corto? paralelo en la etapa n ( componente 1, 2 ó 3) para pasar del estado Sn (dinero disponible al inicio
de la etapa n) al estado Sn+1.
Esto se logra comenzando desde la etapa 1, de la siguiente manera:
Para n=3 (fábrica 3)
* *
Si se está en el nodo 1 la decisión óptima es ir al nodo 3, luego se pasa a la etapa 2. ƒ 3 (S3) = Max [R3 (D3,S4) + ƒ 4(S4)]
Si se está en el nodo 3 la decisión óptima es ir al nodo 5, luego se pasa a la etapa 3. 0≤ D3 ≤ 1
Si se está en el nodo 5 la decisión óptima es ir al nodo 9, luego se pasa a la etapa 4. 0≤ S3 ≤ 5
Si se está en el nodo 9 la decisión óptima es ir al nodo 12, luego se pasa a la etapa 5 Decisión (D3)
Si se está en el nodo 12 la decisión óptima es ir al nodo 14. Estado S3 ƒ*3(S3) D*3(S3)
0 1
. 0 0 - 0 0
La distancia total recorrida se obtiene sumando las distancias de las ramas involucradas en el 1 0 3 3 1
recorrido en este caso es: 1 – 3 – 5 – 9 – 12 – 14 Î 2 + 8 + 2 + 3 + 4 = 19. 2 0 3 3 1
3 0 3 3 1
4 0 3 3 1
5 0 3 3 1

5 6
* Programación Dinámica. Ing. Miguel Jiménez C. M.Sc.
Para n =2 (fábrica 2) Rn (Dn,Sn) : representa las ventas por tomar la decisión Dn (asignar 1, 2, 3, ó 4); agentes en la
ƒ*2 (S2) = Max [R2 (D2,S3) + ƒ*3(S3)] etapa n ( región 1, 2 ó 3) para pasar del estado Sn (agentes disponibles al inicio de la etapa n) al
0≤ D2 ≤ 4 estado Sn+1.
0≤ S 2≤ 5
Decisión (D2) Solución
Estado S2 ƒ*2(S2) D*3(S2)
0 2 3 4 Obsérvese que solo se cuenta con 6 agentes y que por lo menos debe asignarse uno a cada
0 0+0=0 ---- ---- ---- 0 0 región, lo que significa que cada ves que se evalúa una región debe de los seis reservarse 2 para
1 0+3=3 ---- ---- ---- 3 0 las otras dos regiones con lo cual lo máximo disponible para cada región es 4, por eso en la tabla
2 0+3=3 8+0= 8 ---- ---- 8 2 se tiene asignaciones de 1 a 4. El diagrama de bloques es:
3 0+3=3 8+3=11 9+0= 9 ---- 11 2
R1 (D1, S2) R2 (D2, S3) R3 (D3, S4)
4 0+3=3 8+3=11 9+3=12 12+0=12 12 3, 4
5 0+3=3 8+3=11 9+3=12 12+3=15 15 4
S1=6 S2 = S1 - D1 S3 = S2 - D2 S4 = S3 - D3
Región 1 Región 2 Región 3
Para n = 1 (fábrica 1)
* *
ƒ 1 (S1) = Max [R1 (D1,S2) + ƒ 2 (S2)]
0≤ D1 ≤ 1 D1 D2 D3
0≤ S1 ≤ 5 ¿Cuántos agentes ¿Cuántos agentes ¿Cuántos agentes
Decisión (D1) asignar? asignar? asignar?
Estado S1 ƒ*1(S1) D*1(S1)
0 1 2
5 0+15=15 5+12=17 6+11=17 17 1 Ahora antes de evaluar la función recursiva se deben determinar para cada etapa los intervalos de
variación tanto de la decisión como del estado de los agentes disponibles, así tenemos:
El problema tiene soluciones óptimas alternativas:
Etapa 1:
Invertir 1 Millón de soles en la fábrica 1 5 1≤ D1 ≤4 o se decide asignar 1 agente que es el mínimo o se asigna hasta 4 que es el máximo.
Invertir 3 Millones de soles en la fábrica 2 9 3≤ S1 ≤6 la cantidad mínima para del recurso vendedores que deben haber para todas las etapas
Invertir 1 Millón de soles en la fábrica 3 3 17 y cumplir con los requisitos mínimos es 3; pues son 3 regiones, dado que por lo menos
debe asignarse 1 vendedor en cada región; y lo máximo que debe asignarse para las
Invertir 1 Millón de soles en la fábrica 1 5 tres etapas es lo que se tenga disponible (este mismo razonamiento vale para las etapas
Invertir 4 Millones de soles en la fábrica 2 12 siguientes).
Invertir 0 Millones de soles en la fábrica 3 0 17
Etapa 2:
Invertir 2 Millones de soles en la fábrica 1 6
1≤ D2 ≤4 o se decide asignar 1 agente que es el mínimo o se asigna hasta 4 que es el máximo.
Invertir 2 Millones de soles en la fábrica 2 8
2≤ S2 ≤5 porqué son 2 regiones, y por lo menos debe asignarse 1 a cada región o el máximo
Invertir 1 Millón de soles en la fábrica 3 3 17
existente al inicio de la etapa 1 menos 1, que es lo mínimo que requiere la etapa1.

Etapa 3:
3) Asignar Agentes Vendedores
El gerente de ventas de una editorial de libros de texto universitarios tiene 6 agentes de ventas que 1≤ D3 ≤4 o se decide asignar 1 agente que es el mínimo o se asigna hasta 4 que es el máximo.
puede asignar a tres regiones distintas del país. Ha decidido que cada región debe tener por lo 1≤ S3 ≤4 porqué es una región, y por lo menos debe asignarse 1 a esta región o el máximo
menos un agente y que cada agente individual debe quedar restringido a una de estas regiones, existente al inicio de la etapa 1 menos 2 (1 agente para la región 1 y un agente para la
pero ahora quiere determinar cuántos agentes debe asignar a las respectivas regiones con el fin región 2).
de maximizar las ventas. La siguiente tabla da el incremento estimado en las ventas de cada
región (en las unidades apropiadas) si se le Ahora si queremos generalizar el intervalo Sn, para cualquier valor de n entre 1,2, y 3, tenemos:
Región
1 2 3 asignan diferentes cantidades de agentes.
Utilizando la programación dinámica determine: 3 – n + 1 ≤ Sn ≤ 6 – n + 1
número 1 35 21 28 La función recursiva es:
de 2 48 42 41 a) La función recursiva asociada al problema
agentes 3 70 56 63 indicando los límites máximos y mínimos de la
4 89 70 75 variable de estado y de la decisión para cualquier fn (Sn) =Max {Rn(Dn,Sn) + f*n+1(Sn-Dn)}
etapa “n”. 1≤Dn ≤4
b) La solución del problema. 3-n+1≤Sn≤6-n+1

7 8
* Programación Dinámica. Ing. Miguel Jiménez C. M.Sc.
Ahora se utiliza la forma tabular del método de programación dinámica para su solución Notas estimadas
comenzando por la etapa 3: Curso
No DE DÍAS DE ESTUDIO
IOII SO RM Mat.
n=3 1 09 07 08 12
f3 (S3) =Max {R3(D3,S4) + 0 } 2 10 08 11 14
1≤ D3 ≤4 3 12 12 14 18
1≤ S3 ≤4 4 14 18 16 19
Decision D3
S3 F3 (S3) D3 (S3)
1 2 3 4 En este caso se divide el problema en 4 etapas, cada etapa representa un curso y para cada uno
1 28 - - - 28 1 se decide cuantos días estudiar, al inicio de la etapa 1, tenemos 7 días que serán asignados a
2 28 41 - - 41 2 todas las etapas, como se requiere las notas mínimas especificadas se debe tomar la decisión de
3 28 41 63 - 63 3 estudiar por lo menos un día cada curso y como máximo 4 días, para lo cual la cantidad de tiempo
4 28 41 63 75 75 4 disponible al inicio de cada etapa n es: 4 – n + 1 ≤ Sn ≤ 7 – n + 1.

n=2 El diagrama de bloques de este problema es:


f2 (S2) =Max {R2(D2,S3) + f*3(S2-D2) } R2 (D2, S3) R3 (D3, S4) R3 (D3, S4)
R1 (D1, S2)
1≤ D2 ≤4
2≤ S2 ≤5
Decisión D2 F2(S2) D2(S2) S1 = 7 S2 = S1 - D1 S3 = S2 - D2 S4 = S3 - D3 S5 = S4 - D4
S2 Curso Curso Curso Curso
1 2 3 4 Mat.
IOII SO RM
2 21 + 28 = 49 - - - 49 1
3 21 + 41 = 62 42 + 28 = 70 - - 70 2
4 21 + 63 = 84 42 + 41 = 83 56 + 28 = 84 - 84 1, 3 D1 D2 D3 D3
5 21 + 75 = 96 42 + 63 = 105 56 + 41 = 97 70 + 28 = 98 105 2 ¿Cuántos días ¿Cuántos días ¿Cuántos días ¿Cuántos días
asignar? asignar? asignar? asignar?
n=1
f1 (S1) =Max {R1(D1,S2) + f*2(S1-D1) } Rn (Dn,Sn) : representa la nota que se obtiene por tomar la decisión Dn (asignar 1, 2, 3, ó 4); días
1≤ D1 ≤4 en la etapa n (curso IOII, SO, RM ó Mat.) para pasar del estado Sn (días disponibles al inicio de la
etapa n) al estado Sn+1.
1≤ S1 ≤4
Decisión D1 F1 (S1) D1 (S1)
S1 Función Recursiva:
1 2 3 4
6 35 + 105 =140 48 + 84 = 132 70 + 70 = 140 89 + 49 = 138 140 1, 3 fn (Sn) =Max {Rn(Dn,Sn+1) + f*n+1(Sn-Dn)}
1≤Dn ≤4
Solución óptima: 4 – n + 1≤Sn≤ 7 – n + 1.
Alternativa 1
Asignar 1 agente a la región 1: ventas obtenidas 35 Para n = 4
2 agentes a la región 2: ventas obtenidas 42 f4 (S4) =Max {R4(D4,S5) + 0 }
3 agentes a la región 3: ventas obtenidas 63 total ventas 140 1≤ D4 ≤4
Alternativa 2 1≤S4≤ 4.
Asignar 3 agentes a la región 1 ventas obtenidas 70 Decisión D4
S4 F4(S4) D4(S4)
2 agentes a la región 2 ventas obtenidas 42 1 2 3 4
3 agentes a la región 3 ventas obtenidas 23 total ventas 140 1 12 12 1
2 12 14 14 2
4) Asignar el recurso Tiempo 3 12 14 18 18 3
Usted cuenta con 7 días antes de que se inicien los exámenes finales de sus cuatro cursos y 4 12 14 18 19 19 4
desea asignar este tiempo de estudio de la manera más efectiva que le sea posible. Usted
necesita al menos las notas mínimas que se indican para cada curso y quiere concentrarse en un
solo curso cada día de modo que desea asignar uno, dos, tres o cuatro días a cada curso. Usted
estima que las asignaciones alternativas para cada curso le proporcionaría la nota que se
muestran en la tabla siguiente. Resuelva este problema usando programación dinámica de
manera que maximice el promedio que obtenga de los cuatro cursos e indique su respuesta.

9 10
* Programación Dinámica. Ing. Miguel Jiménez C. M.Sc.
Para n = 3 Número de Área
Comerciales 1 2 3 4
f3 (S3) =Max {R3(D3,S4) + f*4(S3-D3) }
1≤ D3 ≤4 0 0 0 0 0
2≤ S3 ≤ 5 1 4 6 5 3
Decisión D3 2 7 8 9 7
S3 F3 (S3) D3 (S3) 3 7 10 11 12
1 2 3 4
4 12 11 10 14
2 08+12=20 20 1 5 15 12 9 16
3 08+14=22 11+12=23 23 2
El recurso escaso que tiene que distribuirse en las diferentes estaciones ubicadas en diferentes
4 08+18=26 11+14=25 14+12=26 26 1,3 áreas, es el número de comerciales y del cual se dispone un máximo de 5; la tabla muestra el
5 08+19=27 11+18=29 14+14=28 16+12=28 29 2 número de votos ganados si se asignan entre 0 y 5 comerciales en las diferentes áreas de modo
que el estado al inicio de cada etapa es el número de comerciales disponibles y la decisión puede
variar entre no asignar ningún comercial o asignar como máximo los 5 comerciales, en donde cada
Para n = 2 etapa representa una estación televisiva ubicada en una área determinada.
f2 (S2) =Max {R2(D2,S3) + f*3 (S2-D2) }
1≤ D2 ≤4 El diagrama de bloques correspondiente es
3≤ S2 ≤ 6
Decisión D2 R2 (D2, S3) R3 (D3, S4) R3 (D3, S4)
S2 F2 (S2) D2 (S2) R1 (D1, S2)
1 2 3 4
3 07+20=27 27 1
4 07+23=30 08+20=28 30 1 S1 = 5 S2 = S1 - D1 S3 = S2 - D2 S4 = S3 - D3 Estación S5 = S4 - D4
Estación Estación Estación
5 07+26=33 08+23=31 12+20=32 33 1 en área1 en área2 en área3 en área4
6 07+29=36 08+26=34 12+23=35 18+20=38 38 4

D1 D2 D3 D3
Para n = 2 ¿Cuántos comer- ¿Cuántos comer- ¿Cuántos comer- ¿Cuántos comer-
ciales asignar? ciales asignar? ciales asignar? ciales asignar?
f2 (S2) =Max {R2(D2,S3) + f*3 (S2-D2) }
1≤ D2 ≤4
3≤ S2 ≤ 6 Donde Rn (Dn,Sn+1), representa el número de votos ganados por asignar Dn comerciales en la
Decisión D1 F1 (S1) D1 (S1) estación del área “n” de manera que el número disponible de comerciales para el área que le sigue
S1
1 2 3 4 sea (Sn – Dn).
7 09+38=47 10+33=43 12+30=42 14+30=44 47 1 Función Recursiva:
fn (Sn) =Max {Rn(Dn,Sn+1) + f*n+1(Sn-Dn)}
Respuesta Nota 0≤Dn ≤5
Asignar al curso IOII 1 día 09 0≤Sn≤ 5
Asignar al curso SO 4 días 18
Asignar al curso RM3 1 día 08 Para n=4
Asignar al curso Mat. 1 día 12 f4 (S4) =Max {R4(D4,S5) + 0 }
47 0≤Dn ≤5
0≤Sn≤ 5
5) Estrategia para campaña electoral.
D4
Una campaña política se encuentra en su última etapa y las preliminares indican que la elección S4 f4(S4) D4(S4)
está pareja. Uno de los candidatos del cual usted es asesor, tiene suficientes fondos para comprar 0 1 2 3 4 5
tiempo de TV por un total de cinco comerciales en horas de mayor audiencia en estaciones
0 0 0 0
localizadas en cuatro áreas diferentes. Con base en la información de las preliminares se hizo una
estimación del número de votos adicionales que se pueden ganar en las diferentes áreas de 1 0 3 3 1
difusión según el número de comerciales que se compren. Estas estimaciones se dan en la 2 0 3 7 7 2
siguiente tabla en miles de votos:
3 0 3 7 12 12 3
Utilice la programación dinámica para diseñar una estrategia respecto a cómo deben distribuirse 4 0 3 7 12 14 14 4
los cinco comerciales entre las cuatro áreas con el fin de maximizar el número estimado de votos
5 0 3 7 12 14 16 16 5
ganados.

11 12
* Programación Dinámica. Ing. Miguel Jiménez C. M.Sc.
Para n =3 6) Determinar políticas y estrategias en el juego.
f3 (S3) =Max {R3(D3,S4) + f*4(S3-D3) } Usted cree haber desarrollado un sistema para ganar un juego. Sus colegas no piensan que este
0≤D3 ≤5 sistema sea tan bueno, por lo que le apuestan que si comienza con 3 fichas, usted no tendrá cinco
0≤S3≤ 5 fichas después de tres jugadas. Cada jugada incluye apostar cualquier cantidad de las fichas
disponibles y ganar o perder este mismo número de fichas. Usted cree que su sistema le dará una
D3
S3 f3(S3) D3(S3) probabilidad de 2/3 de ganar una jugada dada.
0 1 2 3 4 5 Suponiendo que usted está en lo correcto, se quiere determinar su política óptima respecto a
cuantas fichas apostar (si apuesta) en cada una de las tres jugadas. La decisión en cada jugada
0 0+0=0 0 0
deberá tomar en cuenta los resultados de las jugadas anteriores. El objetivo es maximizar la
1 0+3=3 5+0=5 5 1 probabilidad de ganar la apuesta hecha a sus colegas.
2 0+7=7 5+3=8 9+0=9 9 2
Conjeturas:
3 0 +12=12 5+7=12 9+3=12 11+0=11 12 0,1,2 El estado en cada etapa estará representado por el número de fichas a jugar, o sea que el recurso
4 0+14=14 5+12=17 9+7=16 11+3=14 10+0=10 17 1 escaso son las fichas disponibles en cada etapa.
5 0+16=16 5+14=19 9+12=21 11+7=18 10+3=13 9+0=9 21 2
En la última jugada (Jugada3) usted debe tener por lo menos 3 fichas, para poder continuar con el
juego, si tiene 2 o menos ya no puede jugar en consecuencia perdió la apuesta con su amigo, por
Para n =2 que aunque juegue 2 fichas y gana no alcanzaría la meta de 5 fichas; sin embargo si tiene 3 fichas
la única alternativa es jugar 2 fichas para poder llegar a la meta de 5, si tiene 4 fichas puede jugar
f2 (S2) =Max {R2(D2,S3) + f*3(S2-D2) } ó 1 ficha para alcanzar 5 o jugar 2 fichas para llegar a 6. Si por el contrario usted tiene ya en ésta
0≤D2 ≤5 etapa, 5 o más fichas ya no debe jugar porque ya ganó la apuesta a su amigo. Resumiendo en
0≤S2≤ 5 esta etapa tiene: D3 = (0, 1, 2) y S3 = (3, 4, ≥5)
D2
S2 f2(S2) D2(S2)
0 1 2 3 4 5 En la segunda jugada (jugada 2) usted debe tener por lo menos 2 fichas para tener chance de
ganar, porque si tiene 1 ficha y la apuesta y asumiendo que gana, solo tendría dos fichas para
0 0+0=0 0 0 apostar en la jugada3 y aunque gane en esta jugada, perderá la apuesta con su amigo porque solo
1 0+5=5 6+0=6 6 1 tendrá 4 fichas al final. Además lo máximo que podría tener es 6 fichas si apostó todo en la primera
jugada y ganó; sin embargo como solo interesa conseguir 5 fichas se considera como límite ≥ 5.
2 0+9=9 6+5=11 8+0=8 11 1
Con respecto a la decisión de cuantas fichas jugar en esta etapa, se puede no jugar ninguna ficha
3 0+12=12 6+9=15 8+5=13 10+0=10 15 1 si tiene ya 4 fichas y sigue con chance de ganar el juego o jugar todas las fichas. Resumiendo D2
4 0+17=17 6+12=18 8+9=17 10+5=15 11+0=11 18 1 = (0, 1, 2, 3, 4) y el estado del número de fichas será S2 = (2, 3, 4, ≥ 5)
5 0+21=21 6+17=23 8+12=20 10+9=19 11+5=15 12+0=12 23 1 Finalmente en la primera jugada (jugada1), se tienen cuatro alternativas de juego a saber: jugar 1,
2 ó 3 fichas y cualquier alternativa se puede tomar como decisión en esta etapa; y el estado al
Para n =1 inicio de esta etapa o puede ser como mínimo 1 ficha o menos de cinco para estar involucrado en
f1 (S1) =Max {R1(D1,S2) + f*2(S1-D1) } el problema. D1 = (0, 1, 2, 3) y S1 = (1, 2, 3, 4). Sin embargo para dar respuesta al caso se
0≤D1 ≤5 utilizará S1= 3.
0≤S1≤ 5 Al final de cada jugada (etapa n), el número esperado de fichas es : Sn+1 = 1/3(Sn-Dn)+2/3(Sn+Dn),
D2 los valores de Sn, se definen en la forma tabular:
S2 f2(S2) D2(S2)
0 1 2 3 4 5
El diagrama de bloques es:
5 0+23=23 4+18=22 7+15=22 7+11=18 12+6=18 15+0=15 23 0
R1(D1,S2) = 2/3 R2(D2,S3) = 2/3 R3(D2,S4) = 2/3

Respuesta:
S1=3 S3=1/3(S2-D2)+2/3(S2+D2)
No asignar ningún comercial a la estación ubicada en le área 1 votos ganados: 0 Jugada1 S2=1/3(S1-D1)+2/3(S1+D1)
Jugada2 Jugada3 S4=1/3(S3-D3)+2/3(S3+D3)

Asignar 1 comercial a la estación ubicada en el área 2 votos ganados: 6


Asignar 1 comercial a la estación ubicada en el área 3 votos ganados: 5
Asignar 3 comerciales a la estación ubicada en el área 4 votos ganados: 12 D3
D1 D2
¿cuántas fichas jugar? ¿cuántas fichas jugar? ¿cuántas fichas jugar?
Total de votos que se esperan se ganen: 23

13 14
* Programación Dinámica. Ing. Miguel Jiménez C. M.Sc.
La función recursiva es: 7) Problema de corte
Una fábrica de papel ha recibido solicitudes de cuatro diferentes litografías (imprentas), de la
siguiente manera:
fn (Sn) =Max {Rn(Dn,Sn+1) x f*n(1/3(Sn-Dn)+2/3(Sn+Dn)} beneficio por rollo
Dn variable.
solicitud 1: 6 rollos de 2,5 mts de ancho b1 = $3,10/rollo
Sn variable.
solicitud 2: 5 rollos de 4,0 mts de ancho b2 = $5,25/rollo
solicitud 3: 4 rollos de 3,0 mts de ancho b3 = $4,40/rollo
Para n = 3 f3 (S3) =Max {R3(D3,S3)} solicitud 4: 8 rollos de 2,0 mts de ancho b4 = $2,50/rollo
0 ≤D3 ≤2. La fábrica tiene un rollo de 7 metros de ancho de papel para atender estas ordenes. Ordenes
S3 =3, 4 ó ≥5. parciales pueden ser satisfechas. ¿cuáles ordenes y cuanto de cada una se deben satisfacer para
D3 maximizar el beneficio total?.
* *
S3 0 1 2 f3 (S3) D3 (S3)
3 - - 2/3 2/3 2 El diagrama de bloques:
4 - 2/3 2/3 2/3 1
R1 (D1, S2) R2 (D2, S3) R3 (D3, S4) R3 (D3, S4)
≥5 1 - - 1 0

S1 = 7 S2 = S1 – 2.5D1 S3 = S2 - 4D2 S4 = S3 - 3D3 S5 = S4 - 2D4


Solicitud 1 Solicitud 2 Solicitud 3 Solicitud 4
Para n = 2 f2 (S2) =Max {R2(D2,S2) x f*3(1/3(S2-D2)+2/3(S2+D2)}
0 ≤D2≤4.
S2 =2, 3, 4 ó ≥5. D1 D2 D3 D4
D2 ¿Cuántos rollos ¿Cuántos rollos ¿Cuántos rollos ¿Cuántos rollos
S2 0 1 2 3 4
*
f2 (S2)
*
D2 (S2) atender? atender? atender? atender?
2 - 2/3*2/3 2/3*2/3 - - 4/9 1ó2
3 2/3 2/3*2/3 2/3*1 2/3*1 - 2/3 0, 2 ó 3 a) Etapa n: Solicitud a la que asignara una cantidad de rollos (n = 1,2,3,4).
4 2/3 2/3*1+1/3*2/3 2/3*1 2/3*1 2/3*1 8/9 1 b) Variable de estado Sn: Cantidad de metros disponibles al inicio de cada etapa.
≥5 1 - - - - 1 0 c) Variable de decisión Dn : Cantidad de rollos, a entregar en cada etapa
d) Estado al final de la etapa n: S n +1 = Sn- - rnDn. rn = ancho del rollo pedido
e) Función de retorno: Ventas máximas = Rn (Dn, Sn+1)
Para n = 1 f1 (S1) =Max {R1(D1,S1) x f*2(1/3(S1-D1)+2/3(S1+D1)} f) La cantidad de rollos que se pueden despachar de cada solicitud es:
0 ≤D1≤3. como mínimo cero (0) y como máximo {Min (soicitud n , entero (7 / ancho n)) }; es decir:
S1 =3. 0 ≤ D1 ≤ min (6, 7/2.5 ) Î 0 ≤ D1 ≤ 2 0 ≤ D2 ≤ min (5, 7/4.0 ) Î 0 ≤ D2 ≤ 1
0 ≤ D3 ≤ min (4, 7/3.0 ) Î 0 ≤ D3 ≤ 2 0 ≤ D4 ≤ min (8, 7/2.0 ) Î 0 ≤ D4 ≤ 3
D1 g) La función de retorno inmediato Rn (Dn, Sn+1) = Dn x bn
* *
S1 0 1 2 3 f1 (S1) D1 (S1)
3 2/3*2/3 2/3*8/9+1/3*4/9 2/3*1 2/3*1 20/27 1 Función Recursiva:
fn (Sn) =Max {Dn x bn + f*n+1(Sn-rnDn)}
0≤ Dn ≤ min (soicitud n , entero (7 / rn))
Respuesta: Estrategia 0≤Sn≤ 7
Para n=4
En la 1ra jugada la decisión debe ser jugar 1 ficha (D1=1), y si gana la primera jugada entonces en la f4 (S4) =Max { D4 x b4 + 0 }
segunda jugada jugar 1 ficha (D2=1); pero si pierde la 1ra jugada, entonces en la segunda jugada la 0≤D4 ≤3
decisión debe ser jugar 1 ficha o dos fichas (D2= 1 ó 2), pues es indiferente. Si se gana la 1ra jugada 0≤S4≤ 7
y gana en la 2da jugada entonces en la tercera jugada ya no debe jugar (D3=0). D4
S4 f4(S4) D4(S4)
0 1 2 3
Por el contrario si gana en la 1ra jugada y pierde en la 2da jugada entonces en la tercera jugada debe 0 0x2,5=0 0 0
jugar 2 fichas (D3=2). 1 0x2,5=0 0 0
2 0x2,5=0 2,5 1
Si pierde en 1ra jugada y gana la 2da jugada entonces en la tercera jugada tiene la opción de jugar 1 3 0x2,5=0 1x2,5=2,5 2,5 1
ó 2 fichas (D3=1 ó 2) dependiendo si se juega 2 ó 1 en la 2da jugada 4 0x2,5=0 1x2,5=2,5 2x2,5=5 5 2
5 0x2,5=0 1x2,5=2,5 2x2,5=5 5 2
Finalmente si pierde en 1ra jugada y pierde la 2da jugada entonces la apuesta estará perdida.
6 0x2,5=0 1x2,5=2,5 2x2,5=5 3x2,5=7,5 7.5 3
7 0x2,5=0 1x2,5=2,5 2x2,5=5 3x2,5=7,5 7,5 3

15 16
* Programación Dinámica. Ing. Miguel Jiménez C. M.Sc.
Para n=3 Caso 3: El modelo de la mochila
f3 (S3) =Max { D3 x b3 + f*4 (S3-3D3) } 8) Modelo general sin restricciones
3
0≤D3 ≤2 Un camionero que trabaja por su cuenta tiene 8m de espacio disponible en un camión que saldrá
0≤S3 ≤7 para la ciudad de Lima. Un distribuidor que tiene grandes cantidades de tres artículos diferentes,
D3 todos destinados para esa ciudad, ha ofrecido al camionero los siguientes pagos por transportar
S3 f3(S3) D3(S3) tantos artículos como quepan en el camión:
0 1 2
Pago. Volumen.(Vn)
0 0x4,4+0=0 0 0 3
Artículo $/art. m /art.
1 0x4,4+0=0 0 0 I 11 1
2 0x4,4+2,5=2,5 2,5 0 II 32 3
3 0x4,4+2,5=2,5 1x4,4+0=4,4 4,4 1 III 58 5
4 0x4,4+5=5 1x4,4+0=4,4 5 0 ¿Cuántas unidades de cada artículo deberá aceptar el camionero a fin de maximizar los pagos de
5 0x4,4+5=5 1x4,4+2,5=6,9 6,9 1 embarque, sin exceder la capacidad del camión?.
6 0x4,4+7,5=7,5 1x4,4+2,5=6,9 2x4,4+0=8,8 8.8 2
7 0x4,4+7,5=7,5 1x4,4+5=9,4 2x4,4+0=8,8 9,4 1 En este caso si quisiéramos construir el modelo matemático de este problema las variables de
decisión representarían la cantidad de artículos que se deben de embarcar de cada tipo de
Para n=2 artículo, en consecuencia hay tres variables de decisión a saber:
f2 (S2) =Max { D2 x b2 + f*3 (S2-4D2) } X1 = la cantidad de artículos tipo I a embarcar en el camión.
0≤D2 ≤2 X2 = la cantidad de artículos tipo II a embarcar en el camión.
0≤S2≤ 7 X3 = la cantidad de artículos tipo III a embarcar en el camión.
D2 La función objetivo será maximizar el beneficio total que estará representado por la suma de los
S3 f2(S2) D2(S2) beneficios parciales. El modelo matemático será:
0 1
0 0x5,25+0=0 0 0
Max Bt = 11X1 + 32X2 + 58X3
1 0x5,25+0=0 0 0
s.a
2 0x5,25+2,5=2,5 2,5 0
X1 + 3X2 + 5X3 ≤ 8
3 0x5,25+4,4=4,4 4,4 0
Xj ≥ 0 y entero
4 0x5,25+5=5 1x5,25+0=5,25 5,25 1
5 0x5,25+6,9=6,9 1x5,25+0=5,25 6,9 0 Ahora como deseamos aplicar la metodología de programación dinámica, debemos dividir el
6 0x5,25+8,8=8,8 1x5,25+2,5=7,75 8.8 0 problema en tres etapas (subproblemas), uno para cada tipo de artículo y el estado al inicio de
7 0x5,25+9,4=9,4 1x5,25+4,4=9,65 9,65 1 cada etapa es la capacidad de volumen disponible aún en el camión. En cada etapa debe decidirse
cuantas unidades se deben embarcar.
Diagrama de bloques:
Para n=1
f1 (S1) =Max { D1 x b1 + f*2 (S1-2.5D1) } R1 (D1, S2) R2 (D2, S3) R3 (D3, S4)
0≤D1 ≤2
S1= 7
D3 S1=8 S2 = S1 - D1 S3 = S2 -3D2 S4 = S3 - 5D3
S3 f3(S3) D3(S3)
0 1 2 Artículo I Artículo II Artículo III
7 0x3,1+9,65=9,65 1x3,1+5,25=8,35 2x3,1+2,5=8,7 9,65 0

D1 D2 D3
Respuesta: beneficio ¿Cuántos Artículos ¿Cuántos Artículos ¿Cuántos Artículos
Atender con 0 rollos a la solicitud 1 0x3,10 = 0,00 embarcar? embarcar? embarcar?
Atender con 1 rollo a la solicitud 2 1x5,25 = 5,25
Atender con 1 rollo a la solicitud 3 1x4,40 = 4,40
Atender con 0 rollos a la solicitud 4 0x2,50 = 0,00 Rn (Dn,Sn+1) = Pagon x Dn donde: Pagon = 11, 32 y 58 para n = 1, 2 y 3 respectivamente

Beneficio total = 9,65 Función Recursiva:


fn (Sn) =Max { Pagon x Dn + f*n+1(Sn-VnDn)}
0≤ Dn ≤ (entero (8 / Vn)
0≤ Sn ≤ 8
Vn = El volumen del artículo n

17 18
* Programación Dinámica. Ing. Miguel Jiménez C. M.Sc.
Para n = 3 Respuesta: embarcar 3 unidades del artículo I con beneficio 3 x11 = 33
f3 (S3) =Max { Pago3 x D3 + 0 } embarcar 0 unidades del artículo II con beneficio 0 x32 = 0
0≤ D3 ≤ 1 embarcar 1 unidades del artículo III con beneficio 1 x58 = 58 Total 91
0≤ S3 ≤ 8
9) Modelo particular (con restricciones)
D3 3
Un camionero que trabaja por su cuenta tiene 10m de espacio disponible en un camión que saldrá
S3 f3(D3) D3(S3)
0 1 para la ciudad de Lima. Un distribuidor que tiene grandes cantidades de tres artículos diferentes,
0 58x0+0=0 0 0 todos destinados para esa ciudad, ha ofrecido al camionero los siguientes pagos por transportar
tantos artículos como quepan en el camión:
1 58x0+0=0 0 0 Pago. Volumen.
3
2 58x0+0=0 0 0 Artículo $/art. m /art.
3 58x0+0=0 0 0 I 11 1
II 27 2
4 58x0+0=0 0 0 III 43 4
5 58x0+0=0 58x1+0=58 58 1 ¿Cuántas unidades de cada artículo deberá aceptar el camionero a fin de maximizar los pagos de
embarque, con la condición de embarcar por lo menos un artículo de cada tipo y sin exceder la
6 58x0+0=0 58x1+0=58 58 1
capacidad del camión?.
7 58x0+0=0 58x1+0=58 58 1
8 58x0+0=0 58x1+0=58 58 1 Para este caso hay dos caminos para dar respuesta al modelo, pero en ambos casos el diagrama
de bloques es el mismo:
Camino 1
Para n = 2 La función recursiva no cambia, pero sin embargo el rango de variación de la decisión y del estado
en cada etapa varía completamente a saber:
f2 (S2) =Max { Pago2 x D2 + f*3(S2-V2D2)}
0≤ D2 ≤ 2 1≤D3≤Entero((10 –V1 – V2)/ V3) ; 1≤D2≤Entero((10 –V1 – V3)/ V2); 1≤D1≤Entero((10 – V2 – V3)/ V1)
0≤ S2 ≤ 8 V3 ≤S3 ≤10 – V1 – V2; V2 + V3 ≤ S2 ≤ 10 – V1; V1 + V2 + V3≤ S1≤ 10
D2
S2 f2(D2) D2(S2)
0 1 2 Si deseamos generalizar el rango de variación para cualquier número de etapas, de los parámetros
Dn y Sn tendremos:
0 32x0+0=0 0 0 N
1 32x0+0=0 0 0 10 − ∑ Vi
i =1
2 32x0+0=0 0 0 1 ≤ D ≤ Entero( ); ∀i ≠ n ; donde N representa el número total de etapas.
n Vn
3 32x0+0=0 32x1+0=32 32 1
4 32x0+0=0 32x1+0=32 32 1 N n −1

5 32x0+58=58 32x1+0=32 58 0 ∑Vi ≤ S n ≤ 10 − ∑Vi


i =n i =1
para n=1 Vi no existe y como tal no hay que restar
6 32x0+58=58 32x1+0=32 32x2+0=64 64 2
7 32x0+58=58 32x1+0=32 32x2+0=64 64 2 Ahora bien aplicando la forma tabular y manteniendo la función recursiva con los rangos de
8 32x0+58=58 32x1+58=90 32x2+0=64 90 1 variación encontrados se tiene los siguiente:

Para n = 3
Para n = 2 f3 (S3) =Max { 43 x D3 + 0 }
f1 (S1) =Max { Pago1 x D1 + f*2(S1-V1D1)} 1≤ D3 ≤ 1
0≤ D1 ≤ 8 4≤ S 3 ≤ 7
S1 = 8 D3
S3 f3(D3) D3(S3)
D1 1
S1 f1(D1) D1(S1)
0 1 2 3 4 5 6 7 8
4 43x1+0=43 43 1
11x0+ 11x1+ 11x2+ 11x3+ 11x4+ 11x5+ 11x6+ 11x7+ 11x8+
8 91 3 5 43x1+0=43 43 1
90=90 64=75 64=86 58=91 32=76 32=87 0=66 0=77 0=88
6 43x1+0=43 43 1
7 43x1+0=43 43 1
19 20
* Programación Dinámica. Ing. Miguel Jiménez C. M.Sc.
Para n = 2 El costo por unidad producida con tiempo extra a la semana es $100 más que en las horas
f2 (S2) =Max { 27 x D2 + f*3(S2-V2D2)} normales. El costo de almacenamiento es $50 por unidad por cada semana que se guarda. Existe
1≤ D2 ≤ 2 un inventario de dos dispositivos, pero la compañía no desea quedarse con ninguno después de
6≤ S 2 ≤ 9 tres semanas. Utilice programación dinámica para determinar cuántas unidades debe producir
cada semana con el fin de minimizar los costos de producción e inventarios.
D2 f2(D2) D2(S2)
S2
1 2 Solución:
6 27+43 = 70 70 1 En primer lugar el acuerdo asumido por la BUILD-EM-FAST COMPANY y su Cliente, no admite
pedidos pendientes por tanto tiene que abastecerlo con sus tres unidades por mes.
7 27+43= 70 70 1 El problema es factible dividirlo en tres etapas (dado que son tres semanas de producción) para
8 27+43= 70 54+43= 97 97 2 tomar decisiones de cuanto producir por semana y en consecuencia cada subproblema es más
9 27+43= 70 54+43= 97 97 2 fácil de resolver.
El Retorno inmediato asociado con la decisión en cada etapa está relacionado con los costos de
producción tanto en tiempo normal cómo en tiempo extra más el costo de inventario tal como se
indica:
Para n = 1
f1 (S1) =Max { 11 x D1 + f*2(S1-V1D1)} Rn(Dn,Sn+1) = Cpein = CnnPnn + CenPen + 50(Sn + Pnn + Pen – 3)
1≤ D1 ≤ 4 Donde:
S1 = 10 Cpein = Costo de Producción e inventario en la etapa n
D1 CnnPnn = Costo normal de Producción en la etapa n x Cantidad producida en tiempo normal en la etapa n
S1 f1(D1) D1(S1)
1 2 3 4 CenPen = Costo Producción en tiempo extra en la etapa n x Cantidad producida en tiempo extra en la etapa n
Dn = Decisión en la etapa n, referida a determinar cuántas unidades producir en tiempo normal y en tiempo extra.
10 11 + 97 = 108 22 + 97 = 119 33 + 70 = 103 44 + 70 = 114 119 2
El estado al inicio de cada etapa(semana), está dado por:
S1 = 2;
Respuesta: embarcar 2 unidades del artículo I con beneficio 2 x11 = 22 S2 = S1 + Pn1 + Pe1 – 3; los valores que puede tomar son: 0, 1, 2 y 3
embarcar 2 unidades del artículo II con beneficio 2 x27 = 54 S3 = S2 + Pn2 + Pe2 – 3; los valores que puede tomar son: 0, 1, 2 y 3
embarcar 1 unidades del artículo III con beneficio 1 x43 = 43 Total 119 S4 = 0; Estado al final de la semana 3

Camino 2
3 3
La decisión al inicio de cada etapa (semana), está dado por:
En este caso lo más práctico es de la capacidad total 10 m , reservar 7 m para cumplir con el 1≤D1≤4 : Se debe producir por lo menos 1 para satisfacer la demanda puesto que se tiene 2
3
requerimiento de llevar una unidad de cada tipo de artículo y el resto de capacidad 3 m unidades en inventario y como máximo la suma de la capacidad de producción en tiempo normal y
disponibles se le da el tratamiento que se le dio al ejemplo 1 (modelo general sin restricciones), el en tiempo extra
resultado debe ser el mismo; se deja al alumno para que compruebe lo manifestado. Obsérvese 0≤D2≤3 : Se puede dejar de producir si en la etapa anterior se produjo 4, y lo máximo que se puede
3
que con el restante de 3 m pude llevar 1 unidad del artículo 1 y 1 unidad del artículo 2 adicionales; producir es la suma de la capacidad de producción en tiempo normal y en tiempo extra.
logrando en total llevar: 0≤D3≤3 : Se puede dejar de producir si en la etapa anterior se produjo 3, y lo máximo que se puede
producir es la suma de la capacidad de producción en tiempo normal y en tiempo extra.
embarcar 2 unidades del artículo I con beneficio 2 x11 = 22
embarcar 2 unidades del artículo II con beneficio 2 x27 = 54
embarcar 1 unidades del artículo III con beneficio 1 x43 = 43 Total 119 Diagrama de Bloques:
Y se llega al mismo resultado Cpei1 Cpei2 Cpei3

S3 =S2 + Pn2 + Pe2 -3 S4 = 0


Caso 4: Producción e Inventario S1 =2 Semana S2=S1 + Pn1 +Pe1 -3 Semana Semana
10) La BUILD-EM-FAST COMPANY ha acordado con su mejor cliente abastecerlo con un 1 2 3
dispositivo especial con 3 unidades durante cada una de las tres semanas siguientes, aun cuando
producirlos va a requerir horas extra de mano de obra. Los datos de producción concernientes son
como se indica en la tabla: D1 D2 D3
Producción máxima Producción máxima Costo de Producción
Semana tiempo normal tiempo extra por unidad tiempo normal (Pn1 + Pe1) (Pn2 + Pe2) (Pn3 + Pe3)
1 2 2 $300
2 2 1 $500
3 1 2 $400

21 22
* Programación Dinámica. Ing. Miguel Jiménez C. M.Sc.
Función recursiva: 11) La Northern Airplane Co. construye aviones comerciales para varias líneas aéreas en todo el
f n* ( S n ) = Min[Cn n Pn n + Ce n Pe n + 50( S n + Pn n + Pe n − 3) + f n*+1 ( S n + Pn n + Pe n − 3) mundo. La última etapa del proceso de producción consiste en fabricar los motores de turbina e
instalarlos (operación sumamente rápida) en la estructura del avión terminado. La compañía tiene
Dn, Sn variable varios contratos de trabajo para entregar un gran número de aviones en un futuro cercano, y en
este momento debe programarse la producción de los motores de turbina durante los próximos
Nota: únicamente la producción en tiempo extra tiene lugar cuando con la producción en tiempo cuatro meses.
normal no alcanza. En la segunda columna de la Tabla 1, se indica la cantidad de motores que debe estar lista para
su instalación, a fin de cumplir con las fechas de entrega contratadas. Así, el número acumulado
Para n =3 de motores que deben producirse para fines de los meses 1, 2, 3 y 4 debe ser por lo menos 10, 15,
25 y 20, respectivamente.
f3(S3) = Min[400Pn3 + 500Pe3 + 50(S3 + Pn3 + Pe3 – 3 ) + 0 ] Las instalaciones disponibles para producir los motores varían de acuerdo con otros programas de
0≤D3≤3 producción, mantenimiento y renovación durante este período. Las diferencias mensuales que
0≤S3≤3 resultan en cuanto al número máximo que se puede producir y el costo unitario de producción (en
D3 millones de dólares) se dan en la tercera y cuarta columnas de la tabla.
S3 0 1 2 3 f3*(S3) D3*(S3) Dadas las variaciones de los costos de producción, podría valer la pena producir algunos motores
0 -- -- -- 1400 1400 3 un mes o dos antes de su fecha de instalación y se está estudiando esta posibilidad. El
1 -- -- 900 -- 900 2 inconveniente es que esos motores deberán almacenarse hasta que sean instalados (la estructura
2 -- 400 -- -- 400 1 de los aviones no estará lista antes). El costo de almacenaje para cada motor es de $15 000/mes
3 0 -- -- -- 0 0 (se incluye el interés sobre el capital invertido), como se ilustra en la última columna de la tabla.
Utilice programación dinámica para determinar la programación del número de motores que se
Nota: En la celda donde no existe asignación es porqué ésta no es factible. deben fabricar en cada uno de los cuatro meses, de manera que se minimicen los costos totales
de producción y almacenaje. Suponga que las cantidades producidas deben ser enteros múltiplos
de cinco.
Para n =2
f2(S2) = Min[500Pn3 + 600Pe3 + 50(S3 + Pn3 + Pe3 – 3 ) + f3 (S2 + Pn2 + Pe2 –3) ] Instalaciones Producción Costo unitario Costo unitario
0≤D2≤3 Mes * *
programadas máxima de producción de almacenaje
0≤S2≤3
D2 1 10 25 1.08 0.015
S2 0 1 2 3 f2*(S2) D2*(S2) 2 15 35 1.11 0.015
0 3000 3000 3 3 25 30 1.10 0.015
1 2400 2550 2400 2 4 20 10 1.13 0.015
2 1900 1950 2100 1900 1 Tabla 1
3 1400 1450 1500 1750 1400 0 * El costo está expresado en millones de dólares.

Para n =1 Solución
f1(S1) = Min[500Pn1+ 600Pe1 + 50(S1 + Pn1 + Pe1 – 3 ) + f2 (S1 + Pn1 + Pe1 –3) ]
0≤D1≤3 Demanda Prod. Máx Cup Cua
S1=2 Mes
dn Pn Cn In
D1
S1 1 2 3 4 f1*(S1) D1*(S1) 1 10/5=2 25/5=5 1.08*5=5.40 0.015*5=0.075
2 3300 3050 3000 2950 2950 4 2 15/5=3 35/5=7 1.11*5=5.55 0.015*5=0.075
Respuesta: 3 25/5=5 30/5=6 1.10*5=5.50 0.015*5=0.075
4 20/5=4 10/5=2 1.13*5=5.65 0.015*5=0.075
Producir: 4 unds. en el período 1: 2 En tiempo normal y 2 en tiempo extra
0 en el período 2: no hay producción
3 en el periodo 3: 1 en tiempo normal 2 en tiempo extra
f n* ( S n ) = Min[C n x Dn + I n ( S n + Dn − d n ) + f n*+1 ( S n + Dn − d n )]
Con un costo total mínimo en las tres semanas de $ 2950.
Dn,Sn variable

23 24
* Programación Dinámica. Ing. Miguel Jiménez C. M.Sc.
Para n=4 produce no alcanzaría a cubrirse toda la demanda de los meses siguientes. El nivel máximo que
pude tomar D2 es 7, equivalente a la capacidad máxima de producción.
f 4* ( S 4 ) = Min [ 5 . 65 x D 4 + 0 . 075 ( S 4 + D 4 − 4 ) + 0 ]
D2
2≤S4≤4
S2 1 2 3 4 5 6 7 f*2(S2) D*2(S2)
0≤D4≤2 0 66.725 66.715 66.825 66.95 66.725 4
S4ÎDebe ser tal que sumado a la capacidad de producción alcance para atender la demanda de 1 61.175 61.225 61.275 61.40 61.175 61.175 3
4 unidades (es decir a 4 múltiplos de 5), en consecuencia al inicio del cuarto mes debe haber por lo 2 55.625 55.675 55.725 55.85 55.975 55.625 55.625 2
menos 2 unidades porque la capacidad de producción en el cuarto mes está limitada a 2 unidades; 3 50.085 50.125 50.175 50.30 50.425 50.55 50.625 50.075 1
y como máximo S4 debe ser 4 unidades dado que con ello se satisface la demanda de ese mes y
el stock final será cero (0), no hay restricción de dejar al final algún inventario.
D4ÎSi el estado del inventario al inicio del cuarto mes es 4 la decisión factible es no producir, sin
embargo si el estado inicial es 2 unidades lo máximo que se puede producir es 2 unidades. Para n = 1
D4 f 1* ( S 1 ) = Min [ 5 . 40 x D 1 + 0 . 075 ( S 1 + D 1 − 2 ) + f 2* ( S 1 + D 1 − 2 )]
S4 0 1 2 f*4(S4) D*4(S4)
2 -- -- 11.30 11.30 2 S1=0
3 5.65 5.65 1 2≤D1≤5
4 0 -- -- 0.00 0 En este caso el inventario inicial es cero (0). Por tanto, la decisión que se tome debe ser por lo
menos 2 unidades para atender la demanda (D1=2), y el nivel máximo de producción es
equivalente a la capacidad de producción de este mes (D1=5).
Para n=3 D1
f 3* ( S 3 ) = Min [ 5 . 50 x D 3 + 0 . 075 ( S 3 + D 3 − 5 ) + f 4* ( S 3 + D 3 − 5 )] S1 2 3 4 5 f*1(S1) D*1(S1)
0 77.525 77.45 77.375 77.30 77.30 5
1≤S3≤7
0≤D3≤6 Producir 5 en el período 1
S3Î Puede comenzar en 1 y utilizar la máxima capacidad de producción de este mes (D3 =6), 1 en el período 2
para poder abastecer la demanda de este mes y quede en inventario 2 unidades para el siguiente 6 en el periodo 3
mes; y lo máximo que puede ser S3 al inicio de esta etapa es 7 de manera que aunque no se 2 en el periodo 4
produzca ninguna unidad (D3=0), aún queden 2 unidades en inventario para el siguiente mes y
satisfacer la demanda.
D3 Caso 5: Modelo de Confiabilidad
S3 0 1 2 3 4 5 6 f*3(S3) D*3(S3) 12) Considere un sistema electrónico que consta de cuatro componentes, cada uno de los cuales
1 44.45 44.45 6 debe funcionar para que el sistema también lo haga. La confiabilidad de éste se puede mejorar si
2 38.95 38.875 38.875 6 se instalan varias unidades paralelas en una o más de las componentes. La siguiente tabla
3 33.45 38.375 33.30 33.30 6 muestra la probabilidad de que las respectivas componentes funcionen si consisten en una , dos o
4 27.95 27.875 27.80 27.80 5 tres unidades en paralelo, así como sus respectivos costos en cientos de dólares. Dadas las
5 22.45 22.375 22.30 22.30 4 limitaciones de presupuesto se pueden gastar un máximo de $1000. utilice los modelos de redes
6 16.95 16.875 16.80 16.80 3 para determinar cuantas unidades paralelas deben instalarse en cada una de las cuatro
7 11.45 11.375 11.30 11.30 2 componentes para maximizar la probabilidad de que el sistema funcione.
Probabilidad y costo de funcionamiento
Nro de
unidades Comp. 1 Comp. 2 Comp.3 Comp. 4
Para n=2 paralelas prob costo prob. Costo prob costo prob. costo
f 2* ( S 2 ) = Min [ 5 . 55 x D 2 + 0 . 075 ( S 2 + D 2 − 3 ) + f 3* ( S 2 + D 2 − 3 )] 1 0.5 1 0.6 2 0.7 1 0.5 2
2 0.6 2 0.7 4 0.8 3 0.7 3
0≤S2≤3 3 0.8 3 0.8 5 0.9 4 0.9 4
1≤D2≤7
S2Î Puede ser 0, pues la capacidad de producción de este mes con exceso puede satisfacer la Este modelo fue visto en el capítulo de redes en el cual se construyó el modelo matemático y se
demanda y lo máximo que puede ser es 3, que corresponde a la capacidad máxima de producción diseñó la red que representaba el problema. Ahora se aplicará la metodología de la programación
en la 1ra etapa menos su demanda esto es: (5 – 2 = 3); el nivel mínimo de producción en este mes dinámica para resolverlo.
debe ser 1 aún cuando S3 = 3 y se satisfaga la demanda de este mes; sin embargo si no se Solución:

25 26
* Programación Dinámica. Ing. Miguel Jiménez C. M.Sc.
En este caso como se tiene que tomar la decisión de cuantas unidades instalar de cada tipo de Para n=4
componente, se divide el problema en 4 etapas (una etapa por cada tipo de componente). f4 (S4) =Max {R4(D4,S5)}
El estado del sistema al inicio de cada etapa está dado por el dinero disponible; sin embargo lo que 1≤D4 ≤3
hay que tener presente es que al inicio de cada etapa el dinero disponible debe ser de tal manera 2≤S4≤6
que por lo menos alcance para instalar una unidad de esa etapa y una unidad de cada una de las D4
etapas restantes. Esto sugiere que en la etapa 4 lo mínimo que puede ser S4 es 200 dólares, para S4 1 2 3 f*4(S4) D*4(S4)
la etapa 3 lo mínimo debe ser S3 = 300 (100 para la etapa 3 y 200 para la etapa 4), en la etapa 2 2 0.5 -- -- 0.5 1
debe garantizarse por lo menos 500 dólares (D2=500), y finalmente para poder diseñar el circuito 3 0.5 0.7 -- 0.7 2
por lo menos se necesita 600 dólares al inicio de la 1ra Etapa para instalar una unidad de cada tipo 4 0.5 0.7 0.9 0.9 3
de componente (S1≥600 . 5 0.5 0.7 0.9 0.9 3
Las cantidades máximas de dinero disponible se obtienen de la siguiente manera: 6 0.5 0.7 0.9 0.9 3
S4≤1000 – costo de 1 und. del comp.1 – costo de 1 und. del comp.2 – costo 1 und. del comp.3
S3≤1000 – costo de 1 und. del comp.1 – costo de 1 und. del comp.2 Para n=3
S2≤1000 – costo de 1 und. del comp.1 f3 (S3) =Max {R3(D3,S4 x f*4(S3-c(D3)) )}
S1≤1000 1≤D3 ≤3
3≤S3≤7
Generalizando para cualquier valor de n tenemos: D3
S3 1 2 3 f*3(S3) D*3(S3)
N n −1
3 0.7x0.5=0.35 -- -- 0.35 1

i=n
costo por instalar 1 unidad del componente i ≤ S n ≤ 10 − ∑ costo por instalar 1 unidad
i =1
del componente i 4 0.7x0.7=0.49 -- -- 0.49 1
5 0.7x0.9=0.63 0.8x0.5=0.40 -- 0.63 1
6 0.7x0.9=0.63 0.8x0.7=0.56 0.9x0.5=0.45 0.63 1
Con respecto a la decisión en cada etapa, en todas las etapas es la misma es decir instalar 1, 2 ó 7 0.7x0.9=0.63 0.8x0.9=0.72 0.9x0.7=0.63 0.72 2
3 unidades con lo cual 1≤Dn≤3.
Para n=2
Diagrama de Bloques:
f2 (S2) =Max {R2(D2,S2 x f*3(S2-c(D2)) )}
1≤D2≤3
R1 (D1, S2) R2 (D2, S3) R3 (D3, S4) R3 (D3, S4) 5≤S2≤9
D2
S2 1 2 3 f*2(S2) D*2(S2)
S1 = 10 S3 =S2-c2(D2) S5=S4-c4(D4) 5 0.6x0.35=0.210 -- -- 0.210 1
S2=S1– c1(D1) S =S -c (D )
Comp. 1 Comp..2 Comp. 3 4 3 3 3 Comp. 4
6 0.6x0.49=0.294 -- -- 0.294 1
7 0.6x0.63=0.378 0.7x0.35=0.245 -- 0.378 1
8 0.6x0.63=0.378 0.7x0.49=0.343 0.8x0.35=0.280 0.378 1
D1 D2 D3 D3 9 0.6x0.72=0.432 0.7x0.63=0.441 0.8x0.49=0.392 0.441 2
¿Cuántas unidades ¿Cuántas unidades ¿Cuántas unidades ¿Cuántas unidades
instalar? instalar? instalar? instalar? Para n=1
f1 (S1) =Max {R1(D1,S1 x f*2(S1-c(D1)) )}
1≤D1≤3
Rn(Dn,Sn+1) : representa la confiabilidad que se alcanza por instalar Dn unidades del componente n S1=10
cn(Dn) : representa el costo por instalar D unidades en la etapa n. D1
S1 1 2 3 f*1(S1) D*1(S1)
Función recursiva: 10 0.5x0.441=0.2205 0.6x0.378=0.2268 0.8x0.378=0.3024 0.3024 3
fn (Sn) =Max {Rn(Dn,Sn+1) x f*n+1(Sn-c(Dn))}
Respuesta: costo confiabilidad
1≤Dn ≤3
Instalar 3 unidades del componente 1 3 0.8
N n −1

∑ ci (1) ≤Sn≤ ∑ c (1)


Instalar 1 unidad del componente 2 2 0.6
i Instalar 1 unidad del componente 3 1 0.7
i =n i =1 Instalar 3 unidades del componente 4 4 0.9

En esta función recursiva los elementos de la función se multiplican por estar en serie los Confiabilidad del circuito ==> 0.8x0.6x0.7x0.9 = 0.3024
componentes del circuito.
Aplicando la forma tabular de solución de la programación dinámica tenemos:
27 28
* Programación Dinámica. Ing. Miguel Jiménez C. M.Sc.

PROBLEMAS PROPUESTOS DE PROGRAMACIÓN DINÁMICA

1) Una compañía ha averiguado que un competidor está planeando sacar un nuevo tipo de
producto con ventas potenciales muy grandes. Esta compañía ha estado trabajando en un
producto similar y la investigación está casi terminada. Ahora se quiere sacar el producto más
rápidamente para alcanzar a la competencia. Se tienen que lograr cuatro etapas independientes (o
sin traslape) incluyendo lo que falta de la investigación que por el momento se lleva a cabo a paso
normal. Sin embargo, cada etapa se puede realizar en un nivel de prioridad o de quiebre para
acelerar la terminación. Los tiempos requeridos (en meses) y el costo (en millones de dólares)
para los distintos niveles son:
Tiempo y Costo
IR D SDM IPD
Nivel t c t c t c t c
Normal 5 3 Ing. Miguel Jiménez C. M.Sc.
Prioridad 4 6 3 6 5 5 2 3
Quiebre 2 9 2 9 3 10 1 6 z
Profesor Investigador
IR = Investigación Restante SDM = Sistemas de Diseño y Manufactura
D = Desarrollo IPD = Inicio de Producción y Distribución.
Espero que este módulo ayude a
Se dispone de $30 000 000 para estas cuatro etapas. los estudiantes a comprender los
Utilice la programación dinámica para determinar el nivel a que debe conducirse cada etapa para modelos de Programación
minimizar el tiempo total hasta que se pueda comercializar el producto sujeto a las restricciones de Dinámica Determinística.
presupuesto.
Este módulo muestra paso a
2) Una empresa sabe que la demanda de su producto durante cada uno de los cuatro meses paso la metodología de la
siguientes será como sigue: mes1, 1 unidad; mes2, 3 unidades; mes3, 2 unidades; mes4, 4 Programación Dinámica de
unidades. Al principio de cada mes, la empresa debe determinar cuántas unidades se deben ciertos problemas de
producir durante ese mes. Durante un mes en el que se produce cualquier número de unidades, se Programación Matemática que
incurre en un costo de preparación de 3 dólares. Además, hay un costo variable de 2 dólares por son vistos en el curso de
cada unidad producida. Al final de cada mes, se incurre en un costo de 0.75 dólares por unidad en Investigación de operaciones II.
inventario. Las limitaciones de capacidad permiten la producción de un máximo de 5 unidades .
durante cada mes. El tamaño de la bodegas de la empresa restringe el inventario final de cada
mes a 4 unidades cuando mucho. La empresa desea determinar un calendario de producción para
cada mes considerando que la no atención de una demanda determinada no le significa perjuicio
debido a la gran demanda de su producto, y además que reduzca al mínimo la suma de los costos
de producción y de almacenamiento durante los cuatro meses. Suponer que hay 2 unidades a
mano a principio del primer mes y se requiere que al final de los 4 períodos haya 1 unidad.

3) Una empresa sabe que la demanda de su producto durante cada uno de los cuatro meses
siguientes será como sigue: mes1, 1 unidad; mes2, 3 unidades; mes3, 2 unidades; mes4, 4
unidades. Al principio de cada mes, la empresa debe determinar cuántas unidades se deben
producir durante ese mes. Durante un mes en el que se produce cualquier número de unidades, se
incurre en un costo de preparación de 3 dólares. Además, hay un costo variable de 2 dólares por
cada unidad producida. Al final de cada mes, se incurre en un costo de 0.75 dólares por unidad en
inventario. Las limitaciones de capacidad permiten la producción de un máximo de 5 unidades
durante cada mes. El tamaño de la bodegas de la empresa restringe el inventario final de cada
mes a 4 unidades cuando mucho. La empresa desea determinar un calendario de producción para
cada mes considerando que la no atención de una demanda determinada le significa perjuicio
debido a la poca demanda de su producto, y además que reduzca al mínimo la suma de los costos
de producción y de almacenamiento durante los cuatro meses. Suponer que hay 2 unidades a
mano a principio del primer mes y se requiere que al final de los 4 períodos haya 1 unidad.

29 30

También podría gustarte