Prospettive del DNA Computing

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Prospettive del DNA Computing"

Transcript

1 Università degli Studi di Udine Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea Triennale in Informatica Tesi di Laurea Prospettive del DNA Computing Candidato: Tommaso Dreossi Relatore: Agostino Dovier Anno Accademico 2008/2009 Università degli Studi di Udine Via Palladio, 8 Palazzo Florio Udine Italia

2

3 A mia madre Delfina

4

5 Ringraziamenti Desidero ringraziare alcune persone che mi hanno aiutato nella realizzazione di questa tesi. Prima fra tutte, il Professor Agostino Dovier, nonché mio Relatore. Lo ringrazio, in primo luogo, per avermi fatto appassionare all Informatica Teorica e, secondariamente, per il tempo dedicatomi e per gli utili consigli che mi hanno consentito di concludere agilmente questo lavoro. Ringrazio sentitamente mia madre Delfina, senza la quale non sarei stato in grado di sostenere i percorsi di studi che sino ad oggi ho affrontato, e miei fratelli Carlotta e Federico, per essermi quotidianamente vicini. Mi sento in dovere di ringraziare Iris, la persona che più mi ha supportato moralmente e più mi ha compreso nei periodi di difficoltà scolastica, e Matteo, amico nel quale posso sempre trovare conforto. Infine, ringrazio tutte le persone che, con la loro amicizia, hanno allietato i miei studi presso l Università di Udine, in particolare Bortul, Billy Monica, Gianni e Semola.

6

7 Indice 1 Introduzione 1 2 DNA Introduzione La doppia elica Caratteristiche del DNA Operazioni sul DNA Algoritmi Complessità computazionale Macchine di Turing Classi di complessità in tempo La classe N P L approccio di L. M. Adleman al HP Problem I passi computazionali La codifica su DNA L implementazione L approccio di R. Lipton al SAT Problem I passi computazionali La codifica su DNA L implementazione Generalizzazione I risultati Alcune applicazioni DNA-MdT e DNA-ND-MdT Codifica su DNA Transizioni

8 ii Indice Inizializzazione e terminazione Non determinismo Il DNA-Pascal Il linguaggio Alcuni programmi Crittografia La codifica su DNA Circuito DES Attacco molecolare Valutazione del circuito DES Risultati Biocalcolatore Biocalcolatore autonomo e programmabile Automi La struttura Molecola Input Molecola Hardware Molecola Software La computazione Risultati Conclusione 75 Bibliografia 77

9 1 Introduzione In futuro un computer potrà forse pesare non meno di 1.5 tonnellate (USA Popular Mechanics, 1949) Pare che le cose siano andate diversamente da quando, nel 1949, la rivista americana USA Popular Mechanics fece tale previsione. Da allora infatti le valvole termoioniche sono state sostituite da circuiti integrati ad alta densità di componenti, le schede perforate da dispositivi di memoria digitali e, nonostante ciò, la famosa legge di Moore prevede che le prestazioni dei microprocessori continueranno a raddoppiare ogni 12 mesi. Si è a conoscenza però dei limiti fisici che la materia impone, oltre ai quali le attuali tecnologie non sono in grado di andare. Nasce quindi la necessità di aggirare l ostacolo cercando di concepire nuovi paradigmi computazionali. Negli ultimi tempi si è sentito parlare di diversi approcci alla computazione, come ad esempio la Computazione Quantistica, la Computazione Evoluzionisitca, la Computazione Neuronale e fra questa vi è anche la Computazione DNA (o DNA Computing). Si tratta sempre di tecniche che, in una maniera o nell altra, tentano di infrangere le complessità esponenziali di tipo computazionale che gli algoritmi tradizionali si trovano ad affrontare. Nel caso del DNA Computing vengono sfruttate le particolari caratteristiche del DNA per aumentare la velocità di calcolo e ridurre il volume delle informazioni codificate. Va specificata però la differenza fra DNA Computing e Bioinformatica, settore scientifico nato recentemente dalla fusione fra Biologia ed Informatica. Il DNA Computing sfrutta la Biochimica e la Biologia per la risoluzione di problemi informatici che sono attualmente intrattabili. Viceversa, la Bioinformatica è una disciplina scientifica dedicata alla risoluzione di problemi biologici a livello molecolare con metodi informatici [22]. In questa tesi si discuterà principalmente di come l approccio DNA computazionale possa essere utilizzato per risolvere determinate istanze di problemi computazionalmente complessi. In particolare, per comprendere cosa rende il DNA adatto

10 2 1. Introduzione alla risoluzione di problemi informatici, nel Capitolo 2 verranno esposte a grandi linee le sue caratteristiche e le operazioni attualmente effettuabili su di esso. Nel Capitolo 3 verrà data la definizione formale di complessità computazionale e verrà spiegato il perché dell attuale intrattabilità di determinati problemi. Nel medesimo Capitolo si parlerà inoltre della risoluzione tramite DNA Computing di due classici problemi computazionalmente complessi, ovvero l Hamilton Path Problem e il SAT Problem. Nel Capitolo 4 verrà descritto come il DNA Computing può essere applicato in diversi campi, in particolare nella definizione di un linguaggio di programmazione operante su molecole di DNA, nella simulazione di Macchine di Turing e nell attacco ad un sistema di crittografia. Infine, nel Capitolo 5, verrà descritta la realizzazione di un biocalcolatore, ovvero un calcolatore composto da molecole di materiale organico, avvenuta nei laboratorio del Weizmann Institute of Science.

11 2 DNA Prima di poter imbattersi nella trattazione del DNA Computing e del funzionamento degli algoritmi che tale paradigma computazionale offre, è necessario capire cosa sia effettivamente il DNA, ovvero quale sia la sua funzione, dove si trova, da cosa è composto e quali sono le caratteristiche che lo rendono così adatto alla risoluzione di problemi informatici. 2.1 Introduzione Un organismo vivente è un sistema molto complesso di tipo evolutivo che è in grado di svilupparsi, determinarsi e mantenersi in maniera autonoma grazie ad un progetto contenuto in esso. Il termine organismo vivente complesso viene applicato a un qualsiasi organismo vivente composto da una o più cellule. La cellula (dal latino, piccola stanza [8]) è l unità costitutiva fondamentale di tutti gli organismi viventi e può essere considerata come la più piccola struttura ad essere classificabile come vivente. Gli organismi unicellulari, come i protozoi o i batteri acidoplastici, sono costituiti da una singola cellula, mentre gli organismi pluricellulari possono consistere in una miriade di cellule, nel caso dell uomo sono circa 100 mila miliardi [23]. A qualsiasi organismo appartengano, le cellule presentano delle caratteristiche comuni, fra cui la riproduzione attraverso la divisione cellulare (mitosi 1 e meiosi 2 ) e l utilizzo di enzimi ed altre proteine prodotte a partire dai geni presenti sul DNA. Il DNA, o Acido Desossiribonucleico, è il vettore chimico dell informazione genetica. Si tratta di un composto chimico presente in tutte le cellule di tutti gli organismi viventi e svolge, in un certo senso, il ruolo fondamentale di controllo dell attività cellulare. Nella storia della genetica come scienza, il DNA ha assunto un 1 mitosi: divisione del nucleo genitore in due nuclei figli. 2 meiosi: divisione del nucleo in due cellule sessuali.

12 4 2. DNA ruolo di primo piano solo in un epoca relativamente recente [20]: inizialmente l attenzione venne focalizzata sull ereditarietà, ovvero sul modo in cui un determinato carattere (il colore degli occhi, la lunghezza della coda, il colore di un fiore) viene trasmesso dai genitori alla progenie; in seguito, con lo sviluppo scientifico della genetica, un attenzione sempre crescente venne rivolta alla funzione del gene (sequenze di acidi nucleici o sottosequenze del DNA). In questo modo venne proposto con prove evidenti che la funzione principale del DNA consiste nello specificare la formazione delle proteine, i costituenti fondamentali di tutte le cellule animali e vegetali. Il DNA fu inizialmente isolato dal biochimico svizzero Friedrich Miescher che, nel 1869, individuò una sostanza microscopica contenuta nel pus di bende chirurgiche utilizzate [5]. Successivamente, nel 1919, Phoebus Levene individuò la struttura del nucleotide, composta da base azotata, zucchero e fosfato [11]. Nel 1953, grazie anche all avvento tecnologico delle immagini fornite dalla diffrazione a raggi X, James Watson e Francis Crick presentarono sulla rivista Nature [21] quello che oggi è accertato come il primo modello accurato della struttura del DNA, quello a doppia elica. 2.2 La doppia elica Secondo il modello di Watson-Crick la molecola del DNA è costituita da due filamenti polinucleici avvolti ad elica attorno ad un asse centrale. Ogni filamento è formato da uno scheletro di molecola di zucchero e gruppi di fosfato alternati, dal quale sporgono lateralmente le basi azotate legate allo zucchero. Più precisamente, la struttura portante dello scheletro è composta da una concatenazione di zuccheri (deossiribosio) tenuti assieme da legami fosfodiesterici (legami P), che legano il carbonio 5 dello zucchero precedente, al carbonio 3 dello zucchero successivo. Sull anello pentagonale dello zucchero, vi sono legate le basi azotate che si fronteggiano all interno della doppia elica (Fig. 2.1; pag. 5). Vi sono due tipi di basi azotate: le purine e le pirimidine. Le purine più comuni del DNA sono l adenina (A) e la guanina (G), le pirimidine più comuni la citosina (C) e la timina (T). Queste basi azotate vengono comunemente indicate col nome di basi. Esse si appaiano secondo un particolare legame che segue la proprietà della complementarità: l adenina lega solamente con la timina e viceversa, e la citosina lega solo con la guanina e viveversa. Tale proprietà è conosciuta anche come Watson- Crick complemetarity e viene anche indicata tramite la notazione: Ā = T, T = A, C = G, Ḡ = C.

13 2.2. La doppia elica 5 Figura 2.1: Struttura ad elica del DNA Poiché all interno della singola catena polimerica i legami fosfodiesterici legano il carbonio 5 dello zucchero precedente al carbonio 3 di quello successivo, la lettura della sequenza di basi ha un verso, che viene indicato con la notazione 5 3. È per questa ragione che la sequenza complementare viene definita antiparallela o inversa, in quanto essa corrisponde ad una lettura nel senso opposto, ovvero 3 5. Supponendo per esempio di possedere la sequenza 5 AAGCGTAG 3, la sua sequenza complementare sarà 3 TTCGCATC 5 e, legandosi fra di esse, daranno vita alla doppia sequenza 5 -AAGCGTAG-3 3 -TTCGCATC-5. Una molecola di DNA contiene molti geni, ciascuno dei quali corrisponde ad una determinata serie di centinaia o migliaia di nucleotidi disposti lungo i filamenti polinucleotidici. La precisa sequenza dei nucleotidi rappresenta l informazione che stabilisce la struttura primaria di una proteina, il costituente fondamentale di tutte le cellule animali e vegetali.

14 6 2. DNA 2.3 Caratteristiche del DNA P. Wilhelm e K. Rothemund, nel loro articolo A DNA and restriction enzyme implementation of Turing Machines [30], osservarono che il DNA, per un informatico, appare come il nastro di una Macchina di Turing (per la definizione formale di Macchina di Turing si veda la sezione 3.1.1). Tale caratteristica induce quindi a pensare di poterlo utilizzare come uno strumento di computazione. Osservarono inoltre che il DNA presenta numerose caratteristiche per un informatico. Il DNA è materiale genetico: Il DNA è il dispositivo di memorizzazione dei geni. Si è a conoscenza del fatto che i geni sono in grado di automodificarsi adottando delle tecniche di ricombinamento (per esempio il Crossingover 3 ). Queste tecniche seguono delle regole che potrebbero essere utilizzate per identificare delle computazioni o generare linguaggi. Il DNA è piccolo e facile da copiare: In ogni coppia di basi A T vi sono 67 atomi di materia mentre, in una coppia del tipo C G, ve ne sono 66. Il DNA può essere rappresentato come una sequenza di quattro simboli, ognuno dei quali fornisce la capacità di 1 bit ogni 33 atomi. Per esempio, la sequenza di basi CGCG è composta da una totalità di 132 atomi di materia, 33 per ogni base azotata. Associando il simbolo 1 alla base C e il simbolo 0 alla base G ecco che la sequenza CGCG corrisponde alla rappresentazione binaria Si può notare dunque che ad ogni 33 atomi di materia, ovvero ad ogni base azotata, corrisponde 1 bit d informazione. In media il peso molecolare di una coppia di basi si aggira attorno ai 660 Daltons 4. Ciò significa che in 0.33 Kg di DNA può essere codificata 1 mole bits 5. Inoltre, è possibile replicare una sequenza molto velocemente grazie a specifiche reazioni chimiche, ottenendo oltre un milione di sequenze copiate in un ora (si veda la sezione 2.4). I legami fra basi sono reversibili: Poiché le basi seguono una particolare legge di complementarità (si veda la sezione 2.2), qualsiasi computazione codificata nell accoppiamento di tali basi può considerarsi reversibile. Ciò può risultare utile nell operazione d inversione di un generico algoritmo. 3 Crossing-over: scambio di materiale genetico fra cromosomi [10]. 4 Un Dalton corrisponde alla dodicesima parte di un atomo di Carbonio-12, ovvero Kg. 5 Un mole corrisponde a

15 2.4. Operazioni sul DNA Operazioni sul DNA Per poter realizzare una procedura algoritmica sul DNA è necessario poter operare su di esso. Con il termine ingegneria genetica, o più propriamente tecnologie del DNA ricombinante, si fa riferimento ad un insieme molto eterogeneo di tecniche che permettono di isolare geni, clonarli, introdurli ed esprimerli in un ospite eterologo 6 [2]. Nonostante siano molte le operazioni effettuabili sul DNA, di seguito verranno introdotte solamente quelle necessarie all implementazione di un algoritmo. Tali operazioni sono tratte dall articolo A survey on DNA computing di Nadia Pisanti (per maggiori dettagli si veda [15]). Fusione 7 e separazione 8 : Grazie all Idrogeno è possibile appaiare due sequenze antiparallele e complemetari di basi. Viceversa è anche possibile separarle, ottenendo così due sequenze distinte provenienti da un singolo accoppiamento. Sintesi: In laboratorio è possibile sintetizzare, ovvero creare, un filamento di DNA desiderato. Ciò è possibile però solamente per filamenti di una certa lunghezza. Più precisamente, ogni passaggio di sintesi, ovvero ogni aggiunta di una base alla sequenza posseduta, possiede un efficienza del 90% circa. Questo significa che oltre una certa lunghezza, le sequenze ottenute possono considerarsi pressoché casuali. Solitamente si sintetizzano sequenze lunghe fino a 100 basi. Estrazione: Dato un campione di DNA T e un filamento f, è possibile estrarre tutti i filamenti in T che possiedono come sottosequenza f, e separali da quelli che non la contengono. Unione: Dati dei campioni T 1,..., T n è possibile creare una nuova sequenza T definita dall unione dei campioni T 1,..., T n. Amplificazione 9 : Consiste nella duplicazione, o meglio replicazione, di una determinata sequenza di DNA. Ligasi: Tale procedura prende il nome dall enzima Ligasi, e causa la concatenazione di due sequenze in un unico filamento. 6 Eterologo: differente dall ospite originale. 7 Tradotto dall inglese melting. 8 Tradotto dall inglese annealing. 9 Tradotto dall inglese amplify.

16 8 2. DNA Individuazione 10 : Dato un campione qualsiasi, è possibile stabilire in laboratorio se contiene almeno una sequenza di DNA. Lunghezza: La lunghezza di una sequenza viene determinata grazia al metodo dell elettroforesi: tramite un particolare tipo di gel ed all applicazione di un campo elettrico su di esso, è possibile individuare ed isolare tutte quelle sequenze che possiedono la dimensione prestabilita. Va ricordata inoltre la Polymerase Chain Reaction (in breve PCR): si tratta di una tecnica di biologia molecolare che consente l amplificazione di frammenti di sequenze di DNA delle quali si conoscono le sottosequenze iniziali e terminali. L amplificazione tramite PCR consente di ottenere in laboratorio molto rapidamente le quantità di materiale genetico necessarie per applicazioni successive, quali l individuazione o l estrazione di sottosequenze. Ora che sono state analizzate a grandi linee le caratteristiche principali del DNA e le operazione eseguibili su di esso, si può cominciare a pensare a come sfruttare tali elementi per la realizzazione di algoritmi dediti alla risoluzione di problemi informatici. 10 Tradotto dall inglese detect.

17 3 Algoritmi La domanda nasce spontanea: è realmente necessario l utilizzo del DNA per la risoluzione problemi informatici? Certamente per effettuare la somma di due numeri non risulterà conveniente attivare un laboratorio di biologi, bioinformatici e chimici. In altre tipologie di problema però, il DNA Computing può essere un buona, se non l unica, alternativa. Non tutti i problemi sono uguali. Si supponga per esempio di trovarsi all interno di una città con n edifici. Tali edifici saranno collegati fra di loro da strade che avranno lunghezze differenti. S immagini un turista desideroso di visitare tutti gli edifici della città che vi chiede se esiste una strada che consenta di visitare tutti gli edifici, partendo dall edificio e i, arrivando all edificio e f, passando per tutti gli edifici una volta sola. Si potrà dirgli di comprare una mappa della città, oppure, da persone ospitali, si potrà fornirgli una risposta corretta. Per potergli rispondere però, nel caso sfortunato, sarà necessario calcolare tutti i possibili percorsi che passano attraverso gli edifici della città una volta sola. Se la città è molto grande, vi sarà un numero enorme di combinazioni di percorsi possibili. Sembrerebbe che questo problema sia più complesso della somma di due numeri. Si tratta infatti di un problema matematico computazionalmente complesso che prende il nome di problema del cammino Hamiltoniano. Tale problema fu scelto da Leonard M. Adleman nel suo articolo intitolato Molecular computation of solutions to combinatorial problems [1] nel quale trattò per la prima volta l approccio DNA computazionale. Prima di descrivere la tecnica di Adleman, verranno esposti i criteri tramite i quali un problema viene locato in una determinata classe di colmpessità, ovvero quanto un problema risulta complesso.

18 10 3. Algoritmi 3.1 Complessità computazionale Macchine di Turing A priori bisognerebbe domandarsi se esiste effettivamente un algoritmo che fornisce una soluzione ai problemi posti, e in seguito stabilire su quale macchina farlo eseguire. In effetti, il tempo che ci impiegava un calcolatore a schede perforate per eseguire la somma di due numeri è sicuramente superiore al tempo impiegato da una calcolatrice tascabile attuale. Eppure la complessità del problema è rimasta la stessa. Bisogna quindi rappresentare in modo formale una macchina in grado di eseguire algoritmi costituiti da passi elementari e discreti di calcolo. Alan Turing negli anni 30 ideò una macchina con le caratteristiche precedentemente descritte, e la espose nel suo celebre articolo On computable numbers with an application to the entscheidungsproblem (per maggiori dettagli si veda [19]). La sua intuizione fu quella ideare di una macchina in grado di scrivere simboli su di un nastro infinito. Il nastro viene organizzato in celle che rappresentano la quantità di memoria unitaria. La macchina, utilizzando un alfabeto di simboli finito, è in grado di rappresentare un infinità di dati. Il corpo pensante della macchina, detto controllo, è realizzato tramite un automa a stati finiti deterministico (DFA). Tutto questo prende il nome di Macchina di Turing, in breve MdT. Uno dei simboli di cui fruisce la MdT è $ che può essere visto come l assenza di simboli in una determinata cella. Il controllo della MdT ha accesso al nastro attraverso una testina di lettura e scrittura che permettere di leggere o scrivere in una cella un solo simbolo alla volta. La MdT è quindi costituita da due parti principali: il programma secondo cui verrà eseguito il calcolo e gli organi meccanici per lo scorrimento del nastro e il comando della testina. Ad ogni passo di calcolo, il simbolo presente nella cella puntata dalla testina rappresenta l input alla macchina. La macchina può quindi decidere di modificare il simbolo e, in esguito, di spostare il nastro di una posizione a destra o sinistra della cella esaminata. Così facendo si avrà in input un simbolo diverso e si potrà compiere un altro passo computazionale. Inoltre la testina può modificare il suo stato scegliendo da un insieme finito di stati. Il comportamento di una MdT viene descritto mediante una tabella detta matrice funzionale, nella quale le righe rappresentano gli stati del controllo e le colonne i simboli in ingresso. In una cella della matrice funzionale viene descritta l azione che la macchina deve eseguire nello stato corrispondente in riga e leggendo dal nastro il simbolo corrispondente in colonna.

19 3.1. Complessità computazionale $ $ 0 0 $ 0 $ 0 $... q 0 Figura 3.1: Esempio di Macchina di Turing Le azioni vengono descritte tramite una terna del tipo (q r, s k, M) dove q r indica lo stato in cui la macchina dovrà portarsi, s k sarà il simbolo che dovrà scrivere, ed M indicherà la direzione in cui il nastro dovrà essere spostato (verso destra il simbolo sarà R, verso sinistra L). Se la cella corrispondente ad una determinata combinazione stato-simbolo è vuota, la macchina si ferma. Viene definita quindi una computazione una sequenza di passi compiuti dalla MdT (Fig. 3.1; pag. 11). La MdT può essere definita in maniera più formale come segue. Definizione 3.1 Una Macchina di Turing consiste di: 1. Un alfabeto finito Σ = {s 0,..., s n } composto da almeno due simboli distinti s 0 = $ (blank) e s 1 = 0 (tally). 2. Un insieme finito non vuoto di stati Q = {q 0,..., q m } tra i quali vi è lo stato iniziale q Un insieme finito non vuoto di quintuple (istruzioni) P = {I 1,..., I p } ognuna delle quali di uno dei seguenti due tipi: q s q s R q s q s L tale che non esistono due istruzioni che iniziano con la stessa coppia q,s. P può essere quindi immaginato come la descrizione di una funzione parziale così definita: δ : Q Σ Q Σ {R, L}. Tale funzione δ è detta funzione di transizione. Ad ogni MdT può essere associata una funzione che diremo calcolata dalla MdT. Più formalmente, Definizione 3.2 Una funzione f : N n N è Turing-calcolabile se esiste una MdT che partendo da una determinata configurazione iniziale... $ $ $ $ x 1... x n $ $ $... q 0

20 12 3. Algoritmi termina nella configurazione... $ $ $ $ f(x 1,..., x n ) $ $ $... q 0 È dimostrato che la classe delle funzioni parziali ricorsive corrisponde precisamente alla classe delle funzioni Turing-calcolabili [7, Cap. 12.4]. Il modello di Macchina di Turing sopra descritto è solamente uno dei formalismi per la definizione di effettiva calcolabilità. Infatti, negli stessi anni in cui veniva concepita la Macchina di Turing, vennero introdotti diversi formalismi, fra cui le funzioni ricorsive, il λ-calcolo, etc. Venne inoltre dimostrata l equivalenza fra i vari modelli, ovvero il fatto che i diversi sistemi permettevano di calcolare esattamente la stessa classe di funzioni. Questa equivalenza fra i vari formalismi portò Alonzo Chuch e Alan Turing nel 36 a formulare la seguente Tesi: Tesi di Church-Turing 1 La classe delle funzioni intuitivamente calcolabili coincide con la classe delle funzioni Turing-calcolabili. Accettando la Tesi di Chuch-Turing, si osserva immediatamente che la classe delle funzioni calcolabili da una Macchina di Turing, equivalente alla classe delle funzioni λ-definibili, corrisponde alla classe delle funzioni calcolabili effettivamente da un algoritmo. Tutto ciò assume un ruolo di notevole importanza nel campo dell Informatica Teorica. Infatti, la Tesi di Chuch-Turing implica che tutto ciò che non è calcolabile dalla Macchina di Turing non può essere calcolato da qualche altro formalismo. Non importa se viene utilizzato un linguaggio di programmazione moderno di tipo imperativo o funzionale, esso risulterà sempre e comunque Turing equivalente. L unica pecca che presenta la Tesi di Chuch-Turing risiede nel fatto che non può essere formalmente dimostrata a causa della definizione di funzione intuitivamente calcolabile. Bisogna specificare però che è stato verificato essere valida per tutti i formalismi di calcolo e i linguaggi di programmazione noti. Ad oggi, non è stata né dimostrata, né confutata formalmente, ma nonostante ciò viene considerata universalmente accettabile 1. 1 Bisogna specificare che il logico Kurt Gödel, nel 31, grazie ai suoi due Teoremi di incompletezza, dimostrò che esistono proposizioni che non possono essere né dimostrate, né confutate sulla base degli assiomi di partenza.

21 3.1. Complessità computazionale 13 Prima di poter definire le classi di complessità, viene introdotto per semplicità un estensione del modello computazionale della Macchina di Turing, costituito da più nastri 2. Seguendo il testo [14], viene di seguito definita la k-mdt. Definizione 3.3 Una k-mdt è una Macchina di Turing M = Q, Σ, q 0, P con k-nastri. Più precisamente: 1. Q è l insieme finito degli stati e q 0 Q è lo stato iniziale. 2. Σ è l alfabeto dei simboli presenti sui nastri. Assumiamo che i simboli (first) e $ appartengano a Σ. 3. L insieme delle istruzioni P rappresenta la funzione di transizione δ che assumiamo essere totale δ : Q Σ k (Q {h, yes, no}) (Σ {L, R, F }) k 4. h, yes, no sono degli stati finali non presenti in Q, rispettivamente di terminazione, accettazione, refutazione. 5. I movimenti possibili del nastro sono: L (sinistra), R (destra), F (fermo). 6. Il simbolo indica l inizio di un nastro. non può essere cancellato e quando viene letto su un nastro, la testina, relativamente a quel nastro, si sposta a destra. 7. La configurazione iniziale è del tipo: (q 0, ε,, x, ε,, ε,..., ε,, ε) } {{ } } {{ } } {{ } nastro1 nastro2 nastrok ove per ogni nastro 1,...,k i tre parametri sono: la stringa significativa a sinistra della tesina, il simbolo letto e la stringa letta a destra della testina (la variabile x sul nastro 1 rappresenta l input). Ricapitolando, le novità introdotte dalla k-mdt sono: la possibilità di operare su k nastri contemporaneamente; la semi-infinitezza dei nastri dovuta all introduzione del simbolo ; la possibilità di movimento nullo (F ). 2 È possibile definire le classi di complessità anche grazie alla Macchina di Turing standard.

22 14 3. Algoritmi Si dice che una k-mdt calcola una funzione se ogni qual volta termina, raggiunge lo stato finale h. In questo caso l output è il contenuto del k-esimo nastro. Verrà ora fornito il primo metodo formale di tempo impiegato da un algoritmo per risolvere un problema. Definizione 3.4 Data una k-mdt M e un input x, il tempo richiesto da M per x è il numero di passi computazionali necessari a M con input x per terminare. Sia f : N N una funzione totale. Si dice che una k-mdt M opera in tempo f(n) se per ogni input x il tempo richiesto da M per x, è minore o uguale a f( x ), dove x denota la lunghezza della stringa x. Il tempo di computazione, in quanto risorsa non riutilizzabile, è senza dubbio il parametro più importante da prendere in considerazione nella fase di sviluppo di un algoritmo. Lo spazio di cui una computazione necessita, ovvero nel nostro caso il numero di celle del nastro della MdT che l algoritmo impiega, per quanto sia una risorsa riutilizzabile, è anch esso un valido parametro per la stima della complessità di un algoritmo. Per questa ragione di seguito verrà fornita anche la definizione di spazio utilizzato da un algoritmo per risolvere un problema. Definizione 3.5 Data una k-mdt M e un input x, se la computazione di M inizia da una configurazione del tipo e termina in una configurazione del tipo (q 0, ε,, x, ε,, ε,..., ε,, ε ) } {{ } } {{ } } {{ } nastro 1 nastro 2 nastro k (q, u 1, s 1, v } {{ } 1, u 2, s 2, v 2,..., u } {{ } k, s k, v k ) } {{ } nastro 1 nastro 2 nastro k con q {h, yes, no} allora diremo che lo spazio richiesto da M per x è k 1 i=2 u i + v i + 1. M opera in spazio f(n) se per ogni input x lo spazio richiesto da M per x è minore o uguale a f( x ). Ora che sono state fornite le definizioni di effettiva calcolabilità e di tempo richiesto da una k-mdt per calcolare una funzione, è possibile raggruppare le funzioni in classi di complessità temporali.

23 3.1. Complessità computazionale Classi di complessità in tempo Definizione 3.6 (Classi in tempo) Un linguaggio 3 L Σ 4 è deciso da una k-mdt M se per ogni x Σ vale che: Se x L allora M con input x termina nello stato yes. Se x L allora M con input x termina nello stato no. Se L Σ è deciso da una k-mdt M e M opera in tempo f(n), allora L T IME(f(n)). T IM E(f(n)) è così definita una classe di complessità di tempo. Essa rappresenta l insieme dei linguaggi che possono essere decisi in tempo limitato da una funzione nota a priori. Vengono così definite due classi di complessità molto importanti nell ambito dell informatica teorica, che sono rispettivamente P def = k 0 T IME(nk ) EX PT IME def = k 0 T IME(2nk ) In realtà le classi computazionali che riguardano in particolar modo il DNA Computing necessitano dell introduzione di un nuovo modello computazionale, ovvero la Macchina di Turing non-deterministica. Definizione 3.7 Una MdT M = Q, Σ, q 0, P (a un nastro) è non-deterministica, in breve ND-MdT, se P è una relazione del tipo: P (Q Σ) ((Q {h, yes, no}) Σ {L, R, F }) La differenza fra la ND-MdT e i modelli di Macchine di Turing descritte in precedenza (si vedano le definizioni 3.1 e 3.3) consta nel fatto che per una data configurazione (q 0, ε,, x) si ha una famiglia di possibili computazioni non deterministiche. In un certo senso, a partire da una configurazione iniziale, tutte le possibili computazioni vengono smistate in grafo ad albero, nel quale ogni cammino dalla radice ad una delle foglie corrisponde ad una possibile computazione (Fig. 3.2; pag. 16). 3 Linguaggio: insieme di stringhe di simboli di un alfabeto Σ. 4 Dato un alfabeto Σ, la notazione Σ corrisponde all insieme Σ = {a 1,..., a n : n 0, a i Σ}.

Tipologie di macchine di Turing

Tipologie di macchine di Turing Tipologie di macchine di Turing - Macchina di Turing standard - Macchina di Turing con un nastro illimitato in una sola direzione - Macchina di Turing multinastro - Macchina di Turing non deterministica

Dettagli

Risposta: 2. Uracile. Risposta: 2. legami idrogeno. Adenina, Citosina e Guanina si trovano sia nell RNA che nel DNA.

Risposta: 2. Uracile. Risposta: 2. legami idrogeno. Adenina, Citosina e Guanina si trovano sia nell RNA che nel DNA. Risposta: 2. Uracile Adenina, Citosina e Guanina si trovano sia nell RNA che nel DNA. La Timina si trova soltanto nel DNA; l Uracile si sostituisce alla Timina nelle molecole dell RNA. Risposta: 2. legami

Dettagli

LE MOLECOLE INFORMAZIONALI. Lezioni d'autore Treccani

LE MOLECOLE INFORMAZIONALI. Lezioni d'autore Treccani LE MOLECOLE INFORMAZIONALI Lezioni d'autore Treccani Introduzione (I) I pionieri della biologia molecolare, scoperta la struttura degli acidi nucleici, pensarono di associare al DNA una sequenza di simboli,

Dettagli

LA GENETICA: DNA e RNA LA GENETICA. DNA e RNA. Prof. Daniele Verri

LA GENETICA: DNA e RNA LA GENETICA. DNA e RNA. Prof. Daniele Verri LA GENETICA DNA e RNA Prof. Daniele Verri L'acido desossiribonucleico o deossiribonucleico (DNA) è un acido nucleico che contiene le informazioni necessarie per la formazione di RNA e proteine. LA GENETICA:

Dettagli

Le Macchine di Turing

Le Macchine di Turing Le Macchine di Turing Come è fatta una MdT? Una MdT è definita da: un nastro una testina uno stato interno un programma uno stato iniziale Il nastro Il nastro è infinito suddiviso in celle In una cella

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il concetto di Algoritmo e di Calcolatore Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Cos

Dettagli

Determinazione della struttura di una molecola di RNA tramite una sequenza di numeri primi

Determinazione della struttura di una molecola di RNA tramite una sequenza di numeri primi Università degli Studi di Milano Polo Didattico e di Ricerca di Crema Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Geometria Computazionale Determinazione della struttura di una molecola

Dettagli

la "macchina" universale di Turing

la macchina universale di Turing la "macchina" universale di Turing Nel 1854, il matematico britannico George Boole (1815-1864), elaborò una matematica algebrica che da lui prese il nome. Nell'algebra booleana le procedure di calcolo

Dettagli

AUTOMI A STATI FINITI. G. Ciaschetti

AUTOMI A STATI FINITI. G. Ciaschetti AUTOMI A STATI FINITI G. Ciaschetti CONTENUTI Definizione di sistema Classificazione dei sistemi Definizione di modello Algebra degli schemi a blocchi Sistemi sequenziali Automi a stati finiti Macchina

Dettagli

Paola Bonizzoni. Università degli Studi di Milano-Bicocca

Paola Bonizzoni. Università degli Studi di Milano-Bicocca Paola Bonizzoni Università degli Studi di Milano-Bicocca Biologia Bioinformatica: Ricostruzione evoluzione Analisi di sequenze Folding di Proteine Simulazione di processi biologici Informatica 2 In un

Dettagli

Complessità computazionale degli algoritmi

Complessità computazionale degli algoritmi Complessità computazionale degli algoritmi Lezione n. 3.bis I precursori dei calcolatore Calcolatore di Rodi o di Andikithira 65 a.c. Blaise Pascale pascalina XVII secolo Gottfried Leibniz Joseph Jacquard

Dettagli

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili roblemi che i calcolatori non possono risolvere E importante sapere se un programma e corretto, cioe fa quello che ci aspettiamo. E facile

Dettagli

Corso di Calcolo Numerico

Corso di Calcolo Numerico Corso di Calcolo Numerico Dott.ssa M.C. De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Sistemi di Numerazione Sistema decimale La

Dettagli

La reazione a catena della polimerasi (PCR) di Ofelia Leone e Vincenzo Mandarino

La reazione a catena della polimerasi (PCR) di Ofelia Leone e Vincenzo Mandarino La reazione a catena della polimerasi (PCR) di Ofelia Leone e Vincenzo Mandarino La Polymerase Chain Reaction (PCR) o reazione di amplificazione a catena è una tecnica che permette di amplificare una specifica

Dettagli

Tecniche per il sequenziamento degli acidi nucleici

Tecniche per il sequenziamento degli acidi nucleici Tecniche per il sequenziamento degli acidi nucleici Nel 1965 viene determinata la prima sequenza completa di un Acido Nucleico: il trna dell alanina di lievito (78 nucleotidi) 1971: prima mappa di restrizione

Dettagli

Complessità e Approssimazione

Complessità e Approssimazione 1 Complessità e Approssimazione Corso di Laurea in Scienze dell'informazione Corso di Laurea Specialistica in Matematica Docente: Mauro Leoncini 2 Aspetti organizzativi Sito web: http://algo.ing.unimo.it/people/mauro

Dettagli

Corso di Biologia Molecolare

Corso di Biologia Molecolare Corso di Biologia Molecolare Dott.ssa Renata Tisi Dip. Biotecnologie e Bioscienze Ed. U4 Tel. 02 6448 3522 renata.tisi@unimib.it Acidi nucleici Il ruolo degli acidi nucleici è quello di custodire e trasmettere

Dettagli

Alternanza, parallelismo e complessità

Alternanza, parallelismo e complessità Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea Triennale in Matematica Tesi di Laurea Triennale Alternanza, parallelismo e complessità Candidato Pietro Battiston Relatore Prof. Alessandro

Dettagli

Gerarchia della struttura delle proteine

Gerarchia della struttura delle proteine Si indica con CONFORMAZIONE la disposizione tridimensionale degli atomi di una molecola, cioè la loro organizzazione spaziale. Gerarchia della struttura delle proteine struttura primaria: sequenza degli

Dettagli

Tecniche di DM: Link analysis e Association discovery

Tecniche di DM: Link analysis e Association discovery Tecniche di DM: Link analysis e Association discovery Vincenzo Antonio Manganaro vincenzomang@virgilio.it, www.statistica.too.it Indice 1 Architettura di un generico algoritmo di DM. 2 2 Regole di associazione:

Dettagli

TECNICHE DI BIOLOGIA MOLECOLARE. LA REAZIONE POLIMERASICA A CATENA Principi teorici e aspetti pratici

TECNICHE DI BIOLOGIA MOLECOLARE. LA REAZIONE POLIMERASICA A CATENA Principi teorici e aspetti pratici TECNICHE DI BIOLOGIA MOLECOLARE LA REAZIONE POLIMERASICA A CATENA Principi teorici e aspetti pratici POLYMERASE CHAIN REACTION (PCR) 1955 A. Kronembreg e coll. (Stanford University) scoprono la DNA-polimerasi

Dettagli

Calcolatori: Algebra Booleana e Reti Logiche

Calcolatori: Algebra Booleana e Reti Logiche Calcolatori: Algebra Booleana e Reti Logiche 1 Algebra Booleana e Variabili Logiche I fondamenti dell Algebra Booleana (o Algebra di Boole) furono delineati dal matematico George Boole, in un lavoro pubblicato

Dettagli

Il DNA e la duplicazione cellulare. Acidi nucleici: DNA, materiale ereditario

Il DNA e la duplicazione cellulare. Acidi nucleici: DNA, materiale ereditario Il DN e la duplicazione cellulare Il DN, materiale ereditario Struttura del DN Replicazione del DN Dal DN alla proteina Il odice genetico iclo cellulare Mitosi Meiosi Da Figura 8-11 ampbell & Reece cidi

Dettagli

Modulo 8. Elettronica Digitale. Contenuti: Obiettivi:

Modulo 8. Elettronica Digitale. Contenuti: Obiettivi: Modulo 8 Elettronica Digitale Contenuti: Introduzione Sistemi di numerazione posizionali Sistema binario Porte logiche fondamentali Porte logiche universali Metodo della forma canonica della somma per

Dettagli

3. Gli algoritmi di ottimizzazione.

3. Gli algoritmi di ottimizzazione. Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 3-3. Gli algoritmi di ottimizzazione. I grafi. La teoria dei grafi è un comodo strumento per la definizione e la formalizzazione

Dettagli

Prof.ssa Gamba Sabrina. Lezione 7: IL DNA. Duplicazione e sintesi delle proteine

Prof.ssa Gamba Sabrina. Lezione 7: IL DNA. Duplicazione e sintesi delle proteine Prof.ssa Gamba Sabrina Lezione 7: IL DNA Duplicazione e sintesi delle proteine concetti chiave della lezione Costituzione fisico-chimica del DNA Basi azotate Duplicazione Concetto di geni Rna Trascrizione

Dettagli

Introduzione. è uguale a 0, spostamento di dati da una parte della memoria del calcolatore ad un altra.

Introduzione. è uguale a 0, spostamento di dati da una parte della memoria del calcolatore ad un altra. Appunti di Calcolatori Elettronici Modello di macchina multilivello Introduzione... 1 Linguaggi, livelli e macchine virtuali... 3 La struttura a livelli delle macchine odierne... 4 Evoluzione delle macchine

Dettagli

Progetto e analisi di algoritmi

Progetto e analisi di algoritmi Progetto e analisi di algoritmi Roberto Cordone DTI - Università degli Studi di Milano Polo Didattico e di Ricerca di Crema Tel. 0373 / 898089 E-mail: cordone@dti.unimi.it Ricevimento: su appuntamento

Dettagli

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

PROVA INTRACORSO TRACCIA A Pagina 1 di 6 PROVA INTRACORSO DI ELEMENTI DI INFORMATICA MATRICOLA COGNOME E NOME TRACCIA A DOMANDA 1 Calcolare il risultato delle seguenti operazioni binarie tra numeri interi con segno rappresentati in complemento

Dettagli

GENETICA seconda parte

GENETICA seconda parte GENETICA seconda parte I cromosomi sono lunghe molecole di una sostanza l acido desossiribonucleico. DNA Il DNA è una lunga catena fatta da due lunghi fili avvolti su se stessi a doppia elica. Sembra una

Dettagli

Le componenti fisiche di un computer: l hardware

Le componenti fisiche di un computer: l hardware Le componenti fisiche di un computer: l hardware In questa sezione ci occuperemo di come è strutturato e come funziona l hardware di un computer. In particolare, nella Sezione ci occuperemo del punto di

Dettagli

Capacità di canale in molte salse

Capacità di canale in molte salse Capacità di canale in molte salse. Bernardini 6 maggio 008 Indice 1 Introduzione 1 Modelli di canale 1.1 Matrice di transizione........................................ 1. Funzione aleatoria..........................................

Dettagli

Dott.ssa Renata Tisi. Dip. Biotecnologie e Bioscienze Ed. U4 Tel. 02 6448 3522 renata.tisi@unimib.it

Dott.ssa Renata Tisi. Dip. Biotecnologie e Bioscienze Ed. U4 Tel. 02 6448 3522 renata.tisi@unimib.it Dott.ssa Renata Tisi Dip. Biotecnologie e Bioscienze Ed. U4 Tel. 02 6448 3522 renata.tisi@unimib.it Il ruolo degli acidi nucleici è quello di custodire e trasmettere l informazione genetica nelle cellule,

Dettagli

ALGEBRA I: CARDINALITÀ DI INSIEMI

ALGEBRA I: CARDINALITÀ DI INSIEMI ALGEBRA I: CARDINALITÀ DI INSIEMI 1. CONFRONTO DI CARDINALITÀ E chiaro a tutti che esistono insiemi finiti cioè con un numero finito di elementi) ed insiemi infiniti. E anche chiaro che ogni insieme infinito

Dettagli

COMPUTAZIONE NATURALE

COMPUTAZIONE NATURALE APhEx 10, 2014 (ed. Vera Tripodi) Ricevuto il: 28/08/2013 Accettato il: 14/03/2014 Redattore: Vera Tripodi N 10 GIUGNO 2014 T E M I COMPUTAZIONE NATURALE di Paolo Milazzo ABSTRACT - Questo articolo descrive

Dettagli

Rappresentazione e Memorizzazione dei Dati

Rappresentazione e Memorizzazione dei Dati Rappresentazione e Memorizzazione dei Dati Giuseppe Nicosia CdL in Matematica (Laurea Triennale) Facoltà di Scienze MM.FF.NN. Università di Catania Bit e loro Memorizzazione Definizioni Algoritmo: una

Dettagli

L INNOVAZIONE SCIENTIFICO-TECNOLOGICA NEI PROCESSI PRODUTTIVI

L INNOVAZIONE SCIENTIFICO-TECNOLOGICA NEI PROCESSI PRODUTTIVI L INNOVAZIONE SCIENTIFICO-TECNOLOGICA NEI PROCESSI PRODUTTIVI Scienza ed industria hanno oggi costituito legami molto forti di collaborazione che hanno portato innovazione tecnologica sia a livello organizzativo-amministrativo

Dettagli

Fondamenti di Informatica. Computabilità e Macchine di Turing. Prof. Franco Zambonelli Gennaio 2011

Fondamenti di Informatica. Computabilità e Macchine di Turing. Prof. Franco Zambonelli Gennaio 2011 Fondamenti di Informatica Computabilità e Macchine di Turing Prof. Franco Zambonelli Gennaio 2011 Letture Consigliate: Roger Penrose, La Mente Nuova dell Imperatore, Sansoni Editrice. Martin Davis, Il

Dettagli

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Hardware, software e periferiche Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Riepilogo - Concetti di base dell informatica L'informatica è quel settore scientifico disciplinare

Dettagli

Introduzione all informatica (cosa è, di cosa si occupa) 9/2/2015 Informatica applicata alla comunicazione multimediale Cristina Bosco

Introduzione all informatica (cosa è, di cosa si occupa) 9/2/2015 Informatica applicata alla comunicazione multimediale Cristina Bosco Introduzione all informatica (cosa è, di cosa si occupa) 9/2/2015 Informatica applicata alla comunicazione multimediale Cristina Bosco Indice - Di cosa si occupa l informatica? - Cosa sono gli algoritmi?

Dettagli

Appunti di Logica Matematica

Appunti di Logica Matematica Appunti di Logica Matematica Francesco Bottacin 1 Logica Proposizionale Una proposizione è un affermazione che esprime un valore di verità, cioè una affermazione che è VERA oppure FALSA. Ad esempio: 5

Dettagli

Il flusso dell informazione genetica il ruolo dei polimeri di nucleotidi

Il flusso dell informazione genetica il ruolo dei polimeri di nucleotidi Il flusso dell informazione genetica il ruolo dei polimeri di nucleotidi trascrizione traduzione DNA RNA Proteina replicazione DNA replicazione: sintesi del DNA trascrizione: sintesi del RNA traduzione:

Dettagli

PROGETTO DNA CHIAVI IN MANO

PROGETTO DNA CHIAVI IN MANO PROGETTO DNA CHIAVI IN MANO La collaborazione con il Virgilio e il progetto dell IFOM Il progetto DNA chiavi in mano è un percorso pensato dal Centro di Ricerca internazionale IFOM per avvicinare i ragazzi

Dettagli

Un po di teoria dei numeri

Un po di teoria dei numeri Un po di teoria dei numeri Applicazione alla crittografia RSA Christian Ferrari Liceo di Locarno Matematica Sommario 1 L aritmetica modulare di Z n Le congruenze L anello Z n Le potenze in Z n e algoritmo

Dettagli

Esercizi di Ricerca Operativa I

Esercizi di Ricerca Operativa I Esercizi di Ricerca Operativa I Dario Bauso, Raffaele Pesenti May 10, 2006 Domande Programmazione lineare intera 1. Gli algoritmi per la programmazione lineare continua possono essere usati per la soluzione

Dettagli

CAPITOLO 1 INTRODUZIONE ALLE RETI COMPLESSE

CAPITOLO 1 INTRODUZIONE ALLE RETI COMPLESSE CAPITOLO 1 INTRODUZIONE ALLE RETI COMPLESSE Negli ultimi anni si è compreso che sistemi anche molto diversi tra loro possono essere efficacemente descritti in termini di cosiddetti "networks" o reti complesse.

Dettagli

I Insiemi e funzioni

I Insiemi e funzioni I Insiemi e funzioni 1. INSIEMI ED OPERAZIONI SU DI ESSI 1.1. Insiemi Dal punto di vista intuitivo, il concetto di insieme può essere fatto corrispondere all atto mentale mediante il quale associamo alcuni

Dettagli

Contatti 2. Testo. Contatti. Maria Chiara Laghi, Ph.D Dip. Ingegneria dell Informazione. tel. 0521 905712 e-mail laghi@ce.unipr.it

Contatti 2. Testo. Contatti. Maria Chiara Laghi, Ph.D Dip. Ingegneria dell Informazione. tel. 0521 905712 e-mail laghi@ce.unipr.it Contatti 2 Maria Chiara Laghi, Ph.D Dip. Ingegneria dell Informazione tel. 0521 905712 e-mail laghi@ce.unipr.it Pagina web del corso http://www.ce.unipr.it/people/laghi/informaticasg2012 a.a. 2011/2012

Dettagli

Biotecnologie ed OGM. Prima parte: DNA ricombinante e microorganismi geneticamente modificati.

Biotecnologie ed OGM. Prima parte: DNA ricombinante e microorganismi geneticamente modificati. Biotecnologie ed OGM Prima parte: DNA ricombinante e microorganismi geneticamente modificati. COSA SONO LE BIOTECNOLOGIE? Si dicono Biotecnologie i metodi tecnici che permettono lo sfruttamento di sistemi

Dettagli

DNA - RNA. Nucleotide = Gruppo Fosforico + Zucchero Pentoso + Base Azotata. Le unità fondamentali costituenti il DNA e l RNA sono i Nucleotidi.

DNA - RNA. Nucleotide = Gruppo Fosforico + Zucchero Pentoso + Base Azotata. Le unità fondamentali costituenti il DNA e l RNA sono i Nucleotidi. DNA - RNA Le unità fondamentali costituenti il DNA e l RNA sono i Nucleotidi. Nucleotide = Gruppo Fosforico + Zucchero Pentoso + Base Azotata. Esistono 4 basi azotate per il DNA e 4 per RNA Differenze

Dettagli

Random number generators

Random number generators Statistica computazionale Random number generators www.cash-cow.it Distribuito sotto licenza Creative Common, Share Alike Attribution 2 Indice I. Introduzione II. Processi fisici per la creazione di numeri

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

Dispense di Informatica per l ITG Valadier

Dispense di Informatica per l ITG Valadier La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di

Dettagli

Cenno sui metodi Monte Carlo

Cenno sui metodi Monte Carlo Cenno sui metodi Monte Carlo I metodi probabilistici hanno una lunga storia ma solo dopo il 1944 è iniziato un loro studio sistematico che ha portato a notevoli sviluppi. Attualmente è stato valutato che

Dettagli

I Sistemi di numerazione e la rappresentazione dei dati

I Sistemi di numerazione e la rappresentazione dei dati I Sistemi di numerazione e la rappresentazione dei dati LA RAPPRESENTAZIONE DELLE INFORMAZIONI (1) Per utilizzare un computer è necessario rappresentare in qualche modo le informazioni da elaborare e il

Dettagli

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO 1. Load Balancing Un istanza del problema del load balancing consiste di una sequenza p 1,..., p n di interi positivi (pesi dei job) e un

Dettagli

Corso di Biologia Molecolare

Corso di Biologia Molecolare Corso di Biologia Molecolare Dott.ssa Renata Tisi Dip. Biotecnologie e Bioscienze Ed. U4 Tel. 02 6448 3522 renata.tisi@unimib.it Acidi nucleici Il ruolo degli acidi nucleici è quello di custodire e trasmettere

Dettagli

Figura 1. Rappresentazione della doppia elica di DNA e struttura delle differenti basi.

Figura 1. Rappresentazione della doppia elica di DNA e struttura delle differenti basi. Sommario La molecola di DNA è deputata a conservare le informazioni genetiche necessarie per lo sviluppo ed il funzionamento degli organismi viventi. Poiché contiene le istruzioni per la costruzione delle

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli

ALGEBRA BOOLEANA FONDAMENTI DI INFORMATICA 1. Algebra di Boole. Definizione NOT, AND, OR

ALGEBRA BOOLEANA FONDAMENTI DI INFORMATICA 1. Algebra di Boole. Definizione NOT, AND, OR Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica, Chimica, Elettrica e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011 Docente: Gian

Dettagli

Corso di Geometria e Algebra Lineare - Sezione di Metodi Numerici

Corso di Geometria e Algebra Lineare - Sezione di Metodi Numerici Corso di Geometria e Algebra Lineare - Sezione di Metodi Numerici C. Vergara 3. Metodo della fattorizzazione LU per la risoluzione di un sistema lineare Errori di arrotondamento. Prima di affrontare la

Dettagli

DNA Memory. Approfondimento del corso di Bioinformatica. prof.ssa Cocco. Sebastiano Vascon

DNA Memory. Approfondimento del corso di Bioinformatica. prof.ssa Cocco. Sebastiano Vascon DNA Memory Approfondimento del corso di Bioinformatica prof.ssa Cocco DNA Memory (Outline) Nested PCR NPMM (Nested Primer Molecular Memory) Gerarchie di memoria Accesso ai dati Spazio di memoria Vincoli

Dettagli

Quaderni di Informatica. Macchine e Linguaggi. Luigino Calvi

Quaderni di Informatica. Macchine e Linguaggi. Luigino Calvi Quaderni di Informatica Macchine e Linguaggi Luigino Calvi I.I.S. Negrelli-Forcellini - Feltre 2014 ii Capitolo 1 Macchine di Turing Potrebbe essere deludente apprendere che, fondamentalmente, computer

Dettagli

Algebra e Geometria. Ingegneria Meccanica e dei Materiali Sez (2) Ingegneria dell Automazione Industriale Sez (2)

Algebra e Geometria. Ingegneria Meccanica e dei Materiali Sez (2) Ingegneria dell Automazione Industriale Sez (2) Algebra e Geometria Ingegneria Meccanica e dei Materiali Sez (2) Ingegneria dell Automazione Industriale Sez (2) Traccia delle lezioni che saranno svolte nell anno accademico 2012/13 I seguenti appunti

Dettagli

Albero semantico. Albero che mette in corrispondenza ogni formula con tutte le sue possibili interpretazioni.

Albero semantico. Albero che mette in corrispondenza ogni formula con tutte le sue possibili interpretazioni. Albero semantico Albero che mette in corrispondenza ogni formula con tutte le sue possibili interpretazioni. A differenza dell albero sintattico (che analizza la formula da un punto di vista puramente

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Sistemi Web! per il turismo! - lezione 6 -

Sistemi Web! per il turismo! - lezione 6 - Sistemi Web! per il turismo! - lezione 6 - A proposito di social network! Osserviamo due esempi di pagine Facebook." Cercate di pensare a qual è la differenza principale tra queste due pagine." Esempio

Dettagli

LA NUMERAZIONE BINARIA

LA NUMERAZIONE BINARIA LA NUMERAZIONE BINARIA 5 I SISTEMI DI NUMERAZIONE Fin dalla preistoria l uomo ha avuto la necessità di fare calcoli, utilizzando svariati tipi di dispositivi: manuali (mani, bastoncini, sassi, abaco),

Dettagli

Analisi Molecolare di sequenze di acidi nucleici

Analisi Molecolare di sequenze di acidi nucleici Analisi Molecolare di sequenze di acidi nucleici 1. L Analisi di restrizione di frammenti o RFLP (Restriction Fragment Lenght Polymorphism) di DNA comporta lo studio delle dimensioni dei frammenti di DNA

Dettagli

Informatica Generale Anno Accademico 2000-2001

Informatica Generale Anno Accademico 2000-2001 Informatica Generale Anno Accademico 2000-2001 Corso di Laurea in Economia e Commercio Informazioni Generali Ricevimento: Mercoledì 15.00-17.00 Libri di "riferimento": C. Gallo, Informatica Generale ed

Dettagli

NP-Completezza. Andrea S. Gozzi Valerio Romeo. Andrea Samuele 1

NP-Completezza. Andrea S. Gozzi Valerio Romeo. Andrea Samuele 1 NP-Completezza di Andrea S. Gozzi Valerio Romeo Andrea Samuele 1 Argomenti trattati Out of intense complexities, intense simplicities emerge. Winston Churchill Concetti base & formalismi Introduzione alla

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

Capitolo 1 - Numerazione binaria

Capitolo 1 - Numerazione binaria Appunti di Elettronica Digitale Capitolo - Numerazione binaria Numerazione binaria... Addizione binaria... Sottrazione binaria... Moltiplicazione binaria... Divisione binaria... Complementazione... Numeri

Dettagli

Fondamenti di Informatica Ingegneria Clinica Lezione 19/11/2009. Prof. Raffaele Nicolussi

Fondamenti di Informatica Ingegneria Clinica Lezione 19/11/2009. Prof. Raffaele Nicolussi Fondamenti di Informatica Ingegneria Clinica Lezione 19/11/2009 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via B. Castiglione 59-00142 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni

Dettagli

La codifica dell informazione

La codifica dell informazione La codifica dell informazione Parte I Sui testi di approfondimento: leggere dal Cap. del testo C (Console, Ribaudo):.,. fino a pg.6 La codifica delle informazioni Un calcolatore memorizza ed elabora informazioni

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

SISTEMA DI RAPPRESENTAZIONE BINARIA DEI NUMERI E. Giordani

SISTEMA DI RAPPRESENTAZIONE BINARIA DEI NUMERI E. Giordani SISTEMA DI RAPPRESENTAZIONE BINARIA DEI NUMERI E. Giordani LEMS- Laboratorio Elettronico per la Musica Sperimentale Conservatorio di Musica G. Rossini- Pesaro,QWURGX]LRQH Tutti i FDOFRODWRUL HOHWWURQLFL

Dettagli

Architettura di un computer

Architettura di un computer Architettura di un computer Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Architettura A.A. 2012-2013 1 / 36 La tecnologia Cerchiamo di capire alcuni concetti su

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Corso di Laurea in Scienze dell'educazione, 2014-15 Lorenzo Bettini http://www.di.unito.it/~bettini Informazioni generali Ricevimento studenti su appuntamento Dipartimento di

Dettagli

Codifica binaria e algebra di Boole

Codifica binaria e algebra di Boole Codifica binaria e algebra di Boole Corso di Programmazione A.A. 2008/09 G. Cibinetto Contenuti della lezione Codifica binaria dell informazione Numeri naturali, interi, frazionari, in virgola mobile Base

Dettagli

GUIDA ALLE ESERCITAZIONI

GUIDA ALLE ESERCITAZIONI PARTE II GUIDA ALLE ESERCITAZIONI Vengono fornite esercitazioni per gli studenti sia pratiche che teoriche. Presentate come una serie di lezioni, queste attività sono raggruppate in cinque sezioni che

Dettagli

Il primo teorema di incompletezza di Gödel

Il primo teorema di incompletezza di Gödel Il primo teorema di incompletezza di Gödel Stefano Nasini Dept. of Statistics and Operations Research Universitat Politécnica de Catalunya 1. Introduzione Questo documento vuole essere una spiegazione

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 05 La rappresentazione dell informazione Carla Limongelli Ottobre 2011 http://www.dia.uniroma3.it/~java/fondinf/ La rappresentazione

Dettagli

Minimizzazione di Reti Logiche Combinatorie Multi-livello

Minimizzazione di Reti Logiche Combinatorie Multi-livello Minimizzazione di Reti Logiche Combinatorie Multi-livello Maurizio Palesi Maurizio Palesi 1 Introduzione Obiettivo della sintesi logica: ottimizzazione delle cifre di merito area e prestazioni Prestazioni:

Dettagli

Protocollo Crime Scene Investigation

Protocollo Crime Scene Investigation Protocollo Crime Scene Investigation Precauzioni da adottare in laboratorio: - non mangiare o bere - indossare sempre i guanti quando si maneggiano i tubini, i gel, le micropipette - nel dubbio, chiedere!

Dettagli

90.1 Sistemi di numerazione. 90.1.1 Sistema decimale. 605 Capitolo 90 Dai sistemi di numerazione all organizzazione della memoria

90.1 Sistemi di numerazione. 90.1.1 Sistema decimale. 605 Capitolo 90 Dai sistemi di numerazione all organizzazione della memoria 605 Capitolo 90 Dai sistemi di numerazione all organizzazione della memoria 90.1 Sistemi di numerazione.................................................... 605 90.1.1 Sistema decimale..................................................

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

Esercizi per il corso di Algoritmi e Strutture Dati

Esercizi per il corso di Algoritmi e Strutture Dati 1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi

Dettagli

Lezione 10. La classificazione dell Intelligenza Artificiale

Lezione 10. La classificazione dell Intelligenza Artificiale Lezione 10 Intelligenza Artificiale Cosa è l Intelligenza Artificiale Elaborazione del linguaggio naturale La visione artificiale L apprendimento nelle macchine La classificazione dell Intelligenza Artificiale

Dettagli

I Modelli della Ricerca Operativa

I Modelli della Ricerca Operativa Capitolo 1 I Modelli della Ricerca Operativa 1.1 L approccio modellistico Il termine modello è di solito usato per indicare una costruzione artificiale realizzata per evidenziare proprietà specifiche di

Dettagli

SUPERAVVOLGIMENTO DEL DNA (ORGANIZZAZIONE TERZIARIA DEL DNA)

SUPERAVVOLGIMENTO DEL DNA (ORGANIZZAZIONE TERZIARIA DEL DNA) SUPERAVVOLGIMENTO DEL DNA (ORGANIZZAZIONE TERZIARIA DEL DNA) ORGANIZZAZIONE TERZIARIA DEL DNA Il DNA cellulare contiene porzioni geniche e intergeniche, entrambe necessarie per le funzioni vitali della

Dettagli

Genetica umana. Storia. Storia. Storia. Storia. Ramón Lucas Lucas, LC lucas@unigre.it www.ramonlucas.org

Genetica umana. Storia. Storia. Storia. Storia. Ramón Lucas Lucas, LC lucas@unigre.it www.ramonlucas.org Genetica umana Ramón Lucas Lucas, LC lucas@unigre.it www.ramonlucas.org P Anni 30: coperta dei difetti congeniti del metabolismo (difetto ereditario nei processi normali del metabolismo) P Anni 30-45:

Dettagli

Parte 2. Determinante e matrice inversa

Parte 2. Determinante e matrice inversa Parte. Determinante e matrice inversa A. Savo Appunti del Corso di Geometria 013-14 Indice delle sezioni 1 Determinante di una matrice, 1 Teorema di Cramer (caso particolare), 3 3 Determinante di una matrice

Dettagli

V. TRASCRIZIONE E TRADUZIONE DEL DNA

V. TRASCRIZIONE E TRADUZIONE DEL DNA V. TRASCRIZIONE E TRADUZIONE DEL DNA 0) CONCETTI BASE La trasformazione delle informazioni genetiche in proteine richiede due passaggi: la trascrizione del DNA in mrna e la traduzione dell mrna in una

Dettagli

Architettura del computer (C.Busso)

Architettura del computer (C.Busso) Architettura del computer (C.Busso) Il computer nacque quando fu possibile costruire circuiti abbastanza complessi in logica programmata da una parte e, dall altra, pensare, ( questo è dovuto a Von Neumann)

Dettagli

Macchine sequenziali

Macchine sequenziali Corso di Calcolatori Elettronici I A.A. 2010-2011 Macchine sequenziali Lezione 14 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Automa a Stati Finiti (ASF) E una prima astrazione di

Dettagli

Ricerca Operativa A.A. 2007/2008

Ricerca Operativa A.A. 2007/2008 Ricerca Operativa A.A. 2007/2008 9. Cenni su euristiche e metaeuristiche per ottimizzazione combinatoria Motivazioni L applicazione di metodi esatti non è sempre possibile a causa della complessità del

Dettagli

3 GRAFICI DI FUNZIONI

3 GRAFICI DI FUNZIONI 3 GRAFICI DI FUNZIONI Particolari sottoinsiemi di R che noi studieremo sono i grafici di funzioni. Il grafico di una funzione f (se non è specificato il dominio di definizione) è dato da {(x, y) : x dom

Dettagli

SCHEDA DI PROGRAMMAZIONE DISCIPLINARE DA RIPORTARE SUL P.O.F. A.S. 2013-2014

SCHEDA DI PROGRAMMAZIONE DISCIPLINARE DA RIPORTARE SUL P.O.F. A.S. 2013-2014 SCHEDA DI PROGRAMMAZIONE DISCIPLINARE DA RIPORTARE SUL P.O.F. A.S. 2013-2014 ASSE DISCIPLINA SCIENTIFICO TECNOLOGICO BIOTECNOLOGIE AGRARIE DOCENTE DARMAN ELENA 2 BIENNIO CLASSE 3 CORSO E SEZIONE TECNICA

Dettagli

Insiemi con un operazione

Insiemi con un operazione Capitolo 3 Insiemi con un operazione 3.1 Gruppoidi, semigruppi, monoidi Definizione 309 Un operazione binaria su un insieme G è una funzione: f : G G G Quindi, un operazione binaria f su un insieme G è

Dettagli