Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli

dispensa "la macchina di Turing", Dispense di Didattica Della Matematica

la macchina di turing dispensa

Tipologia: Dispense

2019/2020

Caricato il 19/09/2020

Utente sconosciuto
Utente sconosciuto 🇮🇹

4.7

(9)

16 documenti

Anteprima parziale del testo

Scarica dispensa "la macchina di Turing" e più Dispense in PDF di Didattica Della Matematica solo su Docsity! INDICE INTRODUZIONE 1 MACCHINA DI TURING 2 CARATTERISTICHE 4 L’IMPORTANZA DELLA MACCHINA DI TURING 5 CONCLUSIONI 8 BIBLIOGRAFIA 9 1 INTRODUZIONE La presente relazione ripropone, opportunamente ridotti e in parte revisionati, temi relativi alla macchina di Turing. Alan Mathison Turing (1912-1954) fu un matematico, logico e crittanalista britannico, considerato uno dei padri dell'informatica e uno dei più grandi matematici del Novecento. Introdusse la macchina ideale ed il test omonimi. Fu uno dei più brillanti decrittatori che operavano in Inghilterra, durante la seconda guerra mondiale, per decifrare i codici delle Potenze dell'Asse. Decifrò Enigma, il codice usato dai sottomarini tedesco. Il matematico inglese fu uno dei primi a capire che se siamo in grado di comprendere un processo al punto da saperlo descrivere esaustivamente a un computer, quest'ultimo è in grado di simulare il processo stesso. Una macchina di Turing (o più brevemente MdT) è una macchina ideale che manipola i dati contenuti su un nastro di lunghezza potenzialmente infinita, secondo un insieme prefissato di regole ben definite. In altre parole, è un modello astratto che definisce una macchina in grado di eseguire algoritmi e dotata di un nastro potenzialmente infinito su cui può leggere e/o scrivere dei simboli. È un potente strumento teorico che viene largamente usato nella teoria della calcolabilità e nello studio della complessità degli algoritmi, in quanto è di notevole aiuto agli studiosi nel comprendere i limiti del calcolo meccanico. La sua importanza è tale che oggi, per definire in modo formalmente preciso la nozione di algoritmo, si tende a ricondurlo alle elaborazioni effettuabili con macchine di Turing. La MdT come modello di calcolo è stata introdotta nel 1936 da Alan Turing per dare risposta all'Entscheidungsproblem (problema di decisione) proposto da Hilbert nel suo programma di fondazione formalista della matematica. Il testo è stato redatto dalle studentesse universitarie Federica Pagano e Annalisa Sabatino, iscritte al primo anno del Corso di Laurea in Scienze della Formazione Primaria dell’Università degli Studi del Molise. Le studentesse hanno utilizzato l’edizione 2010 del programma Word installato su un computer con sistema operativo Windows 7. 4 piuttosto intuitive. D'altra parte, essa ha la portata computazionale(potere computazionale) che si presume essere la massima: si dimostra, infatti, che essa è in grado di effettuare tutte le elaborazioni effettuabili dagli altri modelli di calcolo noti all'uomo. Tra questi modelli di calcolo ricordiamo le funzioni ricorsive di Jacques Herbrand e Kurt Gödel, il lambda calcolo di Alonzo Church e Stephen Kleene, la logica combinatoria di Moses Schönfinkel e Haskell Curry, gli algoritmi di Markov, i sistemi di Thue, i sistemi di Post, le macchine di Hao Wang e le macchine a registri elementari o RAM astratte di Marvin Minsky. Di conseguenza si è consolidata la convinzione che per ogni problema calcolabile esista una MdT in grado di risolverlo: questa è la cosiddetta congettura di Church-Turing, la quale postula in sostanza che per ogni funzione calcolabile esista una macchina di Turing equivalente, ossia che l'insieme delle funzioni calcolabili coincida con quello delle funzioni ricorsive. Gli algoritmi che possono essere implementati da una MdT si dicono "algoritmi Turing- computabili". La macchina può agire sopra un nastro che si presenta come una sequenza di caselle nelle quali possono essere registrati simboli di un ben determinato alfabeto finito; essa è dotata di una testina di lettura e scrittura (I/O) con cui è in grado di effettuare operazioni di lettura e scrittura su una casella del nastro. La macchina si evolve nel tempo e ad ogni istante si può trovare in uno stato interno ben determinato facente parte di un insieme finito di stati. Inizialmente sul nastro viene posta una stringa che rappresenta i dati che caratterizzano il problema che viene sottoposto alla macchina. La macchina è dotata anche di un repertorio finito di istruzioni che determinano la sua evoluzione in conseguenza dei dati iniziali. L'evoluzione si sviluppa per passi successivi che corrispondono a una sequenza discreta di istanti successivi. Le proprietà precedenti sono comuni a molte macchine formali (automa a stati finiti, automa a pila, ...). Caratteristica delle MdT è quella di disporre di un nastro potenzialmente infinito, cioè estendibile quanto si vuole qualora questo si renda necessario. Ogni passo dell'evoluzione viene determinato dallo stato attuale s nel quale la macchina si trova e dal carattere c che la testina di I/O trova sulla casella del nastro su cui è posizionata e si concretizza nell'eventuale modifica del contenuto della casella, nell'eventuale spostamento della testina di una posizione verso destra o verso sinistra e nell'eventuale cambiamento dello stato. Quali azioni vengono effettuate ad ogni passo viene determinato dalla istruzione, che supponiamo unica, che ha come prime due componenti s e c; le altre tre componenti dell'istruzione forniscono nell'ordine il nuovo stato, il nuovo carattere e una richiesta di spostamento verso sinistra, nullo o verso destra. 5 Una evoluzione della macchina consiste in una sequenza di sue possibili "configurazioni", ogni configurazione essendo costituita dallo stato interno attuale, dal contenuto del nastro (una stringa di lunghezza finita) e dalla posizione sul nastro della testina di I/O. Nei casi più semplici l'evoluzione ad un certo punto si arresta in quanto non si trova nessuna istruzione in grado di farla proseguire. Si può avere un arresto in una configurazione "utile" dal punto di vista del problema che si vuole risolvere; in tal caso quello che si trova registrato sul nastro all'atto dell'arresto rappresenta il risultato dell'elaborazione. Si può avere però anche un arresto "inutile" che va considerato come una conclusione erronea dell'elaborazione. Va subito detto che può anche accadere che un'evoluzione non abbia mai fine (Vedi la successiva sezione e Problema della fermata). L’IMPORTANZA DELLA MACCHINA DI TURING L'importanza della MdT deriva dal fatto che permette di compiere tutte le elaborazioni effettuate mediante le macchine (elettroniche o meccaniche) apparse nella storia dell'umanità, incluse le elaborazioni che oggi si eseguono con le tecnologie più avanzate e gli odierni computer, e perfino le dimostrazioni matematiche che l'umanità ha raccolto nel corso della sua storia. Infatti, tutte le macchine che si conoscono possono essere ricondotte al modello estremamente semplice di Turing. Ad esempio, anche i più complessi computer odierni possono essere ricondotti a questo modello:  Innanzitutto, si individuano macchine relativamente semplici che effettuino le operazioni aritmetiche di base, e schemi di composizione di queste macchine che permettono di calcolare tutte le funzioni che hanno in ingresso numeri naturali. Queste funzioni corrispondono alle espressioni ottenute combinando come si vuole le suddette operazioni.  Quindi, si individuano versioni della MdT più ricche di risorse, che consentano di descrivere più agevolmente operazioni via via più complesse e che riguardino entità discrete dei generi più vari (numeri razionali, grafi, stringhe, espressioni simboliche di varia natura, ...), ma tutte riconducibili a numeri naturali; le elaborazioni e le entità dei tipi più vari devono essere prese in considerazione per sostenere la congettura di Church-Turing.  Proseguendo in questa direzione, si introducono MdT dotate di memorie complesse, come sequenze di nastri e memorie bidimensionali e tridimensionali, assimilabili ai dischi e alle pile di dischi; macchine che sono dotate della capacità di organizzare le istruzioni in un modo assimilabile al richiamo di un sottoprogramma come richiesto dai linguaggi di programmazione in uso.  Ulteriori arricchimenti possono includere calcoli simbolici ed elaborazioni parallele. 6  A questo punto si deve anche aggiungere che della MdT risulta opportuno anche considerare varianti non deterministiche, macchine formali che sono in grado di portare avanti contemporaneamente diverse elaborazioni, in numero illimitato. Queste macchine formali, a prima vista lontane da modelli di meccanismi concretamente realizzabili, possono considerarsi idealizzazioni di sistemi di computer che operano in parallelo, sistemi che la odierna tecnologia consente di realizzare abbastanza comunemente (i cosiddetti cluster). Con questo ragionamento si ottengono macchine formali che, in linea di principio, si possono ricondurre alla MdT introdotta inizialmente, ma che possono essere programmate molto più agevolmente, e soprattutto che possono essere realizzate con le tecnologie disponibili oggi. Dimostrare che una di queste macchine può risolvere un certo problema vuol dire dimostrare che anche la MdT può risolverlo. La conclusione è che tutte le computazioni effettuabili dalle macchine a noi note sono effettuabili anche dalla MdT. Una macchina che permetta di risolvere tutti i problemi risolvibili anche dalla MdT si dice "Turing- equivalente". La conclusione è che tutte le computazioni effettuabili dalla MdT sono effettuabili anche da tutte le macchine di cui si è in grado di dimostrare l'equivalenza con la MdT. Quindi, l'importanza della MdT è duplice:  non solo è il modello teorico di macchina più "potente" che si conosca,  ma può essere usato anche per verificare la potenza di nuovi modelli teorici. È possibile dimostrare l'equivalenza con la MdT anche servendosi di un modello più semplice e che si sa già essere Turing-equivalente. Ciò permette di riutilizzare facilmente, per un certo modello di macchina, i risultati teorici ottenuti per altri modelli di macchina. Inoltre, la MdT e gli altri modelli possono essere usati per dimostrare le capacità computazionali dei linguaggi di programmazione (in quanto vengono dimostrate le capacità delle rispettive macchine astratte). Tutte queste considerazioni rendono ragionevole sostenere la congettura di Church-Turing. Tuttavia, esse riguardano la calcolabilità degli algoritmi, e non la loro trattabilità: macchine equivalenti sono realizzate in modo diverso, e quindi possono eseguire la stessa computazione con un diverso numero di passi o dispendio di risorse (memoria, tempo, e altre). Ad esempio, un calcolo che un odierno computer esegue in pochi secondi richiederebbe un numero enorme di passi se eseguito su un meccanismo dotato di dispositivi operativi estremamente semplici come quelli della MdT. In sintesi, macchine diverse possono risolvere gli stessi problemi con programmi che hanno una diversa complessità computazionale.
Docsity logo


Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved