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

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

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

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

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

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

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

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

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

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

LE FUNZIONI A DUE VARIABILI

LE FUNZIONI A DUE VARIABILI Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre

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

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Luigi Piroddi piroddi@elet.polimi.it

Luigi Piroddi piroddi@elet.polimi.it Automazione industriale dispense del corso 10. Reti di Petri: analisi strutturale Luigi Piroddi piroddi@elet.polimi.it Analisi strutturale Un alternativa all analisi esaustiva basata sul grafo di raggiungibilità,

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

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

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

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

Dettagli

Matematica generale CTF

Matematica generale CTF Successioni numeriche 19 agosto 2015 Definizione di successione Monotonìa e limitatezza Forme indeterminate Successioni infinitesime Comportamento asintotico Criterio del rapporto per le successioni Definizione

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

I sistemi di numerazione

I sistemi di numerazione I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono

Dettagli

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 I CODICI 1 IL CODICE BCD 1 Somma in BCD 2 Sottrazione BCD 5 IL CODICE ECCESSO 3 20 La trasmissione delle informazioni Quarta Parte I codici Il codice BCD

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

1. PRIME PROPRIETÀ 2

1. PRIME PROPRIETÀ 2 RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

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

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

Dettagli

Le 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

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

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

13. Campi vettoriali

13. Campi vettoriali 13. Campi vettoriali 1 Il campo di velocità di un fluido Il concetto di campo in fisica non è limitato ai fenomeni elettrici. In generale il valore di una grandezza fisica assegnato per ogni punto dello

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

Corso di Matematica per la Chimica

Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis a.a. 203-4 I sistemi lineari Generalità sui sistemi lineari Molti problemi dell ingegneria, della fisica, della chimica, dell informatica e dell economia, si modellizzano

Dettagli

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X. Algebra Di Boole L algebra di Boole è un ramo della matematica basato sul calcolo logico a due valori di verità (vero, falso). Con alcune leggi particolari consente di operare su proposizioni allo stesso

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

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

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

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

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza

Dettagli

4. Operazioni elementari per righe e colonne

4. Operazioni elementari per righe e colonne 4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:

Dettagli

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA Tutti gli anni, affrontando l argomento della divisibilità, trovavo utile far lavorare gli alunni sul Crivello di Eratostene. Presentavo ai ragazzi una

Dettagli

3 GRAFICI DI FUNZIONI

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

Dettagli

Origini e caratteristiche dei calcolatori elettronici

Origini e caratteristiche dei calcolatori elettronici Origini e caratteristiche dei calcolatori elettronici Lunedì, 09 ottobre 2006 Supercomputer, mainframe 1 Server, workstation, desktop, notebook, palmare Un po di storia 1642 Biagio Pascal 1671 Leibniz

Dettagli

Reti sequenziali sincrone

Reti sequenziali sincrone Reti sequenziali sincrone Un approccio strutturato (7.1-7.3, 7.5-7.6) Modelli di reti sincrone Analisi di reti sincrone Descrizioni e sintesi di reti sequenziali sincrone Sintesi con flip-flop D, DE, T

Dettagli

( x) ( x) 0. Equazioni irrazionali

( x) ( x) 0. Equazioni irrazionali Equazioni irrazionali Definizione: si definisce equazione irrazionale un equazione in cui compaiono uno o più radicali contenenti l incognita. Esempio 7 Ricordiamo quanto visto sulle condizioni di esistenza

Dettagli

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007 Sommario Macchine a stati finiti M. Favalli 5th June 27 4 Sommario () 5th June 27 / 35 () 5th June 27 2 / 35 4 Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Dettagli

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio Appunti di informatica Lezione 2 anno accademico 2015-2016 Mario Verdicchio Sistema binario e logica C è un legame tra i numeri binari (0,1) e la logica, ossia la disciplina che si occupa del ragionamento

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

Lezioni di Matematica 1 - I modulo

Lezioni di Matematica 1 - I modulo Lezioni di Matematica 1 - I modulo Luciano Battaia 16 ottobre 2008 Luciano Battaia - http://www.batmath.it Matematica 1 - I modulo. Lezione del 16/10/2008 1 / 13 L introduzione dei numeri reali si può

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

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

Esponenziali elogaritmi

Esponenziali elogaritmi Esponenziali elogaritmi Potenze ad esponente reale Ricordiamo che per un qualsiasi numero razionale m n prendere n>0) si pone a m n = n a m (in cui si può sempre a patto che a sia un numero reale positivo.

Dettagli

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

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

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

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE 1. Proporzionalità diretta e proporzionalità inversa Analizziamo le seguenti formule Peso Lordo = Peso Netto + Tara Ricavo = Utile + Costo Rata = Importo + Interesse

Dettagli

Statistica. Lezione 6

Statistica. Lezione 6 Università degli Studi del Piemonte Orientale Corso di Laurea in Infermieristica Corso integrato in Scienze della Prevenzione e dei Servizi sanitari Statistica Lezione 6 a.a 011-01 Dott.ssa Daniela Ferrante

Dettagli

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante: Sommario Macchine a stati finiti M. Favalli Engineering Department in Ferrara 4 Sommario (ENDIF) Analisiesintesideicircuitidigitali / 35 (ENDIF) Analisiesintesideicircuitidigitali 2 / 35 4 Le macchine

Dettagli

I.I.S. Primo Levi Badia Polesine A.S. 2012-2013

I.I.S. Primo Levi Badia Polesine A.S. 2012-2013 LGEBR DI BOOLE I.I.S. Primo Levi Badia Polesine.S. 2012-2013 Nel secolo scorso il matematico e filosofo irlandese Gorge Boole (1815-1864), allo scopo di procurarsi un simbolismo che gli consentisse di

Dettagli

Complementi di Analisi per Informatica *** Capitolo 2. Numeri Complessi. e Circuiti Elettrici. a Corrente Alternata. Sergio Benenti 7 settembre 2013

Complementi di Analisi per Informatica *** Capitolo 2. Numeri Complessi. e Circuiti Elettrici. a Corrente Alternata. Sergio Benenti 7 settembre 2013 Complementi di Analisi per nformatica *** Capitolo 2 Numeri Complessi e Circuiti Elettrici a Corrente Alternata Sergio Benenti 7 settembre 2013? ndice 2 Circuiti elettrici a corrente alternata 1 21 Circuito

Dettagli

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO Macchine a stati finiti 1 G. MARSELLA UNIVERSITÀ DEL SALENTO Introduzione Al più alto livello di astrazione il progetto logico impiega un modello, la cosiddetta macchina a stati finiti, per descrivere

Dettagli

Algebra booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa.

Algebra booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa. Algebra booleana Nel lavoro di programmazione capita spesso di dover ricorrere ai principi della logica degli enunciati e occorre conoscere i concetti di base dell algebra delle proposizioni. L algebra

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

INTEGRALI DEFINITI. Tale superficie viene detta trapezoide e la misura della sua area si ottiene utilizzando il calcolo di un integrale definito.

INTEGRALI DEFINITI. Tale superficie viene detta trapezoide e la misura della sua area si ottiene utilizzando il calcolo di un integrale definito. INTEGRALI DEFINITI Sia nel campo scientifico che in quello tecnico si presentano spesso situazioni per affrontare le quali è necessario ricorrere al calcolo dell integrale definito. Vi sono infatti svariati

Dettagli

LEZIONE 23. Esempio 23.1.3. Si consideri la matrice (si veda l Esempio 22.2.5) A = 1 2 2 3 3 0

LEZIONE 23. Esempio 23.1.3. Si consideri la matrice (si veda l Esempio 22.2.5) A = 1 2 2 3 3 0 LEZIONE 23 231 Diagonalizzazione di matrici Abbiamo visto nella precedente lezione che, in generale, non è immediato che, data una matrice A k n,n con k = R, C, esista sempre una base costituita da suoi

Dettagli

Corrispondenze e funzioni

Corrispondenze e funzioni Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei

Dettagli

Capitolo 13: L offerta dell impresa e il surplus del produttore

Capitolo 13: L offerta dell impresa e il surplus del produttore Capitolo 13: L offerta dell impresa e il surplus del produttore 13.1: Introduzione L analisi dei due capitoli precedenti ha fornito tutti i concetti necessari per affrontare l argomento di questo capitolo:

Dettagli

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

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

Dettagli

Operatori logici e porte logiche

Operatori logici e porte logiche Operatori logici e porte logiche Operatori unari.......................................... 730 Connettivo AND........................................ 730 Connettivo OR..........................................

Dettagli

Codifiche a lunghezza variabile

Codifiche a lunghezza variabile Sistemi Multimediali Codifiche a lunghezza variabile Marco Gribaudo marcog@di.unito.it, gribaudo@elet.polimi.it Assegnazione del codice Come visto in precedenza, per poter memorizzare o trasmettere un

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu

Dettagli

10. Insiemi non misurabili secondo Lebesgue.

10. Insiemi non misurabili secondo Lebesgue. 10. Insiemi non misurabili secondo Lebesgue. Lo scopo principale di questo capitolo è quello di far vedere che esistono sottoinsiemi di R h che non sono misurabili secondo Lebesgue. La costruzione di insiemi

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente Funzioni In matematica, una funzione f da X in Y consiste in: 1. un insieme X detto dominio di f 2. un insieme Y detto codominio di f 3. una legge che ad ogni elemento x in X associa uno ed un solo elemento

Dettagli

Informatica per le discipline umanistiche 2 lezione 14

Informatica per le discipline umanistiche 2 lezione 14 Informatica per le discipline umanistiche 2 lezione 14 Torniamo ai concetti base dellʼinformatica. Abbiamo sinora affrontato diversi problemi: avere unʼidentità online, cercare pagine Web, commentare il

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

Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo

Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo Evoluzione In ogni popolazione si verificano delle mutazioni. Intelligenza Artificiale In un ambiente che varia, le mutazioni possono generare individui che meglio si adattano alle nuove condizioni. Questi

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme G Pareschi Principio di induzione Il Principio di Induzione (che dovreste anche avere incontrato nel Corso di Analisi I) consente di dimostrare Proposizioni il cui enunciato è in funzione di un numero

Dettagli

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri COMPETENZA CHIAVE MATEMATICA Fonte di legittimazione Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE L alunno utilizza il calcolo scritto e mentale con i numeri

Dettagli

I PROBLEMI ALGEBRICI

I PROBLEMI ALGEBRICI I PROBLEMI ALGEBRICI La risoluzione di problemi è una delle attività fondamentali della matematica. Una grande quantità di problemi è risolubile mediante un modello algebrico costituito da equazioni e

Dettagli

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione 4 LEZIONE: Programmazione su Carta a Quadretti Tempo della lezione: 45-60 Minuti. Tempo di preparazione: 10 Minuti Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione SOMMARIO:

Dettagli

Introduzione all analisi dei segnali digitali.

Introduzione all analisi dei segnali digitali. Introduzione all analisi dei segnali digitali. Lezioni per il corso di Laboratorio di Fisica IV Isidoro Ferrante A.A. 2001/2002 1 Segnali analogici Si dice segnale la variazione di una qualsiasi grandezza

Dettagli

Transitori del primo ordine

Transitori del primo ordine Università di Ferrara Corso di Elettrotecnica Transitori del primo ordine Si consideri il circuito in figura, composto da un generatore ideale di tensione, una resistenza ed una capacità. I tre bipoli

Dettagli

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Università Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

PROGRAMMA SVOLTO NELLA SESSIONE N.

PROGRAMMA SVOLTO NELLA SESSIONE N. Università C. Cattaneo Liuc, Corso di Statistica, Sessione n. 1, 2014 Laboratorio Excel Sessione n. 1 Venerdì 031014 Gruppo PZ Lunedì 061014 Gruppo AD Martedì 071014 Gruppo EO PROGRAMMA SVOLTO NELLA SESSIONE

Dettagli

UNIVERSITÀ DEGLI STUDI DI TERAMO

UNIVERSITÀ DEGLI STUDI DI TERAMO UNIVERSITÀ DEGLI STUDI DI TERAMO CORSO DI LAUREA IN ECONOMIA BANCARIA FINANZIARIA ED ASSICURATIVA (Classe 7) Corso di Matematica per l Economia (Prof. F. Eugeni) TEST DI INGRESSO Teramo, ottobre 00 SEZIONE

Dettagli

1 Applicazioni Lineari tra Spazi Vettoriali

1 Applicazioni Lineari tra Spazi Vettoriali 1 Applicazioni Lineari tra Spazi Vettoriali Definizione 1 (Applicazioni lineari) Si chiama applicazione lineare una applicazione tra uno spazio vettoriale ed uno spazio vettoriale sul campo tale che "!$%!

Dettagli

Amplificatori Audio di Potenza

Amplificatori Audio di Potenza Amplificatori Audio di Potenza Un amplificatore, semplificando al massimo, può essere visto come un oggetto in grado di aumentare il livello di un segnale. Ha quindi, generalmente, due porte: un ingresso

Dettagli