Está en la página 1de 138

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

ETAPAS

Cálculos Recursivos
Solución
X1 X2 X3 … Xn-1 Xn Optima
Variables Optimizadoras

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

Ejemplo: Fracción Continua

2
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
Ejemplo: Empresa comercializadora de alimentos (ECASA)

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
Problema de Decisión de n etapas (para 12 meses)

Entonces:
Xn = fn (Xn-1 )

Xn-1 = fn-1 (Xº)

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

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

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

Función Generalizada:

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

APLICACIONES:

5
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
680 610
2 5 8
790
1050 790 1030
550
580
540
1 3 760 6 10
900
660 940

770
510 1390
790
700
4 7 9
830 270

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:
K1 K2 K3 K4

X1 X2 X3 X4 X5
1 2 3 4

r1 r2 r3 r4

Donde:
Xi: Estado actual en el que se encuentra el turista en la etapa i
X1={1}

6
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 Optima
X4 X5 10 f4* k4*
8 1030 1030 10
9 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 Optima
X3 X4 8 9 f3* k3*
5 610+1030=1640 790+1390=2180 1640 8
6 540+1030=1570 940+1390=2330 1570 8
7 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 Optima
X2 X3 5 6 7 f2* k2*
2 680+1640=2320 790+1570=2360 1050+1660=2710 2320 5
3 580+1640=2220 760+1570=2330 660+1660=2320 2220 5
4 510+1640=2150 700+1570=2270 830+1660=2490 2150 5

Etapa 1 f2* + g12 Solución Optima


X1 X2 2 3 4 f1* k1*

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

K1 K2 K3 K4 K5 K6
X1=8 X2 X3 X4 X5 X6 X7
1 2 3 4 5 6
X7

r1 r2 r3 r4 r5 r6

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

17

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 R
10 2500-950=1550 1200-0=1200 1200 C
11 2200-950=1250 900-200=700 700 C
12 1750-950=800 300-500=-200 -200 C
ETAPA 4

9
X4\X5 Reemplazar Conservar f4* k4*
6 2500-200=2300 1200+1750=2950 2300 R
7 2200-200=2000 900+1200=2100 2000 R
8 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óC
5 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 C
3 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)
Alternativa Alternativa
AÑO 1 2
1 R R
2 C C
3 C R
4 R C
5 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
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:

K1 K2 K3 K4
X1=8 X2 X3 X4
1 2 3 4 X5

r1 r2 r3 r4

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
PLANTA 4
Inversión k4 = A B C
Total c4 = 0 1 3 Solución óptima
X4 \ X5 r4 = 0 3 6 f4* k4*
0 0 0 A
1 0 3 3 B
2 0 3 3 B
3 0 3 6 6 C
4 0 3 6 6 C
5 0 3 6 6 C
6 0 3 6 6 C
7 0 3 6 6 C
8 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 A
1 0+3 3 A
2 0+3 3+0 3 A
3 0+6 3+3 5+0 6 A
4 0+6 3+3 5+3 8 C
5 0+6 3+6 5+3 9 C
6 0+6 3+6 5+6 9+0 11 D
7 0+6 3+6 5+6 9+3 12 D
8 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 A
1 0+3 2+0 3 A
2 0+3 2+3 5 B
3 0+6 2+3 6 A
4 0+8 2+6 5+0 8 AóB
5 0+9 2+8 5+3 8+0 10 B
6 0+11 2+9 5+3 8+3 11 AóB
7 0+12 2+11 5+6 8+3 13 B
8 0+12 2+12 5+8 8+6 14 BóD

Etapa 1
PLANTA 1

12
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:
CAPITAL CAPITAL
PLANTA DISPONIBLE PROPUESTA REQUERIDO RENDIMIENTO
1 8 B 3 5
2 5 B 1 2
3 4 C 3 5
4 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 Diciembre
No 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:

K1 K2 K3 K4 K5 K6
X1=8 X2 X3 X4 X5 X6
1 2 3 4 5 6 X7

r1 r2 r3 r4 r5 r6

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

Donde:
Xi: Inventario al inicio del mes i
Xi+1: Inventario final del mes i

13
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:
10  4 Ki , siKi  0
Costos de producción Cp(Ki) = 
 0, siKi  0

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

14
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á:
C
Mes X inicial K d X final Cp i CT
Jul 0 4 1 3 10+4(4)= 26 3 29
Ago 3 0 2 1 0 1 1
Sep 1 4 5 0 10+4(4)= 26 0 26
Oct 0 3 3 0 10+4(3)= 22 0 22
Nov 0 3 2 1 10+4(3)= 22 1 23
Dic 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.

15
APLICACION 5: CONTRATACIÓN DE PERSONAL

Un contratista necesita decidir el tamaño de su fuerza de trabajo en las 5 semanas


siguientes. El tamaño mínimo de la fuerza de trabajo necesario para las 5 semanas es de
6, 5, 3, 6 y 8 respectivamente. El exceso de trabajadores que se mantienen en la fuerza
laboral costará 300 dólares por trabajador, por semana y las nuevas contrataciones en
cualquier semana incurrirán en un costo fijo de 400 mas 200 dólares por trabajador, por
semana.
Si la fuerza de trabajo inicial es de 4 trabajadores, y el costo de despido en cualquiera de
las semanas es de 200 dólares, determine los tamaños óptimos de la fuerza de trabajo
para el horizonte de planeación de 5 semanas.
Determinar la política de contratación de personal en un horizonte de 5 semanas
SOLUCIÓN:
La estructura del problema es:
K1 K2 K3 K4 K5
X1=4
X1 X2 X3 X4 X5 X6
1 2 3 4 5

El requerimiento r1 r2 r3 r4 r5
semanal de 6 5 3 6 8
personal es:

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

400  200 * NroTrabaja doresContratados,



Costo Contratación (CC) = si NroTrabajadoresContratados  0

 0, si NroTrabajadoresContratados  0
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

Solución
r5 = CC+CD+CE óptima
X5\ X6 8 f5* k5*
6 400+ (200)2+0+0=800 800 8

ETAPA 4

r4 = Solución
CC+CD+CE+f5* óptima
X4\ X5 6 f4* k4*
3 400+(200)3+0+0+800 1800 6
4 400+(200)2+0+0+800 1600 6
5 400+(200)1+0+0+800 1400 6
6 0+0+0+800 800 6
ETAPA 3

Solución
óptima
r3 = CC+CD+CE+f4*
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 5
6 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

Solución
r2 = CC+CD+CE+f3* óptima
X2\ X3 5 6 f2* k2*
6 0+200(1)+0+2000 0+0+300(1)+1700 2000 6

ETAPA 1
So
r1 = CC+CD+CE+f2* lución óptima

17
X1\ X2 6 f1* k1*
4 400+200(2)+0+0+2000 2800 6

Política óptima:
Requerimient
Etapa Xi Ki o Contrato Despido Exceso Costo
1 4 6 6 2 - - 800
2 6 6 5 - - 1 300
3 6 6 3 - - 3 900
4 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 5
Requerimiento 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):

1 2 3 4

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

Componentes principales

Componentes de reserva

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.

18
COMPONENTES EN SERIE
Nº unidades 1 2 3 4
en paralelo P Costo P Costo P Costo P Costo
1 0,8 3 0,9 3 0,6 2 0,7 4
2 0,82 5 0,95 4 0,8 4 0,75 5
3 - - - - 0,9 5 0,85 7
Nota: el costo esta en miles de soles

SOLUCIÓN:

Estructura:

X5

Donde:
Xi: Capital disponible para la etapa i
X1: Capital disponible para los 4 componentes
X2: Capital disponible para los componentes 2, 3 y 4
X3: Capital disponible para los componentes 3 y 4
X4: 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 1
5 0.7 0.75 0.75 2
6 0.7 0.75 0.75 2
7 0.7 0.75 0.85 0.85 3

ETAPA 3
COMPONENTE 3
Inversión k3 = 1 2 3

19
Total c3 = 2 4 5 Solución óptima
X3 \ X4 p3 = 0.6 0.8 0.9 f3* k3*
6 0.6*0.7 0.42 1
7 0.6*0.75 0.45 1
8 0.6*0.75 0.8*0.7 0.56 2
9 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 1
10 0.9*0.45 0.95*0.42 0.405 1
11 0.9*0.56 0.95*0.45 0.504 1
12 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 4
Capital Disponible 15 2 9 4
Nº Unidades 1 1 3 1 Total
Probabilidad 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 carga


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

20
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

X4

Donde:
Xi: Capacidad disponible en la etapa i
X1: Capacidad disponible para las 3 cargas
X2: Capacidad disponible para las cargas B y C
X3: 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 0
1 0 0 0
2 0 0 0
3 0 0 0
4 0 0 0
5 0 1200 1200 1
6 0 1200 1200 1
7 0 1200 1200 1
8 0 1200 1200 1
9 0 1200 1200 1
10 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
0 0+0 0 0
1 0+0 0 0
2 0+0 0 0
3 0+0 700+0 700 1
4 0+0 700+0 700 1
5 0+1200 700+0 1200 0
6 0+1200 700+0 1400+0 1400 2
7 0+1200 700+0 1400+0 1400 2
8 0+1200 700+1200 1400+0 1900 1
9 0+1200 700+1200 1400+0 2100+0 2100 3
10 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
Capacidad
CARGA Disponible Ki* Utilidad
A 10 1 1100
B 6 2 1400
C 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 Regiones
No trabajadores 1 2 3
0 10 12 8
1 14 15 12
2 17 18 15
3 23 22 19
4 28 27 22
5 31 33 29
6 35 36 34
7 40 42 39

22
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 Regiones
No Trabajadores 1 2 3
0 10 12 8
1 14 15 12
2 17 18 15
3 23 22 19
4 28 27 22
5 31 33 29
6 35 36 34
7 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ÓN
A continuación se muestran las iteraciones recursivas del problema:
k3
x3 2 3 4 f3(x3) k3*
2 15 - - 3 2
3 - 19 - 7 3
4 - - 22 8 4

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

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

k1
x1 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 Trabajadores
Región 1 1 3

23
Región 2 4 2
Regió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 Capacidad Costo Costo Costo


Producción Almacen Fijo Variable Variable
Producción Inventario
1 1 5 4 3 1 0.5
2 2 5 4 3 1 0.5
3 3 5 4 3 1 0.5
4 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
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 Costo Costo Costo


de Fijo Variable Variable
Producción Producción Inventario
1 200 800 250 10 1.5
2 300 800 250 10 1.5
3 300 800 250 12 1.5

Introduciendo los datos:

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


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

k2
x2 0 1 2 3 f2(x2) k2*
0 0.4*0.45=0.18 - - - 0.18 0
0.5*0.45=0.22
1 0.4*0.55=0.22 5 - - 0.225 1
0.5*0.55=0.27 0.7*0.45=0.31
2 0.4*0.8=0.32 5 5 - 0.32 0
0.4*0.98=0.39 0.7*0.55=0.38 0.9*0.45=0.40
3 2 0.5*0.8=0.4 5 5 0.405 3

f1(x1
k1
x1 0 1 2 3 ) k1*
26
0.3*0.405=0.12 0.55*0.32=0.1 0.65*0.225=0.146 0.95*0.18=0.1
3 15 76 25 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 CURSO
ESTUDIO 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 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.

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 DE


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

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
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
30
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 Francés Alemán Estadística
POR SEMANA
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).

SOLUCIÓN

Se tiene:
P(DT)+P(NDT)=1
P(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 cursos
P(NDT): Probabilidad de no desaprobar todos los cursos
P(A1): Probabilidad de aprobar al menos 1curso
P(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:
k3
x3 0 1 2 3 4 f3(x3) k3*
0 0.9 - - - - 0.9 0
1 0.9 0.7 - - - 0.7 1
2 0.9 0.7 0.6 - - 0.6 2
3 0.9 0.7 0.6 0.55 - 0.55 3
4 0.9 0.7 0.6 0.55 0.5 0.5 4

31
k2
x2 0 1 2 3 4 f2
0 0.75*0.9=0.675 0
1 0.75*0.7=0.525 0.7*0.9=0.63 0
2 0.75*0.6=0.45 0.7*0.7=0.49 0.67*0.9=0.603 0
3 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.
4 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.

k1
x1 0 1 2 3 4
4 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=

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

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

33
2 60 40 40 C
3 60 60 60 C-R
4 60 70 60 R
5 60 - 60 R

k5
x5 Reemplazar Conservar
1 60 30 90 30 40
2 60 30 90 40 60
3 60 30 90 60 60
4 60 30 90 70 60

k4
x4 Reemplazar Conservar
1 60 90 150 30 90 120
2 60 90 150 40 90 130
3 60 90 150 60 90 150

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

k2
x2 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 C
AÑO 2 C
AÑO 3 R
AÑO 4 C
AÑO 5 R
AÑO 6 C

34
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 DE
AUTOMÓVIL REVENTA OPERACIÓN
(Años) (Dólares) (Dólares)
1 7000 300
2 6000 500
3 4000 800
4 3000 1200
5 2000 2000
6 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:

35
Reemplaza
k7
x7 r f6(x6) k6*
1 -7000 -7000 R
2 -6000 -6000 R
3 -4000 -4000 R
4 -3000 -3000 R
5 -2000 -2000 R
6 -1000 -1000 R

k6
x6 Reemplazar Conservar f5(x5) k5*
1 3300 -7000 -3700 500 -6000 -5500 -5500 C
2 4300 -7000 -2700 800 -4000 -3200 -3200 C
3 6300 -7000 -700 1200 1200 2400 -700 R
4 7300 -7000 300 2000 -2000 0 0 C
5 9300 -7000 2300 1000 -1000 0 0 C

k5
x5 Reemplazar Conservar f5(x5) k5*
1 3300 -5500 -2200 500 -3200 -2700 -2700 C
2 4300 -5500 -1200 800 -700 100 -1200 R
3 6300 -5500 800 1200 0 1200 800 R
4 7300 -5500 1800 2000 0 2000 1800 R

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

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

k2
x2 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 C
AÑO 2 C
AÑO 3 R
AÑO 4 C
AÑO 5 R
AÑO 6 C

36
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
INVERTIDA (millones de dólares)
(millones de
Campo 1 Campo 2 Campo 3
dólares)
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.

SOLUCIÓN
A continuación se muestran las iteraciones recursivas del problema:
k3
x3 0 1 2 3 4 f3(x3) k3*
0 3 - - - - 3 0
1 3 7 - - - 7 1
2 3 7 8 - - 8 2
3 3 7 8 13 - 13 3
4 3 7 8 13 15 15 4

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

k1
x1 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
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 14 10 7 4 1 0
1
Demarcación 25 19 16 14 12 11
2
Demarcación 20 14 11 8 6 5
3

Se dispone de un total de 5 patrullas. Con programación dinámica determine cuántas


patrullas deben asignarse a cada demarcación.

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

k3
x3 0 1 2 3 4 5 f3(x3) k3*
0 20 - - - - - 20 0
1 20 14 - - - - 14 1
2 20 14 11 - - - 11 2
3 20 14 11 8 - - 8 3
4 20 14 11 8 6 - 6 4
5 20 14 11 8 6 5 5 5

f2(x2
k2
x2 0 1 2 3 4 5 ) k2*
25+20=4
0 5 45 0
25+14=3 19+20=3
1 9 9 39 0 1
19+14=3 16+20=3
2 25+11=36 3 6 33 1
16+14=3 14+20=3
3 25+8=33 19+11=30 0 4 30 1 2
14+14=2 12+20=3
4 25+6=31 19+8=27 16+11=27 8 2 27 1
12+14=2
5 25+5=30 19+6=25 16+8=24 14+11=25 6 11+20=31 24 2

k1
x1 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
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 Capacidad Costo Costo Costo
Producción Almacen Fijo Variable Variable
Producción Inventario
1 3 4 3 1000000 500000 50000
2 5 4 3 1000000 500000 50000
3 2 4 3 1000000 500000 50000
4 1 4 3 1000000 500000 50000
5 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
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
• Problema de la diligencia (Stagecoach Problem)
• Problema de la mochila (Snapsack Problem)
• programación de producción e inventarios (Production and Inventory
Scheduling)

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 5 6 7 8 9 10
1 2 3 4 2 7 4 6 5 1 4 8 3
3 3 2 4 6 6 3 9 4
4 4 1 5 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. Mediante


el índice n ∈ N , representamos cada uno de ellos. 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 nos estamos refiriendo a la primera
etapa del proceso.
41
1
0
4

42
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

10.4 INGRESANDO EL PROBLEMA AL WINQSB

El problema contiene 10 nodos claramente


identificados:
105
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 the


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

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

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

Peso, Volumen, Valor


Elemento 3
lb pies bonificación
1 1000 70 700
2 1100 100 800
3 700 100 1100
4 800 80 1000
5 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
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 x + 5800 x + 6100 x + 6000 x + 5700 x


1 2 3 4 5
S.a. 1000 x + 1100 x + 700 x + 800 x + ≤ 2000
1 2 3 4
500 x 5
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 la
mochila, del artículo j
• g(j,w): retorno del total acumulativo dado el espacio w disponible
para el
artículo j

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

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

Ahora ingresemos los datos al WINQSB:


109
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:
1
1
0
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) 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).
111
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 de Capacidad de


producción Almacenamiento
Enero 500 4 6 4
Febrero 450 5 4 3
Marzo 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
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.
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 CONFIABILIDAD
Cj (miles de dólares)

COMPONENTES
Nº unidades 1 2 3
en paralelo R1 C1 R2 C2 R3 C3
1 0.6 1 0.7 3 0.5 2
2 0.8 2 0.8 5 0.7 4
3 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 1
3 0.5 0.5 1
4 0.5 0.7 0.7 2
5 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
5 0.7*0.5 0.35 1
6 0.7*0.5 0.35 1
7 0.7*0.7 0.8*0.5 0.49 1
8 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 3
Capital Disponible 15 2 9
Nº Unidades 1 1 3 Total
Probabilidad 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 5
bj 5 7 8 4 6

ETAPA 5: CT=CE+CC+CD

Y5 6
Y4 f*5 Y*5
4 3(0)+4+2(2)+0 8 6
5 3(0)+4+2(1)+0 6 6
6 3(0)+0+0 0 6

ETAPA 4: CT=CE+CC+CD+f*5
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*3
7 3(0)+4+2(1)+0+6 12 8
8 3(0)+0+0+6 6 8

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

Y2 7 8
Y1 f*2 Y*2
5 3(0)+4+2(2)+0+12 3(1)+4+2(3)+0+6 19 8
6 3(0)+4+2(1)+0+12 3(1)+4+2(2)+0+6 17 8
7 3(0)+0+0+12 3(1)+4+2(1)+0+6 12 7
8 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*1


5 3(0)+0+ 3(1)+4+2(1)+ 3(2)+4+2(2)+ 3(3)+4+2(3)+ 19 5
0+19 0+17 0+12 0+9

SOLUCION OPTIMA

SEMANA DECISIÓN
1 No se contrata, ni se despide
2 Se contrata 3 trabajadores
3 No se contrata, ni se despide
4 Se despide a 2 trabajadores
5 No se contrata, ni se despide
PROGRAMACIÓN DINÁMICA.

La programación dinámica es un enfoque general para la solución de problemas


en los que es necesario tomar decisiones en etapas sucesivas. Las decisiones
tomadas en una etapa condicionan la evolución futura del sistema, afectando a
las situaciones en las que el sistema se encontrará en el futuro (denominadas
estados), y a las decisiones que se plantearán en el futuro.

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


problemas de programación dinámica no sigue una forma estándar. Así, para
cada problema será necesario especificar cada uno de los componentes que
caracterizan un problema de programación dinámica.

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


análisis recursivo de cada una de las etapas del problema, en orden inverso, es
decir comenzando por la última y pasando en cada iteración a la etapa
antecesora. El análisis de la primera etapa finaliza con la obtención del óptimo
del problema.

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


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.
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
El problema contiene 10 nodos claramente identificados:
Al pulsar OK se puede ingresar el resto de información, el cual se basa en las
relaciones existentes entre los nodos. Los valores van de acuerdo a la red
establecida en el problema:

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


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

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


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

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


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

140
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 VOLUMEN (PIES VALOR BONIFICACION
(LIBRA) CUBICOS)
1 1000 70 700
2 1100 100 800
3 700 100 1100
4 800 80 1000
5 500 50 700
141
a) ¿Cuáles elementos deben transportarse?

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

143
Ahora se ingresan los datos al Winqsb:

La entrada de datos queda como sigue.

Al resolver el problema se tiene:

144
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

145
• 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 CAPACIDAD DE


PRODUCCION ALMACENAMIENT
O
ENERO 500 4 6 4
FEBRERO 450 5 4 3
MARZO 500 3 7 2
ABRIL 600 4 5 4
146
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:

147
148

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.

También podría gustarte