102 MACCHINE DI TURING

Похожие документы
Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

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

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Anno 3. Funzioni esponenziali e logaritmi: le 4 operazioni

Appunti di Excel per risolvere alcuni problemi di matematica (I parte) a.a

Prodotto scalare e prodotto vettoriale. Elisabetta Colombo

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

Insiemistica. Capitolo 1. Prerequisiti. Obiettivi. Gli insiemi numerici di base Divisibilità e fattorizzazione nei numeri interi

Turing, i nastri e le macchine

04 - Numeri Complessi

La codifica digitale

UNITÀ DIDATTICA 5 LA RETTA

LEZIONE DI MATEMATICA SISTEMI DI NUMERAZIONE. (Prof. Daniele Baldissin)

Il concetto di calcolatore e di algoritmo

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

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

I Circuiti combinatori: LOGISIM

Università degli Studi del Piemonte Orientale Facoltà di Scienze M.F.N. Precorso di Matematica APPUNTI (preparati da Pier Luigi Ferrari)

ELEMENTI di TEORIA degli INSIEMI

IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE.

La codifica. dell informazione

Esercizi di Matematica per la prova di ammissione alla Scuola Galileiana /16

Sistemi di numerazione

Anno 1. Divisione fra polinomi

FUNZIONI BOOLEANE. Vero Falso

Macchine di Turing: somma di due numeri

Ancora sui criteri di divisibilità di Marco Bono

In quanto segue ci interesseranno particolarmente le forme che si comportano come l esempio del quadrato A qui sopra. Le chiameremo forme di tipo A.

Anno 5 Regole di derivazione

Per esempio se doveste scrivere 2 moltiplicato per se stesso 5 volte, sarebbe scomodissimo scrivere ogni volta

Scritto da Maria Rispoli Domenica 09 Gennaio :07 - Ultimo aggiornamento Martedì 01 Marzo :11

Elementi di Analisi Combinatoria

1 Definizione di sistema lineare omogeneo.

La divisione di numeri naturali: esercizi svolti

Precorsi di matematica

Le Derivate. Appunti delle lezioni di matematica di A. Pisani Liceo Classico Dante Alighieri

8. Completamento di uno spazio di misura.

METODI E TECNOLOGIE PER L INSEGNAMENTO DELLA MATEMATICA. Lezione n

Inversa di una matrice

Come risolvere i quesiti dell INVALSI - terzo

insieme c n ce c r e t r ez e z z a a par a t r ien e e e o no distinguere l uno dall altro insieme degli animali a quattro zampe

Rappresentazione di numeri interi

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

Sistemi Web per il turismo - lezione 3 -

Preferenze del consumatore. Assiomi Utilità totale e marginale Curva di indifferenza: pendenza e posizione nel piano

Cap. 2 - Rappresentazione in base 2 dei numeri interi

Anno 1. Teoria degli insiemi: definizioni principali

Numeri interi relativi

Anno 4 Matrice inversa

Numeri interi (+/-) Alfabeto binario. Modulo e segno

ESERCIZI SVOLTI SUL CALCOLO INTEGRALE

04 - Logica delle dimostrazioni

Corso di Laurea in Scienze della Formazione Primaria Università di Genova MATEMATICA Il

Il calcolatore. Architettura di un calcolatore (Hardware)

[PRIMA DI VIDEOSCRIVERE ]

1. equivalenze e implicazioni logiche. Esercizio 1.2. Trovare le implicazioni che legano i seguenti enunciati (x, y R):

Integrali indefiniti fondamentali. Integrali indefiniti riconducibili a quelli immediati. a dx ax c. log. e dx e c. cos xdx senx c.

Funzioni goniometriche

La circonferenza nel piano cartesiano

Algoritmi. Pagina 1 di 5

ESERCITAZIONE MICROECONOMIA (CORSO B) ESEMPI DI ESERCIZI DI TEORIA DEI GIOCHI

Aritmetica dei Calcolatori Elettronici

Piccolo teorema di Fermat

CORSO ZERO DI MATEMATICA

Lezione 39: la legge di Ohm e i circuiti elettrici

Fondamenti della Matematica a.a LUMSA. Basi di numerazione. Scrittura in forma polinomiale e scrittura in una base

Informatica Teorica. Sezione Cremona + Como. Appello del 20 Luglio 2004

Moltiplicazione. Divisione. Multipli e divisori

LEZIONE 15. (15.1.2) p(x) = a 0 x n + a 1 x n a n 1 x + a n = a h x n h.

SISTEMI LINEARI, METODO DI GAUSS

1.2 MONOMI E OPERAZIONI CON I MONOMI

= < < < < < Matematica 1

Esercitazioni di Meccanica Quantistica I

Rappresentazione dell Informazione

Rappresentazione degli insiemi

Parte Seconda. Prova di selezione culturale

Rappresentazioni numeriche

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice

GLI INSIEMI PROF. WALTER PUGLIESE

Semiprimi e fattorizzazione col modulo

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

PROGRAMMAZIONE STRUTTURATA

Un monomio è in forma normale se è il prodotto di un solo fattore numerico e di fattori letterali con basi diverse. Tutto quanto sarà detto di

La sottrazione di numeri naturali: esercizi svolti

Anno 1. Frazioni algebriche: definizione e operazioni fondamentali

Транскрипт:

102 MACCHINE DI TURING Corso di Informatica Teorica - modulo 2 Prof. Settimo Termini 1

Introduzione Se, come già abbiamo affermato, nel costruire una Teoria della calcolabilità siamo guidati del desiderio di ottenere una teoria della massima generalità, allora, in primo luogo dobbiamo, preliminarmente, cercare di elencare quali possano essere le vie da percorrere, i criteri da seguire, i principi generali a cui attenerci in questa impresa. Siamo confortati dal fatto che lo stesso Turing, nel suo lavoro pionieristico, ha mescolato ai risultati tecnici da lui trovati una serie di analisi e considerazioni a sostegno del tentativo assolutamente generale che stava intraprendendo. 2

SULLA NOZIONE DI CALCOLABILE Indicazioni dell articolo particolare Quali sono le indicazioni che Turing ha tratto dall analisi del processo di computo e che noi possiamo seguire? - Numero finito di simboli - numero finito di stati - processi di base il più possibile elementari VEDREMO ADESSO COME DEFINIRE UNA MACCHINA A PARTIRE DA QUESTA ANALISI

Introduzione Decomponiamo il processo di calcolo nei suoi elementi costitutivi più piccoli. Vediamo se tali elementi base presentano ancora elementi non di tipo meccanico. In caso negativo, potremo costruire una macchina che riproduce in modo completo il comportamento computistico dell uomo. Qualunque calcolo effettuato dall uomo può, in ultima istanza, ridursi ad una manipolazione di un numero finito di simboli effettuata seguendo un numero finito di istruzioni o regole. Inoltre l uomo osserverà solo un numero finito di simboli per volta e potrà ricordare istruzioni o operazioni già effettuate purché sempre in numero finito. Queste brevi osservazioni (che sintetizzano l analisi dettagliata compiuta da Turing) ci inducono a presentare un modello di macchina astratta che accoglie queste indicazioni. 4

Elementi costitutivi 1. Un nastro unidimensionale potenzialmente infinito nei due sensi, diviso in quadrati di eguale dimensione. Questi quadrati possono avere impresso un solo simbolo oppure niente. 2. Un occhio capace di osservare un solo quadrato per volta. 3. Una memoria in grado di ricordare solo un numero finito di istruzioni per volta. 5

Elementi costitutivi Gli elementi precedenti li consideriamo realizzati da un aggeggio meccanico così costituito: M = corpo della macchina di Turing (con un numero finito di stati interni) I simboli q1, q2, q3,... rappresentano gli stati di M I simboli s1, s2,... sono simboli che possono essere impressi sul nastro. s0 = B = non c è scritto niente 6

Le quadruple Le operazioni elementari possibili sono riassunte dai tre tipi di quadruple: qi sj sk ql qi sj R ql qi sj L ql Commentiamole brevemente. Per semplicità, consideriamo un alfabeto consistente del solo simbolo. Per cui avremo: s0 = B s1 = 7

Le quadruple qi sj sk ql la MdT si trova nello stato qi, esaminando il simbolo sj cambia, senza spostarsi, il simbolo sj col simbolo sk passando nello stato ql. O OSSERVAZIONE Può essere j = k. Nel nostro caso (alfabeto consistente del solo simbolo ) l istruzione precedente può assumere solo una delle forme che seguono. 8

Le quadruple qi B B ql lascia il quadrato bianco : qi ql qi B ql scrive : qi ql qi ql lascia ciò che è scritto : qi ql qi B ql cancella ciò che è scritto : qi ql questo per tutte le coppie di stati della nostra MdT 9

Le quadruple Poi rimangono gli ordini di spostamento a destra e sinistra, qualunque sia il simbolo letto e lo stato nel quale si trova la MdT: qi sj R ql spostati a destra di un posto : qi ql qi sj L ql spostati a sinistra di un posto : qi ql 10

Le quadruple Nel nostro caso, di un alfabeto formato solo da (ricordiamo che c è sempre B) qi B R ql qi B L ql (leggendo B) spostati a destra di un posto : qi ql (leggendo B) spostati a sinistra di un posto : qi ql qi R ql (leggendo ) spostati a destra di un posto : qi ql qi L ql (leggendo ) spostati a sinistra di un posto : qi ql questo per tutte le coppie di stati della nostra MdT 11

Definizione di Macchina di Turing Definiamo ora come Macchina di Turing (MdT) un insieme finito di quadruple nessuna delle quali ha identici ad un altra entrambi i primi due simboli. O OSSERVAZIONE deterministica Togliendo questa restrizione otteniamo una MdT non L alfabeto di una MdT è l insieme di tutti i simboli sj che occorrono nelle quadruple (eccetto s0). Conveniamo che una MdT parte sempre dallo stato q1. Una MdT si ferma se trovandosi nello stato qi esamina il simbolo sj e non esiste nessuna quadrupla della macchina che inizia con qisj. 12

Macchine di Turing non deterministiche Abbiamo osservato che è possibile togliere la restrizione che nessuna delle quadruple possa avere i primi due simboli identici a quelli di un altra quadrupla, ottenendo ciò che viene chiamato, come già indicato, MdT non deterministica. - L aggettivo non deterministico è da intendere nel senso che la MdT può seguire tutte le vie che le permettono le sue quadruple, quindi anche più vie contemporaneamente. Quindi è una sorta di modello generale di computer parallelo - l aggettivo non deterministico - in questo contesto - NON ha quindi alcun rapporto con la nozione di probabilità. 13

Macchine di Turing non deterministiche Domande: 1. Quando si ferma una MdT non deterministica? 2. Le MdT non deterministiche sono più potenti delle MdT tradizionali? Le risposte sicuramente le conoscete, non so se avete già visto come si può dimostrare la risposta alla seconda domanda. 14

Torniamo un attimo alla definizione data: Definiamo come Macchina di Turing (MdT) un insieme finito di quadruple. Il suo lavoro - come sapete - è stato inviato per la pubblicazione sui Proceedings della London Mathematical Society. Non pensate che a un matematico doveva sembrare particolarmente insolita una definizione di questo tipo? 15

Convenzioni Usando delle opportune convenzioni per le variabili di ingresso e di uscita possiamo usare la MdT per definire una classe di funzioni computabili (funzioni Turing calcolabili). Presentiamo in modo informale alcuni esempi di MdT. Rappresentiamo adesso i numeri naturali nel seguente modo: useremo solo il simbolo. Ovviamente c è sempre il quadrato bianco che viene rappresentato da B In ingresso un numero n è rappresentato da un numero n+1 di barrette In uscita da un numero n di barrette. 16

Macchina di Turing Ingresso 0 ; 1 ; 2 ;... Uscita Il risultato del calcolo sarà dato dal numero di simboli presenti sul nastro quando la macchina si ferma. Se all ingresso abbiamo più variabili allora i valori corrispondenti saranno rappresentati uno di seguito all altro separati da un riquadro bianco. Quando la MdT parte si trova nello stato q1 osservando il primo quadrato con simboli. 17

E ESEMPIO 1 MACCHINE DI TURING Successore La funzione successore Una MdT che calcola il successore è: q1 B B q1. Che succede infatti quando vogliamo calcolare, ad es., il successore di 3? 3 B q1 B Non esiste alcuna quadrupla che inizia con q1 e quindi la MdT si ferma. Possiamo, adesso, andare a leggere sul nastro il risultato, che è 4 (grazie ai modi diversi di rappresentare i numeri in ingresso e in uscita. 18

E ESEMPIO 2 MACCHINE DI TURING Somma La funzione somma di due variabili x + y Una MdT che fa la somma è la seguente: q1 B q1 q1 B R q2 q2 R q2 q2 B R q3 q3 B q3 Che cosa fanno (e devono fare) queste quadruple? Teniamo bene in mente le caratteristiche della nostra rappresentazione dei numeri, in ingresso e in uscita (ricordando che sono DIVERSE!) 19

Esempi e simulatori Il funzionamento di una MdT si può seguire con carta e penna, nel caso di un numero grande di quadruple è più facile seguirlo usando un simulatore. Ve ne sono molti, uno di questi è indicato nel sito ed è quello che verrà usato anche in aula. 20

Funzione identità E ESEMPIO 3 La funzione identità Ricordando che i numeri sono rappresentati diversamente in ingresso ed in uscita, si ha che ciò che deve fare la MdT in questo caso è cancellare una barretta. La MdT consiste della sola quadrupla q1 B q1 21

Funzione identità Esempio di calcolo: sia x = 3, allora 3 e la configurazione iniziale della MdT sarà B q1 B applicando adesso l unica quadrupla della nostra MdT si ottiene: B q1 B B Poiché non esiste una quadrupla che inizia con q1 B la MdT si ferma. Leggiamo il risultato: è 3. 22

Sottrazione E ESEMPIO 4 Sottrazione Questa MdT è notevolmente più complicata delle precedenti: q 1 Bq 1 q 1 BRq 2 cancella una barretta sulla sinistra q 2 Rq 2 q 2 BRq 3 localizza il B di separazione q 3 Rq 3 q 3 BLq 4 localizza il termine destro q 4 Bq 4 q 4 BLq 5 cancella una barretta sulla destra 23

Sottrazione q 5 Lq 6 } se il secondo numero è stato cancellato si FERMA altrimenti va a q 6 ed a sinistra q 6 Lq 6 q 6 BLq 7 q 7 Lq 8 q 7 BRq 9 9 = ; localizza il B di separazione invia alla ( ) se il primo numero non è stato tutto cancellato altrimenti alla ( ) 24

Sottrazione ( ) q 8 Lq 8 q 8 BRq 1 localizza il termine sinistro e ritorna a q 1 ( ) q 9 BRq 9 q 9 Lq 9 entra in un ciclo infinito 25

Sottrazione? DOMANDA Cosa fa la MdT? Cancella una barretta dal primo numero ed una dal secondo e ritorna alla posizione iniziale. Quando il secondo numero è tutto cancellato, la macchina si ferma perché non esiste una quadrupla che inizia con q5b.? DOMANDA del secondo? Cosa succede se il primo numero viene cancellato prima Cioè se vogliamo calcolare n1 n2 essendo n1 < n2 Poichè la funzione non è definita la MdT non si deve fermare mai. 26

Macchine di Turing! ATTENZIONE Le MdT presentate prima corrispondono alle funzioni indicate (le calcolano) solo se ricordiamo le convenzioni fatte riguardo alla rappresentazione dei numeri naturali (diverse in ingresso e in uscita). Se cambiassimo rappresentazione dovremmo cambiare le quadruple opportunamente. Le MdT che calcolano certe cose in una rappresentazione, calcoleranno altre cose in una nuova rappresentazione. Si osservi ancora che la posizione iniziale della testina, in questi esempi, è sempre stata sul primo simbolo non blank. Anche questa è una convenzione. Successivamente ne useremo anche altre. 27

Rappresentazioni diverse delle MdT Possiamo avere rappresentazioni diverse dalla rappresentazione standard della MdT mediante quadruple (che abbiamo usato come definitoria). Una è quella di tabella della macchina. Un altra è quella di diagramma di flusso. Mostreremo brevemente adesso, come esercizio, come si passa da una rappresentazione all altra nel caso di un esempio semplice: Una MdT che scrive tre simboli su un nastro inizialmente bianco e che si ferma esaminando il quadrato che contiene il simbolo più a sinistra. 28

Macchine di Turing Che operazioni elementari possiamo far compiere alla macchina per ottenere il risultato voluto? Scrivere un simbolo 1 sul quadrato che sta esaminando. Spostarsi a sinistra di un quadrato. Scrivere un 1 anche su questo quadrato. Spostarsi ancora a sinistra di un quadrato Scrivere un 1 anche su questo quadrato. Fermarsi. N. B.: OVVIAMENTE AVREMMO POTUTO USARE ANCHE ALTRE STRATEGIE 29

Macchine di Turing Ricordiamo che la MdT non ha bisogno di un istruzione specifica di fermata; si ferma quando non ha istruzioni da eseguire. Possiamo eseguire queste azioni mediante le quadruple seguenti: q1 S0 S1 q1 q1 S1 L q2, q2 S0 S1 q2 q2 S1 L q3, q3 S0 S1 q3 La rappresentazione mediante tabella di queste istruzioni si ottiene ponendo lungo un asse i simboli che la macchina può scrivere e lungo l altro asse gli stati interni della macchina. L elemento che si trova nella casella (i, j) ci dice cosa deve fare la macchina quando sta leggendo il simbolo i-esimo trovandosi nello stato j-esimo. 30

Macchine di Turing SIMBOLO ESAMINATO S 0 S 1 q 1 S 1 q 1 Lq 2 q 1 S 0 S 1 q 1, q 1 S 1 Lq 2, q 2 S 1 q 2 Lq 3 q 2 S 0 S 1 q 2, q 2 S 1 Lq 3, q 3 S 1 q 3 q 3 S 0 S 1 q 3 TABELLA INSIEME DI QUADRUPLE 31

Macchine di Turing Il diagramma di flusso sarà formato da un insieme di nodi connessi da frecce che possiamo costruire nel modo che segue, a partire dalle quadruple. Stato Attuale Simbolo Esaminato : Azione Stato Successivo Il diagramma di flusso della MdT precedente è quindi dato da: S q 1 :L S 1 q 1 :L 2 q 3 S 0 :S 1 S 0 :S 1 S 0 :S 1 32

Macchine di Turing Qual è il vantaggio della rappresentazione mediante diagrammi di flusso? Possiamo seguire il modo di procedere della MdT in modo più evidente in una rappresentazione più compatta. E questo possiamo farlo senza neanche ricordarci il nome di tutti gli stati. Ad esempio, il diagramma di flusso della MdT precedente senza i nomi degli stati ci permette lo stesso di capire cosa fa la macchina. S 1 :L S 1 :L S 0 :S 1 S 0 :S 1 S 0 :S 1 33

Macchine di Turing Una MdT che fa operazioni di scrittura di simboli sul nastro senza interpretare questi numericamente, è stato introdotto prima come ausilio per introdurre in modo didatticamente semplice diversi modi nei quali possiamo rappresentare le MdT. Ma adesso, senza una rilevanza apparente per problemi di calcolabilità numerica, chiediamoci quanto facilmente possiamo progettare MdT che fanno giochini vari. (E CHIEDIAMOCI ANCHE A COSA POSSONO SERVIRE QUESTI GIOCHINI) 34