Professional Documents
Culture Documents
1. Programacin
Dinmica
INTRODUCCIN: Existe una serie de problemas cuyas soluciones pueden ser expresadas recursivamente
en trminos matemticos, y posiblemente la manera ms natural de resolverlos es mediante un algoritmo
recursivo. Sin embargo, el tiempo de ejecucin de la solucin recursiva, normalmente de orden exponencial y
por tanto impracticable, puede mejorarse substancialmente mediante la Programacin Dinmica.
La programacin dinmica es un mtodo para reducir el tiempo de ejecucin de un algoritmo mediante la
utilizacin de subproblemas superpuestos y subestructuras ptimas, como se describe a continuacin.
Una subestructura ptima significa que soluciones ptimas de subproblemas pueden ser usadas para encontrar
las soluciones ptimas del problema en su conjunto. Por ejemplo, el camino ms corto entre dos vrtices de un
grafo se puede encontrar calculando primero el camino ms corto al objetivo desde todos los vrtices adyacentes
al de partida, y despus usando estas soluciones para elegir el mejor camino de todos ellos. En general, se
pueden resolver problemas con subestructuras ptimas siguiendo estos tres pasos:
1. Dividir el problema en subproblemas ms pequeos.
2. Resolver estos problemas de manera ptima usando este proceso de tres pasos recursivamente.
3. Usar estas soluciones ptimas para construir una solucin ptima al problema original.
Los subproblemas se resuelven a su vez dividindolos ellos mismos en subproblemas ms pequeos hasta que se
alcance el caso fcil, donde la solucin al problema es trivial.
Decir que un problema tiene subproblemas superpuestos es decir que un mismo subproblema es usado para
resolver diferentes problemas mayores. Por ejemplo, en la sucesin de Fibonacci, F3 = F1 + F2 y F4 = F2 + F3
calcular cada trmino supone calcular F 2. Como ambos F3 y F4 hacen falta para calcular F 5, una mala
implementacin para calcular F5 acabar calculando F2 dos o ms veces. Esto ocurre siempre que haya
subproblemas superpuestos: una mala implementacin puede acabar desperdiciando tiempo recalculando las
soluciones ptimas a subproblemas que ya han sido resueltos anteriormente.
Esto se puede evitar guardando las soluciones que ya hemos calculado. Entonces, si necesitamos resolver el
mismo problema ms tarde, podemos obtener la solucin de la lista de soluciones calculadas y reutilizarla. Este
acercamiento al problema se llama memorizacin. Si estamos seguros de que no volveremos a necesitar una
solucin en concreto, la podemos descartar para ahorrar espacio. En algunos casos, podemos calcular las
soluciones a problemas que sabemos que vamos a necesitar de antemano.
En resumen, la programacin dinmica hace uso de:
Subproblemas superpuestos
Subestructuras ptimas
Memorizacin
La programacin dinmica toma normalmente uno de los dos siguientes enfoques:
DEFINICION: Tcnica matemtica que permite dar soluciones secunciales con las que mediante clculos
recursivos se obtiene la solucin ptima del problema.
La programacin dinmica consiste en una tcnica que permite determinar de manera eficiente las decisiones que
optimizan el comportamiento de un sistema que evoluciona a lo largo de una serie de etapas. En otras palabras,
trata de encontrar la secuencia de decisiones que optimiza el comportamiento de un proceso polietpico.
Proporciona un procedimiento sistemtico para determinar la combinacin de decisiones para resolver problemas
divididos en etapas, de tal forma que se maximice la efectividad total. Es caracterstico de estos problemas que
deba adoptarse una poltica general de decisin, y que sta pueda ser aplicada en cada etapa, arrojando un
resultado ptimo para el problema en general, y un resultado factible para cada etapa en que se divide el
problema.
En cada etapa, las decisiones para las etapas restantes son independientes de las decisiones tomadas
anteriormente, aunque hay que tomar en cuenta que se lleg a sta etapa debido a las decisiones tomadas con
anterioridad. La programacin dinmica es, pues, una tcnica muy til para tomar el mejor conjunto de
decisiones interrelacionadas.
ETAPAS
Clculos Recursivos
Solucin
Optima
X1 X2 X3 Xn-1 Xn
Variables Optimizadoras
A menudo, aunque no sea posible aplicar la estrategia voraz, se cumple el principio de optimalidad de Bellman
que dicta que dada una secuencia ptima de decisiones, toda subsecuencia de ella es, a su vez, ptima. En este
caso sigue siendo posible el ir tomando decisiones elementales, en la confianza de que la combinacin de ellas
seguir siendo ptima, pero ser entonces necesario explorar muchas secuencias de decisiones para dar con la
correcta, siendo aqu donde interviene la programacin dinmica.
Contemplar un problema como una secuencia de decisiones equivale a dividirlo en subproblemas ms pequeos
y por lo tanto ms fciles de resolver como hacemos en Divide y Vencers, tcnica similar a la de Programacin
Dinmica. La programacin dinmica se aplica cuando la subdivisin de un problema conduce a:
Una enorme cantidad de subproblemas.
Subproblemas cuyas soluciones parciales se solapan.
Grupos de subproblemas de muy distinta complejidad.
Funcin de Transformacin
[trigo almacenado en Tn] = [trigo almacenado en To) + [recepcin trigo en tn to] [salida de trigo en tn to] -
[merma trigo en tn to]
Entonces:
Xn = fn (Xn-1 )
X n = (f n-1 (X))
X X1 X2 Xn-2 Xn-1 Xn
1 2 n-1 n
f f f f
01/01/03 01/02/03 01/03/03 01/11/03 01/12/03 01/0/04
Funcin Generalizada:
APLICACIONES:
SOLUCIN:
Estructura:
K1 K2 K3 K4
X1 X2 X3 X4
1 2 3 4
r1 r2 r3 r4
Donde:
Xi: Estado actual en el que se encuentra el turista en la etapa i
X1={1}
X2={2, 3, 4}
X3={5, 6, 7}
X4={8, 9}
Ki: Estado al que dirige en la etapa i
K1={2, 3, 4}
K2={5, 6, 7}
K3={8, 9}
K4={10}
fi (Xi) : Valor acumulado de la funcin objetivo (menor distancia) para el estado Xi desde la etapa i hasta el
destino final (nodo 10)
ri : Distancia recorrida en la etapa i
K1 K2 K3 K4 K5 K6
X1=8 X2 X3 X4 X5 X6
1 2 3 4 5 6
r1 r2 r3 r4 r5 r6
Donde:
Xi: Edad del activo al inicio de la etapa i
Ki: Decisin de Conservar o Reemplazar en la etapa i
Para la etapa 6 la nica decisin es Vender.
fi (Xi) : Valor acumulado de la funcin objetivo (menor costo) para el estado del activo Xi desde la etapa i hasta
el final del horizonte de vida.
ri : Costo de reemplazar o conservar el activo.
En la etapa 6 el valor de r6 es el producto del valor de rescate del activo.
x
Ki : Decisin optima en la etapa i dado el estado Xi en el que se encuentra el activo en la etapa i
A continuacin presentamos la red del problema en trminos de costos de reemplazar o conservar el activo.
Ao 5
Ao 4
Ao 3
Los resultados en K3* de RC indican que posiblemente este problema tiene ms de una solucin ptima.
Ao 2
Ao 1
Por lo tanto las polticas ptimas en base a las tablas de recursividad sern: (dos soluciones ptimas)
AO Alternativa 1 Alternativa 2
1 R R
2 C C
3 C R
4 R C
5 C C
V V
K1 K2 K3 K4
X1=8 X2 X3 X4
1 2 3 4
r1 r2 r3 r4
Donde:
Xi: Capital disponible en la etapa i.
Etapa 3
Etapa 2
Etapa 1
K1 K2 K3 K4 K5 K6
Ing. Efran Murillo
X1=8 X2 X3 X4 X5 X6
1 2 3 4 5 6
r1 r2 r3 r4 r5 r6
Programacin Dinmica 13
Donde:
Xi: Inventario al inicio del mes i
Ki: Nmero de unidades a producir en el mes i
fi (Xi) : Valor acumulado de la funcin objetivo (menor costo) desde la etapa i hasta el final
ri : Costo de produccin + costo de inventario en la la etapa i
Kix: Decisin optima en la etapa i dado el estado Xi en el que se encuentra el inventario inicial disponible en la
etapa i
Las relaciones siguientes expresan los costos en miles de dlares:
10 4 Ki, siKi 0
Cp(Ki) =
0, siKi 0
Ci(Xi) = 1*Xi
Etapa 6: Diciembre
Etapa 5: Noviembre
Para esta etapa debe observarse que 2 X5+K5 3; 2 porque al menos hay que satisfacer la demanda del mes y 3
por que a lo ms se puede almacenar 1 barco para el siguiente mes:
X5+K5-d51 X5+K51+d5, como d5=2, se tiene que X5+K53.
Etapa 4: Octubre
Para esta etapa debe observarse que 3X4+K46; 3 por que la demanda del mes es 3 y 6 por que se puede
almacenar hasta 3 barcos para los posteriores meses:
X4+K4-d43 X4+K43+d4, como d4=3, se tiene que X5+K56.
Etapa 3: Septiembre
Etapa 2: Agosto
Etapa 1: Julio
SOLUCION
OPTIMAMes X inicial K d X final Cp Ci CT
Jul 0 4 1 3 10+4(4)= 26 3 29
Ago 3 0 2 1 0 1 1
Sep 1 4 5 0 10+4(4)= 26 0 26
Oct 0 3 3 0 10+4(3)= 22 0 22
Nov 0 3 2 1 10+4(3)= 22 1 23
Dic 1 0 1 0 0 0 0
96 5 101
En consecuencia se deber producir 4, 0, 4, 3, 3 y 0 unidades en los meses de Julio, Agosto, Septiembre,
Octubre, Noviembre y Diciembre respectivamente, obteniendo un costo total mnimo de 101 mil dlares.
K1 K2 K3 K4 K5
X1=4
X1 X2 X3 X4
1 2 3 4 5
El requerimiento r1 r2 r3 r4 r5
semanal de 6 5 3 6 8
personal es:
Donde:
Xi: Nmero de trabajadores disponibles al inicio de la semana i
Ki: Nmero de trabajadores a mantener en la semana i
fi (Xi) : Valor acumulado de la funcin objetivo (menor costo) desde la etapa i hasta el final
ri : Costo de contratacin + costo de despido +costo de exceso
Kix: Decisin optima en la etapa i dado el estado Xi en el que se encuentra el nmero de trabajadores disponibles
en la etapa i
Costo Contratacin =
400 200 * NroTrabaja doresContr atados , si NroTrabaja doresContratados 0
0, si NroTrabajadoresContratados 0
ETAPA 5
ETAPA 4
ETAPA 3
ETAPA 2
ETAPA 1
Poltica ptima:
Etapa Xi Ki Requerimiento Contrato Despido Exceso Costo
1 4 6 6 2 - - 800
2 6 6 5 - - 1 300
3 6 6 3 - - 3 900
4 6 6 6 - - - -
5 6 8 8 2 - - 800
Total 2800
La solucin ptima es contratar 2 trabajadores en la primera semana, conservar 6 trabajadores durante las 3
semanas siguientes y contratar 2 trabajadores ms en la ltima semana. Esta poltica da como costo mximo
2800 dlares.
Ejercicio: Determinar la poltica ptima de contratacin de personal, si el requerimiento semanal es:
Semana 1 2 3 4 5
Requerimiento 5 3 8 5 7
1 2 3 4
La confiabilidad del dispositivo se puede mejorar a travs de la instalacin de unidades de reserva, lo que
significa que cada componente principal puede incluir hasta tres unidades en paralelo. (ver diagrama siguiente):
El capital total disponible para el diseo del dispositivo es $15 000. Los datos de la confiabilidad R i(ki) y el costo
ci(ki) del i-simo componente ( i = 1, 2, 3, 4) dadas ki unidades en paralelo se resumen a continuacin.
Suponiendo que el dispositivo debe tener como mnimo 1 unidad de cada componente, determine el nmero de
unidades paralelas, ki, que debe tener el dispositivo de cada componente i de tal forma que se maximice su
probabilidad de funcionamiento (confiabilidad) sin exceder el capital asignado.
COMPONENTES EN SERIE
N unidades 1 2 3 4
en paralelo P Costo P Costo P Costo P Costo
1 0,8 3 0,9 3 0,6 2 0,7 4
2 0,82 5 0,95 4 0,8 4 0,75 5
3 - - - - 0,9 5 0,85 7
Nota: el costo esta en miles de soles
SOLUCIN:
Estructura:
Donde:
Xi: Capital disponible para la etapa i
X1: Capital disponible para los 4 componentes
X2: Capital disponible para los componentes 2, 3 y 4
X3: Capital disponible para los componentes 3 y 4
X4: Capi tal disponible para el componente 4
Ki: Nmero de unidades en paralelo asignadas del componente i
fi (Xi) : Valor acumulado de la funcin objetivo (mayor probabilidad de funcionamiento) desde la etapa i hasta el
final
ri : probabilidad de funcionamiento en la etapa i
Kix: Decisin optima en la etapa i dado el estado Xi en el que se encuentra el capital disponible en la etapa i
Entonces las iteraciones recursivas del problema son:
ETAPA 4
ETAPA 3
ETAPA 2
ETAPA 1
POLITICA OPTIMA
Componente 1 2 3 4
Capital Disponible 15 2 9 4
N Unidades 1 1 3 1 Total
Probabilidad 0.8 0.9 0.9 0.7 0.4536
Por lo tanto la solucin es incluir 1 unidad del componente 1, 1 unidad del componente 2 y 3 unidades del
componente 3, de esta manera el dispositivo alcanza una probabilidad de funcionamiento del 45.36%.
Utilidad/ unidad de
Peso carga
Carga A 4 Ton s/. 1100
Carga B 3 Ton s/.700
Carga C 5 Ton s/.1200
Determinar el nmero de unidades de cada tipo de carga a incluir en el barco de tal manera que se maximice su
utilidad.
SOLUCIN:
Estructura
Donde:
Xi: Capacidad disponible en la etapa i
X1: Capacidad disponible para las 3 cargas
X2: Capacidad disponible para las cargas B y C
X3: Capacidad disponible para la carga C
Ki: Nmero de unidades a incluir en el barco de la carga i
fi (Xi) : Valor acumulado de la funcin objetivo (mayor utilidad) desde la etapa i hasta el final
ri : Utilidad en la etapa i
Kix: Decisin optima en la etapa i dado el estado Xi en el que se encuentra la capacidad disponible del barco en
la etapa i
Entonces las iteraciones recursivas del problema son:
ETAPA 3
ETAPA 2
ETAPA 1
POLITICA OPTIMA
Capacidad
CARGA Disponible Ki* Utilidad
A 10 1 1100
B 6 2 1400
C 0 0 0
Total 2500
Por lo tanto se debe incluir 1 carga del tipo A y 2 cargas del tipo B, alcanzando una utilidad de S/.2500.00.
APLICACIONES PROPUESTAS
APLICACIN 1.- Una compaa dispone de 7 vendedores que deben trabajar en tres regiones. Las
siguiente tabla muestra el nmero de ventas que resulta al asignar n vendedores a una regin:
n Regiones
# de trabajadores 1 2 3
0 10 12 8
1 14 15 12
2 17 18 15
3 23 22 19
4 28 27 22
5 31 33 29
6 35 36 34
7 40 42 39
Si la compaa exige por lo menos 1, 2 y 2 agentes para las regiones 1, 2 y 3 respectivamente, determine la
asignacin ptima de agentes.
APLICACIN 2.- Una empresa sabe que la demanda de su producto durante cada uno de los cuatro meses
siguientes ser como sigue:
Mes 1 2 3 4
Unidades 1 3 2 4
Al principio de cada mes, la empresa debe determinar cuntas unidades se deben producir durante ese mes.
Durante un mes en el que se produce cualquier nmero de unidades, se incurre en un costo de preparacin de 3
dlares. Adems, hay un costo variable de 1 dlar por cada unidad producida. Al final de cada mes, se incurre en
un costo de 50 centavos de dlar por unidad en inventario. Las limitaciones de capacidad permiten la produccin
de un mximo de 5 unidades durante cada mes. El tamao de las bodegas de la empresa restringe el inventario
final de cada mes a 4 unidades cuando mucho. La empresa desea determinar un calendario de produccin para
cada mes que cumpla a tiempo con las demandas y que reduzca al mnimo la suma de los costos de produccin y
de almacenamiento durante los cuatro meses. Suponer que hay cero unidades al principio del primer mes.
APLICACIN 3.- Una empresa de aparatos electrodomsticos tiene un contrato para entregar el siguiente
nmero de radios durante los tres meses siguientes: mes 1, 200 radios; mes 2, 300 radios; mes 3, 300 radios. Por
cada radio que se produce durante los meses 1 y 2, se incurre en un costo variable de 10 dlares; por cada radio
producido durante el mes 3, se incurre en un costo variable de 12 dlares. El costo de almacenamiento es 1.50
dlares por cada radio en inventario al final de un mes. El costo de preparar la produccin durante un mes es 250
dlares. Los radios que se fabrican durante un mes pueden servir para abastecer la demanda de ese mes o de
alguno futuro. Suponga que la produccin durante cada mes debe ser mltiplo de 100. Dado que el nivel inicial
de inventario es cero, utilice la programacin dinmica para determinar un calendario ptimo de produccin.
APLICACIN 4.- Un extraterrestre est a punto de regresar a casa. Para que su viaje tenga xito deben
funcionar bien el relevador solar, el impulsor y la mquina de caramelos. Encontr tres actores desempleados
que desean ayudar a tener lista la nave para su despegue. En la tabla siguiente se presenta la probabilidad de que
cada componente trabaje en forma correcta durante el viaje, en funcin del nmero de actores desempleados
asignados a la reparacin de cada componente.
NRO DE ACTORES
ASIGNADOS A UN COMPONENTE
COMPONENTE 0 1 2 3
Impulsor .30 .55 .65 .95
Relevador solar .40 .50 .70 .90
Dulcera .45 .55 .80 .98
Con programacin dinmica ayude a maximizar la probabilidad de que el extraterrestre tenga un buen viaje de
regreso.
APLICACIN 5.- Para graduarse en la universidad del estado, ngela necesita pasar al menos uno de los
tres cursos que toma este semestre. Est inscrita en francs, alemn y estadstica. El horario de las dems
actividades le permite dedicar 4 horas de estudio por semana. La probabilidad de que ngela pase cada materia
depende del nmero de horas que dedique a estudiarla (vase tabla siguiente)
PROBABILIDAD DE
HORAS DE APROBAR EL CURSO
ESTUDIO POR
SEMANA Francs Alemn Estadstica
0 .20 .25 .10
1 .30 .30 .30
2 .35 .33 .40
3 .38 .35 .45
4 .40 .38 .50
Utilice programacin dinmica para determinar cuntas horas por semana debe dedicar ngela al estudio de cada
materia. (Sugerencia: Explique por qu maximizar la probabilidad de pasar al menos una materia es equivalente
a minimizar la probabilidad de no aprobar las tres materias).
APLICACIN 6.- Cuesta 40 dlares comprar un telfono en una tienda de departamentos. Los costos
estimados de mantenimiento durante cada ao de funcionamiento se muestra en la tabla siguiente:
AO 1 2 3 4 5
COSTO DE MANTENIMIENTO (Dlares) 20 30 40 60 70
Puedo conservar un telfono cuando mucho 5 aos. Acabo de comprar un telfono nuevo, y mi telfono anterior
no tiene valor de salvamento. Determine cmo reducir al mnimo el costo total de compra y funcionamiento de
un telfono durante los siguientes 6 aos.
APLICACIN 7.- Suponga que un automvil nuevo cuesta 10000 dlares y que el costo anual de operacin
y valor de reventa son los que se muestran en la tabla siguiente:
5 2000 2000 ao 5
6 1000 1000 ao 6
Si tengo hoy un auto nuevo, determine una poltica de reemplazo que minimice el costo neto de poseer y operar
un automvil durante los siguientes 6 aos.
APLICACIN 8.- Una Corporacin petrolera tiene 4 millones de dlares para invertir en tres campos
petroleros. Las utilidades que gana el sitio i (i=1, 2, 3) dependen de la cantidad invertida en l, tal como se
muestra en la siguiente tabla:
0 4 3 3
1 7 6 7
2 8 10 8
3 9 12 13
4 11 14 15
Si se supone que la cantidad invertida en cada campo debe ser mltiplo exacto de 1 milln de dlares, determine
con programacin dinmica una poltica de inversiones que eleve al mximo las utilidades que gana la
corporacin con sus tres campos petroleros.
APLICACIN 9.- El nmero de crmenes en cada una de las tres demarcaciones policiacas de una ciudad
depende del nmero de patrullas asignada a ellas (vase la siguiente tabla)
NUMERO DE PATRULLAS
ASIGNADAS A CADA DEMARCACION
0 1 2 3 4 5
Demarcacin 1 14 10 7 4 1 0
Demarcacin 2 25 19 16 14 12 11
Demarcacin 3 20 14 11 8 6 5
Se dispone de un total de 5 patrullas. Con programacin dinmica determine cuntas patrullas deben asignarse a
cada demarcacin.
APLICACIN 10.- Una Corporacin internacional produce aviones livianos a pedido, y tiene los siguientes
pedidos para ser entregados al final de los prximos 5 aos:
Ao: 1 2 3 4 5
Nro de aviones: 3 5 2 1 4
La Corporacin puede construir hasta 4 aviones en cualquier ao, y puede guardar hasta 3 aviones en stock. El
costo de construccin de los aviones considera un costo fijo de 1 000 000 de dlares y un costo variable de 500
000 dlares por avin construido. Para mantener un avin en stock durante el periodo de un ao, el constructor
gasta $ 50 000. Cul debe ser el plan optimo de construccin, de modo que se minimice el costo total de la
corporacin?. Formule un modelo de programacin dinmica para obtener la solucin.