Le macchine di Turing



Похожие документы
Le Macchine di Turing

Esercizio su MT. Svolgimento

Appunti sulla Macchina di Turing. Macchina di Turing

Algoritmi e Complessità

Varianti Macchine di Turing

La macchina universale

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Elementi di Informatica e Programmazione

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 6

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

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Fondamenti di Informatica. Computabilità e Macchine di Turing. Prof. Franco Zambonelli Gennaio 2011

L interesse nella macchina di Turing

Le parole dell informatica: modello di calcolo, complessità e trattabilità

G3. Asintoti e continuità

La pista del mio studio Riflettiamo sulla pista. Guida per l insegnante

Il principio di induzione e i numeri naturali.

Dimensione di uno Spazio vettoriale

Leggere un messaggio. Copyright 2009 Apogeo

Introduzione alla programmazione in C

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Dispense di Informatica per l ITG Valadier

Schemi delle Lezioni di Matematica Generale. Pierpaolo Montana

Intelligenza Artificiale

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

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

OSSERVAZIONI TEORICHE Lezione n. 4

Registri. «a2» Copyright Daniele Giacomini --

Automi. Sono così esempi di automi una lavatrice, un distributore automatico di bibite, un interruttore, una calcolatrice tascabile,...

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

Politecnico di Milano Facoltà di Ingegneria dell Informazione AGENTI AUTONOMI E SISTEMI MULTIAGENTE Appello COGNOME E NOME

un nastro di carta prolungabile a piacere e suddiviso in celle vuote o contenenti al più un unico carattere;

Elementi di Architettura e Sistemi Operativi. problema punti massimi i tuoi punti problema 1 6 problema 2 7 problema 3 7 problema 4 10 totale 30

Gestionalino-Base è un Software che gestisce altri Software Specifici progettati per

4 3 4 = 4 x x x 10 0 aaa

I PROBLEMI ALGEBRICI

Esempi di algoritmi. Lezione III

Anno 3. Funzioni: dominio, codominio e campo di esistenza

Fasi di creazione di un programma

Teoria dei Giochi. Anna Torre

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

ESEMPIO 1: eseguire il complemento a 10 di 765

Nozione di algoritmo. Gabriella Trucco

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

Linguaggi formali e compilazione

Capitolo 7: Teoria generale della calcolabilitá

INDICE mywellness key mywellness key mywellness key mywellness key mywellness key

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Misure di base su una carta. Calcoli di distanze

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

2. Semantica proposizionale classica

Tipologie di macchine di Turing

19. Inclusioni tra spazi L p.

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

Introduzione all Information Retrieval

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

istruzioni per l uso

Lo sviluppo del linguaggio l idea di lettura e scrittura e il numero nella scuola dell infanzia Marialuisa Antoniotti Claudio Turello

Adobe Flash CS5.5 e Web Animation. Lezione 7: introduzione ad ActionScript 3.0, livelli guida, realizzazione di un player audio in streaming

I sistemi di numerazione

a b c Figura 1 Generatori ideali di tensione

UNIVERSITÀ DEGLI STUDI DI TERAMO

Le funzioni continue. A. Pisani Liceo Classico Dante Alighieri A.S A. Pisani, appunti di Matematica 1

LABORATORIO DI MATEMATICA RENDITE, AMMORTAMENTI, LEASING CON EXCEL

Istruzioni per l uso del Catalogo di Ateneo (OPAC)

1. PRIME PROPRIETÀ 2

I M P O S T A R E U N A C C O U N T D I P O S T A C O N M O Z I L L A T H U N D E R B I R D

LE FUNZIONI A DUE VARIABILI

METODI per effettuare previsioni con analisi di tipo WHAT-IF

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

( x) ( x) 0. Equazioni irrazionali

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

Architettura di un computer

Origini e caratteristiche dei calcolatori elettronici

Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:

Laboratorio di Architettura degli Elaboratori A.A. 2015/16 Circuiti Logici

Percorsi di matematica per il ripasso e il recupero

Teoria degli insiemi

Osservazioni sulla continuità per le funzioni reali di variabile reale

Le query. Lezione 6 a cura di Maria Novella Mosciatti

Note Operative per Accedere alla Posta Elettronica Certificata (PEC) Obbligo Iscrizioni 2011

L amministratore di dominio

Dropbox di classe. É un servizio internet fornito gratuitamente (funzioni base).

Ricorsione. Rosario Culmone. - p. 1/13

Esercitazione del Analisi I

Cos è un Calcolatore?

INVIO SMS

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

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

LEZIONE 7. Esercizio 7.1. Quale delle seguenti funzioni è decrescente in ( 3, 0) e ha derivata prima in 3 che vale 0? x x2. 2, x3 +2x +3.

Транскрипт:

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 validità di una data espressione logica mediante un numero finito di operazioni. (D. Hilbert, W. Ackermann, Grundzüge der theoretischen Logik, Springer, Berlin (1928), ),pp pp. 72-3) Il problema è che non si sa esattamente cosa sia una procedura: la teoria formale degli algoritmi nasce proprio per rispondere a questa domanda

Alan Turing 1936: nozione di Macchina di Turing Si sostiene che qualsiasi problema risolvibile algoritmicamente sia risolvibilme mediante una macchina di Turing La nozione di Macchina di Turing fornisce una controparte formale della nozione intuitiva di procedura algoritmica 1950: Macchine calcolatrici e intelligenza Possono pensare le macchine? Turing (1950), Macchine calcolatrici e intelligenza, in La filosofia degli automi : origini dell intelligenza artificiale, a cura di Vittorio Somenzi e Roberto Cordeschi, pp. 167-193 (Disponibile in Biblioteca)

1936: l analisi li i dei processi di calcolo l Studio dei vincoli ai quali sottostà un generico agente razionale C impegnato in un processo di calcolo C dispone di una memoria e di capacità percettive limitate. Dispone inoltre di un supporto (un nastro di dimensioni potenzialmente infinite) su cui scrivere e leggere.

1936: l analisi li i dei processi di calcolo l Quali operazioni i può svolgere C? C può scrivere sul nastro dei simboli tratti da un alfabeto finito C può osservare delle caselle sul nastro (è ragionevole assumere che, a causa delle limitate capacità percettive e di memoria, esista un limite al numero di caselle osservabili simultaneamente) C è in grado di ricordare risultati determinati da passi precedenti della computazione e di utilizzare tale informazione nel seguito della computazione. Questa memoria costituisce i ciò che Turing definisce come gli stati interni di C (date le limitazioni percettive e di memoria di C, è ragionevole assumere che esista un numero finito di stati).

Verso le Macchine di Turing Queste condizioni vengono incorporate nella Macchina di Turing La Macchina di Turing è quindi una macchina che, se concordiamo con quanto detto finora, riproduce gli aspetti essenziali dei processi di calcolo

Le Macchine di Turing (MdT) Le MdT dispongono di un nastro di memoria, fatto a cellette, potenzialmente infinito (si può aggiungere o togliere agli estremi, all occorrenza) In ogni celletta è memorizzato un simbolo che fa parte di un alfabeto del nastro Γ in questo caso Γ = {0,1,a} 0 1 0 a 1 1 0 a 0 1 0

Dagli automi a pila alle MdT Differenze tra automi a pila e MdT Le MdT possono scorrere il nastro a destra e a sinistra Il nastro è potenzialmente infinito (si assume che sia possibile aggiungere e togliere frammenti di nastro all occorrenza) La MdT può entrare in qualsiasi momento in uno stato accetta o rifiuta 0 1 0 a 1 1 0 a 0 1 0

Le Macchine di Turing (MdT) A ogni istante, t la MdT è posizionata su una celletta di memoria assume un certo stato Funzione di transizione: sulla base del simbolo letto nella celletta corrente, e dello stato attuale, la MdT scrive un nuovo simbolo, rimpiazzando quello appena letto assume un nuovo stato (l insieme degli stati include accetta e rifiuta) ) si sposta a destra o a sinistra di una celletta stato corrente: q 3 a a b a b b b a b

Le Macchine di Turing (MdT) Esempio di it istruzione i di MdT (rappresentata tt come istanza it della funzione di transizione della MdT): Se ti trovi nello stato q 3 e leggi il simbolo b sul nastro, allora rimpiazza b con a, cambia il tuo stato in q 2, e spostati a destra stato corrente: q 3 a a b a ba b b a b

Ripasso: il prodotto cartesiano Il prodotto cartesiano degli insiemi i i A e B, che si indica idi con A B, è definito dalla seguente espressione: { (a, b) a A e b B} Come abbiamo già visto, questa definizione può essere generalizzata al caso in cui siano coinvolti più di due insiemi. Esempio: A B C è l insieme i {(a,b,c) a A, A b B, c C} ovvero: l insieme di tutte le triple (a b c) tali che il ovvero: l insieme di tutte le triple (a, b, c) tali che il primo elemento appartiene ad A, il secondo a B, il terzo a C

Definizione i i di una MdT Una MdT è una settupla (Q, Σ, Γ,, q 0, q accetta,q rifiuta ) tale che 1. Q è un insieme finito di stati 2. Σ è un insieme finito detto alfabeto dell ingresso che non contiene e il simbolo o 3. Γ è un insieme finito detto alfabeto del nastro tale che Γ e Σ Γ 4. : Q Γ Q Γ {L, R} è la funzione di transizione 5. q 0 Q è lo stato iniziale 6. q accetta Q è lo stato t accetta 7. q rifiuta Q è lo stato rifiuta (q accetta q rifiuta )

La funzione di transizione i nelle MdT : Q Γ Q Γ {L, R} insieme delle coppie (q, γ) ) insieme delle triple (q, γ, {L,R}) dove q è uno stato e γ è un simbolo del nastro dove q è uno stato, γ è un simbolo del nastro, e il terzo elemento è L o R mette in corrispondenza stato corrente e simbolo letto su nastro con uno stato, un simbolo, e un operazione spostati a destra o spostati a sinistra

La funzione di transizione i nelle MdT Esempio 1: (q 1, a) = (q 2, b, R) : Q Γ Q Γ {L, R} ovvero Se ti trovi nello stato q 1 e leggi il simbolo a sul nastro, assumi lo stato q 2, rimpiazza a con b, e spostati a destra a b, R q 1 q 2 q 1 a a b a b q 2 a b b a b

La funzione di transizione i nelle MdT Esempio 2: : Q Γ Q Γ {L, R} (q 1, a) = (q accetta, b, R) ovvero Se ti trovi nello stato q 1 e leggi il simbolo a sul nastro, assumi lo stato q accetta, rimpiazza a con b, e spostati a destra q 1 a b, R q accetta q 1 a a b a b q accetta a b b a b

La funzione di transizione i nelle MdT Esempio 3: (q 1, a) = (q 2,, R) : Q Γ Q Γ {L, R} ovvero Se ti trovi nello stato q 1 e leggi il simbolo a sul nastro, assumi lo stato q 2, rimpiazza a con, e spostati a destra a, R q 1 q 2 q 1 a a b a b q 2 a b a b

Automi finiti A RIEPILOGO differenze tra automi finiti,automi iti t i a pila e MdT 1 : Q Σ Q B Se sei nello stato A e leggi 1, assumi ilo stato t B Automi a pila A 1x y 1,x y B δ: Q Σ Γ Q Γ Se sei nello stato t A, leggi 1, e il simbolo più alto nella memoria è x, assumi lo stato B e rimpiazza x con y nella memoria Macchine di Turing 1 0,R : Q Γ Q Γ {L, R} A B gg, Se sei nello stato A e leggi 1, assumi lo stato B, rimpiazza 1 con 0, e vai a destra

Esempio di MdT Q = {q 1, q 2, q accetta,q rifiuta } Σ = {0,1} Γ = {0,1, } Funzione : (q 1,0)=(q 1,0,R) 0 0,R q1 1 1,R q2 1 1,R 0 1,R 1 R (q 1,1)=(q 2,1,R) 1,R (q )=(q,1,r) q 2, accetta, accetta (q 2,0)=(q accetta,1,r) (q 2,1)=(q 2,1,R) 1R) Descrizione formale di questa MdT: M = {Q,Σ, Γ,,q 1,q accetta,q rifiuta }

Esempio di MdT M = {Q,Σ, Σ Γ,,q 1,q accetta,q rifiuta } Q = {q 1, q 2, q accetta,q rifiuta } Σ = {0,1} 0 0,R 1 1,R Γ = {0,1, } 1 1,R Funzione : q1 q2 (q 1,0)=(q 1,0,R) (q 1,1)=(q 2,1,R) (q 2, )=(q accetta,1,r) (q 2,0)=(q accetta,1,r) 1R) (q 2,1)=(q 2,1,R) q accetta 0 1,R 1,RR q 1 0 1 1 1

Esempio di MdT M = {Q,Σ, Σ Γ,,q 1,q accetta,q rifiuta } Q = {q 1, q 2, q accetta,q rifiuta } Σ = {0,1} 0 0,R 1 1,R Γ = {0,1, } Funzione : (q 1,0)=(q 1,0,R) (q 1,1)=(q 2,1,R) (q 2, )=(q accetta,1,r) (q 2,0)=(q accetta,1,r) 1R) q1 1 1,R q accetta q2 0 1,R 1,RR (q 2,1)=(q 2,1,R) q 1 0 1 1 1

Esempio di MdT M = {Q,Σ, Σ Γ,,q 1,q accetta,q rifiuta } Q = {q 1, q 2, q accetta,q rifiuta } Σ = {0,1} 0 0,R 1 1,R Γ = {0,1, } Funzione : (q 1,0)=(q 1,0,R) (q 1,1)=(q 2,1,R) (q 2, )=(q accetta,1,r) (q 2,0)=(q accetta,1,r) 1R) q1 1 1,R q accetta q2 0 1,R 1,RR (q 2,1)=(q 2,1,R) q 2 0 1 1 1

Esempio di MdT M = {Q,Σ, Σ Γ,,q 1,q accetta,q rifiuta } Q = {q 1, q 2, q accetta,q rifiuta } Σ = {0,1} 0 0,R 1 1,R Γ = {0,1, } Funzione : (q 1,0)=(q 1,0,R) (q 1,1)=(q 2,1,R) (q 2, )=(q accetta,1,r) (q 2,0)=(q accetta,1,r) 1R) q1 1 1,R q accetta q2 0 1,R 1,RR (q 2,1)=(q 2,1,R) q 2 0 1 1 1

Esempio di MdT M = {Q,Σ, Σ Γ,,q 1,q accetta,q rifiuta } Q = {q 1, q 2, q accetta,q rifiuta } Σ = {0,1} 0 0,R 1 1,R Γ = {0,1, } Funzione : (q 1,0)=(q 1,0,R) (q 1,1)=(q 2,1,R) (q 2, )=(q accetta,1,r) (q 2,0)=(q accetta,1,r) 1R) q1 1 1,R q accetta q2 0 1,R 1,RR (q 2,1)=(q 2,1,R) q 2 0 1 1 1

Esempio di MdT M = {Q,Σ, Σ Γ,,q 1,q accetta,q rifiuta } Q = {q 1, q 2, q accetta,q rifiuta } Σ = {0,1} 0 0,R 1 1,R Γ = {0,1, } Funzione : (q 1,0)=(q 1,0,R) (q 1,1)=(q 2,1,R) (q 2, )=(q accetta,1,r) (q 2,0)=(q accetta,1,r) 1R) q1 1 1,R q accetta q2 0 1,R 1,RR (q 2,1)=(q 2,1,R) q accetta 0 1 1 1 1

MdT: accettare una stringa La MdT M si ferma quando entra nello stato q accetta o q rifiuta. La MdT M accetta la stringa w se, a un certo punto, t ll t t entra nello stato q accetta

Linguaggi i e automi Ricordiamo che un linguaggio è un insieme di stringhe. Vediamo quindi alcune definizioni analoghe a quelle già fornite in relazione agli automi finiti e agli automi a pila. Automi finiti Macchine di Turing L automa finito M riconosce il linguaggio A se M accetta tutte le stringhe di A

Linguaggi i e automi Ricordiamo che un linguaggio è un insieme di stringhe. Vediamo quindi alcune definizioni analoghe a quelle già fornite in relazione agli automi finiti e agli automi a pila. Automi finiti Macchine di Turing L automa finito M riconosce il La macchina di Turing M linguaggio A se M accetta tutte riconosce il linguaggio A se M le stringhe di A accetta tutte le stringhe di A

Linguaggi i e automi Ricordiamo che un linguaggio è un insieme di stringhe. Vediamo quindi alcune definizioni analoghe a quelle già fornite in relazione agli automi finiti e agli automi a pila. Automi finiti Macchine di Turing L automa finito M riconosce il La macchina di Turing M linguaggio A se M accetta tutte riconosce il linguaggio A se M le stringhe di A accetta tutte le stringhe di A Un linguaggio (insieme di stringhe) è detto regolare se esiste un automa finito che lo riconosce

Linguaggi i e automi Ricordiamo che un linguaggio è un insieme di stringhe. Vediamo quindi alcune definizioni analoghe a quelle già fornite in relazione agli automi finiti e agli automi a pila. Automi finiti Macchine di Turing L automa finito M riconosce il La macchina di Turing M linguaggio A se M accetta tutte riconosce il linguaggio A se M le stringhe di A accetta tutte le stringhe di A Un linguaggio (insieme di Un linguaggio (insieme di stringhe) è detto regolare se stringhe) è detto Turing- esiste un automa finito che lo riconoscibile se esiste una riconosce MdT che lo riconosce

Quali tipi di linguaggi sono riconosciuti dalle MdT? Linguaggi Automi Grammatiche di livello ll 0 Macchine di Turing Grammatiche di livello 1 (o non decrescenti) Grammatiche di livello 2 (o libere da contesto) Grammatiche di livello 3 (o lineari) Macchine di Turing (variante) Automi a pila Automi finiti Le MdT superano le capacità di calcolo degli automi Le MdT superano le capacità di calcolo degli automi finiti e degli automi a pila!

Automi e riconoscimento i di linguaggi i raffigurazione intuitiva delle relazioni tra gli automi visti finora, in termini di capacità di riconoscimento di linguaggi macchine di Turing automi finiti automi a pila