Algoritmi e Programmazione Avanzata Algoritmi Genetici Introduzione Algoritmi Genetici (GA) sono algoritmi di ricerca e ottimizzazione basati sui meccanismi dell’evoluzione biologica della specie di Charles Darwin Sviluppati da John Holland, Università del Michigan (1970) Appartengono alla categorie degli Algoritmi Evolutivi (come Tabu Search, Selfish Gene). Gli Algoritmi Genetici Fulvio Corno, Maurizio Rebaudengo Dip. Automatica e Informatica Politecnico di Torino A.A. 2001/2002 Evoluzione naturale Popolazione iniziale Pressione selettiva Charles Darwin (1809 – 1882) APA-Algoritmi Genetici 2 Modello per un GA Popolazione finale Individui adatti Individui mediamente adatti Ogni soluzione del problema da risolvere (individuo) è rappresentato da una stringa di elementi (cromosoma) Ogni elemento del cromosoma è chiamato gene Ad ogni individuo è associato un valore di bontà (fitness) Un insieme di individui compone una popolazione La popolazione è modificata ad ogni generazione attraverso un meccanismo di riproduzione. Individui non adatti A.A. 2001/2002 APA-Algoritmi Genetici 3 A.A. 2001/2002 APA-Algoritmi Genetici 4 Evoluzione attraverso riproduzione Algoritmi Genetici 1 individuo = 1 soluzione = 1 stringa Popolazione = Insieme di individui generazione i-1 generazione i f(x) A.A. 2001/2002 miglioramento della fitness La funzione di fitness valuta quanto ogni individuo è vicino all’ottimo APA-Algoritmi Genetici generazione i+1 5 A.A. 2001/2002 APA-Algoritmi Genetici 6 1 Algoritmi e Programmazione Avanzata Algoritmi Genetici Ciclo di evoluzione riproduzione genitori popolazione figli Algoritmo genetico Inizializzazione della Popolazione P(t=0) Valutazione P(0) While (non si verifica la condizione di terminazione) Generazione di P(t+1) da P(t) Valutazione P(t+1) t=t+1 end modifica Figli modificati figli valutazione valutazione Membri cancellati scarti A.A. 2001/2002 APA-Algoritmi Genetici 7 Cromosomi dalla natura del problema possono essere: 8 Scelte possibili per P(0): generazione casuale di cromosomi soluzioni generate attraverso algoritmo greedy. Stringhe di bit: (0101 ... 1100) Numeri reali: (43.2 -33.1 ... 0.0 89.2) Permutazioni di elementi: (E11 E3... E1 E15) Liste di regole: (R1 R2 ... R22 R23) … A.A. 2001/2002 APA-Algoritmi Genetici Inizializzazione della popolazione Codifica Dipendente A.A. 2001/2002 APA-Algoritmi Genetici 9 Funzione di valutazione A.A. 2001/2002 APA-Algoritmi Genetici 10 Selezione degli individui La funzione di valutazione decodifica un cromosoma e gli assegna una misura di bontà (fitness) Tale funzione costituisce il legame tra l’algoritmo genetico ed il problema da risolvere. A.A. 2001/2002 APA-Algoritmi Genetici Per ogni individuo la probabilità di essere selezionato per la riproduzione è proporzionale alla sua fitness. 11 A.A. 2001/2002 APA-Algoritmi Genetici 12 2 Algoritmi e Programmazione Avanzata Algoritmi Genetici Roulette-wheel # 10# 9 #1 Somma #8 #7 #6 #2 #5 #3 Riproduzione #4 A.A. 2001/2002 dei valori di fitness di tutti gli individui (TF) Generazione di un numero m casuale compreso tra 0 e TF Selezione del primo individuo la cui fitness sommata a quella degli elementi precedenti è maggiore di m. APA-Algoritmi Genetici Asessuata Mutazione Sessuata Crossover Mutazione 13 Mutazione (I) A.A. 2001/2002 APA-Algoritmi Genetici 14 Mutazione (II) Corrisponde all’assegnazione di un valore casuale (od una modifica locale) ad un gene casuale Causa piccoli spostamenti nello spazio di ricerca Può esplorare informazioni non ancora presenti (o perdute) nella popolazione Prima: (1 0 1 1 0 1 1 0) Dopo: (0 1 1 0 0 1 1 0) Prima: (1.38 -69.4 326.44 0.1) Dopo: (1.38 -67.5 326.44 0.1) MUTAZIONE A.A. 2001/2002 APA-Algoritmi Genetici 15 Crossover A.A. 2001/2002 16 Cancellazione L’operatore di crossover svolge il ruolo giocato dalla riproduzione in natura. Produce un nuovo individuo mescolando l’informazione contenuta in 2 individui genitori Generational GA: ad ogni generazione viene rimpiazzata l’intera popolazione Steady-state GA: ad ogni generazione sono rimpiazzati pochi individui Elitismo: i migliori individui non vengono cancellati. CROSSOVER A.A. 2001/2002 APA-Algoritmi Genetici APA-Algoritmi Genetici 17 A.A. 2001/2002 APA-Algoritmi Genetici 18 3 Algoritmi e Programmazione Avanzata Algoritmi Genetici Esempio: il problema dello zaino (I) Parametri per un GA Popolazione: Dimensione della popolazione Codifica: Stringa di bit: vettore C[N]={0, 0, 1, 1, 0} Riproduzione: Tipo e probabilità di crossover Tipo e probabilità di mutazione Nuova Tipo C[i]=1 generazione: C[i]=0 di cancellazione di individui salvati (con elitismo) se l’oggetto i viene inserito nello zaino se l’oggetto i non viene inserito nello zaino. Numero Condizione Numero di terminazione: di generazioni. A.A. 2001/2002 APA-Algoritmi Genetici 19 Esempio: il problema dello zaino (II) A.A. 2001/2002 APA-Algoritmi Genetici 20 Esempio: il problema dello zaino (III) Crossover: 1 taglio: Funzione di valutazione: se ∑ xi pi ≤ P: f(j) se ∑ xi pi > P: 10111 ∑ x i vi CROSSOVER 10100 01100 - (∑ xi pi – P) 2 tagli: 10111 CROSSOVER 10101 01100 A.A. 2001/2002 APA-Algoritmi Genetici 21 A.A. 2001/2002 APA-Algoritmi Genetici Esempio: il problema dello zaino (IV) Esempio: il problema del commesso viaggiatore Mutazione: Modifica di 1 bit scelto casualmente Trovare un cammino che visita un insieme di città in modo che: Ogni città venga visitata una volta sola La distanza totale sia minima. 10001 A.A. 2001/2002 MUTAZIONE APA-Algoritmi Genetici 22 10101 23 A.A. 2001/2002 APA-Algoritmi Genetici 24 4 Algoritmi e Programmazione Avanzata Algoritmi Genetici Codifica Crossover Il cromosoma è codificato con la rappresentazione dell’ordine delle città nel cammino. F A E G H B Individuo ( A, B, C, H, D, E, F, G ) D Si scelgono casualmente 2 punti di taglio La porzione tra i 2 punti di taglio del primo genitore è copiata nel figlio I geni restanti del figlio sono presi dal secondo genitore nell’ordine in cui compaiono (order crossover). Genitore 1: ( h, k, c, e, f, d, | Genitore 2: ( a, b, c, d, e, f, | b, l, a, | i, g, j ) g, h, i, | j, k, l ) Figlio: b, l, a, | j, k, c ) ( d, e, f, g, h, i, | C A.A. 2001/2002 APA-Algoritmi Genetici 25 A.A. 2001/2002 Funzione di valutazione APA-Algoritmi Genetici 26 Esempio: 30 città 100 90 80 Calcolo della lunghezza del cammino tra le città attraversate dalla codifica di ciascun individuo. 70 y 60 50 40 30 20 10 0 0 10 20 30 40 50 60 70 80 90 100 x A.A. 2001/2002 APA-Algoritmi Genetici 27 A.A. 2001/2002 Esempio: generazione iniziale APA-Algoritmi Genetici 28 Esempio: generazione 10 Cammino = 941 Cammino = 800 100 100 90 90 80 80 70 70 60 50 y y 60 40 50 40 30 30 20 20 10 10 0 0 10 20 30 40 50 60 70 80 90 0 100 0 x 10 20 30 40 50 60 70 80 90 100 x A.A. 2001/2002 APA-Algoritmi Genetici 29 A.A. 2001/2002 APA-Algoritmi Genetici 30 5 Algoritmi e Programmazione Avanzata Algoritmi Genetici Esempio: generazione 100 Esempio: generazione finale Cammino = 652 Cammino = 420 100 100 90 90 80 80 70 70 60 50 y y 60 40 50 40 30 30 20 20 10 10 0 0 10 20 30 40 50 60 70 80 90 0 100 0 10 20 30 40 x A.A. 2001/2002 31 Evoluzione Worst 80 90 100 A.A. 2001/2002 APA-Algoritmi Genetici 1400 1200 1000 800 600 400 200 0 Generazioni (1000) APA-Algoritmi Genetici 33 A.A. 2001/2002 APA-Algoritmi Genetici Conclusioni (II) Conclusioni Svantaggi: Fornisce una soluzione ottimale Definizione dei parametri basata su esperienza. Gli Algoritmi Genetici sono diffusamente utilizzati in molti campi applicativi (economici, scientifici ed ingegneristici). A.A. 2001/2002 32 Vantaggi: Facile da realizzare Fornisce sempre una soluzione Trade-off tra il tempo e il risultato Possibilità di parallelizzare o distribuire il problema Permette di gestire funzioni con più obiettivi Permette soluzioni ibride (GA+euristiche) Average 1600 Distanza 70 Conclusioni 1800 A.A. 2001/2002 60 x APA-Algoritmi Genetici Best 50 APA-Algoritmi Genetici 35 A.A. 2001/2002 APA-Algoritmi Genetici 34 36 6 Algoritmi e Programmazione Avanzata Algoritmi Genetici Per saperne di più Libri: D. Goldberg, Genetic Algorithms, Addison Wesley, 1988 L. Davis, Handbook of Genetic Algorithms, Van Nostrand Reinhold, 1991 M. Mitchell, An Introduction to Genetic Algorithms, The MIT Press, 1996 Siti internet A.A. 2001/2002 Rete di eccellenza europea: Evoweb http://evonet.dcs.napier.ac.uk/ FAQ su GA: http://www.cs.bham.ac.uk/Mirrors/ftp.de.uu.net/EC/clife/www/ APA-Algoritmi Genetici 37 7