DNA: il nuovo custode dell’informazione digitale

Il Giornale Online
di Andrea Tasselli

E' noto che, nel 1869, Friedrich Miescher isolò per la prima volta un acido che era presente solo nel nucleo delle cellule, che chiamò acido nucleico. Circa un secolo dopo, nel 1953, gli scienziati Watson e Crick scoprirono che la struttura del DNA forma una doppia elica. Tutto questo ha portato alla nascita di un grande ramo della scienza: la genetica. Oggi sappiamo che tutta l’informazione strutturale e funzionale di ogni organismo è custodita nell’acido desossiribonucleico, e che alcuni filamenti di questo acido formano i geni, nei quali ci sono identificati i caratteri trasmissibili. Ma tutto ciò cosa c’entra con i computer? Per capirlo dobbiamo prima comprendere come l’informazione viene conservata all’interno del DNA. La molecola sulla quale si fonda la vita, è costituita da due stringhe, avvolte l’una intorno all’altra a doppia elica, e, a tenerle unite, ci pensano dei ponti determinati da altre molecole più piccole, chiamate nucleotidi. I tipi di nucleotidi sono quattro, e si chiamano adenina, citosina, guanina e timina. Le combinazioni di queste molecole consentono di conservare l’informazione genetica, proprio come fa un personal computer con il codice binario, soltanto, questa volta, le basi non sono due (0 e 1), ma quattro (nucleotidi). In questo modo è semplice comprendere l’analogia che c’è tra un PC, la cui informazione viene custodita nell’hard-disk, e un computer a DNA, il quale mantiene l’informazione all’interno del DNA stesso.

“Il futuro dei computer è in sintesi con la natura”, è questa la visione comune emersa da quindici autorevoli scienziati intervistati da Dennis Shasha e Cathy Lazare, nel loro libro “Computer a DNA”. E tre grosse correnti si possono riassumere in questa visione: il pensiero biologico che inspira nuovi approcci al calcolo digitale, la sostituzione del silicio con il DNA, un ripensamento dei principi fisici applicati ai processi di calcolo, richiesti per le nuove applicazioni.

Ma andiamo per gradi.

1.Il pensiero biologico che inspira nuovi approcci al calcolo digitale.

Charles Darwin, nel 1831, salpò da Devonport, con il Beagle, diretto alle Galapagos. In quel viaggio fu ispirato a costruire una delle più discusse teorie di tutti i tempi: la selezione naturale. Com’è noto, secondo Darwin, le specie si evolvono in funzione dell’ambiente e delle necessità. Così nell’arco di qualche milione di anni, una specie può presentare nuove caratteristiche, che non esistevano nelle vecchie generazioni. Oggi i biologi molecolari sanno che questa evoluzione è determinata da errori casuali, che si presentano nel DNA, in seguito alla mutazione della sequenza nucleotidica. Naturalmente tutto questo avviene con un ritmo molto lento, e solo con il passaggio di milioni di anni si possono notare gli effetti. Fatto sta che l’evoluzione, in circa quattro miliardi di anni, ha determinato la comparsa dell’uomo sulla terra, e tutt’ora continua la sua corsa. È questo il pensiero biologico a cui deve essere ispirato il calcolo digitale. E per fare riferimento alla teoria dell’evoluzione con gli algoritmi risolti dai computer, non esiste niente di meglio di creare gli algoritmi evolutivi; dove non sono più gli individui a doversi adattare all’ambiente, ma sono le soluzioni a doversi adattare ai problemi. Le soluzioni, in questo caso, differiscono tra loro per la qualità, analogamente agli organismi che si differenziano per grado di adattamento (fitness).

Dunque quello che collega l’evoluzione naturale agli algoritmi evoluzionistici, è il fatto che allo stesso modo in cui la selezione naturale permette alle popolazioni di individui di adattarsi agli ambienti, permette anche alle soluzioni di adattarsi ai problemi. Gli algoritmi evolutivi funzionano determinando, in una popolazione di soluzioni, una serie di operatori stocastici: mutazione, ricombinazione e selezione. Quindi partendo con una popolazione di soluzioni iniziali – che può essere determinata da un esperto, oppure può essere trovata in base ad una scelta casuale nello spazio delle soluzioni – l’algoritmo evolutivo, opera attraverso questi tre operatori: con la mutazione si creano delle perturbazioni all’interno delle singole soluzioni, gli operatori di ricombinazione decompongono le soluzioni per assemblarle in nuovi individui, e infine la selezione crea delle copie delle soluzioni migliori in base alla loro fitness.

Gli algoritmi evolutivi più semplici sono quelli genetici, e proprio di quelli ci occuperemo nelle prossime righe.

Analogamente ai filamenti di DNA composti dai nucleotidi, le soluzioni degli algoritmi genetici sono costituiti da due stringhe binarie di lunghezza fissa. La prima parte dell’algoritmo genetico deve semplicemente trovare una serie iniziale di soluzioni, che, come già detto, possono essere determinate da un esperto, o estratte a sorte da uno spazio di possibili soluzioni. Nella seconda parte, invece, vengono applicati gli operatori stocastici, per creare nuove popolazioni, determinando un ciclo evolutivo. Questo ciclo viene eseguito partendo dalla selezione. Ad ogni soluzione viene assegnato un valore fitness che determina la sua qualità, cosicché le soluzioni con i valori fitness più alti vengono mantenute, mentre quelle con meno fitness, vengono pian piano scartate. Successivamente, attraverso il meccanismo di ricombinazione, le soluzioni vengono decomposte, e assemblate con altre soluzioni. Tutto questo avviene grazie all’allineamento di due stringhe binarie, che vengono tagliate, e a cui vengono scambiate le metà destre (crossover). Infine le mutazioni vengono fatte agire sulle singole soluzioni, attraverso lo scambio casuale delle cifre binarie (ogni 0 o 1 avrà una probabilità di diventare il suo opposto),così che si formeranno nuovi individui mutati.
Facendo un passo avanti negli algoritmi evolutivi, troviamo la programmazione evolutiva. Questa tecnica è spesso utilizzata come variante all’approccio dell’intelligenza artificiale, rispetto alle tecniche di rappresentazione simbolica. Analogamente a quanto avviene con l’evoluzione, la quale di tanto in tanto fa emergere qualche caratteristica emergente, la programmazione genetica dovrebbe far nascere comportamenti intelligenti per mezzo di automi da stati finiti.

Dunque, allo stesso modo in cui i batteri si sono evoluti in alghe, pesi, anfibi, rettili, mammiferi, e infine uomini, i progetti potrebbero accrescere la loro efficacia, a seconda della situazione. Ora, secondo alcuni, gli algoritmi evolutivi non sono dei veri algoritmi, perché sono soggetti a molti errori, e non possono offrire una certezza, ma certo, tutti concordano all’unanime che possono portare a risultati eccezionali: possono determinare la nascita di un progetto che nemmeno era stato possibile immaginare, o che magari non era stato proposto per un pregiudizio personale. Fatto sta che questo nuovo calcolo adattivo propone il metodo migliore per applicare i principi dell’evoluzione alle macchine, e se davvero un giorno vorremo utilizzare la tecnologia vivente, avremo bisogno di creare macchine che funzionano con gli algoritmi genetici. Il pensiero biologico applicato al calcolo digitale, infatti, determina un cambiamento nella modalità di approccio ai nuovi strumenti. Non sarà più necessario, e nemmeno possibile, costruire macchine in grado di gestire ogni possibile eventualità, ma dovranno essere costruite in modo da adattarsi alle eventualità che nemmeno saranno state considerate. E tutto questo potrà essere gestito soltanto attraverso l’inserimento nella macchina dei processi di adattamento ed evoluzione; sono queste due, infatti, le chiavi per costruire le macchine del futuro.
Quali vantaggi potremo ricavare se in futuro riuscissimo a costruire una macchina in grado di ripararsi da sola, anche a chilometri di distanza da noi? Se questa macchina si trovasse su un pianeta sconosciuto, con caratteristiche del tutto casuali, e se la macchina fosse capace di adattarsi e di evolversi in funzione con l’ambiente, l’esperimento potrebbe andare a buon fine. Potremo pensare di mandare i nostri robot su pianeti dicendogli: “andate, adattatevi e fate un buon lavoro!”, e loro potrebbero riuscire nell’impresa, senza l’aiuto di nessun uomo che li comandi. Inoltre potrebbero riuscire a riparare gli errori, autonomamente, senza che nessuno pianifichi tutto alla perfezione (per il semplice fatto che ciò non è possibile). Insomma, riuscire a creare una macchina con la capacità di adattamento ed evoluzione, sarebbe un bel colpo per il futuro dell’esplorazione spaziale, ma tutto si ferma qui? No, assolutamente no. Una macchina del genere potrebbe riuscire a curare il nostro corpo dall’interno, potrebbe modificare la nostra fisionomia, a seconda delle necessità, e sarebbe un fidato compagno di viaggio.

2.La sostituzione del silicio con il DNA.

Gli attuali computer sono composti dal silicio e il loro funzionamento si basa sull’elettronica; tramite essa l’informazione passa dall’hardware al software, tramutando la materia in calcolo. Un giorno – non troppo lontano – però, potrebbe essere la vita stessa a fare i calcoli al posto della materia inerte; come, in fondo, ha fatto fino ad oggi per se stessa. SI tratta solo di riuscire a controllarla, e di poter utilizzare la sua potenza di calcolo per le nostre applicazioni. Nel 1992 Paul Rothemund aveva suggerito un metodo per fare i calcoli utilizzando il DNA. La sua idea prevedeva di tagliare e incollare i filamenti di DNA, emulando il funzionamento della macchina di Turing. Successivamente, nel 1994, Leonard Adleman pubblicò un lavoro che dimostrava il calcolo a DNA, mostrando la risoluzione di un modesto caso di cammino hamiltoniano. Questo tipo di problema richiede di trovare il percorso più breve che deve collegare un insieme di città, passando una sola volta per ognuna di esse.

L’esperimento di Adleman per risolvere questo problema funzionava così: il professore rappresentava le città e le tappe tra una città e l’altra, con singoli filamenti di DNA. Ciascun filamento-tappa, doveva avere una metà sinistra in grado di legare il DNA che rappresentava la città di partenza, e una metà destra in grado di legare il DNA che rappresentava la città di arrivo. Quando tutti i filamenti venivano mescolati insieme, i filamenti tappa, si legavano ai filamenti città in vari modi. In seguito Adleman aumentava, attraverso la tecnica detta reazione a catena della polimerasi, il numero di DNA che cominciavano e finivano con le città, di inizio e di fine percorso. Per trovare i filamenti che avevano attraversato il numero preciso di città (N città), l’informatico si rifaceva all’elettroforesi su gel, che attraverso l’utilizzo della corrente elettrica, separava il DNA a singolo o doppio filamento in base alla loro lunghezza. Naturalmente, in seguito a questi trattamenti, potevano ancora esserci alcuni filamenti che rappresentavano due stesse città nel solito percorso, quindi, Adleman, ovviava a questo problema facendo passare i filamenti attraverso una serie di piccoli filtri dotati di pallini magnetici, ricoperti di ogni DNA associato a ciascuna città. Finito questo trattamento ogni molecola che rimaneva rappresentava un cammino hamiltoniano. La peculiarità sfortunata di questo tipo di problema, purtroppo, è che il numero possibile di percorsi da analizzare, aumenta esponenzialmente all’aumentare del numero delle città.

L’informatico-teorico, inoltre, sapeva che accanto a numerosi svantaggi, come la lunghezza delle operazioni biologiche, e la possibilità di riscontrare errori nella loro esecuzione, vi erano anche numerosi vantaggi, come la possibilità di conservare moltissima informazione in pochissimo spazio, o l’enorme capacità di calcolo parallelo. Infatti al giorno d’oggi la velocità dei PC si basa sul numero di processori che calcolano le operazioni contemporaneamente, in quanto un singolo processore non può essere ulteriormente potenziato, senza mettere in repentaglio l’integrità dei circuiti. Dunque la caratteristica preponderante dei computer a DNA sarebbe una potentissima capacità di calcolo parallelo, che nel caso specifico dell’elaboratore di Adleman si concretizza nella velocità con cui i filamenti di DNA, che rappresentano i possibili percorsi, si legano.

Il lavoro di Adleman, comunque, suscitò straordinari entusiasmi, e fu la prova che è possibile fare calcoli attraverso il DNA. Successivamente Rothemund, iniziò a costruire strutture fatte di DNA, utilizzando i rituali di accoppiamento di DNA e aprendo la strada alle nanotecnologie a DNA. La sua idea prevedeva di costruire qualsiasi struttura gli fosse venuta in mente, attraverso i metodi con cui i filamenti di DNA si accoppiano. Per esempio se si volesse arrotolare un filamento di DNA su se stesso, in modo da fargli costituire un bordo di una figura, si potrebbero utilizzare altri filamenti di DNA, che fanno da ganci. In questo modo i filamenti-ganci potrebbero tenere legate le parti di un filamento più lungo in modo da renderlo piegato. Fatto sta che Rothemund, attraverso le sue tecniche, è riuscito a realizzare delle faccine sorridenti, rappresentazioni dell’America, e molte altre forme; e ora propone di fare un passo successivo. A suo avviso, affidandosi al principio dell’auto assemblaggio, si potrebbe creare qualsiasi forma costituita dal DNA, poi si potrebbe aggiungere qualche nano tubo di carbonio, si potrebbe togliere il DNA, e si otterrebbe un circuito pronto. Al momento, l’informatico, sta lavorando con l’Almaden Research Centrer della IBM, per disporre gli origami a DNA in punti specifici delle superfici di silicio. Naturalmente questo sembra un passo indietro rispetto alla corrente di pensiero del passaggio dal silicio al DNA, ma è comunque una possibile applicazione. E, inoltre, Rothemund sta anche lavorando alle proteine contrattili. Attraverso l’origami a DNA sarebbe possibile costruire dei binari a DNA su cui far muovere proteine, magari attraverso la costruzione da parte di altri scienziati, di motori fatti di proteine da accoppiare alle strutture di DNA, in modo da controllare la loro struttura, il calcolo, la funzione e il movimento; aprendo così, una nuova strada verso la nanotecnologia vivente.

Ultimamente, per quanto riguarda il calcolo a DNA, sono stati ottenuti risultati importantissimi da alcuni ricercatori dell’università di Princeton. A capo della ricerca ha risieduto la biologa evolutiva Laura Landweber, che ha pubblicato i suoi risultati su Proceedings of the National Academy of Sciences. Al posto del silicio, il suo elaboratore, è costituito da una provetta con 1024 filamenti di DNA. Il suo gruppo ha programmato l’elaboratore affinché potesse risolvere il “problema del cavallo” in una versione semplificata. Per comprendere questo problema non è necessario saper giocare a scacchi; basta immaginarsi una scacchiera e sapere che il cavallo si può muovere solo a L (elle). Il “problema del cavallo” classico prevede di determinare se sia possibile far passare una sola volta, la pedina, da ogni casella, partendo con il cavallo in una casella qualsiasi; e se si con quante mosse. Il problema risolto dall’elaboratore del gruppo della Landweber, prevede invece di determinare in quante e quali posizioni possono essere disposti i cavalli, senza che subiscano attacchi reciprochi. Il risultato è stato che delle 512 possibili combinazioni ne sono state trovate 43 corrette e una sbagliata: certamente un bel successo, visto e considerato che si tratta dell’esperimento cibernetico che più ha avvicinato il freddo mondo dei computer a quello della vita.

3. Il ripensamento dei processi fisici applicati ai processi di calcolo, per le nuove applicazioni.

Secondo la legge di Moore, il numero di transistor che possono essere disposti su un chip, raddoppiano ogni due anni. Ciò avviene in maniera analoga per la velocità dei processori, i quali, ogni due anni si fanno il doppio più veloci. Tutto questo è determinato dalla velocità di clock. Il clock di un processore da tre gigahertz, batte tre miliardi di volte al secondo, e da questo dipendono le velocità dei processori. Qualche anno fa, purtroppo, si è arrivati ad un livello di clock, che avrebbe richiesto un energia tale, da mettere in pericolo l’integrità dei circuiti. I produttori dei microchip decisero così di mettere più processori sullo stesso chip, senza aumentare la velocità dei clock dei singoli processori. Nacquero così i processori multi-core . Al giorno d’oggi Monty Denneau, è riuscito a costruire un computer da un peta-flop , ovvero un milione di volte più potente degli attuali computer. Ma tutto ciò non fa altro che ritardare il momento in cui dovrà esserci un ripensamento della fisica applicata; dunque sarà necessario cambiare ottica di pensiero per lo sviluppo di nuove idee. Jonathan Mills, ad esempio, ha cominciato ad utilizzare una particolarità sfortunata, che a volta produce errori, dei resistori e transistor, in maniera da trarne vantaggio. Questi elementi elettronici, infatti, sono in grado di produrre un numero infinito di tensioni diverse. Per questo, Mills, piuttosto che utilizzare la fisica discreta che è determinata dall’utilizzo di 0 e 1, ha proposto l’utilizzo della fisica continua, attraverso cui, lo scienziato, è in grado di risolvere le equazioni differenziali.

Un’alternativa alla fisica continua di Mills è l’utilizzo della fisica dei quanti proposta da Scott Aaronson.

I computer a DNA, offrono la possibilità di eseguire calcoli molto complessi, utilizzando pochissimo spazio e soprattutto poca energia; ma per quanto riguarda la teoria della computabilità, tali computer, non sono sostanzialmente migliori di quelli attuali. E questo perché la classe di algoritmi che riescono a risolvere sono gli stessi che sono risolvibili dai normali personal computer: gli algoritmi polinomiali. Esistono però, alcuni problemi la cui soluzione non può essere affidata agli algoritmi deterministici di tipo polinomiale: gli NP. NP sta per non-deterministic polynomial time, e sono tutti quegli problemi la cui soluzione non può essere affidata ai nostri computer, per quanto potenti siano. O meglio, i computer normali non sono in grado di gestire i problemi polinomiali in maniera efficiente. Ma in che modo la fisica che sottostà ai computer quantistici si discosta dalla fisica utilizzata per gli attuali computer? Beh dal nome di queste macchine è evidente che esse non utilizzano la fisica classica, ma quella quantistica, ed in particolare, alcune proprietà come la sovrapposizione degli stati e l’entanglement. È noto, inoltre, che quando si parla di meccanica quantistica, ci troviamo ai livelli della subatomica dell’atomo, ovvero nell’infinitamente piccolo. In quei luoghi la materia ha la facoltà di esistere sottoforma di possibilità attraverso la sovrapposizione degli stati.

L’informazione, in questo caso, può essere conservata in una sovrapposizione di stati attraverso i Qubit, i bit analoghi del computer quantistico. È noto che un bit, può assumere i valori di 0 o 1, niente di più. Mentre un Qubit, è dotato di due ampiezze di probabilità, A0 e A1. Quindi un Qubit, può assumere i valori 1 o 0, ma può anche essere la sovrapposizione di tutti e due. Dunque se si mettono in un sistema due Qubit, si hanno 4 possibili combinazioni, a differenza delle 2 che si potevano avere con i bit. Due bit possono essere: 00 oppure 01 oppure 10 oppure 11; ma non più di due numeri a volta. Mentre due Qubit possono essere A00 A01 A10 A11, contemporaneamente, in quanto ogni Qubit può essere la sovrapposizione di due valori. Quindi per ogni Qubit che si aggiunge al sistema, le ampiezze raddoppiano (con 3 Qubit le ampiezze sono 8). La differenza quindi, lo ripeto, è che i bit possono essere solo 0 o 1, mentre i Qubit possono assumere contemporaneamente entrambi i valori. Quindi lo stato combinato di K-Qubit richiede l’utilizzo di ampiezze; il che, di per se, fa già capire le potenzialità di un computer quantistico. Con 250 Qubit, infatti, un computer quantistico potrebbe memorizzare più numeri di quanti atomi ci sono nell’universo.

Ma per funzionare in maniera efficiente i computer quantistici hanno bisogno di algoritmi particolari, come quello ideato da Peter Shor, nel 1994. L’algoritmo di Shor si prende il merito di proporre un metodo per fattorizzare un numero di molte cifre in tempi polinomiali. L’algoritmo è di tipo non deterministico, ma è dimostrato che potrebbe essere utilizzato su un computer quantistico. Fattorizzare significa scomporre a numeri primi un qualsiasi numero. Attualmente con gli algoritmi più efficienti e i computer più potenti, è possibile fattorizzare un numero di 50 cifre in 1 secondo, ma appena si sale con le cifre, i tempi si fanno esorbitanti. Infatti per fattorizzare un numero di 100 cifre ci vogliono 300.000 anni, e per fattorizzare un numero da 200 cifre ci vuole circa l’età del nostro universo. L’algoritmo di Shor, invece, ridurrebbe drasticamente i tempi. Ma andando ancora oltre, ci sono problemi ancora più complessi, dotati di pochissima struttura. Cosa significa? Il famoso matematico Scoot Aaronson, utilizza un semplice esempio per chiarire la difficoltà di risolvere i problemi dotati di poca struttura, come gli NP-completi. Dice di immaginarsi una mappa, e di doverla colorare con tre colori, in modo che nessuna ragione adiacente sia colorata con lo stesso colore. Non è possibile sapere se ci sia un solo modo per colorare una mappa, o se ce ne siano un milione. Mentre per un problema, tipo la fattorizzazione, è noto che ogni numero può essere fattorizzato in un solo modo. È questa la vera complessità dei problemi NP-completi, e se un giorno fosse possibile risolverli, i risultati sarebbero astronomici. Sempre secondo Aaronson, sarebbe possibile automatizzare i processi di comprensione e intelligenza. Per esempio si potrebbe trovare un modello matematico conciso che spieghi i mercati azionari, o i drammi di Shakespeare. In definitiva, sarebbe possibile, in uno spazio di problemi di dimensioni incredibilmente grande, trovare anche una sola soluzione in tempi ragionevoli. Ma per ora i problemi NP-completi rimangono irrisolvibili, in quanto per risolverli bisognerebbe violare una legge fisica. Nel 1998 Daniel S. Abrams e Seth LIoyd hanno mostrato che piccole non-linearità nel continuum spazio-temporale, potrebbero fa risolvere, ai computer quantistici, i problemi NP-completi, in tempi polinomiali. In molti, purtroppo, credono che ciò non sia possibile, ma non è ancora detta l’ultima parola.

Bibliografia

Shasha D. e Lazere C., “Computer a DNA”, Le Scienze, Roma, 2011.

Penrose R., “La mente nuova dell'imperatore”, Bur, Milano, 2000.

Boncinelli E., “Genetista”, Zanichelli, Bologna, 2006.

Darwin C., “L’origine della specie”, Einaudi, Torino, 2009.

Odifreddi P., “ In principio era Darwin”, Longanesi, Milano, 2010.

Capra F., “La rete della vita”, BUR, Milano, 2010.

Kumar M., “Quantum”, Mondadori, Milano, 2011.

Ford K.W., “Il mondo dei quanti”, Bollati Boringhieri, Torino, 2010.

Hofmann E., “Dal computer classico a quello quantistico: realizzabilità e potenziali applicazioni”, Mondo Digitale, n.4, dicembre 2003.

Tettamanzi A. G. B., “Algoritmi evolutivi: concetti e applicazioni”, Mondo Digitale, n.1, marzo 2005.

Immagine: DNA http://www.flickr.com/photos/widdowquinn/4425450744/ by widdowquinn
Fonte: http://www.estropico.org/index.php?option=com_content&view=article&id=200:dna-il-nuovo-custode-dellinformazione-digitale-di-andrea-tasselli&catid=41:varie&Itemid=80