Esercizi su ottimizzazione non vincolata

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