Sei sulla pagina 1di 11

Gli approcci alla programmazione dinamica:

alcuni esempi
Francesco Menoncin

February 1, 2002
1 Ottimizzazione dinamica
Il problema che qui si considera quello di un soggetto che intende massimizzare
(o minimizzare) il valore di una funzione obiettivo (qui chiamata U) per un certo
periodo di tempo (qui supposto da t
0
no a T con T > t
0
). Si suppone che il
mondo considerato nel problema sia descritto da alcune variabili dette di
stato e che qui inseriamo nel vettore y. Il soggetto in questione pu modicare
levoluzione di dette variabili operando su altre variabili sotto il suo controllo
(per ci dette di controllo) che inseriamo nel vettore x. In particolare, la
soluzione del problema data dal valore di x che massimizza la funzione obiettivo
sullarco temporale considerato. Alla ne del periodo preso in esame (cio in T)
si immagina che il soggetto valuti lo stato del sistema raggiunto (cio il valore del
vattore y al tempo T) attraverso una funzione (K) che viene denita funzione
terminale o, in termine anglosassone bequest function.
Se il problema si studia in un contesto discreto, levoluzione delle variabili y
data da un sistema di equazioni alle dierenze nite mentre, in un constesto
continuo, levoluzione di y data da un sistema di equazioni dierenziali.
Si suppone che lo stato del mondo al momento iniziale (t
0
) sia conosciuto
con certezza.
Il problema di ottimo, dunque, si pu scrivere (per un caso di massimiz-
zazione) nei due modi seguenti:
Caso Discreto (P
d
)

max
x
T1
P
t=t0
U (t, x(t) , y(t)) + K (T, y(T))
y(t + 1) = f (t, y(t) , x(t))
y(t
0
) = y
0
Caso Continuo (P
c
)

max
x
R
T
t
0
U (t, x(t) , y(t)) dt + K (T, y (T))
dy (t) = f (t, y (t) , x(t)) dt
y(t
0
) = y
0

francesco.menoncin@unipv.it
1
Nelle sezioni seguenti si analizzano i due approcci utilizzati per la soluzione
di detti problemi.
2 Approccio di Bellman (casi discreto e con-
tinuo)
Per entrambi i problemi si utilizza lapproccio di Bellman che si basa sullipotesi
che esista una funzione J (t, y) (detta funzione valore) tale da soddisfare la
seguente condizione:
J (t, y) = max
x
{U (t, x, y) dt + J (t + dt, y(t + dt))} , (1)
che, nel caso discreto, bisogna trasformare ponendo dt = 1. Notiamo che la
condizione al contorno data dalla funzione terminale K per la quale deve
valere:
J (T, y) = K (T, y (T)) .
Nel caso discreto, dunque, si di fronte ad una equazione alle dierenze
nite del primo ordine in J la quale viene, in genere, risolta tramite il metodo
di iterazione che si vedr in un esempio nelle sezioni seguenti.
Continuando nel caso continuo la (1) si pu semplicare nel modo seguente:
max
x
{U (t, x, y) dt + J (t + dt, y (t + dt)) J (t, y)} = 0,
dividendo per dt si ricava:
max
x

U (t, x, y) +
J (t + dt, y (t + dt)) J (t, y)
dt

= 0,
e prendendone il limite per dt 0 si ha:
max
x

U (t, x, y) +
dJ (t, y)
dt

= 0. (2)
Ricordiamo ora che il dierenziale totale di J si pu scrivere:
dJ (t, y) =
J (t, y)
t
dt +

J (t, y)
y

0
dy,
da cui:
dJ (t, y)
dt
=
J (t, y)
t
+

J (t, y)
y

0
dy
dt
.
Sostituendo dJ/dt nella (2), essa si pu scrivere come:
max
x
(
U (t, x, y) +
J (t, y)
t
+

J (t, y)
y

0
dy
dt
)
= 0.
2
Avendo a disposizione il valore di dy/dt (dato nella struttura stessa del
problema P
c
) si pu scrivere:
max
x
(
U (t, x, y) +
J (t, y)
t
+

J (t, y)
y

0
f (t, y(t) , x(t))
)
= 0,
J (t, y)
t
+ max
x
(
U (t, x, y) +

J (t, y)
y

0
f (t, y(t) , x(t))
)
= 0,
tale equazione alle derivate parziali viene denita equazione di Bellman mentre
il termine da massimizzare viene denito Hamiltoniano. A questa equazione va
poi aggiunta la condizione nale: J (T, y) = K (T, y(T)).
E importante sottolineare che non esiste un metodo denito per risolvere
questo tipo di equazione dierenziale. Si procede, dunque, attraverso soluzioni
di prova ed ipotesi particolari riguardo la funzione J. In genere, tuttavia, si
suppone che la funzione valore erediti una certa forma dalla funzione K e le
soluzioni di prova partono da una generalizzazione proprio della funzione K.
3 Approccio di Pontriagin (caso continuo)
Lapproccio di Potriagin viene utilizzato solo nel caso continuo e si basa sullo
stesso principio della massimizzazione tramite lagrangiano. Viene dunque denito
il moltiplicatore , questa volte dipendente dal tempo, e viene scritto lhamiltoniano
nel modo seguente:
H = U (t, x, y) +(t)
0
f (t, y, x) ,
dove lapice indica trasposizione.
Tale hamiltoniano va massimizzato rispetto ad x ottenendo, quindi:
H

= U (t, x

, y) +(t)
0
f (t, y, x

) .
Sul valore ottimo dellhamiltoniano, quindi, si ricavano le seguenti condizioni
di Pontriagin:

t
=
H

y
,
y
t
=
H

,
(T) =
K
y(T)
,
che vengono denite sistema di Hamilton-Jacobi.
4 Alcuni esempi
Nella presente sezione si mostrano alcuni esempi di programmazione dinamica
sia in tempo discreto (approccio di Bellman) sia in tempo continuo (approcci di
Bellman e Pontriagin).
3
4.1 Caso discreto: lottimizzazione del consumo
Si supponga di dover decidere quanto consumare della propria ricchezza in un
mondo deterministico dove la ricchezza si evolve nel modo seguente:
W (t + 1) = (W (t) c) R(t) .
Qui si considerano: c lammontare di ricchezza consumato ed R(t) il fattore
di montante (deterministico) tra il periodo t ed il periodo t +1. Per semplicare
al massimo i calcoli si suppone R(t) = R.
Il consumo entra in una funzione di utilit avente la forma seguente U (t, c) =

t
1
c
1
dove
1
un fattore di sconto psicologico che indica come un con-
sumatore dia sempre meno utilit ai conumi sempre pi distanti nel tempo. Il
problema, dunque, si pu scrivere nella forma seguente:

max
c
T1
P
t=t0

tt
0
1
c
1
t
+
Tt
0
1
W
1
T
W (t + 1) = (W (t) c (t)) R,
W (0) = W
0
.
Abbiamo allora la seguente funzione di Bellman che, per semplicit, si sup-
pone ancora da scontare:

tt0
1
J (t, W) = max
c

tt0
1
c
1
t
+
t+1t0
1
J (t + 1, W (t + 1))

,
J (t, W) = max
c

c
1
t
+
1
J (t + 1, W (t + 1))

.
Il problema, dunque, diviene quello di trovare la funzione J che soddisfa a
questa equazione alle dierenze nite del primo ordine.
La condizione del primo ordine per la massimizzazione rispetto a c si pu
scrivere:

c
1
t
+
1
J (t + 1, (W (t) c) R)

= 0,
(1 ) c

t

1
R
J (t + 1)
W (t + 1)
= 0.
Poich si conosce (dalla condizione al contorno) quanto deve valere la fun-
zione valore al tempo T, partendo dal tempo T 1 si pu scrivere:
J (T 1, W
T1
) = max
c

c
1
T1
+
1
J (T, W (T))

,
J (T 1, W
T1
) = max
c

c
1
T1
+
1
W
1
T

.
Utilizzando lequazione alle dierenze che descrive landamento della ric-
chezza si pu anche scrivere:
J (T 1, W
T1
) = max
c
n
c
1
T1
+
1
(W
T1
c
T1
)
1
R
1
o
,
4
da cui si ricava la condizione del primo ordine:
(1 ) c

T1

1
R
1
(1 ) (W
T1
c
T1
)

= 0,
c
T1
=

1
R

(W
T1
c
T1
) ,
c

T1
=

1
R

1 +

1
R

W
T1
,
la quale si pu scrivere nel modo seguente:
c

T1
= A
1
W
T1
,
A
1
=

1
R

1 +

1
R

.
Tale valore va sostituito nella formula di J (T 1, W) per ottenere:
J (T 1, W
T1
) = max
c
n
c
1
T1
+
1
R
1
(W
T1
c
T1
)
1
o
,
J (T 1, W
T1
) = A
1
1
W
1
T1
+
1
R
1
(1 A
1
)
1
W
1
T1
,
J (T 1, W
T1
) =

A
1
1
+
1
R
1
(1 A
1
)
1

W
1
T1
,
da cui si pu semplicare il termine tra parentesi:
A
1
1
+
1
R
1
(1 A
1
)
1
=

1 +
1
R
1

1 A
1
A
1

1
!
A
1
1
=
=

1 +
1
R
1

1
A
1
1

1
!
A
1
1
=
=

1 +
1
R
1

1 +

1
R

1
R

1
!
1

A
1
1
=
=

1 +
1
R
1

1
R

!
1

A
1
1
=
=

1 +
1

1
R
1

A
1
1
=

1 +
1

1
R

!
A
1
1
=
=

1 +

1
R

1
R

1
R

1 +

1
R

!
1
=
=

1
R

1 +

1
R

ottenendo:
J (T 1, W
T1
) = A

1
W
1
T1
.
5
Il processo di iterazione, quindi, si ripete uguale al passaggio precedente con
la variante di avere un
2
= A

1

1
. Si pu dunque scrivere:
J (T 2, W
T2
) = max
c
n
c
1
T2
+
2
R
1
(W
T2
c
T2
)
1
o
.
Ancora una volta la condizione del primo ordine data da:
(1 ) c

T2

2
R
1
(1 ) (W
T2
c
T2
)

= 0,
c
T2
=

2
R

(W
T2
c
T2
) ,
c

T2
=

2
R

1 +

2
R

W
T2
,
da cui si pu porre:
c

T2
= A
2
W
T2
,
A
2
=

2
R

1 +

2
R

,
e, quindi:
J (T 2, W
T2
) = (A
2
W
T2
)
1
+
2
R
1
(W
T2
A
2
W
T2
)
1
,
J (T 2, W
T2
) =

A
1
2
+
2
R
1
(1 A
2
)
1

W
1
T2
,
da cui si ricava, tramite gli stessi passaggi visti precedentemente:
J (T 2, W
T2
) = A

2
W
1
T2
.
E piuttosto facile capire che esistono le seguenti relazioni ricorsive:
J (T s, W
Ts
) = A

s
W
1
Ts
,
A
s
=

s
R

1 +

s
R

s
= A

s1

s1
,
c

Ts
= A
s
W
Ts
.
Da qui, ricordando che deve valere:
W
Ts
=

W
Ts1
c

Ts1

R,
si pu scrivere, sostituendovi il valore ottimo del consumo:
W
Ts
= (1 A
s1
) RW
Ts1
,
W
Ts+1
= (1 A
s
) RW
Ts
.
6
Questa unequazione alle dierenze nite del primo ordine omogenea; si
pu applicare la formula risolutiva:
W
Ts
= W
0
R
Ts
Ts1
Y
k=0
(1 A
Tk
) ,
e da qui si ricava:
c

Ts
= W
0
A
s
R
Ts
Ts1
Y
k=0
(1 A
Tk
) .
Si sottolinea che la soluzione del problema dipende solo dai parametri e dalle
condizioni iniziali (qui date semplicemente dal valore iniziale della ricchezza W
0
).
4.2 Caso continuo: un problema lineare-quadratico
Un problema detto lineare-quadratico se lequazione di stato lineare e la
funzione obiettivo quadratica. In particolare si suppone di dover risolvere il
seguente problema:

max
x
R
T
t

1
2
ay (s)
2

1
2
bx(s)
2

ds
k
2
y (T)
2
dy (s) = gy (s) + fx(s) ,
y (t) = y,
dove a, b, k, f, g sono costanti positive.
Vediamo ora come risolvere questo problema attraverso i due approcci di
Bellman e di Pontriagin.
4.2.1 Soluzione di Bellman
Lequazione alle derivate parziali di Bellman si scrive nel modo seguente:
max
x

1
2
ay
2

1
2
bx
2
+
J (t, y)
t
+
J (t, y)
y
(gy + fx)

= 0,
da cui si ottiene la condizione del primo ordine:
bx +
J (t, y)
y
f = 0,
x

=
f
b
J (t, y)
y
.
Sostituendo tale valore di ottime x

nellequazione di Bellman si ottiene:

1
2
ay
2

1
2
f
2
b

J (t, y)
y

2
+
J (t, y)
t
+
J (t, y)
y

gy +
f
2
b
J (t, y)
y

= 0,
J (t, y)
t
+
J (t, y)
y
gy
1
2
ay
2
+
1
2
f
2
b

J (t, y)
y

2
= 0,
7
alla quale va aggiunta la condizione al contorno:
J (T, y) =
k
2
y (T)
2
.
Supponendo che la funzione J erediti la forma quadratica, che deve avere
al tempo T, una soluzione di prova pu essere:
J (t, y) =
1
2
(t) y
2
+ (t) ,
dalla quale si ricava:
J (t, y)
t
=
1
2
y
2
(t)
t
+
(t)
t
,
J (t, y)
y
= (t) y,

J (t, y)
y

2
= (t)
2
y
2
.
Sostituendo tale valori nellequazione di Bellman si ottiene:

1
2
y
2
(t)
t
+
(t)
t
(t) gy
2

1
2
ay
2
+
1
2
f
2
b
(t)
2
y
2
= 0,

1
2
(t)
t
(t) g
1
2
a +
1
2
f
2
b
(t)
2

y
2
+
(t)
t
= 0.
Due polinomi sono uguali solo se il coeciente di ogni termine del primo
uguale al coeciente del termine corrispondente del secondo. In questo caso,
tutti i coecienti devono essere nulli, ovvero abbiamo un sistema di equazioni
dierenziali:
(

1
2
(t)
t
(t) g
1
2
a +
1
2
f
2
b
(t)
2
= 0,
(t)
t
= 0,
in cui le incognite sono le funzioni (t) e (t) e per cui deve valere la condizione
al contorno:
(T) = k,
(T) = 0.
Si nota che il vincolo sulla funzione rispettato solo se essa uguale a
zero in ogni istante t. Dunque si pu porre (t) = 0. La prima equazione (in )
indipendente pu essere risolta utilizzando il metodo della separazione delle
variabili scrivendo:
d
f
2
b

2
2g a
= dt
8
da cui:
d
(
1
) (
2
)
= dt,

1,2
=
b
f
2

g
r
g
2
+
f
2
a
b
!
.
Ora, integrando tra t e T si ricava:

1
ln
(s)
2
(s)
1

T
t
= T t,
ottenendo:
ln
(t)
2
(t)
1
ln
k
2
k
1
= (
2

1
) (T t) .
Da qui si ricava immediatamente il valore di (t) che consente di trovare la
funzione valore e da qui il controllo ottimo:
x

=
f
b
J
x
.
4.2.2 Soluzione di Pontriagin
Analizziamo ora come si risolva lo stesso problema precedente attraverso lapproccio
di Pontriagin. Lhamiltoniano si scrive nel modo seguente:
H =
1
2
ay
2

1
2
bx
2
+(gy + fx) ,
da cui la condizione del primo ordine:
bx +f = 0,
x

=
f
b
.
Sostituendo tale valore nellhamiltoniano si ha:
H

=
1
2
ay
2
+
1
2
f
2

2
b
+gy.
Da qui si pu calcolare il sistema delle condizioni di Hamilton-Jacobi:

t
= (ay +g) ,
y
t
=
f
2

b
+ gy,
(T) = ky (T) ,
ricordando anche che deve valere y (0) = y
0
.
9
Tale sistema di equazioni dierenziali lineare e si pu scrivere nella forma
matriciale seguente:


t
y
t

=

g a
f
2
b
g


y

.
Occorre, adesso, calcolare gli autovalori ed autovettori della matrice dei co-
ecienti ottenendo:
v
1
=
"
v
11
=

(b(bg
2
+af
2
))+bg
f
2
1
#

r
1
b
(bg
2
+ af
2
) =
1
,
v
2
=
"
v
21
=

(b(bg
2
+af
2
))+bg
f
2
1
#

r
1
b
(bg
2
+ af
2
) =
2
.
Poich tutti i parametri del problema sono positivi, si osserva immediata-
mente come un autovalore sia positivo ed uno negativo (si ha, cio, il caso di un
equilibrio di sella). Esiste, dunque, un solo sentiero lungo il quale si converge
allequilibrio.
La soluzione di questo sistema data da:

(t)
y (t)

= A
1

v
11
1

1
t
+ A
2

v
12
1

2
t
,
da cui si possono ricavare i valori delle costanti A
1
e A
2
ricordando le condizioni
al contorno:

(T) = ky (T) ,
y (0) = y
0
,
dovendo risolvere il sistema:

A
1
v
11
e
1T
+ A
2
v
12
e
2T
= ky (T) ,
A
1
+ A
2
= y
0
,
e, sostituendo il valore di y (T) derivante dallinserimento di t = T nella soluzione
y (t) si ha:

A
1
v
11
e
1T
+ A
2
v
12
e
2T
= k

A
1
e
1T
+ A
2
e
2T

,
A
1
+ A
2
= y
0
,
ovvero:

A
1
(v
11
+ k) e

1
T
+ A
2
(v
12
+ k) e

2
T
= 0,
A
1
+ A
2
= y
0
,
da cui:
A
1
=
y
0
(v
12
+ k) e

2
T
(v
11
+ k) e

1
T
(v
12
+ k) e

2
T
,
A
2
=
y
0
(v
11
+ k) e
1T
(v
11
+ k) e

1
T
(v
12
+ k) e

2
T
.
10
Da qui si ricava il valore ottimo del moltiplicatore che, sostituito nella re-
lazione:
x

=
f
b
,
porge:
x

=
f
b

A
1
v
11
e

1
t
+ A
2
v
12
e

2
t

.
11