PROGRAMACIONDINAMICA

18
Programación Dinámica Investigación de Operaciones Avanzadas Prof. Ignacio Morales [email protected]

description

zvxcghjk

Transcript of PROGRAMACIONDINAMICA

Page 1: PROGRAMACIONDINAMICA

Programación Dinámica

Investigación de Operaciones Avanzadas

Prof. Ignacio Morales

[email protected]

Page 2: PROGRAMACIONDINAMICA

Contenidos

• Introducción y ejemplo prototipo.

• Ejemplos de programación dinámica.

• Características de los problemas de la programación dinámica.

• Programación dinámica determinística.

• Programación dinámica probabilística.

Page 3: PROGRAMACIONDINAMICA

PROGRAMACIÓN DINÁMICA

INTRODUCCIÓN

Es una técnica útil para la toma de decisiones, donde la idea principal es descomponer el problema en sub-problemas los cuales son más manejables.

Los cálculos se realizan entonces de manera recursiva, donde la solución óptima de un sub-problema se utiliza como dato de entrada en el problema siguiente (recursivo).

La solución óptima para todo el problema está disponible cuando se soluciona el último sub-problema.

Page 4: PROGRAMACIONDINAMICA

Para utilizar esta técnica se requiere de cierto grado de creatividad y tener un buen conocimiento de la estructura general del problema, para reconocer cuándo y cómo un problema puede ser resuelto mediante PD.

Con el fin de mejorar la habilidad para identificar estos problemas se deben estudiar las distintas aplicaciones y estudiar el ejemplo prototipo.

PROGRAMACIÓN DINÁMICA

Page 5: PROGRAMACIONDINAMICA

EJ: 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

Page 6: PROGRAMACIONDINAMICA

EJ: 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

Page 7: PROGRAMACIONDINAMICA

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

Page 8: PROGRAMACIONDINAMICA

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

Page 9: PROGRAMACIONDINAMICA

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) = mín fn(Sn, Xn) = mín {CSXn + f*

n+1(Xn)}

PROGRAMACIÓN DINÁMICA

Page 10: PROGRAMACIONDINAMICA

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).

PROGRAMACIÓN DINÁMICA

Page 11: PROGRAMACIONDINAMICA

CARACTERÍSTICAS DE LOS PROBLEMAS DE PD

• 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.

• 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.

• Utilizar una recursividad hacia adelante o hacia atrás da la misma solución óptima.

PROGRAMACIÓN DINÁMICA

Page 12: PROGRAMACIONDINAMICA

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.

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:

• Ruta mas corta

• Asignación de recursos

• Mochila

• Inventario

• Reemplazo de equipo

PROGRAMACIÓN DINÁMICA DETERMINÍSTICA

Page 13: PROGRAMACIONDINAMICA

CARACTERÍSTICAS DE LAS APLICACIONES DE LA PROGRAMACIÓN DINÁMICA:

1. Es posible dividir el problema en etapa, y se requiere una decisión en cada etapa.

2. Cada etapa se relaciona con una cierta cantidad de estados.

3. La decisión tomada en cualquier etapa describe el modo en que el estado en la etapa actual se transforma en el estado en la etapa siguiente.

4. Dado es estado actual, la decisión óptima para cada una de las etapas restantes no tiene que depender de los estados ya alcanzados o de las decisiones tomadas previamente.

5. Debe haber una recursión que relacione el costo o la recompensa ganada durante las etapas n, n+1, …, N con el costo o la recompensa ganada a partir de las etapas n+1, n+2, …, N.

PROGRAMACIÓN DINÁMICA DETERMINÍSTICA

Page 14: PROGRAMACIONDINAMICA

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 termino 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

Page 15: PROGRAMACIONDINAMICA

Tabla: Información del problema:

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

PROGRAMACIÓN DINÁMICA DETERMINÍSTICA

Brigadas médicas

Miles de años-persona de vida adicionales

País

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

Page 16: PROGRAMACIONDINAMICA

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

Page 17: PROGRAMACIONDINAMICA

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; mes2, 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. Además, hay 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 disponible. 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, cuando mucho. 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 del costo por almacenamiento durante los cuatro meses. Suponga que dispone de 0 unidades al principio del mes.

PROGRAMACIÓN DINÁMICA DETERMINÍSTICA

Page 18: PROGRAMACIONDINAMICA

Ejemplo 4: REEMPLAZO DE EQUIPO

Un taller de reparación de automóviles requiere tener siempre disponible un analizador de motores. Un analizador nuevo cuesta $1000. El costo por mantención anual de un analizador depende de sus años con: m1 = $60, m2 = $80 y m3 = $120. Un analizador se puede conservar durante 1, 2 o 3 años, después se puede dar como pago inicial de uno nuevo. Si un analizador se da como pago inicial, su valor de salvamento depende de sus años, con: s1 = $800 s2 = $600 s3 = $500. Dado que una máquina nueva se debe comprar ahora (tiempo 0), el taller desea determinar una estrategia de reemplazo y de pago inicial que minimice los costos netos = (costo de mantenimiento) + (costo de reemplazo) - (Valor de salvamento recibido) durante los 5 años siguientes.

PROGRAMACIÓN DINÁMICA DETERMINÍSTICA