Lez.5 - Ca` Foscari
Transcript
Lez.5 - Ca` Foscari
Note del corso di Calcolabilità e Linguaggi Formali - Lezione 5 Alberto Carraro 23 novembre 2011 DAIS, Universitá Ca’ Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Macchine di Turing Le Macchine d Turing sono gli automi più potenti che tratteremo in tutto il corso. Tali automi possono essere considerati un’astrazione matematica dei nostri computer, proprio come le teorie fisiche sono un’astrazione del nostro mondo. Come per le altre classi di automi, esistono le Macchine d Turing deterministiche e quelle non-deterministiche; noi vedremo solo quelle deterministiche e pertanto non menzioneremo mai più questa distinzione in seguito. Definition 1 (TM). Una Macchina di Turing (TM, in breve) è una settupla M = (Q, Σ, Γ, δ, q0 , B, F ) dove – – – – Q è l’insieme finito degli stati, Σ è l’alfabeto di input, Γ è l’alfabeto di nastro (ed abbiamo Σ ⊆ Γ ), δ : Q×Γ ,→ Q×Γ ×{L, R} è la funzione di transizione ed {L, R} è l’insieme dei simboli di direzione, – q0 ∈ Q è lo stato iniziale, – B ∈ Γ − Σ è il blank, – F ⊆ Q è l’insieme degli stati finali. Infine si richiede che (F × Γ ) ∩ dom(δ) = ∅. La condizione (F × Γ ) ∩ dom(δ) = ∅ vuol dire che non vi devono essere delle transizioni indicate da δ a partire dalle coppie (q, X) dove q è uno stato finale. Si può notare una certa somiglianza con la definizione di PDA. Difatti una TM è in un certo senso una specie di automa a pila dove la pila è infinita e la si può scorrere avati e indietro. Si utilizzano le ultime lettere maiuscole dell’alfabeto inglese X, Y, Z, . . . per indicare generici elementi di Γ mentre si utilizzano le prime lettere minuscole dell’alfabeto greco α, β, γ, . . . per indicare generici elementi di Γ ∗ . Il meccanismo di base di una Macchina di Turing è il seguente: – vi è un nastro, diviso in celle di uguale dimensione, posto in posizione orizzontale che si estende all’infinito sia verso destra che verso sinistra; 2 A. Carraro – vi è una testina che prima legge una cella del nastro poi, in base a ciò che c’è scritto, allo stato in cui si trova la macchina ed a ciò che dice la funzione δ, scrive un simbolo nella cella, ed infine si sposta verso sinistra o destra sul nastro. La prossima tappa è definire il linguaggio accettato da una TM. A tal fine dobbiamo precisare cosa significa dire che una stringa è accettata da una TM. Al contrario di quanto fatto per gli automi finiti, ed analogamente al caso dei PDA, per le Macchine di Turing non si può definire una funzione di transizione estesa δ̂ : Q × Σ ∗ × Γ → Q × Γ × {L, R}. In luogo della funzione di transizione estesa si definisce una relazione binaria ` su Γ ∗ × Q × Γ ∗ che svolge un compito analogo a quello della funzione di transizione estesa nel caso degli automi finiti. Definition 2. Una descrizione istantanea (ID, in breve) è una tripla (α, q, β) ∈ Γ ∗ × Q × Γ ∗. In una ID (α, q, β) abbiamo che: – q indica lo stato attuale, – αβ è la sequenza di simboli contenuti nelle celle che appartengono alla porzione di nastro compresa tra il simbolo non-blank più a sinistra e il simbolo non-blank più a destra. – la testina si trova sopra la cella che contiene il primo simbolo della stringa β. Definition 3 (Relazione di transizione estesa). Data una TM M = (Q, Σ, Γ, δ, q0 , B, F ) definiamo la sua relazione di transizione estesa ` su Γ ∗ × Q × Γ ∗ come la più piccola che soddisfa le seguenti proprietà: – se δ(q, Xi ) = (p, Y, L), allora (X1 · · · Xi−1 , q, Xi Xi+1 · · · Xn ) ` (X1 · · · Xi−2 , p, Xi−1 Y Xi+1 · · · Xn ). Si hanno due casi particolari: (1) se i = 1, allora (, q, X1 · · · Xn ) ` (, p, BY X2 · · · Xn ) (2) se i = n e Y = B, allora (X1 · · · Xn−1 , q, Xn ) ` (X1 · · · Xn−2 , p, Xn−1 ) – se δ(q, Xi ) = (p, Y, R), allora (X1 · · · Xi−1 , q, Xi Xi+1 · · · Xn ) ` (X1 · · · Xi−1 Y, p, Xi+1 · · · Xn ). Si hanno due casi particolari: (1) se i = 1 e Y = B, allora (, q, X1 · · · Xn ) ` (, p, X2 · · · Xn ) (2) se i = n, allora (X1 · · · Xn−1 , q, Xn ) ` (X1 · · · Xn−1 Y, p, ) dove gli Xj sono elementi di Γ e p, q ∈ Q. La relazione ` spiega completamente il funzionamento di una TM. Ad esempio (αX, q, Y β) ` (α, p, XZβ) dice che se l’automa si trova nello stato q e la testina legge il simbolo Y , allora la TM – passa nello stato q, – sostituisce il simbolo Y con il simbolo Z nella cella che ha appena letto, – si sposta di una cella verso sinistra. Note del corso di Calcolabilità e Linguaggi Formali - Lezione 5 3 Chiaramente la sequenza di azioni descritta qui sopra si può verificare solo se δ(q, Y ) = (p, Z, L). Facciamo seguire un esempio di Macchina di Turing. Example 1. Sia M = ({q0 , q1 , q2 , q3 , q4 }, {0, 1}, {0, 1, X, Y, B}, δ, q0 , B, {q4 }) con la funzione di transizione definita come segue: 0 1 X Y B q0 (q1 , X, R) (q3 , Y, R) q1 (q1 , 0, R) (q2 , Y, L) (q1 , Y, R) q2 (q0 , 0, L) (q0 , X, R) (q2 , Y, L) q3 (q3 , Y, R) (q4 , B, R) q4 In questo caso abbiamo che L(M) = {0n 1n : n ≥ 1}. 1.1 Una rappresentazione grafica delle TM Come nel caso dei PDA, la descrizione formale di una Macchina di Turing può essere complicata da cogliere immediatamente. Vediamo ora brevemente come si possono disegnare delle TM con una notazione che dia le stesse informazioni di quella formale, ma che sia più semplice da capire. Introdurremo questa notazione con un esempio, che speriamo dia l’idea di come applicare la notazione grafica ad ogni caso possibile. Example 2. Ecco la rappresentazione grafica della macchina dell’esempio 1. 89:; / ?>=< q0 Y /Y, R 0/0, R 0/Y,R a Y /Y,R 89:; / ?>=< q1 1/Y,L 89:; / ?>=< q2 s Y /Y, L 0/0, L X/X,R B/B,R ?>=< 89:; 89:; 0123 7654 / ?>=< q3 q4 I Y /Y,R 1.2 Computazioni e terminazione Definition 4. Sia M = (Q, Σ, Γ, δ, q0 , B, F ) una TM. Una computazione è sequenza π = (α1 , q1 , β1 ), . . . , (αn , qn , βn ), . . . di ID legate dalla relazione `, cioè (αi , qi , βi ) ` (αi+1 , qi+1 , βi+1 ) per ogni coppia di indici i, i + 1 in π. 4 A. Carraro Si noti che, siccome la TM è deterministica, ogni computazione è univocamente determinata dalla prima ID che vi compare. In seguito noteremo πi = (αi , qi , βi ), cioè πi è l’i-esima ID di π. Si noti che vi possono essere delle computazioni infinite. Diciamo che una computazione π – termina se esiste una ID (αi , qi , βi ) tale che (αi , qi , βi ) 0, ovvero non esiste alcuna ID (αi+1 , qi+1 , βi+1 ) tale che (αi , qi , βi ) ` (αi+1 , qi+1 , βi+1 ). – non termina altrimenti. Si noti che il requisito (F × Γ ) ∩ dom(δ) = ∅ implica che se (α, q, β) è una ID tale che q ∈ F , allora (α, q, β) 0. Pertanto tutte le computazioni che raggiungono uno stato finale terminano. Definition 5 (Decisore). Una TM M = (Q, Σ, Γ, δ, q0 , B, F ) è un decisore se per ogni w ∈ Σ ∗ la computazione che comincia in (, q0 , w) termina. La TM dell’esempio 1 è un decisore. Indichiamo con `∗ la chiusura riflessiva e transitiva della relazione `, cioè la più piccola relazione riflessiva e transitiva contenente `. Definition 6 (Accettazione). Diciamo che una stringa w ∈ Σ ∗ è accettata da una TM M sse esiste una configurazione (α, p, β) tale che p ∈ F e (, q0 , w) `∗ (α, p, β). In altre parole w è accettata se la computazione eseguita da M partire dalla ID iniziale (, q0 , w) termina raggiungendo uno stato finale. Si noti vi possono essere due diverse situazioni in cui w NON è accettata: 1. la computazione eseguita da M partire dalla ID iniziale (, q0 , w) termina raggiungendo uno stato NON finale; 2. la computazione eseguita da M partire dalla ID iniziale (, q0 , w) NON termina affatto. Definition 7 (Linguaggio di una TM). Sia M = (Q, Σ, Γ, δ, q0 , B, F ) una TM. Il linguaggio accettato da M, indicato con L(M), è l’insieme delle stringhe accettate da M, ovvero L(M) = {w ∈ Σ ∗ : ∃p ∈ F.∃α, β ∈ Γ ∗ . (, q0 , w) `∗ (α, p, β)}. Per cui tra le stringhe che non appartengono a L(M) vi sono tutte quelle che inducono M ad eseguire una computazione che non termina. 1.3 Linguaggi (semi-)decidibili Andiamo ora a studiare la classe dei linguaggi accettati dalle TM. Definition 8 (Linguaggio semi-decidibile). Un linguaggio L è semi-decidibile sse esiste una TM M tale che L = L(M). Definition 9 (Linguaggio decidibile). Un linguaggio L è decidibile sse esiste un decisore M tale che L = L(M). Note del corso di Calcolabilità e Linguaggi Formali - Lezione 5 5 Indichiamo con SDEC la classe dei linguaggi semi-decidibili ed indichiamo con DEC la classe dei linguaggi decidibili. Facciamo notare che nel libro di testo [2] i linguaggi semi-decidibili vengono chiamati ricorsivamente enumerabili, mentre in linguaggi decidibili vengono chiamati ricorsivi. Si tratta di una pura questione di termini e la teminologia nell’area della calcolabilità non è del tutto standard, ma ha una lunga storia (vedere [4]). Remark 1. Se un linguaggio è decidibile, allora è anche semi-decidibile. Theorem 1. Se un linguaggio è decidibile, allora anche il suo complementare è decidibile. Proof. Sia L un linguaggio decidibile. Allora esiste un decisore M tale che L(M) = L. Costruiamo un decisore Mc a partire da M come segue: – Gli stati di Mc sono gli stessi di M, più un nuovo stato r; – Le transizioni di Mc sono le stesse di M, più una nuova transizione (q, X) 7→ (r, X, R) per ogni coppia (q, X) dove q è un o stato non-finale in cui si può arrivare in M e tale che non vi è una ransizione prevista per (q, X) in M; – L’unico stato finale di Mc è r. Allora si vede subito che Mc è un decisore tale che L(Mc ) = Lc . t u Theorem 2. Se un linguaggio L e il suo complementare sono entrambi semidecidibili, allora L è decidibile. Proof. Siano L ed Lc entrambi semi-decidibili. Allora esistono due TM M e M0 tali che L(M) = L e L(M0 ) = Lc . Sia w una stringa qualsiasi. Siccome w sta in almeno uno tra L ed Lc , almeno una delle due macchine prendendo in input w si arresta dopo una computazione finita raggiungendo uno stato finale. Possiamo costruire una terza TM M00 seguendo le seguenti indicazioni: data una stringa w in input – M00 simula la computazione in parallelo di M e M0 con input w; – se la computazione in M termina in uno stato finale, allora M00 termina in uno stato finale; – – se la computazione in M0 termina in uno stato finale, allora M00 termina in uno stato non-finale. È evidente che le due situazioni non possono presentarsi entrambe, ma almeno una di esse si presenterà di sicuro. Pertanto M00 è un decisore ed inotre L(M00 ) = L. t u 2 Robustezza del modello di Turing Nelle lezioni passate abbiamo visto come i modelli di automi visti ammettesero modifiche che non modificavano la classe dei linguaggi ricoosciuti (per esempio 6 A. Carraro determinismo/non-determinismo, ε-mosse, accettazione per pila vuota/stati finali). Anche nel caso delle Macchine di Turing discutiamo, però in maniera breve ed informale, alcune modifiche “senza conseguenze”. Il particolare modello di macchina di Turing introdotto nella Definizione 1 è in un certo senso irrilevante per il prosieguo del nostro corso, poiché noi ci occuperemo solo della potenza di calcolo e non dell’efficienza del modello (come invece fa la Teoria degli Automi e la Teoria della Complessità)). Citeremo i risultati ottenuti in letteratura; per alcune dimostrazioni e per ulteriori informazioni il lettore interessato può fare riferimento a [2, 3, 1] per le loro prove e per ulteriori informazioni. Stati. Anche se un solo stato non è in genere sufficienti per riconoscere ogni linguaggio semi-decidibile, due stati lo sono. Cosı̀ non è rilevante se si limita il nostro modello di macchina con un numero fisso n ≥ 2 di stati, si permette un qualsiasi numero di stati. Simboli. Chiaramente dobbiamo avere almeno due simboli, dal momento che noi consideriamo il blank come un simbolo. Due simboli sono sufficienti per per riconoscere ogni linguaggio semi-decidibile, dal momento che è possibile economizzare sul numero di simboli, aumentando il numero di stati. Cancellazione. Si può indifferentemente ammettere o meno che la testina possa cancellare simboli dal nastroè, nel senso che tutti i linguaggi semi-decidibili possono essere opportunamente riconosciuti da macchine che non cancellano mai. Il risultato dimostra che in linea di principio non abbiamo bisogno di materiale cancellabile, come nastri magnetici o dischi, per la memoria esterna del computer. Nastri e testine. Qui la libertà è pressoché assoluta. Lo sintetizziamo nel seguente risultato. Una Macchina di Turing con un numero finito di nastri, ognuno di dimensione infinita e con il suo numero finito di testine che lo scansionano contemporaneamente, può essere simulata da una Macchina di Turing con un solo nastro lineare, infinito in una sola direzione, e analizzato da una sola testina. Tuttavia, abbiamo bisogno delle due direzioni di movimento, dal momento che la limitazione ad una sarebbe compatibile solo con il comportamento finito o periodico sulle cellule al di fuori degli inputs. Determinismo. Il nostro modello di una macchina di Turing è deterministico, nel senso che la funzione di transizione associa un solo risultato per ogni coppia stato-simbolo letto. Elementi di randomizzazione a nei dispositivi di calcolo sono stati introdotti da Shannon–De Leeuw, Moore, Shannon–Shapiro. Ci sono fondamentalmente due modelli. Le Macchine di Turing non-deterministiche si comportano, in una situazione ambigua in cui più transizioni diverse sono applicabili, scegliendo casualmente una di loro: la loro potenza di calcolo, almeno per linguaggi sull’alfabeto {0, 1}, non supera la potenza di quelle deterministiche. Le Macchine di Turing probabilistiche differiscono da quelle non-deterministiche in quanto lo stato successivo ha una probabilità, e quindi le istruzioni in conflitto non hanno la stessa probabilità di essere scelte dalla macchina. In conclusione, quando consideriamo una Macchina di Turing M = (Q, Σ, Γ, δ, q0 , B, F ) è possibile assumere Note del corso di Calcolabilità e Linguaggi Formali - Lezione 5 3 7 Modello di Turing e computers Gran parte dell’interesse nella teoria della calcolabilità ed in particolare nelle Mcchine di Turing è dovuto al fatto che esse sono considerate un modello matematico dei nostri moderni computers. Pertanto i risultati teorici che mostrano cosa le TM possono e non possono fare, ci fanno anche capire cosa i computer possono e non possono fare. Tutto ciò è legato alla fedeltà del modello astratto alle caratteristiche dei reali calcolatori. Facciamo però notare la differenza fondamentale tra i computer e le TM: ogni calcolatore sulla Terra ha una memoria finita e può effettuare calcoli su numeri finiti compresi entro certi limiti, oltre i quali si ottengono degli errori di overflow. Le TM invece, con il loro nastro infinito, non hanno questi problemi e possono infatti maneggiare qualsiasi numero naturale (oltre ogni limite imponibile) e simulare una memoria di qualsiasi dimensione. Considerato questo, non esiste alcun calcolatore sulla terra che possa fare tutto quello che fanno le TM, ma una cosa è sicuramente vera: i problemi che dimostriamo irrisolvibili per tutte le TM sono irrisolvibili anche per i nostri calcolatori concreti! Per approfondire leggete la Sezione 8.6 di [2] (escludendo la sezione 8.6.3). References 1. M. Arbib. Theories of abstract automata. Prentice Hall, 1969. 2. J. Hopcroft, R. Motwani, and J. Ullman. Introduction to Automata Theory, Languages, and Computation. Addison Wesley - Pearson, 2001. 3. M. Minsky. Computation: finite and infinite machines. Prentice Hall, 1967. 4. R. Soare. Computability and recursion. Bulletin of Symbolic Logic, 2(3):284–321, 1996.