Modelli Computazionali per Sistemi Complessi
A.A. 2005/2006
Università della Calabria
Algoritmi Genetici
Prof. Salvatore Di Gregorio
Dr. William Spataro
Dr. Donato D’Ambrosio
Cosa sono e come operano gli
Algoritmi Genetici
• Gli Algoritmi Genetici (AG) furono proposti da
John Holland (Università del Michigan) tra la fine
degli anni 60 e l’inizio degli anni 70
• Gli AG (Holland, 1975, Goldberg, 1989) sono
algoritmi di ricerca che si ispirano ai meccanismi
della selezione naturale e della riproduzione
sessuale
• Gli AG simulano l'evoluzione di una popolazione
di individui, che rappresentano soluzioni
candidate di uno specifico problema, favorendo
la sopravvivenza e la riproduzione dei migliori
L’originario modello di Holland
• L’originario modello di Holland opera su una
popolazione P di n stringhe di bit (dette individui
o genotipi) di lunghezza l fissata
Funzione di fitness, spazio di
ricerca e paesaggio d’idoneità
• la funzione di fitness valuta la bontà degli
individui gi della popolazione P nel risolvere il
problema di ricerca dato:
f : P (-, +); f(gi) = fi
• L'insieme delle stringhe binarie di lunghezza l ha
2l elementi; tale insieme rappresenta lo spazio di
ricerca (search space) dell‘AG, cioè lo spazio
che l‘AG deve esplorare per risolvere il
problema di ricerca (es. trovare il massimo o il
minimo).
• I valori di fitness sui punti dello spazio di ricerca
è detto paesaggio d'idoneità (fitness landscape).
Esempio di paesaggio d’idoneità di
un AG con genotipi binari di 2 bit
• Il numero di stringhe binarie di lunghezza 2 è 2l = 22 = 4
• Lo spazio di ricerca dell’AG è dunque
S = {(0,0), (0,1), (1,0), (1,1)}
• I valori di fitness sui punti di S definiscono il paesaggio
d’idoneità dell’AG
Operatori
• 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
• Gli operatori proposti da Holland sono:
– Selezione (ispirato alla selezione naturale)
– Crossover (ispirato alla genetica)
– Mutazione (ispirato alla genetica)
• Gli ultimi due sono detti operatori genetici
L’operatore di selezione
• La selezione naturale Darwiniana sostiene che
gli individui più “forti” abbiano maggiori
probabilità di sopravvivere nell’ambiente in cui
vivono e, dunque, maggiore probabilità di
riprodursi
• Nel contesto dell’AG di Holland, gli individui più
forti sono quelli con fitness più alta, poiché
risolvono meglio di altri il problema di ricerca
dato; per questo essi devono essere privilegiati
nella fase di selezione degli individui che
potranno riprodursi dando luogo a nuovi individui
La selezione proporzionale
• Holland propose un metodo di selezione
proporzionale al valore di fitness; sia fi il
valore di fitness del genotipo gi, la
probabilità che gi sia selezionato per la
riproduzione è:
ps,i = fi / fj
• Tali probabilità sono utilizzate per costruire
una sorta di roulette
Esempio di roulette
• I quattro individui A1, A2, A3 e A4, con probabilità di
selezione 0.12, 0.18, 0.3 e 0.4, occupano uno “spicchio” di
roulette di ampiezza pari alla propria probabilità di
selezione. Nell'esempio l'operatore di selezione genera il
numero casuale c = 0.78 e l'individuo A4 viene
selezionato
Mating pool
• Ogni volta che un individuo della popolazione è
selezionato ne viene creata una copia; tale
copia è 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
Crossover
• Si scelgono a caso due individui nel mating pool
(genitori) e un punto di taglio (punto di crossover) su di
essi. Le porzioni di genotipo alla destra del punto di
crossover vengono scambiate generando due
discendenti.
• L'operatore di crossover è applicato, in accordo a una
prefissata probabilità pc, n/2 volte in modo da ottenere n
discendenti; nel caso in cui il crossover non sia
applicato, i discendenti coincidono con i genitori.
Mutazione
• Una volta che due discendenti sono stati generati per
mezzo del crossover, in funzione di una pressata e
usualmente piccola probabilita pm, il valore dei bit dei
nuovi individui sono cambiati da 0 in 1 o viceversa.
• Come il crossover, rappresenta una metafora della
riproduzione sessuale, l'operatore di mutazione modella
il fenomeno genetico della rara variazione di elementi del
genotipo negli esseri viventi durante la riproduzione
sessuale.
Schema iterativo
AG {
t=0
inizializza la popolazione P(t) in maniera casuale
valuta la popolazione P(t)
mentre (!criterio_fermata) {
t=t+1
crea P(t) applicando selezione, crossover e mutazione
valuta P(t)
}
}
Esempio (da Goldberg, 1989)
• Problema (facile) di ricerca - Problema: trovarfe
il massimo della funzione y=x2 in [0,31]
• Approccio AG :
– Rappresentazione Genotipo : stringhe binarie (e.g.
000000; 0110113; 1111131)
– Dimensione popolazione: 4
– Crossover e no mutazione (solo un esempio!)
– Selezione a Roulette (i.e. quella proporzionale!)
– Inizializzazione Random
• Un ciclo generazionale viene mostrato di seguito
Esempio (da Goldberg, 1989)
Esempio (da Goldberg, 1989)
Crossover o mutazione?
• Lungo dibattito decennale: qual è
migliore/necessario?
• Risposta (comunemente accettata):
– Dipende sul problema, ma
– in generale, meglio avere entrambe
– mutazione da sola è possibile, crossover da
solo non dovrebbe funzionare
Perché gli AG funzionano?
• Esplorazione: Ricerca su aree promettenti dello
spazio di ricerca
• Sfruttamento: Ottimizzando in un’area
promettente, i.e. utilizzando informazione
• Sussiste co-operazione e competizione tra loro
• Crossover è “esplorativo”, fa un “grosso” salto in
un’area tra due aree (genitore)
• Mutazione è “sfruttatore”, esso crea piccole
diversificazioni, perciò rimanendo “vicino”
all’area del genitore
Teoria sugli AG
•
•
Parallelismo Implicito (Holland, 1975): mentre
l’AG opera su una popolazione di n genotipi,
esso esplora un numero tra 2l e n2l sottoregioni dello spazio di ricerca, essendo l la
lunghezza del genotipo
Esempio: l’individuo 101 può essere
considerato un genotipo rappresentativo delle
seguenti sotto-regioni dello spazio di ricerca:
101; *01; 1*1; 10*; **1; 1**; *0*; ***
dove il simbolo * sta per 0 o 1
Teoria sugli AG
•
Teorema Fondamentale (Holland, 1975): dopo
una fase iniziale nella quale l’AG esplora in
modo quasi random lo spazio di ricerca
(campionamento), esso si concentra sulla
regione più “promettente”, i.e. la regione
caratterizzata da individui con fitness maggiori
•
Per una dimostrazione, vedi Goldberg (1989)
Altri modelli AG (Codifica)
•
Codifica binaria:
–
–
Codifica binaria classica di Holland
Grey code (cf. Mitchell 1996) – Tra due codifiche
successive, la differenza è di 1 bit
Altri modelli AG (Codifica)
• Caratteri, interi e valori reali
• Codifica ad albero (Genetic Programming; cf
Koza, 1992). Il seguente esempio mostra una
rappresentazione ad albero dell’algoritmo che
calcola la funzione A3
Altri modelli AG (Rimpiazzamento)
• Rimpiazzamento
Generazionale : tutta la
popolazione è rimpiazzata
con nuovi discendenti. Nota
che il miglior individuo non
viene conservata nelle
iterazioni successive
• Rimpiazzamento Steady
state: solo n’<n individui sono
rimpiazzati; se i rimanenti n-n’
individui non-rimpiazzati sono
i migliori della vecchia
popolazione, l’AG viene
chiamato elitistico
Altri modelli AG (Selezione)
• Selezione Proporzionale o Roulette: gli
individui sono selezionati
proporzionalmente alle loro fitness
• Boltzmann, Rank-based e Tournament
selection: garantiscono un miglior
campionamento dello spazio di ricerca
durante le prime generazioni dell’AG (cf.
Mitchell, 1996)
Altri modelli AG (Selezione)
• Selezione a Torneo - Scegliere k individui in
modo random, con o senza rimpiazzamento, e
seleziona i migliori di questi k confrontando le
loro fitness con maggiore probabilità per
selezionare i migliori
Altri modelli AG (Crossover)
Altri modelli AG (Crossover)
Altri modelli AG (Mutazione)
• Per codifiche a caratteri, interi o reali, la mutazione
funziona in modo simile allo schema classico di Holland.
• Per la Programmazione Genetica, un “pezzo” di albero
viene rimpiazzato da uno generato in modo casuale
Example
•
Trovare il massimo della funzione y=x2 nell’intervallo
[0,216-1]
1.
2.
3.
4.
5.
6.
7.
Scegliere la dimensione (n) della popolazione P
Scelgliere la lunghezza del genotipo (l)
Scegliere lo schema dello schema di rimpiazzamento
Definire la funzione di fitness (f)
Scegliere il tipo di crossover e fissare la probabilità pc
Scegliere il tipo di mutazione e fissare la probabilità pm
Scrivere un programma che implementa un AG o (meglio!)
utilizzare una libreria AG open source
PGAPack
•
PGAPack è una libreria open source ad AG
gratis disponibile su http://wwwfp.mcs.anl.gov/CCST/research/reports_pre199
8/comp_bio/stalk/pgapack.html
–
–
–
Implementa il modello di Holland e molti altri
Gira su diverse piattaforme (UNIX versions e GNULinux)
Impelementa inoltre un modello parallelo AG: il
Master-Slave GA, sfruttando quindi (in modo
trasparente per l’utente) più CPUs
contemporaneamente
Master-Slave GA
• Diversi AG paralleli
(PGAs) sono stati
proposti in letteratura:
Master-Slave GA,
Multiple Demes GA, etc.
(vedi Cantù-Paz, 2000)
• Il modo più semplice di
parallelizzare un AG
consiste nel distribuire il
carico computazionale su
P processori.
• Un processore (Master)
esegue i passi dell’AG,
mentre i S=P-1
processori (Slaves)
eseguono la valutazione
dei n’/S individui della
popolazione (dove n’<n).
Iterative schema of the MASTER-SLAVE GA
Master-Slave GA
{
[MASTER]
t=0
Initialize the population P(t)
send n’/S individuals to each slave
[SLAVE]
receive n’/S individuals
evaluate n’/S individuals
send the n’/S computed fitness values to the MASTER
while (NOT(stopping_criterion))
{
[MASTER]
receive n’ computed fitness values from the SLAVEs
t=t+1
create P(t) by applying Selection, Crossover and Mutation
send n’/S individuals to each slave
[SLAVE]
receive n’/S individuals
evaluate n’/S individuals
send the n’/S computed fitness values to the MASTER
}
}
The Beowulf cluster at Department
of Mathematics
•
•
•
•
A Beowulf Cluster is a low-cost
Parallel Machine built with
common PC and other hardware
components
The Beowulf Cluster at
Department of Mathematics is
composed by 16 1.4 GHz Pentium
IV nodes, 512 MB of Ram per
node, Red Hat Linux 7.2 OS, gcc
v2.96
Nodes are connected by a normal
Ethernet LAN with a 100 Mbs
switch
Inter-nodes communications are
committed through message
exchanges by means of MPI
(Message Passing Interface)
(Pacheco, 1999; Gropp, 2001)
Performance (tempi di esecuzione)
• Performance eseguite considerando un AG generazionale, con 100
generazioni, n’=30, 60, 120 e 240 individui, e ft =0.001, 0.01, 0.1 e
1 secondi (fitness function execution time)
Tempi d'esecuzione (ft=0.01 secs)
Tempi d'esecuzione (ft=0.001 secs)
30
250
25
200
20
150
exec tim e
exec tim e 15
100
10
50
5
240
120
60
pop size
30
0
1
2
5
10
240
120
60
pop size
30
0
1
15
2
5
10
15
slave procs
slave procs
Tempi d'esecuzione (ft=1 secs)
Tempi d'esecuzione (ft=0.1 secs)
2500
25000
2000
20000
1500
15000
exec tim e
exec tim e
1000
10000
500
5000
120
0
pop size
1
2
slave procs
5
30
10
120
0
pop size
1
2
15
slave procs
5
30
10
15
Performance (speed-up)
The same experiments can be seen in terms of speed-up, defined as:
speed-up = (sequential execution time) / (parallel execution time)
Speed Up (ft=0.01 secs)
16
16
14
14
12
ideal
10
30
8
60
6
120
4
240
speed up
speed up
Speed Up (ft=0.001 secs)
12
ideal
10
30
8
60
6
120
4
240
2
2
0
0
0
5
10
0
15
5
10
15
slave procs
slave procs
Speed Up (ft=0.1 secs)
Speed Up (ft=1 secs)
16
16
14
14
12
ideal
12
10
30
10
30
8
60
8
60
6
120
6
120
4
240
2
speed up
speed up
•
ideal
240
4
2
0
0
0
5
10
slave procs
15
0
5
10
slave procs
15
Applicazione al modello SCIDDICA
• SCIDDICA (Simulation through Computational
Innovative methods for the Detection of Debris flow path
using Interactive Cellular Automata) è un modello bidimensionali per la simulazione di colate di detrito
(frane), applicato con successo alle colate di detrito
avvenute a Sarno (Campania) nel 1998
Applicazione al modello SCIDDICA
• The model SCIDDICA depends on a set of
parameters that rule the dynamical behavior of
the system
Parameter Brief description
prl
Frizione
padh
Aderenza
pr
Rallentamento
pf
Angolo di frizione
pmt
Soglia di erosione
ppef
Progressive erosion factor
pltt
Landslide thickness threshold
pif
Inertial factor
Applicazione al modello SCIDDICA
•
•
La calibrazione dei parametri un una fase essenziale dello sviluppo di un
modello, e può fornire informazioni sulla affidabilità del modello stesso
Un possibile metodo per la valutazione di una simulazione consiste nel
confronto tra l’estensione areale tra un evento reale, m(R), e l’estensione di
quella simulata, m(S), tramite la seguente funzione di valutazione:
e1 
m( R  S )
m( R  S )
• e1 è un valore in [0,1]:
– vale 0 quando i due eventi sono completamente disgiunti
– vale 1 quando i due eventi si sovrappongono perfettamente
• Lo scopo dell’AG è di trovare un set di parametri che massimizzano
la funzione e1
Applicazione al modello SCIDDICA
• GA model
–
–
–
–
–
–
Codifica binaria (8 bits per ogni parametri)
Steady state replacement
Selezione a torneo
200 generazioni
Single point crossover con probabilità 0.8
2 bits mutuati per ogni individuo (i.e. mutation
probability = 2/genotype_length)
• Search space
S= [0.001,10][0.1,1][0,10]…[0.001,10] 8
Applicazione al modello SCIDDICA
Fitness (media su 5 seeds)
0.6
fitness
0.5
0.4
0.3
0.2
0.1
0
0
50
100
generation
150
200
Ottimi locali
•
•
E’ possibile la presenza di “minimi locali” nella dinamica della ricerca (i.e. più set di
parametri forniscono buoni risultati)
E’ stato condotto uno studio sulla distribuzione dei minimi locali nello spazio di
ricerca, considerando un evento pseudo-reale (di cui si conosce il set unico (Popt) di
parametri che l’ha generata) e considerando la “distanza” tra i set di parametri
individuati dall’AG e il set Popt
f1 (media su 4 seed)
grafico fitness-distanza (4 seed)
1
1.6
0.9
1.4
0.8
0.7
1
fitness
distanza
1.2
0.8
0.6
0.6
0.4
0.4
0.3
best
0.2
0.2
0
0.35
average
0.5
0.1
0
0.45
0.55
0.65
fitness
0.75
0.85
0.95
0
50
100
150
200
generation
• Si noto la presenza di parecchie oscillazioni, indicando la presenza
di parecchi minimi locali. Perchè?
Applicazione al modello SCIDDICA
• Il solo confronto areale non è sufficiente! Bisogna
considerare altre informazioni che possono favorire l’AG
verso un set (sub-ottimale) di parametri, ad esempio
considerando lo spessore di frana, l’erosione, etc:

r R   r S   m( R  S ) 
r R   r S  




f 2  f1  1 
 1 
  r R   r S   m( R  S )   r R   r S  




Applicazione al modello SCIDDICA
• Come in precedenza, un evento pseudo-reale è
stato considerato per valutare la dinamica
dell’AG
grafico fitness-distanza (4 seed)
f2 (media su 4 seed)
1.6
1
1.4
0.9
0.8
0.7
1
fitness
distanza
1.2
0.8
0.6
average
0.5
best
0.4
0.3
0.4
0.2
0.2
0
3.50E-01
0.6
0.1
0
4.50E-01
5.50E-01
6.50E-01
fitness
7.50E-01
8.50E-01
9.50E-01
0
50
100
150
200
250
generation
• La fitness converge verso un buon valore (come prima), ma le
oscillazioni sono minori!
• Questo indica una minore presenza di ottimi locali
Applicazione al modello SCIARA
• SCIARA (Simulation by Cellular Interactive Automata of
the Rheology of Aetnean lava flows) è un modello bidimensionale ad AC per la simulazione di colate di lava
• Il modello dipende da un insieme di parametri (globali)
che regolano la dinamica del sistema:
Parameter Brief description
padh_v
Aderenza ai crateri
padh_i
Aderenza intermedia
padh_s
Aderenza alla solidificazione
pTv
Temperatura lava ai crateri
pTi
Temperatura intermedia
pTs
Temperatura alla solidificazione
Pr
Rallentamento
Pc
Parametro di raffreddamento
Applicazione al modello SCIARA
• Come per SCIDDICA, un possibile metodo per valutare la bontà di
una simulazione consiste nel confronto tra l’estensioni areali tra un
evento reale, m(R), e quello simulato, m(S), tramite la funzione di
fitness:
e1 
m( R  S )
m( R  S )
• e1 è un valore in [0,1]:
– vale 0 quando i due eventi sono completamente disgiunti
– vale 1 quando i due eventi si sovrappongono perfettamente
• Lo scopo dell’AG è di trovare un set di parametri che massimizzano
la funzione e1
Applicazione al modello SCIARA
• GA model
–
–
–
–
–
–
Codifica binaria (8 bits per ogni parametri)
Steady state replacement
Selezione a torneo
200 generazioni
Single point crossover con probabilità 0.8
2 bits mutuati per ogni individuo (i.e. mutation probability =
2/genotype_length)
Applicazione al modello SCIARA
0,9
0,8
0,7
0,6
0,5
0,4
0,3
0,2
0,1
0,0
0
50
100
Migliore
150
Media
200
250
Bibliografia
•
•
•
•
•
•
•
•
Crisci G. M., Di Gregorio S., Rongo R., Spataro, W., (2004). The simulation model
SCIARA: the 1991 and 2001 at Mount Etna. Journal of Vulcanogy and Geothermal
Research, Vol 132/2-3, pp 253-267, 2004.
D. D'Ambrosio, W. Spataro, and G. Iovine, in press. Parallel genetic algorithms for
optimising cellular automata models of natural complex phenomena: an application to
debris-flows. Computer & Geosciences.
D.E. Goldberg. Genetic Algorithms in Search, Optimization and Machine Learning.
Addison-Wesley, 1989.
J.H. Holland. Adaptation in Natural and Articial Systems. University of Michigan
Press, Ann Arbor, 1975.
G. Iovine, D. D'Ambrosio, and S. Di Gregorio, 2005. Applying genetic algorithms for
calibrating a hexagonal cellular automata model for the simulation of debris flows
characterised by strong inertial effects. Geomorphology, 66, 287-303.
J.R. Koza. Genetic Programming: On the Programming of Computers by Means of
Natural Selection. MIT Press, 1992.
M. Mitchell. An Introduction to Genetic Algorithms. MIT Press, 1996.
W. Spataro, D. D'Ambrosio, R Rongo and G.A. Trunfio, 2004. An Evolutionary
Approach for Modelling Lava Flows through Cellular Automata. In P.M.A. Sloot, B.
Chopard and A.G.Hoekstra (Eds.), LNCS 3305, Proceedings ACRI 2004, University
of Amsterdam, Science Park Amsterdam, The Netherlands, pp. 725-734.