Turing, i nastri e le macchine

Documenti analoghi
Quesiti da svolgere esclusivamente su carta (15 punti)

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

Laboratorio di programmazione

= < < < < < Matematica 1

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

GUIDA RAPIDA EDILCONNECT

Avviate Specifi dall icona presente sul vostro Desktop.

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

Codi-Amo con Musica & Gioco

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

Foglio di calcolo con OpenOffice Calc III

PROBLEMA DEL PLL ATTACK RISOLUTIVO

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi

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

GUIDA ALL INVIO ON LINE DI DOCUMENTI INTEGRATIVI, SOSTITUTIVI, INIZIO/FINE LAVORI

Elaborazione Testi (Word) G. Toraldo, F. Giannino, V. Monetti

Esercitazione. Excel: le macro. C.1 Registrazione di macro

PROGRAMMAZIONE STRUTTURATA

Il contenuto di questo documento è strettamente confidenziale, nessuna. parte può essere riprodotta o trasmessa, in tutto o in parte senza il

Informatica Generale Homework di Recupero 2016

Excel 3. Master Universitario di II livello in MANAGER NELLE AMMINISTRAZIONI PUBBLICHE A.A Prof.ssa Bice Cavallo

I GRAFICI CON IL FOGLIO DI CALCOLO DI OPENOFFICE. SCHEDA 1 INSERIMENTO

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

Corso di Laurea in Matematica per l Informatica e la Comunicazione Scientifica

Sistemi di numerazione

Kangourou della Matematica 2014 finale nazionale italiana Mirabilandia, 12 maggio 2014

L INTERFACCIA GRAFICA DI EXCEL

2. Algoritmi e Programmi

Cosa sono le maschere

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

SEE Electrical Expert V4: FAQ

Excel Base- Lezione 3. Barbara Pocobelli Estav Nord Ovest. Il comando Trova

1. Riconoscimento. Figura 1 Modulo Home

Progetto: Dama. 1 - Descrizione. 2 - Regole del gioco. Appello di febbraio 2003

1 Esercizi in pseudocodice

Informatica e Abilità Informatiche Multimediali Esercitazioni di Foglio elettronico

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

TEOREMA DEL RESTO E REGOLA DI RUFFINI

1. Introduzione. 2. Installazione di WinEMTFree. 3. Descrizione generale del programma

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014

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

1 Multipli e sottomultipli. Divisibilità

Forme Normali. Forma normale di Chomsky. E caratterizzata da regole di due tipi. A! BC dove A, B, C $ V N A! a con a $ V T. Forma normale di Greibach

Anno 1. Divisione fra polinomi

Come utilizzare i riferimenti assoluti e relativi in Microsoft Excel

Video Scrittura (MS Word)

Database Modulo 6 CREAZIONE DI MASCHERE

INDICE. Vista Libretto Pt. Coordinate 2. Inserimento e modifica dei punti di coordinate note 4. Inserimento e modifica dei punti di orientamento 5

12. Dopo aver cliccato su INVIO, trascina il valore ottenuto nella cella a tutte le altre celle. Otterrai una tabella del tipo:

MODULO 07 LA MACCHINA DI TURING

UNIVERSITÀ DEGLI STUDI DI MILANO. Progetto Lauree Scientifiche Teoria dei grafi e topologia DIPARTIMENTO DI MATEMATICA ʺF. ENRIQUESʺ.

Questo materiale è reperibile a questo indirizzo: PAS

Corso di Informatica di Base

Creazione di database, tabelle e associazioni con Access 2003

Cosa è l Informatica?

Heap e code di priorità

M.P. Cavaliere ELEMENTI DI MATEMATICA E LOGICA MATEMATICA DISCRETA INSIEMI

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

Rappresentazione con i diagrammi di flusso (Flow - chart)

Anno 2. Risoluzione di sistemi di primo grado in due incognite

La tabella dell addizione Completa la tabella e poi rispondi alle domande.

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

Il concetto di calcolatore e di algoritmo

Brainstorm. Troubleshooting. 1- Come trovare l indirizzo ip di un pc?... 2 Windows XP... 2 Windows Windows Mac OS X...

Calcolo letterale. è impossibile (*) x y. per x = -25; impossibile per y= Impossibile. 15 y

Kangourou della Matematica 2016 Coppa a squadre Kangourou Semifinale turno A Cervia, 7 maggio Quesiti

Lo schermo di XTOTEM FREESTYLE

INDICE DEI GIOCHI. Giochi del 23 Aprile 2016

1. Considera i primi 10 multipli di 5 e i primi 5 multipli di 10. Quale delle seguenti affermazioni è sbagliata? 2. Indica i divisori del numero 32.

Espressione di chiamata di funzione

Modulo 1 Concetti di base della Tecnologia dell Informazione

Algoritmi e Principi dell Informatica

Copiare le caratteristiche di formattazione da un testo ad un altro.

Elementi di Informatica e Programmazione

Esercizi svolti. risolvere, se possibile, l equazione xa + B = O, essendo x un incognita reale

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

La rappresentazione delle informazioni

Quando possiamo dire che un numero a è sottomultiplo del numero b? Al posto dei puntini inserisci è divisibile per oppure è divisore di

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Linguaggi e Grammatiche Liberi da Contesto

Il codice di Sarngadeva

Algoritmi e Strutture Dati

EXCEL: FORMATTAZIONE E FORMULE

Sistemi Web per il turismo - lezione 3 -

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve

REGISTRO DI CLASSE. Indice Del Manuale. 1 - Introduzione al Manuale Operativo. 2 - Come Accedere al Registro di Classe

Definire una chiave primaria. Microsoft Access. Definire una chiave primaria. Definire una chiave primaria. Definire una chiave primaria

MANUALE DOCENTE. Guida rapida per iniziare subito con moodle. Guida rapida per moodle

MANUALE UTENTE PROCEDURA PLANET WEB INTERPRISE (II edizione)

Servizio Conservazione No Problem

Guida alla variazione dei dati e alla compilazione della Scheda per il mantenimento requisiti di iscrizione nel Registro regionale

LEZIONE 4. { x + y + z = 1 x y + 2z = 3

Modificare il tipo di grafico Spostare, ridimensionare, cancellare un grafico

Form da compilare: Gohasta srl Via Celso 18/R Firenze P.Iva IT

Excel. Il foglio di lavoro. Il foglio di lavoro Questa viene univocamente individuata dalle sue coordinate Es. F9

Kangourou della Matematica 2016 Coppa a squadre Kangourou Ecolier Cervia, 6 maggio 2016

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

Edilim Realizzare libri multimediali interattivi. Ivana Sacchi

Insiemi numerici La retta numerica. Numeri naturali. Numeri interi. Blocco per appunti Quaderno teoria Quaderno esercizi

Transcript:

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 A o la lettera B (ma non tutte e due contemporaneamente). In particolare il nastro è simile a quello mostrato in Figura 1: contiene una sequenza di A seguita da una sequenza di B, e voi dovete capire se il numero di A scritte sul nastro è uguale al numero di B. In caso affermativo diremo che il nastro è bilanciato, altrimenti diremo che il nastro è sbilanciato.... A A A A A A A A A B B B B B B B... Figura 1: Un esempio di nastro da analizzare. Per rispondere a questa domanda però non potete contare le lettere: immaginate che il nastro sia molto lungo e che quindi diventi facile saltare una o più lettere. Per essere sicuri di non fare errori, utilizziamo il semplice marchingegno descritto in Figura 2, costituito da un cartoncino al cui interno è possibile inserire uno dei nastri da analizzare, in modo che una delle sue caselle sia evidenziata nella parte centrale. Utilizzando questo marchingegno dovete trovare un procedimento che permetta di stabilire se un nastro sia o meno bilanciato. Il procedimento dovrà essere descritto come un insieme di regole, ognuna delle quali, in funzione della lettera contenuta nella casella evidenziata, consiste nell effettuare due scelte: scegliere se cancellare o meno la lettera nella casella evidenziata (scrivendo sopra di essa una croce a penna); scegliere se lasciare il nastro nella sua posizione attuale, piuttosto che spostarlo a sinistra oppure a destra di una casella. Dovrete quindi stabilire tale insieme di regole, in modo che posizionando il nastro così che risulti evidenziata la sua prima casella, e applicando queste regole fintantoché ciò risulti possibile, alla fine sia possibile stabilire quando un nastro è bilanciato e quando è sbilanciato. Scrivete le regole su un foglio. La macchina di Alan Turing Alan M. Turing è uno dei padri fondatori dell informatica moderna: nacque il 23 giugno 1912. In suo onore si intitola il più prestigioso premio alle scoperte informatiche, il Turing Award. Uno dei suoi contributi fondamentali è la proposta di una macchina ideale, la Macchina di Turing, inventata 1

Figura 2: Il marchingegno che utilizzeremo. per chiarire la nozione di computabilità, per cercare cioè di rispondere alla domanda: cosa significa descrivere una elaborazione simbolica senza ambiguità? Il funzionamento della Macchina di Turing si basa su pochi concetti. Innanzitutto la macchina è dotata di un nastro composto da infinite caselle ciascuna capace di ospitare una lettera; il nastro può scorrere verso destra o verso sinistra di una casella alla volta. Vi è poi un dispositivo, chiamato testina, in grado di leggere la lettera presente nella casella sulla quale è posizionato, e di sostituirla con una nuova lettera. In ogni momento la macchina si trova in un stato (inizialmente 0). Il funzionamento della macchina è dettato da un programma, ovvero un catalogo di mosse; ciascuna mossa determina, a partire dallo stato in cui si trova la macchina e dal simbolo letto dalla testina, qual è il prossimo stato in cui si troverà la macchina, come sostituire il simbolo letto, e in che direzione far eventualmente scorrere il nastro. Più precisamente, una mossa è della forma (S1, x) > (S2, y, a) (1) dove S1 e S2 sono stati, x e y sono lettere e a può valere s, d oppure -; la componente a descrive il movimento del nastro: s significa a sinistra, d significa a destra, - significa nessun movimento. Il 2

significato di questa mossa è il seguente: Se la macchina è nello stato S1 e la testina legge la lettera x, si passi nello stato S2, si scriva la lettera y al posto di x e si muova il nastro di una casella nella direzione indicata da a. Una volta avviata, la macchina continua l esecuzione del programma fintanto che esiste una mossa che riporta come primo elemento lo stato attuale della macchina e come secondo la lettera letta dalla testina. Se non c è una mossa di questo tipo, la macchina si ferma. Valgono le seguenti regole per l inserimento di un programma: Ogni mossa va scritta su di una sola riga I nomi degli stati (S1 e S2 nell esempio) possono essere composti solo dai caratteri ABCDEFGHIJKLMNOPQRSTUVXYWZ0123456789. Le lettere che vengono lette e scritte sul nastro (x e y nell esempio) possono essere solo ABCDEFGHIJKLMNOPQRSTUVXYWZ; la casella vuota si indica con il simbolo * Le azioni (a nell esempio) sono uno dei caratteri s, d, - Per esempio: l istruzione (0, ) > (1, C, s) significa: Se la macchina è nello stato 0 e la testina legge una casella vuota, si passi nello stato 1, si scriva la lettera C e si muova il nastro di una casella verso sinistra. Un simulatore di Macchine di Turing Collegandovi con un browser all indirizzo http://kangourou.di.unimi.it/2012/turing/myturing.html potete utilizzare un semplice simulatore di Macchine di Turing. Seguiamo passo passo l esecuzione del programma che segue con la Macchina di Turing, che è quello automaticamente caricato nel simulatore: (0,*) > (1,C,s) (1,*) > (2,I,s) (2,*) > (3,A,s) (3,*) > (4,O,s) La situazione iniziale, con nastro vuoto, è la seguente: 3

A questo punto essendo la macchina nello stato 0 e la casella letta dalla testina vuota l unica mossa applicabile è (0,*) > (1,C,s), che cambia lo stato della macchina in 1, scrive sul nastro C e A questo punto essendo la macchina nello stato 1 e la casella letta dalla testina vuota l unica mossa applicabile è (1,*) > (2,I,s), che cambia lo stato della macchina in 2, scrive sul nastro I e A questo punto essendo la macchina nello stato 2 e la casella letta dalla testina vuota l unica mossa applicabile è (2,*) > (3,A,s), che cambia lo stato della macchina in 3, scrive sul nastro A e 4

A questo punto essendo la macchina nello stato 3 e la casella letta dalla testina vuota l unica mossa applicabile è (3,*) > (4,O,s), che cambia lo stato della macchina in 4, scrive sul nastro O e A questo punto non c è più alcuna mossa che risulti applicabile e l esecuzione del programma termina. Si noti che qualora inizialmente la testina fosse posizionata su di una casella contenente una lettera, il programma non avrebbe potuto essere eseguito, perché non c è alcuna mossa attivabile nello stato 0 e testina che legge una casella diversa dalla casella vuota. Esercizi 1. Cosa fa il seguente programma eseguibile dalla Macchina di Turing quando sul nastro di partenza c è una sequenza di A, B e C (per esempio AAAABC o AABBBBB)? (0,A) > (0,*,s) (0,B) > (0,*,s) (0,C) > (1,*,s) (1,*) > (2,V,-) (1,A) > (1,*,s) (1,B) > (1,*,s) (1,C) > (1,*,s) 5

2. Cosa fa il seguente programma eseguibile dalla Macchina di Turing quando sul nastro di partenza c è una sequenza di A e B (per esempio AAAABB o AABB o A)? Il programma è caricabile nel simulatore scegliendo la voce di menu Mistero. (0,A) > (1,*,s) (1,A) > (1,A,s) (1,B) > (1,B,s) (1,*) > (2,*,d) (2,B) > (3,*,d) (3,A) > (3,A,d) (3,B) > (3,B,d) (3,*) > (0,*,s) (0,*) > (4,S,s) (4,*) > (F,I,s) (0,B) > (F,*,-) 3. Programmate la Macchina di Turing in modo che, data sul nastro di partenza una sequenza qualsiasi delle lettere O e I, aggiunga una lettera I se il numero delle I già presente è dispari, altrimenti aggiunga una O: in ogni caso, quindi, il numero finale di I deve essere pari. nastro iniziale IO IOI O nastro finale IOI IOIO OO 6

4. Programmate la Macchina di Turing in modo che, dato un nastro iniziale contenente una sequenza qualsiasi di A,B, e C, termina la sua esecuzione lasciando sul nastro la sequenza che si ottiene eliminando tutte le A iniziali fino alla prima lettera diversa da A più a sinistra. Qualora la sequenza iniziale sia composta da sole A, il risultato finale è A. nastro iniziale ABC ABAC BBB AAAA nastro finale BC BAC BBB A 7