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”