Teoria de Programación Dinámica

80
PROGRAMACIÓN DINÁMICA INTRODUCCIÓN Existe una serie de problemas cuyas soluciones pueden ser expresadas recursivamente en términos matemáticos, y posiblemente la manera más natural de resolverlos es mediante un algoritmo recursivo. Sin embargo, el tiempo de ejecución de la solución recursiva, normalmente de orden exponencial y por tanto impracticable, puede mejorarse substancialmente mediante la Programación Dinámica. La programación dinámica es un método para reducir el tiempo de ejecución de un algoritmo mediante la utilización de subproblemas superpuestos y subestructuras óptimas, como se describe a continuación. 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 más corto entre dos vértices de un grafo se puede encontrar calculando primero el camino más corto al objetivo desde todos los vértices adyacentes al de partida, y después usando estas soluciones para elegir el mejor camino de todos ellos. En general, se pueden resolver problemas con subestructuras óptimas siguiendo estos tres pasos: Dividir el problema en subproblemas más pequeños. Resolver estos problemas de manera óptima usando este proceso de tres pasos recursivamente. Usar estas soluciones óptimas para construir una solución óptima al problema original. Los subproblemas se resuelven a su vez dividiéndolos ellos mismos en subproblemas más pequeños hasta que se alcance el caso fácil, donde la solución 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 sucesión de Fibonacci, F 3 = F 1 + F 2 y F 4 = F 2 + F 3 — calcular cada término supone calcular

description

"PLAN DE ACCIÓN PARA LA MEJORA DE LOS APRENDIZAJES 2015"

Transcript of Teoria de Programación Dinámica

Page 1: Teoria de Programación Dinámica

PROGRAMACIÓN DINÁMICA

INTRODUCCIÓN

Existe una serie de problemas cuyas soluciones pueden ser expresadas recursivamente en términos matemáticos, y posiblemente la manera más natural de resolverlos es mediante un algoritmo recursivo. Sin embargo, el tiempo de ejecución de la solución recursiva, normalmente de orden exponencial y por tanto impracticable, puede mejorarse substancialmente mediante la Programación Dinámica.

La programación dinámica es un método para reducir el tiempo de ejecución de un algoritmo mediante la utilización de subproblemas superpuestos y subestructuras óptimas, como se describe a continuación.

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 más corto entre dos vértices de un grafo se puede encontrar calculando primero el camino más corto al objetivo desde todos los vértices adyacentes al de partida, y después usando estas soluciones para elegir el mejor camino de todos ellos. En general, se pueden resolver problemas con subestructuras óptimas siguiendo estos tres pasos:

Dividir el problema en subproblemas más pequeños.

Resolver estos problemas de manera óptima usando este proceso de tres pasos recursivamente.

Usar estas soluciones óptimas para construir una solución óptima al problema original.

Los subproblemas se resuelven a su vez dividiéndolos ellos mismos en subproblemas más pequeños hasta que se alcance el caso fácil, donde la solución 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 sucesión de Fibonacci, F3 = F1 + F2 y F4 = F2 + F3 — calcular cada término supone calcular F2. Como ambos F3 y F4 hacen falta para calcular F5, una mala implementación para calcular F5 acabará calculando F2 dos o más veces. Esto ocurre siempre que haya subproblemas superpuestos: una mala implementación 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 más tarde, podemos obtener la solución de la lista de soluciones calculadas y reutilizarla. Este acercamiento al problema se llama memorización. Si estamos seguros de que no volveremos a necesitar una solución 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.

Page 2: Teoria de Programación Dinámica

En resumen, la programación dinámica hace uso de:

Subproblemas superpuestos

Subestructuras óptimas

Memorización

La programación dinámica toma normalmente uno de los dos siguientes enfoques:

Top-down: El problema se divide en subproblemas, y estos subproblemas se resuelven recordando las soluciones en caso de que sean necesarias nuevamente. Es una combinación de memorización y recursión.

Bottom-up: Todos los subproblemas que puedan ser necesarios se resuelven de antemano y después son usados para resolver las soluciones a problemas mayores. Este enfoque es ligeramente mejor en consumo de espacio y llamadas a funciones, pero a veces resulta poco intuitivo encontrar todos los subproblemas necesarios para resolver un problema dado.

¿QUÉ ES LA PROGRAMACIÓN DIMÁMICA?

La Programación Dinámica es una técnica de programación que se emplea típicamente para resolver problemas de optimización en los cuales el problema principal se encuadra en varios sub problemas, solucionando cada uno de ellos y luego ligando las soluciones de una forma óptima, donde la solución final permita resolver y tomar decisiones correctas a problemas actuales y futuros.

¿A QUÉ PROBLEMAS SE APLICA?

Esta técnica se aplica sobre problemas que a simple vista necesitan un alto coste computacional (posiblemente exponencial) donde: Sub problemas optimales: La solución óptima a un problema puede ser definida

en función de Soluciones óptimas a sub problemas de tamaño menor, generalmente de forma recursiva.

Solapamiento entre sub problemas: Al plantear la solución recursiva, un mismo problema se resuelve más de una vez

¿QUÉ SE LOGRA?

La Programación Dinámica utiliza un enfoque ascendente (botton-up) para obtener la solución, primero calcula las soluciones óptimas a problemas de tamaño pequeño. Utilizando dichas soluciones encuentra soluciones a problemas de mayor tamaño.

La idea de la PD es encontrar la solución a los sub problemas y almacenarlos en alguna estructura (diccionario) para utilizarlas posteriormente.

Page 3: Teoria de Programación Dinámica

Por tanto, es más eficiente que la fuerza bruta que resuelve el mismo sub problema una y otra vez.

Evita calcular lo mismo varias veces. Usualmente se utiliza una matriz que se rellena conforme las soluciones a los Sub problemas que son calculados (espacio vs. tiempo).

ELEMENTOS DE LA PROGRAMACIÓN DINÁMICA

Los siguientes cuatro elementos conforman la resolución de un problema mediante PD: Principio de Optimalidad de Bellman Definición Recursiva de la solución optimal Enfoque ascendente Búsqueda solución optima

PRINCIPIO DE OPTIMALIDAD DE RICHARD BELLMAN (1957)

Cuando hablamos de optimizar nos referimos a buscar la mejor solución de entre muchas alternativas posibles. Dicho proceso de optimización puede ser visto como una secuencia de decisiones que nos proporcionan la solución correcta. Si, dada una subsecuencia de decisiones, siempre se conoce cual es la decisión que debe tomarse a continuación para obtener la secuencia óptima, el problema es elemental y se resuelve trivialmente tomando una decisión detrás de otra, lo que se conoce como estrategia voraz.

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 combinación de ellas seguirá siendo óptima, pero será entonces necesario explorar muchas secuencias de decisiones para dar con la correcta, siendo aquí donde interviene la programación dinámica.

Contemplar un problema como una secuencia de decisiones equivale a dividirlo en subproblemas más pequeños y por lo tanto más fáciles de resolver como hacemos en Divide y Vencerás, técnica similar a la de Programación Dinámica. La programación dinámica se aplica cuando la subdivisión de un problema conduce a:

Una enorme cantidad de subproblemas.

Subproblemas cuyas soluciones parciales se solapan.

Grupos de subproblemas de muy distinta complejidad.

CARACTERÍSTICAS DE UN PROBLEMA DE PD

Page 4: Teoria de Programación Dinámica

Para que un problema pueda ser resuelto con la técnica de programación dinámica, debe cumplir con ciertas características:

Naturaleza secuencial de las decisiones: El problema puede ser dividido en etapas. Cada etapa tiene un número de estados asociados a ella.

La decisión óptima de cada etapa depende solo del estado actual y no de las decisiones anteriores.

La decisión tomada en una etapa determina cual será el estado de la etapa siguiente. En síntesis, la política óptima desde un estado s de la etapa k a la etapa final está constituida por una decisión que transforma s en un estado s’ de la etapa k +1 y por la política óptima desde el estado s’ hasta la etapa final.

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

El problema se puede dividir en etapas; cada etapa requiere una decisión. En muchos problemas de programación dinámica, la etapa es la cantidad de tiempo que pasa desde el inicio del problema, en ciertos casos no se necesitan decisiones en cada etapa.

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

La decisión tomada en cualquier etapa indica cómo se transforma el estado en la etapa actual en el estado en la siguiente etapa. En muchos problemas, una decisión no determina con certeza el estado de la siguiente etapa; en lugar de ello, la decisión actual sólo determina la distribución de probabilidad del estado en la etapa siguiente.

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

Page 5: Teoria de Programación Dinámica

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

Para resolver un problema de programación dinámica debemos al menos cumplir con: Identificación de etapas, estados y variable de decisión:

Cada etapa debe tener asociado una o más decisiones (problema de optimización), cuya dependencia de las decisiones anteriores está dada exclusivamente por las variables de estado.

Cada estado debe contener toda la información relevante para la toma de decisión asociada al período.

Las variables de decisión son aquellas sobre las cuales debemos definir su valor de modo de optimizar el beneficio acumulado y modificar el estado de la próxima etapa.

Descripción de ecuaciones de recurrencia: Nos deben indicar como se acumula la función de beneficios a optimizar (función objetivo) y como varían las funciones de estado de una etapa a otra. Resolución: Debemos optimizar cada sub problema por etapas en función de los resultados de la resolución del sub problema siguiente. Al final obtendremos una solución óptima para el problema.

PROGRAMACIÓN DINÁMICA PROBABILÍSTICA (PDP)

La programación dinámica probabilística (PDP) es una técnica matemáticamente útil para la toma de decisiones interrelacionadas, se presenta cuando el estado en la siguiente etapa no está determinado por completo por el estado y la política de decisión de la etapa actual. En su lugar existe una distribución de probabilidad para determinar cuál será el siguiente estado. Sin embargo, esta distribución de probabilidad si queda bien determinada por el estado y la política de decisión en la etapa actual. Por consiguiente la diferencia entre la programación dinámica probabilística y la programación dinámica determinística (PDD) está en que los estados y los retornos o retribuciones en cada etapa son probabilísticos. La programación dinámica probabilística se origina en especial en el tratamiento de modelos estocásticos de inventarios y en los procesos markovianos de decisión.

Aplicaciones de programación dinámica probabilística

Algunas de las aplicaciones de programación dinámica probabilística son:

Un juego aleatorio

Page 6: Teoria de Programación Dinámica

Problema de inversión Maximización del evento de lograr una meta.

PROGRAMACIÓN DINÁMICA DETERMINÍSTICA (PDD)

En este caso se profundiza sobre el enfoque de programación dinámica en los problemas determinísticos, en donde el estado en la siguiente etapa está completamente determinado por el estado y la política de decisión de la etapa actual. El caso probabilístico en el que existe una distribución de probabilidad para el valor posible del siguiente estado este se analizara más adelante.

Aplicaciones de programación dinámica determinística.

Algunas de las aplicaciones de programación dinámica determinística son:

Modelo De La Ruta Más Corta Modelo De Volumen-Carga “Mochila” Modelo Del Número De Empleados Modelo De Reemplazo De Equipos Modelo De Asignación De Recursos Modelo De Inventarios

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.

Page 7: Teoria de Programación Dinámica

La programación dinámica se basa en la noción matemática de recursión.

ESTRUCTURA DE LA PROGRAMACIÓN DINÁMICA

Ejemplo: Empresa comercializadora de alimentos (ECASA)

Fi

Función de Transformación

Di

Xi+1Xi

Ri

Medida de

Rendimiento

Decisión(es)

Variable de Estado

(Salida)

Variable de Estado

(Entrada)

Page 8: Teoria de Programación Dinámica

FUNCIÓN DE TRANSFORMACIÓN

[Nº de empleados en Tn] = [Nº de empleados en to] + [empleados contratados en tn-to] - [empleados dados debajo en tn-to]

[trigo almacenado en Tn] = [trigo almacenado en To) + [recepción trigo en tn – to] – [salida de trigo en tn – to] - [merma trigo en tn – to]

Problema de Decisión de n etapas (para 12 meses)

Entonces:

Page 9: Teoria de Programación Dinámica

Función Generalizada:

APLICACIONES:

APLICACIÓN 1: MODELO DE LA RUTA MÁS CORTA

En la ciudad 1 queda un aeropuerto internacional con afluencia de muchos turistas que desean conocer los centros turísticos indicados en la red de la figura mostrada en la parte inferior.

La red muestra la distancia (en kilómetros) de un centro a otro, así mismo muestra las alternativas de traslado.

Una agencia de CityTour internacional desea determinar lo siguiente:

Para los turistas que desean conocer únicamente el centro turístico número 10 hallar la trayectoria de menor distancia.

Xn = fn (Xn-1 )

Xn-1 = fn-1 (Xº)

Xn = fn (fn-1 (fn-2 (…f2 (f1 (xº))…)))

Page 10: Teoria de Programación Dinámica

SOLUCIÓN:

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}

Page 11: Teoria de Programación Dinámica

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

A continuación se muestran las iteraciones recursivas del problema aplicando el

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 f4* + 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.

Page 12: Teoria de Programación Dinámica

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

Etapa nodo actual nodo destino Interpretación

1 1 2 De la ciudad 1, se tendrá que ir a ciudad 2. 2 2 5 De la ciudad 2, ir a la ciudad 5. 3 5 8 De la ciudad 5, ir a la ciudad 8 4 8 10 Finalmente de la ciudad 8 ir a la ciudad 10

La distancia recorrida desde la ciudad 1 hasta la ciudad 10 es 2870 kilómetros.

APLICACIÓN 2: ANÁLISIS DE REEMPLAZO DE EQUIPOS

Cuando una máquina llega a cierta edad, se elevan sus costos operacionales y de mantenimiento, por lo que puede ser más económico reemplazarla. Luego, hay que determinar la edad de vida útil económica de la máquina

Se supone el problema de reemplazo de equipo a lo largo de n años. Al principio de cada año se decide prolongar el servicio del equipo un año más, o reemplazarlo por uno nuevo

Page 13: Teoria de Programación Dinámica

Características, fases, etc.

Se definen:

r(t) : beneficio anual del equipo de edad t añosc(t) : costo de operación del equipo de edad t añoss(t) : valor de rescate del equipo que ha estado en servicio durante t años I : costo de adquisición de un equipo nuevo en cualquier año

Etapas: i, son los años i = 1, 2, ……, n

Alternativas conservar la máquina (C) o reemplazarla (R)

Estados ti, edad de la máquina al principio del año i

Función Recursiva fi(t) Ingreso neto máximo para los años i, i+1, ……, n

La determinación de los estados es un tanto difícil, se recomienda hacer una red edad de la máquina v/s año de la decisión, para distinguir los estados posibles y los valores factibles para la edad de la máquina en cada etapa

Aplicación

La principal máquina de un proceso químico de producción es inspeccionada anualmente, siendo conservada o reemplazada. El costo de mantenimiento y el valor de rescate de esta máquina se presenta en la tabla siguiente:

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:

Page 14: Teoria de Programación Dinámica

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.

A continuación se muestran las iteraciones recursivas del problema:

Page 15: Teoria de Programación Dinámica

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

Page 16: Teoria de Programación Dinámica

Por lo tanto las políticas óptimas en base a las tablas de recursividad serán: (dos soluciones óptimas)

AÑO Alternativa 1 Alternativa 21 R R2 C C3 C R4 R C5 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

Page 17: Teoria de Programación Dinámica

ETAPA 6

ETAPA 5

ETAPA 4

ETAPA 3

Page 18: Teoria de Programación Dinámica

Los resultados en K3* de R ó C indican que posiblemente este problema tiene más de una solución óptima.

ETAPA 2

ETAPA 1

Las soluciones estarían dadas por:

APLICACIÓN 3: PRESUPUESTO DE CAPITAL

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.

Page 19: Teoria de Programación Dinámica

SOLUCIÓN:

Estructura:

Donde:

Xi: Capital disponible en la etapa i.

X1: Capital disponible para las 4 plantas

X2: Capital disponible para las plantas 2, 3 y 4

X3: Capital disponible para las plantas 3 y 4

X4: Capital disponible para la planta 4

Ki: Propuesta elegida para la planta i

fi* : Valor acumulado de la función objetivo (mayor rendimiento) desde la etapa i hasta el final

ri : Rendimiento en la etapa i

Kix: Decisión optima en la etapa i dado el estado Xi en el que se encuentra el monto del capital disponible en la etapa i

A continuación presentamos las iteraciones recursivas del problema:

Etapa 4

Page 20: Teoria de Programación Dinámica

Etapa 3

Etapa 2

Page 21: Teoria de Programación Dinámica

Etapa 1

En consecuencia analizando las iteraciones recursivas, se tiene la siguiente Política Optima:

A la planta 1 se debera asignar la propuesta B, a la planta 2 también la B, a la planta 3 se debe asignar la propuesta C y a la planta 4 la propuesta B, obteniendo un rendimiento total máximo de 15 millones de dólares.

Page 22: Teoria de Programación Dinámica

APLICACIÓN 4: PLAN DE PRODUCCIÓN

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

Page 23: Teoria de Programación Dinámica

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

A continuación se muestran las iteraciones recursivas del problema:

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

Page 24: Teoria de Programación Dinámica

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

Para esta etapa debe observarse que 5 ≤ X3+K3 ≤ 7

Etapa 2: Agosto

Para esta etapa debe observarse que 3 ≤ X2+K2 ≤ 5

Etapa 1: Julio

Para esta etapa debe observarse que 1 ≤ X1+K1 ≤ 4

Por lo tanto la Solución Óptima será:

Page 25: Teoria de Programación Dinámica

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 mínimo de 101 mil dólares.

APLICACION 5: NIVELACIÓN DE LA PRODUCCIÓN

El modelo trata de determinar el mejor plan de producción de un artículo estacional. Los costos básicos estan dados por el costo de producción y almacenamiento. El objetivo es reducir al mínimo los costos totales de operación.

Los factores conocidos son:

Costos de producción, en términos de producción ordinaria y extra

Costos de almacenamiento en términos de cantidad de artículos almacenados.

PROBLEMA.- La compañía cervecera del sur ha compilado los siguientes datos para los futuros requerimientos mensuales de producción y costos:

Al 31 de Diciembre hay 400 cajas a un costo de $ 5.00 cada caja, la producción normal no puede ser mayor de 650 cajas y la producción extra no puede ser mayor de 300 cajas, los costos de almacenamiento son de $ 1.50 al mes por caja. ¿Cuál es el programa óptimo de producción y sus respectivos costos totales?. Suponer que no se desea ningún inventario al terminar el semestre.

Page 26: Teoria de Programación Dinámica

SOLUCIÓN DEL PROBLEMA

Como el problema consiste en reducir al mínimo los costos de producción y almacenamiento, puede considerarse como un modelo de transporte, donde los requerimientos son el total de cajas requeridas en el semestre y las disponibilidades u ofertas por la producción normal y extra.

La solución establece los siguientes costos:

Page 27: Teoria de Programación Dinámica

APLICACION 6.- CONTRATACIÓN DE PERSONAL

Un contratista necesita decidir el tamaño de su fuerza de trabajo en las 5 semanas siguientes. El tamaño mínimo de la fuerza de trabajo necesario para las 5 semanas es de 6, 5, 3, 6 y 8 respectivamente. El exceso de trabajadores que se mantienen en la fuerza laboral costará 300 dólares por trabajador, por semana y las nuevas contrataciones en cualquier semana incurrirán en un costo fijo de 400 mas 200 dólares por trabajador, por semana.

Si la fuerza de trabajo inicial es de 4 trabajadores, y el costo de despido en cualquiera de las semanas es de 200 dólares, determine los tamaños óptimos de la fuerza de trabajo para el horizonte de planeación de 5 semanas.

Determinar la política de contratación de personal en un horizonte de 5 semanas

SOLUCIÓN:

La estructura del problema es:

Page 28: Teoria de Programación Dinámica

Donde:

Xi: Número de trabajadores disponibles al inicio de la semana i

Ki: Número de trabajadores a mantener en la semana i

fi*: Valor acumulado de la función objetivo (menor costo) desde la etapa i hasta el final

ri : Costo de contratación + costo de despido +costo de exceso

Kix: Decisión optima en la etapa i dado el estado Xi en el que se encuentra el número de trabajadores disponibles en la etapa i

Costo Contratación (CC) =

{400+200∗NroTrabajadoresContratados ,si NroTrabajadoresContratados>0

0 , si NroTrabajadoresContratados=0

Costo de despido (CD) = 200*(No Trabajadores Despedidos)

Costo de exceso (CE) = 300*(No Trabajadores Excedentes)

Entonces las iteraciones recursivas del problema son:

ETAPA 5

ETAPA 4

Page 29: Teoria de Programación Dinámica

ETAPA 3

ETAPA 2

ETAPA 1

Política óptima:

La solución óptima es contratar 2 trabajadores en la primera semana, conservar 6 trabajadores durante las 3 semanas siguientes y contratar 2 trabajadores más en la última semana. Esta política da como costo máximo 2800 dólares.

Page 30: Teoria de Programación Dinámica

APLICACIÓN 7.- PROBABILIDAD DE FUNCIONAMIENTO

Considere el diseño de un dispositivo electrónico que consta de cuatro componentes principales. Los cuatro componentes están dispuestos en serie, de manera que la falla de uno de ellos hará que falle todo el dispositivo. (ver siguiente diagrama):

La confiabilidad del dispositivo se puede mejorar a través de la instalación 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 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 k i

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.

Nota: el costo esta en miles de soles

SOLUCIÓN:

Estructura:

1 2 3 4

Page 31: Teoria de Programación Dinámica

Donde:

Xi: Capital disponible para la etapa i

X1: Capital disponible para los 4 componentesX2: Capital disponible para los componentes 2, 3 y 4X3: Capital disponible para los componentes 3 y 4X4: Capital disponible para el componente 4

Ki: Número de unidades en paralelo asignadas del componente i

Fi*: Valor acumulado de la función objetivo (mayor probabilidad de funcionamiento) desde la etapa i hasta el final

ri : probabilidad de funcionamiento en la etapa i

Kix: Decisión 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

Page 32: Teoria de Programación Dinámica

ETAPA 1

POLITICA OPTIMA

Por lo tanto la solución 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%.

APLICACIÓN 8.- PROBLEMA DE LA MOCHILA

Suponga que se tiene 3 tipos de cargamento a transportar en una barco con capacidad para 10 toneladas. En la siguiente tabla se muestra el peso y la utilidad de cada tipo de cargamento.

Page 33: Teoria de Programación Dinámica

Determinar el número de unidades de cada tipo de carga a incluir en el barco de tal manera que se maximice su utilidad.

SOLUCIÓN:

Estructura

Donde:

Xi: Capacidad disponible en la etapa i

X1: Capacidad disponible para las 3 cargasX2: Capacidad disponible para las cargas B y CX3: Capacidad disponible para la carga C

Ki: Número de unidades a incluir en el barco de la carga i

fi*: Valor acumulado de la función objetivo (mayor utilidad) desde la etapa i hasta el final

ri : Utilidad en la etapa i

Kix: Decisión 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

Page 34: Teoria de Programación Dinámica

ETAPA 2

Page 35: Teoria de Programación Dinámica

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.

APLICACIÓN 9.- DISTRIBUCIÓN DE PERSONAL

Una compañía dispone de 7 vendedores que deben trabajar en tres regiones. La siguiente tabla muestra el número de ventas que resulta al asignar n vendedores a una región:

Page 36: Teoria de Programación Dinámica

Si la compañía exige por lo menos 1, 2 y 2 agentes para las regiones 1, 2 y 3 respectivamente, determine la asignación óptima de agentes.

SOLUCIÓN

A continuación se muestran las iteraciones recursivas del problema:

ETAPA 3

ETAPA 2

ETAPA 1

Respuesta: Se deberá asignar a cada Región el número de vendedores como sigue:

APLICACIÓN 10.- PLANEACIÓN DE GASTOS DE PUBLICIDAD

Una compañía decide hacer experimentos de mercadotecnia en uno de sus mercados de prueba. La empresa quiere determinar la mejor combinación de publicidad, así como sus frecuencias, la empresa ha reunido datos de relación de ventas con frecuencias de publicidad. Las cifras se basan en condiciones optimistas y pesimistas, que se muestran en las tablas, el costo de utilización de publicidad R,

Page 37: Teoria de Programación Dinámica

S y T es de $ 3000, $ 5500 y $ 9000 respectivamente. El total de presupuesto para publicidad es de $ 22000, determinar la propuesta optima en condiciones pesimistas y optimistas.

SOLUCION

En el problema se tienen datos de ventas pesimistas y optimistas, se desarrollará la solución pesimista, para lo cual se tomará en cuenta en presupuesto de publicidad de $ 22000, como sigue:

Analizaremos en cada etapa las combinaciones de frecuencia de publicidad R, S con cero, uno y dos de T.

Etapa 1.- Combinación R, S con cero de T

Page 38: Teoria de Programación Dinámica

Etapa 2.- Combinación R, S con uno de T

Etapa 3.- Combinación R, S con dos de T

La solución sería invertir $ 20500 en 2 publicidad de R, 1 publicidad de S y una publicidad de T para una venta de 665 unidades.

Page 39: Teoria de Programación Dinámica

OTRAS APLICACIONES

APLICACIÓN 1.- Modelo del viajero

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

Page 40: Teoria de Programación Dinámica

Etapa IV

La mejor opción es la ruta ACFJK con un valor de 15, siendo esta la más corta para nuestro viajero.

APLICACIÓN 2.- Modelo de Producción e inventario

Una empresa sabe que la demanda de su producto durante cada uno de los cuatro meses siguientes será como sigue:

Al principio de cada mes, la empresa debe determinar cuántas unidades se deben producir durante ese mes. Durante un mes en el que se produce cualquier número de unidades, se incurre en un costo de preparación de 3 dólares. Además, hay un costo variable de 1 dólar por cada unidad producida. Al final de cada mes, se incurre en un costo de 50 centavos de dólar por unidad en inventario. Las limitaciones de capacidad permiten la producción de un máximo de 5 unidades durante cada mes. El tamaño 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 producción para cada mes que cumpla a tiempo con las demandas y que reduzca al mínimo la suma de los costos de producción y de almacenamiento durante los cuatro meses. Suponer que hay cero unidades al principio del primer mes.

SOLUCIÓN

Page 41: Teoria de Programación Dinámica

La función de costo variables para todos los meses es: P + 0.5H

El problema es del tipo PROGRAMACIÓN DE PRODUCCIÓN E INVENTARIOS, elegimos esa opción.

Ingresando los datos:

La solución del problema es:

Respuesta:

Page 42: Teoria de Programación Dinámica

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.

APLICACIÓN 3.- MODELO DE CARGA MAXIMA

La empresa ALBACO S.A. ofrece productos de latón y productos de cobre, desea llevar un pedido de Barras solidas redondas, barras solidas cuadradas, lingotes y platinas de latón para lo cual cuenta con un conteiner que puede transportar hasta 7 toneladas, obligatoriamente tiene que hacer llegar por lo menos una unidad de barras solidas cuadradas y una unidad de Platinas. Determinar el cargamento de ALBACO debe enviar con la finalidad de optimizar sus utilidades.

Las utilidades y los pesos por productos están representados en la siguiente tabla:

CARGAMENTO MÁXIMO Y MÍNIMO POR PRODUCTO:

ETAPA 1

Page 43: Teoria de Programación Dinámica

ETAPA 2

ETAPA 3

ETAPA 4

SOLUCION ÓPTIMA

Page 44: Teoria de Programación Dinámica

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.

NRO DE ACTORES ASIGNADOS A UN COMPONENTE

Con programación dinámica ayude a maximizar la probabilidad de que el extraterrestre tenga un buen viaje de regreso.

SOLUCIÓNA continuación se muestran las iteraciones recursivas del problema:

Page 45: Teoria de Programación Dinámica

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.

APLICACIÓN 5.- Modelo Distribución de Inversiones

El propietario de 3 tiendas ha comprado 5 cestas de cerezas, para satisfacer la demanda en las diferentes tiendas. El propietario desea determinar la forma de distribuir los canastos, de manera de maximizar el beneficio total. Los retornos (utilidades) en función del número de canastos distribuidos (se asume vendidos) en las 3 tiendas están dados en la siguiente tabla:

Solución:

Etapa 3:

Etapa 2:

Page 46: Teoria de Programación Dinámica

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

Page 47: Teoria de Programación Dinámica

A continuación se muestran las iteraciones recursivas del problema:

Se deberá invertir 1 millón, 2 millones y 1 millón de dólares en el Campo 1, Campo 2 y Campo 3 respectivamente, obteniendo una utilidad total máxima de $ 24 000 000.

APLICACIÓN 7.- El número de crímenes en cada una de las tres demarcaciones policiacas de una ciudad depende del número de patrullas asignada a ellas (véase la siguiente tabla)

Se dispone de un total de 5 patrullas. Con programación dinámica determine cuántas patrullas deben asignarse a cada demarcación.

Page 48: Teoria de Programación Dinámica

SOLUCIÓN

A continuación se muestran las iteraciones recursivas del problema:

Se deberá asignar 1, 1, y 3 patrullas a la Demarcación 1, Demarcación 2 y Demarcación 3, obteniendo una disminución del total de crímenes a 37.

APLICACIÓN 8.- Un Ingeniero Forestal, requiere saber: i) Cuál es el costo mínimo, y ii) Cuál es la ruta con ese costo mínimo, para ir desde su oficina hasta el lugar donde está la cosecha. En su camino debe pasar por 3 sectores o ciudades antes de llegar a su destino, y lugares posibles en esos sectores o ciudades. Las posibles rutas, y el costo asociado por Kms. de distancia y otros en $, se ven en el siguiente esquema:

Page 49: Teoria de Programación Dinámica

Solución:

Para ir de 1 a 13 hay 48 rutas posibles. Una posibilidad para encontrar la solución es calcular el valor asociado a cada una y ver cual es la que proporciona el menor costo. ¿Y si fuesen miles de rutas?. Por se descarta esa alternativa y se usa el método de la programación Dinámica, donde se resuelve desde el final hacia el inicio, y hay etapas y estados.

Etapas: Son 4. La etapa 1 es decidir ir del estado inicial 1 al estado 2,3,4 o 5 que son los puntos posibles en el sector siguiente. La etapa 2 es decidir ir a 6, 7 u 8. La etapa 3 es decidir ir a 9, 10, 11 o 12. La etapa 4 es decidir a 13.

Estado: Lugar donde se encuentra. La etapa 1 tiene 1 estado: el 1. La etapa 2 tiene 4 estados: 2, 3, 4, 5. La etapa 3 tiene 3 estados: 6,7,8. La etapa 4 tiene 4 estados: 9, 10, 11, 12.

Cálculos: n = 4

n = 3

Page 50: Teoria de Programación Dinámica

n = 2

n = 1

El óptimo es: 24La solución óptima es: X1 = 3; X2 = 8; X3= 9; X4= 13.

La ruta óptima es:

Respuesta al problema planteado: El Ingeniero Forestal tiene un costo mínimo de $24 para ir desde su oficina al lugar de cosecha, y ese mínimo lo puede lograr yendo desde su oficina al lugar 3 luego al lugar 8 luego al lugar 9 y de ahí al lugar 13, que es donde está la cosecha.

APLICACIÓN 9.- Un Técnico Forestal, debe revisar 3 faenas: Poda, Raleo y Cosecha, y dispone de 4 días. Según la dedicación en días que le de a cada faena, éstas tendrán una probabilidad de fracasar, y con ello fracasar la faena total, por lo que puede ser despedido. Por ello, dicho Técnico desea minimizar la probabilidad de ser despedido minimizando la probabilidad de que las 3 tareas fracasen al mismo tiempo.

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:

Page 51: Teoria de Programación Dinámica

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

Òptimo = 0.04305 ( un 4,3% ). La solución óptima es: X1 = 0 ; X2 = 2 ; X3= 2

La ruta óptima es:

Page 52: Teoria de Programación Dinámica

Respuesta al problema planteado: La probabilidad mínima de ser despedido es 0.04305 , es decir de un 4,3%, y la asignación óptima de días es: 0 días a la Poda, 2 días al Raleo, 2 Días a la Cosecha.

APLICACIÓN 10.- Un aserradero debe enviar 4 o 5 cargamentos a cuatro destinos. La máxima asignación para cada destino es de cuatro cargamentos. En la tabla siguiente se indica g(xi) como los ingresos en MM$ obtenidos por cada una de las decisiones posibles. Se desea maximizar el ingreso del aserradero por estos envíos. Además al destino 2 no se puede asignar 4 sino que máximo 3 cargamentos. Al destino 3 ya se ha decidido asignar exactamente 1 cargamento. Un cargamento no asignado no tiene valor asignado.

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

Page 53: Teoria de Programación Dinámica

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:

Es decir: Al destino-1 debe enviar 2 cargamentos, al destino-2 debe enviar 0 cargamento, al destino-3 enviar 1 cargamento, y al destino-4 enviar 1 cargamento. Con esto obtiene el máx que es de MM$22.

B) Si envía 5 cargamentos, el óptimo es: MM$ 28, y la solución óptima es: X1 = 2

; X2 = 1 ; X3= 1; X4= 1;

La ruta óptima es:

Page 54: Teoria de Programación Dinámica

Es decir: Al destino-1 debe enviar 2 cargamentos, al destino-2 debe enviar 1 cargamento, al destino-3 enviar 1 cargamento, y al destino-4 enviar 1 cargamento. Con esto obtiene el máx que es de MM$22.

APLICACIÓN 11.- Un dueño de tres supermercados tiene 5 cargas de fresas frescas. Su problema es destinar las fresas a cada supermercado, ya que en cada uno las fresas tienen distinto valor. El ingreso en los supermercados, según la asignación de cargas se indica a continuación en MM$.

El no asignar las cargas de fresas a un supermercado tiene valor asociado de cero pesos al horizonte, porque se perderán. ¿Cuál es el máximo ingreso posible, y cuál es la asignación que para ello?

Solución:n = 3

n = 2

n = 1

Page 55: Teoria de Programación Dinámica

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

APLICACIÓN 12.- Se dispone de 6 brigadas para asignar a tres sectores. El aumento de la productividad en los sectores depende de la asignación, y es la que se indica en el cuadro siguiente:

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

Las etapas: Son tres etapas

Los Estados: Son el número de brigadas disponibles al inicio de la etapa.

Estado inicial: Es uno sólo, y es tener 6 brigadas disponibles.

Variables de decisión: Son 3, indicadas por: X1 , X2 , X3 y el valor de ellas es un

elemento del conjunto: 0,1,2,3, 4

El modelo: P: Máx ( f (Xi ); i=1,2,3) s.a: X1+X2+X3 6 ; Xi 0,1,2,3,4;

i=1,2,3.

Los cálculos: n = 3

Page 56: Teoria de Programación Dinámica

n = 2

n=1

Respuesta: Optimo =75; Solución óptima: X1*=2; X2*=3; X3*=1

Respuesta: La mayor productividad posible es de 75 y se logra asignando 2 brigadas al sector 1, 3 brigadas al sector 2 y 1 brigada al sector 3.

Ruta óptima:

PROGRAMACIÓN DINÁMICA CON WINQSB

PROGRAMACIÓN DINÁMICA.

Page 57: Teoria de Programación Dinámica

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

decisiones tomadas en una etapa condicionan la evolución futura del sistema,

afectando a las situaciones en las que el sistema se encontrará en el futuro

(denominadas estados), y a las decisiones que se plantearán en el futuro.

Conviene resaltar que a diferencia de la programación lineal, el modelado de

problemas de programación dinámica no sigue una forma estándar. Así, para cada

problema será necesario especificar cada uno de los componentes que

caracterizan un problema de programación dinámica.

El procedimiento general de resolución de estas situaciones se divide en el

análisis recursivo de cada una de las etapas del problema, en orden inverso, es

decir comenzando por la última y pasando en cada iteración a la etapa antecesora.

El análisis de la primera etapa finaliza con la obtención del óptimo del problema.

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)

Problema de la diligencia.

El problema de la diligencia es un prototipo literal de los problemas de

programación dinámica. Por tanto una manera de reconocer una situación que se

puede formular como un problema de programación dinámica es poder

identificar una estructura análoga a la del problema de la diligencia.

Características básicas:

1.- El problema se puede dividir en etapas que requieren una política de decisión

Page 58: Teoria de Programación Dinámica

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.

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

4.- El procedimiento de solución está diseñado para encontrar una política óptima

para el problema completo.

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.

6.- El procedimiento de solución se inicia al encontrar la política óptima para la

última etapa.

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)

EJEMPLO SOBRE EL PROBLEMA DE LA DILIGENCIA

Considérese el gráfico que contempla las rutas posibles para ir desde la

ciudad 1 hasta la ciudad 10. Cada nodo representa una ciudad y los arcos la

Page 59: Teoria de Programación Dinámica

infraestructura vial disponible. La tabla recoge el costo asociado al desplazamiento

entre cada par de nodos para cada una de las etapas. Se Supone que todos los

desplazamientos tienen la misma duración, y que el viaje ha de realizarse en

cuatro etapas. Cada una de ellas se corresponde con un único desplazamiento

entre un par de nodos del grafo, así al finalizar la primera etapa estaremos en una

de las ciudades 2, 3 ó 4. La segunda etapa finalizará en la ciudad 5, la número 6 ó

la número7. La tercera jornada nos llevará a la ciudad 8 o a la número 9. La cuarta

etapa permite finalizar el viaje en la ciudad 10.

Períodos o etapas: Sea N= {1, 2,....., n} un conjunto finito de elementos. Mediante

el índice n ∈ N, se representa cada una de ellas. N es el conjunto de períodos o

etapas del proceso. En la Ilustración anterior existen cuatro etapas de viaje, cada

una de ellas es un

período y se representa mediante un valor del índice n, así cuando n =1 se

refiere a la primera etapa del proceso.

Espacio de estados: {S ∈ N} es una familia de conjuntos, uno para cada período n.

Page 60: Teoria de Programación Dinámica

S se denomina espacios de estados en el periodo n. Cada uno de sus elementos, se

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 relación recursiva dinámica se expresa como f(n, s) = mínimo [C(s, j) + f(n-1,

j)] para todos los arcos (s, j) en la red

El problema contiene 10 nodos claramente identificados:

Al pulsar OK se puede ingresar el resto de información, el cual se basa en

las relaciones existentes entre los nodos. Los valores van de acuerdo a la red

Page 61: Teoria de Programación Dinámica

establecida en el problema:

Para resolver el problema se pulsa la opción Resolver el problema (Solve the

Problem) del menú Resolver y analizar (Solve and Analyze).

La ventana siguiente permite identificar los nodos de inicio y fin:

Al pulsar SOLVE se genera la solución al problema:

Page 62: Teoria de Programación Dinámica

Si queremos una solución detallada se debe pulsar sobre Mostrar

solución detallada (Show Solution Detail) en el menú Resultados (Results):

Problema de la mochila.

La idea básica es que existen N tipos distintos de artículos que pueden

cargarse en una mochila; cada artículo tiene asociados un peso y un valor. El

problema consiste en determinar cuántas unidades de cada artículo se deben

colocar en la mochila para maximizar el valor total.

Este enfoque resulta útil para la planificación del transporte de artículos en

Page 63: Teoria de Programación Dinámica

algún medio, por ejemplo: carga de un buque, avión, camión etc.

También es utilizable este modelo en planificación de producción, por

ejemplo enrutamiento de la producción a través de varias máquinas.

El problema se desarrolla bajo dos consideraciones, primero teniendo en

cuenta el peso y luego el volumen. Este es un problema que también podría

resolverse por programación lineal entera teniendo en cuenta la función objetivo y

sus restricciones siguientes.

EJEMPLO SOBRE PROBLEMA DE LA MOCHILA O CANASTA DE EQUIPAJE

La idea básica es que existen N tipos distintos de artículos que pueden

cargarse en una mochila; cada artículo tiene asociados un peso y un valor. El

problema consiste en determinar cuántas unidades de cada artículo se deben

colocar en la mochila para maximizar el valor total. Nótese que este enfoque resulta

útil para la planificación del transporte de artículos en algún medio, por ejemplo:

carga de un buque, avión, camión etc. También es utilizable este modelo en

planificación de producción, por ejemplo enrutamiento de la producción a través de

varias máquinas.

La carga de un avión se distribuye con el propósito de maximizar el ingreso

total. Se consideran 5 elementos y sólo se necesita uno de cada uno. La

compañía gana 5000 u.m. por elemento más una bonificación por elemento. El

avión puede transportar 2000 libras.

a) ¿Cuáles elementos deben transportarse?

b) Si se considera un volumen máximo de 200 pies cúbicos. ¿qué elementos deben

Page 64: Teoria de Programación Dinámica

transportarse?

El problema se desarrolla bajo las dos consideraciones, primero teniendo en

cuenta el peso y luego el volumen. Como puede apreciarse este es un problema

que bien podría resolverse por programación lineal entera teniendo en cuenta la

función objetivo y restricciones siguientes:

Siendo xj el elemento j a transportar.

Para el caso del volumen se reformaría la primera restricción cambiando los

coeficientes por los volúmenes de los ítems.

Sea j: la variable que representa el artículo:

x(j): el número de unidades el número de unidades cargadas del artículo j

w(j): el espacio o el peso que demanda cada unidad del artículo j

R(j,x(j)): la función del retorno del artículo j si se llevan x(j) unidades en la mochila,

del artículo j

g(j,w): retorno del total acumulativo dado el espacio w disponible para el artículo j

La relación recursiva dinámica se expresa como:

g(j,w) = máximo {R(j,x(j)) + g[j-1,w-w(j)x(j)]} para todo posible x(j)

Ahora se ingresan los datos al Winqsb:

Page 65: Teoria de Programación Dinámica

La entrada de datos queda como sigue.

Al resolver el problema se tiene:

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:

Page 66: Teoria de Programación Dinámica

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

Page 67: Teoria de Programación Dinámica

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:

Page 68: Teoria de Programación Dinámica

La solución del problema es:

Las cantidades a producir mostradas en la tabla son de tal forma que

permiten un costo mínimo en la planeación: se deben producir 5, 4, 3 y 4 unidades

para los meses de enero, febrero, marzo y abril respectivamente. El costo total

es de $7080, dividido en $2050 por concepto de costos de preparación y

$5030 de costos variables. La tabla también muestra el juego de inventarios

resultante de la producción y la demanda mensuales.