Esercizi su ottimizzazione non vincolata 1. Rispondere alle seguenti domande (a) Provare che se f ∈ C 1 la direzione dell’antigradiente è la direzione di massima discesa. Nelle stesse ipotesi provare che le curve di livello sono ortogonali al gradiente. (b) Scrivere le pseudocodice di un generico algoritmo di discesa per un problema di programmazione non lineare non vincolato. (c) Perché a partire da una generica soluzione ammissibile xk la ricerca unidimensionale di un algoritmo di discesa avviene in una direzione che forma un angolo ottuso con il gradiente della funzione da minimizzare. (d) Enunciare i più comuni criteri di stop per gli algoritmi di discesa. (e) Cosa si intende per affidabilità ed efficienza di un algoritmo? Come si misurano queste proprietà? (f) La convergenza globale di un algoritmo garantisce che l’algoritmo permette di determinare sempre un minimo assoluto? (g) Gli algoritmi convergono sempre in un numero finito di passi ad un minimo (almeno locale)? (h) Cosa garantiscono le condizioni di Wolfe? Il metodo di Armijo le soddisfa? Nel caso non il metodo di Armijo non possa garantire la soddisfazione di tali condizioni, spiegare perché ciò può avvenire. (i) Fare un esempio in cui la sola condizione f (xk+1 ) < f (xk ) non garantisce la convergenza di un algoritmo di discesa ad un minimo locale. (j) Quale è la velocità di convergenza di un algoritmo che per cui, in prossimità del valore ottimo x∗ , le distanze ||xk − x∗ || diminuiscono in modo proporzionale a 1 1 1 1 2 , 4 , 16 , 256 , . . .? Quale è la velocità di convergenza di un algoritmo in cui le stesse distanze diminuiscono in modo proporzionale a 1 1 1 1 2 , 4 , 8 , 16 , . . .? Quale è la velocità di convergenza di un algoritmo in cui le stesse distanze diminuiscono in modo proporzionale a 12 , 13 , 14 , 15 , . . .? (k) L’algoritmo del gradiente soddisfa sempre la condizioni d’angolo? (l) Ammesso che ad ogni passo dell’algoritmo del gradiente siano soddisfatte le condizioni di Wolfe, tale algoritmo converge globalmente? E con che velocità? (m) Il metodo di Newton (puro) converge globalmente? Quale è la sua velocità di convergenza a partire da punti all’interno di un intorno sufficientemente piccolo di un punto di minimo locale? (n) Quale è l’idea base dell’algoritmo di Newton (puro)? È necessaria la ricerca unidimensionale ad ogni iterazione dell’algoritmo? (o) I metodi di Newton effettuano ricerche unidimensionali nella direzione dell’antigradiente? (p) Quale è l’idea base dell’algoritmo della regione di confidenza? 1 (q) La funzione quadratica f˜(x) = 1 T T 2 x Ax + b x + c approssima la funzione f (x) all’interno della Pn g(x) = i=1 x2i = xT Ix ≤ r2 centrata in x0 = 0. Si supponga che regione di confidenza sferica il minimo di f˜(x) cada sulla frontiera della regione di confidenza. Si forzi quindi la funzione f˜(x) ad essere convessa sostituendo alla matrice A la matrice  = A + ξI, per un opportuno ξ ≥ 0. Si dimostri che il minimo della funzione ottenuta in tale modo f¯(x) = 1 T 2 x (A + ξI)x + bT x + c se giace sulla frontiera coincide con il minimo di f˜(x). Si generalizzi tale risultato per regioni di confidenza centrate in un generico punto x0 . (r) Perché è preferibile applicare l’algoritmo del gradiente coniugato piuttosto che quello di Newton per istanze di problemi di programmazione non lineare molto grandi? Quali sono i pro e i contro dei due algoritmi. (s) Quale è l’idea base dell’algoritmo del gradiente coniugato? (t) Quale è l’idea base degli algoritmi di quasi–Newton? Questi algoritmi convergono globalmente e con che velocità? (u) Esistono algoritmi di discesa specializzati per problemi particolari? 2. Trovare in maniera analitica il minimo delle seguenti funzioni (a) Funzione di Rosenbrock f (x1 , x2 ) = 100(x2 − x21 )2 + (1 − x1 )2 . (b) Funzione f (x1 , x2 ) = (x21 + x22 − 3)2 . 2 2 (c) Funzione f (x1 , x2 ) = e(x1 +8x2 )/100 . 2 (d) Funzione f (x1 , x2 ) = e−x1 cos(x1 + 3x2 ). (e) Funzione f (x1 , x2 ) = (x1 +x2 )2 . (4x21 +x22 +1) (f) Funzione f (x1 , x2 ) = −(x21 + x22 )e−(x1 −1) 2 −x22 . (g) Funzione f (x1 , x2 ) = (x1 − 1)2 + 3x22 + kx1 x2 . Studiare il minimo al variare di k. (h) Funzione f (x1 , x2 ) = x21 (x2 + 3). 3. Determinare la natura, i.e., se stazionari e se di massimo o minimo, dei punti x∗ ottenuti con algoritmi di ricerca dell’ottimo applicati alle funzioni date (a) Funzione f (x1 , x2 ) = p x21 + x1 x2 + x22 + 2x1 + x2 + 1, punto x∗ = (−1, 0). 2 2 (b) Funzione f (x1 , x2 ) = ex1 +3x2 + x1 . Punto x∗ = (−0.419365, 0). 2 2 (c) Funzione f (x1 , x2 ) = −(x21 + x22 )e−(x1 +3x2 ) + 0.2x1 + 0.3x2 . Punto x∗ = (−0.124144, −0.214183). (d) Funzione f (x1 , x2 ) = (x21 − x22 )2 . Punto x∗ = (0, 0). (e) Funzione f (x1 , x2 ) = cos2 (x1 x22 ). Punto x∗ = (1.09803, 1.19606). (f) Funzione f (x1 , x2 ) = x21 − x42 . Punto x∗ = (2.953193 × 10−14 , 0). (g) Funzione f (x1 , x2 ) = x21 (x22 − 1) sin(x2 − 1). Punto x∗ = (0, 0.321046). 2 (h) Funzione f (x1 , x2 , x3 ) = 4x21 + 4x22 + 2x23 + 2x1 x2 + 2x1 x3 + x2 x3 . Punto x∗ = (0, 0, 0). 4. Applicare alle seguenti funzioni due iterazioni dell’algoritmo del gradiente a partire dal punto x0 . Applicare Armijo come metodo di ricerca unidimensionale, con α0 = 1, γ = 0.01, σ = 0.5. (a) Funzione f (x1 , x2 ) = x21 (x2 + 3). Punto x0 = (1, −1). (b) Funzione f (x1 , x2 ) = (x21 + x22 − 3)2 . Punto x0 = (1, 1). (c) Funzione f (x1 , x2 ) = (x1 +x2 )2 . (4x21 +x22 +1) Punto x0 = (0, 1). (d) Funzione f (x1 , x2 ) = (x1 − 1)2 + 3x22 + x1 x2 . Punto x0 = (1, 1). 5. Applicare alle seguenti funzioni due iterazioni dell’algoritmo di Newton con ricerca unidimensionale a partire dal punto x0 , fermandosi se l’angolo formato tra dk e il gradiente è acuto. Applicare Armijo come metodo di ricerca unidimensionale, con α0 = 1, γ = 0.01, σ = 0.5. (a) Funzione f (x1 , x2 ) = x21 (x2 + 3). Punto x0 = (1, −1). (b) Funzione f (x1 , x2 ) = (x21 + x22 − 3)2 . Punto x0 = (1, 1). (c) Funzione f (x1 , x2 ) = (x1 +x2 )2 . (4x21 +x22 +1) Punto x0 = (0, 1). (d) Funzione f (x1 , x2 ) = (x1 − 1)2 + 3x22 + x1 x2 . Punto x0 = (1, 1). 6. Applicare alle seguenti funzioni due iterazioni dell’algoritmo di Fletcher–Reeves: a partire dal punto x0 . Applicare Armijo come metodo di ricerca unidimensionale, con α0 = 1, γ = 0.01, σ = 0.5. (a) Funzione f (x1 , x2 ) = x21 (x2 + 3). Punto x0 = (1, −1). (b) Funzione f (x1 , x2 ) = (x21 + x22 − 3)2 . Punto x0 = (1, 1). (c) Funzione f (x1 , x2 ) = (x1 +x2 )2 . (4x21 +x22 +1) Punto x0 = (0, 1). (d) Funzione f (x1 , x2 ) = (x1 − 1)2 + 3x22 + x1 x2 . Punto x0 = (1, 1). Risposte agli esercizi • Es. 1 Per questo esercizio sono riportate solo le risposte agli esercizi che non possono essere trovate banalmente sui lucidi. – (1a) Se f ∈ C 1 , la funzione f (x) nell’intorno di un generico punto x0 può essere approssimata dal piano tangente f (x) ' f (x0 )+∇f (x0 )T (x0x ). Ne consegue che la variazione di f (x) è approssimabile con f (x)−f (x0 ) ' ∇f (x0 )T (x0x ) a meno di infinitesimi di ordine superiore. Poiché ∇f (x0 )T (x0x ) = ||∇f (x0 )||||(x0x )|| cos θ, dove θ è l’angolo tra ∇f (x0 ) e (x0x ), ne consegue che tra tutti i punti con uguale distanza da x0 quello per cui (x − x0 ) forma un angolo uguale a π induce una diminuzione massima di f (x). In modo analogo si osserva che i punti per cui (x − x0 ) formano un angolo uguale a ± π2 non inducono variazioni del valore di f (x) e quindi appartengono ala curva di livello di x0 . 3 – (1c) Vedi risposta precedente. – (1i) Si consideri un algoritmo che scelga il passo di discesa della generica iterazione k uguale a αk = 2−k e lo si applichi alla funzione unidimensionale f (x) = x2 − 10x a partire dal punto x0 = 0. Seguendo la direzione di discesa alla generica iterazione k l’algoritmo determina il punto Pk xk+1 = r=0 2−r per cui f (xk+1 ) < f (xk ). L’algoritmo però converge al punto x = 2 invece che sul minimo x∗ = 5. – (1j) Il primo algoritmo converge con velocità quadratica, il secondo lineare, il terzo sublineare. – (1q) Le condizioni di KKT impongono che se f˜(x) ha un minimo x̃ sulla frontiera della regione di confidenza allora esiste λ̃ ≥ 0 tale che ∇f˜(x̃) + λ̃∇g(x̃) = Ax̃ + b + 2λ̃I x̃ = 0 con x̃T I x̃ = r2 . Analogamente se f¯(x) ha un minimo x̄ sulla frontiera della regione di confidenza allora esiste λ̄ ≥ 0 tale che ∇f¯(x̄) + λ̄∇g(x̃) = (A + ξI)x̄ + b + 2λ̄I x̄ = 0 con x̄T I x̄ = r2 . Poiché si può riscrivere (A + ξI)x̄ + b + 2λ̄I x̄ = Ax̄ + b + (ξ + 2λ̄)I x̄ = 0, le condizioni di KKT coincidono per x̃ e per x̄ se si può porre ξ + 2λ̄ = 2λ̃ col vincolo che λ̄ ≥ 0. Ne consegue che per 0 ≤ ξ ≤ 2λ̃ le funzioni f˜(x) e f¯(x) hanno stesso punto di minimo, mentre per ξ > 2λ̃ la funzione f¯(x) ha minimo all’interno della regione di confidenza. Si osservi infine che per ξ → ∞ il minimo di f¯(x) tende a x0 . Quanto dimostrato prova che se si forza una quadrica f˜(x) ad essere convessa all’interno di una regione di confidenza sferica il minimo della nuova funzione f¯(x) giace sul minimo della funzione f˜(x) oppure su un punto intermedio tra il minimo della funzione originaria e il punto x0 . Tale ragionamento può essere banalmente ripetuto per x0 6= 0, dopo avere eseguito un’opportuna traslazione degli assi in modo che l’origine coincida con x0 . • Es. 2 – (2a) La funzione di Rosenbrock è coerciva e in C 1 , gli unici punti di minimo devono essere quindi stazionari, i.e, devono fare annullare il gradiente. In particolare, ∇f (x1 , x2 ) = (−2(1 − x1 ) − 400x1 (−x21 + x2 ), 200(−x21 + x2 ) = 0 solo in (1,1). Il punto (1,1) è di minimo poiché ∇2 f (1, 1) 0. Tale minimo essendo unico è globale. – (2b) La funzione f è coerciva e in C 1 , gli unici punti di minimo devono essere quindi stazionari. ∇f (x1 , x2 ) = (4x1 (x21 + x22 − 3), 4x2 (x21 + x22 − 3)) = 0 in (0, 0) e in tutti i punti della circonferenza x21 + x22 − 3 = 0. Poiché ∇2 f (0, 0) ≺ 0 allora (0, 0) è un massimo. Poiché ∇2 f (x1 , x2 ) 0 in tutti i punti della circonferenza x21 + x22 − 3 = 0 allora tali punti non sono di massimo. La minimalità (e il non essere delle selle) di tali punti è ovvia in quanto sono gli unici punti in cui si annulla una funzione non negativa. – (2c) La funzione f è coerciva e in C 1 , gli unici punti di minimo devono essere quindi stazionari. 2 2 2 2 1 2 ∇f (x1 , x2 ) = ( 50 x1 e(x1 +8x2 )/100 , 25 x2 e(x1 +8x2 )/100 ) = 0 in (0, 0). Poiché ∇2 f (0, 0) 0 allora (0, 0) è il minimo assoluto. – (2d) La funzione f è in C 1 , gli unici punti di minimo finiti devono essere quindi stazionari. 2 2 ∇f (x1 , x2 ) = (−e−x1 (2x1 cos(x1 + 3x2 ) + sin(x1 + 3x2 ), −3e−x1 sin(x1 + 3x2 )) = 0 in tutti i punti 4 kπ 2 (0, kπ 3 ) for k = 0, ±1, ±2, . . .. Poiché ∇ f (0, 3 ) ha i determinanti delle due sottomatrici principali uguali a −3 cos(kπ) e a 18 cos2 (kπ) ne consegue che sono punti di minimo tutti i punti tali che cos(kπ) < 0, ovvero i punti associati a k dispari. I punti associati a k pari sono di massimo. – (2e) La funzione f è in C 1 , gli unici punti di minimo finiti devono essere quindi stazionari. ∇f (x1 , x2 ) = ( (x1 +x2 )(−8x1 (x1 +x2 )+2(4x21 +x22 +1) (x1 +x2 )(−2x2 (x1 +x2 )+2(4x21 +x22 +1) , ) (4x21 +x22 +1)2 (4x21 +x22 +1)2 = 0 in tutti i punti della retta x2 = −x1 . Poiché ∇2 f (x1 , −x1 ) ha i determinanti delle due sottomatrici principali uguali a 2 1+5x21 e a 0 ne consegue che tutti i punti della retta non sono di massimo. La minimalità (e il non essere delle selle) di tali punti è ovvia in quanto sono gli unici punti in cui si annulla una funzione non negativa. Gli estremi superiori della funzione si trovano invece all’infinito. – (2f) La funzione f è in C 1 , gli unici punti di minimo finiti devono essere quindi stazionari. ∇f (x1 , x2 ) = (e−(x1 −1) punti (0, 0), √ √ ( 1−2 5 , 0), 2 −x22 (x1 − x21 − x22 + x1 x22 + x31 ), e−(x1 −1) √ 2 −x22 x2 (1 + x21 + x22 )) = 0 nei ( 1+2 5 , 0). Poiché ∇2 f (0, 0) ≺ 0 allora (0, 0) è un massimo. Poiché √ ∇2 f ( 1+2 5 , 0) 0 allora ( 1+2 5 , 0) è un minimo. Il rimanente punto è una sella. Altri estremi superiori sono all’infinito. La funzione infatti è negativa, ma in qualunque direzione all’infinito tende a zero. – (2g) La funzione f è in C 1 , gli unici punti di minimo finiti devono essere quindi stazionari. 2k 12 2k 2 ∇f (x1 , x2 ) = (2(−1+x1 )+kx2 , kx1 +6x2 ) = 0 nel punto (− k212 −12 , k2 −12 ). Poiché ∇ f (− k2 −12 , k2 −12 ) ha i determinanti delle due sottomatrici principali uguali a 2 e a 12 − k 2 ne consegue che tutti i √ √ punti sono di minimo per −2 3 < k < 2 3, per questi valori di k la funzione è anche coerciva. 2k Per k al di fuori del precedente intervallo il punto (− k212 −12 , k2 −12 ) è una sella e sia gli estremi √ superiori che gli estremi inferiori della funzione sono all’infinito. Per k = ±2 3 la funzione non ha punti stazionari. – (2h) La funzione f è in C 1 , gli unici punti di minimo finiti devono essere quindi stazionari. ∇f (x1 , x2 ) = (2x1 (3 + x2 ), x21 ) = 0 in tutti i punti (0, x2 ). Poiché ∇2 f (0, x2 ) ha i determinanti delle due sottomatrici principali uguali a 2(3 + x2 ) e a 0 ne consegue che i punti della retta non sono di minimo per x2 < −3 e non sono di massimo per x2 > −3. La massimalità (e il non essere delle selle) dei punti per x2 < −3 è ovvia in quanto sono gli unici punti in cui si annulla una funzione non positiva. La minimalità (e il non essere delle selle) dei punti per x2 > −3 è ovvia in quanto sono gli unici punti in cui si annulla una funzione non negativa. Tali minimi e massimi sono solo locali in quanto gli estremi superiori e inferiori della funzione si trovano all’infinito. • Es. 3 – (3a) Il punto (−1, 0) non è stazionario poiché f non è differenziabile in esso. In ogni caso il punto (−1, 0) è di minimo infatti in esso si annulla una funzione non negativa. I minimi si possono infatti trovare tra i punti stazionari, i punti in cui la funzione non è differenziabile. Estremi inferiori si possono anche trovare all’infinito. – (3b) Il punto x∗ è un minimo locale, infatti ∇f (x∗ ) ' 0 e ∇2 f (x∗ ) 0. 5 – (3c) Il punto x∗ è un minimo locale, infatti ∇f (x∗ ) ' 0 e ∇2 f (x∗ ) 0. – (3d) Il punto x∗ è un minimo locale, infatti annulla una funzione non negativa. Si ottiene ∇f (x∗ ) = 0 quindi il punto è stazionario, ma nulla si può dire su di esso dallo studio dell’hessiana che risulta nulla ∇2 f (x∗ ) = 0. Infatti, il software utilizzato per la ricerca del minimo ritorna il messaggio di warning “Encountered a vanishing gradient. The result returned may not be a minimum; it may be a maximum or a saddle point”. – (3e) Il punto x∗ è un minimo locale, infatti annulla una funzione non negativa. Si ottiene ∇f (x∗ ) = 0 quindi il punto è stazionario, ma nulla si può dire su di esso dallo studio dell’hessiana che risulta nulla ∇2 f (x∗ ) = 0. – (3f) Il punto x∗ è evidentemente un punto di sella, minimo rispetto a x1 e massimo per x2 . Si ottiene ∇f (x∗ ) = 0 quindi il punto è stazionario, ma nulla si può dire su di esso dallo studio dell’hessiana che risulta essere semidefinita positiva. Si noti che in questo caso il software utilizzato per la ricerca del minimo non ha ritornato nemmeno il messaggio di warning. A tale software era stato dato come punto iniziale dell’algoritmo di discesa x0 = (1, 0). – (3g) Il punto x∗ è un minimo locale, infatti annulla una funzione localmente non negativa. Si ottiene ∇f (x∗ ) = 0 quindi il punto è stazionario, ma nulla si può dire su di esso dallo studio dell’hessiana che risulta nulla ∇2 f (x∗ ) = 0. Infatti, il software utilizzato per la ricerca del minimo ritorna il messaggio di warning “Encountered a vanishing gradient. The result returned may not be a minimum; it may be a maximum or a saddle point”. – (3h) Il punto x∗ è un minimo locale, infatti ∇f (x∗ ) = 0 e ∇2 f (x∗ ) 0. • Es. 4 In questi risultati la direzione di ricerca unidimensionale viene normalizzata prima di applicare Armijo. – (4a) num. passo xk ∇f (xk ) f (xk ) 0 ( 1, -1 ) ( 4,1 ) 2 1 ( 0.0298575, -1.24254) ( 0.104947,0.00089147 ) 0.00156673 2 (-0.00139,-1.24280) (-0.00488,0) 0 – (4b) num. passo xk ∇f (xk ) f (xk ) 0 ( 1,1 ) ( -4, -4 ) 1 1 ( 1.35355, 1.35355 ) ( 3.59619, 3.59619 ) 0.44118 2 ( 1.17678, 1.17678 ) ( -1.08449, -1.08449 ) 0.053081 – (4c) 6 num. passo xk ∇f (xk ) f (xk ) 0 ( 0,1 ) ( 1,0.5 ) 0.5 1 ( -0.894427, 0.552786 ) ( -0.110512, -0.158009 ) 0.0259053 2 ( -0.751144,0.757652 ) ( 0.00341497,0.00339325 ) 0.0000110559 num. passo xk ∇f (xk ) f (xk ) 0 ( 1, 1 ) ( 1, 7 ) 4 1 ( 0.858579, 0.0100505 ) ( -0.272792, 0.918882 ) 0.0289322 2 ( 0.929728, -0.229611 ) ( -0.370155, -0.44794) -0.0503739 – (4d) • Es. 5 In questi risultati la direzione di ricerca unidimensionale viene normalizzata prima di applicare Armijo. – (5a) num. passo xk −∇2 f (xk )−1 ∇f (xk ) f (xk ) 0 (1,-1) (-0.5,-1) 2 1 (0.552786,-1.89443) (-0.276393,-0.552786) 0.337833 2 (0.105573,-2.78885) (-0.0527864,-0.105573) 0.00235335 – (5b) num. passo xk −∇2 f (xk )−1 ∇f (xk ) f (xk ) 0 (1,1) (0.333333,0.333333) 1 1 (1.35355,1.35355) (-0.112485,-0.112485) 0.44118 2 (1.17678,1.17678) (0.05107,0.05107) 0.053081 – (5c) num. passo xk −∇2 f (xk )−1 ∇f (xk ) f (xk ) 0 (0,1) (1,1) 0.5 0 La funzione f (x1 , x2 ) non è convessa in x , l’algoritmo continua a restituire lo stesso punto x0 . – (5d) num. passo xk −∇2 f (xk )−1 ∇f (xk ) f (xk ) 0 (1,1) (0.0909091,-1.18182) 4 1 (1.0767, 0.00294551) (0.0142126,-0.184764) 0.00907981 2 (1.09587,-0.246318) (-0.00496153, 0.0644999) -0.0787238 • Es. 6 In questi risultati la direzione di ricerca unidimensionale NON viene normalizzata prima di applicare Armijo. Questa scelta è in accordo con quanto definito dall’algoritmo di FR che esprimono d solo in funzione dell’antigradiente e della direzione di discesa precedente. – (6a) 7 Preliminarmente si osservi che per questo esercizio ∇f (x) = (2x1 (x2 + 3), x21 ). Si applichi ora l’algoritmo di FR Passo 0 x0 = (1, −1) e per definizione β = 0, da cui d0 = −∇f (x0 ) = (−4, −1). Si cerca quindi un minimo locale in modo approssimato lungo la direzione d utilizzando il metodo di Armijo con α0 = 1, γ = 0.01 e σ = 0.5: Passo 0.0 Il primo tentativo con Armijo è il punto x0 + α0 d0 = (1, −1) + 1(−4, −1) = (−3, −2). Si confronta quindi f (−3, −2) = 9 con il valore assunto nello stesso punto (−3, −2) dalla funzione lineare (retta) che in x0 assume valore f (x0 ) e ha pendenza 0 γ∇f (x0 )T ||dd0 || . Si confronta quindi f (x0 + α0 d0 ) con f (x0 ) + α0 γ∇f (x0 )T d0 = 1.83, poiché 9 > 1.83 si deve compiere un ulteriore passo di Armijo. Per quanto riguarda il calcolo di f (x0 ) + α0 γ∇f (x0 )T d0 si osservi che il valore della derivata direzionale in x0 0 lungo la direzione d0 è dato da ∇f (x0 )T ||dd0 || , si osservi inoltre che il passo α0 d0 è stato compiuto lungo una direzione d0 non normalizzata e quindi la sua ampiezza è ||α0 d0 ||. Ne consegue che il affinché il test svolto dall’algoritmo di Armijo avvenga rispetto allo stesso punto si deve valutare il valore assunto dalla funzione lineare ad una distanza ||α0 d0 || da 0 x0 , si ottiene quindi f (x0 ) + α0 ||d0 ||γ∇f (x0 )T ||dd0 || = f (x0 ) + α0 γ∇f (x0 )T d0 . Passo 0.1 Secondo tentativo con Armijo α1 = σα0 = 0.5 × 1 = 0.5, da cui x0 + α1 d0 = (1, −1) + 0.5(−4, −1) = (−1, −1.5). Si deve confrontare quindi f (−1, −1.5) = 1.5 con f (x0 ) + 0.5γ∇f (x0 )T d0 = 1.915. Poiché 1.5 < 1.915, la procedura di Armijo si interrompe restituendo α0 = α1 = 0.5 ovvero x1 = (−1, −1.5). (Notare che α0 fa riferimento all’ampiezza del passo delle iterazioni esterne dell’algoritmo di FR e α1 fa riferimento all’ampiezza del passo fatto con Armijo.) Passo 1 x1 = (−1, −1.5), si ha ∇f (x1 )|| = (−3, 1) da cui β = ||∇f (x1 )||2 ||∇f (x0 )||2 = 0.588, quindi cui d1 = −∇f (x1 ) + βd0 = (0.647, −1.588). Si cerca quindi un minimo locale in modo approssimato lungo la direzione d1 utilizzando il metodo di Armijo con α0 = 1, γ = 0.01 e σ = 0.5: Passo 1.0 Il primo tentativo con Armijo è il punto x1 +α0 d1 = (−1, −1.5)+1(0.647, −1.588) = (−0.352, −3.088). Si confronta quindi f (−0.352, −3.088) = −0.011 con f (x1 )+α0 γ∇f (x1 )T d1 = 1.464, poiché −0.011 < 1.464 la procedura di Armijo si interrompe restituendo α1 = α0 = 1 ovvero x2 = (−0.352, −3.088). Passo 2 x2 = (−0.352, −3.088), si ha ∇f (x2 )|| = (0.062, 0.124) da cui β = ||∇f (x2 )||2 ||∇f (x1 )||2 = 0.002, quindi cui d2 = −∇f (x2 ) + βd1 = (−0.061, −0.127). Si cerca quindi un minimo locale in modo approssimato lungo la direzione d1 utilizzando il metodo di Armijo e si itera. La tabella successiva riporta in sintesi le soluzioni xk successive che si ottengono nei primi passi dell’algoritmo di FR. 8 num. passo xk β f (xk ) 0 (1,-1) 0 2 1 (-1,-1.5) 0.588235 1.5 2 (-0.352941, -3.08824) 0.00193963 -0.0109912 – (6b) num. passo xk β f (xk ) 0 (1,1) 0 1 1 (1.25,1.25) 0.0244141 0.015625 2 (1.21704,1.21704) 0.085874 0.00141544 – (6c) num. passo xk β f (xk ) 0 (0,1) 0 0.5 1 (-1,0.5) 0.042978 0.047619 2 (-0.925064,0.678057) 0.329725 0.0124955 – (6d) num. passo xk β f (xk ) 0 (1,1) 0 4 1 (0.75, -0.75) 0.3125 1.1875 2 (1.21875,0.03125) 0.140625 0.0888672 9