Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DINÁMICA
La programación dinámica es una
técnica matemática útil que resuelve
una serie de decisiones secuenciales,
cada una de las cuales afecta las
decisiones futuras. Proporciona un
procedimiento sistemático para
determinar la combinación de
decisiones que maximiza la
efectividad total
Programación dinámica
Así, la programación dinámica se puede definir como una técnica matemática útil que
resuelve una serie de decisiones secuenciales, cada una de las cuales afecta las
decisiones futuras. Proporciona un procedimiento sistemático para determinar la
combinación de decisiones que maximiza la efectividad total (Taha, 2004).
En contraste para el problema de programación dinámica, trata de un enfoque de tipo
parcial para la solución de problemas y las ecuaciones específicas que se usan se
deben desarrollar para que represente cada situación individual.
1
Programación dinámica
2. Cada etapa tiene un cierto número de estados asociados a ella. Por estado se
entiende la información que se necesita en cualquier etapa para tomar una
decisión óptima.
3. El efecto de la política de decisión en cada etapa es transformar el estado actual
en un estado asociado con la siguiente etapa (tal vez de acuerdo a una
distribución de probabilidad).
4. El procedimiento de solución está diseñado para encontrar una política óptima
para el problema completo, es decir, una receta para las decisiones de la política
óptima en cada etapa para cada uno de los estados posibles.
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 óptimalidad para la programación dinámica). En general en los problemas de
PD, el conocimiento del estado actual del sistema expresa toda la información
sobre su comportamiento anterior, y esta información es necesario para
determinar la política óptima de ahí en adelante.
6. El procedimiento de solución se inicia al encontrar la política óptima para la
última etapa. La política óptima para la última etapa prescribe la política óptima
de decisión para cada estado posible en esa etapa.
7. Se dispone de una relación recursiva que indica la política óptima para la etapa
dada la política optima para la etapa (n+1)
A pesar de esta característica, los problemas que pueden ser atacados con la PD
tienen otras dos propiedades adicionales:
2
Programación dinámica
Ejemplo 5.2:
El problema de la diligencia.
3
Programación dinámica
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: ¿cuál ruta (conjunto de caminos) minimiza el costo total de la
póliza?, para contestar esta pregunta es necesario hacer notar que, el procedimiento
poco inteligente de seleccionar el camino más barato ofrecido en cada etapa sucesiva
no necesariamente conduce a una decisión óptima global.
La PD parte de una pequeña porción del problema y encuentra la solución óptima para
ese problema más pequeño. Entonces gradualmente agranda el problema, hallando la
solución óptima en curso a partir de la anterior, hasta que se resuelve por completo el
problema original.
4
Programación dinámica
Figura 5.3
Etapa 2: estados 5, 6, 7 conectados
con los estados 2, 3, 4.
Esta información, junto con los costos mínimos de los estados 2, 3 y 4 (figura 5.4)
determinan el costo mínimo (acumulativo) para el estado 5 como:
5
Figura 5.6 Programación dinámica
Etapa 2: Estados 7 conectados
con los estados 2, 3, 4.
Figura 5.7
Etapa 3: estados 8, 9 conectados
con los estados 5, 6, 7.
Figura 5.8
Etapa 4: Estados 10 conectados 6
con los estados 8, 9
Programación dinámica
Por lo tanto existen 3 rutas óptimas a elegir ya que la tres implican el costo mínimo total
que es 11.
i=1, 2,3…n
Con la condición inicial . La ecuación indica que las distancias más cortas
en la etapa i se debe expresar en función del siguiente nodo . En la terminología
de la programación dinámica, a se le llama estado del sistema en la etapa i.
7
Programación dinámica
De los tres elementos, la definición del estado por lo común es la más sutil.
Las aplicaciones que se presentan a continuación muestran que la definición de estado
varía dependiendo de la situación que se está modelando.
Sin embargo, a medida que se presente cada aplicación, resultará útil considerar las
siguientes preguntas:
¿Qué relaciones unen las etapas?
8
Programación dinámica
9
Programación dinámica
Ejemplo 5.4-2:
10
Programación dinámica
11
Programación dinámica
Ejemplo 5.4-3
Una empresa debe determinar la política óptima, durante los próximos 4 años (n=4), de
reemplazo de una máquina, que en la actualidad tiene 3 años. La tabla 5.1 muestra los
datos del problema. La empresa establece que toda máquina que tenga 6 años de edad
debe reemplazarse. El costo de una maquina nueva es $100,000.
Tabla 5.1.
Años con relación a sus utilidades,
costos y valor de rescate
12
Programación dinámica
Figura 5.9
Representación de la edad
de la maquina en función
del año de decisión, en el
ejemplo 5.2.1-2
La red indica que al comenzar el año 2, las edades posibles de las maquinas son de 1 4
años.
Para el comienzo del año 3, las antigüedades posibles son 1, 2 y 5 años, y para el
comienzo del año 4, las antigüedades posibles son 1, 2, 3 y 6 años.
La solución de la red de la figura 5.9 equivale a determinar la ruta más larga, del inicio
del año 1 al final del año 4. Se iniciara la forma tabular para resolver el problema. Todos
los valores son en miles de $. Nótese que si se reemplaza una máquina en el año 4 (es
decir, al final del horizonte de planeación) los ingresos incluirán el valor de
recuperación, s(t), de la máquina reemplazada y el valor de recuperación, s(1) de la
máquina de repuesto.
13
Programación dinámica
La figura 5.10 resume el orden en el cual se obtiene la solución óptima. Al iniciar el año
1, la decisión optima para t=3 es reemplazar la maquina. Así, la máquina nueva tendrá
1 año al iniciar el año 2, y t=1 al iniciar el año 2 determina conservarla o reemplazarla.
Si se reemplaza, la nueva máquina tendrá 1 año al inicial el año 3; en caso contrario, la
14
Programación dinámica
maquina conservada tendrá 2 años. El proceso se continúa de esta forma hasta llegar
al año 4.
Figura 5.10
Las políticas alternativas óptimas empezando en el año 1 son (R, K, K, R) y (R, R, K, K). El costo total
es de 55,300 dólares.
15
Programación dinámica
Es una variación del juego de la ruleta rusa, se hace girar una rueda con marcas de n
números consecutivos: 1 a n, en su superficie. La probabilidad de que la rueda se
detenga en el número i después de un giro es pi. Un jugador paga $x por el privilegio de
hacer girar la rueda un máximo 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 programación dinámica 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 más o se termina el
juego
3. El estado j del sistema en la etapa i es el número que se obtuvo la última vez que
se giró la rueda, el cual está entre 1 y n
Sea
fi(j) = Ingreso máximo 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
fi j max termina
pk if1 k , si
nk 1
continúa
Entonces, la ecuación recursiva se puede escribir como sigue:
Los cálculos 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:
Rn f1 0 x 16
Programación dinámica
Ejemplo 5.5-2
Supongamos que la ruleta está marcada con los números 1 a 5 y que las probabilidades
de que se detenga en cada número son p1 = 0.30, p2 = 0.25, p3 = 0.20, p4 = 0.15, p5 =
0.10.
Etapa 5 f5(j) = 2j
Resultado de
la vuelta 4 Solución óptima
j f5(j) Decisión
1 2 Terminar
2 4 Terminar
3 6 Terminar
4 8 Terminar
5 10 Terminar
= máx.{2j, p1f5 (1)+ p2f5(2)+ p3f5 (3)+ p4f5 (4)+ p5f5 (5)}
= máx.{2j,5}
Resultado de
la vuelta 4 Rendimiento esperado Solución óptima
1 2 5 5 Girar
17
Programación dinámica
2 4 5 5 Girar
3 6 5 6 Terminar
4 8 5 8 Terminar
5 10 5 10 Terminar
Etapa 3
f3(j) = máx.{2j, ∑ (pkf4(k))}
= máx.{2j, p1f4 (1)+ p2f4(2)+ p3f4 (3)+ p4f4 (4)+ p5f4 (5)}
= máx.{2j,0.3x5 + 0.25x5 + 0.2x6 + 0.15x8 + 0.1x10}
= máx.{2j,6.15}
Resultado de la
vuelta 3 Rendimiento esperado Solución óptima
4 8 6.15 8 Terminar
5 10 6.15 10 Terminar
Etapa 2
f2(j) = máx.{2j, ∑ (pkf3(k))}
= máx.{2j, p1f3 (1)+ p2f3(2)+ p3f3 (3)+ p4f3 (4)+ p5f3 (5)}
= máx.{2j,0.3x6.15 + 0.25x6.15 + 0.2x6.15 + 0.15x8 + 0.1x10}
= máx.{2j,6.8125}
18
Programación dinámica
Resultado de
la vuelta 3 Rendimiento esperado Solución óptima
4 8 6.8125 8 Terminar
5 10 6.8125 10 Terminar
19
Programación dinámica
Referencias Bibliográficas
Domínguez, A. (Noviembre de 2000). Programación dinámica. Recuperado el
Noviembre de 2012, de http://www.slideshare.net/Alexdfar/programacin-
dinmica-5688350
20