Macchina di Turing Universale
|
|
- Anna Mazzoni
- 6 anni fa
- Visualizzazioni
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
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
DettagliMacchine 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.........................................
DettagliITLCC 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
DettagliInformatica 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
DettagliMacchine 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
DettagliMacchine 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,
DettagliFunzioni 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
DettagliFondamenti 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
DettagliSommario 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
DettagliEsercizi: 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;
DettagliELEMENTI 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
DettagliElementi 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
DettagliMacchina 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
DettagliConcetti 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
DettagliLe 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
DettagliInformatica 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
DettagliTuring, 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
DettagliFondamenti 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
DettagliMa 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?
DettagliTuring 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
DettagliCapitolo 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
DettagliVarianti 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
DettagliFondamenti 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
DettagliL 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
DettagliPrincipio 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
DettagliELEMENTI 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
DettagliNell 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
DettagliEsercizio 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
DettagliL 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
DettagliInformatica 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
DettagliFondamenti 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
DettagliMacchine 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
DettagliProf. 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.
DettagliMODULO 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
DettagliPARTE 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
DettagliQuiz 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
DettagliIl 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
DettagliMacchine 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
DettagliPARTE 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
DettagliPARTE 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
DettagliEsercizio. 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
DettagliLaboratorio 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
DettagliProprieta 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
DettagliLezione 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
Dettagliacuradi 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
Dettagliun 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
DettagliLa 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
DettagliProgetto 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
DettagliLinguaggi 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:
DettagliProblemi, 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
DettagliUNA 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
DettagliALGORITMI: 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
DettagliI.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
DettagliAppunti 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;
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
DettagliI 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
DettagliIntroduzione 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
DettagliInformatica/ 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
DettagliLa 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}*
DettagliAlgoritmi 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
DettagliAppunti 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)
DettagliAutomi 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
DettagliElementi 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
DettagliAppunti 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:
DettagliUn 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
DettagliEsercizio 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
DettagliEsercizi 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}
Dettaglicarattere 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
DettagliFondamenti 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
DettagliElaborazione 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
DettagliLinguaggi 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:
DettagliLezione 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
DettagliProgrammazione 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
DettagliCalcolare 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
DettagliDispensa 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)
Dettaglistrutture 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
DettagliAlgoritmi 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
DettagliRappresentazione 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
DettagliLa 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
DettagliArchitettura 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
Dettagli11.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)
DettagliSTRINGHE 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
DettagliTipologie 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
DettagliDall 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
DettagliStrutture 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
DettagliESERCIZI 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
DettagliELABORAZIONE 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
DettagliProb(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
DettagliSistemi 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
DettagliAlgebra 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
DettagliIntroduzione: 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
DettagliLe 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
DettagliCorso 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
DettagliCapitolo 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
DettagliNote 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,
DettagliAUTOMI 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
DettagliAlgoritmi 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
DettagliLa 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
DettagliProdotti 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
DettagliCosa 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