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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri.

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. A partire da questa lezione, ci occuperemo di come si riescono a codificare con sequenze binarie, quindi con sequenze di 0 e 1,

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

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

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

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

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

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

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

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

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

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

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

I SISTEMI DI NUMERAZIONE

I SISTEMI DI NUMERAZIONE ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA I SISTEMI DI NUMERAZIONE Prof. G. Ciaschetti Fin dall antichità, l uomo ha avuto il bisogno di rappresentare le quantità in modo simbolico. Sono nati

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Altri metodi di indicizzazione

Altri metodi di indicizzazione Organizzazione a indici su più livelli Altri metodi di indicizzazione Al crescere della dimensione del file l organizzazione sequenziale a indice diventa inefficiente: in lettura a causa del crescere del

Dettagli

I SISTEMI DI NUMERAZIONE

I SISTEMI DI NUMERAZIONE Istituto di Istruzione Superiore G. Curcio Ispica I SISTEMI DI NUMERAZIONE Prof. Angelo Carpenzano Dispensa di Informatica per il Liceo Scientifico opzione Scienze Applicate Sommario Sommario... I numeri...

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata Lezione n.6 Unità di controllo microprogrammata 1 Sommario Unità di controllo microprogrammata Ottimizzazione, per ottimizzare lo spazio di memoria occupato Il moltiplicatore binario Esempio di architettura

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

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

Utilizzo I mintermini si usano quando si considererà la funzione di uscita Q come Somma di Prodotti (S. P.) ossia OR di AND.

Utilizzo I mintermini si usano quando si considererà la funzione di uscita Q come Somma di Prodotti (S. P.) ossia OR di AND. IPSI G. Plana Via Parenzo 46, Torino efinizione di Mintermine onsiderata una qualunque riga della tabella di verità in cui la funzione booleana di uscita Q vale, si definisce mintermine il prodotto logico

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

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

I punteggi zeta e la distribuzione normale

I punteggi zeta e la distribuzione normale QUINTA UNITA I punteggi zeta e la distribuzione normale I punteggi ottenuti attraverso una misurazione risultano di difficile interpretazione se presi in stessi. Affinché acquistino significato è necessario

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

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

Competenza chiave europea: MATEMATICA. Scuola Primaria. DISCIPLINE DI RIFERIMENTO: MATEMATICA DISCIPLINE CONCORRENTI: tutte

Competenza chiave europea: MATEMATICA. Scuola Primaria. DISCIPLINE DI RIFERIMENTO: MATEMATICA DISCIPLINE CONCORRENTI: tutte Competenza chiave europea: MATEMATICA Scuola Primaria DISCIPLINE DI RIFERIMENTO: MATEMATICA DISCIPLINE CONCORRENTI: tutte TAB. A TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE al termine della Scuola Primaria

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori Informazione e computer Si può rappresentare l informazione attraverso varie forme: Numeri Testi Suoni Immagini 0001010010100101010 Computer Cerchiamo di capire come tutte queste informazioni possano essere

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

0 ) = lim. derivata destra di f in x 0. Analogamente, diremo che la funzione f è derivabile da sinistra in x 0 se esiste finito il limite

0 ) = lim. derivata destra di f in x 0. Analogamente, diremo che la funzione f è derivabile da sinistra in x 0 se esiste finito il limite Questo breve file è dedicato alle questioni di derivabilità di funzioni reali di variabile reale. Particolare attenzione viene posta alla classificazione dei punti di non derivabilità delle funzioni definite

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

Funzioni in due variabili Raccolta di FAQ by Andrea Prevete

Funzioni in due variabili Raccolta di FAQ by Andrea Prevete Funzioni in due variabili Raccolta di FAQ by Andrea Prevete 1) Cosa intendiamo, esattamente, quando parliamo di funzione reale di due variabili reali? Quando esiste una relazione fra tre variabili reali

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

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

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

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Fondamenti di calcolo booleano

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Fondamenti di calcolo booleano Breve introduzione storica Nel 1854, il prof. Boole pubblica un trattato ormai famosissimo: Le leggi del pensiero. Obiettivo finale del trattato è di far nascere la matematica dell intelletto umano, un

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

LA RAPPRESENTAZIONE DELLE INFORMAZIONI

LA RAPPRESENTAZIONE DELLE INFORMAZIONI ISTITUTO TECNICO E LICEO SCIENTIFICO TECNOLOGICO ANGIOY LA RAPPRESENTAZIONE DELLE INFORMAZIONI Prof. G. Ciaschetti DATI E INFORMAZIONI Sappiamo che il computer è una macchina stupida, capace di eseguire

Dettagli

Capitolo II Le reti elettriche

Capitolo II Le reti elettriche Capitolo II Le reti elettriche Fino ad ora abbiamo immaginato di disporre di due soli bipoli da collegare attraverso i loro morsetti; supponiamo ora, invece, di disporre di l bipoli e di collegarli tra

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

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

0. Piano cartesiano 1

0. Piano cartesiano 1 0. Piano cartesiano Per piano cartesiano si intende un piano dotato di due assi (che per ragioni pratiche possiamo scegliere ortogonali). Il punto in comune ai due assi è detto origine, e funziona da origine

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

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

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

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

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

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

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

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l Ambiente e il Territorio

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l Ambiente e il Territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l Ambiente e il Territorio Rappresentazione dell Informazione

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

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

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

PROGETTO LAUREE SCIENTIFICHE -MATEMATICA 2006/2007 Modelli Matematici per la Società Incontro del 15.02.07

PROGETTO LAUREE SCIENTIFICHE -MATEMATICA 2006/2007 Modelli Matematici per la Società Incontro del 15.02.07 PROGETTO LAUREE SCIENTIFICHE -MATEMATICA 2006/2007 Modelli Matematici per la Società Incontro del 15.02.07 CODICI MONOALFABETICI E ANALISI DELLE FREQUENZE (organizzata da Francesca Visentin) Riprendiamo

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

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

I tipi di dato astratti

I tipi di dato astratti I tipi di dato astratti.0 I tipi di dato astratti c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 001/00.0 0 I tipi di dato astratti La nozione di tipo di dato

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

ISTITUZIONI DI MATEMATICHE E FONDAMENTI DI BIOSTATISTICA. 2. Insiemi numerici. A. A. 2014-2015 L.Doretti

ISTITUZIONI DI MATEMATICHE E FONDAMENTI DI BIOSTATISTICA. 2. Insiemi numerici. A. A. 2014-2015 L.Doretti ISTITUZIONI DI MATEMATICHE E FONDAMENTI DI BIOSTATISTICA 2. Insiemi numerici A. A. 2014-2015 L.Doretti 1 INSIEMI NUMERICI rappresentano la base su cui la matematica si è sviluppata costituiscono le tappe

Dettagli

Obiettivo Principale: Spiegare come la stessa cosa possa essere realizzata in molti modi diversi e come, a volte, ci siano modi migliori di altri.

Obiettivo Principale: Spiegare come la stessa cosa possa essere realizzata in molti modi diversi e come, a volte, ci siano modi migliori di altri. 6 LEZIONE: Algoritmi Tempo della lezione: 45-60 Minuti. Tempo di preparazione: 10-25 Minuti (a seconda che tu abbia dei Tangram disponibili o debba tagliarli a mano) Obiettivo Principale: Spiegare come

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

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010 elementi di teoria dei grafi anno acc. 2009/2010 Grafi semplici Un grafo semplice G è una coppia ordinata (V(G), L(G)), ove V(G) è un insieme finito e non vuoto di elementi detti vertici o nodi di G, mentre

Dettagli

Sommario. 1 Realizzazione del STG. Introduzione. 1 traduzione delle specifiche informali in specifiche formali (STG o

Sommario. 1 Realizzazione del STG. Introduzione. 1 traduzione delle specifiche informali in specifiche formali (STG o Sommario Sintesi di macchine a stati finiti 1 Realizzazione del ST M. avalli 2 utoma minimo di SM completamente specificate 6th June 2007 3 Ottimizzazione di SM non completamente specificate Sommario ()

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Appunti del corso di Informatica 1 (IN1 Fondamenti) 2 Introduzione alla programmazione

Appunti del corso di Informatica 1 (IN1 Fondamenti) 2 Introduzione alla programmazione Università Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN1 Fondamenti) 2 Introduzione alla programmazione Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

AREA MATEMATICO-SCIENTIFICO-TECNOLOGICA MATEMATICA

AREA MATEMATICO-SCIENTIFICO-TECNOLOGICA MATEMATICA AREA MATEMATICO-SCIENTIFICO-TECNOLOGICA MATEMATICA TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA SECONDARIA DI PRIMO GRADO. L alunno ha rafforzato un atteggiamento positivo rispetto

Dettagli

Mete e coerenze formative. Dalla scuola dell infanzia al biennio della scuola secondaria di II grado

Mete e coerenze formative. Dalla scuola dell infanzia al biennio della scuola secondaria di II grado Mete e coerenze formative Dalla scuola dell infanzia al biennio della scuola secondaria di II grado Area disciplinare: Area Matematica Finalità Educativa Acquisire gli alfabeti di base della cultura Disciplina

Dettagli

Cenni di logica & algebra booleana

Cenni di logica & algebra booleana Cenni di algebra booleana e dei sistemi di numerazione Dr. Carlo Sansotta - 25 2 Parte Cenni di logica & algebra booleana 3 introduzione L elaboratore elettronico funziona secondo una logica a 2 stati:

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