Teoria de Programacion Dinamica
Teoria de Programacion Dinamica
Teoria de Programacion Dinamica
INTRODUCCIÓN
Esta técnica se aplica sobre problemas que a simple vista necesitan un alto coste
computacional (posiblemente exponencial) donde:
¿QUÉ SE LOGRA?
CARACTERÍSTICAS DE UN PROBLEMA DE PD
Para que un problema pueda ser resuelto con la técnica de programación dinámica,
debe cumplir con ciertas características:
A continuación veremos una explicación sobre las características que son comunes
en la mayor parte de las aplicaciones de la programación dinámica.
CARACTERÍSTICA 1
CARACTERÍSTICA 2
Cada etapa tiene un número de estados asociados con ella. Por estado se entiende
la información que se necesita en cualquier etapa para tomar una decisión óptima.
CARACTERÍSTICA 3
CARACTERÍSTICA 4
Dado el estado actual, la decisión óptima para cada una de las etapas restantes no
debe depender de estados previamente alcanzados o de decisiones previamente
tomadas. A esta idea se le conoce como principio de optimalidad.
CARACTERÍSTICA 5
Si los estados del problema se han clasificado en uno de T etapas, debe haber una
formula recursiva que relacione el costo o recompensa durante las etapas t, t+1,…, T
con el costo o recompensa de las etapas t +1, t +2,…, T En esencia, la fórmula
recursiva formaliza el procedimiento de marcha atrás.
RESOLUCIÓN DE UN PROBLEMA DE PD
DEFINICION
Técnica matemática que permite dar soluciones secuénciales con las que mediante
cálculos recursivos se obtiene la solución óptima del problema.
La programación dinámica consiste en una técnica 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 polietápico.
Proporciona un procedimiento sistemático para determinar la combinación de
decisiones para resolver problemas divididos en etapas, de tal forma que se
maximice la efectividad total. Es característico de estos problemas que deba
adoptarse una política general de decisión, 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 programación
dinámica es, pues, una técnica muy útil para tomar el mejor conjunto de decisiones
interrelacionadas.
La programación dinámica se basa en la noción matemática de recursión.
Decisión(es)
Di
Variable de Variable de
Fi
Estado i+1 Estado
Xi
Función de
Transformación
Ri
Medida de
Rendimiento
FUNCIÓN DE TRANSFORMACIÓN
Entonces:
Xn = fn (Xn-1 )
Función Generalizada:
APLICACIONES:
Estructura:
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}
Xi+1: Estado final al que dirige en la etapa i
X2={2, 3, 4} X3={5, 6, 7} X4={8, 9} X5={10}
fi* : Valor acumulado de la función objetivo (menor distancia) para el estado Xi en la
etapa i
gij : Distancia recorrida en el tramo ij
Kix: Decisión optima en la etapa i dado el estado Xi en el que se encuentra en la
etapa i
PROCESO DE RETROCESO:
En la tabla anterior se muestra las distancias más cortas que hay desde el nodo
donde se encuentra actualmente (8 ó 9) al nodo final (10).
En la tabla precedente se muestra también las distancias más cortas que hay desde
el nodo donde se encuentra actualmente (5, 6 ó 7) hasta el nodo final (10), pasando
por 8 ó 9. Estas distancias se determinan aplicando la ecuación recursiva f 4* + g34.
Por ejemplo para determinar la distancia que hay entre X3=5 y el nodo final (10),
tomando la decisión K3=8, será igual a la distancia que entre la ciudad 5 a la ciudad
8 mas la distancia que hay entre la ciudad 8 hasta la ciudad 10, o sea
610+1030=1640.
La tabla final nos muestra las distancias que desde el nodo 1 hasta el nodo 10,
pasando por 2, 3 ó 4 y son 2870, 3120 y 2920 kilómetros, respectivamente.
Donde
Por lo tanto la solución óptima en detalle será:
Se definen:
Función Recursiva fi(t) Ingreso neto máximo para los años i, i+1, ……, n
Aplicación
El costo de una máquina nueva es de $ 2 000 000. La vida útil de las instalaciones
que realizan este proceso de producción es de 5 años al final de lo cual toda la
instalación será rescatada. La máquina actual completará 3 años en la próxima
inspección. Determine el plan de mantenimiento y reemplazo de esta máquina.
SOLUCIÓN:
Estructura:
Donde:
Xi: Edad del activo al inicio de la etapa i
Xi+1: Decisión de Conservar o Reemplazar en la etapa i
fi*: Valor acumulado de la función objetivo (menor costo) para el estado del activo Xi
desde la etapa i hasta el final del horizonte de vida.
rij : Costo de reemplazar o conservar el activo en tramo ij.
Kix: Decisión optima en la etapa i dado el estado Xi en el que se encuentra el activo
en la etapa i
A continuación presentamos la red del problema en términos de costos de
reemplazar o conservar el activo.
ETAPA 5
ETAPA 4
ETAPA 3
Los resultados en K3* de R ó C indican que posiblemente este problema tiene más
de una solución óptima.
ETAPA 2
ETAPA 1
Por lo tanto las políticas óptimas en base a las tablas de recursividad serán: (dos
soluciones óptimas)
ÑO lternativa 1 lternativa 2
1 R R
2 C C
3 C R
4 R C
5 C C
V V
Analizando la solución óptima de la alternativa 1, se tiene:
En el año 1 la decisión óptima será de Reemplazar (R), esto implica comprar una
máquina nueva, la cual al final del año tendrá 1 año de edad.
En el año 2, dado que se tiene una máquina de 1 año de edad, la decisión óptima
será Conservar (C), por lo tanto al final del año 2 la máquina tendrá 2 años de edad,
y así sucesivamente se rescata las mejores decisiones en las demás etapas del
problema.
Entonces si la empresa quiere a la larga optimizar sus costos de operación y
mantenimiento, deber aplicar cualquiera de las dos alternativas de políticas de
reemplazo para sus activos.
MÉTODO ALTERNATIVO
Aplicando el proceso gráfico
ETAPA 6
ETAPA 5
ETAPA 4
ETAPA 3
Los resultados en K3* de R ó C indican que posiblemente este problema tiene más
de una solución óptima.
ETAPA 2
ETAPA 1
Una corporación recibe cuatro propuestas de sus tres plantas respecto a la posible
expansión de las instalaciones. La corporación tiene un presupuesto de $8 millones
para asignarlo. A cada planta se le solicita someta sus propuestas, indicando el
costo total (c) y el ingreso total (R) para cada propuesta. En la tabla siguiente se
resumen los costos e ingresos (en millones de dólares). La meta de la corporación
es la de maximizar el ingreso total resultante de la asignación de los $8 millones a
las tres plantas. Determine la asignación óptima de las propuestas a cada planta,
suponiendo que se acepta sólo una propuesta por planta.
SOLUCIÓN:
Estructura:
Donde:
Etapa 4
Etapa 3
Etapa 2
Etapa 1
Un constructor produce barcos a pedido, y tiene los siguientes pedidos para ser
entregados al final de los próximos 6 meses:
Él puede construir hasta 4 barcos en cualquier mes, y puede guardar hasta 3 barcos
en stock. El costo de construcción de los barcos considera un costo fijo de 10 000
dólares y un costo variable de 4 000 dólares por barco construido. Para mantener un
barco en stock durante el periodo de un mes, el constructor gasta $ 1 000. ¿Cuál
debe ser el plan optimo de construcción, de modo que se minimice el costo total del
constructor? Formule un modelo de programación dinámica para obtener la solución.
SOLUCIÓN:
Estructura:
Donde:
Xi: Inventario al inicio del mes i
Xi+1: Inventario final del mes i
Ki: Número de unidades a producir en el mes i
fi*: Valor acumulado de la función objetivo (menor costo) desde la etapa i hasta el
final
ri : Costo de producción + costo de inventario en la la etapa i
Kix: Decisión 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 dólares:
Costos de producción Cp(Ki) = 10 4Ki, siKi 0
0, siKi 0
Costos de almacenamiento Ci(Xi) = 1*Xi
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 más se puede almacenar 1 barco
para el siguiente mes:
X5+K5-d5≤1 X5+K5≤1+d5, como d5=2, se tiene que X5+K5≤3.
Etapa 4: Octubre
Para esta etapa debe observarse que 3≤X4+K4≤6; 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-d4≤3 X4+K4≤3+d4, como d4=3, se tiene que X5+K5≤6.
Etapa 3: Septiembre
Etapa 2: Agosto
ETAPA 4
ETAPA 3
ETAPA 2
ETAPA 1
Política óptima:
1 2 3 4
El capital total disponible para el diseño del dispositivo es $15 000. Los datos de la
confiabilidad Ri(ki) y el costo ci(ki) del i-ésimo componente ( i = 1, 2, 3, 4) dadas ki
unidades en paralelo se resumen a continuación. Suponiendo que el dispositivo
debe tener como mínimo 1 unidad de cada componente, determine el número 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.
ETAPA 3
ETAPA 2
ETAPA 1
POLITICA OPTIMA
Donde:
ETAPA 3
ETAPA 2
ETAPA 1
POLITICA OPTIMA
Por lo tanto se debe incluir 1 carga del tipo A y 2 cargas del tipo B, alcanzando una
utilidad de S/.2500.00.
SOLUCIÓN
ETAPA 2
ETAPA 1
Respuesta:
Se deberá asignar a cada Región el número de vendedores como sigue:
SOLUCION
Javier vive en la ciudad A, pero está pensando en conducir hasta la ciudad k para
visitar a su amada, su dinero es escaso y por lo tanto a decidido pasar cada noche
de su viaje en un hotel de visitantes que son muy baratos, como se muestra en la
figura. Javier sabe que después de conducir un día puede dormirse y causar un
accidente así que no sabe que ruta sería la más corta para llegar hasta donde su
amada en la ciudad K ¿podrías ayudarle con la más corta ruta?
Solución
Etapa I
Etapa II
Etapa III
Etapa IV
La mejor opción es la ruta ACFJK con un valor de 15, siendo esta la más corta para
nuestro viajero.
Una empresa sabe que la demanda de su producto durante cada uno de los cuatro
meses siguientes será como sigue:
SOLUCIÓN
La función de costo variables para todos los meses es: P + 0.5H
Respuesta:
Se deberá producir 3, 0, 3 y 4 unidades en los meses 1, 2, 3 y 4 respectivamente,
obteniendo un costo total mínimo de $ 20.00.
Las utilidades y los pesos por productos están representados en la siguiente tabla:
ETAPA 1
ETAPA 2
ETAPA 3
ETAPA 4
SOLUCION ÓPTIMA
APLICACIÓN 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 máquina 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 función del número
de actores desempleados asignados a la reparación de cada componente.
SOLUCIÓN
A continuación se muestran las iteraciones recursivas del problema:
Respuesta:
El extraterrestre deberá asignar 1, 0 y 2 actores desempleados al Impulsor,
Revelador solar y Dulcería respectivamente, obteniendo una probabilidad de 17.6%
de tener un buen viaje de regreso.
Solución:
Etapa 3:
Etapa 2:
Etapa 1:
Solución Óptima:
APLICACIÓN 6.- Una Corporación petrolera tiene 4 millones de dólares 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:
Si se supone que la cantidad invertida en cada campo debe ser múltiplo exacto de 1
millón de dólares, determine con programación dinámica una política de inversiones
que eleve al máximo las utilidades que gana la corporación con sus tres campos
petroleros.
SOLUCIÓN
Cálculos:
n=4
n=3
n=2
n=1
El óptimo es: 24
La solución óptima es: X1 = 3; X2 = 8; X3= 9; X4= 13.
La ruta óptima es:
Un día no asignado a una faena no tiene valor asociado. A lo más se puede asignar
3 días a una misma faena.
Solución:
Etapas: Son 3. La etapa 1 es el proceso de asignación de días a Poda. La etapa 2
es el proceso de asignación de días a Raleo. La etapa 3 es el proceso de asignación
de días a Cosecha.
Estados: Son los días disponibles para ser asignados, y van de 0 a 4, dependiendo
de las etapas. La etapa 1 tiene 1 estado factible y es: tener 4 días disponibles para
ser asignados.
Las variables de decisión son 3: X1, X2, X3 y representan: Cuántos días asignar a la
faena poda, Cuántos días asignar a la faena de raleo, Cuántos días asignar a la
faena de cosecha; respectivamente.
La Función Objetivo y las restricciones forman en el modelo para este problema y
es: P: Min( p(X1)*p(X2)*p(X3) ) ; s.a: X1+X2+X3 4 ; Xi 0,1,2,3; i=1,2,3
La probabilidad de ser despedido en este momento es: 0.5*0.6*0.4 =0.12, que es de
un 12%, y con los 4 días disponibles desea minimizar esa probabilidad.
Los cálculos:
n=3
n=2
n=1
Solución:
Etapas: son 4 etapas. La etapa 1,2,3,4 es el proceso de decisión de envíos de
cargamento al destino 1, destino 2, destino 3 y destino 4 respectivamente.
Estados: La cantidad de cargamentos disponibles para ser enviados en cada etapa.
El modelo en este caso es: (Son 2 problemas en uno).
P: Máx ( g(xi); i=1,2,3,4) s.a: X1+X2+X3 +X4 5 ; Xi 0,1,2,3,4; i=1,2,3,4.
P: Máx ( g(xi); i=1,2,3,4) s.a: X1+X2+X3 +X4 4 ; Xi 0,1,2,3,4; i=1,2,3,4.
Los Cálculos.
n=4
n=3
n=2
n=1
Respuesta:
A) Si envía 4 cargamentos, el óptimo es: MM$ 22, y la solución óptima es: X1 = 3 ;
X2 = 0 ; X3= 1; X4= 0;
La ruta óptima es:
Solución:
n=3
n=2
n=1
Respuesta: El máximo ingreso posible es MM$ 25, y se puede alcanzar con la
asignación : X1 = 1 ; X2 = 2 ; X3= 2 ( Con ingresos: 5+11+9= 25). O bien con la
asignación: X1 = 3 ; X2 = 2 ; X3= 0 ( Con ingresos: 14+11+0 = 25 ).
¿Cuántas brigadas asignar a cada sector para hacer máxima la suma de aumento
de la productividad?.
Una brigada no asignada no tiene valor asociado en la productividad. Esto equivale
a decir que el valor al horizonte de una brigada no asignada es de cero, ya que ese
valor no influye sobre el valor de la función objetivo.
Solución:
n=1
PROGRAMACIÓN DINÁMICA.
Problema de la diligencia.
Características básicas:
1.- El problema se puede dividir en etapas que requieren una política de decisión
en cada una de ellas.
2.- Cada etapa tiene cierto número de estados asociados con su inicio. Los estados
son las distintas condiciones posibles en las que se puede encontrar el sistema en
cada etapa del problema.
5.- Dado el estado actual, una política óptima para las etapas restantes es
independiente de la política adoptada en etapas anteriores. Este es el principio de
optimalidad para programación dinámica.
7.- Se dispone de una relación recursiva que identifica la política óptima para la
etapa n, dada la política óptima para la etapa n+1.
La programación dinámica es un enfoque general para la solución de problemas
en los que es necesario tomar decisiones en etapas sucesivas.
Existen tres modelos diferentes manejados por Winqsb.
Problema de la diligencia (Stagecoach Problem). Problema de la mochila
(Snapsack Problem).
programación de producción e inventarios (Production and Inventory Scheduling)
etapas del proceso. En la Ilustración anterior existen cuatro etapas de viaje, cada
una de ellas es un
representa mediante Sn, es un estado, que describe una posible situación del
proceso en ese período. En nuestro ejemplo, S1 = {1}, S2= {2, 3, 4}, S3= {5, 6, 7},
S4= {8, 9}.
La función recursiva: Dados unos nodos y unos arcos que conectan estos
nodos, el problema de la diligencia intenta encontrar la ruta más corta que conecta
un nodo de arranque con el nodo final (el destino).
Sea s: el estado de inicio; j: estado destino
n: la fase, normalmente representa el número de arcos hasta el destino.
C(s, j): costo o distancia de ir desde s hasta j.
f(n, s): la política de costo mínimo cuando se encuentra en el estado s de la etapa
n.
La solución indica que se deben transportar los ítems 3, 4 y 5 con un retorno total
de 17800 u.m. y utilización plena de la capacidad (en peso), disponible del avión.
Teniendo en cuenta sólo el volumen, el nuevo modelo es:
La solución es:
EJEMPLO DE PROGRAMACION DE PRODUCCION E INVENTARIOS
En programación dinámica, el costo variable se expresa como una función
de la producción (P), el inventario (H), y backorder (B).
Sea:
• P(n): el número de unidades producidas en el periodo n
• D(n): la demanda en el periodo n
• H(n): el inventario disponible al final del periodo n
• B(n): el backorder al final del periodo n
• I(n): la posición del inventario al final del periodo n, es decir, I(n) = H(n) o
I(n) =B(n)
I(n) = I(n-1) + P(n) - D(n)
• S(n): el costo de preparación en el periodo n
• V (P(n), I(n)): el costo variable = función de P(n), H(n), y/o B(n)
• C(n,P(n),I(n)): = S(n) + V(P(n),I(n)) si P(n)>0, = V(P(n),I(n)) si P(n)=0
• F(n, i): costo total acumulativo dado el nivel del inventario inicial i para el periodo n
La relación recursiva dinámica se expresa como:
F(n, i) = máximo {C(n, P(n), i+P(n)-D(n)) + f(n-1, i+P(n)-D(n))} para todo posible P(n).
La tabla muestra los datos del siguiente problema de producción e
inventario: la demanda para los meses de enero, febrero, marzo y abril es de 4, 5, 3
y 4 unidades, respectivamente. Las capacidades de producción son de 6, 4, 7, y 5
unidades; las capacidades de almacenaje son 4, 3, 2 y 4 unidades
respectivamente. Los costos de preparación varían de un mes a otro y son: 500,
450, 500 y 600 u.m. para enero, febrero, marzo y abril.
Determinar un programa de producción con el fin de minimizar los costos
totales relacionados.
Al igual que en los ejercicios anteriores, se procede a ingresar los datos: