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

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

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

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

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

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

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

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

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

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

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

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. [email protected] 1/32 Cosa è la macchina di Turing? Algoritmo: sequenza di istruzioni elementari che termina in un numero finito di passi; Macchina

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

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

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

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 ([email protected])

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

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

Lezione 6 programmazione in Java

Lezione 6 programmazione in Java Lezione 6 programmazione in Java Nicola Drago [email protected] 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

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

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

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

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

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

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