Vous êtes sur la page 1sur 15

Simulacin

Mdulo 1: Programacin Dinmica


Elaborado por: Israel De la Cruz Madrigal 1

1 Programacin Dinmica
La programacin dinmica, segn Hillier y Lieberman (2010), es una tcnica matemtica
til para la toma de decisiones secuenciales interrelacionadas. Proporciona un procedimiento
sistemtico para determinar la combinacin ptima de decisiones. En contraste con la
programacin lineal, no cuenta con una formulacin matemtica estndar del problema, sino
que se trata de un enfoque de tipo general para solucionar problemas; adems, las ecuaciones
especficas que se usan deben ajustarse a la situacin particular.

De acuerdo a Taha (2012), la idea principal de la programacin dinmica es descomponer
el problema en subproblemas (ms manejables). Los clculos se realizan entonces recursivamente
donde la solucin ptima de un subproblema se utiliza como dato de entrada al siguiente
problema. La solucin para todo el problema est disponible cuando se soluciona el ltimo
subproblema. La forma en que se realizan los clculos recursivos depende de cmo se
descomponga el problema original. En particular, normalmente los subproblemas estn
vinculados por restricciones comunes. La factibilidad de estas restricciones comunes se mantiene
en todas las iteraciones.

1.1 Caractersticas de los problemas de programacin dinmica
A continuacin se presentan caractersticas bsicas que, segn Hillier y Lieberman
(2010), distinguen a los problemas de programacin dinmica:

a) El problema se puede dividir en etapas, cada una de las cuales requiere de una
poltica de decisin.
b) Cada etapa tiene cierto nmero de estados asociados con su inicio. En general, los
estados son las distintas condiciones posibles en las que se puede encontrar el sistema
en cada etapa del problema. El nmero de estados puede ser finito o infinito.
c) El efecto de la poltica de decisin en cada etapa es transformar el estado actual en un
estado asociado con el inicio de la siguiente etapa, quiz segn una distribucin de
probabilidad.
d) El procedimiento de solucin est diseado para encontrar una poltica ptima para
manejar el problema completo, es decir, una receta para elaborar la poltica de
Simulacin
Mdulo 1: Programacin Dinmica
Elaborado por: Israel De la Cruz Madrigal 2

decisin ptima para cada etapa en cada uno de los estados posibles. En cualquier
problema, la programacin dinmica proporciona este tipo de receta poltica sobre
qu hacer en todas las circunstancias posibles (a esto se debe que la decisin real que
se toma al llegar a un estado en particular se llama poltica de decisin). Proporcionar
esta informacin adicional, en vez de slo especificar una solucin ptima
secuencia ptima de decisiones, puede ser muy valioso en muchas situaciones que
incluyen el anlisis de sensibilidad.
e) Dado el estado actual, una poltica ptima para las etapas restantes es independiente
de la poltica adoptada en etapas anteriores. Por tanto, la decisin inmediata ptima
depende slo del estado actual y no de cmo se lleg ah. ste es el principio de
optimalidad de la programacin dinmica. En general, en los problemas de
programacin dinmica, el conocimiento del estado actual del sistema expresa toda la
informacin sobre su comportamiento anterior, informacin que es necesaria para
determinar la poltica ptima de ah en adelante. Un problema que carezca de esta
propiedad no se puede formular como un problema de programacin dinmica.
f) El procedimiento de solucin comienza cuando se determina 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. Es comn que la decisin de este
problema de una etapa sea trivial.
g) Se dispone de una relacin recursiva que identifica la poltica ptima para la etapa n,
dada la poltica ptima para la etapa n + 1. La forma precisa de la relacin recursiva
difiere de un problema a otro de programacin dinmica, pero se usar una notacin
anloga como se resume a continuacin:
N = Nmero de etapas.
n = Etiqueta de la etapa actual (n = 1, 2,..., N).
sn = Estado actual de la etapa n.
xn = Variable de decisin de la etapa n.
xn * = Valor ptimo de xn (dado sn).
fn(sn, xn ) = Contribucin de los estados n, n + 1,..., N a la funcin objetivo si
el sistema se encuentra en el estado sn en la etapa n, la decisin
Simulacin
Mdulo 1: Programacin Dinmica
Elaborado por: Israel De la Cruz Madrigal 3

inmediata es xn, y en adelante se toman decisiones ptimas.
f *n(sn) = fn(sn, xn*). La relacin recursiva siempre tendr la forma:
fn*(sn) = mx{fn (sn, xn)} o fn* (sn) = mn{fn (sn, xn)}, donde fn(sn,
xn) se escribe en trminos de sn, xn, f *n+1 (sn+1) y tal vez alguna
medida de la contribucin inmediata de xn a la funcin objetivo.
Lo que hace que la expresin de f*n (sn) sea una relacin
recursiva es la inclusin de f*n+1(sn+ 1), en el lado derecho, de
manera que f*n (sn) est definida en trminos de f*n+1(sn+1).
La relacin recursiva recurre constantemente a las etapas
posteriores a medida que se trabaja hacia atrs una etapa a la
vez. Cuando el nmero de la etapa actual n disminuye su valor
en 1, la nueva funcin f*n (sn) se obtiene mediante el uso de la
funcin f *n +1(sn + 1) que se obtuvo en la iteracin anterior;
despus, el proceso se repite cada nueva iteracin.
h) Cuando se usa esta relacin recursiva, el procedimiento de solucin comienza al final
y se mueve hacia atrs etapa por etapa para encontrar cada vez la poltica ptima para
esa etapa hasta que encuentra la poltica ptima desde la etapa inicial. Esta poltica
ptima lleva de inmediato a una solucin ptima para el problema completo, es decir,
x*1 para el estado inicial s1, despus x*2 para el estado s2 que resulta, luego x*3 para
el estado s3 que se obtiene, y as sucesiva mente hasta x*N para el estado sN
resultante.

Para la mayora de los problemas de programacin dinmica, se obtiene una tabla como la
siguiente para cada etapa (n = N, N - 1,..., 1).

Tabla 1.1.- Etapa (N) para el estado n. (Hillier y Lieberman, 2010)

Simulacin
Mdulo 1: Programacin Dinmica
Elaborado por: Israel De la Cruz Madrigal 4

Cuando se obtiene esta tabla de la etapa inicial (n = 1), el problema queda resuelto. Como
se conoce el estado de la etapa inicial, la primera decisin est especificada por x*1 en esta tabla.
El valor ptimo de las otras variables de decisin queda, a su vez, especificado por las otras
tablas segn el estado del sistema que se obtiene al tomar la decisin anterior.

1.2 Modelos de Programacin Dinmica
A continuacin se describen los casos comnmente ilustrados acadmicamente.

1.2.1 Problema de la ruta ms corta.
Este problema est referido a encontrar la ruta ptima (ruta mnima o ruta ms confiable),
para viajar desde un punto llamado nodo inicial o fuente hacia otro llamado nodo final o destino a
travs de una red de caminos que los conecta dados los retornos (costos beneficios tiempo, etc),
asociados con los arcos o ramas de la red.

Figura 1.1. Problema tpico de rutas. (Taha, 2012)

Los tres elementos bsicos a seguir de este modelo son:
1. Definicin de las etapas
2. Definicin de las alternativas en cada etapa
3. Definicin de los estados para cada etapa

1.2.2 Asignacin de recursos con retornos tabulados
Simulacin
Mdulo 1: Programacin Dinmica
Elaborado por: Israel De la Cruz Madrigal 5

El problema consiste en tomar la decisin ms conveniente en funcin de lo que sta
redita.

Tabla 1.2. Problema tpico de asignacin de recursos. (Hillier y Lieberman, 2010)


1.2.3 Modelo de la mochila/equipo de vuelo/carga de contenedor
El modelo de la mochila tiene que ver clsicamente con el hecho de determinar los
artculos ms valiosos que una persona carga en una mochila. El problema representa un modelo
de asignacin de recursos general en el cual se utilizan recursos limitados por varias actividades
econmicas. El objetivo es maximizar el rendimiento total.

1.2.4 Modelo de inversin
Para este tipo de problemas se hace el anlisis de opciones de inversin en distintos
tiempos con diferentes rendimientos. Lo que se busca es obtener el rendimiento mximo de
inversin.

1.3 Programacin dinmica determinstica
Se le conoce como problema con enfoque determinstico porque el estado de la siguiente
etapa est determinado por completo por el estado y la poltica de decisin de la etapa actual.
(Hillier y Lieberman, 2010)

En la etapa n el proceso est en algn estado sn. Al tomar la decisin xn se mueve a algn
estado sn+1 en la etapa n + 1. La contribucin a la funcin objetivo de ese punto en adelante se
calcul como f *n+1(sn+1). La poltica de decisin xn tambin contribuye a la funcin objetivo. Al
Simulacin
Mdulo 1: Programacin Dinmica
Elaborado por: Israel De la Cruz Madrigal 6

combinar estas dos cantidades en la forma apropiada se obtiene fn(sn, xn), la contribucin de la
etapa n en adelante. De la optimizacin respecto de xn se obtiene entonces f *n(sn) = fn(sn, xn*).
Una vez de terminados xn* y f *n(sn) para cada valor posible de sn, el procedimiento de solucin
se mueve hacia atrs una etapa. (Ibd.)


Figura 1.2. Estructura bsica de programacin dinmica determinstica. (Hillier y
Lieberman, 2010)

Una manera de clasificar los problemas de programacin dinmica determinstica es con
base en la forma de la funcin objetivo. Por ejemplo, el objetivo puede ser minimizar la suma de
las contribuciones en cada etapa individual o maximizar esa suma, o bien minimizar el producto
de los trminos, etc. Otra clasificacin se puede hacer en trminos de la naturaleza del conjunto
de estados en las respectivas etapas. En particular, los estados sn pueden estar representa dos por
una variable de estado discreta o por una variable de estado continua, o tal vez se requiera un
vector de estado (ms de una variable). De manera similar, las variables de decisin (x1, x2,...,
xN) tambin pueden ser discretas o continuas. (Ibd.)

1.3.1 Ejemplo: Ruta ms corta
Supongamos que deseamos seleccionar la ruta por carretera ms corta entre dos ciudades.
La red en la figura 1.1 proporciona las posibles rutas, en millas, entre la ciudad de inicio en el
nodo 1 y la ciudad destino en el nodo 7. Las rutas pasan por ciudades intermedias designadas por
los nodos 2 a 6. (Taha, 2012)

Para resolver el problema, primero lo descomponemos en etapas como se indica mediante
las lneas de rayas verticales en la figura 1.3. A continuacin, realizamos por separado los
clculos en cada etapa.
Simulacin
Mdulo 1: Programacin Dinmica
Elaborado por: Israel De la Cruz Madrigal 7



Figura 1.3. Descomposicin del problema de la ruta ms corta en etapas. (Taha, 2012)

Funcin recursiva para el problema: f n*(s) = mn fn(s, xn) = fn(s, xn*)

Tabla 1.3. Etapa 1 de solucin. (Elaboracin propia)
Xn

Sn
Fn(sn,xn)
F*n(sn,xn) Xn*
7
5 9 9 7
6 6 6 7

Tabla 1.4. Etapa 2 de solucin. (Elaboracin propia)
Xn

Sn
Fn(sn,xn)
F*n(sn,xn) Xn*
5 6
2 12+9 -- 21 5
3 8+9 9+6 17 6
4 7+9 13+6 16 5

Tabla 1.5. Etapa 3 de solucin. (Elaboracin propia)
Xn

Sn
Fn(sn,xn)
F*n(sn,xn) Xn*
2 3 4
1 7+21 8+17 5+16 21 4

Simulacin
Mdulo 1: Programacin Dinmica
Elaborado por: Israel De la Cruz Madrigal 8

Resumen de solucin:
La ruta a seguir, con un total de 21 millas, es la siguiente:
De la etapa 3 marca del nodo 1 al nodo 4 (5 millas)
De la etapa 2 marca del nodo 4 al nodo 5 (7 millas)
De la etapa 1 marca del nodo 5 al nodo 7 (9 millas)

1.3.2 Ejemplo: Asignacin de recursos con retornos tabulados
El gerente de ventas de una editorial de libros de texto universitarios tiene 6 agentes de
ventas puede asignar a tres regiones distintas del pas. Ha decidido que cada regin debe tener por
lo menos un agente y que cada agente individual debe quedar restringido a una de estas regiones,
pero ahora quiere determinar cuntos agentes debe asignar a las respectivas regiones con el fin de
maximizar las ventas. La siguiente tabla da el incremento estimado en las ventas de cada regin
(en las unidades apropiadas) si se le asignan diferentes cantidades de agentes. Resuelva aplicando
PD:
Tabla 1.6. Ventas esperadas por nmero de agentes asignados a cada regin.
Nmero
de
agentes
Regin
1 2 3
1 35 21 28
2 48 42 41
3 70 56 63
4 89 70 75

La funcin recursiva es fn (Sn) =Max {fn(Xn,Sn) + f*n+1(Sn-Xn)}

Tabla 1.7. Etapa 1 de solucin en regin 3. (Elaboracin propia)
Xn

Sn
Fn(sn,xn)
F*n(sn,xn) Xn*
1 2 3 4
1 28 -- -- -- 28 1
2 28 41 -- -- 41 2
3 28 41 63 -- 63 3
4 28 41 63 75 75 4

Simulacin
Mdulo 1: Programacin Dinmica
Elaborado por: Israel De la Cruz Madrigal 9


Tabla 1.8. Etapa 2 de solucin en regin 2. (Elaboracin propia)
Xn

Sn
Fn(sn,xn)
F*n(sn,xn) Xn*
1 2 3 4
2 21+28 -- -- -- 49 1
3 21+41 42+28 -- -- 70 2
4 21+63 42+41 56+28 -- 84 1, 3
5 21+75 42+63 56+41 70+28 105 2

Tabla 1.9. Etapa 3 de solucin en regin 1. (Elaboracin propia)
Xn

Sn
Fn(sn,xn)
F*n(sn,xn) Xn*
1 2 3 4
6 35+105 48+84 70+70 89+49 140 1, 3

Resumen de solucin: Se presentan dos soluciones posibles con 140 ventas.
Alternativa 1: De la etapa 3 en regin 1 con 1 vendedor (35 ventas)
De la etapa 2 en regin 2 con 2 vendedores (42 ventas)
De la etapa 3 en regin 3 con 3 vendedores (63 ventas)

Alternativa 2: De la etapa 3 en regin 1 con 3 vendedores (70 ventas)
De la etapa 2 en regin 2 con 2 vendedores (42 ventas)
De la etapa 3 en regin 3 con 1 vendedor (28 ventas)

1.3.3 Ejemplo de modelo de la mochila/equipo de vuelo/carga de contenedor
Un barco de 4 toneladas puede cargarse con uno o ms de tres artculos. La siguiente tabla
da el peso unitario, wi, en toneladas y el ingreso unitario en miles de dlares, ri, para el artculo i.
El objetivo es determinar la cantidad de unidades de cada artculo que maximizar el rendimiento
total. (Taha, 2012)



Simulacin
Mdulo 1: Programacin Dinmica
Elaborado por: Israel De la Cruz Madrigal 10

Tabla 10. Ingreso por peso unitario. (Ibd.)

Como el peso unitario wi y el peso mximo W son enteros, el estado xi asume slo valores
enteros.
La funcin es fn (Sn) =Max {fn(Xn,Sn) + f*n+1(Sn-Xn)}

Tabla 1.11. Etapa 1 de solucin artculo 3. (Elaboracin propia)
Xn

Sn
Fn(sn,xn)
F*n(sn,xn) Xn*
0 1 2 3 4
0 0 -- -- -- -- 0 0
1 0 14 -- -- -- 14 1
2 0 14 28
-- --
28 2
3 0 14 28 42 -- 42 3
4 0 14 28 42 56 56 4

Tabla 1.12. Etapa 2 de solucin artculo 2. (Elaboracin propia)
Xn

Sn
Fn(sn,xn)
F*n(sn,xn) Xn*
0 1
0 0+0 -- 0 0
1 0+14 -- 14 0
2 0+28 -- 28 0
3 0+42 47+0 47 1
4 0+56 47+14 61 1






Simulacin
Mdulo 1: Programacin Dinmica
Elaborado por: Israel De la Cruz Madrigal 11

Tabla 1.13. Etapa 3 de solucin artculo 1. (Elaboracin propia)
Xn

Sn
Fn(sn,xn)
F*n(sn,xn) Xn*
0 1 2
0 0+0 -- -- 0 0
1 0+14 14 0
2 0+28 31+0 31 1
3 0+47 31+14 47 0
4 0+61 31+28 62+0 62 2

Resumen de solucin:
o De la etapa 3 en artculo 1 con 2 (35 ventas)
o De la etapa 2 en regin 2 con 2 vendedores (42 ventas)
o De la etapa 3 en regin 3 con 3 vendedores (63 ventas)

1.4 Programacin Dinmica probabilstica
Segn Taha (2004), Hillier y Lieberman (2010), la programacin dinmica probabilstica
difiere de la determinstica en que el estado de 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 queda completamente determinada por el estado y la poltica de
decisin de la etapa actual. En el diagrama de la figura 1.4 se describe la estructura bsica que
resulta para los problemas de programacin dinmica probabilstica.
Simulacin
Mdulo 1: Programacin Dinmica
Elaborado por: Israel De la Cruz Madrigal 12


Figura 1.4. Estructura bsica de programacin dinmica probabilstica. (Hillier y Lieberman,
2010)

1.4.1 Ejemplo de modelo de inversin
En este modelo de inversin, hay que suponer que se desea invertir $10,000 durante los 4 aos
venideros. Hay 50% de probabilidades de que el dinero aumente al doble, 20% de probabilidades
de salir a mano y 30% de probabilidades de perder la cantidad invertida. Proponer una estrategia
ptima de inversin. (Taha, 2004)
Funcin recursiva:


Simulacin
Mdulo 1: Programacin Dinmica
Elaborado por: Israel De la Cruz Madrigal 13



Tabla 1.14. Etapa 4 de solucin. (Taha, 2004)





Simulacin
Mdulo 1: Programacin Dinmica
Elaborado por: Israel De la Cruz Madrigal 14

Tabla 1.15. Etapa 3 de solucin. (Taha, 2004)


Tabla 1.16. Etapa 2 de solucin. (Ibd.)


Tabla 1.17. Etapa 1 de solucin. (Ibd.)

Simulacin
Mdulo 1: Programacin Dinmica
Elaborado por: Israel De la Cruz Madrigal 15

Entonces, la poltica ptima de inversin se puede resumir como sigue: como para y*i = xi
para i = 1 a 4, la solucin ptima es invertir todos los fondos disponibles al iniciar cada ao. Los
fondos acumulados al final de 4 aos son 2.0736x1 =2.0736 ($10,000) = $20,736.

1.5 Problema de dimensionalidad en Programacin Dinmica
En todos los modelos de PD presentados hasta ahora, el estado en cualquier etapa est
representado por un solo elemento. Por ejemplo, en el modelo de la mochila, la nica restriccin
es el peso del artculo. De manera ms realista en este caso, el volumen de la mochila tambin
puede ser una restriccin viable, en cuyo caso se dice que en cualquier etapa el estado es
bidimensional: peso y volumen. (Taha, 2012)

El aumento en la cantidad de variables de estado incrementa los clculos en cada etapa.
Esto es particularmente evidente en clculos tabulares de PD debido a que el nmero de filas en
cada tabla corresponde a todas las posibles combinaciones de las variables de estado. Esta
dificultad computacional en ocasiones se conoce en la literatura como el maleficio de
dimensionalidad.

1.6 Referencias bibliogrficas
Hillier, Frederick S. y Lieberman, Gerald J. (2010). Introduccin a la investigacin de
operaciones. 9 edicin, McGRAW-HILL

Taha, Hamdy A. (2004). Investigacin de operaciones. 7a edicin, Pearson Educacin.

Taha, Hamdy A. (2012). Investigacin de operaciones. 9a edicin, Pearson Educacin.

Vous aimerez peut-être aussi