La macchina di turing Uno dei pionieri dello studio della logica dei computer così come la conosciamo oggi ed il primo ad interessarsi all'argomento dell’intelligenza.

Slides:



Advertisements
Presentazioni simili
LE INTUIZIONI MATEMATICHE
Advertisements

Modelli simulativi per le Scienze Cognitive
L’inventore del calcolatore odierno
Antonio Cisternino La Macchina di Turing.
CHI ERA ALAN TURING? Turing fece parte del team di matematici che, a partire dalla base di Bletchley Park, decodificarono i messaggi scritti dalle macchine.
IL GRANDE INFORMATICO intervista virtuale ad Alan Mathison Turing
LA MACCHINA DI TURING Nel 1936 il matematico inglese A. M. Turing propose una definizione del concetto di algoritmo tramite un modello matematico di macchina.
© 2015 Giorgio Porcu - Aggiornamennto 01/12/2015 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Rappresentazione dell’ Informazione Sistemi.
Table View. Problemi ricorrenti Una situazione ricorrente è quella in cui il controller potrebbe avere un’altezza superiore a quella dello schermo. In.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
I Paradossi di Zenone I paradossi di Zenone costituiscono forse i primi esempi del metodo di dimostrazione noto come dimostrazione per assurdo, usato.
Indici di Posizione Giulio Vidotto Raffaele Cioffi.
CONTROLLO DELLA CONCORRENZA
© 2007 SEI-Società Editrice Internazionale, Apogeo
Alcune note, dalla rete, sui Sistemi cellulari
Filtri di vario genere: dove ?
PRESENTAZIONE di RICCARDO
Lavoro di gruppo 3^E sia Peroni Jessica Mascheroni Beatrice
Insiemi di numeri e insiemi di punti
Fotogrammetria - Lezione 3
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Coding unplugged e con il PC nella scuola primaria
Riconoscere oggetti dell’ambiente
Rappresentazione dell’ Informazione Informazione e Comunicazione
Unità di apprendimento 1
La rappresentazione delle informazioni
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Microcontrollori e microprocessori
Algoritmi e soluzioni di problemi
Universal Dependencies e treebank
IL CONCETTO DI ALGORITMO
I PERMESSI IN LINUX.
Stili Cognitivi di Elaborazione dell’informazione
P. L. C. (Programmable Logic Controller)
Excel 1 - Introduzione.
Organizzazione fisica
FORMULE E FUNZIONI SU EXCEL
I BUS È un insieme di fili conduttori che permette il passaggio di dati tra le varie periferiche del pc.
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
John Von Neumann John von Neumann, nato il 28 dicembre 1903  e morto a Washington l’8 febbraio 1957, è stato un matematico, fisico e informatico ungherese naturalizzato statunitense.
Le comunicazioni in codice
Le comunicazioni in codice
Gli schemi concettuali
Rappresentazione dei Numeri
Programmazione e Laboratorio di Programmazione
Informatica - Prof. Gregorio Cosentino
Programmazione e Laboratorio di Programmazione
Programmare.
I RADICALI Definizione di radicali Semplificazione di radicali
La Macchina Enigma.
Programmazione e Laboratorio di Programmazione
Dall’analisi del problema alla definizione dell’algoritmo
Gli automi.
Programmazione e Laboratorio di Programmazione
32 = 9 x2 = 9 x = 3 32 = 9 √9 = 3 L’estrazione di radice
Lezione n°6 Prof.ssa Rossella Petreschi
Concetti base 1.1.
Algoritmi e Strutture Dati
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Automi e stringhe Lezione n°24 Prof.ssa Rossella Petreschi
Le Macchine di Turing.
Teoria della computabilità
Programmazione e Laboratorio di Programmazione
Unità 1 Programmi base.
Analisi e Sintesi di circuiti sequenziali
Programmazione e Laboratorio di Programmazione
Array e Stringhe Linguaggio C.
Unità D1 L’informatica e il problem solving
Algoritmi.
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

La macchina di turing Uno dei pionieri dello studio della logica dei computer così come la conosciamo oggi ed il primo ad interessarsi all'argomento dell’intelligenza artificiale fu Alan Turing. Durante la seconda guerra mondiale Turing mise le sue capacità matematiche al servizio del Department of Communications inglese per decifrare i codici usati nelle comunicazioni tedesche, un compito particolarmente difficile in quanto i tedeschi avevano sviluppato un tipo di computer denominato Enigma, capace di generare un codice che mutava costantemente. Turing ed i suoi compagni lavorarono con uno strumento chiamato Colossus che decifrava in modo veloce ed efficiente i codici tedeschi creati con Enigma.

La macchina di turing Dopo questo contributo fondamentale allo sforzo bellico, finita la guerra, continuò a lavorare per il National Physical Laboratory (NPL), continuando la ricerca nel campo dei computer digitali. Lavorò nello sviluppo all'Automatic Computing Engine (ACE), uno dei primi tentativi nel creare un vero computer digitale. Fu in questo periodo che iniziò ad esplorare la relazione tra i computer e la natura. Scrisse un articolo dal titolo Intelligent Machinery, pubblicato poi nel 1969. Fu questa una delle prime volte in cui sia stato presentato il concetto di Intelligenza Artificiale. Turing era dell'idea che si potesse raggiungere la chimera di un'intelligenza davvero artificiale seguendo gli schemi del cervello umano.

La macchina di turing Alan Turing propose nel 1936 l'idea di una macchina immaginaria che potesse effettuare ogni tipo di calcolo su numeri e simboli. La Macchina di Turing (o più brevemente MdT) in informatica è 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 macchina di turing Una Macchina di Turing è composta da: Un nastro infinito che può essere considerato come il supporto di memorizzazione delle informazioni (memoria esterna) è suddiviso in celle, in una cella può essere contenuto un simbolo preso da un alfabeto opportuno; un alfabeto è semplicemente un insieme di simboli che comprende anche il blank che corrisponde alla cella vuota. Una testina di lettura/scrittura in grado di leggere e scrivere il contenuto della cella del nastro su cui si trova. Un’unità di controllo che evolve attraversando un insieme finito di stati interni, a partire da uno stato iniziale fino a raggiungere uno stato finale. Lo stato interno rappresenta una situazione in cui si trova la macchina durante l'esecuzione e come per uno stato della mente di un essere umano, lo stato interno di una MdT definisce l'ambiente in cui una decisione viene presa.

La macchina di turing Come funziona una MdT? La macchina durante l'esecuzione analizza il nastro, una cella alla volta, iniziando dalla cella su cui è posizionata la testina. Ad ogni passo, la macchina legge un simbolo sul nastro e in accordo col suo stato interno corrente:  Determina il suo prossimo stato interno.  Scrive un simbolo sul nastro. Decide se spostare o meno la testina a sinistra o a destra di una posizione.

La macchina di turing Il programma di una MdT definito da un insieme di regole, o quintuple, del tipo: S = Stato interno corrente, lo stato della macchina all'istante presente; i = Simbolo letto, il simbolo letto all'istante presente; S (s, i) = Nuovo-stato-interno lo stato della macchina all'istante successivo; è funzione dei primi due parametri. I (s, i) = Simbolo-scritto il simbolo scritto dalla macchina all'istante successivo; è funzione dei primi due parametri; D (s, i) = Verso testina, il verso (movimento) della macchina (destra/sinistra); è funzione dei primi due parametri. Ciascuna quintupla associa ad ogni coppia:  S (stato interno corrente) – i (simbolo letto). una terna:  S (nuovo-stato-interno), I (simbolo scritto), D (verso testina).  Non può esistere più di una regola che inizi con una coppia stato-interno-corrente, simbolo-letto.

La macchina di turing Vediamo in modo semplice, come una MdT effettua i calcoli. Inizialmente il nastro contiene una sequenza finita di simboli, detta sequenza di ingresso. La MdT è nel suo stato interno iniziale con la testina posizionata su una cella del nastro contenente un certo simbolo. A partire da questa configurazione iniziale, la MdT effettua una serie di azioni (chiamate mosse) seguendo rigorosamente il suo insieme di regole. Se la macchina raggiunge uno stato interno per cui non esiste nessuna quintupla per la coppia: stato-interno-corrente, simbolo-letto allora la MdT si ferma e termina la sua computazione. In particolare: 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 (Questo passaggio da una configurazione a quella dell'istante successivo si chiama mossa della MdT). Se non esiste la regola l’esecuzione termina.

La macchina di turing Facciamo un semplicissimo esempio: Vogliamo programmare una Macchina di Turing che, dato sul nastro di input una sequenza di simboli, 0 e 1, scambi gli 0 in 1 e viceversa. Inizialmente la testina si posiziona sul primo simbolo della sequenza dobbiamo cambiare uno 0 in 1 (o viceversa) spostare la testina sul prossimo simbolo Cambiamo 0 in 1 (continua) Le regole corrispondenti sono: (q0, 0, q0, 1, d) (q0, 1, q0, 0, d) In questo caso è sufficiente lo stato 0. Al termine della sequenza l’esecuzione sarà arrestata poiché non esiste una quintupla che inizia con la coppia q0, blank.

La macchina di turing Della MdT vengono considerate molteplici varianti (modelli) che si dimostrano avere la stessa portata. 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. Esistono molti programmi simulatori di macchine di Turing, ovvero programmi capaci di simulare il comportamento di una macchina di Turing mostrandone il comportamento sullo schermo di un calcolatore.