Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono...

32
Funzioni univariate Funzioni multivariate Ottimizzazione numerica Michele Antonelli 28 Ottobre 2010 Michele Antonelli Ottimizzazione numerica

Transcript of Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono...

Page 1: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Ottimizzazione numerica

Michele Antonelli

28 Ottobre 2010

Michele Antonelli Ottimizzazione numerica

Page 2: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Outline

1 Funzioni univariateGolden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

2 Funzioni multivariateNewton-Raphsonoptim

Michele Antonelli Ottimizzazione numerica

Page 3: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Ottimizzazione numerica

I metodi di ottimizzazione consentono di trovare i punti estremanti(massimi, minimi) di una funzione obiettivo f : R

n → R.

Poiche max f (x) = −min (−f (x)), e sufficiente concentrarsi suimetodi per la ricerca del minimo

minx∈Ω⊆Rn

f (x)

dove Ω e l’insieme definito dai vincoli, se presenti.

Per semplicita, nel seguito supporremo l’esistenza e l’unicita delpunto di minimo x∗ (locale e globale), e tratteremol’ottimizzazione in assenza di vincoli.

Michele Antonelli Ottimizzazione numerica

Page 4: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Metodi numerici per l’ottimizzazione

Ecco i metodi numerici che vedremo e implementeremo in R:

per funzioni univariate:

golden section searchgradiente discendenteNewton-Raphson

per funzioni multivariate:

Newton-Raphsonoptim (built-in R function)

Michele Antonelli Ottimizzazione numerica

Page 5: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Golden section search

Algoritmo piuttosto semplice e intuitivo per la ricerca del minimodi una funzione all’interno di un intervallo [a, b] con a < b ex∗ ∈ [a, b].

Richiede che la funzione f sia unimodale.

Definizione

Funzione f : R → R e unimodale se esiste m ∈ R tale che f edecrescente per x ≤ m e crescente per x ≥ m.m e quindi il punto di minimo (globale).

Michele Antonelli Ottimizzazione numerica

Page 6: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Golden section search

Ecco come funziona il metodo golden section search:

1 Si parte considerando l’intervallo [a0, b0] := [a, b] e si fissauna tolleranza ǫ

2 Si restringe iterativamente l’intervallo a [ak+1, bk+1] ⊂ [ak , bk ]in modo che il punto di minimo x∗ continui a cadere al suointerno

3 Ci si arresta quando |bk − ak | < ǫ, e si accetta bk−ak

2come

una buona approssimazione del punto di minimo x∗

Al passo 2, si determinano x1, x2 ∈ [ak , bk ] tali che x1 < x2.Poiche la funzione obiettivo e unimodale e abbiamo suppostoesserci un unico punto di minimo x∗ ∈ [a, b],se succede f (x1) > f (x2) allora significa x∗ ∈ [x1, bk ],altrimenti se f (x1) < f (x2) allora x∗ ∈ [ak , x2].Selezionato l’intervallo corretto, si prosegue in modo iterativo.

Michele Antonelli Ottimizzazione numerica

Page 7: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Golden section search

Nota

Il nome del metodo e dovuto alla proporzione aurea esistente tra ledistanze dei punti scelti dagli estremi dell’intervallo: x2−x1

x1−a= x1−a

b−x1

Osservazione

pro: non richiede la conoscenza delle derivate

contro: convergenza lenta

Michele Antonelli Ottimizzazione numerica

Page 8: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Implementazione in R

golden.R function che implementa il metodo golden sectionsearch

valutazione delle funzioni obiettivo

main per testare gli esempi

Michele Antonelli Ottimizzazione numerica

Page 9: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Esempi

Esempio 1

f (x) = |x − 3.5| + (x − 2)2

Determinare il punto di minimo x∗ ∈ [0, 5].(x∗ = 2.5, f (x∗) = 1.25)

1 2 3 4 5

4

6

8

10

Figure: f (x) = |x − 3.5| + (x − 2)2

Michele Antonelli Ottimizzazione numerica

Page 10: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Esempi

Esempio 2

f (x) = |x − 3| + sin x − |x − 2|Determinare minimi/massimi e osservare il comportamento delmetodo golden section search al variare dell’intervallo di ricerca.

-2 2 4 6 8

-2

-1

1

2

Figure: f (x) = |x − 3| + sin x − |x − 2|

Michele Antonelli Ottimizzazione numerica

Page 11: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Esempi

La funzione dell’esempio 2 ha due minimi e due massiminell’intervallo [−3, 9].

A seconda dell’intervallo di ricerca scelto, il metodo converge auno dei minimi:

[−3, 9]: due massimi, due minimi; converge a uno dei minimi

[0, 9]: un massimo, un minimo; converge al minimo

[3, 6]: un minimo; converge a quello

Michele Antonelli Ottimizzazione numerica

Page 12: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Introduzione ai metodi di discesa

I metodi di discesa sono metodi iterativi che, a partire da uniterato iniziale x0 ∈ R

n, generano una successione di punti xkk∈N

definiti dall’iterazione

xk+1 = xk + αkpk

dove il vettore pk e una direzione di ricerca e lo scalare αk e unparametro positivo chiamato lunghezza del passo (step length) cheindica la distanza di cui ci si muove lungo la direzione pk .

Michele Antonelli Ottimizzazione numerica

Page 13: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Introduzione ai metodi di discesa

In un metodo di discesa, il vettore pk e il parametro αk sono sceltiin modo da garantire la decrescita della funzione obiettivo f a ogniiterazione:

f (xk+1) < f (xk) ∀k ≥ 0

In particolare, come vettore pk si prende una direzione di discesa,cioe tale che la retta x = xk + αkpk forma un angolo ottuso con ilvettore gradiente ∇f (xk). In questo modo e possibile garantire ladecrescita di f , purche αk sia sufficientemente piccolo.

Michele Antonelli Ottimizzazione numerica

Page 14: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Scelta della direzione di discesa

A seconda della scelta di pk si hanno diversi metodi di discesa.

Noi vedremo:

metodo del gradiente discendente

metodo di Newton-Raphson

Michele Antonelli Ottimizzazione numerica

Page 15: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Scelta della lunghezza del passo

Esistono diverse tecniche per la scelta di αk in modo tale dagarantire la convergenza del metodo verso punti stazionari di f .

Step length:

troppo piccola: puo tradursi in una convergenza lenta

troppo grande: rischio di “superare” il punto di minimo

Michele Antonelli Ottimizzazione numerica

Page 16: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Scelta della lunghezza del passo

Sceglierne una step length costante, o che verifica semplicementela condizione di decrescita f (xk+1) < f (xk), non sempre garantisceconvergenza.

Si puo determinare con:

ricerca in linea esatta

condizioni di Wolfe (condizione di Armijo + condizione dellacurvatura)

sola condizione di Armijo + backtracking

Michele Antonelli Ottimizzazione numerica

Page 17: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Gradiente discendente

Metodo del gradiente discendente:

xk+1 = xk − δf ′(xk)

direzione di ricerca (gradiente): pk = −f ′(xk)step length: αk = δ costante

Richiede f ∈ C 1 (derivabile con continuita), e conoscenzadell’espressione analitica della derivata prima.

Osservazione

Nome dovuto al fatto che si sceglie come direzione di ricerca quellaopposta al gradiente (derivata prima, nel caso univariato).

Michele Antonelli Ottimizzazione numerica

Page 18: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Gradiente discendente

Costo computazionale

1 valutazione della derivata prima per iterazione.

Osservazionepro:

converge a punti di minimo (e non genericamente a puntistazionari)non richiede il calcolo della derivata seconda (matrice Hessiananel caso multivariato)

contro:

alto numero di iterazionisensibilita rispetto all’iterato iniziale (se x0 e preso troppolontano dal minimo x∗, e δ e scelta piccola, il metodo puo nonarrivare alla soluzione in tempi ragionevoli)

Michele Antonelli Ottimizzazione numerica

Page 19: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Implementazione in R

gradiente.R function che implementa il metodo delgradiente discendente

valutazione delle funzioni obiettivo

main per testare gli esempi

Michele Antonelli Ottimizzazione numerica

Page 20: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Esempi

Esempio 3

f (x) = e−x + x4

Determinare il punto di minimo.(x∗ ≈ 0.528252, f (x∗) ≈ 0.667504)

-1.0 -0.5 0.5 1.0

1.5

2.0

2.5

3.0

3.5

Figure: f (x) = e−x + x4

Michele Antonelli Ottimizzazione numerica

Page 21: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Newton-Raphson

Metodo di Newton-Raphson:

xk+1 = xk −f ′(xk)

f ′′(xk)

direzione di ricerca (Newton): pk = −f ′(xk)/f ′′(xk)step length: αk = 1

Ha la forma del metodo di Newton per la ricerca degli zeri di unafunzione, applicato a f ′, in quanto determinare il punto di minimodella funzione f equivale a determinare la radice della derivataprima f ′.

Michele Antonelli Ottimizzazione numerica

Page 22: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Newton-Raphson

Il metodo Newton-Raphson e solitamente preferito rispetto algradiente discendente, per la sua velocita, nonostante richiedaf ∈ C 2, f ′′ 6= 0, conoscenza dell’espressione analitica delle derivateprima e seconda, e converga indistintamente a minimi e massimi.

Nota

Se f ha un’espressione semplice, la function deriv consente dicalcolarne simbolicamente le derivate prima e seconda.

Michele Antonelli Ottimizzazione numerica

Page 23: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Newton-Raphson

Costo computazionale

A ogni iterazione: valutazione di derivata prima e seconda.

Osservazionepro:

convergenza veloce (quadratica)

contro:

convergenza localealto costo per iterazione

Esistono varianti che rendono il metodo a convergenza globale eche abbassano il costo computazionale evitando di risolvere conmetodi diretti il sistema per la determinazione di pk .

Michele Antonelli Ottimizzazione numerica

Page 24: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Implementazione in R

newton optim.R function che implementano il metodo diNewton-Raphson per l’ottimizzazione (uni- e bi-variata)

valutazione delle funzioni obiettivo

main per testare gli esempi

Michele Antonelli Ottimizzazione numerica

Page 25: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Golden section searchIntroduzione ai metodi di discesaGradiente discendenteNewton-Raphson

Esempi

Esempio 3

f (x) = e−x + x4

Determinare il punto di minimo e confrontare il numero diiterazioni effettuate dal metodo di Newton-Raphson con quellerichieste dal metodo del gradiente discendente, visto in precedenza.

Michele Antonelli Ottimizzazione numerica

Page 26: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Newton-Raphsonoptim

Newton-Raphson

Dall’espansione di Taylor nel caso multidimensionale, il metodo di

Newton-Raphson multivariato assume la forma:

xk+1 = xk − Hf (xk)−1 ∇f (xk)

dove ora xk ∈ Rn e Hf e la matrice Hessiana (derivate seconde) di

f .

direzione di ricerca (Newton): pk = −Hf (xk)−1 ∇f (xk)step length: αk = 1

Osservazione

La direzione di Newton e di discesa ⇔ Hf e definita positiva.

Michele Antonelli Ottimizzazione numerica

Page 27: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Newton-Raphsonoptim

Newton-Raphson

Il metodo di Newton-Raphson multivariato richiede f ∈ C 2, econoscenza dell’espressione analitica del gradiente e della matriceHessiana.

Nota

Se f ha un’espressione semplice, la function deriv consente dicalcolarne simbolicamente il gradiente e la matrice Hessiana.

Costo computazionale

A ogni iterazione: valutazione di gradiente, Hessiana e risoluzionedel sistema n × n

Hf (xk) pk = −∇f (xk)

per la determinazione di pk (costo O(n3)).

Michele Antonelli Ottimizzazione numerica

Page 28: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Newton-Raphsonoptim

Implementazione in R

newton optim.R function che implementano il metodo diNewton-Raphson per l’ottimizzazione (uni- e bi-variata)

valutazione delle funzioni obiettivo

main per testare gli esempi

Michele Antonelli Ottimizzazione numerica

Page 29: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Newton-Raphsonoptim

optim

optim e una R-function per l’ottimizzazione di funzioni anche dipiu variabili.

L’utente puo scegliere quale metodo usare, tra:

Nelder-Mead (default): robusto ma relativamente lento

BFGS (quasi-Newton)

CG (gradiente coniugato)

Michele Antonelli Ottimizzazione numerica

Page 30: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Newton-Raphsonoptim

Esempi

Esempio 4

f (x , y) = 12

(

0.001(x − 1)2 + (x2 − y)2)

(funzione di tipo Rosenbrock)Determinare il punto di minimo. (x∗ = (1, 1))

-2

-1

0

1

2

-2

-1

0

1

2

0

5

10

Figure: f (x , y) = 12

(

0.001(x − 1)2 + (x2 − y)2)

Michele Antonelli Ottimizzazione numerica

Page 31: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Newton-Raphsonoptim

Esempi

Esempio 5

f (x , y) = sin(

x2

2− y2

4

)

cos (2x − ey )

Determinare i punti di minimo e massimo.

-2

-1

0

1

2-2

-1

0

1

2

-1.0

-0.5

0.0

0.5

1.0

Figure: f (x , y) = sin(

x2

2− y2

4

)

cos (2x − ey )Michele Antonelli Ottimizzazione numerica

Page 32: Michele Antonelli · 2012. 9. 12. · Ottimizzazione numerica I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : Rn

Funzioni univariateFunzioni multivariate

Newton-Raphsonoptim

Esempi

La funzione dell’esempio 5 presenta molti punti di minimo e dimassimo, pertanto scegliendo iterati iniziali diversi (e metodidiversi), si puo arrivare a soluzioni diverse (a seconda dellagrandezza dei bacini di attrazione dei punti stazionari).

Michele Antonelli Ottimizzazione numerica