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