You are on page 1of 18

Clases y Notas: Siveduc

Comunicación: iciuach.slack.com

Investigación de Operaciones
Avanzada
Programación Dinámica

Instituto Ingeniería Industrial y Sistemas

Prof. Ignacio Morales: ignacio.morales@uach.cl


Programación dinámica

INTRODUCCIÓN
• La programación dinámica es una técnica matemática útil para la toma de
decisiones secuenciales interrelacionadas. Proporciona un procedimiento
sistemático para determinar la combinación óptima de decisiones.
• La idea principal es descomponer el problema en subproblemas los
cuales son más manejables.
• Los cálculos se realizan de manera recursiva, donde la solución óptima de
un subproblema se utiliza como dato de entrada en el siguiente
problema.
• La solución óptima para todo el problema está disponible cuando se
soluciona el último subproblema.
Programación dinámica

INTRODUCCIÓN
• La forma en que se realizan estos cálculos recursivos depende de como se
descomponga el problema original. Normalmente se trabaja hacia atrás
partiendo del final del problema hacia el principio.

• Por lo tanto, es necesario cierto grado de creatividad y un buen


conocimiento de la estructura general de los problemas de programación
dinámica para reconocer cuándo y cómo un problema pue de ser resuelto
por me dio de estos procedimientos.

Los problemas de programación dinámica pueden ser:


• Determinísticos
• Probabilísticos
Programación dinámica

APLICACIONES
Problema de la diligencia
• Se puede representar como un problema de la ruta mas corta y se
construyo especialmente para ilustrar las características e introducir la
terminología de la programación dinámica:
• Los cálculos en cada etapa son una función de las rutas factibles de dicha
etapa, y solo de esa etapa.
• Una etapa actual está conectada a la etapa inmediatamente precedente
solo con base en el resumen de distancias más cortas de la etapa
inmediatamente precedente.
Programación dinámica

APLICACIONES
Problema de la diligencia

• Se puede observar que al aplicar el enfoque de la programación dinámica,


el problema se puede dividir en 4 etapas.
Programación dinámica

APLICACIONES
Problema de la diligencia
Errores de Solución
Observe que el procedimiento de elegir la ruta mas corta en cada etapa
sucesiva no conduce a una decisión óptima global.
Un enfoque posible para resolver este problema es el de prueba y error
mediante la enumeración exhaustiva de las rutas. Sin embargo, el número
de rutas puede llegar a ser muy grande y el cálculo del costo total de cada
ruta resulta tedioso.
Programación dinámica

APLICACIONES
Problema de la diligencia
Solución mediante PD
 La idea general para determinar la ruta mas corta es calcular las distancias
(acumulativas) más cortas a todos los nodos terminales de una etapa, y
luego utilizarlas como datos de entrada a la etapa inmediatamente
siguiente.
Programación dinámica

APLICACIONES
Problema de la diligencia
Solución mediante PD
Sea:
• n: numero de etapas (viajes).
• Sn: Estado actual en la etapa n.
• Xn:(n = 1, 2, 3, 4) las variables de decisión que representan el destino
inmediato de la etapa n.
Las mejores políticas para cada Sn de la etapa n esta dada por:
f∗n(Sn, Xn) =min fn(Sn, Xn) = mín {CSn,Xn + f∗n+1(Xn)}
𝑋𝑛
Programación dinámica

APLICACIONES
Problema de la diligencia
Solución mediante PD
Programación dinámica

APLICACIONES
Problema de la diligencia
Solución mediante PD
Programación dinámica

CARACTERÍSTICAS DE LOS PROBLEMAS DE PD


• El problema se puede dividir en etapas, cada una de las cuales requiere una
política de decisión.
• Cada etapa tiene cierto número de estados asociados con su inicio.
• El efecto de la política de decisión en cada etapa es transformar el estado
actual en un estado asociado con el inicio de la siguiente etapa (según si se
maximiza o minimiza).
• El procedimiento de solución está diseñado para encontrar una política
óptima para manejar el problema completo (en cada etapa y en cada estado).
• Dado un estado actual, la decisión de la política óptima para ese estado
depende solo del estado actual y no de cómo se llego ahí. Este es el principio
de optimalidad de la programación dinámica.
• La solución se encuentra al determinar la política óptima para la última etapa.
Programación dinámica

CARACTERÍSTICAS DE LOS PROBLEMAS DE PD


• 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 forma precisa de
la relación recursiva difiere de un problema a otro de programación
dinámica, pero se usará una notación análoga:
Programación dinámica determinística
DEFINICIÓN
• Consiste en la aplicación de las técnicas de programación dinámica a
problemas en los cuales el estado de la siguiente etapa esta
determinado por completo por el estado y la política de decisión de la
etapa actual.
• La programación dinámica determinística se puede describir mediante el
siguiente diagrama:

• Se debe establecer una recursión entre las etapas del problema que
permita tomar la decisión óptima. Ésta recursión se representa mediante
una función (mínimo o máximo) que va a depender del tipo de problema
que se esté analizando.
Programación dinámica determinística
Ejemplo 2: ASIGNACIÓN DE RECURSOS
• El consejo mundial de la salud se dedica a mejorar la atención médica en
los países en desarrollo. En la actualidad dispone de cinco brigadas
médicas para asignarlas a tres de ellos con el fin de mejorar el cuidado de
la salud, la educación para la salud y los programas de capacitación. El
consejo debe determinar cuántas brigadas asignar (si lo hace) a cada uno
de estos países para maximizar la medida de eficiencia de las cinco
brigadas. Éstas deben mantenerse como están constituidas, es decir, el
número asignado a cada país debe ser un entero.
• La medida de desempeño se evalúa en términos de los años de vida
adicionales por persona. (En el caso de un país especifico, esta medida es
igual al incremento del promedio de vida esperado en años, multiplicado
por su población). En la siguiente tabla se proporcionan las estimaciones
de estos años de vida adicionales por persona (en múltiplos de mil) para
cada país y para cada asignación posible de brigadas médicas.
Programación dinámica determinística

Tabla: Información del problema:

Miles de años-persona de vida adicionales


Brigadas
País
médicas
1 2 3
0 0 0 0
1 45 20 50
2 70 45 70
3 90 75 80
4 105 110 100
5 120 150 130

¿Cuál es la asignación que maximiza la medida de desempeño?


Programación dinámica determinística

Solución:
• Estructura básica:

• Etapas:
Programación dinámica determinística

Problema de Inventario: Modelo de revisión periódica.


1. El tiempo se divide en periodos (n = 1,2, …, N). Y se conoce la demanda
durante cada periodo al principio del periodo 1.
2. La compañía debe determinar al principio de cada periodo cuántas
unidades debe fabricar. La capacidad de producción durante cada
periodo es limitada.
3. La demanda de cada periodo se debe cumplir a tiempo con el inventario
o con la producción actual.
4. La compañía tiene capacidad limitada de almacenamiento.
5. El objetivo de la compañía es minimizar el costo total por cumplir a
tiempo con la demanda de los periodos 1, 2, …, N.
Programación dinámica determinística
Ejemplo 3: INVENTARIO
Una compañía sabe que la demanda de su producto durante cada uno de los
próximos cuatro meses es como se indica: mes 1, 1 unidad; mes 2, 3 unidades;
mes 3, 2 unidades; mes 4, 4 unidades. La compañía debe determinar cuántas
unidades tiene que fabricar en el mes corriente. Durante un mes en el cual se
producen algunas unidades, se incurre en un costo preliminar de 3 dólares mas
un costo variable de 1 dólar por cada unidad que se fabrica. Al final de cada mes,
se genera un costo de almacenamiento de 50 centavos por cada unidad. Las
limitaciones en la capacidad permiten producir durante cada mes un máximo de 5
unidades. Las dimensiones de la bodega de la compañía restringen el inventario
final de cada mes a 4 unidades máximo. La empresa desea determinar un plan de
producción que cumpla con toda la demanda a tiempo y minimice la suma del
costo de producción y el costo por almacenamiento durante los cuatro meses.
Suponga que dispone de 0 unidades al principio del mes.