1 / 21

Cenni sulla Macchina di Turing c.bonfanti - 2007

Cenni sulla Macchina di Turing c.bonfanti - 2007. Stazione di lettura/scrittura. (CC). Casella. Nastro. ELEMENTI COSTITUTIVI DI UNA MACCHINA DI TURING (TM: Turing Machine ).

aysha
Download Presentation

Cenni sulla Macchina di Turing c.bonfanti - 2007

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cenni sulla Macchina di Turing c.bonfanti - 2007

  2. Stazione di lettura/scrittura (CC) Casella Nastro ELEMENTI COSTITUTIVI DI UNA MACCHINA DI TURING (TM: Turing Machine) Nastro: è suddiviso in caselle e lo si suppone illimitato (ovvero prolungabile a piacere tanto a destra quanto a sinistra. Ogni casella contiene un solo carattere tra quelli ammessi, compresi nell’alfabeto C = {c*,c1,c2, … cn}. C è definito in relazione al compito che la macchina deve assolvere ma contiene comunque il carattere c* che si conviene rappresenti il contenuto della casella vuota. Il nastro, dietro apposito comando, può scorrere da una casella a una delle due adiacenti. Stazione di lettura/scrittura: finestra che individua una casella del nastro detta casella corrente e denominata CC. La notazione (CC) significa: contenuto di CC.

  3. Area di Controllo Stazione di lettura/scrittura (AC) (CC) Casella Nastro ELEMENTI COSTITUTIVI DI UNA MACCHINA DI TURING (TM: Turing Machine) Controllo: una zona (p.e. un rettangolo disegnato su un foglio di carta) denominata AC (Area di Controllo), destinata a contenere uno dei simboli dell’insieme S = {s1,s2, … sk}, detti convenzionalmente stati della TM. La notazione (AC) significa: contenuto di AC.

  4. Area di Controllo Stazione di lettura/scrittura (AC) (CC) Casella Nastro Alfabeto dei caratteri C = {c*,c1,c2, … cn} Stati S = {s1,s2, … sk} S* = {s*,s1,s2, … sk} Movimenti M = {de,si,fe} ELEMENTI COSTITUTIVI DI UNA MACCHINA DI TURING (TM: Turing Machine) Insiemi dei simboli

  5. Area di Controllo Stazione di lettura/scrittura (AC) (CC) Casella Nastro Alfabeto dei caratteri C = {c*,c1,c2, … cn} Stati S = {s1,s2, … sk} S* = {s*,s1,s2, … sk} Movimenti M = {de,si,fe} Programma s2 s3 sk s1 ... c* c1 c2 c,m,s ... cn (c C; m M; s S*) Istruzione ELEMENTI COSTITUTIVI DI UNA MACCHINA DI TURING (TM: Turing Machine)

  6. Programma: tabella a doppia entrata (matrice) in cui - Le colonne sono intestate con tutti i simboli di stato compresi in S = {s1,s2, … sk}; il numero degli stati dipende dal compito che la macchina deve assolvere. Lo speciale stato designato come s* (stop) non figura come intestazione di colonna. - Le righe sono intestate con tutti i caratteri dell’alfabeto C = {c*,c1,c2, … cn}. Istruzioni: sono gli elementi della tabella, costituiti da una terna ordinata di simboli c,m,s in cui: c è un carattere dell’alfabeto C; m è il comando di movimento che può assumere uno dei valori in M = {de,si,fe} che stanno per destra, sinistra, fermo; s è uno degli stati presenti in S*, incluso quindi lo stop s*. Le coordinate ci e sjdell’elemento della tabella si chiamano indirizzo dell’istruzione in esso contenuta.

  7. c2 c3 c2 c3 c2 c1 AC s2 s2 ... s1 c* c1 c2 c1,si, s5 ... Funzionamento della TM L’istruzione da eseguire (istruzione corrente) è quella che sta scritta all’indirizzo c2= (CC) e s2= (AC) e l’esecuzione consta di tre passi:

  8. c2 c3 c2 c3 c2 c1 AC c2 c3 c1 c3 c2 c1 passo 1 s2 s2 s2 ... s1 c* c1 c2 c1,si, s5 ... Funzionamento della TM L’istruzione da eseguire (istruzione corrente) è quella che sta scritta all’indirizzo c2= (CC) e s2= (AC) e l’esecuzione consta di tre passi: 1 - Si trascrive c1 (primo simbolo dell’istruzione corrente) in CC.

  9. c2 c3 c2 c3 c2 c1 AC c2 c3 c1 c3 c2 c1 passo 1 s2 s2 passo 2 c1 c1 c3 c2 c3 c2 s2 s2 ... s1 c* c1 c2 c1,si, s5 ... Funzionamento della TM L’istruzione da eseguire (istruzione corrente) è quella che sta scritta all’indirizzo c2= (CC) e s2= (AC) e l’esecuzione consta di tre passi: 1 - Si trascrive c1 (primo simbolo dell’istruzione corrente) in CC. 2 - Si sposta il nastro di una casella verso sinistra, come indicato dal secondo simbolo dell’istruzione corrente.

  10. c2 c3 c2 c3 c2 c1 AC c2 c3 c1 c3 c2 c1 passo 1 s2 s2 passo 2 c1 c1 c3 c2 c3 c2 s5 passo 3 s2 ... s1 c* c1 c2 c1,si, s5 ... Funzionamento della TM L’istruzione da eseguire (istruzione corrente) è quella che sta scritta all’indirizzo c2= (CC) e s2= (AC) e l’esecuzione consta di tre passi: 1 - Si trascrive c1 (primo simbolo dell’istruzione corrente) in CC. 2 - Si sposta il nastro di una casella verso sinistra, come indicato dal secondo simbolo dell’istruzione corrente. 3 - Se il terzo simbolo dell’istruzione corrente è s* allora la macchina si arresta, altrimenti si trascrive s5 in AC.

  11. c2 c3 c2 c3 c2 c1 AC c2 c3 c1 c3 c2 c1 passo 1 s2 s2 passo 2 c1 c1 c3 c2 c3 c2 s5 passo 3 s2 ... s1 c* c1 c2 c1,si, s5 ... Funzionamento della TM L’istruzione da eseguire (istruzione corrente) è quella che sta scritta all’indirizzo c2= (CC) e s2= (AC) e l’esecuzione consta di tre passi: 1 - Si trascrive c1 (primo simbolo dell’istruzione corrente) in CC. 2 - Si sposta il nastro di una casella verso sinistra, come indicato dal secondo simbolo dell’istruzione corrente. 3 - Si trascrive s5 (terzo simbolo dell’istruzione corrente) in AC. Se il terzo simbolo fosse stato s*, allora la macchina si sarebbe arrestata. Si ripete il ciclo: la prossima istruzione è perciò quella all’indirizzo (CC),(AC) ovvero c3,s5.

  12. s2 s1 c* 1,fe,s2 c*,de,s* 1,fe,s20,si,s2 0 1 2,fe,s2 1,si,s2 3,fe,s2 2,si,s2 4,fe,s2 3,si,s2 5,fe,s2 4,si,s2 6,fe,s2 5,si,s2 6 7,fe,s2 6,si,s2 8,fe,s2 7,si,s2 9 8 7 5 4 3 2 9,fe,s2 8,si,s2 0,de,s1 9,si,s2 ESEMPIO: La Macchina “+ 1” Adottiamo l’alfabeto C = {c*,0,1,2,3,4,5,6,7,8,9} e programmiamo la MT in modo che essa fornisca in output x+1, essendo x  0 il numero intero scritto inizialmente sul nastro e delimitato da almeno una casella vuota a destra e a sinistra (input); il tutto nella normale notazione decimale, con partenza e arresto sulla casella che contiene le unità. Il programma qui a fianco, dove S = {s1, s2}, risolve il problema per qualsiasi valore di x, ponendo inizialmente (AC) = s1. Si veda qui appresso lo sviluppo completo del caso in cui x = 299. Questo esempio è tratto, con adattamenti del docente, da: M.Italiani, G.Serazzi Elementi di informatica; Etas Kompass, 1973, pp.115-117.

  13. s1 CC AC indirizzo (CC),(AC) istruzione inizio 9 2 9 9,s1

  14. s1 CC AC indirizzo (CC),(AC) istruzione inizio 9 2 9 9,s10,de,s1

  15. s1 s1 CC AC indirizzo (CC),(AC) istruzione inizio 9 2 9 9,s10,de,s1 2 0 9

  16. s1 s1 CC AC indirizzo (CC),(AC) istruzione inizio 9 2 9 9,s10,de,s1 2 0 9 9,s1

  17. s1 s1 s1 s2 s2 s2 s2 CC AC indirizzo (CC),(AC) istruzione inizio 9 2 9 9,s10,de,s1 2 0 9 9,s1 0,de,s1 2 0 0 2,s1 3,fe,s2 3 0 0 3,s2 3,si,s2 3 0 0 0,s2 0,si,s2 3 0 0 c*,s2 c*,de,s* fine 0 3 0

  18. La prima idea fondamentale in base alla quale Turing ha concepito la sua “macchina” consiste nello scomporre l’algoritmo di calcolo nei passi più elementari, si potrebbe dire “atomici”, a cui si può ridurre il modo di procedere di un calcolatore umano. Questi, reciprocamente, può eseguire il “programma-algoritmo” senza esplicare alcuna decisione o ragionamento “intelligente”. Infatti gli si chiede soltanto di armarsi di carta, matita e gomma da cancellare e di attenersi acriticamente alle istruzioni del programma e alle regole di funzionamento. Si tratta quindi di un procedimento puramente meccanico che, in linea di principio, può essere eseguito da una macchina dotata degli opportuni automatismi. In tal modo, Turing ha fornito per la prima volta una definizione soddisfacente del concetto di algoritmo. Si noti che la descrizione della MT che abbiamo dato nelle slide precedenti (come pure la macchina “+1” usata quale esempio) è alquanto differente dall’impostazione originaria che Turing ha esposto nei paragrafi 1-5 del suo celebre articolo On Computable Numbers, with an Application to theEntscheidungsproblem.[1] [1] L’articolo (pubblicato nei Proceedings of the London Mathematical Society, vol.42, 1936-7, pp.230-265) si conclude con un’appendice in cui Turing dimostra l’equivalenza tra la sua nozione di computabilità e il λ-calcolo che Alonzo Church aveva introdotto in un articolo di poco precedente. Da un lato quindi Turing si metteva all’altezza del già rinomato Church e, dall’atro, rivendicava la differenza e l’originalità del proprio approccio. Questa appendice Turing la scrisse durante il suo lungo soggiorno a Princeton (1936-8) durante il quale fu a contatto diretto con lo stesso Church e con altri personaggi dell’università e dello IAS (p.e. Kleene e von Neumann). Subito dopo, sempre a Princeton, scrisse una breve nota per correggere alcuni errori formali che gli erano stati segnalati da P. Bernays (nota apparsa nello stesso volume dei Proceedings, pp.544-546).

  19. La più appariscente delle differenze che abbiamo introdotto consiste nel fatto che Turing presenta l’istruzione della MT come una quintupla ordinata[2] i cui primi due simboli sono quelli che noi abbiamo scorporato dal formato dell’istruzione (ridotto quindi a una terna) per usarli come “indirizzo” dell’istruzione stessa. Turing inoltre non introduce esplicitamente il comando s* (stop) né fa uso della nostra AC (Area di Controllo). Nella concezione originaria, infine, si fa distinzione tra l’insieme dei simboli ausiliari (tra i quali il “blank” della cella vuota) e quello dei simboli “significativi” (chiamati “figures”); quest’ultimo insieme, che equivale grosso modo al nostro alfabeto C, è composto dai soli caratteri 0 e 1, fatto che peraltro non ha alcuna attinenza con l’uso dell’aritmetica binaria. In ogni caso si tratta di varianti che non ledono la sostanza delle idee di Turing e che si è ritenuto utile adottare a scopo didattico, anche per dare più immediato risalto alla stretta analogia tra la MT e le logiche hardware / software del computer a programma registrato. [2]Alcuni autori riducono la quintupla a una quadrupla in virtù del fatto che Turing raggruppa i comandi di scrittura e di spostamento (terzo e quarto simbolo) sotto l’unica denominazione di “operations”.

  20. input per UTM programma particolare P & dati di input per P output di UTM output di (P applicato ai dati di input per P) UTM Macchina Universale di Turing (UTM) La UTM stabilisce il paradigma concettuale del calcolatore a programma registrato; concetto che sarà ripreso da von Neumann nella sua “architettura” e quindi implementato sotto forma di “macchina fisica”.

  21. La seconda idea fondamentale, consiste nell’aver dimostrato che esiste un programma universale che opera su un nastro su cui siano stati scritti (con una apposita codificazione) sia le istruzioni di un programma particolare, del tipo visto nell’esempio, e sia i dati di input su cui tale programma deve operare. Il programma universale (che altro non è se non la Macchina Universale di Turing - UTM[3]) produce lo stesso output che sarebbe stato prodotto da quel programma particolare applicato a quei dati di input. L’obiettivo dell’articolo di Turing (esposto nel paragrafo finale) era peraltro di natura esclusivamente logica: risolvere il problema della decisione (l’entscheidungsproblem, proposto da Hilbert) con un teorema analogo ai teoremi “negativi” che Kurt Gödel aveva pubblicato nel 1933 (incompletezza; non-decidibilità). Turing infatti definì e risolse negativamente il problema che chiamò problema dell’arresto (halting problem) che è sostanzialmente isomorfo al problema di Hilbert e alla non-decidibilità di Gödel. [3]La UTM è descritta nei paragrafi 6 e 7 dell’articolo citato.

More Related