Professional Documents
Culture Documents
Comunicación: iciuach.slack.com
Investigación de Operaciones
Avanzada
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.
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
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
• 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
Solución:
• Estructura básica:
• Etapas:
Programación dinámica determinística