Le Macchine di Turing



Documenti analoghi
Esercizio su MT. Svolgimento

Appunti sulla Macchina di Turing. Macchina di Turing

Le macchine di Turing

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

La macchina universale

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

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Corso di Informatica

Cos è un Calcolatore?

Macchine sequenziali

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

Elementi di Informatica e Programmazione

Varianti Macchine di Turing

Capitolo 2. Operazione di limite

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

Algoritmi e strutture dati. Codici di Huffman

1. PRIME PROPRIETÀ 2

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Architettura di un computer

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

Origini e caratteristiche dei calcolatori elettronici

Conversione tra le basi binarie

Informazione analogica e digitale

Utilizzo delle formule in Excel

Lezione 8. La macchina universale

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, = 1, 431 0, = 0, 862 0, = 1, 792 0, = 1, 448 0, = 0, 896

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006

REGISTRO ELETTRONICO SPAGGIARI. MANUALE OPERATIVO PER I DOCENTI Rev. 00 del 21/11/2012

REGISTRO ELETTRONICO SPAGGIARI. MANUALE OPERATIVO PER I DOCENTI Rev. 00 del 21/11/2012

I sistemi di numerazione

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

Sommario. Linguaggi formali: motivazioni, definizione ed esempi operazioni su parole e linguaggi

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

Aritmetica: operazioni ed espressioni

Alessandro Pellegrini

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

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

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

Dimensione di uno Spazio vettoriale

Algoritmi e Complessità

Lezioni di Matematica 1 - I modulo

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

Fasi di creazione di un programma

ESEMPIO 1: eseguire il complemento a 10 di 765

Rappresentazione delle informazioni

DAL PROBLEMA AL PROGRAMMA

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

Variabili e tipi di dato

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

Figura 1 Le Icone dei file di Excel con e senza macro.

Organizzazione degli archivi

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

4 3 4 = 4 x x x 10 0 aaa

Schemi delle Lezioni di Matematica Generale. Pierpaolo Montana

Semantica operazionale dei linguaggi di Programmazione

I file di dati. Unità didattica D1 1

Misure di base su una carta. Calcoli di distanze

Il programma CONFELMOD CAD creazione e modifica

Anno 3. Classificazione delle funzioni

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

risulta (x) = 1 se x < 0.

Tipologie di macchine di Turing

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

SISTEMI DI NUMERAZIONE E CODICI

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Introduzione alla programmazione in C

Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete.

1 Applicazioni Lineari tra Spazi Vettoriali

LINGUAGGI DI PROGRAMMAZIONE

Appunti sugli Elaboratori di Testo. Introduzione. D. Gubiani. 19 Luglio 2005

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

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Javascript: il browser

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

LA MISURAZIONE DEL CARATTERE

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri

Metodologie di programmazione in Fortran 90

Matematica in laboratorio

Sistema operativo: Gestione della memoria

Appunti di Sistemi Elettronici

Editor vi. Editor vi

Olga Scotti. Basi di Informatica. File e cartelle

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Transcript:

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 può essere contenuto un simbolo preso da un alfabeto opportuno Un alfabeto è semplicemente un insieme di simboli Una cella deve contenere un simbolo che può appartenere all alfabeto oppure essere un simbolo speciale

Lo stato interno e la testina La macchina è dotata di una testina di lettura/scrittura La testina è in grado di leggere e scrivere il contenuto della cella del nastro su cui si trova La macchina ha uno stato interno Uno stato è un elemento appartenente all insieme degli stati

Il programma di una MdT Il comportamento della macchina è determinato da un insieme di regole Una regola ha la forma seguente: (A, a, B, b, dir) Una regola viene applicata se lo stato corrente della macchina è A e il simbolo letto dalla testina è a L applicazione della regola cambia lo stato in B, scrive sul nastro b ed eventualmente sposta la testina di una cella a sinistra o a destra (dir( dir)

Il funzionamento di una MdT La macchina opera come segue: Determina la regola da applicare in base allo stato interno e al simbolo corrente (quello letto dalla testina) Se esiste una tale regola cambia lo stato, scrive il simbolo sulla cella corrente si sposta come indicato dalla regola Se non esiste la regola l esecuzione termina In questo modello non può esistere più di una regola per uno stato ed un simbolo corrente

Esempio: cambiamo A in B Vogliamo programmare una Macchina di Turing che, dato sul nastro di input una stringa di A e B, rimpiazza ogni occorrenza di A in B e viceversa Assumendo che la testina sia posizionata sul primo simbolo della stringa dobbiamo cambiare una A in B (o viceversa) spostare la testina sul prossimo carattere

Cambiamo A in B (continua) Le regole corrispondenti sono: (0, A, 0, B, >) (0, B, 0, A, >) In questo caso è sufficiente lo stato 0 Al termine della stringa l esecuzione sarà arrestata

Esempio: le palindrome Si vuole una macchina di Turing che scriva sul nastro S se una stringa di A e B è palindroma Una stringa è palindroma se può essere letta indifferentemente da destra a sinistra e viceversa Idea: si cancella un carattere ad un estremo e si cancella il corrispondente all altro estremo. Quando il nastro è vuoto scriviamo S

Le palindrome (continua) Le regole sono: (0, A, ca, -, >) (cb, -, vb, -, <) (0, B, cb, -, >) (va, A, vi, -, <) (ca, A, ca, A, >) (vb, B, vi, -, <) (ca, B, ca, B, >) (vi, A, vi, A, <) (ca, -, va, -, <) (vi, B, vi, B, <) (cb, A, cb, A, >) (vi, -, 0, -, >) (cb, B, cb, B, >) (0, -, End, S, -)

Un altra rappresentazione La notazione a regole non è l unica possibile per esprimere un programma Una notazione più compatta utilizza un grafo: un insieme di nodi collegati da archi opportunamente collegati Ad ogni stato della macchina si associa un nodo del grafo Se una regola provoca la transizione in un altro stato esiste un arco tra i due nodi annotato col simbolo letto, quello scritto e la direzione

Rappresentare una regola In pratica alla regola (0, A, 1, B, >) corrisponde il seguente grafo: A/B, > 1 0

Algoritmo: calcolo della sol. Il procedimento utilizzato per esprimere il calcolo di una funzione è anche detto algoritmo Un algoritmo specifica le operazioni necessarie per risolvere un problema ma non è necessariamente espresso in un linguaggio formale (es. Un programma per la MdT) Dato un algoritmo è possibile scrivere un programma che sia eseguibile da una macchina

Probl.-> Algoritmo -> Sol. Un problema è normalmente specificato in modo parametrico nell input Esempio: le palindrome Un input per il problema è detta istanza del problema Un algoritmo specifica i passi necessari per risolvere un istanza del problema

Conclusioni In questa lezione abbiamo introdotto il modello di calcolo delle MdT Una MdT calcola funzioni I programmi per la macchina possono essere espressi come regole o grafi Per risolvere un problema è necessario trovare l algoritmo e codificarlo come programma La scomposizione di problemi in sottoproblemi aiuta a riutilizzare algoritmi già conosciuti