Algoritmi Genetici e Applicazioni

15
Diagnostica e Monitoraggio di Apparati e Sistemi Elettrici Studente: Vinício Manuel Azevedo Ribeiro | Matricola: 523686 | Prof.: Mauro Tucci Algoritmi Genetici e Applicazioni Anno Accademico 2014 / 2015

Transcript of Algoritmi Genetici e Applicazioni

Page 1: Algoritmi Genetici e Applicazioni

Diagnostica e Monitoraggio di Apparati e Sistemi Elettrici

Studente: Vinício Manuel Azevedo Ribeiro | Matricola: 523686 | Prof.: Mauro Tucci

Algoritmi Genetici e Applicazioni

Anno Accademico 2014 / 2015

Page 2: Algoritmi Genetici e Applicazioni

Introduzione

Descrizione dell'algoritmo

Schema iterativo

Applicazioni

Esempio: L’algoritmo genetico NSGA-II

Fine

Sommario

Page 3: Algoritmi Genetici e Applicazioni

Gli Algoritmi Genetici (AG) sono algoritmi di ricerca che si ispirano ai meccanismi della selezione naturale Darwiniana e dell’evoluzione biologica. Sono stati trattati per la prima volta da John Holland nel 1975.

Gli AG operano su una popolazione di potenziali soluzioni applicando il principio della sopravvivenza e della riproduzione dei migliori.

Introduzione

Page 4: Algoritmi Genetici e Applicazioni

1. Popolazione Costituita da un numero n di individui.

Ogni individuo rappresenta una possibile soluzione al problema ed è codificato sotto forma di stringa, detta cromosoma.

Il sistema di codifica più utilizzato è il sistema binario. Ogni soluzione è quindi rappresentata (codificata) come una stringa di 0 ed 1.

Descrizione dell'algoritmo

Page 5: Algoritmi Genetici e Applicazioni

1. Popolazione

2. Funzione di fitness

La funzione di fitness è una funzione in grado di valutare quanto una soluzione è adatta a risolvere il problema dato. Ad ogni soluzione corrisponde quindi un valore di fitness.

Una volta che la funzione di fitness ha determinato il valore di bontà di ogni individuo della popolazione, una nuova popolazione di individui (o genotipi) viene creata applicando alcuni operatori che si ispirano alla selezione naturale e alla genetica.

Descrizione dell'algoritmo

Page 6: Algoritmi Genetici e Applicazioni

1. Popolazione

2. Funzione di fitness

3. L’operatore di selezione

Il principio di selezione ha il compito di selezionare gli individui della popolazione (le soluzioni) che meglio rispondono al problema da risolvere. La selezione si basa sulla fitness degli individui; le soluzioni con fitness maggiore (rispetto alla media della popolazione) avranno maggiori possibilità di partecipare alla riproduzione e quindi di trasmettere alle future generazioni i propri geni.

Descrizione dell'algoritmo

Page 7: Algoritmi Genetici e Applicazioni

1. Popolazione

2. Funzione di fitness

3. L’operatore di selezione

4. Mating pool

Ogni volta che un individuo della popolazione è selezionato ne viene creata una copia che è inserita nel così detto mating pool (piscina d’accoppiamento).

Quando il mating pool è riempito con esattamente n (numero di individui della popolazione) copie di individui della popolazione, nuovi n discendenti sono creati applicando gli operatori genetici.

Descrizione dell'algoritmo

Page 8: Algoritmi Genetici e Applicazioni

1. Popolazione

2. Funzione di fitness

3. L’operatore di selezione

4. Mating pool

5. Crossover

Gli operatori genetici combinano i geni delle diverse soluzioni al fine di esplorare nuove soluzioni. Una volta che un gruppo di soluzioni viene individuato come idoneo alla riproduzione, l’operatore genetico di crossover, emulando la riproduzione sessuata degli esseri viventi, combina i geni dei genitori e formula una nuova generazione di soluzioni.

Descrizione dell'algoritmo

Punto di taglio

Page 9: Algoritmi Genetici e Applicazioni

1. Popolazione

2. Funzione di fitness

3. L’operatore di selezione

4. Mating pool

5. Crossover

6. Mutazione

La mutazione puntuale agisce direttamente sui figli, andando a modificare un gene a caso.

Una volta che due discendenti sono stati generati per mezzo del crossover può succedere (usualmente poca probabilità) cambio dei bit dei nuovi individui da 0 in 1 o viceversa.

Descrizione dell'algoritmo

Page 10: Algoritmi Genetici e Applicazioni

Schema iterativo

La nuova generazione di soluzioni prende il posto della generazione precedente. Il processo viene reiterato per un numero x di volte fino a quando o si raggiunge una approssimazione accettabile della soluzione al problema o si raggiunge il numero massimo di iterazioni prefissato.

Page 11: Algoritmi Genetici e Applicazioni

Negli ultimi anni, gli AG sono stati ampiamente diffusi essenzialmente a causa della sua applicabilità in settori diversi come ingegneria, design industriale, ricerca operativa, informatica, biochimica e biologia.

Ottimizzazione è la parola chiave quando si tratta di AG. Un certo numero di variabili del problema deve essere scelto in modo da massimizzare (o minimizzare) una funzione obiettivo.

Per molti problemi esistono i metodi convenzionali efficaci. Tuttavia, tali metodi possono fallire quando la natura del problema è più complessa. È in queste situazioni che gli AG dimostrano la loro utilità e robustezza.

Applicazioni

Page 12: Algoritmi Genetici e Applicazioni

L’ NSGA-II (Non-Dominated Sorting Genetic Algorithms) è un popolare algoritmo genetico molto efficace e presenta performance di alto livello se confrontato con altri algoritmi multi-obiettivo evolutivi.

Esaminiamo ora il funzionamento di questo algoritmo attraverso una implementazione Matlab per un problema test.

Concetto importante: Fronte di Pareto -> insieme di soluzioni ottime, costituito da tutti i punti non dominati, cioè da quei punti per i quali non esiste nessun punto che sia migliore contemporaneamente per gli obiettivi considerati nella funzione di ottimizzazione.

Esempio: L’algoritmo genetico NSGA-II

Page 13: Algoritmi Genetici e Applicazioni

Consideriamo il seguente problema di ottimizzazione:

Esempio: L’algoritmo genetico NSGA-II

L’algoritmo parte lanciando il comando Matlab:

nsga_2(pop,gen)

con “pop” dimensione della popolazione e “gen” numero di generazioni successive da eseguire.

Eseguiamo due volte l’algoritmo utilizzando:

(pop=20, gen=5) e (pop=200, gen=150)

Page 14: Algoritmi Genetici e Applicazioni

Guardiamo i risultati:

Esempio: L’algoritmo genetico NSGA-II

L’area verde rappresenta lo spazio obiettivo. Gli asterischi rappresentano le soluzioni trovate.

(pop=20, gen=5) (pop=200, gen=150)

Page 15: Algoritmi Genetici e Applicazioni

Esempio: L’algoritmo genetico NSGA-II

A sinistra, come si può notare le soluzioni sono poche e disposte in maniera praticamente casuale.

A destra, il fronte di Pareto è ben definito, preciso e molto popolato, il tutto ovviamente a scapito del tempo di elaborazione.

(pop=20, gen=5) (pop=200, gen=150)