PROGRAMACIÓN
DINÁMICA
Optimización en Ingeniería II
Ing. Laura Bazán Díaz
Introducción
La programación dinámica se utiliza para resolver
problemas donde se debe tomar decisiones interrelacionadas.
La formulación matemática de la programación dinámica
no es estándar, ya que las ecuaciones se derivan de las condiciones individuales de los problemas.
El problema de la diligencia
Un cazafortunas desea ir de la ciudad A a la ciudad J en
una diligencia, y quiere viajar de la forma más segura posible. Tiene múltiples opciones para viajar a través del territorio. Conoce la posibilidad de adquirir un seguro de vida como pasajero de la diligencia. Los costos de la póliza estándar Cij se muestran en las siguientes tablas:
E F G H I
B C D B 7 4 6 E 1 4 J A 2 4 3 C 3 2 4 F 6 3 H 3
D 4 1 5 G 3 3 I 4
El problema de la diligencia
A B C D E F G H I J¿Cuál es la ruta que minimiza el costo
total de la póliza de seguro?
Algunas alternativas de solución:
1. Enumeración exhaustiva: enumerar todas las rutas posibles, calcular su costo y elegir la de menor valor. En total son 18.
2. Elegir la ruta más barata en cada etapa. Esta solución no conduce al óptimo global. Un pequeño sacrificio en una etapa puede permitir mayores ahorros más adelante.
3. PROGRAMACIÓN DINÁMICA: Un problema completo es desagregado en problemas simples que se resuelven etapa por etapa.
En el caso de la diligencia un problema simple sería
pensar qué pasaría si al viajero solo le faltara una jornada de viaje.
Problema de la diligencia
Por programación dinámica, la solución sería entonces ir
desde el estado actual (cualquiera que sea) y llegar a su destino final (estado J) al costo Cij.
Se hace lo mismo para cada jornada (etapa),
ensanchando el problema. Así encontramos la solución óptima del lugar al que debe dirigirse teniendo en cuenta la información de la iteración anterior.
Formulación
Sea Xn (n=1, 2, 3 y 4) las variables que representan el
destino inmediato en la etapa n.
Luego la ruta seleccionada será:
A X 1 X2 X3 X4 Donde X4=J.
Sea fn (S, Xn) el costo total de la mejor política global
para las etapas restantes, dado que el agente se encuentra en el estado S, listo para iniciar la etapa N y se dirige a Xn como destino inmediato.
Dados S y n, sea Xn* el valor de Xn (no necesariamente
único), que minimiza fn (S, Xn), y sea fn*(S) el valor
mínimo correspondiente de fn (S, Xn) entonces: 7
Formulación
Costo Mínimo costo
fn(S, Xn) = inmediato + futuro (etapa (etapa n) n+1 en adelante) = CS, Xn + fn+1*(X
n) Costos por ir Costo óptimo de la ciudad i acumulado al destino j
fn*(S)= Mín
Procedimiento de solución hacia atrás
Etapa n=4
Como el destino final (estado J) se alcanza al terminar la
etapa 4, entonces f5*(J)=0.
El objetivo es hallar f1*(A) y su ruta correspondiente.
Cuando el cazafortunas tiene solo una etapa por recorrer
(n=4), su ruta de ahí en adelante, estará determinada por el estado actual (H o I) y su detino final X4= J.
La ruta será: S J donde S= H ó I
Luego f4*(S)= CS, J + f5*(J) = CS, J f4(H) = CH,J = 3 f4(I) = CI,J = 4 S f4*(S) X4* H 3 J I 4 J 9
Procedimiento de solución hacia atrás
Etapa n=3
El cazafortunas tiene dos etapas por recorrer (n=3),
Suponga que sale de E.
+ f4*(H)=f3(E) = C E,H + f4*(H) =1+3=4 + f4*(I)=f3(E) = C E,I + f4*(I) =4+4=8
Luego f3*(E)= 4 y X3*=E . En general para la etapa 3 se
tiene: X3 S f3*(S, X3)=CS,X3+f4 *(X 3) f 3*(S) X3* H I E 4 8 4 H F 9 7 7 I G 6 7 6 H E H I
Procedimiento de solución hacia atrás
Etapa n=2
En la segunda etapa, el cazafortunas tiene 3 jornadas por
recorrer (n=2). Suponga que sale de C.
+ f3*(E)=f2(C) = C C,E + f3*(E) =3+4=7 + f3*(F)=f2(C) = C C,F + f3*(F) =2+7=9 + f3*(G)=f2(C) = C C,G + f3*(G) =4+6=10
Luego f2*(C)= 7 y X2*=E . En general para la etapa 2 se
tiene: X2 S f2*(S, X2)=CS,X2+f3 *(X 2) f2*(S) X2* E F G B 11 11 12 11 E ó F C 7 9 10 7 E D 8 8 11 8 E ó F C E F G 11
Procedimiento de solución hacia atrás
Etapa n=1
En la primera etapa, el cazafortunas tiene todas las jornadas
por recorrer (n=1). Necesariamente debe salir de A.
+ f2*(B)=f1(A) = C A,B + f2*(B) =2+11=13 + f2*(C)=f1(A) = C A,C + f2*(C) =4+7=11 + f2*(D)=f1(A) = C A,D + f2*(D) =3+8=11
Luego f1*(A)= 11 y X1*=C ó D . Veamos:
X1 S f2*(S, X2)=CS,X2+f3 *(X 2) f2*(S) X2* B C D A 13 11 11 11 C ó D A B C D
Solución
Podemos apreciar que existen 3 rutas óptimas.
A C D E F H I J 4 3 3 4 1 1 3 3 4 13
Características de la
programación Dinámica
1. EL problema se puede dividir por etapas, que requieren una política de decisión en cada una de ellas.
2. Cada etapa tiene un cierto número de estados asociados a su inicio. (Estados son las diferentes 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 pretende hallar la política óptima para el problema completo. Esto quiere decir, la política a emplear desde cualquier posible estado del problema.
Características de la
programación Dinámica
5. Dado el estado actual, la política óptima desde este estado es independiente de las políticas adoptadas en las etapas anteriores. (La solución óptima depende únicamente del estado actual y no de cómo se llegó allí).
6. El procedimiento de la solución termina cuando se obtiene la política óptima de la última etapa.
7. Siempre se dispone de una relación recursiva, esto es lo que permite trabajar las decisiones interrelacionadas. La relación recursiva será:
fn*(Sn)= Max Xn {fn(S,Xn)} o también fn*(Sn)= Mín Xn {fn(S,Xn)}
N: número de etapas
n: etiqueta para la etapa actual (1,2, …, N) Sn: Estado actual para la etapa n.
Xn: Variable de decisión para la etapa n.
8. Cuando se tiene una relación recursiva como la de la función, el procedimiento de solución “hacia atrás” inicia en la última etapa y se mueve hacia la primera, etapa por etapa.
Xn*: Valor Óptimo de Xn dado Sn.
Xn S fn*(S, Xn)=CS,Xn+fn+1 *(X N) fn*(S) Xn*
Características de la
programación Dinámica
16Ejemplo
Un barco de 4 toneladas puede cargarse con uno o
más de tres artículos. La siguiente tabla da el peso
unitario wi en toneladas y el ingreso unitario en miles
de dólares , ri para el artículo i. El objetivo es
determinar la cantidad de unidades de cada artículo
que maximizará el rendimiento total.
Articulo i wi ri
1 2 31 2 3 47 3 1 14
ETAPA 3
Como el peso unitario wi y el peso máximo W son enteros, el estado xi asume solo valores enteros.
ETAPA 3
El peso exacto a ser asignado a la etapa 3 (artículo 3) no se
conoce con anticipación pero puedo suponer
uno de los valores 0, 1, 2, 3 y 4 (porque W=4 toneladas y w3=1.
Un valor de m3 es factible solo si
w3*m3<=x3. Por lo
tanto se excluyen todos los valores no factibles (con w3*m3>x3). El ingreso para el artículo 3 es 14m3. En
consecuencia, la
ecuación recursiva para la etapa 3 es:
f3(x3)= máx 14m3, para m3=0,1,..4