La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Metodi e Applicazioni numeriche nellIngegneria Chimica 1 Guido Buzzi-Ferraris.

Presentazioni simili


Presentazione sul tema: "Metodi e Applicazioni numeriche nellIngegneria Chimica 1 Guido Buzzi-Ferraris."— Transcript della presentazione:

1 Metodi e Applicazioni numeriche nellIngegneria Chimica 1 Guido Buzzi-Ferraris

2 Metodi e Applicazioni numeriche nellIngegneria Chimica 2 Guido Buzzi-Ferraris Minimizzazione multidimensionale Guido Buzzi Ferraris Dipartimento di Chimica Materiali e Ingegneria Chimica Politecnico di Milano

3 Metodi e Applicazioni numeriche nellIngegneria Chimica 3 Guido Buzzi-Ferraris Tre categorie di metodi 1. Metodi euristici che non richiedono né il gradiente né lHessiano della funzione 2. Metodi che richiedono il gradiente della funzione. 3. Metodi che richiedono sia il gradiente che lHessiano della funzione. Minimo multidimensionale

4 Metodi e Applicazioni numeriche nellIngegneria Chimica 4 Guido Buzzi-Ferraris Promemoria Che cosa è il gradiente di una funzione?

5 Metodi e Applicazioni numeriche nellIngegneria Chimica 5 Guido Buzzi-Ferraris Il gradiente di una funzione F(x) è il vettore, g, delle sue derivate prime. Il gradiente, g, di una funzione F(x) è la direzione lungo la quale la funzione varia più rapidamente. Perciò la direzione –g è quella per cui la funzione diminuisce più rapidamente.

6 Metodi e Applicazioni numeriche nellIngegneria Chimica 6 Guido Buzzi-Ferraris Promemoria Che cosa è lHessiano di una funzione?

7 Metodi e Applicazioni numeriche nellIngegneria Chimica 7 Guido Buzzi-Ferraris LHessiano di una funzione F(x) è la matrice, G, delle sue derivate seconde. LHessiano, G, è una matrice simmetrica.

8 Metodi e Applicazioni numeriche nellIngegneria Chimica 8 Guido Buzzi-Ferraris Promemoria Quali sono le condizioni necessarie e sufficienti per avere un minimo?

9 Metodi e Applicazioni numeriche nellIngegneria Chimica 9 Guido Buzzi-Ferraris Condizione necessaria affinché un punto x* sia un minimo: g(x*) = 0 Condizione sufficiente affinché un punto x* sia un minimo: La matrice Hessiana G(x*) deve essere definita positiva. Una matrice simmetrica G è definita positiva se: d T Gd > 0 per un generico vettore d diverso da zero

10 Metodi e Applicazioni numeriche nellIngegneria Chimica 10 Guido Buzzi-Ferraris Parentesi storica sui metodi di minimizzazione multidimensionale

11 Metodi e Applicazioni numeriche nellIngegneria Chimica 11 Guido Buzzi-Ferraris I primi programmi di ottimizzazione multidimensionale si basavano su alcune idee guida. Una delle principali era che la direzione del gradiente per la sua proprietà di essere la direzione lungo la quale la funzione varia il più rapidamente possibile era una direzione privilegiata rispetto ad ogni altra direzione. Una seconda idea guida era che in vicinanza del minimo bisognava in qualche modo tener conto della curvatura della funzione (ossia dellHessiano) per avere una ragionevole velocità di convergenza. Questa esigenza si scontrava contro il problema delloccupazione di memoria che con i primi calcolatori era un problema drammatico. Ricordo en passant che il dramma del bug del millennio era nato dal fatto che per risparmiare spazio di memoria lanno veniva memorizzato solo con le ultime due cifre.

12 Metodi e Applicazioni numeriche nellIngegneria Chimica 12 Guido Buzzi-Ferraris Sempre legata al risparmio di memoria vi era la convinzione che gli assi delle variabili indipendenti erano direzioni privilegiate rispetto ad altri assi di ricerca non richiedendo alcuna memoria supplementare per definirli. Perciò i primi metodi di ottimizzazione proposti erano basati su ricerche che utilizzassero in qualche modo o la direzione del gradiente, o le direzioni degli assi cartesiani oppure la curvatura della funzione obbiettivo. Lasciamo per il momento da parte questultimo filone di ricerca e analizziamo invece i primi due. Presto ci si è resi conto di un fatto curioso. Il mistero dei metodi che non convergono

13 Metodi e Applicazioni numeriche nellIngegneria Chimica 13 Guido Buzzi-Ferraris Si supponga di utilizzare la seguente strategia che sembra ragionevole. Partendo da un punto di primo tentativo, x 0, si calcola il gradiente in questo punto, g 0. Si effettua la ricerca del minimo lungo la direzione –g 0. Sia x 1 tale minimo lungo g 0. In x 1 si calcola il gradiente e si effettua la ricerca del minimo lungo la direzione –g 1. Iterando il procedimento ci si accorge che salvo casi eccezionali invece di convergere rapidamente verso la soluzione le iterazioni dopo un avvio brillante diventano sempre meno efficaci. Il problema consiste nel fatto che questo calo di efficienza non avviene vicino alla soluzione, cosa che si sapeva possibile dal momento che qui si dovrebbe utilizzare in qualche modo la curvatura della funzione, ma comincia molto presto quando ci si trova ben lontano dalla soluzione stessa.

14 Metodi e Applicazioni numeriche nellIngegneria Chimica 14 Guido Buzzi-Ferraris Per evitare questo problema sono state proposte allepoca una quantità notevole di varianti. Alcune varianti prevedevano ancora delle ricerche monodimensionali lungo le direzioni dei gradienti, ma utilizzavano punti diversi dal minimo monodimensionale per calcolare il nuovo gradiente. Altri autori proponevano invece degli spostamenti, controllati con diverse modalità, lungo le direzioni dei gradienti evitando così una vera ricerca monodimensionale. Per farla breve. Anche i metodi più fantasiosi e sofisticati presentavano sempre lo stesso inconveniente di perdere efficienza rapidamente.

15 Metodi e Applicazioni numeriche nellIngegneria Chimica 15 Guido Buzzi-Ferraris Le cose non andavano meglio per i metodi basati sulle ricerche lungo gli assi cartesiani. Partendo da un punto di primo tentativo, x 0, si effettua una ricerca monodimensioale variando solo la prima componente del vettore x. Si effettua poi una ricerca monodimensionale a partire dal punto trovato facendo variare solo la seconda componente del vettore x. E così via. Esaurita la ricerca sullultima variabile si ricomincia da capo con la prima variabile. Iterando il procedimento ci si accorge che salvo casi eccezionali invece di convergere rapidamente verso la soluzione le iterazioni dopo un avvio brillante diventano sempre meno efficaci. Il problema consiste nel fatto che questo calo di efficienza non avviene vicino alla soluzione, cosa che si sapeva possibile dal momento che qui si dovrebbe utilizzare in qualche modo la curvatura della funzione, ma comincia molto presto quando ci si trova ben lontano dalla soluzione stessa. Anche qui il seguente procedimento sembrerebbe ragionevole:

16 Metodi e Applicazioni numeriche nellIngegneria Chimica 16 Guido Buzzi-Ferraris Si deve a Rosembrock il merito di avere chiarito il mistero Perché tutti questi metodi diventano sempre meno efficienti?

17 Metodi e Applicazioni numeriche nellIngegneria Chimica 17 Guido Buzzi-Ferraris Il problema sorge quando si hanno delle valli molto strette -gi-gi Il gradiente è una pessima direzione di ricerca quando ci si trovi in prossimità di una valle stretta -g i+1 È facile vedere che lo stesso problema si presenta usando come assi di ricerca gli assi cartesiani La direzione di ricerca continua a dirigersi verso il fondo della valle e il metodo va in crisi

18 Metodi e Applicazioni numeriche nellIngegneria Chimica 18 Guido Buzzi-Ferraris Rosembrock non si è limitato a chiarire il precedente mistero, ma ha anche proposto un metodo che secondo lui dovrebbe aggirare lostacolo. In realtà il metodo di Rosembrock riesce ad evitare il problema delle valli strette solo se esse non sono troppo strette.

19 Metodi e Applicazioni numeriche nellIngegneria Chimica 19 Guido Buzzi-Ferraris Nel frattempo i matematici cercavano di trovare metodi di ricerca efficienti che tenessero conto della curvatura della funzione. Il metodo di base era il metodo di Newton basato sul seguente procedimento. Anche tali metodi in presenza di valli strette andranno in crisi, ma vicino alla soluzione dovrebbero in teoria migliorare la velocità di convergenza.

20 Metodi e Applicazioni numeriche nellIngegneria Chimica 20 Guido Buzzi-Ferraris Se si espande la funzione da minimizzare in serie di Taylor nellintorno di un punto x i arrestando lo sviluppo ai termini di secondo grado si ottiene: Se lHessiano G i è definito positivo il valore di d i che rende minima questa quadrica si ottiene uguagliando a zero le sue derivate prime. G i d i = - g i Il metodo di Newton, nella sua forma elementare, utilizza iterativamente la relazione: x i+1 = x i + d i con d i ricavato risolvendo il precedente sistema lineare.

21 Metodi e Applicazioni numeriche nellIngegneria Chimica 21 Guido Buzzi-Ferraris Più avanti vedremo quali sono i difetti del metodo di Newton e i moderni rimedi proposti per evitarli. Pertanto lo sforzo maggiore dei matematici era rivolto a risolvere il seguente problema: è possibile avere una velocità di convergenza paragonabile al metodo di Newton quando ci si trovi vicino alla soluzione, senza usare la matrice Hessiana? Per i primi programmi il problema centrale era legato alloccupazione di memoria dovuta allHessiano. La strada per risolvere questo problema è partita da considerazioni geometriche. Il metodo di Newton approssima la funzione con una quadrica. Per molte funzioni la cosa è ragionevole almeno se ci si trova vicini alla soluzione. È possibile trovare rapidamente il minimo di una quadrica senza conoscerne lHessiano?

22 Metodi e Applicazioni numeriche nellIngegneria Chimica 22 Guido Buzzi-Ferraris Punto di tangenza Punto di tangenza di una retta parallela alla precedente Che è anche il minimo monodimensionale lungo quella direzione La congiungente i due punti di tangenza è un diametro coniugato alla prima direzione Se è un diametro passa per il centro dellellisse Se si conoscono due assi coniugati con due ricerche si trova il minimo in un problema bidimensionale Una quadrica con Hessiano definito positivo ha linee di livello che sono ellissi concentriche

23 Metodi e Applicazioni numeriche nellIngegneria Chimica 23 Guido Buzzi-Ferraris Basandosi dapprima su questa proprietà geometrica delle quadriche e successivamente su proprietà algebriche sempre delle quadriche si è trovato il modo di ricavare tali assi coniugati senza dover calcolare lHessiano della funzione. Per un certo periodo di tempo questi metodi sembravano quelli concettualmente più efficienti e perciò indispensabili in un programma di ottimizzazione. Con il diminuire del problema legato alla memorizzazione dellHessiano limportanza di questi metodi è calata notevolmente. Con i moderni calcolatori la memorizzazione di una matrice non è praticamente più un problema dal momento che quandanche la matrice fosse di dimensioni enormi sarebbe sicuramente molto sparsa. I moderni metodi basati sulle direzioni coniugate sono perlopiù varianti del metodo di Newton e pertanto usano la matrice Hessiana dal momento che risultano più efficienti di quelli che non la usano.

24 Metodi e Applicazioni numeriche nellIngegneria Chimica 24 Guido Buzzi-Ferraris Prima di chiudere questa breve carrellata storica desidero sottolineare un punto importante. Non esiste il metodo migliore per ogni problema di ottimizzazione. Un buon programma di solito deve sfruttare più metodi, selezionati fra quelli adatti a risolvere quel particolare problema. La scelta degli algoritmi da inserire nel programma sarà sempre legata ai soliti fattori.

25 Metodi e Applicazioni numeriche nellIngegneria Chimica 25 Guido Buzzi-Ferraris Promemoria Caratteristiche importanti per la scelta di un algoritmo. 1. Stabilità detta anche robustezza. 3. Efficienza ossia limitato tempo di calcolo. 4. Occupazione di memoria. 2. Accuratezza.

26 Metodi e Applicazioni numeriche nellIngegneria Chimica 26 Guido Buzzi-Ferraris Un programma di ottimizzazione deve essere: 1. Robusto: 2. Accurato: Deve riuscire a risolvere problemi con valli molto strette Deve riuscire a trovare con buona probabilità il minimo assoluto in una funzione con più minimi relativi Deve riuscire a risolvere problemi in cui la funzione e/o le sue derivate abbiano discontinuità Deve riuscire a trovare la soluzione in modo preciso 3. Efficiente: Deve avere convergenza quadratica con funzioni che siano ben approssimabili con una quadrica e buona velocità di convergenza in caso contrario. Deve riuscire a risolvere problemi in cui la funzione non è mai approssimabile ad una quadrica con matrice definita positiva. 4. Con poca necessità di memoria: Se usa delle matrici deve poter sfruttare la loro sparsità. Deve riuscire a risolvere problemi in cui la funzione non è definita in qualche intervallo.

27 Metodi e Applicazioni numeriche nellIngegneria Chimica 27 Guido Buzzi-Ferraris È indispensabile selezionare i metodi da inserire in un programma di ottimizzazione a seconda delle caratteristiche del problema che si deve risolvere. In particolare bisogna tenere conto dei seguenti fattori. 1. Numero delle variabili. 2. Necessità o meno di raggiungere il vero minimo. 3. Presenza di discontinuità. 4. Presenza di più minimi. 5. Presenza di valli molto strette. 6. Caratteristiche speciali della funzione (per esempio somma di quadrati).

28 Metodi e Applicazioni numeriche nellIngegneria Chimica 28 Guido Buzzi-Ferraris Per molte classi di problemi le caratteristiche della funzione sono note a priori. Per esempio In un problema di regressione non lineare: il numero delle variabili è molto ridotto, si è in presenza di valli molto strette, è necessario trovare un minimo accurato, la funzione è una somma di quadrati, si può essere in presenza di più minimi (in particolare lo si è senzaltro se si usano dei metodi di stima robusti).

29 Metodi e Applicazioni numeriche nellIngegneria Chimica 29 Guido Buzzi-Ferraris Tre categorie di metodi 1. Metodi euristici che non richiedono né il gradiente né lHessiano della funzione 2. Metodi che richiedono il gradiente della funzione. 3. Metodi che richiedono sia il gradiente che lHessiano della funzione. Tradizionalmente i metodi di ottimizzazione vengono suddivisi nelle seguenti

30 Metodi e Applicazioni numeriche nellIngegneria Chimica 30 Guido Buzzi-Ferraris Metodi euristici che non usano né il gradiente né lHessiano 3. Metodo di Hooke-Jeeves 5. Metodo del Simplex 4. Metodo di Rosenbrock 6. Metodo Rob (OPTNOV) 1. Metodo di ricerca casuale. 2. Metodi di ricerca genetici.

31 Metodi e Applicazioni numeriche nellIngegneria Chimica 31 Guido Buzzi-Ferraris Non è possibile descrivere tutti questi metodi. Mi limiterò a qualche breve commento. Il metodo di ricerca casuale è il più robusto fra tutti quelli che si possano immaginare, ma è anche estremamente inefficiente. Può essere utile solo in problemi con un numero di variabili estremamente basso e con funzioni che richiedano poco tempo di calcolo. I metodi genetici sono abbastanza robusti, ma anchessi sono molto inefficienti. Essi prendono il nome dal criterio utilizzato per generare nuovi punti di tentativo basato su regole che simulano il comportamento di cellule viventi. Tali metodi sono talvolta usati in problemi di piccole dimensioni per inizializzare altri metodi più efficienti.

32 Metodi e Applicazioni numeriche nellIngegneria Chimica 32 Guido Buzzi-Ferraris I metodi di Hooke - Jeeves e di Rosenbrok hanno ormai solo importanza storica dal momento che non hanno né particolari doti di robustezza, né sono molto efficienti. Il metodo del Simplex può essere ancora utilizzato sia da solo che abbinato ad altri metodi più efficienti perché è ragionevolmente robusto. Questo metodo ha lo stesso nome di un metodo molto noto usato in problemi lineari con vincoli lineari anche se essi non hanno nulla in comune.

33 Metodi e Applicazioni numeriche nellIngegneria Chimica 33 Guido Buzzi-Ferraris Metodo Rob (OPTNOV) Il metodo Rob non è un vero algoritmo di ottimizzazione, ma piuttosto un metodo base per gestire in modo robusto altri algoritmi di ottimizzazione. La sua filosofia è essenzialmente ricavata dal metodo OPTNOV che viceversa era un vero programma di ottimizzazione. Il metodo Rob è come il suo precursore OPTNOV particolarmente adatto a risolvere problemi con valli molto strette, anche se si comporta piuttosto bene in presenza di discontinuità o di molti minimi relativi. In altre parole il metodo Rob si presta molto bene a gestire un programma di ottimizzazione che sia robusto. Affinché il programma sia anche efficiente deve essere integrato con opportuni algoritmi là dove richiesto dal metodo Rob.

34 Metodi e Applicazioni numeriche nellIngegneria Chimica 34 Guido Buzzi-Ferraris Le idee di base su cui è imperniato il metodo Rob e ricavate dal metodo OPTNOV sono molto semplici. Si consideri un problema con una valle molto stretta. Tutti gli algoritmi usuali non riescono a progredire in modo soddisfacente perché non accettano punti che siano peggiori del migliore trovato fino a quel momento. Anche con il metodo di Rosenbrock che teoricamente dovrebbe essere adatto a seguire una valle stretta si ha lo stesso problema a meno che la direzione trovata non sia esattamente allineata con la valle.

35 Metodi e Applicazioni numeriche nellIngegneria Chimica 35 Guido Buzzi-Ferraris La prima idea su cui si basa il metodo Rob è quella di non scartare sempre i punti di ricerca quando risultano peggiori dei precedenti. La seconda idea su cui si basa il metodo Rob è che se si parte da un punto che non si trovi sul fondo della valle stretta un algoritmo qualsiasi (scelto per risolvere quel particolare problema a cui è rivolto il programma) riesce facilmente a trovare il fondo della valle. La terza idea su cui si basa il metodo Rob è che la congiungente due punti situati sul fondo della valle è una buona direzione della valle stessa. La quarta idea su cui si basa il metodo Rob è di non usare questa direzione come una direzione di ricerca monodimensionale, ma come una direzione lungo la quale proiettare un nuovo punto da cui iterare il procedimento sopra descritto.

36 Metodi e Applicazioni numeriche nellIngegneria Chimica 36 Guido Buzzi-Ferraris Alcuni accorgimenti sono indispensabili per una corretta implementazione del metodo Rob. Il primo e fondamentale accorgimento è quello di fare in modo che (qualunque sia il metodo di ricerca usato per ritornare sul fondo della valle) nella ricerca non venga usata fino alla fine la direzione lungo la quale è stato effettuato lo spostamento. In caso contrario si ritornerebbe probabilmente al punto ottimo precedente Un secondo accorgimento è di fare in modo di incrementare lo spostamento quando il nuovo punto sul fondo della valle è migliore del precedente e di decrementarlo in caso contrario. Un terzo accorgimento è di porre dei limiti alla zona di ricerca quando viene effettuata per tornare sul fondo della valle in modo che il nuovo punto non collassi sul precedente. Un quarto accorgimento è necessario per inizializzare il procedimento iterativo.

37 Metodi e Applicazioni numeriche nellIngegneria Chimica 37 Guido Buzzi-Ferraris Metodi che usano il gradiente, ma non lHessiano 1. Metodi che usano il gradiente come direzione di ricerca. 2. Metodi delle direzioni coniugate

38 Metodi e Applicazioni numeriche nellIngegneria Chimica 38 Guido Buzzi-Ferraris Metodi che usano il gradiente come direzione di ricerca Obsoleti

39 Metodi e Applicazioni numeriche nellIngegneria Chimica 39 Guido Buzzi-Ferraris Metodi delle direzioni coniugate Esistono diverse versioni di metodi delle direzioni coniugate. 1. Metodi del PARTAN che sfruttano le tangenti alle ellissi 2. Metodi che usano il gradiente per calcolare le direzioni coniugate.

40 Metodi e Applicazioni numeriche nellIngegneria Chimica 40 Guido Buzzi-Ferraris Questi metodi sono meno efficienti dei metodi che utilizzano la matrice Hessiana. Hanno ancora qualche interesse in problemi di grandissime dimensioni per cui sia problematica la memorizzazione della matrice Hessiana. Essi non sono metodi robusti e possono essere utilizzati solo con funzioni che possano ragionevolmente essere approssimate con una quadrica.

41 Metodi e Applicazioni numeriche nellIngegneria Chimica 41 Guido Buzzi-Ferraris Metodi delle direzioni coniugate Praticamente obsoleti

42 Metodi e Applicazioni numeriche nellIngegneria Chimica 42 Guido Buzzi-Ferraris Metodi che usano sia il gradiente che lHessiano 1. Metodo di Newton 2. Metodi di Newton modificato 3. Metodi Quasi Newton

43 Metodi e Applicazioni numeriche nellIngegneria Chimica 43 Guido Buzzi-Ferraris Metodo di Newton Se si espande la funzione da minimizzare in serie di Taylor nellintorno di un punto x i arrestando lo sviluppo ai termini di secondo grado si ottiene: Se lHessiano G i è definito positivo il valore di d i che rende minima questa quadrica si ottiene uguagliando a zero le sue derivate prime. G i d i = - g i Il metodo di Newton, nella sua forma elementare, utilizza iterativamente la relazione: x i+1 = x i + d i con d i ricavato risolvendo il precedente sistema lineare.

44 Metodi e Applicazioni numeriche nellIngegneria Chimica 44 Guido Buzzi-Ferraris Vantaggi del metodo di Newton Svantaggi del metodo di Newton Il metodo va in crisi se lHessiano non è definito positivo o se è singolare o molto mal condizionato. Il metodo di Newton, quando converge, converge molto rapidamente (ha una velocità di convergenza quadratica). Il metodo può non convergere. La previsione può essere peggiore di quella delliterazione precedente. Ad ogni iterazione deve essere calcolato lHessiano. Se come spesso avviene lHessiano è calcolato numericamente ad ogni iterazione la funzione F(x) deve essere calcolata N(N +1)/2 volte. Se lHessiano è definito positivo la direzione d i del metodo di Newton è tale da garantire la diminuzione della funzione. Ad ogni iterazione deve essere risolto il sistema lineare: G i d i = - g i Il metodo non è robusto.

45 Metodi e Applicazioni numeriche nellIngegneria Chimica 45 Guido Buzzi-Ferraris Sono state proposte numerose varianti del metodo di Newton. Esse possono essere raggruppate in due categorie a seconda di come viene calcolato lHessiano. 1. Metodi di Newton modificato. LHessiano viene calcolato (numericamente o analiticamente) ad ogni iterazione. In questi metodi ad ogni iterazione deve essere risolto anche il sistema lineare G i d i = - g i. 2. Metodi Quasi Newton. LHessiano viene aggiornato ad ogni iterazione sommandogli una opportuna matrice. In questi metodi ad ogni iterazione di solito viene anche evitata la soluzione del sistema lineare G i d i = - g i. In entrambi i casi vengono apportate delle modifiche al metodo di Newton elementare che cercano di evitare i problemi di convergenza o di crisi. Questi metodi sono molto importanti per risolvere problemi che non richiedano algoritmi robusti (discontinuità, molti minimi, valli molto strette ecc.).

46 Metodi e Applicazioni numeriche nellIngegneria Chimica 46 Guido Buzzi-Ferraris Qui di seguito vengono riportati i grafici di alcune funzioni che vengono utilizzate per verificare se un programma di minimizzazione è robusto.

47 Metodi e Applicazioni numeriche nellIngegneria Chimica 47 Guido Buzzi-Ferraris

48 Metodi e Applicazioni numeriche nellIngegneria Chimica 48 Guido Buzzi-Ferraris

49 Metodi e Applicazioni numeriche nellIngegneria Chimica 49 Guido Buzzi-Ferraris

50 Metodi e Applicazioni numeriche nellIngegneria Chimica 50 Guido Buzzi-Ferraris

51 Metodi e Applicazioni numeriche nellIngegneria Chimica 51 Guido Buzzi-Ferraris

52 Metodi e Applicazioni numeriche nellIngegneria Chimica 52 Guido Buzzi-Ferraris

53 Metodi e Applicazioni numeriche nellIngegneria Chimica 53 Guido Buzzi-Ferraris


Scaricare ppt "Metodi e Applicazioni numeriche nellIngegneria Chimica 1 Guido Buzzi-Ferraris."

Presentazioni simili


Annunci Google