Você está na página 1de 25

2014

Programacin dinmica

Introduccin a la programacin dinmica (PD)


La PD fue desarrollada por Richard Bellman y G B Dantzing. Sus importantes
contribuciones sobre esta tcnica cuantitativa de toma de decisiones se publicaron en
1957 en un libro del primer autor denominado Dynamic Programming (Princeton
University Press. Princeton, New Jersey) (Domnguez, 2000).
Inicialmente a la PD se le denomin programacin lineal estocstica problemas de
programacin lineal con incertidumbre.
La programacin dinmica (PD) determina la solucin ptima de un problema de
n variables descomponindola en n etapas, con cada etapa incluyendo un subproblema
de una sola variable. La principal contribucin de la PD es el principio de optimalidad, el
cual establece que una poltica ptima consiste de subpolticas ptimas, un marco de
referencia para descomponer el problema en etapas.
La programacin dinmica es una tcnica que se puede aplicar para resolver muchos
problemas de optimizacin. La mayor parte de las veces, la programacin dinmica
obtiene soluciones con un avance en reversa, desde el final de un problema hacia el
principio con lo que un problema grande y engorroso se convierte en una serie de
problemas ms pequeos y ms tratables.

As, la programacin dinmica se puede definir como una tcnica matemtica til que
resuelve una serie de decisiones secuenciales, cada una de las cuales afecta las
decisiones futuras. Proporciona un procedimiento sistemtico para determinar la
combinacin de decisiones que maximiza la efectividad total (Taha, 2004).
En contraste para el problema de programacin dinmica, trata de un enfoque de tipo
parcial para la solucin de problemas y las ecuaciones especficas que se usan se
deben desarrollar para que represente cada situacin individual.

Caractersticas de los problemas de programacin dinmica

Las caractersticas de la programacin dinmica se emplean para formular e identificar


la estructura de los problemas de este tipo.
1

Programacin dinmica

A continuacin se presentarn estas caractersticas bsicas que distinguen a los


problemas de programacin dinmica.
1. El problema se puede dividir en etapas que requieren una poltica de decisin en
cada una de ellas. En muchos problemas de programacin dinmica, la etapa es
la cantidad de tiempo que pasa desde el inicio del problema, en ciertos casos no
se necesitan decisiones en cada etapa.
2. Cada etapa tiene un cierto nmero de estados asociados a ella. Por estado se
entiende la informacin que se necesita en cualquier etapa para tomar una
decisin ptima.
3. El efecto de la poltica de decisin en cada etapa es transformar el estado actual
en un estado asociado con la siguiente etapa (tal vez de acuerdo a una
distribucin de probabilidad).
4. El procedimiento de solucin est diseado para encontrar una poltica ptima
para el problema completo, es decir, una receta para las decisiones de la poltica
ptima en cada etapa para cada uno de los estados posibles.
5. Dado el estado actual, una poltica ptima para las etapas restantes es
independiente de la poltica adoptada en etapas anteriores. (este es el principio
de ptimalidad para la programacin dinmica). En general en los problemas de
PD, el conocimiento del estado actual del sistema expresa toda la informacin
sobre su comportamiento anterior, y esta informacin es necesario para
determinar la poltica ptima de ah en adelante.
6. El procedimiento de solucin se inicia al encontrar la poltica ptima para la
ltima etapa. La poltica ptima para la ltima etapa prescribe la poltica ptima
de decisin para cada estado posible en esa etapa.
7. Se dispone de una relacin recursiva que indica la poltica ptima para la etapa
dada la poltica optima para la etapa (n+1)

A pesar de esta caracterstica, los problemas que pueden ser atacados con la PD tienen
otras dos propiedades adicionales:

Slo un nmero reducido de variables se debe conocer en cualquier etapa con el


fin de describir al problema. En efecto, los problemas de la PD se caracterizan
por la dependencia de los resultados derivados de decisiones sobre un nmero
reducido de variables.
El resultado de una decisin en cualquier etapa altera los valores numricos de
un nmero reducido de variables relevantes al problema. La decisin actual ni
incrementa ni decrementa el nmero de factores sobre los cuales depende el
2

Programacin dinmica

resultado. As, para la siguiente decisin en la secuencia, el mismo nmero de


variables se considera (Hillier, 1991).

En un problema de PD una serie de decisiones se deben tomar en una secuencia dada.


Cuando esto se cumple, una poltica ptima se debe perseguir. No importa cules
fueron los estados y decisiones iniciales, las decisiones restantes constituirn una
poltica ptima con respecto al estado resultante de la primera decisin.

Ejemplo 5.2:
El problema de la diligencia.

Un problema construido especialmente por el Profesor H M Wagner de la Universidad


de Stanford para ilustrar las caractersticas e introducir la terminologa de la PD es el
problema de la diligencia.
Este problema se refiere a un vendedor mtico que tuvo que viajar hacia el oeste
utilizando como medio de transporte una diligencia, a travs de tierras hostiles, en el
ltimo cuarto del siglo XIX. An cuando su punto de partida y destino eran fijos, tena un
nmero considerable de opciones para elegir qu estados (o territorios que
posteriormente se convirtieron en estados) recorrer en su ruta.
En la figura 5.1 se muestran las rutas posibles, en donde cada estado se representa por
un bloque numerado.

Programacin dinmica

Figura 5.1. Sistema de caminos para el problema de la diligencia.

De la ilustracin se puede observar que el viaje se puede realizar en 4 etapas,


partiendo del estado 1 hasta su destino en el estado 10:

Primera etapa: estados 1 y (2, 3, 4)


Segunda etapa: estados (2, 3,4) y (5, 6, 7)
Tercera etapa: estados (5,6,7) y (8, 9)
Cuarta etapa: estado (8,9) y10

Puesto que se ofrecan seguros de vida a los pasajeros de las diligencias, este
vendedor no quiso dejar pasar la oportunidad y se propuso determinar la ruta ms
segura. Como el costo de cada pliza se basaba en una evaluacin cuidadosa de la
seguridad de ese recorrido, la ruta ms segura deba ser aquella con la pliza de
seguro de vida ms barata. El costo de la pliza estndar para el viaje en diligencia del
estado i al j se muestra en figura 5.1 como una etiqueta en los caminos (flechas) para ir
de un estado a otro.
As la pregunta central es: cul ruta (conjunto de caminos) minimiza el costo total de la
pliza?, para contestar esta pregunta es necesario hacer notar que, el procedimiento
poco inteligente de seleccionar el camino ms barato ofrecido en cada etapa sucesiva
no necesariamente conduce a una decisin ptima global.
La PD parte de una pequea porcin del problema y encuentra la solucin ptima para
ese problema ms pequeo. Entonces gradualmente agranda el problema, hallando la
solucin ptima en curso a partir de la anterior, hasta que se resuelve por completo el
problema original.
4

Programacin dinmica

A continuacin se explican los detalles involucrados en la implementacin de esta


filosofa general.
La idea es calcular el costo mnimo (acumulativo) de la pliza de seguros entre los dos
estados de cada etapa y despus utilizar esos costos como datos de entrada para la
etapa inmediata siguiente.

CLCULOS PARA LA ETAPA 1


Considerando los estados asociados con la etapa 1, se puede ver que los estados 2, 3
y 4 estn conectados cada uno con el estado inicial 1 por una sola flecha como se
puede apreciar en la figura 5.2. Por consiguiente, para la etapa 1 se tiene

Figura 5.2 etapa 1: estados


2, 3,4 conectados con el
estado inicial 1

Costo mnimo al estado 2 = 2 (desde el estado 1)


Costo mnimo al estado 3 = 4 (desde el estado 1)
Costo mnimo al estado 4 = 3 (desde el estado 1)

Programacin dinmica

CLCULOS PARA LA ETAPA 2


Despus se avanza a la etapa 2 para determinar los costos mnimos
(Acumulativos) para los estados 5, 6 y 7 como se aprecia en la figura 5.3.
Considerando primero al estado 5, se ve que existen tres alternativas; a saber (2,5),
(3,5), (4,5).

Figura 5.3
Etapa 2: estados 5, 6, 7
conectados con los estados

Esta informacin, junto con los costos mnimos de los estados 2, 3 y 4 (figura 5.4)
determinan el costo mnimo (acumulativo) para el estado 5 como:

Figura 5.4 etapa 2:


Estados 5 conectado
con los estados 2, 3,

De forma similar para el estado 6 (figura 5.5), se tiene:


Figura 5.5
Etapa 2: Estados 6
6

Programacin dinmica

Figura 5.6

Finalmente para el estado 7 (figura 5.6), se tiene:

Etapa 2: Estados 7
conectados con los

CLCULOS PARA LA ETAPA 3

Programacin dinmica

Para los clculos se toman los datos de la figura 5.7

Figura 5.7
Etapa 3: estados 8, 9

CLCULOS PARA LA ETAPA 4


Para los clculos se toman los datos de la figura 5.8

Programacin dinmica

Figura 5.8

Resumen de clculos para las diferentes etapas

Etapa 4: Estados 10
conectados con los

El costo mnimo total desde el estado 1 al estado 10 es de 11.


El estado 10 se puede alcanzar desde los estados 8 y 9.
Si se elige el estado 9, este proviene de haber elegido el estado 6, el cual a su vez de
haber elegido el estado 4 y finalmente el estado 1.
Es decir la ruta ptima es: 1, 4, 6, 9,10

Si se elige el estado 8, este proviene de haber elegido el estado 5, el cual a su vez de


haber elegido el estado 4 o el 3.
Si se elige el estado 4, la ruta ptima es: 1, 4, 5, 8,10.
Si se elige el estado 3, la ruta ptima es: 1, 3, 5, 8,10
Por lo tanto existen 3 rutas ptimas a elegir ya que la tres implican el costo mnimo total
que es 11.
9

Programacin dinmica

Formalizacin de los clculos de programacin dinmica

Se mostrar ahora la forma en la cual se pueden expresar matemticamente los


clculos recursivos de la PD.

i=1, 2,3

Con la condicin inicial

. La ecuacin indica que las distancias ms cortas

en la etapa i se debe expresar en funcin del siguiente nodo


terminologa de la programacin dinmica, a

xi

. En la

se le llama estado del sistema en la

etapa i.
De hecho se considera que el estado del sistema en la etapa i es la informacin que
enlaza, conecta o vincula las etapas, de tal modo que se pueda tomar las decisiones
para las etapas restantes sin volver a examinar cmo se lleg a las decisiones de las
etapas anteriores. La definicin correcta de estado permite considerar por separado
cada estado, y garantiza que la solucin sea factible para todos los estados.

PROGRAMACIN DINMICA DETERMINSTICA (PDD)


En este caso se profundiza sobre el enfoque de programacin dinmica en los
problemas determinsticos, en donde el estado en la siguiente etapa est
completamente determinado por el estado y la poltica de decisin de la etapa actual. El

10

Programacin dinmica

caso probabilstico en el que existe una distribucin de probabilidad para el valor


posible del siguiente estado este se analizara ms adelante.

Aplicaciones de programacin dinmica determinstica

Algunas de las aplicaciones de programacin dinmica determinstica son:

Modelo de Volumen-Carga Mochila


Modelo del tamao de la fuerza de trabajo
Modelo de reposicin de equipos
Modelo de inversin
Modelos de inventarios

A continuacin se presentarn algunas de estas aplicaciones, cada una de las cuales


muestra una nueva idea en la puesta en prctica de la PD.
A medida que se presente cada aplicacin, es importante prestar atencin a los tres
elementos bsicos de un modelo de PD:
Definicin de las etapas
Definicin de las polticas o alternativas
Definicin de los estados para cada etapa

De los tres elementos, la definicin del estado por lo comn es la ms sutil.


Las aplicaciones que se presentan a continuacin muestran que la definicin de estado
vara dependiendo de la situacin que se est modelando.
Sin embargo, a medida que se presente cada aplicacin, resultar til considerar las
siguientes preguntas:
Qu relaciones unen las etapas?
Qu informacin se necesita para tomar decisiones factibles en la etapa actual,
sin reexaminar las decisiones que se tomaron en las etapas anteriores?
La experiencia indica que la comprensin del concepto de estado se puede mejorar
cuestionando la validez de la forma que dicta la intuicin.

11

Programacin dinmica

Se sugiere intentar una definicin de estado diferente que pueda parecer ms lgica y
utilizarla en los clculos recursivos.
Con el tiempo, se descubrir que las definiciones que se presentan en las siguientes
aplicaciones proporcionan la forma correcta para resolver el problema.
Mientras tanto, el proceso mental propuesto deber mejorar la comprensin del
concepto de estado.

Modelo del tamao de la fuerza de trabajo


En algunos proyectos de construccin, las contrataciones y los despidos se ejercen
para mantener un nmero de empleados que satisfaga las necesidades del proyecto.
Debido a que las actividades tanto de contratacin como de despido incurren en costos
adicionales, cmo se debe mantener el nmero de empleados a todo lo largo de la
vida del proyecto?
Supngase que el proyecto se ejecutara durante el lapso de n semanas, y que la fuerza
de trabajo mnima requiere en la semana i es

bi

. Sin embargo, de acuerdo con los

parmetros de costos, podra ser ms econmico dejar que fluctu el tamao de la


fuerza de trabajo. Como

xi

es la cantidad de trabajadores empleados en la semana i,

en esa semana i se puede incurrir en dos costos:


exceso de personal;

x ibi yC 2 (x ix i1)

C1 (x ib 1)

, el costo de mantener el

, el costo de contratar,

x ix i1

trabajadores

adicionales.
Los elementos del modelo de programacin dinmica se definen como sigue:

12

Programacin dinmica

Ejemplo 5.4-2:
Un contratista constructor estima que la fuerza de trabajo necesaria durante las
prximas 5 semanas ser de 5, 7, 8, 4 y 6 trabajadores, respectivamente. La mano de
obra en exceso que se conserve le costara $300 por trabajador semanalmente, y la
nueva contratacin en cualquiera semana tendr un costo fijo de $400 ms $200 por
trabajador y por semana.
Los datos del problema se resumen como sigue:

13

Programacin dinmica

14

Programacin dinmica

Modelo de reposicin de equipo


Mientras ms tiempo este en servicio una mquina, su costo de mantenimiento es
mayor y su productividad menor. Cuando la mquina llegue a cierta antigedad ser
ms econmico reemplazarla. Es as que entonces el problema se reduce a
determinacin de la antigedad mas econmica de una maquina.

15

Programacin dinmica

Supngase que se estudia el problema de reposicin de la mquina durante un lapso


de n aos. Al inicio de cada ao, se debe decidir si mantener la maquina en servicio por
un ao ms o reemplazarla por una nueva. Sean r(t), c(t), los ingresos y el costos de
operacin anuales, y s(t) el valor de recuperacin de una maquina con t aos de
antigedad. El costo de adquisicin de una mquina nueva en cualquier ao es I.
Los elementos del modelo de programacin dinmica son:

Ejemplo 5.4-3
Una empresa debe determinar la poltica ptima, durante los prximos 4 aos (n=4), de
reemplazo de una mquina, que en la actualidad tiene 3 aos. La tabla 5.1 muestra los
datos del problema. La empresa establece que toda mquina que tenga 6 aos de edad
debe reemplazarse. El costo de una maquina nueva es $100,000.

Tabla 5.1.
Aos con relacin a sus

16

Programacin dinmica

La determinacin de los valores factibles de la edad de la mquina en cada etapa


requiere de algo de ingenio. En la figura 5.9 se resume la red que representa el
problema. Al iniciar el ao 1 se tiene una mquina de 3 aos de antigedad. Se puede
reemplazarla (R) o conservarla (k) durante otro ao. Al inicia el ao 2, si hay reemplazo,
la maquina nueva tendr 1 ao de edad; en caso contrario, la mquina actual tendr 4
aos de antigedad. Los mismos razonamientos se aplican al iniciar los aos 2 o 4. Si
se reemplaza una maquina con 1 ao de antigedad al iniciar los aos 2 y 3, su
reposicin tendr 1 ao de antigedad al inicio del ao siguiente. Tambin, al iniciar el
ao 4, se debe reemplazar una mquina con 6 aos de servicio, y al final del ao 4 se
desechan las mquinas, con recuperacin S.
Figura 5.9
Representacin de la
edad de la maquina
en funcin del ao de
decisin,
en
el
ejemplo 5.2.1-2

La red indica que al comenzar el ao 2, las edades posibles de las maquinas son de 1 4
aos.
Para el comienzo del ao 3, las antigedades posibles son 1, 2 y 5 aos, y para el
comienzo del ao 4, las antigedades posibles son 1, 2, 3 y 6 aos.
La solucin de la red de la figura 5.9 equivale a determinar la ruta ms larga, del inicio
del ao 1 al final del ao 4. Se iniciara la forma tabular para resolver el problema. Todos
los valores son en miles de $. Ntese que si se reemplaza una mquina en el ao 4 (es
decir, al final del horizonte de planeacin) los ingresos incluirn el valor de
recuperacin, s(t), de la mquina reemplazada y el valor de recuperacin, s(1) de la
mquina de repuesto.

17

Programacin dinmica

La figura 5.10 resume el orden en el cual se obtiene la solucin ptima. Al iniciar el ao


1, la decisin optima para t=3 es reemplazar la maquina. As, la mquina nueva tendr
1 ao al iniciar el ao 2, y t=1 al iniciar el ao 2 determina conservarla o reemplazarla.
Si se reemplaza, la nueva mquina tendr 1 ao al inicial el ao 3; en caso contrario, la
maquina conservada tendr 2 aos. El proceso se contina de esta forma hasta llegar
al ao 4.
18

Programacin dinmica

Figura 5.10
Las polticas alternativas ptimas empezando en el ao 1 son
(R, K, K, R) y (R, R, K, K). El costo total es de 55,300 dlares.

PROGRAMACIN DINMICA PROBABILSTICA (PDP)


La programacin dinmica probabilstica (PDP) es una tcnica matemticamente til
para la toma de decisiones interrelacionadas, se presenta cuando el estado en la
siguiente etapa no est determinado por completo por el estado y la poltica de
decisin de la etapa actual. En su lugar existe una distribucin de probabilidad para
determinar cul ser el siguiente estado. Sin embargo, esta distribucin de probabilidad
si queda bien determinada por el estado y la poltica de decisin en la etapa actual. Por
consiguiente la diferencia entre la programacin dinmica probabilstica y la
programacin dinmica determinstica (PDD) est en que los estados y los retornos o
retribuciones en cada etapa son probabilsticos. La programacin dinmica
probabilstica se origina en especial en el tratamiento de modelos estocsticos de
inventarios y en los procesos markovianos de decisin.
En este apartado se presentar algunos ejemplos generales, con objeto de hacer
resaltar la naturaleza estocstica de la programacin dinmica.

Aplicaciones de programacin dinmica probabilstica


Algunas de las aplicaciones de programacin dinmica probabilstica son:
Un juego aleatorio
Problema de inversin
Maximizacin del evento de lograr una meta.
A continuacin se presentar una de estas aplicaciones.

19

Programacin dinmica

Un juego aleatorio

Es una variacin del juego de la ruleta rusa, se hace girar una rueda con marcas de n
nmeros consecutivos: 1 a n, en su superficie. La probabilidad de que la rueda se
detenga en el nmero i despus de un giro es pi. Un jugador paga $x por el privilegio de
hacer girar la rueda un mximo de m giros. La recompensa para el jugador es el doble
de la cantidad obtenida en el ltimo giro. Suponiendo que le jugador se repite (hasta
con m giros cada vez) una cantidad razonablemente grande de veces, propone una
estrategia optima para el jugador.
Se puede formular el problema como un modelo de programacin dinmica con las
siguientes definiciones:
1. La etapa i corresponde a la i-sima vuelta de la rueda, i = 1, 2, , m
2. En cada etapa hay dos alternativas: se gira la rueda una vez ms o se termina el
juego
3. El estado j del sistema en la etapa i es el nmero que se obtuvo la ltima vez que
se gir la rueda, el cual est entre 1 y n
Sea

fi(j) = Ingreso mximo esperado cuando el juego est en la etapa i (el giro) y que el
resultado del ltimo giro fue j
En este caso se tiene que

2 j , si termina

fi j max

k 1

pk fi 1 k , si contina

Entonces, la ecuacin recursiva se puede escribir como sigue:

20

Programacin dinmica

Rn f1 0 x

Los clculos comienzan con fm+1 y terminan con f1, de modo que hay
m+1 etapas. Como f1(0) representa el rendimiento esperado de las m vueltas, as que el
rendimiento esperado neto, Rn, es:
Ejemplo
Supongamos que la ruleta est marcada con los nmeros 1 a 5 y que las
probabilidades de que se detenga en cada nmero son p1 = 0.30, p2 = 0.25, p3 = 0.20,
p4 = 0.15, p5 = 0.10.
El jugador paga $5 por un mximo de cuatro vueltas. Determine la estrategia ptima
para cada una de las cuatro vueltas y encuentre el rendimiento esperado neto asociado.
Etapa 5
Resultado
Etapa 4
la vuelta 4

f5(j) = 2j
de

f4(j) = mx.{2j,(pkf5(k))}
Solucin ptima
= mx.{2j, p1f5 (1)+ p2f5(2)+ p3f5 (3)+ p4f5 (4)+ p5f5 (5)}

f5(j)
Decisin
= mx.{2j,0.3x2
+ 0.25x4 + 0.2x6 + 0.15x8 + 0.1x10}

= mx.{2j,5}
2
Terminar

Resultado de
2
la vuelta 4

Rendimiento esperado
4
Terminar

3
j

6
Terminar

Terminar
Girar

Terminar

10

Terminar

Solucin ptima

f4(j)

Decisin

21

Programacin dinmica

Girar

Girar

Terminar

Terminar

10

10

Terminar

Etapa 3

f3(j) = mx.{2j, (pkf4(k))}


= mx.{2j, p1f4 (1)+ p2f4(2)+ p3f4 (3)+ p4f4 (4)+ p5f4 (5)}
= mx.{2j,0.3x5 + 0.25x5 + 0.2x6 + 0.15x8 + 0.1x10}
= mx.{2j,6.15}

Resultado de la
vuelta 3

Rendimiento esperado

Solucin ptima

Terminar

Girar

f4(j)

Decisin

6.15

6.15

Girar

6.15

6.15

Girar

6.15

6.15

Girar

6.15

Terminar

10

6.15

10

Terminar
22

Programacin dinmica

Etapa 2
f2(j) = mx.{2j, (pkf3(k))}
= mx.{2j, p1f3 (1)+ p2f3(2)+ p3f3 (3)+ p4f3 (4)+ p5f3 (5)}
= mx.{2j,0.3x6.15 + 0.25x6.15 + 0.2x6.15 + 0.15x8 + 0.1x10}
= mx.{2j,6.8125}

Resultado de
la vuelta 3

Rendimiento esperado

Solucin ptima

Terminar

Girar

f4(j)

Decisin

6.8125

6.8125

Girar

6.8125

6.8125

Girar

6.8125

6.8125

Girar

6.8125

Terminar

10

6.8125

10

Terminar

Etapa 1

f1(0) = mx.{2j, (pkf2(k))}


= mx.{2j, p1f2 (1)+ p2f2(2)+ p3f2 (3)+ p4f2 (4)+ p5f2 (5)}
= mx.{2j, 0.3x6.8125+ 0.25x6.8125 + 0.2x6.8125 + 0.15x8 + 0.1x10
= mx.{2j,7.31}

23

Programacin dinmica
La nica opcin disponible al iniciar el juego es girar.
De acuerdo con los cuadros anteriores, la solucin ptima es:

Vuelta nmero

Estrategia ptima

Comienza el juego. Gire

Contine si la vuelta 1 produce 1,2, o 3; de otra


forma, termine el juego

Contine si la vuelta 2 produce 1, 2 o 3; de otra


forma, termine el juego
Contine si la vuelta 3 produce 1 o 2. De otra forma,
termine el juego

Ingreso neto esperado= $7.31-$5.00= $2.31

Referencias Bibliogrficas
Domnguez, A. (Noviembre de 2000). Programacin dinmica.
Recuperado el Noviembre de 2012, de
http://www.slideshare.net/Alexdfar/programacin-dinmica-5688350
Hillier, F. S. (1991). Introduccin a la Investagacin de
Operaciones (3 ed.). Mxico: McGraw-Hill.
Taha, H. A. (2004). Investigacin de Operaciones (7 ed.). Mxico:
PEARSON EDUCATION.

24

Você também pode gostar