Ingegneria della Conoscenza e Sistemi Esperti Lezione 9: Evolutionary Computation Dipartimento di Elettronica e Informazione Politecnico di Milano Evolutionary Computation • Raggruppa modelli di calcolo che si ispirano – alla metafora della genetica delle popolazioni – alla teoria di Darwin sull’evoluzione • Fra gli altri ne fanno parte – Algoritmi Genetici – Strategie Evolutive – Genetic Programming (programmazione genetica) 1 Caratteristiche Principali • Popolazione di individui che evolve nel tempo • Meccanismo di selezione che favorisce la sopravvivenza degli individui migliori • Meccanismi per lo scambio di patrimonio genetico • Meccanismi di mutazione Evoluzione Naturale e Artificiale • Evoluzione Naturale – Non è diretta – Dipende dall’ambiente con cui gli indivui vivono – Gli individui sono migliori se sopravvivono e si adattano all’ambiente • Evoluzione Artificiale – È diretta e quindi può essere paragonata all’allevamento – L’allevatore decide quali sono gli individui migliori da selezionare – Le mutazioni possono essere ancora casuali ma in alcuni casi decise anche dall’allevatore 2 Algoritmi Evolutivi • Simulano l’attività di un allevamento • Esiste una popolazione finita di individui • Mutazioni possono accadere in maniere casuale ma anche indotte • La selezione degli elementi migliori avviene secondo un criterio predefinito Quando un individuo è migliore? • Nell’evoluzione naturale, è la sopravvivenza che determina se e quanto un individuo è migliore di un altro • In un allevamento, è l’allevatore che decide quali individui sono da preferire • Negli algoritmi evolutivi, viene definita una funzione di fitness che associa un punteggio numerico ad ogni individuo • Più alto il punteggio, migliore l’individuo 3 Cosa sono gli Algoritmi Genetici? • Sono algoritmi di ottimizzazione “inventati” da John Holland, intorno al 1975 • Vengono utilizzati per trovare il massimo o il minimo di una certa funzione obiettivo Quando e perchè vengono utilizzati? • Quando altri metodi noti non sono applicabili • Si possono applicare quasi in ogni problema • Come l’evoluzione naturale, richiedono più tempo di altri metodi • È consigliabile utilizzarli solo quando non ci sono altre possibilità • Applicazioni al Data Mining: GA-MINER e altri... 4 Algoritmi Genetici (Holland 1975) • Popolazione – È costituita da un insieme di stringhe binarie (gli individui) di lunghezza finita • Selezione – Viene definita una funzione di fitness che associa ad ogni invividuo un punteggio numerico – Ogni individuo ha una probabilità di sopravvivenza proporzionale alla propria fitness • Mutazione e Riproduzione – Avviene attraverso due operatori, crossover e mutazione, che ricombinano e mutano il patrimonio genetico degli individui Un po’ di terminologia… Evoluzione Naturale Evoluzione Artificiale Fitness Funzione di Fitness/Obiettivo Cromosoma/Individuo Stringa/Soluzione Gene Gene/Parametro/Feature Allele Allele/Valore del Parametro Allele Fitness 0 1 1 0 Cromosoma/Individuo 1 0 100 Gene 5 Algoritmi Genetici - Algoritmo – t:=0 – Inizializza la popolazione iniziale P(t) con N individui generati in maniera casuale – RIPETI Calcola la fitness per tutti gli elementi di P(t) Genera Pr(t+1) da P(t) applicando l’operatore di RIPRODUZIONE Genera Pc(t+1) da Pr(t+1) applicando l’operatore di CROSSOVER Genera Pm(t+1) da Pc(t+1) applicando l’operatore di MUTAZIONE a Pc(t+1) P(t+1) := Pm(t+1) t := t+1 – FINO alla Condizione di Terminazione Algoritmi Genetici - Selezione Individuo Fitness x1 f (x 1 ) Μ xj Μ xn Μ ( ) f xj Μ f (x n ) Prob. di Riproduzione Pr(xi) f (x1 ) n ∑ i=1 f (x i ) ( ) f xj f (x n ) n ∑ i=1 f (x i ) n ∑ i=1 f (x i ) Ogni individuo ha una probabilità di riprodursi proporzionale a Pr (xi) 6 Algoritmi Genetici - Selezione Individui 00100 01001 00011 Fitness f(00100) = 50 f(01001) = 25 f(00011) = 25 Probabilità Pr(00100) = .5 Pr(01001) = .25 Pr(00011) = .25 00100 Selezione dei discendenti tramite ROULETTE 00011 01001 Crossover 0 10 0 1 0 10 1 0 0 01 1 0 0 01 0 1 Vengono scelte (N/2)·pc coppie di individui in maniera casuale dalla popolazione. Un punto di taglio viene scelto in maniera casuale all’interno degli individui e il crossover è eseguito. 7 Mutazione Ogni allele di un individuo è mutato con probabilità Pm 0100 01 0101 11 Esempio - Ottimizzazione di Funzione Problema • Si vuole massimizzare la funzione y=x2 sull’intervallo intero [0..31] Passi • Scegliere una codifica per gli elementi dello spazio di ricerca • Scegliere una funzione di fitness • Applicazione dell’algoritmo genetico 8 Esempio - Ottimizzazione di Funzione Codifica Scegliamo la classica codifica binaria Ci sono 32 valori possibili e quindi sono necessari 5bit Funzione di Fitness La funzione di fitness è la stessa funzione da massimizzare y=x2 Esempio: f(00100) = 42 = 16 Popolazione Iniziale {01101, 11000, 01000, 10011} Esempio - Ottimizzazione di Funzione Selezione N Stringa f(s) % Rispetto al Totale 1 01101 169 14.4% 2 11000 576 49.2% 3 01000 64 5.5% 4 10011 361 30.9% Totale Fitness: 1170 La roulette viene girata 4 volte e seleziona la nuova popolazione {01101, 11000, 11000, 10011} 9 Esempio - Ottimizzazione di Funzione Crossover Supponiamo di avere una Probabilità di Crossover pari a 0.5. Pc = 0.5 Vengono scelte casualmente (N/2)* Pc coppie di individui cioè (4/2)*.5 = 1 coppia di individui e il punto di crossover 0110 | 1 1100 | 0 0110 | 0 1100 | 1 La Nuova Popolazione {01100, 11001, 11000, 10011} Esempio - Ottimizzazione di Funzione Mutazione Con una probabilità di mutazione Pm=0.01 viene cambiato un il valore di un gene (allele) dell’individuo 10011 11011 Nuova Popolazione {01100, 11001, 11000, 11011} 10 Esempio - Problema del Commesso Viaggiatore Problema • Otto città collegate • Dobbiamo trovare il percorso minimo che passa per tutte le città Primo Passo: Scelta di una rappresentazione adeguata • Stringa binaria? • Oppure… Esempio - Problema del Commesso Viaggiatore Secondo Passo: Scelta di una funzione di fitness • Ad esempio possiamo definire Fitness(percorso) = (lunghezza)-1 Terzo Passo: Definizione degli operatori di crossover e mutazione • Crossover standard • Crossover Ridefinito 11 Esempio - Problema del Commesso Viaggiatore Quarto passo: Scelta di un criterio di stop • Fisso il numero di cicli • Il processo si ferma quando non ci sono miglioramenti Genetic Programming • È l’applicazione degli algoritmi genetici al caso in cui gli individui sono programmi • La fitness viene valutata eseguendo il programma • Pone notevoli quesiti – Quale paradigmi di programmazione? – Quale linguaggio? – Quale sottoinsieme di istruzioni? • E problemi… – Terminazione? 12 Rappresentazione degli Individui • Tradizionalmente la Genetic Programming rappresenta gli individui tramite s-espressioni LISP • Vengono selezionati un insieme di simboli terminali T e di simboli di funzione F • Ad esempio T={X, Z, 0.234, 0.789} F={+, -, *} Regressione Simbolica Problema • Dato un insieme di coppie <x1,y1> … <xn,yn> trovare una funzione che meglio approssima i punti della funzione Primo Passo: Scelta dei terminali e delle funzioni • Terminali T={X} • Funzioni F={+, -, *, /, sin, exp, cos, log} Secondo Passo: Scelta della fitness • Errore quadratico fra gli yi e i valori approssimati dall’individuo Terzo Passo: Definizione degli operatori di crossover e mutazione 13 Regressione Simbolica - Crossover Regressione Simbolica - Mutazione • La mutazione viene solitamente implementata con un crossover fra l’individuo ed un individuo generato in maniera casuale 14 Regressione Simbolica - Esempio di Soluzione • Supponiamo che i dati vengano generati dalla funzione x4+ x3+ x2+ x • Una possibile soluzione è data dall’individuo qui rappresentato 15