Está en la página 1de 37

Introducción a la optimización dinámica

Aplicaciones económicas

María José Bianco

SECRETARÍA ACADÉMICA

Departamento Pedagógico de Matemática


Clase 3

“Yo estaba intrigado por la programación dinámica. Era claro para mí que no había una buena
oferta de un buen análisis allí. Además, pude ver muchas aplicaciones. Fue una elección clara.
Yo podría ser un intelectual tradicional, o un intelectual moderno utilizando los resultados de
mi investigación para los problemas de la sociedad contemporánea. Este era un camino
peligroso. O yo podría hacer demasiada investigación y poca aplicación o podía hacer poca
investigación y mucha aplicación. Yo tenía confianza de que podía hacer esta actividad
delicada, “pie a la mode””.
Richard E. Bellman
1952
CONTROL ÓPTIMO EN TIEMPO DISCRETO

El problema básico que vamos a estudiar es optimizar un problema donde las acciones
tomadas en un período afectan las decisiones óptimas que se tomarán en períodos futuros.

En problemas de programación dinámica un agente optimizador resuelve un problema de


optimización intertemporal. Él elige la secuencia de decisiones que maximiza la función
objetivo. Normalmente se denota al período donde se hizo toda la secuencia de decisiones
tiempo cero. Es importante notar que las decisiones con respecto a todos los períodos son
hechas en el tiempo cero, no sólo las decisiones con respecto al tiempo cero. Por eso se dice
que el agente optimizador elige una secuencia de decisiones, una para cada período.
Breve historia del control óptimo en tiempo discreto

Durante los años previos al estallido de la Segunda Guerra Mundial, Alemania, Inglaterra,
Estados Unidos y la U.R.S.S. formaron equipos de investigación, cuyos trabajos fueron la base
de muchos de los inventos que aparecieron en funcionamiento durante la guerra (el radar, por
ejemplo) y que abrieron las nuevas ramas de la matemática que se desarrollarían
enormemente después de 1945.

La primera gran disciplina que surgió a partir del abordaje matemático de los problemas
específicos de la guerra fue, seguramente, la Investigación Operativa. El término Operations
Research fue utilizado por primera vez en Inglaterra, en 1941. Las investigaciones realizadas en
los centros de Investigación Operativa de la Royal Air Force y otros organismos militares
británicos permitieron, entre otras cosas, incrementar la eficacia de la los patrullajes aéreos
en busca de submarinos alemanes, y consecuentemente, la cantidad de submarinos dañados o
hundidos.
Inmediatamente después de la guerra y con el comienzo de la Guerra Fría, las dos
superpotencias, EEUU y URSS incrementaron sus esfuerzos en utilizar matemáticos para
desarrollar estrategias de defensa. Por eso no es de extrañar que tanto matemáticos del este
como del oeste encontraran casi simultáneamente respuesta a los problemas que más tarde
se llamarían de control óptimo.

En Rusia entre tanto Pontryagin como ya vimos desarrollaba el principio del máximo
trabajando con un grupo de colaboradores para la Fuerza Aérea.

En EEUU, después de la Segunda Guerra Mundial, se creó RAND Corporation (Research and
Development) por la fuerza Aérea como una usina de investigación para las Fuerzas Armadas.
Alrededor de 1950 simultáneamente se encontraban trabajando: Magnus Hestenes (1906-
1991), Rufus Isaacs (1914-1981) y Richard Bellman (1920-1984).

Hestenes redactó dos investigaciones para RAND donde desarrolló una guía para el cómputo
numérico de las trayectorias de tiempo mínimo para aeronaves en los comienzos de las
computadoras digitales.
Entre estos nuevos temas se encontraba la teoría de los Procesos de Decisión en Múltiples
Pasos, que Richard Bellman abordó alrededor de 1952, y para los cuales fue pensada
originalmente la Programación Dinámica.
"¿De dónde vino el nombre, programación dinámica? La década de 1950 no fueron buenos
años para la investigación matemática. Tuvimos un señor muy interesante en Washington
llamado Wilson. Era Secretario de Defensa y tenía un miedo y un odio patológico de la
palabra “investigación”. No estoy usando el término a la ligera sino que lo estoy usando
precisamente. Su rostro se teñía, se volvía rojo y se ponía violento si las personas utilizaban el
término “investigación” en su presencia. Te puedes imaginar cómo se sentía, pues, sobre el
término “matemática”. La RAND Corporation fue empleada por la Fuerza Aérea y la Fuerza
Aérea tenía Wilson como su jefe, esencialmente. Por lo tanto, me sentí que tenía que hacer
algo para proteger de Wilson y la Fuerza Aérea el hecho de que yo estaba en realidad
haciendo matemáticas dentro de la RAND Corporation. ¿Qué título, qué nombre, podía elegir?
En primer lugar, yo estaba interesado en la planificación, en la toma de decisiones, en el
pensamiento. Pero “planificación” no es una buena palabra por varias razones. Decidí por lo
tanto, utilizar la palabra "programación". Yo quería transmitir la idea de que esto era
dinámico, que esto era en varias etapas, esto variaba en el tiempo. Pensé, vamos a matar dos
pájaros de un tiro. Tomemos una palabra que tiene un significado absolutamente preciso
como “dinámico”, en el sentido físico clásico. Además tiene una propiedad muy interesante
como un adjetivo y es imposible usar la palabra dinámico, en un sentido peyorativo. Intenta
pensar en una combinación que posiblemente le dé un sentido peyorativo. Es imposible. Por
lo tanto, pensé “programación dinámica” era un buen nombre. Era algo que ni siquiera un
Congresista podría objetar. Así que lo utilicé como un paraguas para mis actividades".
El problema general

El problema general al que nos enfrentamos es:


max V ( x0 , x1 ,K, xT +1 , u1 ,K, uT )
 ut

( P) sujeto a xt +1 = g ( xt , u t ) para t = 0,K, T


con x0 dado

xt = variable de estado
u t = variable control
g (•) = ecuación de movimiento o transición (diferenciable)
V = funcional objetivo (diferenciable)
Para resolver este problema utilizando programación dinámica vamos a tener que introducir
hipótesis fuertes.

a) Propiedad de aditividad: El funcional objetivo V es la suma de las funciones de retorno


f ( xt , u t ) en los T períodos, es decir:
T
V = ∑ f ( xt , u t ) + S ( xT +1 )
t =0
donde S es una función diferenciable evaluada al final del programa, donde ya no se toman
más decisiones.

b) Propiedad de separabilidad: Para todo t, las funciones de retorno f y de transición g


dependen de t y de los valores contemporáneos de las variables control y estado, pero no de
sus valores pasados o futuros.
Por lo tanto el problema (P) queda reformulado de la siguiente forma:
 T

max V = ∑ f ( xt , u t ) + S ( xT +1 )
ut
 t =0

( P) sujeto a xt +1 = g ( xt , u t ) para t = 0, K, T
con x 0 dado


Resolución por el método de los multiplicadores de Lagrange

La función de Lagrange correspondiente al problema (P) es:

T T
L = ∑ f ( xt , u t ) + S ( xT +1 ) + ∑ λt [g ( xt , u t ) − xt +1 ]
t =0 t =0

Las derivadas con respecto a ut


∂L ∂f ∂g
= + λt =0 ∀ t = 0,K , T
∂u t ∂u t ∂u t
Las derivadas con respecto a xt
∂L ∂f ∂g
= + λt +1 − λt = 0 ∀ t = 0, K , T − 1
∂xt +1 ∂xt +1 ∂xt +1
∂L ∂S
= − λT = 0 t =T
∂xT +1 ∂xT +1
Las derivadas con respecto a λ t

∂L
= g ( x t , u t ) − xt +1 = 0 ∀ t = 0, K , T
∂λ t
Ejemplo 1:
 2

 utmax V = ∑ − ( x 2
t + u 2
t ) − x 2
3
 t =0

sujeto a xt +1 = 2 xt + u t para t = 0,1,2


con x0 = 5


2 2
L = ∑ − ( x + u ) − x + ∑ λt [ 2 xt + u t − xt +1 ]
2
t
2
t
2
3
t =0 t =0

Desarrollando obtenemos:

L = − x 02 − u 02 − x12 − u12 − x 22 − u 22 − x32 + λ0 [2 x 0 + u 0 − x1 ] + λ1 [2 x1 + u1 − x 2 ] + λ 2 [2 x 2 + u 2 − x3 ]


Reemplazando x0 = 5 y derivando:
∂L ∂L ∂L
= −2u 0 + λ0 = 0 = −2 x1 + 2λ1 − λ0 = 0 = 2 + u 0 − x1 = 0
∂u 0 ∂x1 ∂λ 0
∂L ∂L ∂L
= −2u1 + λ1 = 0 = −2 x 2 + 2λ 2 − λ1 = 0 = 2 x1 + u1 − x 2 = 0
∂u1 ∂x 2 ∂λ1
∂L ∂L ∂L
= −2u 2 + λ 2 = 0 = −2 x 3 − λ 2 = 0 = 2 x 2 + u 2 − x3 = 0
∂u 2 ∂x3 ∂λ 2

Al resolver este sistema nos queda:


u 0 = −8 u1 = −3 u 2 = −1 x1 = 2 x2 = 1 x3 = 1
Ejemplo 2: Asignación de consumo y ahorro

Un individuo cuenta con un stock de ahorro s t . Cada período el agente retira de sus ahorros
un monto igual a c para destinarlo a bienes de consumo. El stock de ahorro remanente
t

( st − ct ) se deposita en un banco que pasa una tasa de interés constante r ( 0 < r < 1 ). De este
modo en el siguiente período el nuevo stock de ahorros será igual a (1 + r ) ( st − ct ) .
Esta operación se repita período a período hasta el momento T, cuando termina el horizonte
de optimización del individuo.
El comportamiento de los ahorros puede ser expresado de una manera simple a través de una
ecuación de movimiento:
st +1 = (1 + r ) (st − ct ) con t = 1, K , T
Dado un stock inicial de ahorros s y asumiendo que el ahorro en el último período es igual a
0

cero ( sT +1 = 0 ), el objetivo del individuo consiste en maximizar su bienestar intertemporal


hasta el período T, empleando una tasa de descuento β ( 0 < β < 1 ):
T
U = ∑ β t ln ct
t =0
Por lo tanto el problema que enfrenta el consumidor se resume del siguiente modo:
 T

max U = ∑ β t ln ct
ct
 t =0

sujeto a st +1 = α ( st − ct ) para t = 0,K , T con α = 1 + r


con s 0 dado

 sT +1 = 0

T T
L = ∑ β ln ct + ∑ λt [ α ( st − ct ) − st +1 ]
t

t =0 t =0

∂L β t
= − α λt = 0 ∀ t = 0, K , T
∂c t ct
∂L
= α λt +1 − λt = 0 ∀ t = 0, K , T − 1
∂s t +1
∂L
=0 t =T
∂sT +1
∂L
= α ( s t − c t ) − s t +1 = 0 ∀ t = 0, K , T
∂λ t
Al resolver las ecuaciones en diferencias obtenemos

t
1
λt = k1   ct =
1
(αβ )t st = k 2 α t +
1
(αβ )t
α  k1 α k1 α (1 − β )
Resolución utilizando programación dinámica. Horizonte temporal finito

La resolución del problema (P) a través de los multiplicadores de Lagrange, si bien es correcta,
no es la manera más eficiente de enfrentar el problema. En general, involucra cálculos
engorrosos para despejar las variables de control y de estado óptimas y puede llegar a hacerse
extremadamente largo si T es suficientemente grande.

Principio de optimalidad de Bellman


La secuencia de variables control u = (u 0 ,K , uT ) es óptima para el problema (P) sí y sólo sí u j
∗ ∗ ∗

con j = t , t + 1, t + 2, K , T resuelve el siguiente problema para todo t = 0, K , T :


 T

max Vt = ∑ f ( x j , u j ) + S ( xT +1 )
ut
 j =t

( Pt ) sujeto a x j +1 = g ( x j , u j ) para j = t , K, T

con xt dado

Aclaración: La esencia del principio de optimalidad puede resumirse en el siguiente esquema:
u 0∗ , u1∗ , u 2∗ ,K, u t∗ , u t∗+1 ,K, uT∗ −1 , uT∗
144 42444 3
B
144444 42444444 3
A

La secuencia de variables control u = (u 0 ,K , uT ) , perteneciente al conjunto A, es óptima para


∗ ∗ ∗

el problema (P) sí y sólo sí cualquier subconjunto de variables control (desde cualquier t hasta
T) como B también es óptima.

Observación: Si el problema (P) es de minimización, en el principio de optimalidad también se


minimiza el problema ( Pt ) .
El problema ( Pt ) del principio de optimalidad puede ser planteado en términos de una
relación recursiva:
Vt ( xt ) = max[ f ( xt , u t ) + Vt +1 ( xt +1 )]
 ut

( Pt ) sujeto a xt +1 = g ( xt , u t ) para t = 0,K, T


con xt dado


Donde la ecuación Vt ( xt ) = max


u
[ f (t , xt , ut ) + Vt +1 ( xt +1 )] se denomina ecuación de Bellman.
t

Observemos que en esta formulación del problema la maximización se realiza exclusivamente


con respecto a la variable control mientras la variable de estado se mantiene constante. En la
ecuación de Bellman, Vt representa la función de valor para el problema (P) en el período t.

El valor óptimo del problema (P) está dado por V0


Procedimiento paso a paso

Definimos VT +1 ( xT +1 ) = S ( xT +1 )

• Sea t = T . Debemos resolver el siguiente problema:


max f ( xT , uT ) + VT +1 ( xT +1 )

uT  f ( xT , u T ) + S ( g ( xT , u T ) )
sujeto a xT +1 = g ( xT , uT )
o equivalentemente (1) max
uT

Al derivar esta función con respecto a uT e igualarla a cero (condición de primer orden de

optimización libre) nos queda que uT = h( xT ) que es la llamada función de política.

Reemplazamos en (1) y llamamos:


VT ( xT ) = f ( xT , uT∗ ) + S ( g ( xT , uT∗ ) )
• Sea t = T − 1 . Debemos resolver el siguiente problema:
max f ( xT −1 , uT −1 ) + VT ( xT )
 f ( xT −1 , uT −1 ) + VT ( g ( xT −1 , uT −1 ) )
o equivalentemente (2) max
uT −1

sujeto a xT = g ( xT −1 , uT −1 ) u T −1

Al derivar esta función con respecto a uT −1 e igualarla a cero (condición de primer orden de

optimización libre) nos queda que uT −1 = h( xT −1 )

Reemplazamos en (2) y llamamos:


VT −1 ( xT −1 ) = f ( xT −1 , uT∗ −1 ) + VT ( g ( xT −1 , uT∗ −1 ) )

………………………………………………………

• Sea t = 0 . Debemos resolver el siguiente problema:


max f ( x0 , u 0 ) + V1 ( x1 ) max

u
0
o equivalentemente  u f ( x 0 , u 0 ) + V1 ( g ( x 0 , u 0 ) )
sujeto a x1 = g ( x0 , u 0 ) 0

Al derivar esta función con respecto a u 0 e igualarla a cero (condición de primer orden de

optimización libre) nos queda que u 0 = h( x 0 )
Luego como x0 es dado, volviendo para arriba realizamos la siguiente secuencia:
h
x0 
→ u 0
h
g ( x0 , u0 ) = x1 
→ u1

h
g ( x1 , u1 ) = x 2 
→ u 2 ………
Ejemplo 3: Continuamos con el ejemplo 1
 2

max V = ∑ − ( xt2 + u t2 ) − x32


ut
 t =0

sujeto a xt +1 = 2 xt + u t para t = 0,1,2


con x0 = 5


Ecuación de Bellman para problemas que contienen factor de descuento

El problema que vamos a considerar ahora es:


 T

 utmax V = ∑ β t
f ( x t , u t ) + β T
S ( xT +1 )
 t =0

( P) sujeto a xt +1 = g ( xt , u t ) para t = 0,K , T


con x0 dado con 0 < β < 1



La ecuación de Bellman para este problema es:


Wt ( xt ) = max[ f ( xt , u t ) + β Wt +1 ( xt +1 )]
ut

A W se la llama función valor corriente.


Ejemplo 4: Continuamos con el ejemplo 2

 T

 ctmax U = ∑ β t
ln ct
 t =0

sujeto a s t +1 = α ( st − ct ) para t = 0,K , T con α = 1 + r


con s 0 dado

 sT +1 = 0

ct =
st T −t
1 − β T −t +1 (1 − β ) st
pero como ∑
k ct =
T −t β =
∑β k
k =0 1 − β nos queda: 1 − β T −t +1
k =0

La función valor corriente, después de operar, nos queda:


1 − β T −t +1
Wt = ln st + K
1− β

T −t
1 − β T −t +1  1 − β T −t +1  1 − β T −t +1  1 − β 
K = ∑ k β ln(αβ ) −k
ln  + ln 
T − t +1 
k =0 1− β  1− β  1− β 1− β 
Ecuación de Euler

Vamos a obtener la ecuación de Euler a partir de la ecuación de Bellman.

Si el conjunto de variables de estado es convexo para todo t y para toda x y la función f es


estrictamente cóncava (para un problema de maximización) y diferenciable para ( x, u ) ,
entonces la función valor es diferenciable.


Dada la función de política u t = h( xt ) , se reemplaza en la función de transición, obteniendo
xt +1 = g ( xt , u t ) = g ( xt , h( xt )) . Reemplazamos ambas ecuaciones en la ecuación de Bellman
maximizada, con lo cual se obtiene la siguiente relación:
Vt ( xt ) = f ( xt , u t ) + Vt +1 ( xt +1 ) = f ( xt , h( xt )) + Vt +1 ( g ( xt , h( xt )))

Por lo tanto la variación de xt afecta directamente a la función valor a través de la ecuación


de movimiento y a través de la función de política. Luego, por el teorema de la envolvente:
∂Vt ∂f ∂Vt +1 ∂g
= + Ecuación de Benveniste y Scheinkman
∂xt ∂xt ∂xt +1 ∂xt
Los pasos a seguir para obtener la ecuación de Euler son:
1) La condición de primer orden de la ecuación de Bellman es:
∂Vt ∂f ∂V ∂g
= + t +1 =0 (*)
∂u t ∂u t ∂xt +1 ∂u t
∂Vt +1
2) Despejamos de (*) ∂x :
t +1

∂f
∂Vt +1 ∂u
=− t
∂xt +1 ∂g (**)
∂u t
3) Reemplazamos la expresión (**) en la ecuación de Benveniste y Scheinkman:
∂f
∂Vt ∂f ∂u ∂g
= − t
∂xt ∂xt ∂g ∂xt (***)
∂u t
4) Adelantamos un período la expresión (***):
∂f
∂Vt +1 ∂f ∂u ∂g
= − t +1
∂xt +1 ∂xt +1 ∂g ∂xt +1
∂u t +1
5) Reemplazamos esta última expresión en la condición de primer orden:
 ∂f 
∂f  ∂f ∂u t +1 ∂g  ∂g
+ −  =0
∂u t  ∂xt +1 ∂g ∂xt +1  ∂u t Ecuación de Euler
 ∂u t +1 
 
Ejemplo 5: Continuamos con el ejemplo 2

• Aplicamos la condición de primer orden:


∂Wt 1 ∂Wt +1
= − αβ =0
∂ct ct ∂st +1
∂Wt +1
• Despejamos ∂s
t +1

∂Wt +1 1
= (1)
∂st +1 αβ ct
• Hallamos la ecuación de Benveniste y Scheinkman
∂Wt ∂Wt +1
= αβ (2)
∂s t ∂st +1
• Reemplazamos (1) en (2) y adelantamos un período
∂Wt 1 ∂Wt +1 1
= ⇒ =
∂st ct ∂st +1 ct +1
• Reemplazamos en la condición de primer orden:
1 1
− αβ =0 ⇒ ct +1 = αβ ct
ct c t +1
Se debe resolver ahora el sistema de ecuaciones en diferencias
ct +1 − αβ ct = 0

st +1 − α st = −α ct

Obteniendo la siguiente solución


K1
ct = K1 (αβ )
t
st = K 2 α t + (αβ )t
1− β
Horizonte temporal infinito

Al igual que en control óptimo existen problemas de optimización dinámica donde el


horizonte temporal relevante es infinito.

El problema general es:


 ∞

max V = ∑ β t f ( xt , u t )
ut
 t =0

( P) sujeto a xt +1 = g ( xt , u t ) para t = 0,1,2,K


con x0 dado



La ecuación de Bellman para este problema es igual a la vista para los problemas con factor de
descuento.

Las dos metodologías más conocidas para hallar la función de política y la función valor en este
tipo de problemas son la de aproximaciones sucesivas y la adivinar y verificar
Método de aproximaciones sucesivas

Ejemplo 7: Continuamos con el ejemplo 2


 ∞

max U = ∑ β t ln ct
ct
 t =0

sujeto a s t +1 = α ( s t − ct ) para t = 0, K , T con α = 1 + r


con s 0 dado

 sT +1 = 0

(1 − β ) st
ct =
1 − β T −t +1

Luego:
(1 − β ) st
ct = lim = (1 − β ) st
T →∞ 1 − β T −t +1
Teniendo en cuenta que:
T −t
β

k =0
k β k
=
(1 − β ) 2

La función valor queda:


 T −t 1 − β T −t +1  1 − β T −t +1  1 − β T −t +1  1 − β 
Wt = lim ∑ k β ln(αβ ) −
k

ln 
 + 
ln s  =
T −t +1 t  
T →∞
 k =0 1− β  1− β  1− β 1− β 
1
= ln(s t ) + B
1− β

β ln(αβ ) 1
B= 2
+ ln(1 − β )
(1 − β ) 1− β
Método de adivinar y verificar

Este método consiste en adivinar la función valor o la función de política y posteriormente


verificar la adivinanza a través de la ecuación de Bellman y la ecuación de Benveniste y
Scheinkman.
La eficiencia de este método para resolver el problema (P) dependerá:
a) de la existencia de una solución única del problema.
b) La suerte al realizar la adivinanza

Ejemplo 8: Continuando con el ejemplo 7

i) Nuestra adivinanza en este caso será:


ct = A st (1)
Donde A es una constante a determinar.
Para hallar el valor de A, reemplazamos (1) en la ecuación de Euler hallada en el ejemplo 7.
ct +1 = αβ ct ⇒ A st +1 = αβ A st ⇒ st +1 = αβ st
Reemplazando por la ecuación de transición:
s t +1 = αβ st ⇒ α ( st − Ast ) = αβ s t ⇒ 1 − A = β
Por lo tanto la función de política es:
ct = (1 − β ) s t
La cual coincide con la hallada en el ejemplo 7.

ii) También se podría partir de una adivinanza sobre la ecuación de Bellman:


Wt = A ln st + B

Para encontrar las constantes se resuelve el siguiente problema:


Wt ( st ) = ln ct + β Wt +1 ( st +1 )
 ⇒ Wt ( st ) = ln ct + β [A ln(α ( st − ct )) + B ]
st +1 = α ( st − ct )

∂Wt 1 A st
= − αβ = 0 ⇒ ct =
∂ct ct α ( st − ct ) 1+ β A
Al regresar a la ecuación de Bellman, reemplazar e igualar se obtiene:
 αβA 
A ln st + B = (1 + β A) ln st + β B − ln(1 + βA) + βA ln 
 1 + β A 
Por lo tanto:
1 β ln(αβ ) 1
A= B= 2
+ ln(1 − β )
1− β (1 − β ) 1− β
¡¡¡¡HASTA EL VIERNES!!!

También podría gustarte