Upload
nguyenanh
View
217
Download
0
Embed Size (px)
Citation preview
Simulazioni evolutiveFrancesco Zanlungo
Universita di Bologna, Dipartimento di Fisica
Laboratorio di Fisica dei Sistemi Complessi
Prof. Bruno Giorgini
Simulazioni evolutive – p.1/21
Complessità ed emergenza
Una delle caratteristiche di un sistema complesso è il possedere
delle caratteristiche “emergenti” ovvero che non risultano
presenti nei componenti fondamentali ma che emergono dalla
loro interazione.
Simulazioni evolutive – p.2/21
Complessità ed emergenza
Una delle caratteristiche di un sistema complesso è il possedere
delle caratteristiche “emergenti” ovvero che non risultano
presenti nei componenti fondamentali ma che emergono dalla
loro interazione.
Esempi: Vita da particelle elementari, pensiero da neuroni,attività complesse in comunità di insetti sociali, Guerra epace.
Simulazioni evolutive – p.2/21
Dal semplice al complesso e viceversa
Le simulazioni al computer ci permettono di verificare un
modello semplice (a livello di componenti) che giustifichi il
comportamento emergente.
Simulazioni evolutive – p.3/21
Dal semplice al complesso e viceversa
Le simulazioni al computer ci permettono di verificare un
modello semplice (a livello di componenti) che giustifichi il
comportamento emergente.
Ma è possibile o contraddittorio usare un modello con unitàsemplici per risolvere in maniera emergente un problemacomplesso?
Simulazioni evolutive – p.3/21
Evoluzione simulata
La strategia può essere quella di definire una classe di modelli
(soluzioni) e provare a vedere quali risolvono il nostro
problema.
Simulazioni evolutive – p.4/21
Evoluzione simulata
La strategia può essere quella di definire una classe di modelli
(soluzioni) e provare a vedere quali risolvono il nostro
problema.
Provarli tutti potrebbe essere impossibile e comunque
dispendioso (ottimizzazione).
Simulazioni evolutive – p.4/21
Evoluzione simulata
La strategia può essere quella di definire una classe di modelli
(soluzioni) e provare a vedere quali risolvono il nostro
problema.
Provarli tutti potrebbe essere impossibile e comunque
dispendioso (ottimizzazione).
In alcune situazioni la soluzione migliore è imitare la natura edusare un processo evolutivo.
Simulazioni evolutive – p.4/21
Evoluzione naturale
“Segreti della vita”: riproduzione, sopravvivenza dei migliori,
ricerca (e mescolamento) casuale di nuove soluzioni.
Simulazioni evolutive – p.5/21
Evoluzione naturale
“Segreti della vita”: riproduzione, sopravvivenza dei migliori,
ricerca (e mescolamento) casuale di nuove soluzioni.
Le caratteristiche di un individuo codificate nel suo DNA,individui con migliori caratteristiche si riproducono di più,mutazione e accoppiamento (crossover) producono individuidiversi.
Simulazioni evolutive – p.5/21
Algoritmi genetici
Si codifica un’opportuna soluzione di un problema in una
stringa di bit.
Simulazioni evolutive – p.6/21
Algoritmi genetici
Si codifica un’opportuna soluzione di un problema in una
stringa di bit.
Si crea una popolazione diN soluzioni.
Simulazioni evolutive – p.6/21
Algoritmi genetici
Si codifica un’opportuna soluzione di un problema in una
stringa di bit.
Si crea una popolazione diN soluzioni.
Si valuta la bontà di tali soluzioni utilizzando una funzione di
fitness.
Simulazioni evolutive – p.6/21
Algoritmi genetici
Si codifica un’opportuna soluzione di un problema in una
stringa di bit.
Si crea una popolazione diN soluzioni.
Si valuta la bontà di tali soluzioni utilizzando una funzione di
fitness.
Si selezionano le soluzioni con gli operatori genetici per
riprodurle in una nuova generazione.
Simulazioni evolutive – p.6/21
Algoritmi genetici
Si codifica un’opportuna soluzione di un problema in una
stringa di bit.
Si crea una popolazione diN soluzioni.
Si valuta la bontà di tali soluzioni utilizzando una funzione di
fitness.
Si selezionano le soluzioni con gli operatori genetici per
riprodurle in una nuova generazione.
Le soluzioni possono essere “mescolate” e mutate.
Simulazioni evolutive – p.6/21
Algoritmi genetici
Si codifica un’opportuna soluzione di un problema in una
stringa di bit.
Si crea una popolazione diN soluzioni.
Si valuta la bontà di tali soluzioni utilizzando una funzione di
fitness.
Si selezionano le soluzioni con gli operatori genetici per
riprodurle in una nuova generazione.
Le soluzioni possono essere “mescolate” e mutate.
Si ripete il processo per più generazioni.
Simulazioni evolutive – p.6/21
Algoritmi genetici esempio
Esempio: ottimizzazione di una funzionef(x) > 0 in [0, 1].
Simulazioni evolutive – p.7/21
Algoritmi genetici esempio
Esempio: ottimizzazione di una funzionef(x) > 0 in [0, 1].
Codifico una soluzionex come stringas di n bit.
Simulazioni evolutive – p.7/21
Algoritmi genetici esempio
Esempio: ottimizzazione di una funzionef(x) > 0 in [0, 1].
Codifico una soluzionex come stringas di n bit.
Decodifica:x = D(s) = s/2n−1.
Simulazioni evolutive – p.7/21
Algoritmi genetici esempio
Esempio: ottimizzazione di una funzionef(x) > 0 in [0, 1].
Codifico una soluzionex come stringas di n bit.
Decodifica:x = D(s) = s/2n−1.
Genero casulamenteN stringhe (generazione 1) e le valuto con
fitnessf(D(s)).
Simulazioni evolutive – p.7/21
Algoritmi genetici esempio
Esempio: ottimizzazione di una funzionef(x) > 0 in [0, 1].
Codifico una soluzionex come stringas di n bit.
Decodifica:x = D(s) = s/2n−1.
Genero casulamenteN stringhe (generazione 1) e le valuto con
fitnessf(D(s)).
Costruisco una nuova generazione: ogni stringa nella nuova
generazione figlia di due genitori.
Simulazioni evolutive – p.7/21
Algoritmi genetici esempio
Esempio: ottimizzazione di una funzionef(x) > 0 in [0, 1].
Codifico una soluzionex come stringas di n bit.
Decodifica:x = D(s) = s/2n−1.
Genero casulamenteN stringhe (generazione 1) e le valuto con
fitnessf(D(s)).
Costruisco una nuova generazione: ogni stringa nella nuova
generazione figlia di due genitori.
Ogni genitore viene scelto in maniera casuale ma con
probabilitàpi = f(si)/∑
if(si).
Simulazioni evolutive – p.7/21
Algoritmi genetici esempio
Esempio: ottimizzazione di una funzionef(x) > 0 in [0, 1].
Codifico una soluzionex come stringas di n bit.
Decodifica:x = D(s) = s/2n−1.
Genero casulamenteN stringhe (generazione 1) e le valuto con
fitnessf(D(s)).
Costruisco una nuova generazione: ogni stringa nella nuova
generazione figlia di due genitori.
Ogni genitore viene scelto in maniera casuale ma con
probabilitàpi = f(si)/∑
if(si).
Nuova stringa prodotta con crossover.
Simulazioni evolutive – p.7/21
Algoritmi genetici esempio
Esempio: ottimizzazione di una funzionef(x) > 0 in [0, 1].
Codifico una soluzionex come stringas di n bit.
Decodifica:x = D(s) = s/2n−1.
Genero casulamenteN stringhe (generazione 1) e le valuto con
fitnessf(D(s)).
Costruisco una nuova generazione: ogni stringa nella nuova
generazione figlia di due genitori.
Ogni genitore viene scelto in maniera casuale ma con
probabilitàpi = f(si)/∑
if(si).
Nuova stringa prodotta con crossover.
E mutazione.Simulazioni evolutive – p.7/21
Operatori genetici
1
0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1
11
111111
1 1 1
1
0 0 0 0 0
0 0 0 0 0 1
1111
1 1 1 1
0 0 0 1 0
1 1 0
Simulazioni evolutive – p.8/21
Operatori genetici
1
0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1
11
111111
1 1 1
1
0 0 0 0 0
0 0 0 0 0 1
1111
1 1 1 1
0 0 0 1 0
1 1 0
1
0 0 0 0
0 0 0 0 0 1
1111
1 1 1
0 0 0 1 0
1 1 1
1
0Simulazioni evolutive – p.8/21
Rete neurale
Una rete neurale è la schematizzazione di un sistema nervoso.
Simulazioni evolutive – p.9/21
Rete neurale
Una rete neurale è la schematizzazione di un sistema nervoso.
Degli stimoli (input) sono elaborati in maniera non linearein
azioni (output).
Simulazioni evolutive – p.9/21
Rete neurale
Una rete neurale è la schematizzazione di un sistema nervoso.
Degli stimoli (input) sono elaborati in maniera non linearein
azioni (output).
La rete può essere usata come sistema di controllo di un robot
(virtuale o reale).
Simulazioni evolutive – p.9/21
Rete neurale
Una rete neurale è la schematizzazione di un sistema nervoso.
Degli stimoli (input) sono elaborati in maniera non linearein
azioni (output).
La rete può essere usata come sistema di controllo di un robot
(virtuale o reale).
Le caratteristiche di una rete sono determinate dai pesi (valori
reali) delle connessioni.
Simulazioni evolutive – p.9/21
Rete neurale feedforward
verso l’ambiente
I
I
I
2
1
3
O1
O2
H
H
H
H
1
2
3
4
I 1
da ambiente
I ωH1 σ11
1 11
1O
Simulazioni evolutive – p.10/21
Rete neurale feedforward
verso l’ambiente
I
I
I
2
1
3
O1
O2
H
H
H
H
1
2
3
4
I 1
da ambiente
I ωH1 σ11
1 11
1O
Definisco funzione sigmoidef(x) = tanh(x)
Simulazioni evolutive – p.10/21
Rete neurale feedforward
verso l’ambiente
I
I
I
2
1
3
O1
O2
H
H
H
H
1
2
3
4
I 1
da ambiente
I ωH1 σ11
1 11
1O
Definisco funzione sigmoidef(x) = tanh(x)
Prima calcoloHj = f(∑
i ωjiIi) ∀j
Simulazioni evolutive – p.10/21
Rete neurale feedforward
verso l’ambiente
I
I
I
2
1
3
O1
O2
H
H
H
H
1
2
3
4
I 1
da ambiente
I ωH1 σ11
1 11
1O
Definisco funzione sigmoidef(x) = tanh(x)
Prima calcoloHj = f(∑
i ωjiIi) ∀j
Poi calcoloOk = f(∑
j ωkjHj) ∀k Simulazioni evolutive – p.10/21
Robotica evolutiva
Una rete può essere codificata in una stringa.
Il nostro processo può quindi servire ad evolvere dei robot in
grado di svolgere un certo compito, basta definire una funzione
di fitness in grado di esprimere quanto bene lo svolgono.
Simulazioni evolutive – p.11/21
Robotica evolutiva
Una rete può essere codificata in una stringa.
Il nostro processo può quindi servire ad evolvere dei robot in
grado di svolgere un certo compito, basta definire una funzione
di fitness in grado di esprimere quanto bene lo svolgono.
Perché farlo? Il problema del robot cameriere.
Simulazioni evolutive – p.11/21
Robot smemorato
Un robot privo di memoria si muove in un corridoio. Si
accende e poi si spegne una luce all’inzio del corridoio. Si
premia il robot (con una fitness alta) se alla fine del corridoio
gira dalla parte in cui si è accesa la luce.
Simulazioni evolutive – p.12/21
Robot smemorato
Un robot privo di memoria si muove in un corridoio. Si
accende e poi si spegne una luce all’inzio del corridoio. Si
premia il robot (con una fitness alta) se alla fine del corridoio
gira dalla parte in cui si è accesa la luce.
Come può il robot svolgere il suo compito? Si crea una
memoria nell’interazione con l’ambiente.
Simulazioni evolutive – p.12/21
Regola di circolazione
Un gruppo di agenti si muove in una città-reticolo, senza altra
informazione che la distanza dal punto in cui devono arrivare.
Simulazioni evolutive – p.13/21
Regola di circolazione
Un gruppo di agenti si muove in una città-reticolo, senza altra
informazione che la distanza dal punto in cui devono arrivare.
Se più agenti si trovano sullo stesso sito si muovono più
lentamente.
Simulazioni evolutive – p.13/21
Regola di circolazione
Un gruppo di agenti si muove in una città-reticolo, senza altra
informazione che la distanza dal punto in cui devono arrivare.
Se più agenti si trovano sullo stesso sito si muovono più
lentamente.
Gli agenti imparano che devono tenersi lontani dal centro del
reticolo, dove è più facile che ci siano degli ingorghi, pur non
avendo informazioni né sulla loro posizione né sulla posizione
del centro.
Simulazioni evolutive – p.13/21
Regola di circolazione
Un gruppo di agenti si muove in una città-reticolo, senza altra
informazione che la distanza dal punto in cui devono arrivare.
Se più agenti si trovano sullo stesso sito si muovono più
lentamente.
Gli agenti imparano che devono tenersi lontani dal centro del
reticolo, dove è più facile che ci siano degli ingorghi, pur non
avendo informazioni né sulla loro posizione né sulla posizione
del centro.
Per farlo sviluppano una regola di circolazione.
Simulazioni evolutive – p.13/21
Evitare le collisioniDegli agenti (sfere dure) si muovono in un ambiente pieno di loro simili.
Sono regolati da parametri che determinano la loro capacitàdi evitarsi.
Simulazioni evolutive – p.14/21
Evitare le collisioniDegli agenti (sfere dure) si muovono in un ambiente pieno di loro simili.
Sono regolati da parametri che determinano la loro capacitàdi evitarsi.
Simulazioni evolutive – p.14/21
Evitare le collisioniDegli agenti (sfere dure) si muovono in un ambiente pieno di loro simili.
Sono regolati da parametri che determinano la loro capacitàdi evitarsi.
Vengono evoluti utilizzando una funzione di fitness che assegna un peso
negativo alle collisioni ed uno positivo alla velocità.
Simulazioni evolutive – p.14/21
Evitare le collisioniDegli agenti (sfere dure) si muovono in un ambiente pieno di loro simili.
Sono regolati da parametri che determinano la loro capacitàdi evitarsi.
Vengono evoluti utilizzando una funzione di fitness che assegna un peso
negativo alle collisioni ed uno positivo alla velocità.
simulazione
Simulazioni evolutive – p.14/21
Replicator equations
Se il numero di parametri è limitato ed essi assumono solo
valori discreti possiamo studiare l’evoluzione del sistema con
equazioni differenziali
B
Simulazioni evolutive – p.15/21
Replicator equations
Se il numero di parametri è limitato ed essi assumono solo
valori discreti possiamo studiare l’evoluzione del sistema con
equazioni differenziali
xi = xi(Fi(x) − F )
B
Simulazioni evolutive – p.15/21
Replicator equations
Se il numero di parametri è limitato ed essi assumono solo
valori discreti possiamo studiare l’evoluzione del sistema con
equazioni differenziali
xi = xi(Fi(x) − F )
Esempio regola circolazione.
B
Simulazioni evolutive – p.15/21
Replicator equations
Se il numero di parametri è limitato ed essi assumono solo
valori discreti possiamo studiare l’evoluzione del sistema con
equazioni differenziali
xi = xi(Fi(x) − F )
Esempio regola circolazione.
B
A
B
Simulazioni evolutive – p.15/21
Replicator equations
Se il numero di parametri è limitato ed essi assumono solo
valori discreti possiamo studiare l’evoluzione del sistema con
equazioni differenziali
xi = xi(Fi(x) − F )
Esempio regola circolazione.
B
A
0 200 400 600 800 1000generation
0
0.2
0.4
0.6
0.8
1
xi
Simulazioni evolutive – p.15/21
Pensiero ricorsivo, falchi e colombe
Nel problema delle collisioni tra sfere dure possiamo studiare l’effetto del
pensiero ricorsivo, definendo il livello di teoria della mente.
Simulazioni evolutive – p.16/21
Pensiero ricorsivo, falchi e colombe
Nel problema delle collisioni tra sfere dure possiamo studiare l’effetto del
pensiero ricorsivo, definendo il livello di teoria della mente.
Si crea una disparità tra livelli pari (falchi) e dispari (colombe).
Simulazioni evolutive – p.16/21
Pensiero ricorsivo, falchi e colombe
Nel problema delle collisioni tra sfere dure possiamo studiare l’effetto del
pensiero ricorsivo, definendo il livello di teoria della mente.
Si crea una disparità tra livelli pari (falchi) e dispari (colombe).
Simulazioni evolutive – p.16/21
Pensiero ricorsivo, falchi e colombe
Nel problema delle collisioni tra sfere dure possiamo studiare l’effetto del
pensiero ricorsivo, definendo il livello di teoria della mente.
Si crea una disparità tra livelli pari (falchi) e dispari (colombe).
Simulazioni evolutive – p.16/21
Matrice urti binari
Possiamo ottenere la matrice di fitnessf = v − β p per gli urti
binari
Simulazioni evolutive – p.17/21
Matrice urti binari
Possiamo ottenere la matrice di fitnessf = v − β p per gli urti
binari
v p
Simulazioni evolutive – p.17/21
Matrice urti binari
Possiamo ottenere la matrice di fitnessf = v − β p per gli urti
binari
v p
Risulta simmetrica (dipende dalla sola parità)
Simulazioni evolutive – p.17/21
Matrice urti binari
Possiamo ottenere la matrice di fitnessf = v − β p per gli urti
binari
v p
Risulta simmetrica (dipende dalla sola parità)
Simulazioni evolutive – p.17/21
Dinamica evolutiva falchi e colombe
Studiamo l’equazione per l’evoluzione di pari e dispari
xe = 1 − xo
Simulazioni evolutive – p.18/21
Dinamica evolutiva falchi e colombe
Studiamo l’equazione per l’evoluzione di pari e dispari
xe = 1 − xo
assumendo che valgano
fo = foexe + fooxo fe = feoxo + feexe
Simulazioni evolutive – p.18/21
Dinamica evolutiva falchi e colombe
Studiamo l’equazione per l’evoluzione di pari e dispari
xe = 1 − xo
assumendo che valgano
fo = foexe + fooxo fe = feoxo + feexe
e
xo = xo
f(xo)
f
xe = xe
f(xe)
f
Simulazioni evolutive – p.18/21
Stato stabile
All’intersezione trafe efo si trova uno stato evolutivamente stabile
(attrattore)
xo =foe − fee
foe + feo − foo − fee
=0.08 + 0.27β
0.31 + 0.27β
1
e
fo
xo0
f
Simulazioni evolutive – p.19/21
Risultati di simulazioni
Ma i risultati delle simulazioni dipendono dal livello
Simulazioni evolutive – p.20/21
Risultati di simulazioni
Ma i risultati delle simulazioni dipendono dal livello
β = 0
20 40 60 80 100generation
0
0.2
0.4
0.6
0.8
1
x
level 4level 3level 2level 1level 0
i
Simulazioni evolutive – p.20/21
Risultati di simulazioni
Ma i risultati delle simulazioni dipendono dal livello
β = 1
20 40 60 80 100generation
0
0.2
0.4
0.6
0.8
1
xi
Simulazioni evolutive – p.20/21
Risultati di simulazioni
Ma i risultati delle simulazioni dipendono dal livello
β = 10
20 40 60 80 100generation
0
0.2
0.4
0.6
0.8
1
xi
Simulazioni evolutive – p.20/21
Bibliografia
J. Hofbauer and K. Sigmund (1998) “Evolutionary Games and
Population Dynamics”, Cambridge University Press.
S. Haykin (1999), “Neural Networks. A Comprehensive
Foundation”, Prentice Hall.
D. Goldberg (1989), “Genetic Algorithms in Search,
Optimization and Machine Learning”, Addison-Wesley.
S. Nolfi and D. Floreano (2000), “Evolutionary Robotics. The
Biology, Intelligence and Techonology of Self-Organizing
Machines”, MIT Press.
Questo file su http://www.physycom.unibo.it/it/corsi.php
Simulazioni evolutive – p.21/21