Documente Academic
Documente Profesional
Documente Cultură
Programación Dinámica
El término proceso de decisiones secuenciales describe una actividad que involucra una
secuencia de decisiones para cumplir un determinado fin. Programación Dinámica es la
colección de herramientas matemáticas para el análisis de procesos de decisiones
secuenciales determinando los valores óptimos de dichas decisiones.
Aplicaciones :
Determinación de políticas de inventarios
Operación de reservorios
Selección de inversiones
Determinación de políticas de expansión de capacidad
Problema de caminos más cortos
Ejemplo: En la siguiente red hallar un camino más corto del nodo 1 al nodo 9
12 5
2 7
4 7
1 6 15
3
1 4 7
10
3 8 9
2 3
7 15
3 4
1
Sean
t i J = longitud del arco ( i, j )
f i = la mínima distancia de i a 9 (longitud de un camino más corto de i a 9)
Entonces,
t i J + f J= longitud total del camino de i a 9 que se inicia en el arco ( i, j ) y
luego toma el camino más corto de j a 9
fi < t iJ + fJ i≠9
Por lo tanto,
f i = min t iJ + fJ i ≠ 9, puesto que un camino más corto de i a 9
j pasa por algún arco ( i, j )
Entonces, como f 9 = 0
f 8 = 10 + f 9 = 10
f7 = 3 + f9 =3
f 6 = min { 7 + f 8 , 15 + f 9 } = min { 7 + 10 , 15 + 0 } = 15
… … ..
f 1 = min { 1 + f 2 , 2 + f 3 } = min { 1 + 20 , 2 + 17 } = 19
El problema de caminos más cortos y una gran variedad de otros procesos de decisiones
secuenciales comparten varias propiedades :
2. La solución óptima del problema de optimización está caracterizada por una ecuación
recursiva.
4.2 “ La mejor ruta desde cualquier nodo z al nodo final depende solo del nodo z y no
de la ruta usada para llegar a z ”.
2
4.3 “ Una ruta óptima tiene la propiedad de que cualquiera sea el nodo inicial y arco
inicial, los arcos restantes deben constituir una ruta óptima con respecto al primer
nodo alcanzado después del nodo inicial “.
1. Estado
Notación :
S = vector de estado
= ( s1, s2, … ., sn)
si = variable de estado i
E = conjunto de todos los estados
2. Decisión
3. Función de transición
4. Generación de estados
3
A cada estado se le asocia un subproblema del mismo tipo que el problema original pero
de menor tamaño. La función de valor óptimo es la regla que asigna al estado S el valor
óptimo de la función objetivo del subproblema asociado a él. Dicha función es denotada
como f (S).
Es la regla que asigna la mejor primera decisión a cada subproblema. Se denota por P
(S) .
7. Función de retorno
Entonces
R( S, d ) = valor de la ruta desd S al estado final dada la decisión d y la ruta
óptima desde Sn.
= a d( S ) + f (Sn)
8. Ecuación recursiva
f ( S ) = min { R(S,d) }
d∈ D(S)
9. Condición de contorno
Valor o valores de la función de valor optimo f que son obvios o que no requieren cálculo.
4
Estado actual Decisión Nuevo estado
S d Sn
-------------------------------------------------------------------------
1 2 2
3 3
-------------------------------------------------------------------------
2 5 5
9 9
------------------------------------------------------------------------
3 4 4
6 6
-------------------------------------------------------------------------
4 5 5
6 6
7 7
8 8
-------------------------------------------------------------------------
5 7 7
-------------------------------------------------------------------------
6 8 8
9 9
-------------------------------------------------------------------------
7 9 9
-------------------------------------------------------------------------
8 9 9
8 9 9 10 0 10 10 9_
7 9 9 3 0 3 3 9_
6 8 8 7 10 17 15 9
9 9 15 0 15 __
5 7 7 7 3 10 10 7_
4 5 5 4 10 14 14 5
7 7 15 3 18
8 8 7 10 17
6 6 3 15 18 __
3 4 4 3 14 17 17 4
6 6 4 15 19 __
2 5 5 12 10 22 20 4
4 4 6 14 20 __
1 2 2 1 20 21 19 3
3 3 2 17 19 __
6
El problema de la alforja
Se tienen N objetos de peso Pi y valor V i. Se desea escoger los objetos a llevar en una
alforja que puede llevar como máximo un peso W. La elección de los objetos debe
maximizar el valor total de la carga.
Max Σ Vi XI
s.a.
Σ Pi Xi < W
Xi = 0, 1 i = 1 ,… , N
1. Estado :
S = ( s1, s2 )
s1 = el objeto que se va a decidir llevar o no
s2 = capacidad disponible de la alforja
2. Decisión:
d = llevar o no llevar el objeto s1.
= 1 si llevar el objeto s1
0 no llevar el objeto s1
D(S) = { 0, 1}
3. Transición :
sn1 = s1 + 1
sn2 = s2 – Ps1 * d
4. Generación de estados :
Estado inicial : S = (1,W)
Restricciones : sn1 < N, sn2 > 0
7. Función de retorno:
a d( S ) = beneficio inmediato que se obtiene al tomar la decisión d en el
estado S.
= Vs1 d
7
R(S, d) = maximo beneficio total que se obtiene al tomar la decisión d en el
estado S y desde el nuevo estado se toman las mejores decisiones.
= Vs1 * d + f ( Sn )
f ( Sn ) es el beneficio futuro que se obtiene al tomar la decisión d en el
estado S
8. Ecuación recursiva :
f ( S ) = max { R(S,d) }
d∈ D(S)
= máxima utilidad a obtener con los artículos desde el s1, partiendo con
una capacidad disponible s2.
9. Condiciones de contorno
0 si s2 < PN
f( N, s2) =
VN si s2 ≥ PN
Solución :
Conjunto de estados : no
(3,1) (4, 1)
si
(2, 7)
si no si (4, 0)
(3, 7)
(1,10) no (4, 7)
no (3, 4) no (4, 4)
si
(2,10) (4, 3)
no si
(3,10)
no (4,10)
8
s1 s2 d a d(s) sn1 sn2 f(Sn) R(S,d) f(S) P(S)
4 0,1,3,4 0 0 0
4 7,10 1 15 1
3 1 0 0 4 1 0 0 0 0
3 7 0 0 4 7 15 15 19 1
1 19 4 0 0 19
3 4 0 0 4 4 0 0 0 0
3 10 0 0 4 10 15 15 19 1
1 19 4 3 0 19
2 7 0 0 3 7 19 19 19 0
1 16 3 1 0 16
2 10 0 0 3 10 19 19 19 0
1 16 3 4 0 16
1 10 0 0 2 10 19 19 26 1
1 7 2 7 19 26
1. Estado :
s1 = objeto del cual se va a decidir cuántas unidades a cargar
s2 = capacidad disponible de la alforja
2. Decisión :
d = número de unidades del objeto s1 a cargar
D(S) = { 0,… .., s2 / Ps1 }
9. Condición de contorno
f(N,s2) = VN s2 / PN
9
II. Problema de la carga de bultos con stock
Difiere del problema de la carga de bultos en que cada objeto existe solo en una cantidad
limitada, Sti.
2. Decisión :
d = número de unidades del objeto s1 a cargar
D(S) = { 0,… .., min ( Sts1, s2/Ps1 ) }
9. Condición de contorno
f(N,s2) = VN min ( StN, s2/PN )
2. Decisión :
d = número de unidades del objeto s1 a cargar
D(S) = { Rmins1,… .., min ( Rmaxs1, Sts1, s2/Ps1 ) }
10
El problema de la asignación de recursos
Max Σ Ui ( X I )
s.a.
Σ Xi < X
Xi > 0 i = 1 ,… , N
1. Estado :
S = ( s1, s2 )
s1 = la actividad a la cual se asignará el recurso
s2 = cantidad aún disponible del recurso
2. Decisión:
d = cantidad del recurso a asignar a la actividad s1.
D(S) = { 0, 1, … , s2 }
3. Transición :
sn1 = s1 + 1
sn2 = s2 – d
4. Generación de estados :
Estado inicial : S = ( 1, X )
f (s1,s2) = máxima utilidad total que puede obtenerse al asignar s2 unidades del
recurso entre las actividades s1 hasta N.
7. Función de retorno:
11
a d( S ) = beneficio inmediato que se obtiene al asignar d unidades del
recurso a la actividad s1.
= Us1 ( d )
8. Ecuación recursiva :
f ( S ) = max { R(S,d) }
d∈ D(S)
= máxima utilidad total a obtener asignando las s2 unidades disponible
del recurso entre las actividades desde s1 hasta N.
9. Condiciones de contorno
f ( N, s2) = UN ( s2 )
Proyecto 0 1 2 3 4 5 6 7 8
1 0 3 7 10 12 13 14 14 14
2 0 1 2 4 8 13 17 19 20
3 0 2 4 6 8 10 12 14 16
4 0 1 3 6 9 12 14 16 17
12
El problema de producción e inventario
Min Σ [ CK ( XK ) + HK ( IK ) ]
s.a.
I1 = IN+1 = 0
IK + XK = DK + IK+1 k = 1,… , N
IK < Q k = 1,… ,N
X K , IK > 0 k = 1 ,… , N
1. Estado :
S = ( s1, s2 )
s1 = periodo actual s1 ∈ 1,… ,N
s2 = nivel del inventario al inicio del periodo s1 s2 ∈ 0,… ,Q
2. Decisión:
d = nivel de producción del periodo s1.
N
D(S) = { max{0, Ds1 – s2], … , min { Ds1 – s2 + Q, ∑ Di - s2 } }
i=s1
3. Función de transición :
sn1 = s1 + 1
sn2 = s2 + d - Ds1
4. Generación de estados :
Estado inicial : S = ( 1, 0 )
13
Subproblema asociado a S = (s1, s2) : Determinar el programa óptimo de producción
desde el periodo s1 hasta el N, partiendo de un inventario de s2 unidades.
7.Función de retorno:
a d( S ) = costo inmediato en que se incurre al producir d unidades en el
periodo s1 y dado que hay s2 unidades en inventario al inicio de
ese periodo.
= Hs1 ( s2 ) + Cs1 ( d )
8. Ecuación recursiva :
f ( S ) = min { R(S,d) }
d∈ D(S)
9. Condiciones de contorno
f( N, s2) = HN ( s2 ) + CN ( DN – s2 )
14
Problema del Reemplazo de Equipos
1. Estado :
S = ( s1, s2 )
s1 = año que comienza s1 ∈ 1 ,… , N
s2 = edad del equipo al inicio del periodo s1, s2 ∈ 1 ,… , N+A-1
2. Decisión:
d = comprar un equipo nuevo o no.
D(S) = { 0, 1 }
3. Función de transición :
sn1 = s1 + 1
sn2 = 1 si d = 1
s2 + 1 si d = 0
4. Generación de estados :
Estado inicial : S = ( 1, A )
7. Función de retorno:
15
a d( S ) = costo inmediato en que se incurre al tomar la decisión d sobre el
equipo que se posee a inicios del año s1 y que tiene s2 años de
antigüedad.
= c ( s2 ) si d = 0
p – t(s2) + c(0) si d = 1
8. Ecuación recursiva :
9. Condiciones de contorno
f( N+1, s2) = - V ( s2 )
i 0 1 2 3 4 5 6 7
c(i) 10 13 20 40 70 100 100
t(i) 32 21 11 5 0 0
v(i) 25 17 8 0 0 0 0
16
El problema de confiabilidad
Max Π[ RJ ( KJ ) ]
s.a.
Σ [ CJ ( KJ ) ] < C
KJ = 1, 2, 3 J = 1 ,2, 3
1. Estado :
S = ( s1, s2 )
s1 = componente sobre el cual se está decidiendo s1 ∈ 1, 2, 3
s2 = disponibilidad de capital
2. Decisión:
d = cantidad de unidades en paralelo a colocar en la componente s1.
D(S) = { 1, 2, 3 }
17
3. Función de transición :
sn1 = s1 + 1
sn2 = s2 - Cs1(d)
4. Generación de estados :
Estado inicial : S = ( 1, C )
7. Función de retorno:
a d( S ) = beneficio inmediato que se obtiene al colocar d unidades en
paralelo de la componente s1
= Rs1(d)
8.Ecuación recursiva :
f ( S ) = max { R(S,d) }
d∈ D(S)
9. Condiciones de contorno
f( 4, s2) = 1
18