29
Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Macchine di Turing, problemi ricorsivi e

ricorsivamente enumerabili

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 2: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Problemi che i calcolatori non possono risolvere

E’ importante sapere se un programma e’ corretto, cioe’ faquello che ci aspettiamo.

E’ facile vedere che il programma contente solo il comandoprintf(‘‘ciao’’) stampa ciao.

Ma il programma in Fig. 8.2 del libro?

Stampa ciao, dato un input n se e solo se l’equazionexn + yn = zn ha una soluzione dove x , y e z sono interi.

Sappiamo ora (ultimo teorema di Fermat) che stampa ciao,con l’input n = 2, e cicla per sempre su input n > 2.

Ci sono voluti 300 anni per provarlo.

Possiamo sperare di avere un programma che prova lacorrettezza di programmi?

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 3: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

L’ipotetico programma H che testa “ciao”

Supponiamo che esista un programma H tale che, dato unqualunque programma P e un input I , dice si se P con input I

stampa ”ciao”, altrimenti dice no.

Hello-worldtester

HP

I yes

no

Modifichiamo il comando di stampa di no di H in ciao.Otteniamo il programma H1

P

I

H1

yes

hello, world

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 4: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Modifichiamo H1 in modo che l’input I sia lo stesso P . Otteniamoil programma H2:

H2Pyes

hello, world

H2 stampa si se P con input P stampa ciao, altrimenti stampaciao.

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 5: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

H2 non puo’ esistere

Diamo H2 come input ad H2.

H2H2

yes

hello, world

Se H2 stampa si, avrebbe dovuto stampareciao.Se H2 stampa ciao, avrebbe dovuto stampare si.Quindi H2 non puo’ esistere.Quindi neanche H puo’ esistere.Quindi il problema affrontato e’ indecidibile: non esiste nessunprogramma che, dato un programma qualsiasi e un input, sappiadire se quel programma con quell’input stampa ciao.

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 6: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Problemi indecidibili

Problemi per cui non c’e’ nessun programma che li possarisolvere.

Problema: appartenenza di una stringa ad un linguaggio.

Il numero di linguaggi diversi su un alfabeto non e’ numerabile.

I programmi (stringhe finite su un alfabeto) sono numerabili:li ordino per lunghezza, e poi lessicograficamente ⇒ primoprogramma, secondo programma, ecc.

Quindi esistono infinitamente piu’ linguaggi che programmi.

Quindi devono esistere problemi indecidibili (Godel 1931).

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 7: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

La macchina di Turing (Turing, 1936)

X 2 X i X nX 1

controlFinite

. . .BBB B. . .

Una TM fa una mossa in funzione del suo stato, e del simbolosotto la testina di lettura del nastro.In una mossa, una TM

1 cambia stato

2 scrive un simbolo del nastro nella cella sotto la testina

3 muove la testina di una cella verso destra o verso sinistra

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 8: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Definizione formale come automa

Una macchina di Turing deterministica e’ una 7-tupla

M = (Q,Σ,Γ, δ, q0,B ,F ),

dove

Q e’ un insieme finito di stati,

Σ e’ un insieme finito di simboli di input,

Γ e’ un insieme finito di simboli di nastro,

δ e’ una funzione di transizione da Q × Γ a Q × Γ × {L,R},

q0 e’ lo stato iniziale,

B ∈ Γ e’ il simbolo blank, e

F ⊆ Q e’ l’insieme di stati finali.

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 9: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Descrizioni istantanee

Una TM cambia configurazione dopo ogni mossa.Usiamo le descrizioni istantanee (ID) per descrivere leconfigurazioni.Una ID e’ una stringa della forma

X1X2 · · ·Xi−1qXiXi+1 · · ·Xn

dove

1 q e’ lo stato della TM

2 X1X2 · · ·Xn e’ la porzione non-blank del nastro

3 La testina e’ sopra il simbolo i -esimo

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 10: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Le mosse e il linguaggio di una TM

Useremo ⊢M

per indicare una mossa di M da una configurazione ad

un’altra.• Supponiamo δ(q,Xi ) = (p,Y ,L). AlloraX1X2 · · ·Xi−1qXiXi+1 · · ·Xn ⊢

MX1X2 · · · pXi−1YXi+1 · · ·Xn

• Se δ(q,Xi ) = (p,Y ,R), abbiamoX1X2 · · ·Xi−1qXiXi+1 · · ·Xn ⊢

MX1X2 · · ·Xi−1YpXi+1 · · ·Xn

Indichiamo la chiusura riflessiva e transitiva di ⊢M

con∗

⊢M.

• Una TM M = (Q,Σ,Γ, δ, q0,B ,F ) accetta il linguaggio

L(M) = {w ∈ Σ∗ : q0w∗

⊢M

αpβ, p ∈ F , α, β ∈ Γ∗}

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 11: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Una TM per {0n1n : n ≥ 1}

M = ({q0, q1, q2, q3, q4}, {0, 1}, {0, 1, X , Y , B}, δ, q0, B, {q4})

dove δ e’ data dalla tabella seguente

0 1 X Y B

→ q0 (q1,X ,R) (q3,Y ,R)q1 (q1, 0,R) (q2,Y ,L) (q1,Y ,R)q2 (q2, 0,L) (q0,X ,R) (q2,Y ,L)q3 (q3,Y ,R) (q4,B ,R)

⋆q4

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 12: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Possiamo rappresentare M con il seguente diagramma di

transizione

/Y Y

/Y Y

/Y Y

0/0

X/0

/X X

/B B

/ Y1

/Y Y

0/0Start

q q q

q q

0 1 2

3 4

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 13: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Una TM con “output”

La seguente TM calcola

− n = max(m − n, 0)

0 1 B

→ q0 (q1,B ,R) (q5,B ,R)q1 (q1, 0,R) (q2, 1,R)q2 (q1, 1,L) (q2, 1,R) (q4,B ,L)q3 (q3, 0,L) (q3, 1,L) (q0,B ,R)q4 (q4, 0,L) (q4,B ,L) (q6, 0,R)q5 (q5,B ,R) (q5,B ,R) (q6,B ,R)

⋆q6

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 14: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Il diagramma di transizione e’

/1 1/0 B

1 / B

1 / B

0/0

/1 1

/B B

/B B

0/0/0 B

1 / B

B / 0

0/0 /1 1

/B B

Startq q q

q q

0 1 2

q

q0 / 1

4

3

5 6

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 15: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Accettazione per arresto

Una TM si arresta se entra in uno stato q guardando unsimbolo di nastro X e non ci sono mosse possibili, cioe’δ(q,X ) non e’ definita.

Se una TM accetta una stringa, possiamo assumere che siarresti (basta rendere indefinito δ(q,X ) per ogni q

accettante).

Se non accetta, non possiamo fare in modo che si arresti.

Linguaggi ricorsivi: esiste una TM che si arresta su ognistringa (sia accettata che no).

Linguaggi ricorsivamente enumerabili: esiste una TM che siarresta se la stringa e’ accettata.

Problema decidibile: esiste una TM che si arresta sempre.

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 16: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Altri modelli di TM

Estensioni:

piu’ nastri

non-determinismo

Restrizioni:

nastro illimitato solo in una direzione e divieto di sostituire unsimbolo del nastro con B

due stack al posto del nastro

due contatori (mossa: cambio stato e +1 o -1 da uncontatore)

Tutti i modelli sono equivalenti: accettano i linguaggiricorsivamente enumerabili (tesi di Church, 1936).

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 17: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

TM e computer

Da TM a computer: basta avere sempre memoria daaggiungere, per simulare il nastro infinito.

Da computer a TM: vari nastri (memoria, istruzione, indirizzodi memoria, file di input, nastro ausiliario), controllo finito pereseguire una istruzione dopo l’altra leggendo e scrivendo inastri.

Differenza di tempo tra computer e TM: polinomiale. La TMpuo’ simulare n passi di un computer in O(n3) passi.

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 18: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Linguaggi ricorsivamente enumerabili

D’ora in poi: calcolatore = macchina di Turing

L e’ ricorsivamente enumerabile se L = L(M) per una TMM. M si ferma se accetta una stringa, ma potrebbe nonfermarsi se non la accetta.

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 19: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Un linguaggio ricorsivamente enumerabile

Consideriamo il linguaggio formato dalle coppie (M,w) taliche:

M e’ una TM (codificata in binario) con alfabeto {0,1}w e’ una stringa di 0 e 1M accetta w

Se questo problema e’ indecidibile, allora lo e’ anche ilproblema in cui una TM puo’ avere qualunque alfabeto.

Primo passo: codificare una TM come una stringa di 0 e 1.

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 20: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Codice per una TM

Possiamo associare ad ogni stringa binaria un indice intero 1,2, 3, ..., cosi’ enumeriamo le stringhe: ǫ e’ la prima stringa, 0la seconda, 1 la terza, 00 la quarta, 01, la quinta, ...

Ordinamento per lunghezza, con stringhe lunghe ugualiordinate lessicograficamente.

Simbolo wi per la stringa i -esima

Vogliamo fare la stessa cosa anche per le TM.

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 21: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Codice per una TM

Per rappresentare M = (Q, {0, 1},Γ, δ, q1 ,B ,F} come una stringabinaria, dobbiamo assegnare interi agli stati, ai simboli di nastro, ealle direzioni L e R:

Supponiamo che gli stati siano q1, q2, . . . , qr . Stato iniziale:q1, stato finale q2

Supponiamo che i simboli di nastro siano X1,X2, . . . ,Xs .Inoltre: 0 = X1, 1 = X2, B = X3.

L = D1 e R = D2.

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 22: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Codice per una TM

Per la funzione di transizione: se δ(qi ,Xj) = (qk ,Xl ,Dm), lacodifica e’ 0i10j10k10l10m (mai due 1 consecutivi).

Per un’intera TM: codici per tutte le transizioni, separati da11: C111C211 . . . Cn−111Cn

Esempio: M = ({q1, q2, q3}, {0, 1}, {0, 1,B}, δ, q1 ,B , {q2})δ e’ definita da: δ(q1, 1) = (q3, 0,R), δ(q3, 0) = (q1, 1,R),δ(q3, 1) = (q2, 0,R), δ(q3,B) = (q3, 1,L).Codici per le regole di transizione:01001000101000001010100100000100100101000001000100010010

Codice per M:01001000101001100010101001001100010010010100110001000100010010Anche altri codici, elencando le transizioni in ordine diverso.

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 23: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Codici e TM

Data una TM M, abbiamo associato un intero i : M e’ lai -esima TM, scritta Mi .

Molti interi non corrispondono a nessuna TM. Esempio:11001 o 001110.

Se w1 non e’ un codice valido, allora diciamo che Mi e’ la TMche si arresta subito per qualunque input (un solo stato enessuna transizione). Quindi L(Mi) = ∅.

Per codificare (M,w): codice di M seguito da 111 seguito daw.

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 24: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Il linguaggio di diagonalizzazione

Il linguaggio di diagonalizzazione Ld e’ l’insieme dellestringhe wi tali che wi 6∈ L(Mi).

Tutte le stringhe w tali che M con codice w non accetta w .

Matrice con TM sulle righe e stringhe sulle colonne ⇒ ladiagonale corrisponde a stringhe wi e TM Mi . Le stringhe diLd corrispondono agli 0 della diagonale.

E’ possibile che la diagonale complementata sia una riga? No,perche’ la diagonale complementata e’ in disaccordo con ogniriga in almeno una posizione.

⇒ Ld non puo’ essere accettato da nessuna TM.

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 25: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Linguaggi ricorsivi

L e’ ricorsivo se L = L(M) per una TM M tale che:

se w ∈ L, allora M la accetta (e si arresta)

se w 6∈ L, allora M non la accetta ma si arresta.

Problema (dell’accettazione di L): e’ decidibile se L e’ ricorsivo,altrimenti e’ indecidibile.

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 26: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Classi di linguaggi

ricorsivi = decidibili = M si arresta sempre

ricorsivamente enumerabili = M si arresta se accetta

non ricorsivamente enumerabili. Esempio: Ld .

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 27: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Proprieta’ dei linguaggi ricorsivi

Teorema 9.3: Se L e’ ricorsivo, anche L̄ e’ ricorsivo.Prova: Se L e’ ricorsivo, esiste M che si arresta sempre.Modifichiamo M in M ′ in modo che M ′ accetti quando M nonaccetta, e viceversa. Anche M ′ si arresta sempre e accetta L̄.Allora L̄ e’ ricorsivo.

Conseguenza: se L e’ RE, ma L̄ non e’ RE, allora L non puo’ esserericorsivo.

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 28: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

Proprieta’ dei linguaggi RE

Teorema 9.4: Se L e L̄ sono RE, allora L e’ ricorsivo.Prova: Sia L = L(M1) e L̄ = L(M2). Costruiamo M che esegue inparallelo (due nastri, due testine) M1 e M2. Se l’input e’ in L, M1

lo accetta e si ferma, quindi anche M accetta e si ferma. Se l’inputnon e’ in L, allora M2 lo accetta e si ferma, quindi M lo rifiuta masi ferma. Quindi M si ferma in ogni caso.

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Page 29: Macchine di Turing, problemi ricorsivi e ricorsivamente ...frossi/mt-2008.pdf · Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili. Problemi indecidibili Problemi

L e L̄

Dove possono stare L e L̄?

sia L che L̄ ricorsivi

ne’ L ne’ L̄ sono RE

L e’ RE ma non ricorsivo, e L̄ non e’ RE

L̄ e’ RE ma non ricorsivo, e L non e’ RE

Non e’ possibile che un linguaggio sia ricorsivo e l’altro sia RE oneanche RE (teorema 9.3).Non e’ possibile che siano entrambi RE ma non ricorsivi (teorema9.4).

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili