Programmazione dinamica e equazione HJB (Hamilton

Transcript

Programmazione dinamica e equazione HJB (Hamilton
Programmazione dinamica e equazione HJB
(Hamilton-Jacobi-Bellman)
P. Valigi
Ottimizzazione e Controllo
04 Aprile 2014
OeC - 08.04.2014
Ottimizzazione
Principio di ottimalità
Ottimizzazione funzionale: la soluzione ottima è una funzione!
Definizione (Principio di ottimalità)
La soluzione ottima ha la proprietà che qualunque siano state le decisioni
(azioni di controllo) precedenti, le decisioni (azioni di controllo) rimanenti
devono costituire una sequenza di controllo ottima a partire dallo stato al
quale si è giunti (attraverso quelle decisioni precedenti).
tbz
b
Cab1
′
tbz
z
b1
Jb∗1 z
b2
Jb∗2 z
z
Cab2
a
tab
Cab3
a
∗
Jaz
= min Ca bi + Jb∗i z
bi
One-step-cost + cost-to-go
OeC - 08.04.2014
Ottimizzazione
b3
Jb∗3 z
Principio di ottimalità
C
3
B
3
A
7
B
A
1
3
2
D
B
3
I
A
7
D
6 F,1 1
2
E
1
2
3
G
3 C,3 2
3 C,3 2
6 F,1 1
2
2
3 B,6 2
I,0
A,9 7
1 H,2
1
1 E,5 3
1 H,2
G,3
OeC - 08.04.2014
Ottimizzazione
I,0
6 F,1 1
D,4 1
G,3
2
1 H,2
1
G
1 E,5 3
7
1
H
1
C
3
F
6
E
1
D
3
2
2
2
I,0
Principio di ottimalità
C
3
B
3
A
7
2
F
6
E
1
D
2
1
3
1
2
I
H
1
G
min J =
min
u[0,N−1](·)
(
m(xN ) +
N−1
X
)
ℓk (xk , uk )
k=0
t.c. xk+1 = fk (xk , uk ), x0 fissato, xN fissato
uk ∈ {a(lto), b(asso)} : insieme delle decisioni
xk+1 = f (xk , uk ) : destinazione con decisione uk in xk .
ℓk (xk , uk ) : costo dell’arco da xk con decisione uk .
esempio : f (B, b) = E , ℓ(B, b) = 2;
OeC - 08.04.2014
f (B, a) = C , ℓ(B, a) = 3.
Ottimizzazione
Principio di ottimalità
min J =
min
u[0,N−1](·)
(
m(xN ) +
N−1
X
)
ℓk (xk , uk )
k=0
t.c. xk+1 = fk (xk , uk ), x0 fissato, xN fissato
uk ∈ {a(lto), b(asso)} : insieme delle decisioni
xk+1 = f (xk , uk ) : destinazione con decisione uk in xk .
ℓk (xk , uk ) : costo dell’arco da xk con decisione uk .
In base al principio di ottimalità, per ogni possibile stato xk all’istante k,
la traiettoria viene considerata come la concatenazione del singolo passo
che da xk porta a xk+1 e della traiettoria da xk+1 fino ad xN .
La decisione rilevante è uk , e l’indice di costo diventa:
∗
(xk+1 )}
Jk∗ (xk ) = min{lk (xk , uk ) + Jk+1
uk
ove Jk∗ (x) indica il costo ottimo sostenuto a partire dallo stadio k nello
stato x.
OeC - 08.04.2014
Ottimizzazione
Principio di ottimalità
C
3
B
3
A
7
D
6 F,1 1
2
E
1
Partendo dalla fine, e
progredendo ricorsivamente
all’indietro, si ha:
2
3
2
I,0
1 H,2
1
J3∗ (F ) = 1,
J3∗ (H) = 2
u3∗ (F )
u3∗ (H) = a
= b,
G
Proseguendo:
J2∗ (E ) = min{ℓ(E , a) + J3∗ (F ), ℓ(E , b) + J3∗ (H)} = min{6 + 1, 3 + 2} = 5
u2∗ (E ) = arg min {ℓ(E , a) + J3∗ (F ), ℓ(E , b) + J3∗ (H)} = b
u∈{a,b}
OeC - 08.04.2014
Ottimizzazione
Principio di ottimalità
Complessivamente, allo stadio 2
3 C,3 2
B
3
A
6 F,1 1
2
1 E,5 3
7
D
2
I,0
1 H,2
1
J2∗ (C ) = 3,
J2∗ (E ) = 5,
J2∗ (G ) = 3
u2∗ (C )
u2∗ (E )
u2∗ (G ) = b
G,3
OeC - 08.04.2014
Ottimizzazione
= s,
= a,
Principio di ottimalità
Tornando ancora più indietro, allo stadio 1:
3 C,3 2
3 B,6 2
A,9 7
6 F,1 1
1 E,5 3
D,4 1
2
I,0
J1∗ (B) = 6,
J2∗ (D) = 4
u1∗ (B)
u2∗ (D) = b
= a,
1 H,2
G,3
Infine
J0∗ (A) = min{ℓ(A, a) + J1∗ (B), ℓ(A, b) + J1∗ (D)} = 9
e quindi:
J0∗ (A) = 9,
u0∗ (A) = a.
La soluzione
u ∗ (·)[0,3] = a · a · b · b
OeC - 08.04.2014
x ∗ (·)[0,4] = A · B · C · F · I
Ottimizzazione
Principio di ottimalità: retroazione
3 C,3 2
3 B,6 2
A,9 7
6 F,1 1
1 E,5 3
D,4 1
2
I,0
1 H,2
G,3
Notevole importanza: la
soluzione ricavata con PD è
strategia controllo in
controreazione.
u ∗ (·)[0,3] = a · a · b · b
x ∗ (·)[0,4] = A · B · C · F · I
Per una perturbazione, decisione sbagliata − > nodo non appartenente al
cammino ottimo. e.g. al primo stadio in basso (u0 = b), − > D.
Due possibili exit-strategy:
ciclo aperto: una volta ricavata sequenza ottima, si continua con
essa anche in caso di decisione errata (disturbo); le successiva
decisioni da prendere rimangono secondo la seconda nella sequenza
ottima, e.g., u1 = a.
ciclo chiuso: sfruttare le informazioni ricavate in fase di calcolo della
soluzioni: dopo la prima decisione (sbagliata, ma compiuta) si
prosegue sequenza decisioni ottime a partire da D: u1 = b.
OeC - 08.04.2014
Ottimizzazione
Principio di ottimalità: retroazione
E’ evidente che tramite la seconda strategia si riesce a compensare
l’effetto dello sbaglio in maniera ottimale, mentre tramite la prima
strategia si continuerebbero a prendere delle decisioni non ottime a
partire dallo stato a cui si è giunti.
Effettivamente, i “prodotti intermedi” del procedimento risolutivo
tramite PD, coerentemente con il principio di ottimalità, definiscono
le decisioni ottime da qualunque stato, in qualunque maniera esso
sia stato raggiunto, e indipendentemente dalla storia passata,
durante la quale potrebbero essersi verificati errori nelle decisioni,
ma anche, generalizzando, dei disturbi potrebbero aver agito sul
sistema portandolo lontano dalla traiettoria ottima.
Si noti come in base a questa strategia, in generale non sia
necessario riportarsi sulla traiettoria ottima in seguito ad una
perturbazione; ovvero, dopo essere andati a sud al primo stadio, non
è necessario tentare di riportarsi sulla traiettoria (cioè A · B · C · F · I ,
nella parte superiore del grafo) conviene (ormai) piuttosto percorrere
D · G · H · I !!
OeC - 08.04.2014
Ottimizzazione
Programmazione dinamica
min J =
min
u[0,N−1] (·)
(
m(xN ) +
N−1
X
k=0
)
ℓk (xk , uk )
t.c. xk+1 = fk (xk , uk ), x0 fissato, xN fissato
Il problema, relativo a variabili decisionali date da segnali/sequenze
uk , k ∈ [0, N − 1].
Viene interpretato come basato su una collezione più ampia di
variabili decisionali istantanee, statiche.
La dimensione temporale viene “immersa” in uno spazio delle
soluzioni di dimensione più grande, ma sempre finito.
Possibile perché il dominio temporale è discreto (passi), e perché
l’orizzonte temporale è finito: uk , k ∈ [0, N − 1].
In generale, questa “immersione” in spazi di dimensione finita non è
possibile.
OeC - 08.04.2014
Ottimizzazione
Programmazione dinamica
min J =
min
u[0,N−1] (·)
(
m(xN ) +
N−1
X
)
ℓk (xk , uk )
k=0
t.c. xk+1 = fk (xk , uk ), x0 fissato, xN fissato
Problema funzionale
cioè con indice di costo e vincoli funzionali
che grazie al principio di ottimalità si trasforma in
∗
(xk+1 )}
Jk∗ (xk ) = min{ℓk (xk , uk ) + Jk+1
uk
Un problema con spazio delle soluzioni dato da funzioni (sequenze)
diviene un problema con spazio delle soluzioni dato solo da decisioni
relative a un singolo istante di tempo.
Equazione di Bellman
Richard Ernest Bellman (New York, 1920 - Los Angeles, 1984)
OeC - 08.04.2014
Ottimizzazione