Apuntes de Clase - Programacion Dinamica

31
Programación Dinámica 1. 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: 1. Dividir el problema en subproblemas más pequeños. 2. Resolver estos problemas de manera óptima usando este proceso de tres pasos recursivamente. 3. 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 Ing. Efraín Murillo 1

Transcript of Apuntes de Clase - Programacion Dinamica

Page 1: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

1. 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:

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

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

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

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:

Ing. Efraín Murillo

1

Page 2: Apuntes de Clase - Programacion Dinamica

ETAPAS

Programación Dinámica

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.

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.

X1 X2 X3 … Xn-1 Xn Variables Optimizadoras

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

Ejemplo: Fracción Continua

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.

Ing. Efraín Murillo

2

Solución Optima

Cálculos Recursivos

R = a1 +

b1

a2 + b3

a4 + b4

Page 3: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

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.

Estructura de la programación dinámica.

Ejemplo: Empresa comercializadora de alimentos (ECASA)

Ing. Efraín Murillo

3

F Función de Transforma

K

Decisión

X Variable de

Estado (entrada)

r Medida de Rendimiento y/o eficiencia del sistema

Y

Variable de

Estado (salida)

Page 4: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

Fn

Sistema Ecasa X0 Xn

01/01/03 01/01/04

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)

Ing. Efraín Murillo

4

Fn-1 Fn

Xº X n-1 Xn

01/01/03 Desconocido 01/12/03 Conocido 01/01/04

Page 5: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

Entonces:

Función Generalizada:

Ing. Efraín Murillo

5

Xn = fn (Xn-1 )

Xn-1 = fn-1 (Xº)

X n = (f n-1 (Xº))

f 1 f 2 f n-1 f nXº X1 X2 Xn-2 Xn-1 Xn

01/01/03 01/02/03 01/03/03 01/11/03 01/12/03 01/0/04

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

Page 6: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

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.

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}

Ki: Estado al que dirige en la etapa i

K1={2, 3, 4}

K2={5, 6, 7}

K3={8, 9}

K4={10}

fi (Xi) : Valor acumulado de la función objetivo (menor distancia) para el estado Xi desde la etapa i hasta el destino final (nodo 10)

ri : Distancia recorrida en la etapa i

Ing. Efraín Murillo

6

2 3 41X1 X2 X3 X4

K1 K2 K3 K4

r 1 r2 r3 r4

Page 7: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

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 METODO DE RETROCESO:

Etapa 4 r4(k4) Solución Optima

x4 k4=10 f4(x4) k4*8 1030 1030 109 1390 1390 10

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

Etapa 3 r3(k3)+f4(k3) Solución Optima

x3 k3=8 k3=9 f3(x3) k3*5 610+1030=1640 790+1390=2180 1640 86 540+1030=1570 940+1390=2330 1570 87 790+1030=1820 270+1390=1660 1660 9

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 r3(k3)+f4(k3).

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, osea 610+1030=1640.

Etapa 2   r2(k2)+f3(k2) Solución Optima

x2 k2=5 k2=6 k2=7 f2(x2) k2*2 680+1640=2320 790+1570=2360 1050+1660=2710 2320 53 580+1640=2220 760+1570=2330 660+1660=2320 2220 54 510+1640=2150 700+1570=2270 830+1660=2490 2150 5

Etapa 1   r1(k1)+f2(k1) Solución Optima

x1 k1=2 k1=3 k1=4 f1(x1) k1*1 550+2320=2870 900+2220=3120 770+2150=2920 2870 2

La tabla precedente 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.

Por lo tanto la solución óptima en detalle será:

Etapa nodo actual nodo destino Interpretación

1 1 2 Encontrándose en la ciudad 1, se tendrá que ir a la 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

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 maquina se presenta en la tabla siguiente:

Edad (años): 1 2 3 4

Ing. Efraín Murillo

7

Page 8: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

Costo de mantenimiento (miles de $) 700 300 900 1200 Valor de rescate (miles de $) 950 500 200 0

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

Ki: Decisión de Conservar o Reemplazar en la etapa i

Para la etapa 6 la única decisión es Vender.

fi (Xi) : 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.

ri : Costo de reemplazar o conservar el activo.

En la etapa 6 el valor de r6 es el producto del valor de rescate del activo.

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:

Ing. Efraín Murillo

8

2 3 4 1 X1=8 X2 X3 X4

K1 K2 K3 K4

r 1 r2 r3 r4

5 6 X5 X6

r5 r6

K5 K6

Page 9: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

Año 5

Año 4

Año 3

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

Año 2

Ing. Efraín Murillo

9

Page 10: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

Año 1

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.

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.

Planta 1 Planta 2 Planta 3 Planta 4 Propuesta c1 R1 c2 R2 c3 R3 c4 R4 A 0 0 0 0 0 0 0 0

B 3 5 1 2 2 3 1 3 C 4 6 4 5 3 5 3 6 D - - 5 8 6 9 - -

SOLUCIÓN:

Estructura:

Donde:

Xi: Capital disponible en la etapa i.

Ing. Efraín Murillo

10

2 3 4 1 X1=8 X2 X3 X4

K1 K2 K3 K4

r 1 r2 r3 r4

Page 11: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

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 (Xi) : 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

Etapa 3

Etapa 2

Ing. Efraín Murillo

11

Page 12: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

Etapa 1

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

PLANTACAPITAL

DISPONIBLE PROPUESTACAPITAL

REQUERIDO RENDIMIENTO1 8 B 3 52 5 B 1 23 4 C 3 54 1 B 1 3

TOTAL 15

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.

APLICACIÓN 4: Plan de ProducciónUn constructor produce barcos a pedido, y tiene los siguientes pedidos para ser entregados al final de los próximos 6 meses:

Mes: Jul Ago Sep Oct Nov Dic Nro de barcos: 1 2 5 3 2 1

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

Ing. Efraín Murillo

12

2 3 4 1 X1=8 X2 X3 X4

K1 K2 K3 K4

r 1 r2 r3 r4

5 6 X5 X6

r5 r6

K5 K6

Page 13: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

Donde:

Xi: Inventario al inicio del mes i

Ki: Número de unidades a producir en el mes i

fi (Xi) : 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:

Cp(Ki) =

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

Ing. Efraín Murillo

13

Demanda d 1 =1 d2=2 d3=5 d4=3 d5=2 d6=1

Page 14: Apuntes de Clase - Programacion Dinamica

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

SOLUCION OPTIMAMes X inicial K d X final Cp Ci CT

Ing. Efraín Murillo

14

Page 15: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

Jul 0 4 1 3 10+4(4)= 26 3 29

Ago 3 0 2 1 0 1 1Sep 1 4 5 0 10+4(4)= 26 0 26Oct 0 3 3 0 10+4(3)= 22 0 22Nov 0 3 2 1 10+4(3)= 22 1 23Dic 1 0 1 0 0 0 0

96 5 101

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: Contratación de PersonalUn 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 más 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:

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 (Xi) : 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 =

Ing. Efraín Murillo

15

2 3 4 1 X1 X2 X3 X4

K1 K2 K3 K4

r 1 r2 r3 r4

5

K5

r 5 6 5 3 6 8

X1=4

El requerimiento semanal de personal es:

Page 16: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

Costo de despido = 200*NroTrabajadoresDespedidos

Costo de exceso = 300*NroTrabajadoresExcedentes

Entonces las iteraciones recursivas del problema son:

ETAPA 5

ETAPA 4

ETAPA 3

ETAPA 2

ETAPA 1

Política óptima:

Etapa Xi Ki Requerimiento Contrato Despido Exceso Costo

Ing. Efraín Murillo

16

Page 17: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

1 4 6 6 2 - - 8002 6 6 5 - - 1 300

3 6 6 3 - - 3 9004 6 6 6 - - - -5 6 8 8 2 - - 800

Total 2800

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.

Ejercicio: Determinar la política óptima de contratación de personal, si el requerimiento semanal es:

Semana 1 2 3 4 5Requerimiento 5 3 8 5 7

APLICACIÓN 6: 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 R i(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.

  COMPONENTES EN SERIE Nº unidades en paralelo

1 2 3 4P Costo P Costo P Costo P Costo

1 0,8 3 0,9 3 0,6 2 0,7 42 0,82 5 0,95 4 0,8 4 0,75 53 - - - - 0,9 5 0,85 7

Nota: el costo esta en miles de soles

SOLUCIÓN:

Estructura:

Ing. Efraín Murillo

17

1 2 3 4

Page 18: Apuntes de Clase - Programacion Dinamica

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: Capi tal disponible para el componente 4

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

fi (Xi) : 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

Ing. Efraín Murillo

18

Page 19: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

ETAPA 1

POLITICA OPTIMA

Componente 1 2 3 4

Capital Disponible 15 2 9 4Nº Unidades 1 1 3 1 TotalProbabilidad 0.8 0.9 0.9 0.7 0.4536

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

PesoUtilidad/ unidad de

cargaCarga A 4 Ton s/. 1100Carga B 3 Ton s/.700Carga C 5 Ton s/.1200

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 (Xi) : Valor acumulado de la función objetivo (mayor utilidad) desde la etapa i hasta el final

Ing. Efraín Murillo

19

Page 20: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

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

ETAPA 2

ETAPA 1

POLITICA OPTIMA

CARGA

Capacidad

UtilidadDisponible Ki*A 10 1 1100B 6 2 1400C 0 0 0

Total 2500

Ing. Efraín Murillo

20

Page 21: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

Por lo tanto se debe incluir 1 carga del tipo A y 2 cargas del tipo B, alcanzando una utilidad de S/.2500.00.

APLICACIONES PROPUESTAS

APLICACIÓN 1.- Una compañía dispone de 7 vendedores que deben trabajar en tres regiones. Las siguiente tabla muestra el número de ventas que resulta al asignar n vendedores a una región: n Regiones

# de trabajadores 1 2 30 10 12 81 14 15 122 17 18 153 23 22 194 28 27 225 31 33 296 35 36 347 40 42 39

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.

APLICACIÓN 2.- Una empresa sabe que la demanda de su producto durante cada uno de los cuatro meses siguientes será como sigue:

Mes 1 2 3 4 Unidades 1 3 2 4

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.

APLICACIÓN 3.- Una empresa de aparatos electrodomésticos tiene un contrato para entregar el siguiente número de radios durante los tres meses siguientes: mes 1, 200 radios; mes 2, 300 radios; mes 3, 300 radios. Por cada radio que se produce durante los meses 1 y 2, se incurre en un costo variable de 10 dólares; por cada radio producido durante el mes 3, se incurre en un costo variable de 12 dólares. El costo de almacenamiento es 1.50 dólares por cada radio en inventario al final de un mes. El costo de preparar la producción durante un mes es 250 dólares. Los radios que se fabrican durante un mes pueden servir para abastecer la demanda de ese mes o de alguno futuro. Suponga que la producción durante cada mes debe ser múltiplo de 100. Dado que el nivel inicial de inventario es cero, utilice la programación dinámica para determinar un calendario óptimo de producción.

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.

Ing. Efraín Murillo

21

Page 22: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

NRO DE ACTORES ASIGNADOS A UN COMPONENTE

COMPONENTE 0 1 2 3 Impulsor .30 .55 .65 .95 Relevador solar .40 .50 .70 .90 Dulcería .45 .55 .80 .98

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

APLICACIÓN 5.- Para graduarse en la universidad del estado, Ángela necesita pasar al menos uno de los tres cursos que toma este semestre. Está inscrita en francés, alemán y estadística. El horario de las demás actividades le permite dedicar 4 horas de estudio por semana. La probabilidad de que Ángela pase cada materia depende del número de horas que dedique a estudiarla (véase tabla siguiente)

PROBABILIDAD DE

HORAS DE APROBAR EL CURSOESTUDIO POR SEMANA Francés Alemán Estadística 0 .20 .25 .10 1 .30 .30 .30 2 .35 .33 .40 3 .38 .35 .45 4 .40 .38 .50

Utilice programación dinámica para determinar cuántas horas por semana debe dedicar Ángela al estudio de cada materia. (Sugerencia: Explique por qué maximizar la probabilidad de pasar al menos una materia es equivalente a minimizar la probabilidad de no aprobar las tres materias).

APLICACIÓN 6.- Cuesta 40 dólares comprar un teléfono en una tienda de departamentos. Los costos estimados de mantenimiento durante cada año de funcionamiento se muestra en la tabla siguiente:

AÑO 1 2 3 4 5COSTO DE MANTENIMIENTO (Dólares) 20 30 40 60 70

Puedo conservar un teléfono cuando mucho 5 años. Acabo de comprar un teléfono nuevo, y mi teléfono anterior no tiene valor de salvamento. Determine cómo reducir al mínimo el costo total de compra y funcionamiento de un teléfono durante los siguientes 6 años.

APLICACIÓN 7.- Suponga que un automóvil nuevo cuesta 10000 dólares y que el costo anual de operación y valor de reventa son los que se muestran en la tabla siguiente:

EDAD DEL VALOR DE COSTO DEAUTOMÓVIL REVENTA OPERACIÓN

(Años) (Dólares) (Dólares) 1 7000 300 año 1 2 6000 500 año 2 3 4000 800 año 3 4 3000 1200 año 4

Ing. Efraín Murillo

22

Page 23: Apuntes de Clase - Programacion Dinamica

Programación Dinámica

5 2000 2000 año 5 6 1000 1000 año 6

Si tengo hoy un auto nuevo, determine una política de reemplazo que minimice el costo neto de poseer y operar un automóvil durante los siguientes 6 años.

APLICACIÓN 8.- 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:

CANTIDAD UTILIDADES(millones de dólares) INVERTIDA(millones de dólares) Campo 1 Campo 2 Campo 3

0 4 3 3 1 7 6 7 2 8 10 8 3 9 12 13 4 11 14 15

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.

APLICACIÓN 9.- 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)

NUMERO DE PATRULLAS ASIGNADAS A CADA DEMARCACION 0 1 2 3 4 5

Demarcación 1 14 10 7 4 1 0Demarcación 2 25 19 16 14 12 11Demarcación 3 20 14 11 8 6 5

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

APLICACIÓN 10.- Una Corporación internacional produce aviones livianos a pedido, y tiene los siguientes pedidos para ser entregados al final de los próximos 5 años:

Año: 1 2 3 4 5 Nro de aviones: 3 5 2 1 4

La Corporación puede construir hasta 4 aviones en cualquier año, y puede guardar hasta 3 aviones en stock. El costo de construcción de los aviones considera un costo fijo de 1 000 000 de dólares y un costo variable de 500 000 dólares por avión construido. Para mantener un avión en stock durante el periodo de un año, el constructor gasta $ 50 000. ¿Cuál debe ser el plan optimo de construcción, de modo que se minimice el costo total de la corporación?. Formule un modelo de programación dinámica para obtener la solución.

Ing. Efraín Murillo

23