Calcolabilità secondo Turing

Transcript

Calcolabilità secondo Turing
CALCOLABILITA' SECONDO TURING
(T-CALCOLABILITÀ')
Abbiamo visto una enumerazione delle macchine a registri elementari: E0, E1, E2, ….
Vediamo ora enumerazioni delle macchine di Turing: M0, M1, M2….
Vedremo enumerazioni delle funzioni ricorsive: f0, f1, f2….
Esistono vari modi di descrivere una macchina di Turing M mediante una stringa di
caratteri:
•
cod(M) (su Hromkovic, pag.121-122)
•
cod(M) (sul libro di testo, pag. 285)
•
descrizione linearizzata (sul libro di testo: sfrutta il fatto che ogni macchina di
Turing può essere realizzata come composizione di alcune macchine elementari) .
Nel modello su H. ogni TM M ha nastro semiinfnito, r caratteri, due stati di arresto ed
m+1 di movimento. Prima specifchiamo il code(M) ∈{0, 1, #}*, poi tramite un
omeomorfsmo otteniamo una codifca cod(M) ∈{0,1}*.
E’ facile vedere che il linguaggio CodTM = {cod(M) | M è una TM} ⊂ {0,1}* delle
codifche delle MT (fssato un modello) è decidibile; sia Acod un algoritmo che lo
riconosce.
Lemma. Esiste un ordine lineare M0 M1 M2.... di tutte le MT ed un algoritmo che, dato
i, calcola cod(Mi).
x=0; cont=0;
while(cont < i+1){
utilizza Acod per decidere se x ∈ CodTM;
if (x ∈ CodTM) then {cont++; s = x};
x = successore di x nell’ordinamento canonico di {0,1}*;
}
return (s)
Modelli diversi portano a enumerazioni diverse delle macchine.
Poichè è possibile descrivere una MT con una stringa di caratteri si può fornire tale
descrizione come input ad un'altra macchina di Turing.
Consideriamo il modello ridotto di macchine aventi nastro semiinfnito ed alfabeto di
lavoro {0, 1}. Sia M una macchina e sia DM una descrizione (codifca) di M con {0,1}.
Teorema. Esiste una macchina di Turing U, detta macchina di Turing universale, che,
data una descrizione DM ed una stringa x, entrambe in {0,1}*, a partire dallo stato
iniziale q0U realizza la computazione:
q0U DM b x |—* α qfU β
con qfU stato fnale
se e solo se la macchina M, dallo stato iniziale q0, realizza la computazione:
q0x
|—* α qf β
con qf stato fnale.
Dim. La macchina universale esegue una per una le trasformazioni richieste dalle
quintuple della macchina M contenute in DM. Al termine cancella dal nastro la
descrizione DM.
NOTA BENE. Possiamo interpretare la MT universale come:
• un calcolatore e DM e x come un programma e i suoi dati
• un interprete di un linguaggio di programmazione.
IL PROBLEMA DELLA TERMINAZIONE
(HALTING PROBLEM)
Assumiamo un modello meno ridotto dove le MT hanno nastro semiinfnito, alfabeto di
input Γ = {0,1} e codifca DM in Γ (cioè codifca ed alfabeto di input sono sullo stesso
alfabeto). Dimostriamo l'esistenza di una funzione che non è calcolabile con una MT.
Lemma. E' T-calcolabile la funzione :
g(DM, x)
=1
se M con input x termina
= indefnita
altrimenti
Dim. Usare la Macchina Universale che marca gli estremi.
Teorema. Non e' T-calcolabile la funzione :
h(DM, x)
=1
se M con input x termina
=0
se M con input x non termina
Dim.
Supponiamo che h sia calcolabile, cioè che esista una MT H che la calcola.
Costruiamo la macchina H' che è la composizione di due macchine: la prima con input
DM fornisce DM b DM, la seconda è la macchina H. Allora H' calcola la funzione:
h'(DM)
=1
se M con input DM termina
=0
se M con input DM non termina
cioè H' riconosce se una MT termina quando le viene fornito in input il proprio codice.
Usando H' è facile costruire una nuova macchina H" che calcola la funzione:
h"(DM)
= indefnita
se h'(DM) = 1
=0
se h'(DM) = 0
H" termina con 0 se H' si e' fermata con 0 e si mette a ciclare, se H' si e' fermata con 1.
Cosa accade se alla macchina H'' diamo in input la descrizione DH” di se stessa?
- H'' con input DH'' termina se h'(DH”) = 0 cioè se H'' con input DH” non termina
- H'' con input DH'' non termina se h'(DH”) = 1 cioè se H'' con input DH” termina
In ogni caso abbiamo una contraddizione.
Dal problema della terminazione segue che il linguaggio:
LH = { DM # x | DM , x ∈{0, 1}* ed M con input x termina}
non è T-decidibile ma è T-semidecidibile.
Poichè le macchine di Turing sono un insieme numerabile mentre le parti P({0,1} *) non
lo sono, esistono infniti linguaggi L ⊆ {0,1}* che non sono accettati da MT (non sono
T-semidecidibili).
Cerchiamone uno. (Da: J. Hromkovic, Cap. 5, pag. 134-153).
Defniamo una matrice booleana infnita:
D = [dij]i,j=0,.,∞
- sulle colonne le parole w0, w2,... di {0,1}* in ordine canonico
- sulle righe le macchine M0, M1,...., ecc.
sia dij = 1 ⇔ Mi accetta wj
Teorema. Il linguaggio:
Ldiag0 = {w | w ∈{0,1}*, se w = wi , i∈N, dii = 0}
(cioè Mi non accetta wi)
non è T-semidecidibile.
Dim: se lo fosse esisterebbe una macchina Mj che lo accetta. Ma allora si avrebbe che:
Mj accetta wj ⇔ wj ∈Ldiag0 ⇔ djj = 0 ⇔ Mj non accetta wj.
Teorema. Il linguaggio:
Ldiag1 = {w | w ∈{0,1}*, se w = wi , i∈N, dii = 1}
(cioè Mi accetta wi)
non è T-decidibile ma è T-semidecidibile.
Dim:
Ldiag1 non è T-decidibile altrimenti lo sarebbe anche Ldiag0.
Una TM D che accetta Ldiag1 si comporta così:
- con input w calcola l’intero i tale che w = wi
- a partire da i genera DMi e poi simula Mi su wi :
se Mi accetta, rifuta o non si ferma anche D accetta, rifuta o non si ferma.
Teorema. Il linguaggio:
LU ={DM # x | x ∈{0,1}* e M accetta x}
non è T-decidibile ma è T-semidecidibile.
Dim: Dal teorema dell’esistenza della Macchina Universale segue che il linguaggio è
semidecidibile. Vediamo che se fosse decidibile lo sarebbe anche Ldiag1.
Se A fosse un algoritmo A che decide LU potremmo costruire un algoritmo B che:
- con input w calcola l’intero i tale che w=wi
- a partire da i genera DMi e poi esegue A a partire dalla stringa DMi #wi
- se A accetta (Mi accetta wi ) B accetta w mentre se A rifuta (Mi non accetta wi ) B
rifuta w.
Ovviamente B deciderebbe Ldiag1
Se con L(M) ⊆ Γ* indichiamo il linguaggio delle parole accettate da una macchina MT
M = < Γ, b, K, q0, F, δ > allora i tre linguaggi:
Lempty = {DM | L(M) = φ}
LH, ε = {DM | M si ferma da ε}
LEQ = {DM # DM' | L(M) = L(M') }
non sono decidibili.
Le dimostrazioni su J. Hromkovic, Cap. 5, pag. 134-153.
Sappiamo che sono sinonimi:
Riconosciuto da TM
Accettato da TM
T-decidibile
T-semidecidibile
ricorsivo
enumerabile ricorsivamente
L diag0
Ldiag1 =Lcdiag0
LU
LH
Lempty
LH,ε
LEQ