Introduzione all`ottimizzazione nonlineare
Transcript
Introduzione all`ottimizzazione nonlineare
Introduzione all’ottimizzazione nonlineare Introduzione all’ottimizzazione nonlineare – p. 1/82 Definizione del problema min f (x) x ∈ Rn ci (x) = 0 i ∈ K1 ci (x) ≥ 0 i ∈ K2 Introduzione all’ottimizzazione nonlineare – p. 2/82 Definizioni f viene detta funzione obiettivo. L’insieme n x ∈ R S= ci (x) = 0 i ∈ K1 c (x) ≥ 0 i ∈ K i 2 viene detto regione ammissibile del problema. Introduzione all’ottimizzazione nonlineare – p. 3/82 Ipotesi Supporremo che: f, ci ∈ C 2 (ipotesi di differenziabilità); almeno una tra le funzioni f, ci , i ∈ K1 ∪ K2 è non lineare (ipotesi di nonlinearità). Il caso in cui f e ci , i ∈ K1 ∪ K2 sono tutte funzioni lineari corrisponde alla classe dei problemi di Programmazione Lineare. Introduzione all’ottimizzazione nonlineare – p. 4/82 Altre definizioni Minimo globale: un punto x∗ ∈ S tale che: f (x∗ ) ≤ f (x) ∀ x ∈ S. Minimo locale forte: un punto x∗ tale che per qualche δ > 0: f (x∗ ) < f (x) ∀ x ∈ S ∩ {x : kx − x∗ k2 ≤ δ}, x 6= x∗ . Minimo locale debole: un punto x∗ tale che per qualche δ > 0: f (x∗ ) ≤ f (x) ∀ x ∈ S ∩ {x : kx − x∗ k2 ≤ δ} e x∗ non è un minimo locale forte. Introduzione all’ottimizzazione nonlineare – p. 5/82 Casi possibili non esitono minimi locali e/o globali perché la funzione è illimitata inferiormente. Esempio: f (x) = x3 , S = R; esitono minimi locali ma non minimi globali perché la funzione è illimitata inferiormente.√Esempio: f (x) = x3 − x, S = R dove x′ = 1/ 3 è minimo locale ma non globale. non esitono minimi locali e/o globali anche se la funzione è limitata inferiormente. Esempio: f (x) = e−x , S=R un minimo globale (e quindi anche locale) esiste certamente se: S è compatto (chiuso e limitato); f continua. (teorema di Weierstrass). Introduzione all’ottimizzazione nonlineare – p. 6/82 Complessità Possiamo aspettarci che l’identificazione di ottimi globali sia un problema non semplice. Ma la teoria ci dice che le cose sono anche più complicate. Introduzione all’ottimizzazione nonlineare – p. 7/82 Complessità Introduciamo il problema N P - completo SUBSET SUM: dati gli interi positivi d0 , d1 , . . . , dn , ci chiediamo se esiste una soluzione del sistema Pn j=1 dj yj = d0 yj ∈ {0, 1} j = 1, . . . , n In altre parole, si cerca di stabilire se esiste un sottinsieme degli interi d1 , . . . , dn la cui somma è pari a d0 . Introduzione all’ottimizzazione nonlineare – p. 8/82 Individuazione ottimo globale Dai dati del subset problem deriviamo il seguente problema con funzione obiettivo quadratica e vincoli box: min P n j=1 dj yj 0 ≤ yj ≤ 1 − d0 2 + Pn j=1 yj (1 − yj ) j = 1, . . . , n Si ha che l’ottimo globale di questo problema ha valore dell’obiettivo pari a 0 se e solo se il corrispondente problema subset sum ammette soluzione. Quindi, calcolare il minimo globale di un problema non lineare è un problema difficile anche nel caso di funzioni quadratiche e vincoli box. Introduzione all’ottimizzazione nonlineare – p. 9/82 Ottimalità locale e illimitatezza Se la difficoltà di individuare minimi globali era prevedibile, un po’ meno lo è quella dei seguenti problemi: nei problemi con e senza vincoli, stabilire se un dato punto non è un punto di minimo locale è N P -completo; nei problemi con e senza vincoli, stabilire se l’obiettivo del problema è illimitato sulla regione ammissibile è N P -completo. Le cose vanno un po’ meglio se si impongono restrizioni sulle funzioni f e ci . Introduzione all’ottimizzazione nonlineare – p. 10/82 Definizione Data una matrice simmetrica A di ordine n, diciamo che questa è semidefinita positiva se: xT Ax ≥ 0 ∀ x ∈ Rn . Diciamo che questa è definita positiva se: xT Ax > 0 ∀ x ∈ Rn \ {0}. Una matrice A è semidefinita (definita) positiva se e solo se tutti i suoi autovalori sono non negativi (positivi) [data una matrice A, i suoi autovalori sono le radici della seguente equazione det(A − λI) = 0 dove I è la matrice identica]. Infine, una matrice A è semidefinita positiva (definita positiva) se tutti i suoi minori principali sono non negativi (positivi), dove i minori principali sono i determinanti di tutte le sottomatrici quadrate ottenute da A rimuovendo un sottinsieme delle sue righe con le corrispondenti colonne. Introduzione all’ottimizzazione nonlineare – p. 11/82 Funzioni convesse e concave Una funzione f si dice convessa se (condizioni equivalenti): ∀ x1 , x2 ∈ Rn , ∀ λ ∈ (0, 1) : f (λx1 + (1 − λ)x2 ) ≤ λf (x1 ) + (1 − λ)f (x2 ); ∀ x1 , x2 ∈ Rn : f (x2 ) ≥ f (x1 ) + ∇f (x1 )T (x2 − x1 ); ∀ x1 ∈ Rn : ∇2 f (x1 ) è semidefinita positiva. Nel caso in cui le diseguaglianze siano strette si parla di funzione strettamente convessa. Condizione sufficiente (ma non necessaria, vedi f (x) = x4 ) perché ci sia stretta convessità è che l’Hessiano sia definito positivo. Definiamo una funzione f concava (strettamente concava) se −f è convessa (strettamente convessa). Introduzione all’ottimizzazione nonlineare – p. 12/82 Programmazione Convessa (PC) I problemi di Programmazione Convessa (PC) hanno la seguente forma min f (x) x ∈ Rn ci (x) ≥ 0 i ∈ K2 con f convessa e le ci , i ∈ K2 , concave. Si noti che i problemi di PL sono una sottoclasse dei problemi di PC. Introduzione all’ottimizzazione nonlineare – p. 13/82 Osservazione I problemi PC appartengono alla classe P . Gli algoritmi di complessità polinomiale che hanno consentito di stabilire questo sono gli stessi (elissoide, punto interno) che hanno permesso di catalogare nella classe P i problemi di PL. Introduzione all’ottimizzazione nonlineare – p. 14/82 Problemi trattati Nell’ambito del corso non potremo effettuare una trattazione completa di tutti gli aspetti dei problemi di ottimizzazione non lineare. Per questa ragione, nel seguito concentreremo la nostra attenzione sul problema dell’individuazione di minimi locali e, dal punto di vista algoritmico, ci restringeremo ulteriormente ai problemi non vincolati. Questo chiaramente rappresenta una restrizione rispetto ai problemi generali introdotti sopra, sia perché non si discute di possibili approcci (esatti o euristici) per l’individuazione di minimi globali, sia perché si tralascia dal punto di vista algoritmico la trattazione dei vincoli (per eventuali approfondimenti su tali argomenti si rimanda a testi specializzati). Introduzione all’ottimizzazione nonlineare – p. 15/82 Tuttavia già la trattazione degli argomenti citati rappresenta un’utile introduzione alle problematiche dell’ottimizzazione non lineare, che possono poi venire utili anche per la trattazione dei casi non trattati in questi appunti. Introduzione all’ottimizzazione nonlineare – p. 16/82 Il caso non vincolato Nel caso non vincolato gli insiemi K1 e K2 devono essere entrambi vuoti. Vedremo per prima cosa condizioni necessarie e sufficienti di ottimalità locale per questo caso. In seguito, passeremo alla descrizione di alcuni aprrocci risolutivi. Introduzione all’ottimizzazione nonlineare – p. 17/82 Alcuni risultati sui gradienti Data f : Rn → R, si ha che ( c se f (x) = cT x + c0 ∇f (x) = Hx se f (x) = 21 xT Hx, H simmetrica Dati xi : R → Rni , Pk i = 1, . . . , k , e f : R i=1 ni → R, definiamo g(λ) = f (x1 (λ), . . . , xk (λ)). Per le regole delle derivate di funzioni composte si ha che: T k X d d g= xi ∇xi f dλ dλ i=1 Introduzione all’ottimizzazione nonlineare – p. 18/82 In particolare ... ... per k = 1 e x(λ) = x0 + λs, ovvero g(λ) = f (x0 + λs), si ha d d g= x dλ dλ T ∇x f = sT ∇x f Introduzione all’ottimizzazione nonlineare – p. 19/82 Condizioni di ottimalità Non è possibile la verifica di ottimalità locale sulla base della definizione. ⇒ vengono ricavate delle condizioni di ottimalità locale. Introduzione all’ottimizzazione nonlineare – p. 20/82 Condizione necessaria del primo ordine Se x∗ è un minimo locale, allora ∇f (x∗ ) = 0 (condizione di stazionarietà). Non è una condizione sufficiente. Esempio: f (x) = −x2 , dove x̄ = 0 è un punto stazionario ma non è un minimo locale (è un punto di massimo). Introduzione all’ottimizzazione nonlineare – p. 21/82 Dimostrazione Espansione in forma di Taylor attorno a x∗ : f (x∗ + εp) = f (x∗ ) + ε∇f (x∗ )T p + o(ε). Per assurdo, sia ∇f (x∗ ) 6= 0. Allora esiste p tale che ∇f (x∗ )T p < 0 (esempio: p = −∇f (x∗ )). Quindi, per ε sufficientemente piccolo: f (x∗ + εp) < f (x∗ ), il che contraddice l’ottimalità locale di x∗ . Introduzione all’ottimizzazione nonlineare – p. 22/82 Condizione necessaria del secondo ordine Se x∗ è un minimo locale, allora: ∇f (x∗ ) = 0; ∇2 f (x∗ ) è semidefinita positiva. Introduzione all’ottimizzazione nonlineare – p. 23/82 Dimostrazione ∇f (x∗ ) = 0 già dimostrato. Quindi: 1 2 T 2 f (x + εp) = f (x ) + ε p ∇ f (x∗ )p + o(ε2 ). 2 ∗ ∗ Per assurdo, sia ∇2 f (x∗ ) non semidefinta positiva. Allora, ∃ p tale che pT ∇2 f (x∗ )p < 0. Quindi, per ε sufficientemente piccolo: f (x∗ + εp) < f (x∗ ), il che contraddice l’ottimalità locale di x∗ . Introduzione all’ottimizzazione nonlineare – p. 24/82 La condizione non è sufficiente Esempio: f (x) = x3 . In x̄ = 0, la condizione è soddisfatta ma il punto non è di minimo. Introduzione all’ottimizzazione nonlineare – p. 25/82 Condizione sufficiente Un punto x∗ che soddisfi le seguenti condizioni, è un minimo locale forte: ∇f (x∗ ) = 0; ∇2 f (x∗ ) è definita positiva. Introduzione all’ottimizzazione nonlineare – p. 26/82 Dimostrazione Per ogni matrice definita positiva A, si ha che: xT Ax ≥ λmin (A)kxk22 , dove λmin (A) > 0 è il più piccolo autovalore di A. Da: 1 2 T 2 f (x + εp) = f (x ) + ε p ∇ f (x∗ )p + o(ε2 ). 2 segue che per ogni p tale che kpk2 = 1 e per ogni ε > 0 sufficientemente piccolo: ∗ ∗ 1 2 f (x + εp) ≥ f (x ) + ε λmin (∇2 f (x∗ )) + o(ε2 ) > f (x∗ ). 2 ∗ ∗ Introduzione all’ottimizzazione nonlineare – p. 27/82 Condizione non necessaria Esempio: f (x) = x4 . Il punto x∗ = 0 è di minimo locale forte, ma ∇2 f (0) non è definita positiva. Introduzione all’ottimizzazione nonlineare – p. 28/82 Condizione necessaria e sufficiente Nel caso convesso la condizione di stazionarietà: ∇f (x∗ ) = 0, è necessaria e sufficiente perché x∗ sia un minimo locale. Introduzione all’ottimizzazione nonlineare – p. 29/82 Minimi locali ≡ minimi globali Nel caso convesso, ogni minimo locale è anche globale. Dimostrazione per assurdo: sia x∗ un minimo locale non globale, ovvero ∃ x̄ tale che f (x̄) < f (x∗ ). Allora ∀ λ ∈ (0, 1): f (λx∗ + (1 − λ)x̄) ≤ λf (x∗ ) + (1 − λ)f (x̄) < f (x∗ ), il che contraddice l’ottimalità locale di x∗ . Introduzione all’ottimizzazione nonlineare – p. 30/82 Unicità del minimo Nel caso strettamente convesso, se esiste un minimo globale, esso è anche l’unico. Dimostrazione per assurdo: siano x∗ , x̄, x∗ 6= x̄, due minimi globali distinti. Si avrà che f (x̄) = f (x∗ ). Inoltre, ∀ λ ∈ (0, 1): f (λx∗ + (1 − λ)x̄) < λf (x∗ ) + (1 − λ)f (x̄) = f (x∗ ), il che contraddice l’ottimalità globale di x∗ . Introduzione all’ottimizzazione nonlineare – p. 31/82 Il caso quadratico Sia data una funzione quadratica: 1 T f (x) = x Qx + cT x, 2 dove Q può essere sempre presa simmetrica. Si ha: ∇f (x) = Qx + c ∇2 f (x) = Q. Quindi: f convessa ⇔ Q semidefinita positiva; f strettamente convessa ⇔ Q definita positiva. Introduzione all’ottimizzazione nonlineare – p. 32/82 Ottimo unico del caso str. convesso Nel caso quadratico strettamente convesso per individuare l’unica soluzione ottima, basta imporre la condizione di stazionarietà: ∇f (x∗ ) = 0 ovvero Qx∗ + c = 0, da cui: x∗ = −Q−1 c, è l’unico ottimo locale e globale per questo problema. Introduzione all’ottimizzazione nonlineare – p. 33/82 Algoritmi caso non vincolato Due grandi categorie di metodi: metodi linesearch; metodi trust region. Entrambi i metodi sono iterativi, ovvero generano una sequenza {xk } di punti. Introduzione all’ottimizzazione nonlineare – p. 34/82 Metodi linesearch Schema generale: Si individui una direzione di discesa dk (ovvero, ∇f (xk )T dk < 0); Si individui, tramite una ricerca lungo la semiretta con origine xk e direzione dk , uno scalare αk > 0 tale che f (xk + αk dk ) < f (xk ); si ponga xk+1 = xk + αk dk e k = k + 1. Diverse scelte di dk conducono ad algoritmi con proprietà di convergenza diverse. Introduzione all’ottimizzazione nonlineare – p. 35/82 Antigradiente Nel metodo dell’antigradiente si sceglie come direzione di discesa quella che garantisce la rapidità di discesa massima, ovvero: dk = −∇f (xk ). Introduzione all’ottimizzazione nonlineare – p. 36/82 Newton Nel metodo di Newton, si prende come direzione di discesa il minimo (se esiste) della funzione quadratica ottenuta dall’espansione in forma di Taylor di f attorno a xk troncata al secondo ordine, ovvero 1 T 2 dk ∈ arg minn [f (xk ) + ∇f (xk ) d + d ∇ f (xk )d] 2 d∈R T o, equivalentemente: dk = −[∇2 f (xk )]−1 ∇f (xk ). non è detto che dk sia definita e, qualora lo sia, che sia una direzione di discesa. Ma è certamente una direzione di discesa nelle vicinanze di un minimo locale che soddisfa le condizioni sufficienti del secondo ordine. NOTA BENE: Introduzione all’ottimizzazione nonlineare – p. 37/82 Quasi-Newton Si utilizza un’approssimazione Bk dell’Hessiano ∇2 f (xk ): dk = −[Bk ]−1 ∇f (xk ). A ogni iterazione, l’approssimazione viene aggiornata in modo che soddisfi alcune proprietà. Introduzione all’ottimizzazione nonlineare – p. 38/82 Condizione quasi-newtoniana Sia sk = xk+1 − xk e ∇f (xk+1 ) ≈ ∇f (xk ) + ∇2 f (xk )sk , l’espansione in forma di Taylor, troncata al primo ordine, del gradiente della f attorno a xk . Indicando con ∆k = ∇f (xk+1 ) − ∇f (xk ), si richiederà quindi che: Bk+1 sk = ∆k Introduzione all’ottimizzazione nonlineare – p. 39/82 Inoltre... ... viene richiesto che: Bk+1 sia simmetrica (come lo è l’Hessiano); Bk+1 sia definita positiva (si garantisce che la direzione di ricerca sia di discesa). Tipicamente si cercano aggiornamenti "il più piccolo possibile"’: Bk+1 − Bk è una matrice a rango molto basso (uno o due). Una scelta usuale è porre B0 = I (matrice identica), ovvero il primo passo è lungo la direzione dell’antigradiente. Introduzione all’ottimizzazione nonlineare – p. 40/82 Un esempio: BFGS Bk+1 ∆k ∆Tk ∇f (xk )∇f (xk )T − = Bk + T ∇f (xk ) dk αk ∆Tk dk Esiste anche una versione limited-memory BFGS, utile per problemi su larga scala, dove la matrice Bk non può essere memorizzata per problemi di occupazione di memoria, ma vengono memorizzati solo vettori che identificano un certo numero limitato di aggiornamenti quasi-newtoniani rispetto alla matrice identica. Introduzione all’ottimizzazione nonlineare – p. 41/82 Convergenza globale Dato un punto iniziale x0 , tutti i punti di accumulazione della sequenza {xk } sono punti stazionari, ovvero k∇f (xk )k → 0. Si dimostra che vale se: l’insieme di livello: L(f (x0 )) = {x ∈ Rn : f (x) ≤ f (x0 )} è chiuso e limitato; a ogni iterazione si ha una "sufficiente" decrescita della funzione, cioè f (xk ) − f (xk+1 ) è sufficientemente grande; il passo compiuto xk+1 − xk è "sufficientemente" distante dall’ortogonalità rispetto al gradiente ∇f (xk ). Introduzione all’ottimizzazione nonlineare – p. 42/82 Condizioni di Armijo-Goldstein Sono condizioni di "sufficiente decrescita". Indicata con d la direzione di ricerca scelta, sia ᾱ il più piccolo valore per cui f (xk + ᾱd) = f (xk ). Per garantire una sufficiente decrescita, si vuole evitare un passo troppo vicino a 0 o troppo vicino a ᾱ. Si fissi un ρ ∈ (0, 1/2). Non troppo vicino a 0: f (xk + αd) ≥ f (xk ) + α(1 − ρ)∇f (xk )T d Non troppo vicino a ᾱ: f (xk + αd) ≤ f (xk ) + αρ∇f (xk )T d Quindi il passo αk soddisfa: −ραk ∇f (xk )T d ≤ f (xk ) − f (xk + αk d) ≤ −(1 − ρ)αk ∇f (xk )T d Introduzione all’ottimizzazione nonlineare – p. 43/82 Non ortogonalità rispetto al gradiente Sia θk l’angolo tra il gradiente in xk e il passo sk = xk+1 − xk . Si ha: ∇f (xk )T sk . cos(θk ) = k∇f (xk )kksk k Ipotesi: ∞ X cos2 (θk ) = +∞, k=1 cioè {θk } può convergere a π/2 ma deve farlo in modo "sufficientemente" lento. Introduzione all’ottimizzazione nonlineare – p. 44/82 Velocità di convergenza locale Dato un minimo locale x e un punto x0 "sufficientemente" vicino a x, la velocità di convergenza locale può essere: lineare con coefficiente r < 1: kxk+1 − xk/kxk − xk → r superlineare: kxk+1 − xk/kxk − xk → 0 quadratica: kxk+1 − xk/kxk − xk2 → A > 0. Introduzione all’ottimizzazione nonlineare – p. 45/82 Antigradiente Il metodo dell’antigradiente ha velocità di convergenza locale lineare. Se applicato a una funzione quadratica strettamente convessa f (x) = cT x + 1/2xT Hx, con H simmetrica definita positiva e minimo in x∗ , si dimostra che ∗ | f (xk+1 ) − f (x ) |≤ λmax − λmin λmax + λmin 2 | f (xk ) − f (x∗ ) | dove λmax e λmin sono, rispettivamente, il massimo e il minimo autovalore di H . Si noti che se λmax /λmin è molto grande, la convergenza è lineare ma molto lenta. Introduzione all’ottimizzazione nonlineare – p. 46/82 Esempio Si consideri la funzione f (x, y) = M x2 + y 2 , con M > 0. Si può facilmente dimostrare che il punto di ottimo locale e globale di questa funzione è l’origine (0, 0). Prendiamo ora il punto x0 = α(1/M, 1). Il gradiente è ∇f (x, y) = (2M x, 2y) e quindi nel punto x0 la direzione di ricerca è l’antigradiente −α(2, 2) e il nuovo punto viene cercato lungo la semiretta: α(1/M, 1) − λα(2, 2) λ ≥ 0. Introduzione all’ottimizzazione nonlineare – p. 47/82 Continua Possiamo facilmente trovare il minimo della funzione: q(λ) = f (α(1/M − 2λ), α(1 − 2λ)) = M α2 (1/M − 2λ)2 + α2 (1 − 2λ)2 λ ≥ 0. Il minimo è il valore λ0 = punto x1 è il seguente: 1 M +1 , indipendente da α e il nuovo M −1 x1 = α (−1/M, 1). M +1 Introduzione all’ottimizzazione nonlineare – p. 48/82 Continua Con il nuovo punto si può ripetere quanto visto sopra e si ottiene: 2 M −1 (1/M, 1), x2 = α M +1 Notando che x2 = M −1 M +1 2 x0 , alla 2k -esima iterazione avremo: 2k M −1 x2k = x0 , ∀ k ∈ N M +1 Introduzione all’ottimizzazione nonlineare – p. 49/82 Continua Questo ci dice che ad ogni iterazione la distanza dall’ottimo (l’origine (0, 0)) viene ridotta del fattore M −1 M +1 che al crescere di M tende a 1, confermando quindi che il metodo dell’antigradiente ha convergenza locale lineare con un coefficiente r che può essere reso arbitrariamente vicino a 1. Introduzione all’ottimizzazione nonlineare – p. 50/82 Newton e quasi-Newton Sotto opportune ipotesi (in particolare si richiede che nel minimo locale x l’Hessiano sia definito positivo), il metodo di Newton ha velocità di convergenza locale quadratica. D’altro canto non si ha alcuna garanzia di convergenza globale (in certe iterazioni la direzione di discesa può non essere definita). Per i metodi quasi-newtoniani si riesce di solito a dimostrare la convergenza superlineare. Per il metodo BFGS si riesce a dimostrare: la convergenza in al più n iterazioni su funzioni quadratiche, se si fanno ricerche lineari esatte; la convergenza globale per funzioni convesse, ma non per funzioni più generali . Introduzione all’ottimizzazione nonlineare – p. 51/82 Caratterizzazione di Dennis-Morè Data una sequenza {xA k } generata da un metodo A, indichiamo con A A − x = x sA k, k+1 k il passo all’iterazione k e con sN k il passo che verrebbe compiuto dal metodo di Newton. Si dimostra che A ha convergenza superlineare se e solo se N N + o(ks = s sA k k), k k ovvero il passo è asintoticamente pari a quello di Newton. Introduzione all’ottimizzazione nonlineare – p. 52/82 Metodi trust-region Metodi iterativi in cui l’iterato successivo xk+1 viene determinato risolvendo un opportuno sottoproblema basato sull’iterato corrente xk . Nel sottoproblema si minimizza un modello quadratico Mk (x) che approssima f in una sfera centrata in xk e con un certo raggio ρk : x̃k ∈ arg min x : kx−xk k2 ≤ρk Mk (x). Quindi si pone xk+1 x k = x̃k se f (x̃k ) ≥ f (xk ) altrimenti Introduzione all’ottimizzazione nonlineare – p. 53/82 Modello quadratico Una tipica scelta per il modello quadratico è: 1 Mk (x) = f (xk ) + ∇f (xk ) (x − xk ) + (x − xk )T Sk (x − xk ), 2 T dove Sk coincide con ∇2 f (xk ) o è una sua approssimazione (come nei metodi quasi-newtoniani). Introduzione all’ottimizzazione nonlineare – p. 54/82 Aggiornamento raggio A ogni iterazione il raggio ρk viene aggiornato in un nuovo valore ρk+1 secondo le regole seguenti. Sia f (x̃k ) − f (xk ) rk = , Mk (x̃k ) − Mk (xk ) il rapporto tra la riduzione effettiva e quella sul modello. Dati 0 < δ1 < δ2 < 1, 0 < γ1 < 1 < γ2 si pone: ρk+1 γ1 kx̃k − xk k = γ2 ρk ρk se rk < δ1 se rk > δ2 e kx̃k − xk k = ρk altrimenti In pratica, se il modello è affidabile, tendiamo a estendere la regione in cui applicarlo, se non lo è la riduciamo. Introduzione all’ottimizzazione nonlineare – p. 55/82 Risultati di convergenza Sia {xk } la sequenza generata da un metodo trust region con Sk = ∇2 f (xk ). Se {xk } ⊆ B , dove B è un insieme limitato (ad esempio, se l’insieme di livello L(f (x0 )) è limitato), allora esiste un punto di accumulazione della sequenza che soddisfa le condizioni necessarie del secondo ordine. Se il punto di accumulazione soddisfa le condizioni sufficienti del secondo ordine, allora la velocità di convergenza locale è quadratica, rk → 1 e il vincolo kx − xk k ≤ ρk diventa inattivo, ovvero kx̃k − xk k < ρk per k sufficientemente grande. Introduzione all’ottimizzazione nonlineare – p. 56/82 Il caso vincolato Introduzione all’ottimizzazione nonlineare – p. 57/82 Direzioni ammissibili Sia x′ un punto ammissibile e {xk } una sequenza di punti ammissibili convergente a x′ con xk − x′ = δk sk ksk k = 1, δk → 0. Sia sk → s. La direzione s viene detta direzione ammissibile rispetto a x′ . L’insieme delle direzioni ammissibili rispetto a x′ viene indicato con F (x′ ). Introduzione all’ottimizzazione nonlineare – p. 58/82 Vincoli linearizzati Sia A(x′ ) = {i ∈ K2 : ci (x′ ) = 0}, l’insieme dei vincoli attivi in x′ (vincoli di diseguaglianza soddisfatti come uguaglianza in x′ ). Se linearizziamo i vincoli con un’espansione di Taylor troncata al primo ordine attorno a x′ , questi avranno la seguente forma: ∇ci (x′ )T (x − x′ ) = 0 i ∈ K1 ci (x′ ) + ∇ci (x′ )T (x − x′ ) ≥ 0 i ∈ K2 L’insieme F (x′ ) delle direzioni ammissibili dei vincoli linearizzati è dato da tutte le direzioni s tali che ∇ci (x′ )T s = 0 i ∈ K1 ∇ci (x′ )T s ≥ 0 i ∈ K2 ∩ A(x′ ) Introduzione all’ottimizzazione nonlineare – p. 59/82 ′ ′ Relazione tra F (x ) e F(x ) In generale si ha F (x′ ) ⊇ F (x′ ). con la possibilità che non valga l’uguaglianza. Esempio con soli vincoli di uguaglianza: c1 (x1 , x2 ) = (x1 − 1)2 + x22 − 1 c2 (x1 , x2 ) = (x1 + 1)2 + x22 − 1 Per x′ = (0, 0) ogni vettore (0, δ) è in F (x′ ) ma essendo x′ l’unico punto ammissibile, si ha che F (x′ ) è vuoto. Introduzione all’ottimizzazione nonlineare – p. 60/82 Constraint qualification Sotto opportune condizioni, dette constraint qualification, vale l’uguaglianza. Possibili condizioni: tutti i vincoli ci sono lineari; i gradienti ∇ci (x′ ) dei vincoli in K1 ∪ A(x′ ) sono tra loro linearmente indipendenti. Nell’esempio: ∇c1 (0, 0) = (−2, 0), ∇c2 (0, 0) = (2, 0) non linearmente indipendenti. Introduzione all’ottimizzazione nonlineare – p. 61/82 Condizione necessaria Insieme direzioni di discesa in x′ : D(x′ ) = {s : ∇f (x′ )T s < 0}. Se x∗ è un minimo locale, allora F (x∗ ) ∩ D(x∗ ) = ∅. Se in x∗ valgono le constraint qualification, allora: F (x∗ ) ∩ D(x∗ ) = ∅. Introduzione all’ottimizzazione nonlineare – p. 62/82 Lemma di Farkas Dati i vettori a1 , . . . , am e g si ha che U = {s : sT g < 0, sT ai ≥ 0, i = 1, . . . , m} è vuoto se e solo se ∃ moltiplicatori λi ≥ 0 tali che g= m X λi ai . i=1 Introduzione all’ottimizzazione nonlineare – p. 63/82 Dimostrazione Se: facile → sT g = m X λi sT ai ≥ 0 |{z} |{z} i=1 ≥0 Solo se: sia C = {v : v = m X ≥0 λi ai , λi ≥ 0, i = 1, . . . , m} i=1 un cono poliedrale e si ipotizzi che g 6∈ C . Allora esiste un iperpiano sT x = 0 (con normale s) che separa g da C , ovvero: sT ai ≥ 0, sT g < 0, come richiesto. Introduzione all’ottimizzazione nonlineare – p. 64/82 Esistenza iperpiano separatore Si consideri minx∈C kg − xk22 . Dato x1 ∈ C si può imporre, senza perdere soluzioni ottime, il vincolo kg − xk2 ≤ kg − x1 k2 che rende la regione ammissibile limitata. Essendo l’obiettivo una funzione continua, il teorema di Weierstrass garantisce l’esistenza di un punto di minimo ĝ . Dal momento che λĝ ∈ C ∀ λ ≥ 0, si ha che kλĝ − gk22 ha un minimo in λ = 1. Quindi, d kλĝ − gk22 |λ=1 = ĝ T (ĝ − g) = 0. dλ Introduzione all’ottimizzazione nonlineare – p. 65/82 Continua Sia x ∈ C ; allora, per convessità, ∀ θ ∈ (0, 1): ĝ + θ(x − ĝ) ∈ C e quindi: kθ(x − ĝ) + ĝ − gk22 ≥ kĝ − gk22 . e: θ2 kx − ĝk22 + θ(x − ĝ)T (ĝ − g) ≥ 0 Prendendo il limite per θ → 0, si ha (x − ĝ)T (ĝ − g) = xT (ĝ − g) ≥ 0. Si prenda ora s = ĝ − g 6= 0 poiché g 6∈ C . Si ha sT x ≥ 0 ∀ x ∈ C, sT g = −sT s < 0, come si voleva dimostrare. Introduzione all’ottimizzazione nonlineare – p. 66/82 Conseguenza D(x∗ ) ∩ F (x∗ ) = s : sT ∇f (x∗ ) < 0 sT ∇ci (x∗ ) = 0 i ∈ K1 T ∗ ∗ s ∇ci (x ) ≥ 0 i ∈ A(x ) è vuoto se e solo se: T ∇f (x∗ ) < 0 s : s sT ∇ci (x∗ ) ≥ 0, −sT ∇ci (x∗ ) ≥ 0 i ∈ K1 sT ∇ci (x∗ ) ≥ 0 i ∈ A(x∗ ) Introduzione all’ottimizzazione nonlineare – p. 67/82 Continua − ∗ ≥ 0, ≥ 0 , i ∈ K , µ , λ se e solo se (lemma di Farkas) ∃ λ+ 1 i i i i ∈ K2 (con µ∗i = 0 se i 6∈ A(x∗ )), tali che: X X + − ∗ ∗ µ∗i ∇ci (x∗ ), (λi − λi )∇ci (x ) + ∇f (x ) = i∈K1 i∈K2 o, equivalentemente, esistono λ∗i , i ∈ K1 e µ∗i ≥ 0, i ∈ K2 tali che X X µ∗i ∇ci (x∗ ). λ∗i ∇ci (x∗ ) + ∇f (x∗ ) = i∈K1 i∈K2 Introduzione all’ottimizzazione nonlineare – p. 68/82 Condizioni KKT Condizioni di Karush-Kuhn-Tucker (KKT) (necessarie del primo ordine): indicata con X X µi ci (x), λi ci (x) − L(x, λ, µ) = f (x) − i∈K1 i∈K2 la funzione Lagrangiana, se x∗ è un minimo locale, allora esistono moltiplicatori di Lagrange λ∗ , µ∗ , tali che ∇x L(x∗ , λ∗ , µ∗ ) = 0; ci (x∗ ) = 0, i ∈ K1 ; ci (x∗ ) ≥ 0, i ∈ K2 ; µ∗ ≥ 0; µ∗i ci (x∗ ) = 0, ∀ i ∈ K2 (condizioni di complementarità). Introduzione all’ottimizzazione nonlineare – p. 69/82 Interpretazione moltiplicatori Lagrange Solo per il caso di vincoli di uguaglianza (simile per gli altri). Si consideri la perturbazione ci (x) = εi dell’i-esimo vincolo di uguaglianza. Lagrangiana L(x, λ, ε) = f (x) − X i∈K1 λi (ci (x) − εi ). Siano x(ε), λ(ε) la soluzione e il moltiplicatore di Lagrange del problema "perturbato". Introduzione all’ottimizzazione nonlineare – p. 70/82 Continua Si ha f (x(ε)) = L(x(ε), λ(ε), ε) (valore ottimo del problema perturbato) . ∂L dL ∂ xT df ∂ λT = = ∇x L + ∇λ L + = λi d εi εi ∂ εi |{z} ∂ εi |{z} ∂ εi =0 =0 Quindi, i moltiplicatori di Lagrange misurano la rapidità di variazione del valore ottimo in corrispondenza di perturbazioni dei vincoli. Introduzione all’ottimizzazione nonlineare – p. 71/82 Problemi convessi Se: f convessa; K1 = ∅; ci , i ∈ K2 sono funzioni concave (equivalentemente: −ci sono funzioni convesse); si parla di problema di programmazione convessa. Introduzione all’ottimizzazione nonlineare – p. 72/82 Programmazione convessa I problemi di programmazione convessa sono caratterizzati dal fatto che: ogni minimo locale è anche globale; se f è strettamente convessa, un minimo globale (se esiste) è unico; le condizioni KKT sono necessarie e sufficienti per identificare i minimi locali (globali). Introduzione all’ottimizzazione nonlineare – p. 73/82 Condizioni secondo ordine Sotto l’ipotesi del primo ordine X X µ∗i ∇ci (x∗ ), λ∗i ∇ci (x∗ ) + ∇f (x∗ ) = i∈K2 i∈K1 se µ∗j > 0, allora le direzioni ammissibili s per cui ∇cj (x∗ )T s > 0, sono di crescita: ∗ T ∇f (x ) s = X i∈K1 λ∗i ∇ci (x∗ )T s + X µ∗i ∇ci (x∗ )T s ≥ µ∗j ∇cj (x∗ )T s > 0. i∈K2 Introduzione all’ottimizzazione nonlineare – p. 74/82 Quindi, sotto l’ipotesi che valgano delle constraint qualification in x∗ , possiamo restringerci alle direzioni G(x∗ ) = {s : ∇ci (x∗ )T s = 0, i ∈ K1 o µ∗i > 0, ∇ci (x∗ )T s ≥ 0 i ∈ A(x∗ ) e µ∗i = 0}. Se xk = x∗ + δk sk con δk → 0, sk → s ∈ G(x∗ ) e ci (xk ) = 0 ∀ i : i ∈ K1 o µ∗i > 0, si ha Si ha anche: f (x∗ + δk sk ) = L(x∗ + δk sk , λ∗ , µ∗ ) L(x∗ + δk sk , λ∗ , µ∗ ) = 2 ∗ ∗ ∗ 2 L(x∗ , λ∗ , µ∗ ) +δk ∇x L(x∗ , λ∗ , µ∗ )T sk + 21 δk2 sT k ∇xx L(x , λ , µ )sk + o(δk ) {z } | {z } | =f (x∗ ) =0 Introduzione all’ottimizzazione nonlineare – p. 75/82 Continua Se x∗ è un minimo locale, allora f (xk ) ≥ f (x∗ ), per k sufficientemente grande. Quindi, per k → ∞: sT ∇2xx L(x∗ , λ∗ , µ∗ )s ≥ 0 ∀ s ∈ G(x∗ ), ovvero, se indichiamo con Z(x∗ ) una matrice le cui colonne formano una base dell’insieme di direzioni G(x∗ ), si ha la condizione necessaria: Z(x∗ )T ∇2xx L(x∗ , λ∗ , µ∗ )Z(x∗ ) semidefinita positiva. Introduzione all’ottimizzazione nonlineare – p. 76/82 Condizione sufficiente del secondo ordine Se x∗ , λ∗ , µ∗ soddisfano le condizioni KKT e Z(x∗ )T ∇2xx L(x∗ , λ∗ , µ∗ )Z(x∗ ) definita positiva, allora x∗ è un minimo locale del problema. Introduzione all’ottimizzazione nonlineare – p. 77/82 Duale di Wolfe maxx,λ,µ L(x, λ, µ) ∇x L(x, λ, µ) = 0 µ≥0 Se: il problema è di programmazione convessa; x∗ è una sua soluzione con i corrispondenti moltiplicatori di Lagrange λ∗ , µ∗ ; in x∗ vale una constraint qualification; allora (x∗ , λ∗ , µ∗ ) risolve il duale di Wolfe e i valori ottimi dei due problemi coincidono. Introduzione all’ottimizzazione nonlineare – p. 78/82 Esempio: problema lineare min cT x AT x ≥ b x≥0 Duale di Wolfe: maxx,µ,λ cT x − µT (AT x − b) − γ T x c − Aµ − γ = 0 µ, γ ≥ 0 Introduzione all’ottimizzazione nonlineare – p. 79/82 Equivalentemente, osservando che c = Aµ + γ : maxµ µT b Aµ ≤ c µ≥0 Si noti che questo coincide con il duale già visto per questi problemi di PL e che i moltiplicatori di Lagrange coincidono con le variabili del duale. Dalla soluzione ottima µ∗ del duale, si ricava immediatamente la soluzione ottima del primale a partire dalle condizioni di complementarità: γ ∗ T x∗ = (Aµ∗ − c)T x∗ = 0 µ∗ T (AT x∗ − b) = 0 Introduzione all’ottimizzazione nonlineare – p. 80/82 Esempio: problema quadratico minx 1 T Tx x Qx + c 2 AT x ≥ b Q simmetrica definita positiva. Duale di Wolfe: maxx,µ 1 T T x − µT (AT x − b) x Qx + c 2 Qx + c − Aµ = 0 µ≥0 Introduzione all’ottimizzazione nonlineare – p. 81/82 Osservando che x = Q−1 (Aµ − c), si ha maxµ − 12 µT (AT Q−1 A)µ + µT (b + AT Q−1 c) − 21 cT Q−1 c µ≥0 Dalla soluzione ottima µ∗ del duale, si ricava immediatamente la soluzione ottima del primale x∗ = Q−1 (Aµ∗ − c). Introduzione all’ottimizzazione nonlineare – p. 82/82