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