Macchina di Turing Universale

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Macchina di Turing Universale"

Transcript

1 Informatica Teorica 2010/2011 M.Di Ianni Macchina di Turing Universale Vogliamo definire una macchina di Turing U che, presi in input la descrizione di una macchina di Turing ad un nastro T ed un input x di T, esegua una computazione identica a T (x). In quanto segue, per evitare confusione fra i simboli utilizzati per la macchina T e per la macchina universale U che ci accingiamo a definire, indichiamo gli stati della generica macchina di Turing T con Q T = {ω 0,...,ω m }, ove ω 0 è lo stato iniziale, ed il suo alfabeto di lavoro con Σ T = {σ 1,...,σ n }. La macchina di Turing universale U che andiamo a definire è una macchina di Turing che utilizza 3 nastri: N 1, il nastro su cui memorizziamo l input x della macchina di Turing T la cui computazione T (X) deve essere simulata da U; N 2, il nastro contenente la descrizione delle quintuple di T ; N 3, il nastro su cui è memorizzato lo stato attuale della macchina T. Presentiamo inizialmente una descrizione ad alto livello di U, che utilizza gli stessi simboli utilizzati da T. Assumiamo che le quintuple di T siano scritte sul nastro N 2 una di seguito all altra e separate dal carattere *, che l input x sia scritto sul nastro N 1, che lo stato iniziale di T, ω 0, sia scritto sul nastro N 3, e che le testine siano tutte posizionate sui primi caratteri scritti sui rispettivi nastri. La macchina U esegue sostanzialmente l algoritmo seguente, in cui si utilizza la convenzione per cui rimangono ferme le testine delle quali non viene specificato il movimento: 1) nello stato q 0, inizia la ricerca di una quintupla su N 2 che abbia come primo simbolo lo stesso simbolo letto dalla testina di N 3 e come secondo simbolo lo stesso simbolo letto dalla testina di N 1 : (a) se nello stato q 0 legge lo stesso simbolo sui nastri N 2 ed N 3, sposta la testina di N 2 a destra ed entra nello stato q statocorretto ; la testina di N 1 rimane ferma i. se nello stato q statocorretto legge lo stesso simbolo sui nastri N 2 ed N 1, allora ha trovato la quintupla da eseguire; pertanto, sposta la testina di N 2 a destra ed entra nello stato q scrivi ; la testina di N 1 rimane ferma ii. se nello stato q statocorretto legge simboli differenti sui nastri N 2 ed N 1, allora la quintupla che sta scandendo su N 2 non è quella da eseguire; pertanto, cambiando stato, sposta la testina di N 2 a destra fino a posizionarla sul primo simbolo successivo al primo * che incontra e, se tale simbolo non è, entra nello stato q 0, altrimenti entra nello stato di rigetto (b) se nello stato q 0 legge simboli differenti sui nastri N 2 ed N 3, allora la quintupla che sta scandendo su N 2 non è quella da eseguire; pertanto, cambiando stato, sposta la testina di N 2 a destra fino a posizionarla sul primo simbolo successivo al primo * che incontra e, se tale simbolo non è, entra nello stato q 0, altrimenti entra nello stato di rigetto Informatica Teorica, 2010/2011 Macchina di Turing Universale 1

2 2) nello stato q scrivi, inizia l esecuzione della quintupla che ha individuato sul nastro N 2 scrivendo il nuovo simbolo su N 1 : dunque, nello stato q scrivi, scrive su N 1 il simbolo che legge su N 2 ed entra nello stato q cambiastato muovendo a destra la testina di N 2 3) nello stato q cambiastato, prosegue l esecuzione della quintupla che ha individuato sul nastro N 2 modificando il contenuto del nastro N 3 : dunque, nello stato q cambiastato, scrive su N 3 il simbolo che legge su N 2 ed entra nello stato q muovi muovendo a destra la testina di N 2 4) nello stato q muovi, termina l esecuzione della quintupla che ha individuato sul nastro N 2 muovendo la testina del nastro N 1 : dunque, nello stato q muovi, muove la testina di N 1 in accordo con il simbolo letto su N 2 ed entra nello stato q riavvolgi muovendo a sinistra la testina di N 2 5) nello stato q riavvolgi, riposiziona la testina del nastro N 2 sul primo simbolo in esso contenuto: rimane nello stato q riavvolgi muovendo a sinistra la testina di N 2 fino a quando non legge un su N 2 e poi entra nello stato q 0 muovendo a destra la testina di N 2. La descrizione dell algoritmo sopra riportata è ad alto livello perché utilizza come alfabeto di lavoro l insieme Σ T Q T. Poiché U deve simulare le computazioni di qualsiasi macchina di Turing, questa non è, ovviamente, una assunzione ragionevole. Per ovviare a tale problema, assumiamo, allora, che l alfabeto di lavoro di U sia l insieme Σ = {0,1,,,B} (ricordiamo che il carattere blank è sempre esterno all alfabeto di lavoro e che tale simbolo non può essere scritto) e che, all inizio della computazione, la macchina U si trovi nello stato globale descritto nel seguito. I simboli dell alfabeto utilizzato da T sono codificati in binario, tutti con lo stesso numero χ di cifre. L input di T è memorizzato sul nastro N 1, preceduto e seguito dal carattere - e con i simboli separati dal carattere -. Inoltre, il primo simbolo di input è preceduto da una sequenza di χ caratteri B preceduta, a sua volta da. Gli stati di T sono codificati in binario, tutti con lo stesso numero di cifre. Lo stato iniziale ω 0 di T è memorizzato (sempre codificato in binario) sul nastro N 3, preceduto e seguito dal carattere. Il movimento della testina in ciascuna quintupla è codificato in binario secondo le convenzioni seguenti: 0 corrisponde a fermo, 10 destra, 11 sinistra. L insieme delle quintuple che descrivono T sono memorizzate (codificando ciascun simbolo in binario) sul nastro N 2 ; le quintuple sono separate l una dall altra dal carattere e gli elementi di ciascuna quintupla sono separati dal carattere. Se una quintupla contiene il come secondo elemento (ossia, se richiede che venga letto un ) allora esso viene codificato con una sequenza di χ caratteri B. La testina di N 3 è sul primo carattere di ω 0 scritto su N 3, la testina di N 1 è sul primo simbolo dell input, la testina di N 2 sul primo simbolo della prima quintupla. Le parti non descritte di tutti i nastri sono riempite di blank. La macchina U si trova nello stato q 0. Prima di presentare una descrizione formale della macchina U, osserviamo che, nella descrizione ad alto livello riportata sopra, la verifica dell uguaglianza degli stati letti sui nastri N 2 ed N 3 oppure dei caratteri letti sui nastri N 2 ed N 1 al punto 1) avviene con una singola istruzione, in quanto consiste nel confronto di due simboli dell alfabeto Σ T Q T. Quando passiamo all alfabeto Σ tali confronti diventano confronti fra stringhe binarie (della stessa lunghezza) e, quindi, richiedono l utilizzo di cicli (che corrispondono a quintuple in cui lo stato di arrivo coincide con lo stato di partenza) che, a loro volta, comportano l introduzione di un certo numero di stati intermedi. In definitiva, la computazione di U che simula T (x) è descritta nel seguito. 1 ) Nello stato q 0, inizia la ricerca di una quintupla su N 2 che abbia come primo simbolo lo stesso simbolo letto dalla testina di N 3 e come secondo simbolo lo stesso simbolo letto dalla testina di N 1. Informatica Teorica, 2010/2011 Macchina di Turing Universale 2

3 (a) Se nello stato q 0 legge sui nastri N 2 ed N 3 uguali sequenze di 0 e 1, sposta la testina di N 2 a destra ed entra nello stato q statocorretto ; la testina di N 1 rimane ferma q 0,(a,x,x),(a,x,x),q 0,( f erma,destra,destra) a Σ { }, x {0,1} q 0,(a,, ),(a,, ),q statocorrettoind,( f erma,destra,sinistra) a Σ { } ora è necessario riportare la testina di N 3 sul primo simbolo q statocorrettoind,(a,x,y),(a,x,y),q statocorrettoind,( f erma, f erma,sinistra) a Σ { }, x,y Σ q statocorrettoind,(a,x, ),(a,x, ),q statocorretto,( f erma, f erma,destra) a Σ { }, x Σ. i. Se nello stato q statocorretto legge sui nastri N 2 ed N 1 uguali sequenze di 0, 1, B, allora ha trovato la quintupla da eseguire; pertanto, sposta la testina di N 2 a destra ed entra nello stato q scrivi ; la testina di N 1 rimane ferma. Iniziamo a descrivere le quintuple relative al caso in cui la la testina di N 1 non legge (ossia, essa è posizionata a destra della sequenza corrispondente all ultimo carattere sul nastro di T ) q statocorretto,(a,a,x),(a,a,x),q statocorretto,(destra,destra, f erma) a {0,1,B}, x Σ q statocorretto,(,,x),(,,x),q scriviind,(sinistra, f erma, f erma) x Σ ora è necessario riportare la testina di N 1 sul primo simbolo q scriviind,(a,x,y),(a,x,y),q scriviind,(sinistra, f erma, f erma) a {0,1,B}, x,y Σ q scriviind,(,x,y),(,x,y),q scrivi,( f erma, f erma,destra) x,y Σ. Descriviamo ora le quintuple relative al caso in cui la testina di N 1 legge : q statocorretto,(,b,x),(b,b,x),q scrivi,( f erma, f erma, f erma) x Σ. ii. Se nello stato q statocorretto legge simboli differenti sui nastri N 2 ed N 1, allora la quintupla che sta scandendo su N 2 non è quella da eseguire; pertanto, la testina di N 1 si muove a sinistra fino a posizionarsi all inizio del simbolo di input che stava scandendo, e la testina di N 2 si muove a destra fino a raggiungere il primo simbolo successivo al primo * che incontra e, se tale simbolo non è, entra nello stato q 0, altrimenti entra nello stato di rigetto. Decriviamo prima le quintuple in cui viene riavvolto il nastro N 1 : q statocorrettob,(x,y,z),(x,y,z),q riavvolgin1,(sinistra, f erma, f erma) x,y,z Σ : x y q riavvolgin1,(x,y,z),(x,y,z),q riavvolgin1,(sinistra, f erma, f erma) x Σ { } y,z Σ q riavvolgin1,(,y,z),(,y,z),q prossimaquintupla,(destra,destra, f erma) z Σ y Σ { }. Nell ultima istruzione sopra inizia il movimento della testina di N 2, che continua come segue q prossimaquintupla,(x,y,z),(x,y,z),q prossimaquintupla,( f erma,destra, f erma) x,z Σ y Σ { } q prossimaquintupla,(x,,z),(x,,z),q quintuplefinite?,( f erma,destra, f erma) x,z Σ q prossimaquintupla,(x,y,z),(x,y,z),q 0,( f erma, f erma, f erma) x,y,z Σ q quintuplefinite?,(x,,z),(x,,z),q rigetto,( f erma, f erma, f erma) x,z Σ. (b) se nello stato q 0 legge simboli differenti sui nastri N 2 ed N 3, allora la quintupla che sta scandendo su N 2 non è quella da eseguire; pertanto, sposta la testina di N 3 a sinistra fino a posizionarla sul primo simbolo a destra del carattere e sposta la testina di N 2 a destra fino a posizionarla sul primo simbolo successivo al primo che incontra e, se tale simbolo non è, entra nello stato q 0, altrimenti entra nello stato di rigetto: q 0,(a,x,y),(a,x,y),q riavvolgin3,( f erma, f erma,sinistra) a Σ { }, x,y Σ : x y q riavvolgin3,(a,x,y),(a,x,y),q riavvolgin3,( f erma, f erma,sinistra) a Σ, x Σ y {0,1} q riavvolgin3,(,x,y),(,x,y),q prossimaquintupla,( f erma, f erma,destra) x Σ y {0,1}. Informatica Teorica, 2010/2011 Macchina di Turing Universale 3

4 2) nello stato q scrivi, inizia l esecuzione della quintupla che ha individuato sul nastro N 2 scrivendo il nuovo simbolo su N 1 : dunque, nello stato q scrivi, copia su N 1 la sequenza di χ 0 e 1, riavvolge il nastro N 2 di χ posizioni e poi entra nello stato q cambiastato con la testina di N 2 che posizionata sul primo carattere che descrive lo stato in cui T deve entrare q scrivi,(a,x,y),(x,x,y),q scrivi,(destra,destra, f erma) a Σ { }, x Σ { } y Σ q scrivi,(,,y),(,,y),q scritto,(sinistra,destra, f erma) y Σ q scritto,(a,x,y),(a,x,y),q scritto,(sinistra, f erma, f erma) a Σ { }, x,y Σ q scritto,(,x,y),(,x,y),q cambiastato,(destra, f erma, f erma) x Σ { } y Σ. 3) nello stato q cambiastato, prosegue l esecuzione della quintupla che ha individuato sul nastro N 2 modificando il contenuto del nastro N 3 : dunque, nello stato q cambiastato, scrive su N 3 la sequenza di χ caratteri che legge su N 2, riavvolge il nastro N 3 ed entra nello stato q muovi con la testina di N 2 posizionata sul primo simbolo che descrive il movimento che T deve eseguire q cambiastato,(a,x,y),(a,x,x),q scrivi,( f erma,destra,destra) a Σ, x,y {0,1,B} q cambiastato,(a,, ),(a,, ),q statocambiato,( f erma,destra,sinistra) a Σ q statocambiato,(a,x,y),(a,x,y),q statocambiato,( f erma, f erma,sinistra) a Σ, x Σ y {0,1,B} q statocambiato,(a,x, ),(a,x, ),q muovi,( f erma, f erma,destra) a Σ, x Σ. 4) nello stato q muovi, termina l esecuzione della quintupla che ha individuato sul nastro N 2 muovendo opportunamente la testina del nastro N 1. Se il carattere letto sul nastro N 2 è 0, allora non deve spostare la testina di N 1 e, semplicemente, entra nello stato q mosso : q muovi,(a,0,y),(a,0,y),q mosso,( f erma, f erma, f erma) a Σ, y Σ. Se il carattere letto sul nastro N 2 è 1, è necessario capire quale sia il carattere successivo per entrare nello stato q destra oppure q sinistra : q muovi,(a,1,y),(a,1,y),q prossimobit,( f erma,destra, f erma) a Σ, y Σ q prossimobit,(a,0,y),(a,0,y),q sinistra,( f erma, f erma, f erma) a Σ, y Σ q prossimobit,(a,1,y),(a,1,y),q destra,( f erma, f erma, f erma) a Σ, y Σ. Nello stato q destra, muove a destra la testina di N 1 fino a posizionarla sul carattere successivo al primo che incontra: q destra,(a,x,y),(a,x,y),q destra,(destra, f erma, f erma) a Σ { }, x,y Σ q destra,(,x,y),(,x,y),q riavvolgi,(destra, f erma, f erma) x,y Σ. Nello stato q sinistra, muove a sinistra la testina di N 1 fino a posizionarla sul carattere precedente al primo che incontra: se tale carattere non è si muove a destra di due posizioni (posizionandosi sul primo carattere a Informatica Teorica, 2010/2011 Macchina di Turing Universale 4

5 destra di ), altrimenti scrive una sequenza di χ B preceduta da e poi si posiziona sul primo carattere 0 o 1 a destra che incontra q sinistra,(a,x,y),(a,x,y),q sinistra,(sinistra, f erma, f erma) a Σ { }, x,y Σ q sinistra,(,x,y),(,x,y),q primosimbolo?,(sinistra, f erma, f erma) x,y Σ q primosimbolo?,(a,x,y),(a,x,y),q destra,(destra, f erma, f erma) a Σ x,y Σ q primosimbolo?,(,x,y),(b,x,y),q k,(destra, f erma, f erma) x,y Σ q i,(,x,y),(b,x,y),q i 1,(destra, f erma, f erma) x,y Σ i = 2,...,k q 1,(,x,y),(,x,y),q destra,(destra, f erma, f erma) x,y Σ. 5) nello stato q riavvolgi, riposiziona la testina del nastro N 2 sul primo carattere in esso contenuto: rimane nello stato q riavvolgi muovendo a sinistra la testina di N 2 fino a quando non legge un (o B) su N 2 e poi entra nello stato q 0 muovendo a destra la testina di N 2 : q riavvolgi,(a,x,y),(a,x,y),q riavvolgi,( f erma,sinistra, f erma) a,x,y Σ q riavvolgi,(,x,y),(b,x,y),q 0,( f erma,destra, f erma) x,y Σ q riavvolgi,(b,x,y),(b,x,y),q 0,( f erma,destra, f erma) x,y Σ. Informatica Teorica, 2010/2011 Macchina di Turing Universale 5

Macchine di Turing: somma di due numeri

Macchine di Turing: somma di due numeri Informatica Teorica 2/2 M.Di Ianni Macchine di Turing: somma di due numeri Vogliamo definire una macchina di Turing che, presi in input due numeri n e m espressi in notazione binaria, calcola il valore

Dettagli

Macchine di Turing e TM Universale

Macchine di Turing e TM Universale Fondamenti di Informatica - modulo 2 2014/2015 M.Di Ianni Macchine di Turing e TM Universale Indice 2.1 Qualche definizione, per cominciare................................... 2 2.2 Trasduttori e riconoscitori.........................................

Dettagli

ITLCC 2006/10/6 19:09 page 7 #3

ITLCC 2006/10/6 19:09 page 7 #3 ITLCC 2006/10/6 19:09 page 7 #3 Capitolo 2 Macchine di Turing SOMMARIO In questo capitolo introdurremo il modello di calcolo proposto dal logico matematico inglese Alan Turing, in un suo famoso articolo

Dettagli

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza Macchine di Turing Argomenti della lezione Definizione della macchina di Turing Riconoscimento e accettazione di linguaggi Macchine a più nastri La macchina di Turing èun è automa che può leggere e scrivere

Dettagli

Macchine di TURING. Alan Mathison Turing ( )

Macchine di TURING. Alan Mathison Turing ( ) Macchine di TURING Alan Mathison Turing (1912 1954) Macchine di TURING Alan Mathison Turing (1912 1954) matematico, logico e crittanalista britannico, considerato uno dei padri dell informatica e uno dei

Dettagli

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29 Macchine di Turing Francesco Paoli Istituzioni di logica, 2016-17 Francesco Paoli (Istituzioni di logica, 2016-17) Macchine di Turing 1 / 29 Alan M. Turing (1912-1954) Francesco Paoli (Istituzioni di logica,

Dettagli

Funzioni calcolabili e linguaggi decidibili

Funzioni calcolabili e linguaggi decidibili Informatica Teorica 2012/2013 M.Di Ianni Funzioni calcolabili e linguaggi decidibili Abbiamo definito i concetti di accettabilità e decidibiltà di un linguaggio, che sono correlati al modello di macchina

Dettagli

Fondamenti di informatica Esercizi Svolti Macchine di Turing. Realizzati da: Roberto Quaranta Matr

Fondamenti di informatica Esercizi Svolti Macchine di Turing. Realizzati da: Roberto Quaranta Matr Fondamenti di informatica Esercizi Svolti Macchine di Turing Realizzati da: Roberto Quaranta Matr. 449028 Macchina di Turing che calcola la funzione Max(x, y) Q= {q 0, q 1, q 2, q 3, q 4, q 5, q 6,q F

Dettagli

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi Sommario Codifica dei dati Macchina Astratta Definizioni Esempi 1 2 Codifica dei dati È possibile introdurre la teoria della computabilità facendo riferimento ad algoritmi che elaborano numeri naturali

Dettagli

Esercizi: Macchine di Turing

Esercizi: Macchine di Turing Informatica Teorica 2016/2017 M.Di Ianni Esercizi: Macchine di Turing 1 Problemi Problema 2.1: Sia L l insieme delle stringhe s = x 1 x 2...x n di lunghezza pari e tali che: x i {a,b}, per i = 1,...,n/2;

Dettagli

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI ELEMENTI DI PROGRAMMAZIONE a.a. 22/3 MACCHINE, ALGORITMI, PROGRAMMI Andrea Prevete, UNINA2 23 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a stati finiti)... macchine di

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

Macchina di Turing ... !!... !!! a b b! b a! Nastro di Input. testina. s t q i. s r. Unità di Controllo q j S / D / F

Macchina di Turing ... !!... !!! a b b! b a! Nastro di Input. testina. s t q i. s r. Unità di Controllo q j S / D / F Macchina di Turing Nastro di Input...!!! a b b! b a! testina!!... s r s t q i Unità di Controllo q j Q S / D / F P Definizione Formale Una macchina di Turing deterministica è una sestupla

Dettagli

Concetti di base sugli automi e sui linguaggi formali

Concetti di base sugli automi e sui linguaggi formali Concetti di base sugli automi e sui linguaggi formali Andrea Burattin 18 marzo 2005 Sommario Piccolo insieme di concetti sul funzionamento degli automi (a stati finiti, a pila,...), delle grammatiche libere

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

Informatica Generale Homework di Recupero 2016

Informatica Generale Homework di Recupero 2016 Informatica Generale Homework di Recupero 016 docente: Ivano Salvo Sapienza Università di Roma Gruppo 1 Esercizio 1.1 Scrivere un programma C che presi in input due interi positivi a ed b (a, b > 0) calcola

Dettagli

Turing, i nastri e le macchine

Turing, i nastri e le macchine Turing, i nastri e le macchine Giochiamo con i nastri Avete a disposizione un nastro diviso in sezioni rettangolari, che chiameremo caselle, ognuna delle quali può essere vuota oppure contenere la lettera

Dettagli

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd Fondamenti d Informatica: Le Macchine di Turing Barbara Re, Phd Esercizio 1 } Consideriamo una MdT che modifica una sequenza di A rimpiazzando ogni A in posizione dispari con una B (la prima A ha posizione

Dettagli

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione Problemi che i calcolatori non possono risolvere E importante sapere se un programma e corretto, cioe fa uello che ci aspettiamo. E facile vedere che il programma Ma il programma in Fig. 8.2 del libro?

Dettagli

Turing cercò di fornire una risposta matematica al problema CHE COSA SIGNIFICA CALCOLARE?

Turing cercò di fornire una risposta matematica al problema CHE COSA SIGNIFICA CALCOLARE? STORIA DELLE CONOSCENZE SCIENTIFICHE SULL UOMO E SULLA NATURA a.a. 2016 2017 Prof. Roberto Giuntini, PhD. Introduzione alla storia dell intelligenza artificiale e della robotica Modulo II: Le macchine

Dettagli

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo

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

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd Fondamenti d Informatica: Le Macchine di Turing Barbara Re, Phd Agenda } Introdurremo } il formalismo delle Macchine di Turing nelle varie versioni } la nozione di calcolabilità e di decidibilità 2 La

Dettagli

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

L AUTOMA ESECUTORE L AUTOMA ESECUTORE L AUTOMA ESECUTORE Metodo Risolutivo (algoritmo) Un automa capace di ricevere dall esterno una descrizione dello algoritmo richiesto DATI Esecutore RISULTATI cioè capace di interpretare un linguaggio (linguaggio

Dettagli

Principio di composizione delle MT

Principio di composizione delle MT Principio di composizione delle MT La definizioni date fanno riferimento a situazioni in cui la macchina sia capace di risolvere problemi singoli. E possibile far sì che macchine progettate per problemi

Dettagli

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE ELEMENTI DI PROGRAMMAZIONE a.a. 23/4 UNA GERARCHIA DI MACCHINE Andrea Prevete, UNINA2 24 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a numero finito di stati)... macchine

Dettagli

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi:

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: Pag 24 3) Il problema della ricerca Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: si incontrano in una grande varietà di situazioni reali; appaiono come sottoproblemi

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

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

L AUTOMA ESECUTORE L AUTOMA ESECUTORE L AUTOMA ESECUTORE DATI Esecutore Metodo Risolutivo (algoritmo) RISULTATI Un automa capace di ricevere dall esterno una descrizione dello algoritmo richiesto cioè capace di interpretare un linguaggio (linguaggio

Dettagli

Informatica Teorica. Macchine a registri

Informatica Teorica. Macchine a registri Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire

Dettagli

Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a.

Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a. Fondamenti di Informatica Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a. 2011-2012 Algoritmo L algoritmo è una sequenza finita di istruzioni, mediante le quali un qualunque operatore

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

Prof. A.Venia. Docente d Informatica presso l I.I.S.S. Ven. I. Capizzi Liceo Scientifico - Bronte. Macchine di Turing. Avvertenze

Prof. A.Venia. Docente d Informatica presso l I.I.S.S. Ven. I. Capizzi Liceo Scientifico - Bronte. Macchine di Turing. Avvertenze Macchine di Turing Avvertenze Per ogni esercizio viene proposto oltre al testo, la matrice funzionale, il grafo orientato, un esempio con il valore iniziale e quello finale e, inoltre, una breve descrizione.

Dettagli

MODULO 07 LA MACCHINA DI TURING

MODULO 07 LA MACCHINA DI TURING MODULO 07 LA MACCHINA DI TURING Nel 1936 Alan Turing presenta una definizione di computabilità basata sull osservazione del comportamento di un agente umano che sta eseguendo un calcolo (algoritmo) con

Dettagli

PARTE III MACCHINE A REGISTRI

PARTE III MACCHINE A REGISTRI PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson

Dettagli

Quiz sui linguaggi regolari

Quiz sui linguaggi regolari Fondamenti dell Informatica 1 semestre Quiz sui linguaggi regolari Prof. Giorgio Gambosi a.a. 2016-2017 Problema 1: Data l espressione regolare a, definita su {a, b}, descrivere il linguaggio corrispondente

Dettagli

Il concetto di calcolatore e di algoritmo

Il concetto di calcolatore e di algoritmo Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica

Dettagli

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD Macchine RAM API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD 2 Macchina RAM 3 Esercizio Si consideri il linguaggio definito da: L = wcw R w a, b } 1. Codificare un programma RAM per il riconoscimento

Dettagli

PARTE III MACCHINE A REGISTRI

PARTE III MACCHINE A REGISTRI PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 3.1 MACCHINE A REGISTRI 1 (RAM: Random Access Machines) Introdotte da Shepherdson

Dettagli

PARTE III MACCHINE A REGISTRI

PARTE III MACCHINE A REGISTRI PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson

Dettagli

Esercizio. Sia a R non nullo e siano m, n numeri interi non nulli con m n. Allora a m /a n è uguale a. [1] 1/a n m [2] 1/a m n [3] 1/a n m [4] a n m

Esercizio. Sia a R non nullo e siano m, n numeri interi non nulli con m n. Allora a m /a n è uguale a. [1] 1/a n m [2] 1/a m n [3] 1/a n m [4] a n m Sia a R non nullo e siano m, n numeri interi non nulli con m n. Allora a m /a n è uguale a [1] 1/a n m [2] 1/a m n [3] 1/a n m [4] a n m Vale la [1] perché per le proprietà delle potenze risulta a m a

Dettagli

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso Laboratorio di Informatica Esercitazione su algoritmi e diagrammi di flusso Algoritmi, programmi e dati Algoritmo = insieme di istruzioni che indicano come svolgere operazioni complesse su dei dati attraverso

Dettagli

Proprieta dei Linguaggi Regolari. Proprieta dei Linguaggi Regolari

Proprieta dei Linguaggi Regolari. Proprieta dei Linguaggi Regolari roprieta dei Linguaggi Regolari Pumping Lemma. Ogni linguaggio regolare soddisfa una proprieta ben nota, il pumping lemma. Questa tecnica fornisce uno strumento utile per dimostrare che un linguaggio non

Dettagli

Lezione 1: problemi, modelli di calcolo, algoritmi

Lezione 1: problemi, modelli di calcolo, algoritmi Lezione : problemi, modelli di calcolo, algoritmi Miriam Di Ianni 3 gennaio 0 Problemi e algoritmi Cosa è un problema come lo conosciamo: un insieme di dati ed una domanda. Esempio. La somma delle lunghezze

Dettagli

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 macchine di Turing a nastro singolo macchine di Turing multinastro macchine di Turing trasduttrici

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

La macchina di Turing

La macchina di Turing La macchina di Turing (Esercitazione) I. Frosio AIS Lab. frosio@dsi.unimi.it 1/32 Cosa è la macchina di Turing? Algoritmo: sequenza di istruzioni elementari che termina in un numero finito di passi; Macchina

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

Linguaggi formali e compilazione

Linguaggi formali e compilazione Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2014/2015 Linguaggi formali e compilazione sul corso Sito web: http://algogroup.unimore.it/people/mauro/dida/2014-2015 / Ricevimento:

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

UNA GERARCHIA DI MACCHINE

UNA GERARCHIA DI MACCHINE ELEMENTI DI PROGRAMMAZIONE a.a. 2015/16 UNA GERARCHIA DI MACCHINE UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a numero finito di stati)... macchine di Turing Macchine di

Dettagli

ALGORITMI: PROPRIETÀ FONDAMENTALI

ALGORITMI: PROPRIETÀ FONDAMENTALI ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse

Dettagli

I.3 Porte Logiche. Elisabetta Ronchieri. Ottobre 13, Università di Ferrara Dipartimento di Economia e Management. Insegnamento di Informatica

I.3 Porte Logiche. Elisabetta Ronchieri. Ottobre 13, Università di Ferrara Dipartimento di Economia e Management. Insegnamento di Informatica I.3 Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti 1 2 3 Elaboratore Hardware È il mezzo con il quale l informazione è elaborata. Software

Dettagli

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio Appunti di informatica Lezione 3 anno accademico 2015-2016 Mario Verdicchio Numeri binari in memoria In un calcolatore, i numeri binari sono tipicamente memorizzati in sequenze di caselle (note anche come

Dettagli

è organizzata a byte;

è organizzata a byte; Appunti di Calcolatori Elettronici nterpretazione degli indirizzi di memoria ntroduzione: Big Endian e Little Endian Ci chiediamo il modo in cui venga interpretato un indirizzo di memoria, ossia sostanzialmente

Dettagli

I POLINOMI. La forma normale di un polinomio. Un polinomio è detto in FORMA NORMALE se in esso non compaiono monomi simili.

I POLINOMI. La forma normale di un polinomio. Un polinomio è detto in FORMA NORMALE se in esso non compaiono monomi simili. I POLINOMI Un polinomio è una somma algebrica tra monomi Sono polinomi le seguenti espressioni 2ab + 4bc -5a 2 b + 2ab - 5c 5x + 2y + 8x in esse infatti troviamo somme o differenze tra monomi La forma

Dettagli

Introduzione agli Algoritmi

Introduzione agli Algoritmi Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è un insieme vuoto

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 Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Nome..Cognome.Matr. Laureando Avvisi importanti Il tempo a disposizione è di 1 ora e 30 minuti. Se non verranno risolti

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Automi a Pila e Grammatiche Libere dal Contesto. Automi a Pila e Grammatiche Libere dal Contesto

Automi a Pila e Grammatiche Libere dal Contesto. Automi a Pila e Grammatiche Libere dal Contesto utomi a Pila Un automa a pila (PDA) e una estensione degli automi a stati finiti, che ha una memoria (una pila) Vedremo due modi equivalenti per definire il linguaggio accettato da un PDA Vedremo che la

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Sistemi di numerazione posizionali La rappresentazione dei numeri richiede ovviamente una codifica, ovvero la definizione

Dettagli

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

Appunti di informatica. Lezione 4 anno accademico 2015-2016 Mario Verdicchio Appunti di informatica Lezione 4 anno accademico 2015-2016 Mario Verdicchio Numeri primi Si definisce primo un numero intero maggiore di 1 che ha due soli divisori: se stesso e 1 Esempi di numeri primi:

Dettagli

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Dettagli

Esercizio FAT 1. Soluzione: 1. Capacità del disco: 2 24 blocchi (3 byte=24 bit) 2

Esercizio FAT 1. Soluzione: 1. Capacità del disco: 2 24 blocchi (3 byte=24 bit) 2 Esercizio FAT 1 In un disco con blocchi di 1 Kbyte (= 2 10 byte), è definito un file system FAT. Gli elementi della FAT sono in corrispondenza biunivoca con i blocchi fisici del disco. Ogni elemento ha

Dettagli

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari Esercizi di Fondamenti di Informatica per la sicurezza tefano Ferrari 23 dicembre 2003 2 Argomento 1 Grammatiche e linguaggi Esercizi Es. 1.1 Definiti i linguaggi: L 1 = {aa, ab, bc, c} L 2 = {1, 22, 31}

Dettagli

carattere a b c d e f cod. var

carattere a b c d e f cod. var Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un altra Ogni codice a lunghezza fissa è ovviamente prefisso. Ma anche il codice a lunghezza variabile

Dettagli

Fondamenti di Informatica per la Sicurezza a.a. 2008/09. Automi. Stefano Ferrari. Unautomaastatifinitièunmodellomatematico caratterizzato da:

Fondamenti di Informatica per la Sicurezza a.a. 2008/09. Automi. Stefano Ferrari. Unautomaastatifinitièunmodellomatematico caratterizzato da: Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Automi Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università degli Studi di Milano

Dettagli

Elaborazione dell informazione

Elaborazione dell informazione Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione

Dettagli

Linguaggi formali e compilazione

Linguaggi formali e compilazione Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2015/2016 Linguaggi formali e compilazione sul corso Sito web: http://algogroup.unimore.it/people/mauro/dida/2015-2016 / Ricevimento:

Dettagli

Lezione 6 programmazione in Java

Lezione 6 programmazione in Java Lezione 6 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi

Dettagli

Programmazione I Paolo Valente /2017. Lezione 6. Notazione posizionale

Programmazione I Paolo Valente /2017. Lezione 6. Notazione posizionale Lezione 6 Notazione posizionale Ci sono solo 10 tipi di persone al mondo: quelle che conoscono la rappresentazione dei numeri in base 2, e quelle che non la conoscono... Programmazione I Paolo Valente

Dettagli

Calcolare x n = x x x (n volte)

Calcolare x n = x x x (n volte) Calcolare x n = x x x (n volte) Abbiamo bisogno di: una variabile ris in cui ad ogni iterazione del ciclo si ha un risultato parziale, e che dopo l ultima iterazione contiene il risultato finale; una variabile

Dettagli

Dispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR:

Dispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR: Dispensa 2 2.1 Costruzione Parsing Table LR: generalità Come tutti i parser tabellari predittivi, anche i parser LR possono essere applicati solo a parsing table senza conflitti (ossia entrate multiple)

Dettagli

strutture e file di testo/binari Esercizio - lettura/filtro/scrittura PEOPLE.TXT PARTNERS.DAT Due persone sono compatibili

strutture e file di testo/binari Esercizio - lettura/filtro/scrittura PEOPLE.TXT PARTNERS.DAT Due persone sono compatibili Fondamenti di Informatica T-1 modulo 2 Laboratorio 06: strutture e file di testo/binari 1 Esercizio i 1: Strutture tt e file Esercizio - lettura/filtro/scrittura È dato un file di testo PEOPLE.TXT che

Dettagli

Algoritmi e Strutture Dati - II modulo Soluzioni degli esercizi

Algoritmi e Strutture Dati - II modulo Soluzioni degli esercizi Algoritmi e Strutture Dati - II modulo Soluzioni degli esercizi Francesco Pasquale 6 maggio 2015 Esercizio 1. Su una strada rettilinea ci sono n case nelle posizioni 0 c 1 < c 2 < < c n. Bisogna installare

Dettagli

Rappresentazione dell Informazione

Rappresentazione dell Informazione Rappresentazione dell Informazione Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali Rappresentazione del testo Una stringa di bit per ogni simbolo

Dettagli

La tesi di Church-Turing

La tesi di Church-Turing ITLCC 2006/11/12 21:06 page 79 #3 Capitolo 5 La tesi di Church-Turing SOMMARIO Sebbene il concetto di algoritmo abbia avuto una lunga storia nel campo della matematica, il concetto formale di algoritmo

Dettagli

Architettura di un Computer

Architettura di un Computer Architettura di un Computer Corso Informatica Generale (matr. Dispari) Dott.ssa Rossella Aiello Dipartimento di Informatica 2 Bibliografia Curtin, Foley, Sen, Morin Informatica di base, Mc Graw Hill IV

Dettagli

11.4 Chiusura transitiva

11.4 Chiusura transitiva 6 11.4 Chiusura transitiva Il problema che consideriamo in questa sezione riguarda il calcolo della chiusura transitiva di un grafo. Dato un grafo orientato G = hv,ei, si vuole determinare il grafo orientato)

Dettagli

STRINGHE di un ALFABETO. Consideriamo un alfabeto di simboli V V è un insieme finito e non vuoto. Alfabeto della lingua inglese I={a,b,c,..

STRINGHE di un ALFABETO. Consideriamo un alfabeto di simboli V V è un insieme finito e non vuoto. Alfabeto della lingua inglese I={a,b,c,.. STRINGHE di un ALFABETO Consideriamo un alfabeto di simboli V V è un insieme finito e non vuoto Alfabeto binario A={0,1} Alfabeto della lingua inglese I={a,b,c,..z} Stringhe o parole Gli elementi di V

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

Dall algoritmo al programma

Dall algoritmo al programma Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione

Dettagli

Strutture di controllo iterative

Strutture di controllo iterative Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione Problema Scrivere un programma che acquisisca da standard input un intero

Dettagli

ESERCIZI SULLA TECNICA BACKTRACKING e BRANCH & BOUND

ESERCIZI SULLA TECNICA BACKTRACKING e BRANCH & BOUND ESERCIZI SULLA TECNICA BACKTRACKING e BRANCH & BOUND 1. [ STRINGHE] Scrivere in pseudo-codice una procedura che, preso in input un intero n, stampi tutte le stringhe di lunghezza minore o uguale ad n sull

Dettagli

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) 1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano

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

Sistemi di numerazione

Sistemi di numerazione Sistemi di numerazione Introduzione Un sistema di numerazione è un sistema utilizzato per esprimere i numeri e possibilmente alcune operazioni che si possono effettuare su di essi. Storicamente i sistemi

Dettagli

Algebra di Commutazione

Algebra di Commutazione Algebra di Commutazione Maurizio Palesi Maurizio Palesi 1 Algebra Booleana - Introduzione Per descrivere i dispositivi digitali è necessario avere: Un modello che permette di rappresentare insiemi di numeri

Dettagli

Introduzione: informatica. 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco

Introduzione: informatica. 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco Introduzione: informatica 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco Indice - di cosa si occupa l informatica - una definizione della scienza informatica - cosa è un

Dettagli

Le macchine di Turing

Le macchine di Turing Le macchine di Turing Alan Turing (1912-1954) 1954) Il problema della decisione i L Entscheidungsproblem [il problema della decisione] è risolto se si conosce una procedura che permette di decidere la

Dettagli

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere

Dettagli

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo

Dettagli

Note per la Lezione 6 Ugo Vaccaro

Note per la Lezione 6 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 6 Ugo Vaccaro Ancora sulla tecnica Programmazione Dinamica Nella lezione scorsa abbiamo appreso che la tecnica Divide-et-Impera,

Dettagli

AUTOMI A PILA. M.P. Schutzenberger

AUTOMI A PILA. M.P. Schutzenberger UTOMI PIL Introdotti da. G. Oettinger in utomatic Syntactic nalysis and the pushdown store Proc. Symp. pplied Math., 1961 e da M.P. Schutzenberger in Context free languages and pushdown automata Information

Dettagli

Algoritmi e Principi dell Informatica

Algoritmi e Principi dell Informatica Algoritmi e Principi dell Informatica Appello del 2 Marzo 2015 Chi deve sostenere l esame integrato (API) deve svolgere tutti gli esercizi in 2 ore e 30 minuti. Chi deve sostenere solo il modulo di Informatica

Dettagli

La Macchina RAM Shepherdson e Sturgis (1963)

La Macchina RAM Shepherdson e Sturgis (1963) La Macchina RAM Shepherdson e Sturgis (963) Nastro di ingresso.......... PROGRAM COUNTER Nastro di uscita PROGRAMMA ACCUMULATORE UNITA' ARITMETICA............... 2 3 4 M E M O R I A Formato delle Istruzioni

Dettagli

Prodotti notevoli Quadrato di un binomio

Prodotti notevoli Quadrato di un binomio Prodotti notevoli Con l espressione prodotti notevoli si indicano alcune identità che si ottengono in seguito alla moltiplicazione di polinomi aventi caratteristiche particolari facili da ricordare.. Quadrato

Dettagli

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

Dettagli