Algoritmi Genetici Introduzione Evoluzione naturale Modello per un

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