algoritmi genetici

47
Algoritmi Genetici Prof. Salvatore Di Gregorio Dr. William Spataro Dr. Donato D’Ambrosio Modelli Computazionali per Sistemi Complessi A.A. 2005/2006 Università della Calabria

Upload: kimn

Post on 20-Jan-2016

70 views

Category:

Documents


2 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Algoritmi Genetici

Algoritmi Genetici

Prof. Salvatore Di Gregorio

Dr. William Spataro

Dr. Donato D’Ambrosio

Modelli Computazionali per Sistemi Complessi A.A. 2005/2006

Università della Calabria

Page 2: Algoritmi Genetici

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

Page 3: Algoritmi Genetici

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

Page 4: Algoritmi Genetici

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).

Page 5: Algoritmi Genetici

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

Page 6: Algoritmi Genetici

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

Page 7: Algoritmi 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

Page 8: Algoritmi Genetici

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

Page 9: Algoritmi Genetici

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

Page 10: Algoritmi Genetici

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

Page 11: Algoritmi 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.

Page 12: Algoritmi Genetici

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.

Page 13: Algoritmi Genetici

Schema iterativoAG {

t=0inizializza la popolazione P(t) in maniera casualevaluta la popolazione P(t)mentre (!criterio_fermata) {

t=t+1crea P(t) applicando selezione, crossover e mutazionevaluta P(t)

}}

Page 14: Algoritmi Genetici

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.

000000; 0110113; 1111131)– 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

Page 15: Algoritmi Genetici

Esempio (da Goldberg, 1989)

Page 16: Algoritmi Genetici

Esempio (da Goldberg, 1989)

Page 17: Algoritmi Genetici

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

Page 18: Algoritmi Genetici

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

Page 19: Algoritmi Genetici

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 sotto-regioni 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

Page 20: Algoritmi Genetici

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)

Page 21: Algoritmi Genetici

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

Page 22: Algoritmi Genetici

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

Page 23: Algoritmi Genetici

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

Page 24: Algoritmi Genetici

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)

Page 25: Algoritmi Genetici

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

Page 26: Algoritmi Genetici

Altri modelli AG (Crossover)

Page 27: Algoritmi Genetici

Altri modelli AG (Crossover)

Page 28: Algoritmi Genetici

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

Page 29: Algoritmi Genetici

Example

• Trovare il massimo della funzione y=x2 nell’intervallo [0,216-1]

1. Scegliere la dimensione (n) della popolazione P2. Scelgliere la lunghezza del genotipo (l)3. Scegliere lo schema dello schema di rimpiazzamento 4. Definire la funzione di fitness (f)

5. Scegliere il tipo di crossover e fissare la probabilità pc

6. Scegliere il tipo di mutazione e fissare la probabilità pm

7. Scrivere un programma che implementa un AG o (meglio!) utilizzare una libreria AG open source

Page 31: Algoritmi Genetici

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=0Initialize the population P(t)send n’/S individuals to each slave

[SLAVE]receive n’/S individualsevaluate n’/S individualssend the n’/S computed fitness values to the MASTER

while (NOT(stopping_criterion)){

[MASTER] receive n’ computed fitness values from the

SLAVEst=t+1

create P(t) by applying Selection, Crossover and Mutationsend 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

}}

Page 32: Algoritmi Genetici

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)

Page 33: Algoritmi Genetici

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)

1 2 5 10 15

3060

120240

0

5

10

15

20

25

30

exec time

slave procs

pop size

Tempi d'esecuzione (ft=0.001 secs)

1 2 5 10 15

3060

120240

0

50

100

150

200

250

exec time

slave procs

pop size

Tempi d'esecuzione (ft=0.01 secs)

1 2 5 10 15

30

1200

500

1000

1500

2000

2500

exec time

slave procs

pop size

Tempi d'esecuzione (ft=0.1 secs)

1 2 5 10 15

30

1200

5000

10000

15000

20000

25000

exec time

slave procs

pop size

Tempi d'esecuzione (ft=1 secs)

Page 34: Algoritmi Genetici

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.1 secs)

0

2

4

6

8

10

12

14

16

0 5 10 15

slave procs

spee

d u

p

ideal

30

60

120

240

Speed Up (ft=1 secs)

0

2

4

6

8

10

12

14

16

0 5 10 15

slave procs

sp

eed

up

ideal

30

60

120

240

Speed Up (ft=0.001 secs)

0

2

4

6

8

10

12

14

16

0 5 10 15

slave procs

spee

d u

p

ideal

30

60

120

240

Speed Up (ft=0.01 secs)

0

2

4

6

8

10

12

14

16

0 5 10 15

slave procs

spee

d u

p

ideal

30

60

120

240

Page 35: Algoritmi Genetici

Applicazione al modello SCIDDICA

• SCIDDICA (Simulation through Computational Innovative methods for the Detection of Debris flow path using Interactive Cellular Automata) è un modello bi-dimensionali per la simulazione di colate di detrito (frane), applicato con successo alle colate di detrito avvenute a Sarno (Campania) nel 1998

Page 36: Algoritmi Genetici

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

Page 37: Algoritmi Genetici

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 è 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

)(

)(1 SRm

SRme

Page 38: Algoritmi Genetici

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 spaceS= [0.001,10][0.1,1][0,10]…[0.001,10] 8

Page 39: Algoritmi Genetici

Applicazione al modello SCIDDICA

Fitness (media su 5 seeds)

0

0.1

0.2

0.3

0.4

0.5

0.6

0 50 100 150 200

generation

fitn

ess

Page 40: Algoritmi Genetici

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)

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 50 100 150 200

generation

fitn

ess

average

best

grafico fitness-distanza (4 seed)

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

0.35 0.45 0.55 0.65 0.75 0.85 0.95

fitness

dis

tan

za

• Si noto la presenza di parecchie oscillazioni, indicando la presenza di parecchi minimi locali. Perchè?

Page 41: Algoritmi Genetici

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:

SrRr

SrRr

SRm

SRm

SrRr

SrRrff 1

)(

)(112

Page 42: Algoritmi Genetici

Applicazione al modello SCIDDICA

• Come in precedenza, un evento pseudo-reale è stato considerato per valutare la dinamica dell’AG

• La fitness converge verso un buon valore (come prima), ma le oscillazioni sono minori!

• Questo indica una minore presenza di ottimi locali

f2 (media su 4 seed)

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 50 100 150 200 250

generation

fitn

ess

average

best

grafico fitness-distanza (4 seed)

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

3.50E-01 4.50E-01 5.50E-01 6.50E-01 7.50E-01 8.50E-01 9.50E-01

fitness

dis

tan

za

Page 43: Algoritmi Genetici

Applicazione al modello SCIARA

• SCIARA (Simulation by Cellular Interactive Automata of the Rheology of Aetnean lava flows) è un modello bi-dimensionale 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

Page 44: Algoritmi Genetici

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 è 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

)(

)(1 SRm

SRme

Page 45: Algoritmi Genetici

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)

Page 46: Algoritmi Genetici

Applicazione al modello SCIARA

0,0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

0 50 100 150 200 250

Migliore Media

Page 47: Algoritmi Genetici

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.