Darwin nel computer
Alla scoperta degli algoritmi genetici
Ing. Paolo Alessandrini
Belluno, 27 febbraio 2010
Dolomiti in Scienza 2010
Charles Darwin
(1809-1882)
Il viaggio di Darwin a bordo del Beagle (1831-1836)
L’idea di Darwin
Le specie viventi si
evolvono grazie a
mutazioni casuali
Un giorno nacque
per caso una giraffa
dal collo più lungo:
questo carattere si
rivelò vincente e le
nuove giraffe si
moltiplicarono più
delle altre
La teoria dell’evoluzione
• Le piccole differenze tra individui di una specie sono
dovute a mutazioni casuali
• Queste differenze si trasmettono ai discendenti
• Queste differenze possono essere svantaggiose,
oppure neutre, oppure vantaggiose rispetto agli altri
individui nell’adattamento all’ambiente (idoneità)
• Gli individui con idoneità maggiore sono meglio
“attrezzati”, vivono più a lungo e si riproducono di più
(selezione naturale, vero motore dell’evoluzione)
I meccanismi dell’evoluzione biologica
• Selezione naturale
(premia le piccole mutazioni casuali che si rivelano
più vantaggiose; queste si accumulano generazione
dopo generazione, determinando sul lungo periodo
vistosi e radicali cambiamenti)
• Genetica e riproduzione cellulare
(spiega come i caratteri ereditari vengono registrati e
come si trasmettono ai figli)
Cellule, cromosomi, DNA e geni
Mutazioni e
crossing over
Replicazioni errate
dell’informazione
genetica  mutazioni
Altro fenomeno
fondamentale, che
favorisce l’incrocio dei
programmi genetici
materno e paterno:
crossing over
Primi tentativi di collegare
informatica e biologia e
replicare i fenomeni
evoluzionistici in modo
artificiale (“cibernetica”)
Alan Turing (1912-1954)
Perché mettere Darwin nel computer?
Problemi difficili:
richiedono di
trovare la
soluzione ottimale
tra moltissime
soluzioni possibili:
esaminarle tutte è
proibitivo, occorre
una scorciatoia
Replicando i meccanismi evoluzionistici tramite
computer, questi problemi potevano essere risolti
Un esempio di
problema difficile
• Vogliamo costruire una
proteina con un certo
comportamento chimico
Rappresentazione
3D della mioglobina
• Le proteine sono lunghe
catene di amminoacidi
 Determinare una sequenza di amminoacidi che,
una volta costruita in laboratorio, mostri le
caratteristiche desiderate
Ecco perché mettere Darwin nel computer
• Idea vincente: approccio evolutivo, in cui si
selezionano e si accumulano le mutazioni vantaggiose
e queste indirizzano verso la soluzione migliore
• Accumulo selettivo
di piccole mutazioni
vantaggiose: ha dato
prova di saper risolvere
problemi molto difficili
• Esempi della giraffa
(collo) e del pipistrello
(“ecolocazione”)
Come mettere Darwin nel computer?
• Tecniche evolutive: soluzioni di un problema come
individui che si evolvono
• Algoritmi genetici inventati
negli anni Settanta da J. Holland
• Si parte da una “popolazione”
di soluzioni, e la si fa evolvere
sottoponendola a crossing over e
a mutazioni e attivando un
meccanismo di selezione naturale
Entriamo nel regno degli AG!
• Ogni individuo rappresenta una soluzione
possibile del problema: per semplicità si assume che
ogni individuo possieda un solo cromosoma
• Partiamo con una popolazione iniziale che contiene
un numero limitato di cromosomi-soluzioni, scelti a
caso
Come fanno i cromosomi a rappresentare le
soluzioni del problema?
• La scelta della codifica dipende dal tipo di problema:
di solito però vengono usate parole
ECPHIKFDHGQEGFQHEARPFH
FQRRSKQRFNDSTVMGNLHMGG
AERDMENPESLNLMIKEQMQEL
MKPEFIKQECFTVNGSNLFNPI
• In generale ogni cromosoma può essere una
sequenza di lettere o cifre: in ogni caso sono strutture
simili alle sequenze di basi nel DNA
“Selezione artificiale”
• Ad ogni generazione viene misurata l’idoneità di ogni
cromosoma (parte difficile di ogni algoritmo genetico)
• Ad esempio, nel problema della progettazione delle
proteine, dovremmo calcolare un valore di idoneità per
ogni sequenza di amminoacidi che si è generata
ECPHIKFDHGQEGFQHEARPFH
FQRRSKQRFNDSTVMGNLHMGG
AERDMENPESLNLMIKEQMQEL
MKPEFIKQECFTVNGSNLFNPI
49,25
72,57
56,02
88,94
Crossing over
I cromosomi più idonei
sono selezionati e
sottoposti, a due a due, al
crossing over: si
scambiano reciprocamente
alcune parti di sé e
generano due figli
Crossing over
Mutazioni
Vengono fatte avvenire casualmente, con bassa
probabilità, su alcuni dei “figli” generati nella fase di
crossing over
Mutazione
Schema di un algoritmo genetico
Interessante, ma… a cosa serve?
• Problemi di ottimizzazione
(si cerca la soluzione ottima di un problema difficile,
facendo evolvere possibili soluzioni di quel problema)
• Modelli e predizione di dati (si cerca di capire e
descrivere un sistema complesso, facendo evolvere
modelli possibili di quel sistema)
Spesso si usano reti neurali per rappresentare i
modelli.
Ambiti di applicazione
Vediamo un algoritmo genetico al lavoro?
Esempio 1
(problema del commesso viaggiatore)
Esempio 2
Esempio 3
Suggerimenti bibliografici
Richard Dawkins,
“L’orologiaio cieco”
(Mondadori, 1986)
Melanie Mitchell,
“Introduzione agli algoritmi genetici”
(Apogeo, 1999)
“Al cuore di ogni essere vivente non c’è fuoco, non alito
caldo, non una «scintilla di vita», bensì informazione,
parole, istruzioni.
Se si vuole una metafora, non si deve pensare a fuochi
e scintille e respiro. Si pensi, invece, a un miliardo di
caratteri discreti, digitali, incisi in tavolette di cristallo.
Se si vuol comprendere la vita, non si pensi a gel e
fanghi vibranti, palpitanti, bensì alla tecnologia
dell'informazione. (…)
La tecnologia dell’informazione del gene è tecnologia
digitale.”
Richard Dawkins, da “L’orologiaio cieco”