computer a DNA
ipotesi di elaboratore che impiega materiale biologico per la memorizzazione dei dati o per l'elaborazione delle informazioni. La ricerca di "sostituti del silicio", in grado di immagazzinare informazioni in spazi sempre più ristretti, ha condotto alla progettazione di computer che utilizzino, come elemento di memoria e come unità di calcolo, la molecola che è alla base di tutti gli organismi viventi: il DNA. A differenza degli elaboratori elettronici tradizionali, i computer a DNA non immagazzinano i dati utilizzando il calcolo binario, né si servono di formule matematiche per risolvere problemi, ma usano per le operazioni enzimi capaci di leggere, copiare e manipolare le informazioni, in quanto i loro dati sono strutture di molecole organizzate in stringhe di DNA. L'idea di un computer a DNA è stata formulata per la prima volta nel 1994 da Leonard Adleman. Il DNA può essere schematizzato come un sistema che elabora informazioni, partendo dalle "lettere-base" (i nucleotidi adenina, citosina, guanina e timina) e combinandole in un numero incredibile di "stringhe", che sono i codici biochimici i quali permettono a un organismo di vivere. Se le lettere-base vengono considerate come codici di informazione, le stringhe risultanti sono il prodotto dell'elaborazione di queste informazioni di base. Una molecola di DNA è organizzata come una coppia di stringhe, avvolte l'una intorno all'altra a formare una doppia elica. L'accoppiamento è mantenuto attraverso dei ponti che si possono stabilire fra molecole complementari (adenina e timina, indicate con A-C, e citosina e guanina, C-G). Ogni frammento di DNA, quindi, può considerarsi come un microprocessore specializzato nello svolgere una determinata elaborazione, anche molto complessa, oppure un banco di memoria di dimensioni molecolari. In una singola molecola di DNA di un organismo superiore, che occupa lo spazio di 20 Å (200 milionesimi di millimetro), sono contenuti ca. 100 miliardi di basi nucleotidiche, pari all'incirca a 100 Gigabyte. Una provetta con qualche milione di molecole di DNA potrebbe immagazzinare così 100.000 Terabyte, cioè l'equivalente di 10 milioni di pellicole cinematografiche di 4 ore ciascuna. Il problema affrontato da Adleman era quello di verificare l'esistenza di un cammino hamiltoniano in un grafo, che tocchi tutti i nodi del grafo senza passare mai due volte per lo stesso nodo. Questo è un problema la cui soluzione su un calcolatore sequenziale richiede, con le tecniche note, un tempo che aumenta esponenzialmente al crescere della dimensione del grafo. Il processo di calcolo realizzato da Adleman sfrutta la possibilità di un massiccio parallelismo offerto dal DNA e che può essere schematizzato nel seguente modo: si codificano i singoli nodi in sequenze formate dalle quattro molecole costitutive del DNA. Mediante i processi di PCR (Polymerase Chain Reaction), sollecitati dall'enzima polimerasi, si replicano queste stringhe, così da avere una grande quantità di copie dei dati, su cui i processi successivi operano in parallelo. Con i processi di ibridizzazione, le sequenze di DNA si combinano secondo il principio di complementarietà, così da costruire soluzioni parziali. Le doppie eliche vengono poi separate in singole sequenze e sottoposte a un processo di elettroforesi, che distingue quelle in base alla loro lunghezza. Le sequenze più lunghe, e con particolari sottosequenze di simboli, rappresentano soluzioni parziali che indicano l'esistenza di un percorso, senza ripetizioni, fra un certo numero di nodi. Il processo riprende dopo che si sono selezionate le sequenze, scegliendo ogni volta quelle che rappresentano percorsi più lunghi. Al termine del processo, le sequenze di particolare lunghezza, cioè dipendente dal numero di nodi, codificano la soluzione al problema. Se questo non avviene, significa che non esiste un cammino hamiltoniano. L'elevato numero di copie delle sequenze di codifica fornisce un'altissima probabilità di ottenere il risultato corretto, se esso esiste. In realtà, la possibilità di commettere errori cresce a ogni iterazione, come pure aumenta esponenzialmente la quantità di DNA necessaria per ottenere il risultato corretto. Queste quantità erano di un livello basso nell'esperimento originale di Adleman, in quanto riguardava un grafo di soli sette nodi, ma potrebbero diventare ingestibili già per grafi con poche centinaia di nodi. In ogni caso, a partire da questo esperimento, sono stati proposti molti altri algoritmi, come pure modelli basati sulle diverse operazioni che si possono compiere sulle sequenze di DNA e per cui si sono sviluppati modelli teorici che formalizzano e traducono queste tecniche in sistemi di manipolazione di stringhe. Numerosi di questi tipi hanno capacità di computazione universale, cioè permettono di calcolare qualsiasi funzione computata da una macchina di Turing e quindi da un elaboratore elettronico. Le operazioni corrispondenti possono essere utilizzate per la realizzazione di un computer a DNA, una volta che si è in grado di automatizzare il processo di selezione delle soluzioni. Inoltre, alcuni modelli di calcolo basato sulla manipolazione del DNA possono calcolare funzioni oltre i limiti del modello di computazione alla Turing.