Teoria de Programacion Dinamica

161
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 cada término supone calcular F 2 . Como ambos F 3 y F 4 hacen falta para calcular F 5 , una mala implementación para calcular F 5 acabará calculando F 2 dos o más veces. Esto ocurre siempre que haya subproblemas superpuestos: una mala implementación puede acabar desperdiciando tiempo recalculando las 1

Transcript of Teoria de Programacion Dinamica

Page 1: Teoria de Programacion Dinamica

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:

1

Page 2: Teoria de Programacion Dinamica

ETAPAS

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

2

Solución Optima

Cálculos Recursivos

R = a1 +

b1

a2 + b3

a4 + b4

Page 3: Teoria de Programacion Dinamica

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.

Estructura de la programación dinámica.

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: Teoria de Programacion Dinamica

Ejemplo: Empresa comercializadora de alimentos (ECASA)

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]

4

Page 5: Teoria de Programacion Dinamica

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

Entonces:

Función Generalizada:

APLICACIONES:

5

Xn = fn (Xn-1 )

Xn-1 = fn-1 (Xº)

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

Fn-1 Fn

Xº X n-1 Xn

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

f 1 f 2 f n-1 f n Xº 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: Teoria de Programacion Dinamica

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.

X1 X2 X3 X4 X5 Estados

E1: f1*=f2*+g12 E2: f2*=f3*+g23 E3: f3*=f4*+g34 E4 f4*=g45 Proceso

Retroceso

Proceso E1 E2 E3 E4 Avance

ETAPAS

SOLUCIÓN: Estructura:

X5

Donde:

Xi: Estado actual en el que se encuentra el turista en la etapa i

X1={1}

6

2 3 41 X1 X2 X3 X4

K1 K2 K3 K4

r 1 r2 r3 r4

Page 7: Teoria de Programacion Dinamica

X2={2, 3, 4}

X3={5, 6, 7}

X4={8, 9}

X5={10}

Ki: Estado final al que dirige en la etapa i

K1={2, 3, 4}

K2={5, 6, 7}

K3={8, 9}

K4={10}

Fi* : 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

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:

Etapa 4 g45 Solución OptimaX4 X5

10 f4* 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 f4* + g34 Solución OptimaX3 X4 8 9 f3* 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 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.

Etapa 2 f3* + g23 Solución OptimaX2 X3 5 6 7 f2* 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 f2* + g12 Solución OptimaX1 X2 2 3 4 f1* k1*

7

Page 8: Teoria de Programacion Dinamica

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 destinoInterpretación

1 1 2 Encontrándose en ciudad 1, se tendrá que ir 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 4Costo de mantenimiento (miles de $) 700 300 900 1200Valor 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:

X7

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

8

2 3 4 1 X1=8 X2 X3 X4

K1 K2 K3 K4

r 1 r2 r3 r4

5 6 X5 X6 X7

r5 r6

K5 K6

Page 9: Teoria de Programacion Dinamica

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.

X1 X2 X3 X4 X5 X6 X7

E1 E2 E3 E4 E5 E6

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

ETAPA 6

X6\X7 Vender f6* k6*

13 0 0 V

14 -200 -200 V

15 -500 -500 V

16 -950 -950 V

ETAPA 5

X5\X6 Reemplazar Conservar f5* k5*9 2700-950=1750   1750 R10 2500-950=1550 1200-0=1200 1200 C11 2200-950=1250 900-200=700 700 C12 1750-950=800 300-500=-200 -200 C

ETAPA 4

9

17

Page 10: Teoria de Programacion Dinamica

X4\X5 Reemplazar Conservar f4* k4*6 2500-200=2300 1200+1750=2950 2300 R7 2200-200=2000 900+1200=2100 2000 R8 1750-200=1550 300+700=1000 1000 C

ETAPA 3

X3\X4 Reemplazar Conservar f3* k3*4 2200+1000=3200 900+2300=3200 3200 R ó C5 1750+1000=2750 300+2000=2300 2300 C

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

ETAPA 2

X2\X3 Reemplazar Conservar f2* k2*2 1750+2300=4050 300+3200=3500 3500 C3 2700+2300=5000   5000 R

ETAPA 1

X1\X2 Reemplazar Conservar f1* k1*1 2500+3500=6000 1200+5000=6200 6000 R

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

10

Page 11: Teoria de Programacion Dinamica

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:

X5

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

11

2 3 4 1 X1=8 X2 X3 X4

K1 K2 K3 K4

r 1 r2 r3 r4

Page 12: Teoria de Programacion Dinamica

  PLANTA 4  Inversión

Totalk4 = A B C    c4 = 0 1 3 Solución óptima

X4 \ X5 r4 = 0 3 6 f4* k4*0 0     0 A1 0 3   3 B2 0 3   3 B3 0 3 6 6 C4 0 3 6 6 C5 0 3 6 6 C6 0 3 6 6 C7 0 3 6 6 C8 0 3 6 6 C

Etapa 3

  PLANTA 3  Inversión k3 = A B C D    

Total c3 = 0 2 3 6 Solución óptima X3 \ X4 r3 = 0 3 5 9 f3* k3*

0 0+0       0 A1 0+3       3 A2 0+3 3+0     3 A3 0+6 3+3 5+0   6 A4 0+6 3+3 5+3   8 C5 0+6 3+6 5+3   9 C6 0+6 3+6 5+6 9+0 11 D7 0+6 3+6 5+6 9+3 12 D8 0+6 3+6 5+6 9+3 12 D

Etapa 2

  PLANTA 2  Inversión k2 = A B C D    

Total c2 = 0 1 4 5 Solución óptima X2 \ X3 r2= 0 2 5 8 f2* k2*

0 0+0       0 A1 0+3 2+0     3 A2 0+3 2+3     5 B3 0+6 2+3     6 A4 0+8 2+6 5+0   8 A ó B5 0+9 2+8 5+3 8+0 10 B6 0+11 2+9 5+3 8+3 11 A ó B7 0+12 2+11 5+6 8+3 13 B8 0+12 2+12 5+8 8+6 14 B ó D

Etapa 1

  PLANTA 1

12

Page 13: Teoria de Programacion Dinamica

Inversión k1 = A B C    Total c1 = 0 3 4 Solución óptima

X1 \ X2 r1= 0 5 6 f1* k1*8 0+14 5+10 6+8 15 B

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

Un constructor produce barcos a pedido, y tiene los siguientes pedidos para ser entregados al final de los próximos 6 meses:

Mes Julio Agosto Setiembre Octubre Noviembre DiciembreNo 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:

X7

Donde:

Xi: Inventario al inicio del mes i

Xi+1: Inventario final del mes i

13

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

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

Page 14: Teoria de Programacion Dinamica

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

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

Costos de almacenamiento Ci(Xi) = 1*Xi

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

Etapa 6: Diciembre

r6 = Cp(k6) + Ci(X6)     X6 \ k6 0 1 f6* k6*

0   14 14 11 1   1 0

Etapa 5: Noviembre

r5 = Cp(k5) + Ci(X5) + f6*

Solución óptima

X5\ k5 0 1 2 3 f5* k5*

0     10+4(2)+0+14=32 10+4(3)+0+1=23 23 3

1   10+4(1)+1+14=29 10+4(2)+1+1=20   20 2

2 0+2+14=16 10+4(1)+2+1=17     16 0

3 0+3+1=4       4 0

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

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.

14

Page 15: Teoria de Programacion Dinamica

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

Mes X inicial K d X final Cp Ci CT

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 PERSONAL

15

Page 16: Teoria de Programacion Dinamica

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:

X5 X6

X1 X2 X3 X4 X5 X6

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

16

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 17: Teoria de Programacion Dinamica

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

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

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

Entonces las iteraciones recursivas del problema son:

ETAPA 5

r5 = CC+CD+CE

Solución óptima  

X5\ X6 8 f5* k5*6 400+ (200)2+0+0=800 800 8

ETAPA 4

r4 =

CC+CD+CE+f5*

Solución óptima  

X4\ X5 6 f4* k4*3 400+(200)3+0+0+800 1800 64 400+(200)2+0+0+800 1600 65 400+(200)1+0+0+800 1400 66 0+0+0+800 800 6

ETAPA 3

r3 = CC+CD+CE+f4*

Solución óptima

  X3\ X4 3 4 5 6 f3* k3*

5 0+200(2)+0+1800 0+200(1)+300(1)+1600 0+0+300(2)+1400   2000 56 0+(200)3+0+1800 0+200(2)+300(1)+1600 0+200(1)+300(2)+1400 0+0+300(3)+800 1700 6

ETAPA 2

r2 = CC+CD+CE+f3*  

Solución óptima  

X2\ X3 5 6 f2* k2*6 0+200(1)+0+2000 0+0+300(1)+1700 2000 6

ETAPA 1

r1 = CC+CD+CE+f2* So

lución óptima   X1\ X2 6 f1* k1*

17

Page 18: Teoria de Programacion Dinamica

4 400+200(2)+0+0+2000 2800 6

Política óptima:

Etapa Xi KiRequerimient

o Contrato Despido Exceso Costo1 4 6 6 2 - - 8002 6 6 5 - - 1 3003 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 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.

  COMPONENTES EN SERIE

18

1 2 3 4

Componentes principales

Componentes de reserva

Page 19: Teoria de Programacion Dinamica

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:

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

  COMPONENTE 4    Inversión k4 = 1 2 3    

Total c4 = 4 5 7 Solución óptima X4 \ X5 p4 = 0.7 0.75 0.85 f4* k4*

4 0.7     0.7 15 0.7 0.75   0.75 26 0.7 0.75   0.75 27 0.7 0.75 0.85 0.85 3

ETAPA 3

  COMPONENTE 3    Inversión k3 = 1 2 3    

Total c3 = 2 4 5 Solución óptima

19

X5

Page 20: Teoria de Programacion Dinamica

X3 \ X4 p3 = 0.6 0.8 0.9 f3* k3*6 0.6*0.7     0.42 17 0.6*0.75     0.45 18 0.6*0.75 0.8*0.7   0.56 29 0.6*0.75 0.8*075 0.9*0.7 0.63 3

ETAPA 2

  COMPONENTE 2  Inversión k2 = 1 2    

Total c2 = 3 4 Solución óptima X2 \ X3 p2 = 0.9 0.95 f2* k2*

9 0.9*0.42   0.378 110 0.9*0.45 0.95*0.42 0.405 111 0.9*0.56 0.95*0.45 0.504 112 0.9*0.63 0.95*0.56 0.567 1

ETAPA 1

  COMPONENTE 1  Inversión k1 = 1 2    

Total c1 = 3 5 Solución óptima X1 \ X2 p1 = 0.8 0.82 f1* k1*

15 0.8*0567 0.82*0405 4536 1

POLITICA OPTIMA

Componente 1 2 3 4Capital 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.

Peso Utilidad/ unidad de cargaCarga A 4 Ton s/. 1100Carga B 3 Ton s/.700Carga C 5 Ton s/.1200

20

Page 21: Teoria de Programacion Dinamica

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

  CARGA C    Peso k3 = 0 1 2    Total w3 = 0 5 10 Solución óptima

X3 \ X4 r3 = 0 1200 2400 f3* k3*0 0     0 01 0     0 02 0     0 03 0     0 04 0     0 05 0 1200   1200 16 0 1200   1200 17 0 1200   1200 18 0 1200   1200 19 0 1200   1200 110 0 1200 2400 2400 2

ETAPA 2

  CARGA B    Peso k2 = 0 1 2 3    Total w2 = 0 3 6 9 Solución óptima

X2 \ X3 r2 = 0 700 1400 2100 f2* k2*

21

X4

Page 22: Teoria de Programacion Dinamica

0 0+0       0 01 0+0       0 02 0+0       0 03 0+0 700+0     700 14 0+0 700+0     700 15 0+1200 700+0     1200 06 0+1200 700+0 1400+0   1400 27 0+1200 700+0 1400+0   1400 28 0+1200 700+1200 1400+0   1900 19 0+1200 700+1200 1400+0 2100+0 2100 310 0+2400 700+1200 1400+0 2100+0 2400 0

ETAPA 1

  CARGA A    Peso k1 = 0 1 2    Total w1 = 0 4 8 Solución óptima

X1 \ X2 r1 = 0 1100 2200 f1* k1*10 0+2400 1100+1400 2200+0 2500 1

POLITICA OPTIMA

CARGACapacidad

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

Total 2500

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: No RegionesNo trabajadores 1 2 3

0 10 12 81 14 15 122 17 18 153 23 22 194 28 27 225 31 33 296 35 36 347 40 42 39

22

Page 23: Teoria de Programacion Dinamica

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

  No RegionesNo Trabajadores 1 2 3

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

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

x3 k3 2 3 4 f3(x3) k3*2 15 - - 3 23 - 19 - 7 34 - - 22 8 4

x2 k2 2 3 4 f2(x2) k2*4 18+15=33     33 25 18+19=37 22+15=37   37 2 36 18+22=40 22+19=41 27+15=42 42 4

x2 k2 2 3 4 f2(x2) k2*4 18+15=33     33 25 18+19=37 22+15=37   37 2 36 18+22=40 22+19=41 27+15=42 42 4

x1 k1 1 2 3 f1(x1) k1*7 14+42=56 17+37=54 23+33=56 56 1 3

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

  No TrabajadoresRegión 1 1 3

23

Page 24: Teoria de Programacion Dinamica

Región 2 4 2Región 3 2 2

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.

SOLUCIÓN

Mes Demanda Capacidad Producción

Capacidad Almacen

Costo Fijo

Costo Variable

Costo Variable

Producción Inventario1 1 5 4 3 1 0.52 2 5 4 3 1 0.53 3 5 4 3 1 0.54 4 5 4 3 1 0.5

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:

24

Page 25: Teoria de Programacion Dinamica

La solución del problema es:

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

SOLUCIÓN

Mes Demanda Capacidad de

Producción

Costo Fijo

Costo Variable

Costo Variable

Producción Inventario1 200 800 250 10 1.52 300 800 250 10 1.53 300 800 250 12 1.5

Introduciendo los datos:

25

Page 26: Teoria de Programacion Dinamica

Se obtiene el siguiente resultado:

Respuesta: Se deberá producir 200, 700 y 3 unidades en los meses 1, 2 y 3 respectivamente, obteniendo un costo total mínimo de $ 10100.00.

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

SOLUCIÓN

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

x3 k3 0 1 2 3 4 f3(x3)0 0.9 - - - - 0.91 0.9 0.7 - - - 0.72 0.9 0.7 0.6 - - 0.63 0.9 0.7 0.6 0.55 - 0.55

x2 k2 0 1 2 3 f2(x2) k2*0 0.4*0.45=0.18 - - - 0.18 0

1 0.4*0.55=0.220.5*0.45=0.22

5 - - 0.225 1

2 0.4*0.8=0.320.5*0.55=0.27

50.7*0.45=0.31

5 - 0.32 0

30.4*0.98=0.39

2 0.5*0.8=0.40.7*0.55=0.38

50.9*0.45=0.40

5 0.405 3

x1 k1 0 1 2 3f1(x1

) k1*

26

Page 27: Teoria de Programacion Dinamica

30.3*0.405=0.12

150.55*0.32=0.1

760.65*0.225=0.146

250.95*0.18=0.1

71 0.176 1

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.- 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 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 5 2000 2000 año 5

27

Page 28: Teoria de Programacion Dinamica

6 1000 1000 año 6Si 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 15Si 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 5Demarcació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 mes, 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.

PROGRAMACIÓN DINÁMICA

28

Page 29: Teoria de Programacion Dinamica

APLICACIONES PROPUESTAS-SOLUCIÓN

NOTA:Para la solución de algunas de las siguientes aplicaciones se hará uso de la herramienta Dynamic Programing del software WinQSB, cuyo manual se encuentra en: http://www.eumed.net/libros/2006c/216/1j.htm

29

Page 30: Teoria de Programacion Dinamica

30

Page 31: Teoria de Programacion Dinamica

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 APROBAR EL CURSO

HORAS ESTUDIO POR SEMANA

Francés Alemán Estadística

0 .20 .25 .101 .30 .30 .302 .35 .33 .403 .38 .35 .454 .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).

SOLUCIÓN

Se tiene:P(DT)+P(NDT)=1P(DT) =1-P(NDT)

Pero:P(NDT) =P(A1)P(A1)=P(AF∩AA∩AE)P(NDT)=P(AF∩AA∩AE)Por tanto:P(AF∩AA∩AE) = 1-P(DT)

Donde:P(DT): Probabilidad de desaprobar todos los cursosP(NDT): Probabilidad de no desaprobar todos los cursosP(A1): Probabilidad de aprobar al menos 1cursoP(AF∩AA∩AE): Probabilidad de aprobar Francés o Alemán o Estadística.

La probabilidad de aprobar al menos un curso es el complemento de desaprobar todos los cursos.Para proceder, transformamos las probabilidades a sus complementos.A continuación se muestran las iteraciones recursivas del problema:

x3 k3 0 1 2 3 4 f3(x3) k3*0 0.9 - - - - 0.9 01 0.9 0.7 - - - 0.7 12 0.9 0.7 0.6 - - 0.6 23 0.9 0.7 0.6 0.55 - 0.55 34 0.9 0.7 0.6 0.55 0.5 0.5 4

31

Page 32: Teoria de Programacion Dinamica

x2 k2 0 1 2 3 4 f2(x2)0 0.75*0.9=0.675         0.6751 0.75*0.7=0.525 0.7*0.9=0.63       0.5252 0.75*0.6=0.45 0.7*0.7=0.49 0.67*0.9=0.603     0.453 0.75*0.55=0.4125 0.7*0.6=0.42 0.67*0.7=0.469 0.65*0.9=0.585   0.41254 0.75*0.5=0.375 0.7*0.375=0.2625 0.67*0.6=0.402 0.65*0.7=0.455 0.62*0.9=0.558 0.2625

x1 k1 0 1 2 3 44 0.8*0.2625=0.21 0.7*0.4125=0.28875 0.65*0.45=0.2925 0.62*0.525=0.3255 0.6*0.675=0.405

Respuesta: Ángela deberá dedicar 0, 1 y 3 horas a la semana para estudiar Francés, Alemán y Estadística respectivamente, así obtendrá un 79% (1-21%) de probabilidad de aprobar al menos un curso (Estadística).

32

Page 33: Teoria de Programacion Dinamica

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 muestran en la tabla siguiente:

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

Puedo conservar un teléfono cuando mucho 5 años. Acabo de comprar 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.

SOLUCIÓN

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:

x6 k6 Reemplazar Conservar f6(x6) k6*1 60 30 30 C

33

Page 34: Teoria de Programacion Dinamica

2 60 40 40 C3 60 60 60 C-R4 60 70 60 R5 60 - 60 R

x5 k5 Reemplazar Conservar 1 60 30 90 30 402 60 30 90 40 603 60 30 90 60 604 60 30 90 70 60

x4 k4 Reemplazar Conservar 1 60 90 150 30 90 1202 60 90 150 40 90 1303 60 90 150 60 90 150

x3 k3 Reemplazar Conservar f4(x4) k4*1 60 120 180 30 130 160 160 R-C2 60 120 180 40 150 190 180 R

x2 k2 Reemplazar Conservar f3(x3) k3*1 60 160 220 30 180 210 210 C

El costo total es 210 + 20 = $230

Respuesta: Las políticas óptimas en base a las tablas de recursividad serán: AÑO 1 CAÑO 2 CAÑO 3 RAÑO 4 CAÑO 5 RAÑO 6 C

34

Page 35: Teoria de Programacion Dinamica

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 AUTOMÓVIL

VALOR DE REVENTA

COSTO DEOPERACIÓN

(Años) (Dólares) (Dólares)1 7000 3002 6000 5003 4000 8004 3000 12005 2000 20006 1000 1000

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.

SOLUCIÓN

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:

x7 k7 Reemplaza f6(x6) k6*

35

Page 36: Teoria de Programacion Dinamica

r1 -7000 -7000 R2 -6000 -6000 R3 -4000 -4000 R4 -3000 -3000 R5 -2000 -2000 R6 -1000 -1000 R

x6 k6 Reemplazar Conservar f5(x5) k5*1 3300 -7000 -3700 500 -6000 -5500 -5500 C2 4300 -7000 -2700 800 -4000 -3200 -3200 C3 6300 -7000 -700 1200 1200 2400 -700 R4 7300 -7000 300 2000 -2000 0 0 C5 9300 -7000 2300 1000 -1000 0 0 C

x5 k5 Reemplazar Conservar f5(x5) k5*1 3300 -5500 -2200 500 -3200 -2700 -2700 C2 4300 -5500 -1200 800 -700 100 -1200 R3 6300 -5500 800 1200 0 1200 800 R4 7300 -5500 1800 2000 0 2000 1800 R

x4 k4 Reemplazar Conservar f4(x4) k4*1 3300 -2700 600 500 -1200 -700 -700 C2 4300 -2700 1600 800 800 1600 1600 C-R3 6300 -2700 3600 1200 1800 3000 3000 C

x3 k3 Reemplazar Conservar f4(x4) k4*1 3300 -700 2600 500 1600 2100 2100 C2 4300 -700 3600 800 3000 3800 3600 R

x2 k2 Reemplazar Conservar f3(x3) k3*1 3300 2100 5400 500 3600 4100 4100 C

Respuesta: Las políticas óptimas en base a las tablas de recursividad serán:

AÑO 1 CAÑO 2 CAÑO 3 RAÑO 4 CAÑO 5 RAÑO 6 C

36

Page 37: Teoria de Programacion Dinamica

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 INVERTIDA

UTILIDADES(millones de dólares)

(millones de dólares)

Campo 1 Campo 2 Campo 3

0 4 3 31 7 6 72 8 10 83 9 12 134 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.

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

x3 k3 0 1 2 3 4 f3(x3) k3*0 3 - - - - 3 01 3 7 - - - 7 12 3 7 8 - - 8 23 3 7 8 13 - 13 34 3 7 8 13 15 15 4

x2 k2 0 1 2 3 4 f2(x2) k2*0 3+3=6 - - - - 6 01 3+7=10 6+3=9 - - - 10 02 3+8=11 6+7=13 10+3=13 - - 13 1 23 3+13=16 6+8=14 10+7=17 12+3=15 - 17 24 3+15=18 6+13=19 10+8=18 12+7=19 14+3=17 19 1

x1 k1 0 1 2 3 4 f1(x1) k1*4 4+19=23 7+17=24 8+13=21 9+10=19 11+6=17 24 1

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

37

Page 38: Teoria de Programacion Dinamica

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 PATRULLASASIGNADAS A CADA DEMARCACION

0 1 2 3 4 5Demarcación 1

14 10 7 4 1 0

Demarcación 2

25 19 16 14 12 11

Demarcació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.

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

x3 k3 0 1 2 3 4 5 f3(x3) k3*0 20 - - - - - 20 01 20 14 - - - - 14 12 20 14 11 - - - 11 23 20 14 11 8 - - 8 34 20 14 11 8 6 - 6 45 20 14 11 8 6 5 5 5

x2 k2 0 1 2 3 4 5f2(x2

) k2*

025+20=4

5           45 0

125+14=3

919+20=3

9         39 0 1

225+11=3

619+14=3

316+20=3

6       33 1  

3 25+8=3319+11=3

016+14=3

014+20=3

4     30 1 2

4 25+6=31 19+8=2716+11=2

714+14=2

812+20=3

2   27 1

5 25+5=30 19+6=25 16+8=2414+11=2

512+14=2

611+20=3

1 24 2

x1 k1 0 1 2 3 4 5 f1(x1) k1*5 14+24=38 10+27=37 7+30=37 4+33=37 1+39=40 0+45=45 37 1

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

38

Page 39: Teoria de Programacion Dinamica

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 mes, 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 óptimo 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.

SOLUCIÓN

Los datos enunciados son:Mes Demanda Capacidad

ProducciónCapacidad Almacen

Costo Fijo

Costo Variable

Costo Variable

Producción Inventario

1 3 4 3 1000000 500000 500002 5 4 3 1000000 500000 500003 2 4 3 1000000 500000 500004 1 4 3 1000000 500000 500005 4 4 3 1000000 500000 50000

La ecuación de costo variable para todos los años es: 500000P+50000H

Ingresando los datos:

Los resultados obtenidos son:

Respuesta:Se deberá producir 4, 4, 3, 0 y 4 unidades en los meses 1, 2, 3, 4 y 5 respectivamente, obteniendo un costo total mínimo de $ 11 600 000.

10. PROGRAMACIÓN DINÁMICA

39

Page 40: Teoria de Programacion Dinamica

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.

10.1 MODELOS DE PROGRAMACIÓN DINÁMICA

Existen tres modelos diferentes manejados por WINQSB.

103

40

Page 41: Teoria de Programacion Dinamica

• Problema de la diligencia (Stagecoach Problem)• Problema de la mochila (Snapsack Problem)• programación de producción e inventarios (Production and InventoryScheduling)

10.2 EL PROBLEMA DE LA DILIGENCIA

Ejemplo 10-1:

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 infraestructura vial disponible. La tabla recoge el costo asociado al desplazamiento entre cada par de nodos para cada una de las etapas. Supondremos 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.

2 5

8

1 3 6 10

9

4 7

2 3 4

1 2 3 4

5 6 7

2 7 4 6

3 3 2 4

4 4 1 5

8 9 10

5 1 4 8 3

6 6 3 9 4

7 3 3

10.3 TERMINOLOGÍA Y NOTACIÓN BÁSICA

Períodos o etapas: Sea N= {1, 2,....., n} un conjunto finito de elementos. Medianteel índice n ∈ N , representamos cada uno de ellos. N es el conjunto de

períodos oetapas del proceso. En la ilustración anterior N= {1, 2, 3, 4}, las cuatro etapas del viaje, cada una de ellas es un período y se representa mediante un valor del índice n, así cuando n =1 nos estamos refiriendo a la primera etapa del proceso.

41

Page 42: Teoria de Programacion Dinamica

104

42

Page 43: Teoria de Programacion Dinamica

Espacio de estados: { S ∈ N } es una familia de conjuntos, uno para cada

períodon. S se denomina espacio de estados en el período n. Cada uno de sus elementos, que 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 laetapa 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

10.4 INGRESANDO EL PROBLEMA AL WINQSB

El problema contiene 10 nodos claramente identificados:

Page 44: Teoria de Programacion Dinamica

105

Page 45: Teoria de Programacion Dinamica

Al pulsar OK podremos 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 establecida en el problema:

Para resolver el problema pulsamos la opción Resolver el problema (Solve theProblem) del menú Resolver y analizar (Solve and Analyze).

106

Page 46: Teoria de Programacion Dinamica

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

Identifica el nodo de inicio

Identifica el nodo fin

Al pulsar SOLVE generamos la solución al problema:

Si queremos una solución detallada debemos pulsar sobre Mostrar solución detallada (Show Solution Detail) en el menú Resultados (Results):

107

Page 47: Teoria de Programacion Dinamica

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

Ejemplo 10-2:

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.

ElementoPeso,lb

Volumen,

pies3Valor

bonificación1 1000 70 7002 1100 100 8003 700 100 11004 800 80 10005 500 50 700

a) ¿Cuáles elementos deben transportarse?b) Si se considera un volumen máximo de 200 pies cúbicos. ¿cuáles elementos deben transportarse?

108

Page 48: Teoria de Programacion Dinamica

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:

Max.Z = 5700 x1 + 5800 x2 + 6100 x3 + 6000 x4 + 5700 x5S.a. 1000 x1 + 1100 x2 + 700 x3 + 800 x4 +

500 x5

≤ 2000

x j ≤ 1, entero

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 lamochila, del artículo j• g(j,w): retorno del total acumulativo dado el espacio w disponible para elartí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 ingresemos los datos al WINQSB:

Page 49: Teoria de Programacion Dinamica

109

Page 50: Teoria de Programacion Dinamica

La entrada de datos queda como sigue.

Al resolver el problema tenemos:

La solución nos 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:

La solución es:

Page 51: Teoria de Programacion Dinamica

110

Page 52: Teoria de Programacion Dinamica

10.6 PROGRAMACIÓN DE PRODUCCIÓN E INVENTARIOS

El problema consiste en determinar un programa de producción para un periodo de tiempo con el fin de minimizar los costos totales relacionados. Hay demandas conocidas para cada periodo, límites de capacidad tanto para la producción como para los inventarios (almacenamiento). Cuando hay más producción que demanda, se acumula inventario, y cuando la producción es menor que la demanda, se generarán retrasos en el cumplimiento de pedidos (backorder). Para cada periodo, una producción no-cero incurre en un costo de preparación. 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) oI(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 elperiodo n

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 posibleP(n).

Page 53: Teoria de Programacion Dinamica

111

Page 54: Teoria de Programacion Dinamica

Ejemplo 10-3:

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.

Mes Costos Demanda Capacidad deproducción

Capacidad deAlmacenamiento

Enero 500 4 6 4Febrero 450 5 4 3Marzo 500 3 7 2

Abril 600 4 5 4

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:

La tabla inicial permite ingresar los datos expuestos en el ejemplo.

112

Page 55: Teoria de Programacion Dinamica

La ventana debería quedar como sigue:

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.

Page 56: Teoria de Programacion Dinamica

113

MODELO DE CONFIABILIDAD

Dispositivo electrónico de 3 componentes principales en serie Puede tener hasta 2 unidades de reserva por cada componente Se tiene un capital total para el dispositivo de $10000

DATOS DE CONFIABILIDADCj (miles de dólares)

COMPONENTES    

Nº unidades en paralelo

1 2 3R1 C1 R2 C2 R3 C3

1 0.6 1 0.7 3 0.5 22 0.8 2 0.8 5 0.7 43 0.9 3 0.9 6 0.9 5

Etapa 3: 2 ≤ IT ≤ 6

COMP 3      

  K3= 1 2 3    

IT C3= 2 4 5    

  R3= 0.5 0.7 0.9 f*3 k*3

2 0.5     0.5 13 0.5     0.5 14 0.5 0.7   0.7 25 0.5 0.7 0.9 0.9 3

6 0.5 0.7 0.9 0.9 3

Etapa 2: 5 ≤ IT ≤ 9

COMP 2        K2= 1 2 3    

IT C2= 3 5 6      R2= 0.7 0.8 0.9 f*2 k*2

Page 57: Teoria de Programacion Dinamica

5 0.7*0.5     0.35 16 0.7*0.5     0.35 17 0.7*0.7 0.8*0.5   0.49 18 0.7*0.9 0.8*0.5 0.9*0.5 0.63 1

9 0.7*0.9 0.8*0.7 0.9*0.5 0.63 1

Etapa 1: IT = 10

COMP 1      

  K1= 1 2 3    

IT C1= 1 2 3    

  R1= 0.6 0.8 0.9 f*1 k*1

10 0.6*0.63 0.8*0.63 0.9*0.0.49 0.504 2

SOLUCIÓN OPTIMA

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

MODELO TAMAÑO FUERZA DE TRABAJO Tamaño mínimo de fuerza de trabajo (bj)SEMANA 1 2 3 4 5bj 5 7 8 4 6

ETAPA 5: CT=CE+CC+CD

Y5 6   

Y4   f*5 Y*54 3(0)+4+2(2)+0 8 65 3(0)+4+2(1)+0 6 66 3(0)+0+0 0 6

ETAPA 4: CT=CE+CC+CD+f*5

Page 58: Teoria de Programacion Dinamica

  Y4 4 5 6   

Y3   f*4 Y*4

8 3(0)+0+0+8 3(1)+0+0+6 3(2)+0+0+0 6 6

ETAPA 3: CT=CE+CC+CD+f*4

Y3 8   

Y2   f*3 Y*37 3(0)+4+2(1)+0+6 12 88 3(0)+0+0+6 6 8

ETAPA 2: CT=CE+CC+CD+f*3

  Y2 7 8   

Y1   f*2 Y*25 3(0)+4+2(2)+0+12 3(1)+4+2(3)+0+6 19 86 3(0)+4+2(1)+0+12 3(1)+4+2(2)+0+6 17 87 3(0)+0+0+12 3(1)+4+2(1)+0+6 12 78 3(0)+0+0+12 3(0)+0+0+6 9 8

ETAPA 4: CT=CE+CC+CD+f*5

Y0/Y1 Y1= 5 6 7 8 f*1 Y*15 3(0)+0+

0+193(1)+4+2(1)+0+17

3(2)+4+2(2)+0+12

3(3)+4+2(3)+0+9

19 5

SOLUCION OPTIMA

SEMANA DECISIÓN1 No se contrata, ni se despide2 Se contrata 3 trabajadores3 No se contrata, ni se despide4 Se despide a 2 trabajadores5 No se contrata, ni se despide

Page 59: Teoria de Programacion Dinamica
Page 60: Teoria de Programacion Dinamica
Page 61: Teoria de Programacion Dinamica
Page 62: Teoria de Programacion Dinamica
Page 63: Teoria de Programacion Dinamica
Page 64: Teoria de Programacion Dinamica
Page 65: Teoria de Programacion Dinamica
Page 66: Teoria de Programacion Dinamica
Page 67: Teoria de Programacion Dinamica
Page 68: Teoria de Programacion Dinamica
Page 69: Teoria de Programacion Dinamica
Page 70: Teoria de Programacion Dinamica
Page 71: Teoria de Programacion Dinamica
Page 72: Teoria de Programacion Dinamica
Page 73: Teoria de Programacion Dinamica
Page 74: Teoria de Programacion Dinamica
Page 75: Teoria de Programacion Dinamica
Page 76: Teoria de Programacion Dinamica
Page 77: Teoria de Programacion Dinamica
Page 78: Teoria de Programacion Dinamica
Page 79: Teoria de Programacion Dinamica
Page 80: Teoria de Programacion Dinamica
Page 81: Teoria de Programacion Dinamica
Page 82: Teoria de Programacion Dinamica
Page 83: Teoria de Programacion Dinamica
Page 84: Teoria de Programacion Dinamica
Page 85: Teoria de Programacion Dinamica
Page 86: Teoria de Programacion Dinamica
Page 87: Teoria de Programacion Dinamica
Page 88: Teoria de Programacion Dinamica
Page 89: Teoria de Programacion Dinamica
Page 90: Teoria de Programacion Dinamica
Page 91: Teoria de Programacion Dinamica
Page 92: Teoria de Programacion Dinamica
Page 93: Teoria de Programacion Dinamica
Page 94: Teoria de Programacion Dinamica
Page 95: Teoria de Programacion Dinamica
Page 96: Teoria de Programacion Dinamica
Page 97: Teoria de Programacion Dinamica
Page 98: Teoria de Programacion Dinamica
Page 99: Teoria de Programacion Dinamica
Page 100: Teoria de Programacion Dinamica
Page 101: Teoria de Programacion Dinamica
Page 102: Teoria de Programacion Dinamica
Page 103: Teoria de Programacion Dinamica
Page 104: Teoria de Programacion Dinamica
Page 105: Teoria de Programacion Dinamica
Page 106: Teoria de Programacion Dinamica
Page 107: Teoria de Programacion Dinamica
Page 108: Teoria de Programacion Dinamica
Page 109: Teoria de Programacion Dinamica
Page 110: Teoria de Programacion Dinamica
Page 111: Teoria de Programacion Dinamica

Programación Dinámica

La PD procedimiento sistemático para determinar la combinación de decisiones que OPTIMIZA la efectividad global.La combinación de decisiones, resulta ser una sucesión de decisiones interrelacionadas.

• No existe un planteamiento matemático estándar.• Es un tipo general de enfoque para resolver problemas.• Sus ecuaciones deben desarrollarse en forma particular.

SISTEMA DE CAMINOS : PROBLEMA DE LA DILIGENCIA.

2 5

8

1 3 6 10

9

4 7

Partida Destino

• Vendedor mítico• Tierras indias hostiles• Punto de Partida, y Punto de

Destino

• Se desea determinar la ruta más segura.• Se ofrecen seguros de vida a los pasajeros.• Ruta más segura = Ruta más económica.

1 2 3 4 5 6 7 8 9 10

1 2 4 3

2 7 4 6

3 3 2 4

4 4 1 5

5 1 4

6 6 3

7 3 3

8 3

9 4

10

Cuantas rutas

Evalué un par de rutas

Page 112: Teoria de Programacion Dinamica

Método solución

De Atrás hacia delante: Etapa 4 resolver primero

......

.....

),(

2

22

x

s

xsf

La PD parte de una pequeña porción del problema y encuentra su solución. Gradualmente agranda el problema, encontrando nuevamente la solución optima, a partir del antecedente anterior. Se continúa hasta resolver por completo el problema original.

1

2

2

3

33

3

3

3

4

4

4

44

4

1

6

7

6

5

6

10

9

8

3

2 5

4 7

1

4

12

3

......

.....

),(

3

33

x

s

xsf

Método soluciónnx

10;1 44321 xxxxx

V.D Destino inmediato en la etapa n, n =1,2,3,4. Etapa n representa el nivel de problema (subproblema) que estamos resolviendo..

En cualquier etapa, el problema siempre se encontrará en un cierto estado (definido como S) y deberá tomar una decisión (suponiendo etapa n seria Xn).

1

2

2

3

33

3

3

3

4

4

4

44

4

1

6

7

6

5

6

10

9

8

3

2 5

4 7

1

4

123

ƒn

Xn

ƒ( S0 ,Xn )n

ƒ( S1 ,Xn )n

),( nn xsf

El Costo total de la mejor política global,

para las etapas restantes, dado que el

vendedor se encuentra en el nodo S

(listo para iniciar la etapa n) y se selecciona

a Xncomo destino

inmediato.

Page 113: Teoria de Programacion Dinamica

Método solución

ƒ *n

( S ) = MinXn

ƒ( S, Xn ) = ƒ( S, Xn ) n n

*

ƒn

Xn

ƒ( S0 ,Xn )n

ƒ( S1 ,Xn )n

1

2

2

3

33

3

3

3

4

4

4

44

4

1

6

7

6

5

6

10

9

8

3

2 5

4 7

1

4

123

ƒ( S ), ƒ( S ), ƒ( S ), ƒ( S )1234

* * * *

La PD hace esto hallando sucesivamente :

ETAPA 4 ; n = 4

S X4

8 3 10 9 4 10

ƒ (S)4

**

ETAPA 3 ; n = 3

S 8 9 X3

5 1 + 3 = 4 4 + 4 = 8 4 86 6 + 3 = 9 3 + 4 = 7 7 97 3 + 3 = 6 3 + 4 = 7 6 8

X3

ƒ(S,X3 ) = CSX + ƒ (X3 ) 3*

*3 4 ƒ (S)

3

*

Método soluciónETAPA 2 ; n = 2

S 5 6 7 X2

2 7 + 4 = 11 4 + 7 = 11 6 + 6 = 12 11 5 ó 63 4 + 6 = 104

X2

ƒ(S,X2 ) = CSX + ƒ (X3 ) 2*

2 3*ƒ (S)

2

*

ETAPA 1 ; n = 1

S 2 3 4 X1

1 2 + 11 = 13 4 + 7 = 11 3 + 8 = 11 11 3 ó 4

X1

ƒ(S,X1 ) = C1X + ƒ (X1 ) 1*

1 2*ƒ (S)

1

*

1

2

2

3

33

3

3

3

4

4

4

44

4

1

6

7

6

5

6

10

9

8

3

2 5

4 7

1

4

123

Identifiquemosla soluciónoptima. 1 3 5 8 10

1 4 5 8 10

1 4 6 9 10

El problema de la diligencia es un diseño conceptual, para dar una interpretación física literal de los problemas de PD.

Page 114: Teoria de Programacion Dinamica

Elementos básicos que caracterizan a los PPD

1. El problema puede dividirse en etapas, con una decisiónde la política requerida en cada etapa.

2. Cada etapa tiene un cierto número de estados asociados a ella. En general, los estados son las diversas condiciones posibles en las que el sistema podría estar en esa etapa del problema. Puede ser finito o infinito.

3. El valor asociado al estado no puede depender de decisiones de la misma etapa ni de futuras decisiones.

4. El estado representa una foto del sistema. Una evaluación en un instante de tiempo.

Elementos básicos que caracterizan a los PPD

5. La decisión debe corresponder a la política de la etapa vigente y no del futuro.

6. El efecto de la decisión de una política en cada etapa es : “ transformar el estado actual en un estado asociado con la etapa siguiente “. El estado resultante podría ser probable Distribución.

7. Dado el estado actual, una política optima para las etapas restantes es independiente de la política adoptada en las etapas previas.

8. El procedimiento de resolución empieza por hallar la política optima para cada estado de la última etapa.

Page 115: Teoria de Programacion Dinamica

Elementos básicos que caracterizan a los PPD

ƒ ( S ) = Máx Min ƒ( S, Xn )*

n n Xn

ƒ( S ) = Min CSXn + ƒ( Xn )* *

Xn

n +1n

… ..

9. Se dispone de una “ relación recursiva “ que identifica la política óptima para cada estado en la etapa n, dada la política óptima para cada estado en la etapa (n+1).

10. Usando esta relación recursiva, el procedimiento de resolución se mueve “ hacia atrás “, etapa por etapa - hallando en cada ocasión la política óptima para cada estado de esa etapa - hasta que se encuentra la política óptima cuando se parte de la etapa inicial.

Estado posible de la etapa Actual (n)

Resultado de la política óptima en la etapa siguiente (n+1)

),( nn xsf

)(* sfn*nx

2x1x 3xs

),( nn xsf

Programación Dinámica Determinística

nn-1

S

Xn

n+1S

Estado etapa Siguiente

Estado Actual

Decisión política actual

De atrás hacia delante

ns

Etapa n

),( nnn xsf

Etapa n+1

1ns

)( 1*

1 nn sf

Page 116: Teoria de Programacion Dinamica

Cual sería la diferencia entre usar la Programación Dinámica y la enumeración explícita de todas las posibles rutas. Contabilice las operaciones de suma necesarias (Por ejemplo 2+3+5, son 2 operaciones de suma).

1

2

5

3

6

4

7

10

8

11

9

12

15

13

16

14

17

20

18

21

19

22

25

23

26

24 27

C17

Inventarios Revisión Periódica

Una compañía sabe que la demanda durante cada uno de los próximos cuatro meses es como se indica: mes 1, 1 unidad; mes 2, 3 unidades; mes 3, 2 unidades; mes 4, 4 unidades. Durante un mes en el cual se producen algunas unidades, se incurre en un costo preliminar de 3US$. Además, hay un costo variable de 1 dólar por cada unidad que se fabrica. Al final de cada mes, se genera un costo de almacenamiento de 50 centavos por cada unidad disponible. Las limitaciones en la capacidad permiten producir durante cada mes un máximo de 5 unidades. Las dimensiones de la bodega de la compañía restringen el inventario final de cada mes a 4 unidades, cuando mucho. La empresa desea determinar un plan de producción que cumpla con toda la demanda a tiempo y minimice la suma del costo de producción y del costo de almacenamiento durante los cuatro meses. Supongaque se dispone de 0 unidades al principio del primer mes.

Page 117: Teoria de Programacion Dinamica

El propietario de una cadena de tres supermercados compró cinco cargas de fresas frescas. La distribución de probabilidad estimada para las ventas potenciales de las fresas antes de que se echen a perder difiere entre los tres supermercados. El propietario quiere saber cómo debe asignar las cinco cargas a las tiendas para maximizar la ganancia esperada. Por razones administrativas, no quiere dividir las cargas entre las tiendas. Sin embargo, está de acuerdo en asignar cero cargas a cualquiera de ellas. La siguiente tabla proporciona la ganancia estimada en cada tienda al asignar distintas cantidades de cargas:

Problema: Distribución de Fresas

Nº de cargas

Tienda

1 2 3

0 0 0 0

1 5 6 4

2 9 11 9

3 14 15 13

4 17 19 18

5 21 22 20

Etapa 3 Etapa 2

Etapa 1

Problema: Distribución de Fresas

Page 118: Teoria de Programacion Dinamica

Problema: Preparando Exámenes

Una estudiante universitaria cuenta con siete días para preparar los exámenes finales de cuatro cursos y quiere asignar su tiempo de estudio de la manera más eficiente posible. Necesita por lo menos un día para cada curso y quiere concentrarse sólo en un curso cada día por lo que quiere asignar uno, dos, tres o cuatro días a cada curso. Como hace poco tomó un curso de investigación de operaciones, decide aplicar programación dinámica para hacer estas asignaciones que maximicen el total de puntos obtenidos en los cuatro cursos. Estima que las distintas opciones en días de estudio le significaran puntos de calificación según la siguiente tabla:

Días

Puntos de calificación estimados

Curso

1 2 3 4

1 3 5 2 6

2 5 5 4 7

3 6 6 7 9

4 7 9 8 9

Problema: Preparando Exámenes

Etapa 4 Etapa 3

Etapa 2Etapa 1

C18

Page 119: Teoria de Programacion Dinamica

Consejo Mundial de la saludEl consejo mundial de la salud se dedica a mejorar el cuidado de la salud en los países subdesarrollados del mundo. Ahora cuenta con cinco equipos médicos para asignar entre tres de esos países a fin de mejorar su cuidado médico, su educación sanitaria y sus programas de entrenamiento. Por consiguiente el consejo necesita determinar cuántos equipos ( si resulta conveniente) asignar a cada uno de estos países para maximizar la efectividad total de los cinco equipos. La medida de efectividad que se está usando es : “los años de vida adicionales del hombre“. ( Para un país en particular, esta medida es igual a la esperanza incrementada de vida del país, en años, multiplicada por su población).

Miles de años de vida adicionales del hombre Nº de Equipos País Médicos 1 2 3

0 0 0 0 1 45 20 50 2 70 45 70 3 90 75 80 4 105 110 100 5 120 150 130

Etapa:

Estado

Decisión

ESTADO:¿ Qué es lo que cambia de una etapa a la siguiente ? dado que se han

tomado las decisiones en las etapas previas.¿ Cómo puede describirse la condición de la situación en la etapa actual ?¿ Qué información acerca del estado actual de las cosas se necesita para

determinar la política óptima de aquí en adelante ?

Consejo Mundial de la salud

)( nn xP

Miles de años de vida adicionales del hombre Nº de Equipos País Médicos 1 2 3

0 0 0 0 1 45 20 50 2 70 45 70 3 90 75 80 4 105 110 100 5 120 150 130

ii

i

nii

niii

nnnn

xx

Sxas

xPZMax

xPxsf

;0

.

)(

)(),(3

1

3

1

Etapa = País; n = 1,2,3

Variable: Xn = Equipos médicos asignados en la etapa o país

Estado: S = Equipos médicos aun por asignar

Años de vida adicionales del hombre en la etapa (país) n si decide asignar Xn equipos médicos en este país.

ii

i

nii

niii

xx

Sxas

xPZMax

;0

.

)(

3

3

:),( nn xsfAños de vida adicionales totales, considerando la mejor política para las etapas restantes y que en la etapa n, el estado es S y la decisión tomada fue Xn.

No es un modelo en nuestra actual notación; debemos aproximarnos

Page 120: Teoria de Programacion Dinamica

Consejo Mundial de la salud

ii

i

nii

niii

nnnn

xx

Sxas

xPZMax

xPxsf

;0

.

)(

)(),(3

1

3

1

)(*1 nn xsf

ƒ ( S, Xn ) = Pn ( Xn ) + ƒ ( S - Xn )n+1n

*

:),( nn xsfAños de vida adicionales totales, considerando la mejor política para las etapas restantes y que en la etapa n, el estado es S y la decisión tomada fue Xn.

La relación recursiva

Consejo Mundial de la salud

0 1 2 3 4 5

0

1

2

3

4

5

s 1x

)()(),( 2*

32222 xsfxPxsf )(*

2 sf*2x

0 1 2 3 4 5

5

)()(),( 1*

21111 xsfxPxsf )(*

1 sf *1x

s *3x

0

1

2

3

4

5

)(*3 sf

Miles de años de vida adicionales del hombre Nº de Equipos País Médicos 1 2 3

0 0 0 0 1 45 20 50 2 70 45 70 3 90 75 80 4 105 110 100 5 120 150 130ƒ ( S, Xn ) = Pn ( Xn ) + ƒ ( S - Xn )

n+1n

*

Page 121: Teoria de Programacion Dinamica

Volar con seguridad a Marte

Un equipo especial del gobierno está conduciendo la investigación sobre cierto problema de ingeniería que debe resolverse antes de que el hombre prueba volar con seguridad a Marte. Tres equipos de investigadores están tratando actualmente tres procedimientos diferentes para resolver este problema. Se ha hecho la estimación de que bajo las circunstancias presentes, la probabilidad de que los equipos respectivos - llamémoslos 1, 2 y 3 - no tengan éxito es 0.40, 0.60 y 0.80 respectivamente. Por tanto, la probabilidad actual que los tres equipos fallen es (0.40)(0.60)(0.80)=0.192 (19.2%).Dado que el objetivo es minimizar esta probabilidad, se ha tomado la decisión de asignar dos científicos destacados más entre los tres equipos para disminuirlas tanto como sea posible.

Nº de

Científicos

Nuevos

Probabilidad de Falla

Equipo de Investigación

1 2 3

0 0,40 0,60 0,80

1 0,20 0,40 0,50

2 0,15 0,20 0,30

Etapa:

Estado

Decisión

)( nn xP Probabilidad de falla del equipo n si decide asignar Xn científicos

;0

2..

)(*)(*)(

321

332211

ix

xxxas

xPxPxPZMin

Volar con seguridad a Marte

;0

..

)(

*)(),(3

1

31

i

nni

i

iini

nnnn

x

xsxas

xPZMin

xPxsf

Nº de

Científicos

Nuevos

Probabilidad de Falla

Equipo de Investigación

1 2 3

0 0,40 0,60 0,80

1 0,20 0,40 0,50

2 0,15 0,20 0,30

1)0(*4 f

),( nn xsf Probabilidad de falla del equipo n , n+1,..3, considerando la mejor política para las etapas restantes y S, Xn para la etapa n.

)(*1 nn xsf

)(*)(),( *1 nnnnnn xsfxPxsf

Page 122: Teoria de Programacion Dinamica

Volar con seguridad a MartesNº de

Científicos

Nuevos

Probabilidad de Falla

Equipo de Investigación

1 2 3

0 0,40 0,60 0,80

1 0,20 0,40 0,50

2 0,15 0,20 0,30

0

1

2

0 1 2

0

1

2

0 1 2

2

)(*)(),( 2*

32222 xsfxPxsf

)(*)(),( 2*

21111 xsfxPxsf

)(*3 sf *

3xs

)(*1 sf

)(*2 sf

1x

*2x

s

s

*1x

2x

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

Page 123: Teoria de Programacion Dinamica

del problema.

Existen tres modelos diferentes manejados por WINQSB.

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 en cada una de ellas.

Page 124: Teoria de Programacion Dinamica

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.

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

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

Page 125: Teoria de Programacion Dinamica

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.

Programación de producción e inventarios.

El problema consiste en determinar un programa de producción para un

periodo de tiempo con el fin de minimizar los costos totales relacionados.

Hay demandas conocidas para cada periodo, límites de capacidad tanto para la

producción como para los inventarios. Cuando hay más producción que

demanda, se acumula inventario, y cuando la producción es menor que la

demanda, se generarán retrasos en el cumplimiento de pedidos. Para cada

periodo, una producción diferente de cero incurre en un costo de preparación.

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.

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

Page 126: Teoria de Programacion Dinamica

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

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.

Page 127: Teoria de Programacion Dinamica

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 N= {1, 2, 3, 4}, las cuatro etapas del 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. S

se denomina espacio de estados en el período n. Cada uno de sus elementos, que 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

Page 128: Teoria de Programacion Dinamica

El problema contiene 10 nodos claramente identificados:

Page 129: Teoria de Programacion Dinamica

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

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:

Page 130: Teoria de Programacion Dinamica

140

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

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

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

Page 131: Teoria de Programacion Dinamica

141

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

ELEMENTOPESO (LIBRA)

VOLUMEN (PIES CUBICOS)

VALOR BONIFICACION

1 1000 70 700

2 1100 100 800

3 700 100 1100

4 800 80 1000

5 500 50 700

Page 132: Teoria de Programacion Dinamica

142

a) ¿Cuáles elementos deben transportarse?

Page 133: Teoria de Programacion Dinamica

143

b) Si se considera un volumen máximo de 200 pies cúbicos. ¿cuáles

elementos deben 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)

Page 134: Teoria de Programacion Dinamica

144

Ahora se ingresan los datos al Winqsb:

La entrada de datos queda como sigue.

Al resolver el problema se tiene:

Page 135: Teoria de Programacion Dinamica

145

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:

La solución es:

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

Page 136: Teoria de Programacion Dinamica

146

• 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

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.

MES COSTOS DEMANDA CAPACIDAD DE

PRODUCCION

CAPACIDAD DE

ALMACENAMIENTO

ENERO 500 4 6 4

FEBRERO 450 5 4 3

MARZO 500 3 7 2

ABRIL 600 4 5 4

Page 137: Teoria de Programacion Dinamica

147

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:

La solución del problema es:

Page 138: Teoria de Programacion Dinamica

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.

148