Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2.3 Programación Dinámica
2.3 Programación Dinámica
max 𝑉 = 𝑓𝑡 𝑢𝑡 , 𝑦𝑡 + 𝑍 𝑦𝑇+1
𝑡=0
𝑠. 𝑎. 𝑦𝑡+1 ≤ 𝑔𝑡 𝑢𝑡 , 𝑦𝑡 ∀𝑡 = 0,1, … , 𝑇
𝑦0 𝑑𝑎𝑑𝑜
𝑢𝑡 ≥ 0, 𝑦𝑡+1 ≥ 0
PROGRAMACIÓN DINÁMICA 2
El problema
PROGRAMACIÓN DINÁMICA 3
Optimización dinámica empleando las condiciones KKT
PROGRAMACIÓN DINÁMICA 4
Optimización dinámica empleando las condiciones KKT
𝐿 = 𝑓𝑡 𝑢𝑡 , 𝑦𝑡 + 𝑍 𝑦𝑇+1 + 𝜆𝑡 𝑔𝑡 𝑢𝑡 , 𝑦𝑡 − 𝑦𝑡+1
𝑡=0 𝑡=0
Considerando las restricciones de desigualdad y no negatividad,
es necesario que se cumpla ∀𝑡 = 0,1, … , 𝑇:
𝜕𝐿 𝜕𝐿
a) 𝜕𝑢𝑡
≤0 𝑢𝑡
𝜕𝑢𝑡
=0 𝑢𝑡 ≥ 0
𝜕𝐿 𝜕𝐿
b) 𝜕𝑦𝑡+1
≤0 𝑦𝑡+1
𝜕𝑦𝑡+1
=0 𝑦𝑡+1 ≥ 0
𝜕𝐿 𝜕𝐿
c) 𝜕𝜆𝑡
≥0 𝜆𝑡
𝜕𝜆𝑡
=0 𝜆𝑡 ≥ 0
PROGRAMACIÓN DINÁMICA 5
Optimización dinámica empleando las condiciones KKT
𝐿 = 𝑓𝑡 𝑢𝑡 , 𝑦𝑡 + 𝑍 𝑦𝑇+1 + 𝜆𝑡 𝑔𝑡 𝑢𝑡 , 𝑦𝑡 − 𝑦𝑡+1
𝑡=0 𝑡=0
𝜕𝐿 𝜕𝑓𝑡 𝜕𝑔𝑡
𝑎) = + 𝜆𝑡 =0 ∀𝑡 = 0,1, … , 𝑇
𝜕𝑢𝑡 𝜕𝑢𝑡 𝜕𝑢𝑡
𝜕𝐿
b.1) = 𝑍 ′ 𝑦𝑇+1 − 𝜆 𝑇 = 0
𝜕𝑦𝑇+1
𝜕𝐿 𝜕𝑓𝑡+1 𝜕𝑔𝑡+1
b.2) = + 𝜆𝑡+1 − 𝜆𝑡 = 0 ∀𝑡 = 0,1, … , 𝑇 − 1
𝜕𝑦𝑡+1 𝜕𝑦𝑡+1 𝜕𝑦𝑡+1
𝜕𝐿
c) = 𝑔𝑡 𝑢𝑡 , 𝑦𝑡 − 𝑦𝑡+1 = 0 ∀𝑡 = 0,1, … , 𝑇
𝜕𝜆𝑡
PROGRAMACIÓN DINÁMICA 6
Optimización dinámica empleando las condiciones KKT
PROGRAMACIÓN DINÁMICA 7
Optimización dinámica empleando las condiciones KKT
PROGRAMACIÓN DINÁMICA 8
Optimización dinámica empleando las condiciones KKT
𝑦0 → 𝑢0 = ℎ0 𝑦0 → 𝑦1 = 𝑔0 𝑢0 , 𝑦0
𝑦1 → 𝑢1 = ℎ1 𝑦1 → 𝑦2 = 𝑔1 𝑢1 , 𝑦1
⋮
𝑦𝑇 → 𝑢 𝑇 = ℎ 𝑇 𝑦𝑇 → 𝑦𝑇+1 = 𝑔𝑇 𝑢 𝑇 , 𝑦𝑇
PROGRAMACIÓN DINÁMICA 9
Optimización dinámica empleando las condiciones KKT
PROGRAMACIÓN DINÁMICA 10
Optimización dinámica empleando las condiciones KKT
𝜕𝑓𝑡 𝜕𝑓𝑡+1
𝜕𝑢𝑡 𝜕𝑓𝑡+1 𝜕𝑢𝑡+1 𝜕𝑔𝑡+1
− = −
𝜕𝑔𝑡 𝜕𝑦𝑡+1 𝜕𝑔𝑡+1 𝜕𝑦𝑡+1
𝜕𝑢𝑡 𝜕𝑢𝑡+1
𝜕𝑓𝑡+1
𝜕𝑓𝑡 𝜕𝑔𝑡 𝜕𝑓𝑡+1 𝜕𝑢𝑡+1 𝜕𝑔𝑡+1
+ − =0
𝜕𝑢𝑡 𝜕𝑢𝑡 𝜕𝑦𝑡+1 𝜕𝑔𝑡+1 𝜕𝑦𝑡+1
𝜕𝑢𝑡+1
PROGRAMACIÓN DINÁMICA 11
Optimización dinámica empleando las condiciones KKT
Ejemplo 1:
𝑇
max 𝛽𝑡 𝑈 𝐶𝑡
𝑡=0
𝑠. 𝑎. 𝑆𝑡+1 ≤ 𝛼 𝑆𝑡 − 𝐶𝑡
𝑆0 𝑑𝑎𝑑𝑜, 𝐶𝑡 ≥ 0, 𝑆𝑡+1 ≥ 0
1
𝛽= ,𝛼 = 1 + r
1+𝜌
a) Obtenga e interprete la ecuación de Euler.
b) Si 𝑈 𝐶𝑡 = ln 𝐶𝑡 , obtenga la función de política general para 𝑡.
PROGRAMACIÓN DINÁMICA 12
Optimización dinámica empleando las condiciones KKT
Ejemplo 2:
𝑇
max 𝛽𝑡 𝑢 𝑐𝑡
𝑡=0
𝑠. 𝑎. 𝑘𝑡+1 ≤ 𝑓 𝑘𝑡 − 𝑐𝑡
𝑘0 𝑑𝑎𝑑𝑜, 𝑐𝑡 ≥ 0, 𝑘𝑡+1 ≥ 0
PROGRAMACIÓN DINÁMICA 13
Programación dinámica con horizonte temporal finito
𝑇
max 𝑉 = 𝑓𝑡 𝑢𝑡 , 𝑦𝑡 + 𝑍 𝑦𝑇+1
𝑡=0
𝑠. 𝑎. 𝑦𝑡+1 = 𝑔𝑡 𝑢𝑡 , 𝑦𝑡 ∀𝑡 = 0,1, … , 𝑇
𝑦0 𝑑𝑎𝑑𝑜
PROGRAMACIÓN DINÁMICA 14
Programación dinámica con horizonte temporal finito
PROGRAMACIÓN DINÁMICA 15
Programación dinámica con horizonte temporal finito
• Principio de optimalidad:
La secuencia de variables de control 𝑢0∗ , 𝑢1∗ , … , 𝑢∗𝑇 es
una solución óptima del problema de programación
∗
dinámica si y solo si la secuencia 𝑢𝑡∗ , 𝑢𝑡+1 , … , 𝑢∗𝑇
resuelve el siguiente problema, ∀𝑡 = 0,1, … 𝑇.
𝑇
max 𝑉 = 𝑓𝜏 𝑢𝜏 , 𝑦𝜏 + 𝑍 𝑦𝑇+1
𝜏=𝑡
𝑠. 𝑎. 𝑦𝜏+1 = 𝑔𝜏 𝑢𝜏 , 𝑦𝜏 ∀𝜏 = 𝑡, 𝑡 + 1, … , 𝑇
𝑦𝑡 𝑑𝑎𝑑𝑜, 𝑦𝑇+1 𝑑𝑎𝑑𝑜
PROGRAMACIÓN DINÁMICA 16
Programación dinámica con horizonte temporal finito
• Principio de optimalidad:
En otras palabras, la secuencia de variables de control
será óptima si y solo si dicha secuencia es óptima por
tramos.
PROGRAMACIÓN DINÁMICA 17
Programación dinámica con horizonte temporal finito
La ecuación de Bellman:
• El problema puede ser planteado a través de una
relación recursiva denominada ecuación de Bellman.
𝑠. 𝑎. 𝑦𝑡+1 = 𝑔𝑡 𝑢𝑡 , 𝑦𝑡 ∀𝑡 = 0,1, … , 𝑇
𝑉𝑡 𝑦𝑡 = max 𝑓𝑡 𝑢𝑡 , 𝑦𝑡 + 𝑉𝑡+1
𝑢𝑡
𝑔𝑡 𝑢𝑡 , 𝑦𝑡
PROGRAMACIÓN DINÁMICA 19
Programación dinámica con horizonte temporal finito
La ecuación de Benveniste y Scheinkman:
• La función valor puede escribirse en términos de 𝑦𝑡 ,
utilizando la función de política 𝑢𝑡 = ℎ 𝑦𝑡 .
𝑉𝑡 𝑦𝑡 = 𝑓𝑡 ℎ 𝑦𝑡 , 𝑦𝑡 + 𝑉𝑡+1 𝑔𝑡 ℎ 𝑦𝑡 , 𝑦𝑡
• A partir del teorema de la envolvente, se cumple:
′
𝜕𝑓𝑡 ′
𝜕𝑔𝑡
𝑉𝑡 = + 𝑉𝑡+1 … (2)
𝜕𝑦𝑡 𝜕𝑦𝑡
• Las ecuaciones (1) y (2) permiten obtener la ecuación
de Euler.
PROGRAMACIÓN DINÁMICA 20
Programación dinámica con horizonte temporal finito
Ejemplo:
𝑇
max 𝛽𝑡 𝑢 𝑐𝑡
𝑡=0
𝑠. 𝑎. 𝑘𝑡+1 = 𝑓 𝑘𝑡 − 𝑐𝑡
𝑘0 𝑑𝑎𝑑𝑜
PROGRAMACIÓN DINÁMICA 21