26.11.2014 Views

METODI DI LINE-SEARCH - Metodi e Modelli matematici per le ...

METODI DI LINE-SEARCH - Metodi e Modelli matematici per le ...

METODI DI LINE-SEARCH - Metodi e Modelli matematici per le ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Relazione del corso di:<br />

<strong>Metodi</strong> di Ottimizzazione<br />

e di Punto Interno:<br />

<strong>METO<strong>DI</strong></strong> <strong>DI</strong> <strong>LINE</strong>-<strong>SEARCH</strong><br />

Prof. G. Zilli<br />

Dottorando: Manolo Venturin<br />

XVIII Ciclo (2002-03)<br />

Dottorato in Matematica Computaziona<strong>le</strong><br />

2 febbraio 2006


Capitolo 1<br />

Minimizzazione monodimensiona<strong>le</strong> in<br />

R 1<br />

I metodi di minimizzazione monodimensiona<strong>le</strong> più noti sono<br />

• Bisezione Sequenzia<strong>le</strong>,<br />

• Fibonacci,<br />

• Newton,<br />

• Interpolazione Polinomia<strong>le</strong>,<br />

• e varianti.<br />

Tutti gli algoritmi precedenti sono validi sotto talune ipotesi e quindi non è detto che si<br />

abbia convergenza a partire da un arbitrario punto inizia<strong>le</strong>. Per risolvere questo prob<strong>le</strong>ma<br />

la tecnica usata più frequentemente consiste nel costruire, mediante varianti dell’algorimo di<br />

bisezione, un intervallo su cui si possa applicare l’algoritmo desiderato. Ovviamente questa<br />

tecnica è applicabi<strong>le</strong> solo al caso monodimensiona<strong>le</strong> in quanto l’estensione ad una dimensione<br />

n > 1 richiederebbe la valutazione della funzione su un sottospazio di dimensione n − 1. Ad<br />

esempio, nel caso in cui n sia pari a due, bisognerebbe sa<strong>per</strong> valutare la funzione lungo segmenti<br />

di rette. Dunque, cercare di estendere gli algoritmi di minimizzazione monodimensiona<strong>le</strong> in R 1<br />

mediante varianti basate su una procedura di bisezione estesa a casi di dimensione maggiore<br />

di uno risulta improponibi<strong>le</strong>. L’estensione proposta dai metodi di Line-Search, invece, consiste<br />

nel utilizzare più volte la minimizzazione monodimensiona<strong>le</strong> lungo opportune direzioni.<br />

Per un ulteriore approfondimento sui metodi di miminizzazione monodimensiona<strong>le</strong> in R 1 , si<br />

consultino i seguenti testi:<br />

• V. Comincioli, Analisi Numerica: <strong>Metodi</strong>, <strong>Modelli</strong>, Applicazioni. McGraw-Hill. Capp. 7<br />

e 8.<br />

• D. G. Luenberger, Linear and Nonlinear Programming. Addison Wes<strong>le</strong>y. Cap. 7.<br />

1


Capitolo 2<br />

<strong>Metodi</strong> di Line-search<br />

2.1 Introduzione<br />

In questo capitolo viene analizzata un’estensione degli algoritmi precedenti <strong>per</strong> risolvere il<br />

seguente tipo di prob<strong>le</strong>ma:<br />

¯x = arg min<br />

x∈Ω f(x)<br />

dove f è detta funzione obiettivo. Ricordiamo che ¯x è un punto di minimo<br />

relativo se esiste un intorno I(¯x) ta<strong>le</strong> che f(¯x) < f(x) ∀x ∈ I(¯x);<br />

assoluto se f(¯x) < f(x) ∀x ∈ Ω.<br />

Ovviamente, nella valutazione del<strong>le</strong> prestazioni degli algoritmi si deve tener conto del<strong>le</strong><br />

ipotesi che si hanno sulla funzione f, quali convessità, continuità ecc.<br />

2.2 Convergenza Loca<strong>le</strong>/Convergenza Globa<strong>le</strong><br />

Una strategia <strong>per</strong> risolvere il suddetto prob<strong>le</strong>ma consiste nel cercare di rendere globali gli<br />

algoritmi che possiedono convergenza loca<strong>le</strong>, ma da quanto visto precedentemente, ciò non è<br />

sempre possibi<strong>le</strong> ed inoltre non è detto che quando l’algoritmo converge, lo faccia verso un punto<br />

di minimo loca<strong>le</strong>/globa<strong>le</strong>. Il fallimento può essere attribuito (<strong>per</strong> la struttura dell’algoritmo<br />

vedi sotto) o alla mancanza di una direzione di discesa o ad un passo di ricerca troppo lungo,<br />

e quest’ultimo tipo di fallimento si ri<strong>per</strong>cuote in un aumento del numero di valutazioni della<br />

funzione f. Comunque, la minimizzazione è effettuata <strong>per</strong> ricercare un punto stazionario o tutto<br />

al più un punto di minimo loca<strong>le</strong> mentre non esistono strategie generali <strong>per</strong> la ricerca di un<br />

minimo globa<strong>le</strong>. Le procedure utilizzate solitamente cercano di adattare l’algoritmo di Newton<br />

al caso desiderato in quanto vogliono sfruttare l’ordine di convergenza quadratico; tipicamente si<br />

osserva un ristagno del valore della funzione obiettivo <strong>per</strong>durare <strong>per</strong> molte iterazioni, dovuto alla<br />

ricerca del<strong>le</strong> condizioni di convergenza dell’algoritmo, seguito da una convergenza molto veloce.<br />

L’idea, invece, che sta alla base dei metodi di Line-Search consiste nel cercare di risparmiare<br />

il più possibi<strong>le</strong> sul numero di valutazioni della funzione obiettivo trovarndo, di volta in volta,<br />

una riduzione sostanzia<strong>le</strong> della funzione obiettivo.<br />

Al fine di capire meglio gli algoritmi di Line-Search vediamo alcune proprietà dell’algoritmo<br />

di Newton (formula di aggiornamento del passo) <strong>per</strong> risolvere il prob<strong>le</strong>ma ∇f(x) = 0:<br />

che lo rendono natura<strong>le</strong>mte importante:<br />

x k+1 = x k − (∇ 2 f(x k )) −1 ∇f(x k ) (2.1)<br />

2


CAPITOLO 2. <strong>METO<strong>DI</strong></strong> <strong>DI</strong> <strong>LINE</strong>-<strong>SEARCH</strong> 3<br />

1. L’equazione (2.1) può essere vista come un modello lineare loca<strong>le</strong> di f sviluppato nell’intorno<br />

di x k e risolto ponendo ugua<strong>le</strong> a zero l’approssimazione; da questo fatto segue anche<br />

l’ordine di convergenza quadratico.<br />

2. L’equazione (2.1) può essere interpretata come la ricerca della radice dell’equazione ∇f =<br />

0 o del punto di minimo lungo la direzione −(∇ 2 f(x k )) −1 ∇f(x k ); questa proprietà è<br />

col<strong>le</strong>gabi<strong>le</strong> ai metodi di Line-Search (vedi sotto).<br />

3. L’equazione (2.1) converge in un intorno della soluzione con ordine di convergenza quadratico;<br />

più precisamente va<strong>le</strong> il seguente<br />

Teorema 1. Sia f due volte differenziabi<strong>le</strong> e sia ∇ 2 f(x) l’hessiano di f lipschitziano in<br />

un intorno della soluzione ¯x in cui siano soddisfatte <strong>le</strong> condizioni sufficienti (∇f(¯x) = 0<br />

e ∇ 2 f(¯x) > 0). Sia x k+1 = x k − (∇ 2 f(x k )) −1 ∇f(x k ) allora<br />

(a) se il punto inizia<strong>le</strong> x 0 è sufficientemente vicino a ¯x, la successione del<strong>le</strong> iterate<br />

convege a ¯x;<br />

(b) l’ordine di convergenza è quadratico; e<br />

(c) la successione del<strong>le</strong> norme dei gradienti {||∇f k ||} converge con ordine quadratico a<br />

zero.<br />

4. L’equazione (2.1) è invariante <strong>per</strong> trasformazioni affini della funzione f, i.e. se f diventa<br />

αf + β si ha:<br />

x k+1 = x k − α −1 (∇ 2 f(x k )) −1 α∇f(x k ) = x k − (∇ 2 f(x k )) −1 ∇f(x k ).<br />

L’importanza dell’invarianza <strong>per</strong> trasformazioni affini di un algoritmo numerico è di<br />

renderlo poco sensibi<strong>le</strong> alla formulazione dell’equazione del prob<strong>le</strong>ma.<br />

2.3 <strong>Metodi</strong> di Line-Search<br />

L’idea dei metodi di Line-Search consiste in una generalizzazione del metodo del gradiente<br />

introducendo una ricerca monodimensiona<strong>le</strong> inesatta, in particolare:<br />

Iterazione:<br />

dove:<br />

x k+1 = x k + α k p k<br />

p k ≡ Direzione di Ricerca (Search Direction)<br />

α k ≡ Lunghezza del Passo (Step Length).<br />

Il successo del metodo risiede nella scelta della direzione di discesa e della lunghezza del<br />

passo e lo scopo principa<strong>le</strong> è di trovare il minimo con il minor numero di valutazioni della<br />

funzione f, del gradiente ∇f e dell’hessiano ∇ 2 f.<br />

2.3.1 Direzioni di Ricerca<br />

La scelta della direzione di ricerca negli algoritmi di Line-Search è tipicamente:<br />

Direzione di Ricerca ≡ Direzione di Discesa<br />

dove <strong>per</strong> direzione di discesa p k si intende una direzione che verifica la relazione ∇f T k p k < 0,<br />

i.e. viene assicurato che lungo la direzione individuata dal vettore p k , almeno in un intorno del<br />

punto di partenza, la funzione diminuisce. Esempi classici sono:


CAPITOLO 2. <strong>METO<strong>DI</strong></strong> <strong>DI</strong> <strong>LINE</strong>-<strong>SEARCH</strong> 4<br />

1. p k = −∇f k i.e. ∇f T k p k = −||∇f k || 2 2 < 0 nel Metodo del Gradiente;<br />

2. p k = −B −1<br />

k ∇f k con B T k = B k > 0 i.e. ∇f T k p k = −∇f T k B−1 k ∇f k = −||∇f k || 2 B k<br />

< 0;<br />

come casi particolari abbiamo:<br />

(a) Nei metodi di Newton B k = ∇ 2 f k ;<br />

(b) Nei metodi di Quasi-Newton B k ≈ ∇ 2 f k (tipicamentea si utilizza un’approssimazione<br />

tipo BFGS).<br />

2.3.2 Lunghezza del Passo<br />

Una volta scelta la direzione di ricerca bisogna trovare il minimo di f, lungo ta<strong>le</strong> direzione,<br />

mediante ricerca monodimensiona<strong>le</strong> inesatta, attuando un compromesso tra il numero di valutazioni<br />

della funzione ed una sua riduzione sostanzia<strong>le</strong>. Nel calcolo del numero di valutazioni<br />

si deve tener ulteriormente conto del fatto di utilizzare o meno informazioni sul gradiente della<br />

funzione; solitamente, <strong>per</strong> questioni di efficienza e dal fatto che la derivata deve essere calcolata<br />

in modo analitico una sola volta e dall’esistenza di appositi toolbox di calcolo simbolico, ta<strong>le</strong><br />

informazione viene quasi sempre utilizzata nell’imp<strong>le</strong>mentazione di questi codici.<br />

Per trovare la lunghezza del passo si è soliti procedere in due fasi:<br />

1. Bracketing Phase che ricerca un intervallo chiuso contenente il passo desiderabi<strong>le</strong>;<br />

2. Se<strong>le</strong>ction Phase che raffina (riduce) la lunghezza del passo, mediante tecniche di bisezione<br />

o di interpolazione, fino ad ottenere il passo desiderato.<br />

La descrizione dettagliata di come vengono imp<strong>le</strong>mentate queste fasi è rinviata successivamente<br />

(vedi Paragrafo 2.3.9) in quanto richiede la consoscenza del<strong>le</strong> condizioni di Wolfe.<br />

Si osservi che la semplice imp<strong>le</strong>mentazione della ricerca al passo k di un α k ta<strong>le</strong> che<br />

f(x k + α k p } {{ } k ) < f(x k ) non risulta una scelta ottima<strong>le</strong> in quanto l’algoritmo può ristagnare<br />

x k+1<br />

ovvero <strong>le</strong> riduzioni dei valori della funzione f possono essere poco apprezzabili e questo porta al<br />

non raggiungimento del punto di minimo, mentre ta<strong>le</strong> fenomeno può essere eliminato mediante<br />

l’imp<strong>le</strong>mentantazione del<strong>le</strong> condizioni di Wolfe o utilizzando <strong>le</strong> condizioni di Goldstein.<br />

2.3.3 Prima Condizione di Wolfe o Regola di Armijo<br />

La scelta del parametro α al passo k è ta<strong>le</strong> da verificare la seguente diseguaglianza:<br />

f(x k + αp } {{ } k ) ≤ f(x k ) + c 1 α∇fk T p<br />

} {{ } k<br />

x k+1<br />

l(α)<br />

(2.2)<br />

o, equiva<strong>le</strong>ntemente (nota come Regola di Armijo):<br />

φ(α) ≤ φ(0) + c 1 αφ ′ (0)<br />

con c 1 ∈ (0, 1) e φ(α) = f(x k + αp k ).<br />

L’esempio in Figura 2.1 mette in evidenza <strong>le</strong> due zone accettabili e la retta con pendenza<br />

negativa l(α) derivanti dall’imp<strong>le</strong>mentazione della prima condizione di Wolfe. Come si può<br />

notare, l’utilizzo di questa regola non assicura che l’algoritmo produca sempre passi “accettabili”<br />

in quanto può restituire un punto “vicino” a quello precedentemente calcolato senza essere in<br />

presenza di una riduzione sostanzia<strong>le</strong> della funzione f.


CAPITOLO 2. <strong>METO<strong>DI</strong></strong> <strong>DI</strong> <strong>LINE</strong>-<strong>SEARCH</strong> 5<br />

2.3.4 Seconda Condizione di Wolfe<br />

La seconda condizione di Wolfe serve a risolvere il prob<strong>le</strong>ma precedente dell’eventua<strong>le</strong> stagnazione<br />

dell’algoritmo scegliendo, al passo k, un valore di α ta<strong>le</strong> da verificare la seguente<br />

diseguaglianza:<br />

∇f(x k + αp k ) T p k<br />

} {{ }<br />

φ ′ (α)<br />

≥ c 2 ∇fk T p<br />

} {{ } k , (2.3)<br />

φ ′ (0)<br />

con c 2 ∈ (c 1 , 1).<br />

Questa condizione può essere interpretata nel modo seguente: se la pendenza di φ ′ (0) è<br />

fortemente negativa, si ha l’indicazione che la f può essere ridotta significativamente se ci<br />

spostiamo lungo ta<strong>le</strong> direzione.<br />

In Figura 2.2 viene mostrata l’interpretazione grafica della prima e della seconda condizione<br />

di Wolfe.<br />

φ(α) = f(x k + αp k )<br />

l(α)<br />

α<br />

Accettabi<strong>le</strong><br />

Accettabi<strong>le</strong><br />

Figura 2.1: Esemplificazione della prima condizione di Wolfe.<br />

Osservazione 1. L’importanza del<strong>le</strong> condizioni di Wolfe risiede nell’invarianza della (2.2)<br />

e della (2.3) <strong>per</strong> trasformazioni affini o cambiamenti di scala della funzione f (come si può<br />

provare facilmente).<br />

Osservazione 2. In Figura 2.3 viene mostrato il comportamento della prima e della seconda<br />

condizione di Wolfe nel caso in cui la funzione f sia convessa. In particolare si osservi<br />

come la seconda condizione di Wolfe vada a restringere l’intervallo di ricerca del minimo<br />

monodimensiona<strong>le</strong>.<br />

Osservazione 3. La validazione della seconda condizione di Wolfe non avviene mediante valutazione<br />

del gradiente nel punto candidato, in quanto porterebbe ad un aumento eccessivo<br />

del numero di valutazioni (del gradiente) <strong>per</strong>ciò si preferisce aggirare l’ostacolo mediante una<br />

tecnica di “simulazione” (vedi paragrafo 2.3.9).


CAPITOLO 2. <strong>METO<strong>DI</strong></strong> <strong>DI</strong> <strong>LINE</strong>-<strong>SEARCH</strong> 6<br />

φ ′ (0)<br />

φ(α) = f(x k + αp k )<br />

c 2 φ ′ (0)<br />

l(α)<br />

α<br />

Accettabi<strong>le</strong> 1<br />

Accettabi<strong>le</strong> 1<br />

Accettabi<strong>le</strong> 2 Accettabi<strong>le</strong> 2 Accettabi<strong>le</strong> 2<br />

Acc. 1 e 2 Acc. 1 e 2 Acc. 1 e 2<br />

Figura 2.2: Esemplificazione della prima e della seconda condizione di Wolfe.<br />

2.3.5 Condizioni di Goldstein<br />

Altre condizioni che possono essere imp<strong>le</strong>mentate in un codice <strong>per</strong> la ricerca del minimo sono<br />

<strong>le</strong> condizioni di Goldstein, in cui al passo k, α viene scelto in modo ta<strong>le</strong> da soddisfare <strong>le</strong> due<br />

diseguaglianze:<br />

f(x k ) + (1 − c)α∇f T k p k ≤ f(x k + αp k ) ≤ f(x k ) + cα∇f T k p k (2.4)<br />

con 0 < c < 1/2. Nella prima del<strong>le</strong> due diseguaglianze di (2.4) si attua un controllo del passo,<br />

mentre la seconda rappresenta la prima condizione di Wolfe o regola di Armijo.<br />

In questa relazione, queste condizioni (2.4) non sono state prese in considerazione in quanto<br />

presentano alcuni prob<strong>le</strong>mi <strong>le</strong>gati al fatto che possono escludere tutti i minimi presenti nella<br />

funzione (vedi Figura 2.4).<br />

2.3.6 Riduzione Sufficiente e Backtracking<br />

Come facilmente intuibi<strong>le</strong> è diffici<strong>le</strong> verificare <strong>le</strong> due condizioni di Wolfe, <strong>per</strong>ciò si preferisce<br />

utilizzare una procedura detta di backtracking il cui schema tipico è riportato qui sotto.<br />

Procedura di Backtracking<br />

scegliere ᾱ > 0, ρ, c ∈ (0, 1); porre α ← ᾱ<br />

repeat until f(x k + αp k ) ≤ f(x k ) + cα∇f T k p k<br />

α ← ρα<br />

end(repeat)<br />

α k = α


CAPITOLO 2. <strong>METO<strong>DI</strong></strong> <strong>DI</strong> <strong>LINE</strong>-<strong>SEARCH</strong> 7<br />

φ ′ (0)<br />

c 2 φ ′ (0)<br />

φ(α) = f(x k + αp k )<br />

l(α)<br />

α<br />

Acc. 1<br />

Acc. 2<br />

Acc. 1 e 2<br />

Figura 2.3: Esemplificazione della prima e della seconda condizione di Wolfe nel caso in cui la<br />

funzione f sia convessa.<br />

Come si può vedere viene verificata la prima condizione di Wolfe mentre, la seconda, viene<br />

“simulata” attraverso la scelta del fattore di riduzione ρ ta<strong>le</strong> che ρ ∈ [ρ low , ρ high ] con 0 <<br />

ρ low < ρ high < 1; questa ultima scelta viene anche adottata <strong>per</strong> salvaguardare l’interpolazione<br />

(vedi paragrafo 2.3.9).<br />

2.3.7 Convergenza dei <strong>Metodi</strong> di Line-Search<br />

Definiamo l’angolo θ k tra p k e −∇f k come cos θ k =<br />

−∇f k T p k<br />

. Ad esempio, nel caso del<br />

||∇f k ||·||p k ||<br />

metodo del gradiente, in cui p k = −∇f k , si ha cos θ k = ||∇f k|| 2<br />

||∇f k<br />

=<br />

|| 2 1, i.e. formano un angolo<br />

di 0 ◦ , ossia sono allineati.<br />

Abbiamo introdotto il concetto di angolo tra direzione di ricerca e direzione di massima<br />

discesa <strong>per</strong>ché è richiesto nella dimostrazione del Teorema di Zoutendijk (vedi sotto). Questo<br />

teorema ci dice, ad esempio, che il metodo del gradiente con ricerca del minimo inesatta è<br />

convergente e ci dice anche quanto lontano possiamo scegliere il vettore p k da ∇f k affinché il<br />

metodo sia ancora convergente.<br />

Teorema 2. Si consideri un’iterazione del tipo x k+1 = x k + α k p k , dove p k è una direzione<br />

di discesa ed α k è ta<strong>le</strong> da soddisfare <strong>le</strong> condizioni di Wolfe (2.2) e (2.3). Supponiamo inoltre<br />

f limitata inferiormente in R n e di classe C ∞ in un a<strong>per</strong>to N contenente l’insieme di livello<br />

L = {x: f(x) ≤ f(x 0 )} dove x 0 è il punto inizia<strong>le</strong> dell’iterazione. Si assuma inoltre che il<br />

gradiente ∇f sia lipschitziano su N , i.e. esiste una costante L > 0 ta<strong>le</strong> che<br />

||∇f(x) − ∇f(ˆx)|| ≤ L||x − ˆx|| ∀x, ˆx ∈ N .


CAPITOLO 2. <strong>METO<strong>DI</strong></strong> <strong>DI</strong> <strong>LINE</strong>-<strong>SEARCH</strong> 8<br />

φ(α) = f(x k + αp k )<br />

cα<br />

(1 − c)α<br />

α<br />

Acc. Acc. Acc.<br />

Figura 2.4: Esemplificazione del fallimento del<strong>le</strong> condizioni di Goldstein.<br />

Allora, va<strong>le</strong> la condizione di Zoutendijk,<br />

∑<br />

cos 2 θ k ||∇f k || 2 < ∞. (2.5)<br />

k≥0<br />

Osservazione 4. La condizione di Zoutendijk (2.5) implica che (cos 2 θ k )||∇f k || → 0.<br />

Se nel nostro metodo <strong>per</strong> scegliere la direzione di ricerca p k nell’iterazione x k+1 = x k + α k p k<br />

si assicura che l’angolo θ k è limitato e lontano dai 90 ◦ , esiste cioè una constante positiva δ ta<strong>le</strong><br />

che<br />

cos θ k ≥ δ > 0, ∀k,<br />

allora segue immediatamente che<br />

lim ||∇f k|| = 0.<br />

k→∞<br />

Questo limite, nei metodi di Line-Search significa il raggiungimento da parte del metodo di<br />

un punto di stazionarietà della funzione e solo aggiungendo ulteriori informazioni sulla direzione<br />

di ricerca p k , qua<strong>le</strong> l’informazione sulla curvatura data dalla matrice hessiana ∇ 2 f k , si<br />

può cercare di far raggiungere un minimo loca<strong>le</strong> all’algoritmo.<br />

Dimostrazione del Teorema (2). Dalla seconda condizione di Wolfe (2.3), abbiamo<br />

ossia, sottraendo −∇f T k p k si ha<br />

∇f(x k + α k p } {{ } k ) T p k ≥ c 2 ∇fk T p k<br />

x k+1<br />

La condizione di Lipschitz sul gradiente implica che<br />

(∇f k+1 − ∇f k ) T p k ≥ (c 2 − 1)∇f T k p k . (2.6)<br />

||∇f(x) − ∇f(ˆx)|| ≤ L||x − ˆx||<br />

∀x, ˆx ∈ N


CAPITOLO 2. <strong>METO<strong>DI</strong></strong> <strong>DI</strong> <strong>LINE</strong>-<strong>SEARCH</strong> 9<br />

e ricordando che x k+1 − x k = α k p k , si ha<br />

(∇f k+1 − ∇f k ) T p k ≤ α k L||p k || 2 . (2.7)<br />

Combinando <strong>le</strong> due diseguaglianze (2.6) e (2.7) si ottiene<br />

e risolvendo rispetto a α k si ha<br />

ossia<br />

(c 2 − 1)∇f T k p k ≤ (∇f k+1 − ∇f k ) T p k ≤ α k L||p k || 2<br />

α k ≥ (c 2 − 1) ∇f T k p k<br />

||p k || 2 .<br />

Sostituendo questa diseguaglianza nella prima condizione di Wolfe (2.2), si ha<br />

f(x k + α k p k ) ≤ f(x k ) + c 1 α k ∇f T k p k<br />

1 − c 2<br />

f k+1 − f k ≤ c 1<br />

} {{ L }<br />

Dalla definizione di angolo, cos θ k = −<br />

ed iterando il procedimento si ottiene<br />

c<br />

∇f k T p k<br />

||∇f k ||·||p k ||<br />

(∇f T k p k) 2<br />

||p k || 2 .<br />

si ha<br />

f k+1 − f k ≤ c cos 2 θ k · ||∇f k || 2<br />

f k+1 ≤ f 0 −<br />

Se f è limitata inferiormente allora:<br />

c<br />

k∑<br />

c cos 2 θ j ||∇f j || 2 .<br />

j=0<br />

k∑<br />

cos 2 θ j ||∇f j || 2 < ∞<br />

j=0<br />

2.3.8 Ordine di Convergenza<br />

In questo paragrafo si vuo<strong>le</strong> solo mettere in evidenza il fatto che nel metodo del gradiente si<br />

può avere velocità di convergenza inaccettabi<strong>le</strong> se si esegue una ricerca esatta monodimensiona<strong>le</strong><br />

(fenomeno dello Zig-Zag) mentre nei metodi di Line-Search la cosa diffici<strong>le</strong> è riuscire a<br />

tarare i parametri dell’algoritmo in modo ottima<strong>le</strong>, in quanto vincolati alla scelta del passo e<br />

alla direzione di discesa che, a loro volta, dipendono dalla funzione f che si sta cercando di<br />

minimizzare.


CAPITOLO 2. <strong>METO<strong>DI</strong></strong> <strong>DI</strong> <strong>LINE</strong>-<strong>SEARCH</strong> 10<br />

2.3.9 Algoritmi <strong>per</strong> la Se<strong>le</strong>zione del Passo<br />

Gli algoritmi <strong>per</strong> la se<strong>le</strong>zione della lunghezza del passo dividono il prob<strong>le</strong>ma della ricerca del<br />

minimo monodimensiona<strong>le</strong> in due parti: nella prima parte candidano un opportuno passo<br />

inizia<strong>le</strong> mentre nella seconda imp<strong>le</strong>mentano contemporaneamente la Bracketing Phase e la<br />

Se<strong>le</strong>ction Phase <strong>per</strong> ottenere il passo voluto.<br />

Fase 1: Scelta della lunghezza del passo inizia<strong>le</strong>.<br />

La scelta del passo inizia<strong>le</strong> è vincolata all’utilizzo o meno di metodi invarianti <strong>per</strong> trasformazioni<br />

affini nella scelta della direzione di ricerca. In questa categoria (metodi invarianti<br />

<strong>per</strong> trasformazioni affini) rientrano i metodi Newton e Quasi-Newton e si è soliti scegliere<br />

α 0 = 1. Nell’altra categoria di algoritmi, in cui rientrano i metodi basati sul gradiente, <strong>le</strong><br />

strategie più largamente utilizzate sono:<br />

1. Scegliere α 0 := α0 k = α<br />

fina<strong>le</strong><br />

k−1<br />

∇f T k−1 p k−1<br />

∇f T k p k<br />

ossia si assume una variazione del primo<br />

ordine tra il passo k e il passo precedente k − 1, i.e. α k 0∇f T k p k = α k−1<br />

fina<strong>le</strong> ∇f T k−1 p k−1;<br />

2. Scegliere α 0 = min(1, 1.01 ˆα 0 ) dove ˆα 0 = 2(f k−f k−1 )<br />

φ ′ , che corrisponde a calcolare il<br />

(0)<br />

minimo di una funzione quadratica che interpola i valori f k − 1, f k e φ ′ (0) = ∇fk T p k;<br />

)<br />

.<br />

3. Scegliere α 0 = min<br />

(<br />

1,<br />

100<br />

1+||∇f k ||<br />

Fase 2: Interpolazione del passo o variante dello schema di bisezione.<br />

Una volta noto il punto inizia<strong>le</strong> c’è bisogno di calcolare la lunghezza del passo desiderata<br />

e questa avviene mediante tecniche di interpolazione che utilizzano anche <strong>le</strong> informazioni<br />

sulla derivata della funzione φ(α) = f(x k + αp k ) o varianti basate sul metodo di bisezione,<br />

qua<strong>le</strong> Fibonacci, prive dell’informazione sul<strong>le</strong> derivate. Il metodo di interpolazione<br />

qui riportato può essere visto come raffinamento della procedura di Backtracking vista<br />

precedentemente.<br />

Supponiamo noto α 0 . Se α 0 è ta<strong>le</strong> da soddisfare la prima condizione di Wolfe<br />

φ(α 0 ) ≤ φ(0) + c 1 α 0 φ ′ (0)<br />

allora α = α 0 ed abbiamo finito, altrimenti bisogna ricercare α nell’intervallo [0, α 0 ] (vedi<br />

Figura 2.1). Si costruisce allora un’approssimazione quadratica φ q (α) di φ tramite <strong>le</strong> tre<br />

condizioni φ(0), φ ′ (0) e φ(α 0 ), ottenendo<br />

( )<br />

φ(α0 ) − φ(0) − α 0 φ ′ (0)<br />

φ q (α) =<br />

α 2 + φ ′ (0)α + φ(0)<br />

e se ne calcola il minimo (derivando)<br />

α 2 0<br />

Se è verificata la prima condizione di Wolfe<br />

φ ′ (0)α0<br />

2 α 1 = −<br />

2[φ(α 0 ) − φ(0) − φ ′ (0)α 0 ] .<br />

φ(α 1 ) ≤ φ(0) + c 1 α k φ ′ (0)


CAPITOLO 2. <strong>METO<strong>DI</strong></strong> <strong>DI</strong> <strong>LINE</strong>-<strong>SEARCH</strong> 11<br />

allora si pone α = α 1 , altrimenti si costruisce un’interpolazione cubica φ c (α) basata sui<br />

valori φ(0), φ ′ (0), φ(α 0 ) e φ(α 1 ), ottenendo<br />

dove<br />

[ a<br />

b<br />

]<br />

=<br />

il cui minimo è (derivando)<br />

φ c (α) = aα 3 + bα 2 + φ ′ (0)α + φ(0),<br />

[<br />

1 α<br />

2<br />

0 α1<br />

2<br />

α0α 2 1(α 2 1 − α 0 ) −α0 3 α1<br />

3<br />

α 2 = −b + √ b 2 − 3aφ ′ (0)<br />

.<br />

3a<br />

] [ ]<br />

φ(α1 ) − φ(0) − φ ′ (0)α 1<br />

φ(α 0 ) − φ(0) − φ ′ (0)α 0<br />

Se necessario si ripete il processo utilizzando un’interpolazione cubica basata sui valori<br />

φ(0), φ ′ (0) e gli ultimi due valori di φ calcolati, fintantoché la prima condizione di Wolfe<br />

non è verificata. Se qualcuno degli α i è troppo vicino o troppo piccolo rispetto al<br />

precedente α i−1 , lo si pone ugua<strong>le</strong> a α i−1<br />

; questa procedura assicura un ragionevo<strong>le</strong> e<br />

2<br />

progressivo miglioramento, salvaguarda l’interpolazione e simula la seconda condizione di<br />

Wolfe che evita di scegliere un passo di riduzione troppo piccolo.<br />

Ovviamente altre tecniche di interpolazione possono essere utilizzate e la loro efficienza è<br />

<strong>le</strong>gata solo alla struttura della funzione f e del primo punto inizia<strong>le</strong> dell’iterazione.<br />

Esempio Numerico<br />

In questa relazione si è costruita un’interfaccia (fi<strong>le</strong> km.m) comune <strong>per</strong> <strong>le</strong> routine di ottimizzazione<br />

di Matlab e quel<strong>le</strong> proposte da C. T. Kel<strong>le</strong>y relativo alla ricerca del minimo della funzione<br />

di Rosenbrock<br />

f(x) = 100(x 2 − x 2 1) 2 + (1 − x 1 ) 2 .<br />

Il software km <strong>per</strong>mette altresí di cambiare il punto inizia<strong>le</strong> e confrontare i risultati.<br />

Da diverse prove effettuate si è notato che l’algoritmo migliore, cioè quello che impiega il<br />

minor numero di valutazioni della funzione f, è gaussn che imp<strong>le</strong>menta un metodo Damped<br />

Gauss-Newton; in questa relazione tali metodi non sono stati presi in considerazione.<br />

Per un ulteriore approfondimento, si consultino i seguenti testi:<br />

• Manua<strong>le</strong> pdf del Toolbox Optimization di Matlab.<br />

• Elijah Polak, Optimization: Algorithms and Consistent Approximations. Springer.<br />

• Jorge Nocedal and Stephen J. Wright, Numerical Optimization (Cap.3), Springer, 1999<br />

• C. T. Kel<strong>le</strong>y, Iterative Methods for Optimization. Siam.<br />

• C. T. Kel<strong>le</strong>y, Iterative Methods for Linear and Nonlinear Equations. Siam.<br />

• G. Zilli, <strong>Metodi</strong> di Ottimizzazione. Imprimitur.

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

Saved successfully!

Ooh no, something went wrong!