nota sui metodi di tipo "active set"
nota sui metodi di tipo "active set"
nota sui metodi di tipo "active set"
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Integrazione all’Es. 5 Complementi <strong>di</strong> Ricerca Operativa Prof. E. Amal<strong>di</strong><br />
Una <strong>nota</strong> <strong>sui</strong> <strong>meto<strong>di</strong></strong> <strong>tipo</strong> “Active Set” per programmazione<br />
quadratica<br />
Consideriamo un generico problema <strong>di</strong> programmazione quadratica (QP) nella forma:<br />
min f(x) =c0 + c T x + x T Qx (1)<br />
s.t. (a i) T x ≥ bi<br />
(a i) T x = bi<br />
(a i) T x ≤ bi<br />
∀i ∈ G<br />
∀i ∈ E<br />
∀i ∈ L<br />
con Q definita positiva (e, per semplicità, simmetrica). Il problema dell’esercizio nell’esercitazione<br />
può essere scritto, infatti, come segue:<br />
min f(x) =125 + (−10, −20) T x + x T<br />
<br />
1 −1<br />
x<br />
−1 1<br />
s.t. (1, 0) T x ≥ 0 (2)<br />
e quin<strong>di</strong> G = {2, 3}, E = ∅ e L = {4, 5, 6}.<br />
(0, 1) T x ≥ 0 (3)<br />
(1, 1) T x ≤ 6 (4)<br />
(1, 0) T x ≤ 3 (5)<br />
(0, 1) T x ≤ 5 (6)<br />
Inizialmente, poniamo l’attenzione <strong>sui</strong> problemi <strong>di</strong> QP con soli vincoli <strong>di</strong> uguaglianza:<br />
min<br />
x f(x) =c0 + c T x + x T Qx<br />
s.t. A · x = b,<br />
supponiamo <strong>di</strong> scegliere un punto x 0 ammissibile, e <strong>di</strong> utilizzare l’approssimazione in<br />
serie <strong>di</strong> Taylor al secondo or<strong>di</strong>ne per la funzione obiettivo (1). Essendo quadratica, la<br />
rappresentazione al secondo or<strong>di</strong>ne della funzione obiettivo è esatta. Il problema può<br />
essere riscritto come:<br />
min<br />
∆x f(x0 + ∆x) =f(x 0 ) + (∇xf(x 0 )) T · ∆x + (∆x) T · Q · ∆x<br />
s.t. A · ∆x = 0, (7)<br />
dove ∆x è il passo <strong>di</strong> ottimizzazione che permette <strong>di</strong> raggiungere il minimo (globale)<br />
del problema partendo dal punto x 0 , ed i vincoli (7) garantiscono che la soluzione resti<br />
ammissibile. Possiamo riportare la funzione Lagrangeana per il problema:<br />
L(∆x, v) = f(x 0 ) + (∇xf(x 0 )) T · ∆x + (∆x) T · Q · ∆x + v T · (A · ∆x)<br />
e le con<strong>di</strong>zioni <strong>di</strong> ottimalità:<br />
∇∆xL(∆x, v) = 0<br />
A · ∆x = 0<br />
Documento preparato da A. Ceselli 1
Integrazione all’Es. 5 Complementi <strong>di</strong> Ricerca Operativa Prof. E. Amal<strong>di</strong><br />
(le con<strong>di</strong>zioni <strong>di</strong> scarto complementare sono omesse, dato che ci sono solo vincoli <strong>di</strong><br />
uguaglianza). Trovare il passo ∆x che sod<strong>di</strong>sfa le con<strong>di</strong>zioni <strong>di</strong> ottimalità corrisponde<br />
a risolvere il seguente sistema lineare:<br />
<br />
−2Q<br />
A<br />
T A<br />
0<br />
<br />
·<br />
∆x<br />
v<br />
<br />
=<br />
∇xf(x 0 )<br />
0<br />
Nei <strong>meto<strong>di</strong></strong> Active Set si risolve un problema <strong>di</strong> QP nella forma generale, risolvendo<br />
una sequenza <strong>di</strong> problemi <strong>di</strong> QP con soli vincoli <strong>di</strong> uguaglianza. Tali <strong>meto<strong>di</strong></strong> si basano<br />
sull’osservazione che, per qualsiasi soluzione (ed in particolare per quella ottima), i vincoli<br />
<strong>di</strong> <strong>di</strong>suguaglianza non stretti possono essere scartati, ed i vincoli <strong>di</strong> <strong>di</strong>suguaglianza stretti<br />
possono essere riscritti come vincoli <strong>di</strong> uguaglianza, senza influenzare la soluzione.<br />
Di seguito sono <strong>di</strong>scussi i passaggi fondamentali del metodo.<br />
Si sceglie un punto iniziale x 0 e si determina l’insieme dei vincoli sod<strong>di</strong>sfatti all’uguaglianza<br />
in x 0 . Questi formano l’ Active Set iniziale A 0 . Poi, iterativamente (k > 0) si<br />
utilizza il seguente proce<strong>di</strong>mento.<br />
1) Si cerca l’incremento (∆x) k ed il vettore <strong>di</strong> moltiplicatori v k che porterebbe all’ottimo<br />
del problema <strong>di</strong> QP con i soli vincoli in A k sod<strong>di</strong>sfatti all’uguaglianza.<br />
L’incremento ottimo ed il relativo vettore dei moltiplicatori possono essere ottenuti<br />
risolvendo il sistema lineare (8).<br />
2) Se (∆x) k = 0 (oppure, se (∆x) k non è sufficientemente piccolo), un ottimo del<br />
problema con i vincoli in A k sod<strong>di</strong>sfatti all’uguaglianza è in x k + (∆x) k . Tuttavia, il<br />
punto x k + (∆x) k potrebbe essere inammissibile per alcuni dei vincoli fuori dall’Active<br />
Set. Pertanto, per ogni i ∈ G non incluso nell’Active Set, per cui a T i · ∆x < 0<br />
(l’incremento ∆x riduce lo slack del vincolo), si valuta il seguente coefficiente:<br />
λ G i := aTi · xk − bi<br />
−aT .<br />
i · (∆x)k<br />
Il numeratore rappresenta lo slack del vincolo i nel punto x k , mentre il denominatore<br />
è il decremento nello slack del vincolo i a seguito dello spostamento in<strong>di</strong>cato da<br />
(∆x) k . Intuitivamente, λ G i è la massima frazione <strong>di</strong> incremento (∆x) k che può<br />
essere effettuata senza violare il vincolo i. In modo analogo, per ogni i ∈ L non<br />
incluso nell’Active Set, per cui a T i · ∆x > 0, si valuta il coefficiente:<br />
λ L i := −aTi · xk + bi<br />
aT .<br />
i · (∆x)k<br />
La massima frazione <strong>di</strong> incremento (∆x) k che può essere effettuata senza violare<br />
nessun vincolo è<br />
λ := min({λ G i } ∪ {λ L i } ∪ {1.0})<br />
ed il punto can<strong>di</strong>dato a soluzione del problema è x k+1 := x k + λ(∆x) k . Se λ = 1,<br />
il vincolo i ∗ che determina la frazione <strong>di</strong> incremento (i ∗ = argmin({λ G i } ∪ {λ L i }))<br />
<strong>di</strong>venta attivo, ed inserito nell’Active Set (A k+1 := A k ∪ {i ∗ }).<br />
Documento preparato da A. Ceselli 2<br />
<br />
(8)
Integrazione all’Es. 5 Complementi <strong>di</strong> Ricerca Operativa Prof. E. Amal<strong>di</strong><br />
3) Se (∆x) k = 0 (oppure, se (∆x) k è sufficientemente piccolo), il punto x k è un ottimo<br />
del problema in cui i soli vincoli in A k sono sod<strong>di</strong>sfatti all’uguaglianza. Tuttavia, le<br />
con<strong>di</strong>zioni imposte nell’Active Set potrebbero essere troppo restrittive. Si consideri<br />
l’interpretazione “economica” dei moltiplicatori v: vi corrisponde alla variazione<br />
nella funzione obiettivo che potrei ottenere incrementando <strong>di</strong> una unità il termine<br />
noto del vincolo i. Pertanto, in un problema <strong>di</strong> minimizzazione, deve essere vi ≥ 0<br />
per i vincoli i ∈ G e vi ≤ 0 per i vincoli i ∈ L. Un’incongruenza nei vincoli<br />
<strong>di</strong> segno <strong>sui</strong> moltiplicatori relativi ai vincoli nell’Active Set, in<strong>di</strong>ca la possibilità<br />
<strong>di</strong> migliorare la soluzione corrente escludendo vincoli dall’Active Set. Quin<strong>di</strong>, per<br />
ogni i ∈ L incluso nell’Active Set, se vi > 0 i deve essere rimosso dall’Active Set<br />
(A k+1 := A k \{i}); in modo analogo, per ogni i ∈ G incluso nell’Active Set, se vi < 0<br />
i deve essere rimosso dall’Active Set.<br />
4) Se il can<strong>di</strong>dato a soluzione ottima è cambiato (passo 2), oppure dei vincoli sono<br />
stati rimossi dall’Active Set (passo 3), si pone k := k + 1 e si itera il proce<strong>di</strong>mento<br />
(passi 1 – 4). Altrimenti, x k è una soluzione ottima per il problema <strong>di</strong> partenza.<br />
Documento preparato da A. Ceselli 3