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.