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 Σ}.

Note del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT

Note del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT Note del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT Giuditta Franco Corso di Laurea in Bioinformatica - AA 2012/2013 Uno dei più grossi risultati nell informatica degli

Dettagli

DNA sequence alignment

DNA sequence alignment DNA sequence alignment - Introduzione: un possibile modello per rappresentare il DNA. Il DNA (Acido desossiribonucleico) è una sostanza presente nei nuclei cellulari, sia vegetali che animali; a questo

Dettagli

La macchina di Turing (Alan Turing, 1936)*

La macchina di Turing (Alan Turing, 1936)* DNA-computing La macchina di Turing (Alan Turing, 1936)* Un meccanismo (finite control) si muove tra una coppia di nastri:. legge le istruzioni da un nastro (input tape). scrive il risultato sull altro

Dettagli

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

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura

Dettagli

Automi. Sono così esempi di automi una lavatrice, un distributore automatico di bibite, un interruttore, una calcolatrice tascabile,...

Automi. Sono così esempi di automi una lavatrice, un distributore automatico di bibite, un interruttore, una calcolatrice tascabile,... Automi Con il termine automa 1 s intende un qualunque dispositivo o un suo modello, un qualunque oggetto, che esegue da se stesso un particolare compito, sulla base degli stimoli od ordini ricevuti detti

Dettagli

Breve introduzione al Calcolo Evoluzionistico

Breve introduzione al Calcolo Evoluzionistico Breve introduzione al Calcolo Evoluzionistico Stefano Cagnoni Dipartimento di Ingegneria dell Informazione, Università di Parma cagnoni@ce.unipr.it 1 Introduzione Il mondo fisico ed i fenomeni naturali

Dettagli

Laurea Specialistica in Informatica - Università di Ferrara 2008-2009 [1]

Laurea Specialistica in Informatica - Università di Ferrara 2008-2009 [1] Laurea Specialistica in Informatica - Università di Ferrara 2008-2009 [1] Macchine di Turing modello di calcolo introdotto dall ingegner Alan Turing nel 1936, per simulare il processo di calcolo umano

Dettagli

Il DNA: la molecola della vita

Il DNA: la molecola della vita Il DNA: la molecola della vita Gli acidi nucleici comprendono il DNA (acido desossiribonucleico) e l RNA (acido ribonucleico). Sono costituiti da molecole molto grandi, formate da unità dette nucleotidi,

Dettagli

Problemi computazionali

Problemi computazionali Problemi computazionali Intrattabilità e classi computazionali Decidibilità e Trattabilità Problemi decidibili possono richiedere tempi di risoluzione elevati: Torri di Hanoi Decidibilità e Trattabilità

Dettagli

Introduzione ai problemi NP-completi

Introduzione ai problemi NP-completi Corso di Algoritmi e Strutture Dati Introduzione ai problemi NP-completi Nuova versione del capitolo 13 delle dispense (basata sui modelli non deterministici) Anno accademico 2007/2008 Corso di laurea

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

Risoluzione. Eric Miotto Corretto dal prof. Silvio Valentini 15 giugno 2005

Risoluzione. Eric Miotto Corretto dal prof. Silvio Valentini 15 giugno 2005 Risoluzione Eric Miotto Corretto dal prof. Silvio Valentini 15 giugno 2005 1 Risoluzione Introdurremo ora un metodo per capire se un insieme di formule è soddisfacibile o meno. Lo vedremo prima per insiemi

Dettagli

Prob(CCCCCCCCCC) = 1 2 10

Prob(CCCCCCCCCC) = 1 2 10 12. Contenuto di Informazione Algoritmico (AIC) - 17/05/12 Vogliamo adesso introdurre una nozione di contenuto di informazione di una stringa infinita, prodotta da una sorgente di informazione, che non

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

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

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

un nastro di carta prolungabile a piacere e suddiviso in celle vuote o contenenti al più un unico carattere;

un nastro di carta prolungabile a piacere e suddiviso in celle vuote o contenenti al più un unico carattere; Algoritmi 3 3.5 Capacità di calcolo Il matematico inglese Alan Turing (1912-1954) descrisse nel 1936 un tipo di automi, oggi detti macchine di Turing, e fornì una della prime definizioni rigorose di esecuzione

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

Varianti Macchine di Turing

Varianti Macchine di Turing Varianti Macchine di Turing Esistono definizioni alternative di macchina di Turing. Chiamate Varianti. Tra queste vedremo: MdT a più nastri e MdT non deterministiche. Mostriamo: tutte le varianti ragionevoli

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

La macchina universale La macchina universale Una immediata conseguenza della dimostrazione è la seguente Corollario il linguaggio L H = {M (w) M rappresenta una macchina di Turing che si ferma con input w} sull alfabeto {0,1}*

Dettagli

Esercizio su MT. Svolgimento

Esercizio su MT. Svolgimento Esercizio su MT Definire una macchina di Turing deterministica M a nastro singolo e i concetti di configurazione e di transizione. Sintetizzare una macchina di Turing trasduttore che trasformi un numero

Dettagli

Università degli Studi di Napoli Federico II. Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica

Università degli Studi di Napoli Federico II. Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica Università degli Studi di Napoli Federico II Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica Anno Accademico 2009/2010 Appunti di Calcolabilità e Complessità Lezione 9: Introduzione alle logiche

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

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Algoritmi e Complessità

Algoritmi e Complessità Algoritmi e Complessità Università di Camerino Corso di Laurea in Informatica (tecnologie informatiche) III periodo didattico Docente: Emanuela Merelli Email:emanuela.merelli@unicam.it Lezione 2 Teoria

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

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

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

L interesse nella macchina di Turing

L interesse nella macchina di Turing Aniello Murano Macchina di Turing universale e problema della fermata 6 Lezione n. Parole chiave: Universal Turing machine Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009

Dettagli

Le parole dell informatica: modello di calcolo, complessità e trattabilità

Le parole dell informatica: modello di calcolo, complessità e trattabilità Le parole dell informatica: modello di calcolo, complessità e trattabilità Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Ciclo di seminari su un Vocabolario

Dettagli

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 5

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 5 Note del corso di Calcolabilità e Linguaggi Formali - Lezione 5 Alberto Carraro 23 novembre 2011 DAIS, Universitá Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Macchine di Turing Le Macchine d

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

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

Analisi matriciale delle reti di Petri (P/T) - sifoni e trappole -

Analisi matriciale delle reti di Petri (P/T) - sifoni e trappole - Analisi matriciale delle reti di Petri (P/T) - sifoni e trappole - - richiami preliminari sulle proprietà strutturali - Abbiamo visto che alcune caratteristiche dei sistemi dinamici (DES compresi) non

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

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 6

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 6 Note del corso di Calcolabilità e Linguaggi Formali - Lezione 6 Alberto Carraro 30 novembre DAIS, Universitá Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Funzioni Turing-calcolabili Finora abbiamo

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

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

Entropia. Motivazione. ? Quant è l informazione portata dalla sequenza? Abbiamo una sequenza S di N simboli (campioni audio, pixel, caratteri,...

Entropia. Motivazione. ? Quant è l informazione portata dalla sequenza? Abbiamo una sequenza S di N simboli (campioni audio, pixel, caratteri,... Entropia Motivazione Abbiamo una sequenza S di N simboli (campioni audio, pixel, caratteri,... ) s,s 2,s 3,... ognuno dei quali appartiene ad un alfabeto A di M elementi.? Quant è l informazione portata

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

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

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

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

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

Biologia Cellulare e DNA «Bigino»

Biologia Cellulare e DNA «Bigino» Biologia Cellulare e DNA «Bigino» Giulio Barigelletti www.baveno.net Premesse 2 Sempre più frequentemente si sente parlare di DNA, Proteine, Amminoacidi, etc., relazionati all esistenza dell essere umano.

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

Biotecnologie ed OGM : come vengono trasferiti i geni?

Biotecnologie ed OGM : come vengono trasferiti i geni? Biotecnologie ed OGM : come vengono trasferiti i geni? a cura di Leonardo Magneschi Scuola Estiva di Orientamento Volterra 2007 Venerdì 29 giugno 2007 1 Introduzione all Ingegneria Genetica L ingeneria

Dettagli

NUCLEOTIDI e ACIDI NUCLEICI

NUCLEOTIDI e ACIDI NUCLEICI NUCLEOTIDI e ACIDI NUCLEICI Struttura dei nucleotidi Il gruppo fosfato conferisce carica negativa e proprietà acide FUNZIONI DEI NUCLEOTIDI MOLECOLE DI RISERVA DI ENERGIA L idrolisi dei nucleosidi trifosfato

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

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

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

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

Dispense del corso di Logica a.a. 2015/16: Problemi di primo livello. V. M. Abrusci

Dispense del corso di Logica a.a. 2015/16: Problemi di primo livello. V. M. Abrusci Dispense del corso di Logica a.a. 2015/16: Problemi di primo livello V. M. Abrusci 12 ottobre 2015 0.1 Problemi logici basilari sulle classi Le classi sono uno dei temi della logica. Esponiamo in questa

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

Bioinformatica: DNA e Algoritmi

Bioinformatica: DNA e Algoritmi Bioinformatica: DNA e Algoritmi Alberto Policriti Dpt. of Mathematics and Informatics, University of Udine. Applied Genomics Institute Di cosa parleremo In generale Deniamo i termini: DNA & Algoritmi Tecnologie

Dettagli

Le idee della chimica

Le idee della chimica G. Valitutti A.Tifi A.Gentile Seconda edizione Copyright 2009 Zanichelli editore Capitolo 25 Le basi della biochimica 1. I carboidrati 2. I lipidi 3. Gli amminoacidi, i peptidi e le proteine 4. La struttura

Dettagli

Esperienza 9: estrazione del DNA

Esperienza 9: estrazione del DNA Esperienza 9: estrazione del DNA Il DNA è la molecola essenziale di tutti gli organismi viventi. Essa contiene l informazione genetica che fa di un organismo o di una cellula ciò che è. Soggetti: purificazione

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

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

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

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

Fondamenti dei linguaggi di programmazione

Fondamenti dei linguaggi di programmazione Fondamenti dei linguaggi di programmazione Aniello Murano Università degli Studi di Napoli Federico II 1 Riassunto delle lezioni precedenti Prima Lezione: Introduzione e motivazioni del corso; Sintassi

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

I numeri delle macchine

I numeri delle macchine I numeri delle macchine Livello scolare: 1 biennio Abilità interessate Utilizzare in modo consapevole gli strumenti di calcolo automatico. Conoscenze Addizione e moltiplicazione nell insieme dei numeri

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

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

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

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

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

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

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

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

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

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

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

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione La Codifica dell informazione (parte 1) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente:

Dettagli

estratto da Competenze assi culturali Raccolta delle rubriche di competenza formulate secondo i livelli EFQ a cura USP Treviso Asse matematico

estratto da Competenze assi culturali Raccolta delle rubriche di competenza formulate secondo i livelli EFQ a cura USP Treviso Asse matematico Competenza matematica n. BIENNIO, BIENNIO Utilizzare le tecniche e le procedure del calcolo aritmetico ed algebrico, rappresentandole anche sotto forma grafica BIENNIO BIENNIO Operare sui dati comprendendone

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

Elementi di informatica e web di Guido Fusco

Elementi di informatica e web di Guido Fusco Presentazione UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II Facoltà di Sociologia Corso di laurea in culture digitali e della comunicazione http://www.corso-informatica-web.com/ Obiettivi del corso 1 ELEMENTI

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

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

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

Parte I. Relazioni di ricorrenza

Parte I. Relazioni di ricorrenza Parte I Relazioni di ricorrenza 1 Capitolo 1 Relazioni di ricorrenza 1.1 Modelli Nel seguente capitolo studieremo le relazioni di ricorrenza. Ad esempio sono relazioni di ricorrenza a n = a n 1 + n, a

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

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

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

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

Parte 3. Rango e teorema di Rouché-Capelli

Parte 3. Rango e teorema di Rouché-Capelli Parte 3. Rango e teorema di Rouché-Capelli A. Savo Appunti del Corso di Geometria 203-4 Indice delle sezioni Rango di una matrice, 2 Teorema degli orlati, 3 3 Calcolo con l algoritmo di Gauss, 6 4 Matrici

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

Sintesi di Reti Sequenziali Sincrone

Sintesi di Reti Sequenziali Sincrone LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 9 Prof. Rosario Cerbone rosario.cerbone@uniparthenope.it a.a. 2007-2008 http://digilander.libero.it/rosario.cerbone Sintesi di Reti Sequenziali Sincrone

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

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

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

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

Elementi di Bioinformatica. Genomica. Introduzione

Elementi di Bioinformatica. Genomica. Introduzione Corso di Elementi di Bioinformatica Ingegneria Biomedica AA 2013-14 Elementi di Bioinformatica Genomica Introduzione Genomica Genomica (genomics) Riguarda lo studio del genoma degli organismi viventi e,

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

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

x u v(p(x, fx) q(u, v)), e poi

x u v(p(x, fx) q(u, v)), e poi 0.1. Skolemizzazione. Ogni enunciato F (o insieme di enunciati Γ) è equisoddisfacibile ad un enunciato universale (o insieme di enunciati universali) in un linguaggio estensione del linguaggio di F (di

Dettagli