Download
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Simulated Annealing PowerPoint Presentation
Download Presentation
Simulated Annealing

Simulated Annealing

169 Vues Download Presentation
Télécharger la présentation

Simulated Annealing

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Seminario di Metodi Matematici per l’Ottimizzazione A.A. 2011-2012 UNIVERSITÀ DEGLI STUDI DI CATANIAFACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALICORSO DI LAUREA IN INFORMATICA Presentato da: Gabriele Consoli Leonardo La Rocca SimulatedAnnealing

  2. Introduzione • Il SimulatedAnnealing (in italiano ricottura simulata) è un metodo di ricerca adatto a risolvere problemi legati all’ottimizzazione. • L’approccio degli algoritmi SimulatedAnnealing si basa sulla simulazione di un particolare fenomeno fisico. • L’obiettivo finale di questo tipo di algoritmi è quello di trovare un minimo globale in presenza di più minimi locali.

  3. Problema dell’ottimizzazione • E’ rappresentato da una coppia (c,S) dove: • S è un insieme chiamato regione ammissibile del problema. • c è la funzione obiettivo definita su S a valori reali ovvero: c:S R • L’obiettivo è quello di trovare un elemento x  S tale che: • c(x)≤c(y) ∀y ∈S: x elemento di MINIMO di S • c(x)≥c(y) ∀y ∈S: x elemento di MASSIMO di S

  4. Risoluzione di problemi di ottimizzazione

  5. Il problema del commesso viaggiatore • Un fattorino che deve effettuare un certo numero di consegne in N città. • La soluzione a questo problema è la risposta alla seguente domanda: • Quale sarà il cammino minimo meno costoso per visitare tutte le città e tornare al punto di partenza?

  6. Il problema del commesso viaggiatore (I) • Bisogna trovare un ciclo hamiltoniano di costo minimo in un assegnato grafo orientato pesato: G=(V,E,P) • Un ciclo hamiltoniano è un cammino, all’interno di un grafo G, che partendo da un nodo iniziale tocca tutti gli altri nodi del grafo una ed una sola volta, per poi alla fine tornare al nodo di partenza.

  7. Il problema del commesso viaggiatore (II) • L’insieme S delle soluzioni è dato da tutti i possibili cicli hamiltoniani. • Se il grafo è completo il numero delle possibili soluzioni sarà rappresentato da tutti i cicli hamiltoniani non simmetrici:

  8. Il problema del commesso viaggiatore (III) • Considerato un grafo con n=22 nodi lo spazio delle soluzioni sarà dato da: S = • Potendo disporre di un calcolatore che genera e valuta 109 soluzioni al secondo, per la ricerca di un minimo sarebbero richiesti circa 200 anni cioè 1010 secondi.

  9. Euristiche • Nonostante lo sviluppo tecnologico ci sono problemi che richiedono anni per fornire una soluzione ottimale. • Nell’ambito di un’applicazione pratica non è possibile aspettare cosi tanto bisogna trovare un compromesso in modo da determinare in tempi ragionevoli una buona (anche se non ottimale) soluzione. • A questo scopo vengono utilizzati degli algoritmi approssimati detti euristiche.

  10. Algoritmi Meta – Euristici • Utilizzano tecniche in grado di evitare di fermarsi in un ottimo locale. A questo scopo l’idea di base di questi algoritmi sta nel poter effettuare anche mosse peggioranti. • Una volta effettuata una mossa peggiorante non bisogna tornare alla mossa di partenza altrimenti si crea un loop infinito. • L’algoritmo meta-euristico deve rispettare 2 condizioni: • Tempi di esecuzione che non crescano troppo all’aumentare della dimensione del problema. • Soluzioni ottime o vicine a quelle ottime.

  11. Tempo vs Qualità • Le condizioni sono in conflitto tra di loro quindi l’euristica è un compromesso tra fattori contrastanti: • Conseguenze: si sacrifica la garanzia di ottenere sempre la soluzione ottimale a favore di una risposta in tempi ragionevoli. Un esempio concreto sarà descritto in maniera esaustiva dal SimulatedAnnealing.

  12. SimulatedAnnealing • E’ un processo con il quale un solido, all’interno di un bagno termico, raggiunge uno stato di energia minima. Il procedimento da seguire è il seguente: • Portare il metallo, all’interno del bagno termico, ad una temperatura tale per cui fonde. • Riportare il metallo ad uno stato solido o cristallino controllando e riducendo gradualmente la temperatura, di modo che gli atomi all’interno del metallo raggiungano lo stato di energia minima. • E’ utile analizzare il comportamento degli atomi durante questo processo.

  13. SimulatedAnnealing– Fase I • Inizialmente gli atomi presenti all’interno del solido mantengono una struttura reticolare ordinata determinata dalle forze di legame. • Per effetto dell’energia interna, gli atomi, hanno la possibilità di spostarsi dalla posizione di equilibrio imposta dalle forze di legame della struttura assumendo una configurazione differente da quella iniziale. • Ad alte temperature l’energia interna raggiunge valori tali da vincere le forze di legame e gli atomi sono in condizione di allontanarsi dalla posizione rigida imposta e di assumere una configurazione disordinata tipica dello stato liquido.

  14. SimulatedAnnealig – Fase II • Abbassando la temperatura del sistema in maniera lenta e graduale si potrà tornare ad una configurazione cristallina altamente ordinata. • Gli atomi durante il processo di raffreddamento riescono in maniera autonoma a ricostruire l’ordine cristallino eliminando le impurità iniziali rilasciando lentamente energia. • Il rilascio di energia graduale porterà al raggiungimento dello stato di energia minima ovvero lo stato cristallino puro

  15. Osservazioni • Per ogni valore della temperatura il sistema evolve naturalmente verso lo stato di minima energia, cioè raggiunge l’equilibrio termico, quindi se consideriamo variazioni infinitesime possiamo dire che il sistema resta in equilibrio termico. • Le riduzioni veloci della temperatura possono causare dei fenomeni non desiderabili: difettosità nel reticolo cristallino con conseguente metastabilità, con fessurazioni e fratture del reticolo stesso (stress termico). • Questo processo di raffreddamento rapido può essere visto come analogo all’ottimizzazione locale. • L’annealingevita questo fenomeno procedendo ad un graduale raffreddamento del sistema, portandolo ad una struttura globalmente ottima stabile.

  16. Distribuzione di Boltzmann • La termodinamica statica afferma che è più probabile trovarsi nello stato di energia minima, ma esiste una probabilità diversa da zero di trovarsi in un uno stato di energia maggiore. • Tale probabilità è descritta dalla Distribuzione di Boltzmann:

  17. Algoritmo di Metropolis • L’algoritmo di Metropolis (1954) riesce a simulare le fasi del SimulatedAnnealing ed in particolare: • Si parte dallo stato corrente S, alla temperatura T e con energia E, definito dalle posizioni delle molecole che lo costituiscono. • Viene applicata una perturbazione consistente nello spostamento di una molecola in una nuova posizione scelta casualmente. • In tal modo il sistema raggiunge un nuovo stato, S’, con un diverso valore di energia E’ • Si decide se accettare o meno il nuovo stato.

  18. Algoritmo di Metropolis(I)

  19. Algoritmo di Metropolis(II) • Il nuovo stato viene accettato, come stato corrente, con una probabilità definita dalla seguente espressione: • dove ΔE=E’-E è la differenza di energia tra il nuovo e il vecchio stato.

  20. Algoritmo di Metropolis(III) • La probabilità usata da Metropolis rappresenta il rapporto fra la probabilità che il sistema si trovinellostatoS’ rispettoallaprobabilitàchesitrovinellostatoS, secondo la distribuzione di Boltzmann. • Si notiche ad alte temperature tuttiglistatidi energiasonoequiprobabili, mentre a basse temperature ilsistemasitrovasicuramente in stati di minima energia.

  21. Corrispondenza tra l’algoritmo di Metropolis e l’ottimizzazione

  22. Osservazioni • Se lo stato E’è accettato, sostituirà lo stato iniziale e si procederà alla generazione di una nuova transizione. • Per simulare il lento raffreddamento si generano un numero N di transizioni per una data temperatura T, prima di passare ad una temperatura più bassa di modo che per ogni stato sia rispettato l’equilibrio termico. • Inizialmente un valore molto alto di T permette all’algoritmo di superare facilmente i minimi locali e di continuare la ricerca per una configurazione migliore. • In seguito, il progressivo abbassamento della temperatura tende a circoscrivere la ricerca di un minimo, permettendo all’algoritmo di convergere definitivamente al minimo globale. • La probabilità di transizione è definita essere non nulla quando ΔE è positiva intendendo con ciò che il sistema può spostarsi nel nuovo stato anche quando questo è peggiore (ha un energia più alta) di quello attuale.

  23. Perché punti peggiori?? • La ragione per cui si accettano anche punti con valori della funzione obiettivo peggiori è che questo è il solo modo di sfuggire ad ottimi locali non globali. • Nelle ricerche locali una volta giunti nell’ottimo locale non siamo più in grado di procedere a siamo costretti ad arrestarci (siamo intrappolati nell’ottimo locale). • In un algoritmo di SA possiamo invece sfuggire da un ottimo locale accettando anche punti peggiori rispetto a quello corrente.

  24. I passi della procedura • 1. Inizializzazione
Consiste nell’individuazione di una soluzione iniziale S di innesco. • 2. Definizione di una mossa
Definisce l’operazione che permette di individuare casualmente una soluzione S’ nell’intorno della soluzione corrente S. • 3. Accettazione della mossa
È l’operazione grazie alla quale si valuta se accettare o meno la soluzione individuata S’ come nuova soluzione corrente S (S’→S) applicando la probabilità di accettazione esposta in precedenza. • 4. Definizione della coolingschedules
Rappresenta la definizione di tutti i parametri di controllo dell’algoritmo.

  25. CoolingSchedules • Per coolingschedules si intende l’insieme delle regole che simulano il processo di raffreddamento e governa il successo dell’algoritmo. • Per definire una coolingschedules, in pratica, bisogna individuare: • il valore iniziale Tmaxdel parametro di controllo. • il valore finale Tmindel parametro di controllo. • Schema di raffreddamento ΔT. • Criterio di interruzione.

  26. Temperatura Iniziale • Scegliere un valore abbastanza alto cosi da ammettere più fluttuazioni di energia iniziali evitando di bloccarsi in minimi locali. • Un semplice criterio di scelta è porre T uguale a infinito in modo da accettare tutti i possibili valori. • Un metodo comunemente usato è quello di White.

  27. Temperatura Finale • Alcuni possibili criteri per stabilire a quale temperatura fermarsi sono: • Se l’energia non cambia negli ultimi N stati allora fermo l’algoritmo. • Scegliere a priori un valore minimo di stati accettati a temperatura costante. • Se la differenza tra energia minima ed energia massima degli stati a temperatura costante è prossima a zero. • Scegliere a priori un valore di soglia per la temperatura.

  28. Schema di raffreddamento ΔT (I) • Il successo dell’algoritmo è determinato dalla riduzione della temperatura. • E’ necessario scegliere un appropriato schema di riduzione degli stadi di temperatura determinando quando e quanto ridurre.

  29. Schema di raffreddamento ΔT (II)

  30. Schema di raffreddamento ΔT (III) • Possiamo quindi dire che lo schema di raffreddamento deve essere scelto in base al problema specifico che si sta trattando. • Vi sono due schemi di raffreddamento della temperatura quello geometricoe quellologaritmico: • Geometrico: è molto semplice, e viene utilizzato dalla maggioranza dei ricercatori. La temperatura viene ridotta, ad ogni stadio, moltiplicandola per una costante chiamata cooling ratio (α), che ha un valore compreso fra 0 ed 1. • Logaritmico: questo metodo garantisce la convergenza al minimo globale in un numero di passi potenzialmente infinito.

  31. Criterio di interruzione • Fattore critico: il processo di annealing converge ad un ottimo globale se la temperatura è sufficientemente ridotta in modo graduale. • Interrompereil processo quando il numero di soluzioni accettate ad un certo stadio è inferiore ad un valore fissato. In questo caso ci si può aspettare una soluzione prossima all’ottimo globale. • Tipicamente, quando non si voglia effettuare un criterio di interruzione, è possibile utilizzare un valore finale della temperatura. Tale valore corrisponde dal punto di vista fisico dell’annealing al valore della temperatura ambiente quando il bagno di fusione si è solidificato in una struttura cristallina stabile e di minima energia. Tecnicamente tale valore finale della temperatura viene stabilito in base al problema che si sta affrontando.

  32. Schema del processo fisico

  33. Processo fisico Vs Ottimizzazione Per costruire l’algoritmo si devono identificare nel problema di ottimizzazione le analogie con i concetti fisici:

  34. Costruzione dell’algoritmo Bisogna scegliere un opportuno schema di annealing. Esso si ottiene attraverso la regolazione dei parametri da cui dipende il processo di ottimizzazione matematica: • stabilire la legge di decadimento della temperatura; • la durata del tempo necessario per il raggiungimento dell'equilibrio termico; • un metodo di perturbazione del sistema per la generazione dello spazio delle configurazioni.

  35. Processo simulato (SA)

  36. Funzionamento generale INIZIALIZZAZIONE di Ted X WhileNot(Condizione d’arresto) Do fori1to L Do GENERAZIONE di Y da X Iff(Y) <= f(X) ThenXY ElseIf METROPOLIS_RULE() ThenXY End DECREMENTO DI T End

  37. Criteri di scelta della temperatura • TEMPERATURA INIZIALE Dato lo stato iniziale il sistema viene perturbarto per N passi a T->∞. • TEMPERATURA FINALE L’algoritmo si arresta se la migliore configurazione non è cambiata per K iterazioni

  38. Cooling Schedule (I) • Schema di raffreddamento • Scheduling geometrico: Tk = T0 α(k/N) • Dove: • T0 = temperatura iniziale • 0 ≤ α ≤ 1 • k = passo attuale dell’algoritmo • N = numero di transizione a temperatura Tk

  39. CoolingSchedule (II)

  40. Applicazioni SA in Matlab • Traveling Salesman Problem (TSP) • Bipartizione di un grafo • Deconvoluzione sismica

  41. TSP nel SimulatedAnnealing

  42. Bipartizione di un Grafo • Dato un grafo G=(V,E) non orientato, dove V è un insieme di vertici, una bipartizione {V1, V2} è definita da: V1∩V2=∅ e V1∪ V2=V tali che il numero di archi che connettono V1 e V2 sia minimo. • Se un arco(u,v) connette le due partizioni, con u ϵ V1e v ϵ V2 , la funzione obiettivo è quindi: {(u,v) ϵ E : u ϵV1 , v ϵV2}

  43. Bipartizione di un Grafo in SA

  44. Deconvoluzione Sismica • La deconvoluzione è un passaggio fondamentale nell’elaborazione di un segnale sismico, permette di recuperare le alte frequenze, attenuare le multiple e ricostruire la forma d’onda generata da un impulso. • La deconvoluzione semplifica l’onda sismica della sorgente f(t) dalle tracce registrate per ricostruire idealmente la funzione della riflettività terrestre e(t). • I coefficienti di riflessione identificano e quantificano il disallineamento tra i diversi strati geologici

  45. DeconvoluzioneSismica (II)

  46. DeconvoluzioneSismica (III) • L’applicazione consiste nel far detonare una carica esplosiva sulla superficie terrestre. • Le onde sonore, provocate dall’esplosione, attraversa diversi strati delle crosta terrestre fino a raggiungere uno strumento che ne misura il valore. • Le onde saranno parzialmente riflesse nel passaggio tra uno strato ed un altro. Il segnale ricevuto sarà una sovrapposizione di più segnali attenuati e ritardati del segnale originale.

  47. DeconvoluzioneSismica (IV)

  48. Deconvoluzione Sismica (V) • Dato f(t) segnale originale, g(t) segnale misurato. • Il segnale ricostruito sarà dato da: s(t)=Σiαif(t-τ) Dove α e τ sono rispettivamente attenuazione e ritardodell’i-esima componente della sovrapposizione. • Funzione costo : Σi (g(t)-s(t))2

  49. Deconvoluzione Sismica (VI)

  50. Deconvoluzione Sismica in SA