21.06.2013 Views

nota sui metodi di tipo "active set"

nota sui metodi di tipo "active set"

nota sui metodi di tipo "active set"

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!