La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Macchine di Turing e ricorsività generale. Esempio di MT MT1= (Q, S,, q 1, q 0 ) Q = {q 1 ; q 0 } S = { | } con una specifica codifica: ogni numero n.

Presentazioni simili


Presentazione sul tema: "Macchine di Turing e ricorsività generale. Esempio di MT MT1= (Q, S,, q 1, q 0 ) Q = {q 1 ; q 0 } S = { | } con una specifica codifica: ogni numero n."— Transcript della presentazione:

1 Macchine di Turing e ricorsività generale

2 Esempio di MT MT1= (Q, S,, q 1, q 0 ) Q = {q 1 ; q 0 } S = { | } con una specifica codifica: ogni numero n è rappresentato con n+1 | (q 1,|) = (|,d,q 1 ) (q 1,s 0 ) = (|,c,q 0 ) Ta daan!

3 Altro esempio di MT MT2 = (Q, S,, q 1, q 0 ) Q = {q 1 ; q 0 } S = { | } con la solita codifica: ogni numero n è rappresentato con n+1 | (q 1,|) = (s 0,d,q 1 ) (q 1,s 0 ) = (|,c,q 0 ) Ta daan!

4 Altro esempio ancora (q 1,|) = (|,d,q 1 ) (q 1,s 0 ) = (s 0,d,q 2 ) (q 2,|) = (s 0,d,q 2 ) (q 2,s 0 ) = (s 0,d,q 3 ) (q 3,|) = (s 0,d,q 3 ) (q 3,s 0 ) = (s 0,c,q 0 ) Ta daan! MT3

5 Esempi di MT speciali MT1 implementa la funzione successore MT2 implementa la funzione zero MT3 implementa P ed è facile vedere come qualunque P n k possa essere implementata con una MT Si dice che le funzioni base sono Turing- computabili, o T-computabili

6 ...e le altre funzioni? Le altre funzioni si ottengono da quelle base per mezzo di composizione, ricorsione, e minimalizzazione Se dimostriamo che queste operazioni conservano la T-computabilità, allora dimostriamo che tutte le funzioni ottenute sono T-computabili

7 La composizione h(x) = f g(x) = f(g(x)) Se f e g sono T-computabili, lo è anche h? Ossia: se esistono MTf e MTg, si riesce a costruire MTh? Sì: basta mettere insieme le istruzioni di MTf e di MTg, con lunico accorgimento di porre q 1 h = q 1 g, q 0 g = q 1 f, q 0 f = q 0 h

8 La ricorsione h(0) = k h(s(x)) = g(x,h(x)) Se g è T-computabile, lo è anche h? Ossia: avendo a disposizione MTg, si riesce a costruire MTh? Sì: è un po più complicato che nel caso della composizione S include i simboli $1, $2, $3 che sono usati come separatori

9 Ricorsione con MT Per calcolare h(x), MTh inizia scrivendo sul nasto (k* rappresenta k+1 barre): MTh cancella una barra da x* Se zero barre tra $2 e $3, loutput è tra $1 e $2 (perché h(0) = k) Altrimenti configura il nastro così: $1$2$3k*x* $1$2 $3 k* (x-1)* ||k* Codifica di (0,k)

10 Ricorsione con MT MTh esegue il programma di MTg sulla parte a destra di $3: ottenendo: dove j* è la codifica di j = g(0,k) = h(1) h(0) = k h(s(x)) = g(x,h(x)) $1$2 $3 k* (x-1)* ||k* $1$2 $3 k* (x-1)* | j*

11 Ricorsione con MT MTh cancella una barra tra $2 e $3, se non ci sono più barre vuol dire che x=1 e quindi loutput è j = g(0,k) = h(1), che si trova a destra di $3: Altrimenti nuova configurazione e si ripete: Eseguendo MTg a destra di $3 si calcola g(1,h(1)) = h(2)...e così via fino a h(x) $1$2 $3 k*| j* $1$2 $3 j* (x-2)* ||j* codifica di (1,j) = (1,h(1)) | |

12 La minimalizzazione f(x) = il più piccolo y: g(x,y)=0 Dobbiamo costruire MTf usando MTg MTf procede eseguendo iterativamente il codice di MTg per calcolare g(x,0), g(x,1), g(x,2),...g(x,y) e restituisce in output il primo y per cui g(x,y)=0 Se tale y non esiste MTf non si ferma mai (e infatti f non è definita per quella x)

13 Minimalizzazione con MT MTf configura inizialmente il nastro così: Poi copia i dati tra $1 e $2 nello spazio tra $2 e $3 e lì usa il codice di MTg per calcolare g(x,0) Se il risultato è zero cancella tutto il resto e lo lascia come output $1$2$3x* | codifica di (x,0)

14 Minimalizzazione con MT Altrimenti MTf riconfigura il nastro così: e ripete tutto per calcolare g(x,1)...e così via fino a trovare (eventualmente) il primo y per cui g(x,y)=0 $1$2$3x* | codifica di (x,1) |

15 Riassumendo: RG T-computabile Ta daan! Riesco a implementare qualsiasi funzione ricorsiva generale, ossia ottenuta dalle funzioni base con composizione, ricorsione, e minimalizzazione.

16 Dubbio... Uhm... Ok: se f è RG, allora esiste una MT che la implementa. Ma se scrivo una MT arbitrariamente complicata, che tipo di funzione viene computata?

17 Risposta: RG T-computabile Non esistono funzioni calcolate da una MT che non siano ricorsive generali Si può dimostrare che il programma di una qualsiasi MT può essere espresso come una funzione ottenuta dalle funzioni base con i soliti tre metodi In altre parole: sono uno strumento molto potente ma non fuoriesco da RG

18 RG T-computabile Dobbiamo dimostrare che ogni funzione computata da una MT è una funzione RG Visto che le funzioni RG sono aritmetiche, ossia lavorano con i numeri naturali, dobbiamo innanzitutto codificare gli stati di una MT

19 Gödelizzazione degli stati di MT MT con alfabeto Σ = {s 1,...,s n } nella seguente situazione u (sinistra) = 2 2 · 3 0 · 5 3 (se nastro vuoto: 1) v (destra) = 2 1 · 3 4 · 5 7 · 7 2 · 11 7 w (globale) = 2 u · 3 2 · 5 6 · 7 v s3s0s2 s1 s4s7s2s7 q6

20 Istruzione di MT come funzione w è la codifica di uno stato particolare di una MT Eseguendo unistruzione, MT passa da uno stato codificato da w a un altro stato, a cui corrisponde una codifica w Possiamo definire una funzione aritmentica totale: ρ MT (w)= w se w codifica uno stato non finale w altrimenti

21 La funzione ρ MT Il determinismo di MT garantisce che a un certo w corrisponda uno e un solo w, ossia che ρ MT sia una funzione Si dimostra (ma non lo vedremo) che ρ MT è una funzione ricorsiva primitiva

22 La funzione θ MT θ MT (w,0) = w θ MT (w,s(z)) = ρ MT (θ MT (w,z)) Se w è la codifica di uno stato di MT, θ MT (w,z) è la codifica dello stato che si raggiunge eseguendo z istruzioni di MT La funzione θ MT è in RP perché è definita per ricorsione a partire da P 1 1 e ρ MT

23 Da MT a funzione aritmetica Data una MT, come facciamo a ricavare una funzione aritmetica corrispondente? Come definire tale funzione sulla base della MT?

24 Da MT a funzione aritmetica 1.Dato linput numerico per la funzione, codifichiamo la situazione in cui tale input si trova sul nastro, la testina è nella posizione standard, e la MT è nello stato iniziale q 1 : otteniamo una codifica w 2.Tramite loperazione di minimalizzazione, ricaviamo il più piccolo z tale che θ MT (w,z) codifica una situazione finale w 3.Da w ricaviamo lo stato del nastro, su cui è presente loutput computato dalla MT, che corrisponderà alloutput della funzione aritmetica

25 Da MT a funzione aritmetica Si dimostra che la procedura nel passi 1, 2, e 3 permette di esprimere la funzione computata da una MT tramite tutte e sole le operazioni che generano funzioni ricorsive generali Quindi: a ogni MT corrisponde una funzione RG Ossia: T-computabile RG

26 Altro dubbio... Parlando di me, ci siamo concentrati sulla T-computabilità......ma come si rapporta la T-computabilità, che è la caratteristica di tutte le funzioni da me computate col concetto più generale di computabilità?


Scaricare ppt "Macchine di Turing e ricorsività generale. Esempio di MT MT1= (Q, S,, q 1, q 0 ) Q = {q 1 ; q 0 } S = { | } con una specifica codifica: ogni numero n."

Presentazioni simili


Annunci Google