+ All Categories
Home > Documents > DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il...

DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il...

Date post: 31-Oct-2019
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
267
DECIDIBILIT ` A E INDECIDIBILIT ` A Obiettivo: analizzare i limiti della risoluzione dei problemi mediante algoritmi. Studieremo: il potere computazionale degli algoritmi nella soluzione dei problemi. Proveremo che esistono problemi che possono essere risolti mediante algoritmi e altri no.
Transcript
Page 1: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

DECIDIBILITA E INDECIDIBILITA

Obiettivo: analizzare i limiti della risoluzione dei problemi mediantealgoritmi.

Studieremo: il potere computazionale degli algoritmi nellasoluzione dei problemi.

Proveremo che esistono problemi che possono essere risoltimediante algoritmi e altri no.

Page 2: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problemi di decisione

I problemi di decisione sono problemi che hanno come soluzioneuna risposta si o no.

Esempi:

I PRIMO: Dato un numero x , x e primo?

I CONNESSO: Dato un grafo G , G e connesso?

I ACCETTAZIONE DI UN DFA: Dato un DFA B e una stringaw , l’automa B accetta w?

Page 3: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problemi di decisione

I problemi di decisione sono problemi che hanno come soluzioneuna risposta si o no.

Esempi:

I PRIMO: Dato un numero x , x e primo?

I CONNESSO: Dato un grafo G , G e connesso?

I ACCETTAZIONE DI UN DFA: Dato un DFA B e una stringaw , l’automa B accetta w?

Page 4: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problemi di decisione

I problemi di decisione sono problemi che hanno come soluzioneuna risposta si o no.

Esempi:

I PRIMO: Dato un numero x , x e primo?

I CONNESSO: Dato un grafo G , G e connesso?

I ACCETTAZIONE DI UN DFA: Dato un DFA B e una stringaw , l’automa B accetta w?

Page 5: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Ricorda: Linguaggi decidibili

Un linguaggio L ⊆ Σ∗ si dice decidibile se esiste una MdT chericonosce L e che si ferma su ogni input.

L’ input per una MdT e sempre una stringa. Se vogliamo dare ininput altri oggetti, questi devono essere codificati come stringhe.

Page 6: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Codifica dei problemi di decisione

Rappresenteremo i problemi di decisione mediante linguaggi.

Es.: il linguaggio che rappresenta il problema “CONNESSO” e

{〈G 〉 | G e un grafo connesso}

dove 〈G 〉 denota una “ragionevole” codifica di G medianteuna stringa su un alfabeto Σ.

Ad esempio possiamo prendere Σ = {0, 1, (, ),#}.Il grafo

G = ({1, 2, 3}, {(1, 2), (2, 3), (3, 1)})

puo essere codificato come

(1#10#11)#((1#10)#(10#11)#(11#1)).

Page 7: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Codifica dei problemi di decisione

Rappresenteremo i problemi di decisione mediante linguaggi.

Es.: il linguaggio che rappresenta il problema “CONNESSO” e

{〈G 〉 | G e un grafo connesso}

dove 〈G 〉 denota una “ragionevole” codifica di G medianteuna stringa su un alfabeto Σ.

Ad esempio possiamo prendere Σ = {0, 1, (, ),#}.Il grafo

G = ({1, 2, 3}, {(1, 2), (2, 3), (3, 1)})

puo essere codificato come

(1#10#11)#((1#10)#(10#11)#(11#1)).

Page 8: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Codifica dei problemi di decisione

Rappresenteremo i problemi di decisione mediante linguaggi.

Es.: il linguaggio che rappresenta il problema “CONNESSO” e

{〈G 〉 | G e un grafo connesso}

dove 〈G 〉 denota una “ragionevole” codifica di G medianteuna stringa su un alfabeto Σ.

Ad esempio possiamo prendere Σ = {0, 1, (, ),#}.Il grafo

G = ({1, 2, 3}, {(1, 2), (2, 3), (3, 1)})

puo essere codificato come

(1#10#11)#((1#10)#(10#11)#(11#1)).

Page 9: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Es. Grafi Connessi

Sia A un linguaggio di stringhe che rappresentano grafi connessi(non orientati)Nota: in questo modo esprimiamo un problema computazionalecome un problema di riconoscimento di linguaggi.Descriveremo una MdT che decide A

Page 10: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Es. Grafi Connessi

Input 〈G 〉, codifica del grafo G

1. Seleziona un nodo di G e marcalo

2. Ripeti finche si trovano nuovi nodi da marcare:

2.1 Per ogni nodo v in G , se v e connesso ad un nodo marcatoallora marcalo.

3. se tutti i nodi risultano marcati accetta altrimenti reject

Page 11: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Es. Grafi Connessi: rappresentazione

Grafo rappresentato mediante 2 liste:– Lista dei nodi (numeri naturali)– Lista degli edges (coppie di numeri)

Nota: non specifichiamo l’alfabeto (binario, decimale, ....).Ignoriamo i dettagli non importanti dell’implementazione.

Page 12: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Es. Grafi Connessi: verifica input

Controlla che l’input sia

I una lista di nodi (digit) senza ripetizioni

I una lista di coppie di nodi (digit presenti nella lista precedente)

Page 13: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Es. Grafi Connessi: implementazione

1) Seleziona un nodo di G e marcalo: Marca il primo nodo sullalista (es. con un · sul digit piu a sinistra)2) Ripeti finche nuovi nodi sono marcati

3) Per ogni nodo v in G , se v e connesso ad un nodo marcatoallora marcalo:

3.1) Sottolinea il primo nodo n1 senza · sulla lista (sottolineando ildigit piu a sinistra)

3.2) Sottolinea il primo nodo n2 con · sulla lista.

3.3) Cerca se esiste edge (n1, n2)Se SI allora marca n1 con · e vai a 2)Se NO, sia n2 il successivo nodo con · sulla lista, sottolinealoe vai a 3.3)

4) se tutti i nodi risultano marcati accetta altrimenti reject: Scorrila lista dei nodi: se tutti i nodi hanno · accetta, altrimenti reject

Page 14: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Codifica dei problemi di decisione

“Ragionevole” codifica: un algoritmo che produce unarappresentazione univoca dell’input mediante una stringa.

I Diremo che un problema di decisione e:I decidibile se il linguaggio associato e decidibile

I semidecidibile se il linguaggio associato e Turing riconoscibileI indecidibile se il linguaggio associato non e decidibile.

I Nota. MdT verifica, come passo preliminare, che l’inputcorrisponde a una codifica dell’input del problema. Proseguela computazione solo in questo caso.

Page 15: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Codifica dei problemi di decisione

“Ragionevole” codifica: un algoritmo che produce unarappresentazione univoca dell’input mediante una stringa.

I Diremo che un problema di decisione e:I decidibile se il linguaggio associato e decidibile

I semidecidibile se il linguaggio associato e Turing riconoscibileI indecidibile se il linguaggio associato non e decidibile.

I Nota. MdT verifica, come passo preliminare, che l’inputcorrisponde a una codifica dell’input del problema. Proseguela computazione solo in questo caso.

Page 16: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Codifica dei problemi di decisione

“Ragionevole” codifica: un algoritmo che produce unarappresentazione univoca dell’input mediante una stringa.

I Diremo che un problema di decisione e:I decidibile se il linguaggio associato e decidibileI semidecidibile se il linguaggio associato e Turing riconoscibile

I indecidibile se il linguaggio associato non e decidibile.

I Nota. MdT verifica, come passo preliminare, che l’inputcorrisponde a una codifica dell’input del problema. Proseguela computazione solo in questo caso.

Page 17: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Codifica dei problemi di decisione

“Ragionevole” codifica: un algoritmo che produce unarappresentazione univoca dell’input mediante una stringa.

I Diremo che un problema di decisione e:I decidibile se il linguaggio associato e decidibileI semidecidibile se il linguaggio associato e Turing riconoscibileI indecidibile se il linguaggio associato non e decidibile.

I Nota. MdT verifica, come passo preliminare, che l’inputcorrisponde a una codifica dell’input del problema. Proseguela computazione solo in questo caso.

Page 18: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Codifica dei problemi di decisione

“Ragionevole” codifica: un algoritmo che produce unarappresentazione univoca dell’input mediante una stringa.

I Diremo che un problema di decisione e:I decidibile se il linguaggio associato e decidibileI semidecidibile se il linguaggio associato e Turing riconoscibileI indecidibile se il linguaggio associato non e decidibile.

I Nota. MdT verifica, come passo preliminare, che l’inputcorrisponde a una codifica dell’input del problema. Proseguela computazione solo in questo caso.

Page 19: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riepilogando....

I M macchina di Turing con tre possibili risultati computazione(accettazione, rifiuto, loop):

- Il linguaggio accettato da M e Turing riconoscibile.- Se il linguaggio accettato e associato a un problema, il

problema e semidecidibile.

I M macchina di Turing con due possibili risultati computazione(accettazione, rifiuto):

- Il linguaggio accettato da M e decidibile.- Se il linguaggio accettato e associato a un problema, il

problema e decidibile.

Page 20: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riepilogando....

I M macchina di Turing con tre possibili risultati computazione(accettazione, rifiuto, loop):

- Il linguaggio accettato da M e Turing riconoscibile.

- Se il linguaggio accettato e associato a un problema, ilproblema e semidecidibile.

I M macchina di Turing con due possibili risultati computazione(accettazione, rifiuto):

- Il linguaggio accettato da M e decidibile.- Se il linguaggio accettato e associato a un problema, il

problema e decidibile.

Page 21: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riepilogando....

I M macchina di Turing con tre possibili risultati computazione(accettazione, rifiuto, loop):

- Il linguaggio accettato da M e Turing riconoscibile.- Se il linguaggio accettato e associato a un problema, il

problema e semidecidibile.

I M macchina di Turing con due possibili risultati computazione(accettazione, rifiuto):

- Il linguaggio accettato da M e decidibile.- Se il linguaggio accettato e associato a un problema, il

problema e decidibile.

Page 22: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riepilogando....

I M macchina di Turing con tre possibili risultati computazione(accettazione, rifiuto, loop):

- Il linguaggio accettato da M e Turing riconoscibile.- Se il linguaggio accettato e associato a un problema, il

problema e semidecidibile.

I M macchina di Turing con due possibili risultati computazione(accettazione, rifiuto):

- Il linguaggio accettato da M e decidibile.- Se il linguaggio accettato e associato a un problema, il

problema e decidibile.

Page 23: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riepilogando....

I M macchina di Turing con tre possibili risultati computazione(accettazione, rifiuto, loop):

- Il linguaggio accettato da M e Turing riconoscibile.- Se il linguaggio accettato e associato a un problema, il

problema e semidecidibile.

I M macchina di Turing con due possibili risultati computazione(accettazione, rifiuto):

- Il linguaggio accettato da M e decidibile.

- Se il linguaggio accettato e associato a un problema, ilproblema e decidibile.

Page 24: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riepilogando....

I M macchina di Turing con tre possibili risultati computazione(accettazione, rifiuto, loop):

- Il linguaggio accettato da M e Turing riconoscibile.- Se il linguaggio accettato e associato a un problema, il

problema e semidecidibile.

I M macchina di Turing con due possibili risultati computazione(accettazione, rifiuto):

- Il linguaggio accettato da M e decidibile.- Se il linguaggio accettato e associato a un problema, il

problema e decidibile.

Page 25: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Linguaggi/Problemi decidibili

I Sia B un DFA e w una parola. L’automa B accetta w?(Problema dell’accettazione di un DFA)

I Sia A un DFA. Il linguaggio L(A) accettato da A e vuoto?(Problema del vuoto)

I Siano A,B due DFA. I due automi sono equivalenti, cioe sonotali che L(A) = L(B)? (Problema dell’equivalenza)

Page 26: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Linguaggi/Problemi decidibili

I Sia B un DFA e w una parola. L’automa B accetta w?(Problema dell’accettazione di un DFA)

I Sia A un DFA. Il linguaggio L(A) accettato da A e vuoto?(Problema del vuoto)

I Siano A,B due DFA. I due automi sono equivalenti, cioe sonotali che L(A) = L(B)? (Problema dell’equivalenza)

Page 27: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Linguaggi/Problemi decidibili

I Sia B un DFA e w una parola. L’automa B accetta w?(Problema dell’accettazione di un DFA)

I Sia A un DFA. Il linguaggio L(A) accettato da A e vuoto?(Problema del vuoto)

I Siano A,B due DFA. I due automi sono equivalenti, cioe sonotali che L(A) = L(B)? (Problema dell’equivalenza)

Page 28: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema dell’accettazione di un DFA:

Sia B un DFA e w una parola. L’automa B accetta w?

Il corrispondente linguaggio e

ADFA = {〈B,w〉 | B e un DFA che accetta la parola w}.

Teorema

ADFA e un linguaggio decidibile.

Dimostrazione.

Costruiamo una MdTM che decide ADFA: sull’input 〈B,w〉, dove B e un DFA e w e unaparola, M

I Simula B sulla stringa wI Se la simulazione termina in uno stato finale di B allora M

accetta, altrimenti rifiuta.

Page 29: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema dell’accettazione di un DFA:

Sia B un DFA e w una parola. L’automa B accetta w?

Il corrispondente linguaggio e

ADFA = {〈B,w〉 | B e un DFA che accetta la parola w}.

Teorema

ADFA e un linguaggio decidibile.

Dimostrazione.

Costruiamo una MdTM che decide ADFA: sull’input 〈B,w〉, dove B e un DFA e w e unaparola, M

I Simula B sulla stringa wI Se la simulazione termina in uno stato finale di B allora M

accetta, altrimenti rifiuta.

Page 30: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema dell’accettazione di un DFA:

Sia B un DFA e w una parola. L’automa B accetta w?

Il corrispondente linguaggio e

ADFA = {〈B,w〉 | B e un DFA che accetta la parola w}.

Teorema

ADFA e un linguaggio decidibile.

Dimostrazione.

Costruiamo una MdTM che decide ADFA: sull’input 〈B,w〉, dove B e un DFA e w e unaparola, M

I Simula B sulla stringa wI Se la simulazione termina in uno stato finale di B allora M

accetta, altrimenti rifiuta.

Page 31: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema dell’accettazione di un DFA:

Sia B un DFA e w una parola. L’automa B accetta w?

Il corrispondente linguaggio e

ADFA = {〈B,w〉 | B e un DFA che accetta la parola w}.

Teorema

ADFA e un linguaggio decidibile.

Dimostrazione.

Costruiamo una MdTM che decide ADFA: sull’input 〈B,w〉, dove B e un DFA e w e unaparola, M

I Simula B sulla stringa wI Se la simulazione termina in uno stato finale di B allora M

accetta, altrimenti rifiuta.

Page 32: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema dell’accettazione di un DFA:

Sia B un DFA e w una parola. L’automa B accetta w?

Il corrispondente linguaggio e

ADFA = {〈B,w〉 | B e un DFA che accetta la parola w}.

Teorema

ADFA e un linguaggio decidibile.

Dimostrazione.

Costruiamo una MdTM che decide ADFA: sull’input 〈B,w〉, dove B e un DFA e w e unaparola, M

I Simula B sulla stringa w

I Se la simulazione termina in uno stato finale di B allora Maccetta, altrimenti rifiuta.

Page 33: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema dell’accettazione di un DFA:

Sia B un DFA e w una parola. L’automa B accetta w?

Il corrispondente linguaggio e

ADFA = {〈B,w〉 | B e un DFA che accetta la parola w}.

Teorema

ADFA e un linguaggio decidibile.

Dimostrazione.

Costruiamo una MdTM che decide ADFA: sull’input 〈B,w〉, dove B e un DFA e w e unaparola, M

I Simula B sulla stringa wI Se la simulazione termina in uno stato finale di B allora M

accetta, altrimenti rifiuta.

Page 34: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Dettagli

Codifica di 〈B,w〉: lista le 5 componenti di B sul nastro di M (unadopo l’altra)MdT M verifica che l’input sia corretto. Se NO viene rifiutatoSuccessivamente M simula la computazione di B

Page 35: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Dettagli

M simula la computazione di B

I Usa · per marcare lo stato iniziale come stato correntee · per marcare il primo simbolo di w come simbolo corrente

I Scorre la sottostringa che rappresenta la funzione ditransizione di B per conoscere la transizione corrispondente astato corrente r (con ·) e simbolo corrente x (con ·)⇒ M conosce nuovo stato q

I M sposta · da r allo stato q e da x al simbolo successivoLa procedura termina quando la string input di B e terminata

I Ora M controlla lo stato corrente (con ·) ed accetta sse esso efinale per B

Page 36: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto: Dato un DFA A, L(A) e vuoto?

Linguaggio corrispondente:EDFA = {〈A〉 | A e un DFA e L(A) = ∅}.

Teorema

EDFA e un linguaggio decidibile.

Dimostrazione.

Progettiamo una MdT T che sull’input 〈A〉 dove A e un DFA:

I Marca lo stato iniziale q0 di AI Ripeti fino a quando non viene marcato nessun nuovo stato:

Marca tutti gli stati che hanno una transizione entrante dauno stato marcatoNota stiamo marcando tutti gli stati q tali che esiste uncammino dallo stato iniziale q0 di A a q nel grafo di A

I Se la lista non contiene stati finali, accetta; altrimenti rifiuta.

Page 37: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto: Dato un DFA A, L(A) e vuoto?

Linguaggio corrispondente:EDFA = {〈A〉 | A e un DFA e L(A) = ∅}.

Teorema

EDFA e un linguaggio decidibile.

Dimostrazione.

Progettiamo una MdT T che sull’input 〈A〉 dove A e un DFA:

I Marca lo stato iniziale q0 di AI Ripeti fino a quando non viene marcato nessun nuovo stato:

Marca tutti gli stati che hanno una transizione entrante dauno stato marcatoNota stiamo marcando tutti gli stati q tali che esiste uncammino dallo stato iniziale q0 di A a q nel grafo di A

I Se la lista non contiene stati finali, accetta; altrimenti rifiuta.

Page 38: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto: Dato un DFA A, L(A) e vuoto?

Linguaggio corrispondente:EDFA = {〈A〉 | A e un DFA e L(A) = ∅}.

Teorema

EDFA e un linguaggio decidibile.

Dimostrazione.

Progettiamo una MdT T che sull’input 〈A〉 dove A e un DFA:

I Marca lo stato iniziale q0 di AI Ripeti fino a quando non viene marcato nessun nuovo stato:

Marca tutti gli stati che hanno una transizione entrante dauno stato marcatoNota stiamo marcando tutti gli stati q tali che esiste uncammino dallo stato iniziale q0 di A a q nel grafo di A

I Se la lista non contiene stati finali, accetta; altrimenti rifiuta.

Page 39: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto: Dato un DFA A, L(A) e vuoto?

Linguaggio corrispondente:EDFA = {〈A〉 | A e un DFA e L(A) = ∅}.

Teorema

EDFA e un linguaggio decidibile.

Dimostrazione.

Progettiamo una MdT T che sull’input 〈A〉 dove A e un DFA:

I Marca lo stato iniziale q0 di A

I Ripeti fino a quando non viene marcato nessun nuovo stato:Marca tutti gli stati che hanno una transizione entrante dauno stato marcatoNota stiamo marcando tutti gli stati q tali che esiste uncammino dallo stato iniziale q0 di A a q nel grafo di A

I Se la lista non contiene stati finali, accetta; altrimenti rifiuta.

Page 40: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto: Dato un DFA A, L(A) e vuoto?

Linguaggio corrispondente:EDFA = {〈A〉 | A e un DFA e L(A) = ∅}.

Teorema

EDFA e un linguaggio decidibile.

Dimostrazione.

Progettiamo una MdT T che sull’input 〈A〉 dove A e un DFA:

I Marca lo stato iniziale q0 di AI Ripeti fino a quando non viene marcato nessun nuovo stato:

Marca tutti gli stati che hanno una transizione entrante dauno stato marcatoNota stiamo marcando tutti gli stati q tali che esiste uncammino dallo stato iniziale q0 di A a q nel grafo di A

I Se la lista non contiene stati finali, accetta; altrimenti rifiuta.

Page 41: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto: Dato un DFA A, L(A) e vuoto?

Linguaggio corrispondente:EDFA = {〈A〉 | A e un DFA e L(A) = ∅}.

Teorema

EDFA e un linguaggio decidibile.

Dimostrazione.

Progettiamo una MdT T che sull’input 〈A〉 dove A e un DFA:

I Marca lo stato iniziale q0 di AI Ripeti fino a quando non viene marcato nessun nuovo stato:

Marca tutti gli stati che hanno una transizione entrante dauno stato marcatoNota stiamo marcando tutti gli stati q tali che esiste uncammino dallo stato iniziale q0 di A a q nel grafo di A

I Se la lista non contiene stati finali, accetta; altrimenti rifiuta.

Page 42: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema dell’equivalenza: Dati due DFA, sonoequivalenti?

Useremo il seguente Lemma

Lemma

Dati due insiemi X ,Y , risulta

X = Y ⇔ Z = (X ∩ Y ) ∪ (X ∩ Y ) = ∅

Page 43: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema dell’equivalenza

Linguaggio corrispondente:EQDFA = {〈A,B〉 | A,B sono DFA e L(A) = L(B)}.

Teorema

EQDFA e un linguaggio decidibile.

Dimostrazione.

Idea: progettare una MdTM che usa la MdTT che decide EDFA. Sull’input 〈A,B〉, dove A e B sono DFA, M:

I Costruisce il DFA C tale cheL(C) = (L(A) ∩ L(B)) ∪ (L(B) ∩ L(A))

I Simula T sull’input 〈C〉I Se T accetta, accetta; se T rifiuta, rifiuta.

Page 44: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema dell’equivalenza

Linguaggio corrispondente:EQDFA = {〈A,B〉 | A,B sono DFA e L(A) = L(B)}.

Teorema

EQDFA e un linguaggio decidibile.

Dimostrazione.

Idea: progettare una MdTM che usa la MdTT che decide EDFA. Sull’input 〈A,B〉, dove A e B sono DFA, M:

I Costruisce il DFA C tale cheL(C) = (L(A) ∩ L(B)) ∪ (L(B) ∩ L(A))

I Simula T sull’input 〈C〉I Se T accetta, accetta; se T rifiuta, rifiuta.

Page 45: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema dell’equivalenza

Linguaggio corrispondente:EQDFA = {〈A,B〉 | A,B sono DFA e L(A) = L(B)}.

Teorema

EQDFA e un linguaggio decidibile.

Dimostrazione.

Idea: progettare una MdTM che usa la MdTT che decide EDFA. Sull’input 〈A,B〉, dove A e B sono DFA, M:

I Costruisce il DFA C tale cheL(C) = (L(A) ∩ L(B)) ∪ (L(B) ∩ L(A))

I Simula T sull’input 〈C〉I Se T accetta, accetta; se T rifiuta, rifiuta.

Page 46: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema dell’equivalenza

Linguaggio corrispondente:EQDFA = {〈A,B〉 | A,B sono DFA e L(A) = L(B)}.

Teorema

EQDFA e un linguaggio decidibile.

Dimostrazione.

Idea: progettare una MdTM che usa la MdTT che decide EDFA. Sull’input 〈A,B〉, dove A e B sono DFA, M:

I Costruisce il DFA C tale cheL(C) = (L(A) ∩ L(B)) ∪ (L(B) ∩ L(A))

I Simula T sull’input 〈C〉I Se T accetta, accetta; se T rifiuta, rifiuta.

Page 47: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema dell’equivalenza

Linguaggio corrispondente:EQDFA = {〈A,B〉 | A,B sono DFA e L(A) = L(B)}.

Teorema

EQDFA e un linguaggio decidibile.

Dimostrazione.

Idea: progettare una MdTM che usa la MdTT che decide EDFA. Sull’input 〈A,B〉, dove A e B sono DFA, M:

I Costruisce il DFA C tale cheL(C) = (L(A) ∩ L(B)) ∪ (L(B) ∩ L(A))

I Simula T sull’input 〈C〉

I Se T accetta, accetta; se T rifiuta, rifiuta.

Page 48: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema dell’equivalenza

Linguaggio corrispondente:EQDFA = {〈A,B〉 | A,B sono DFA e L(A) = L(B)}.

Teorema

EQDFA e un linguaggio decidibile.

Dimostrazione.

Idea: progettare una MdTM che usa la MdTT che decide EDFA. Sull’input 〈A,B〉, dove A e B sono DFA, M:

I Costruisce il DFA C tale cheL(C) = (L(A) ∩ L(B)) ∪ (L(B) ∩ L(A))

I Simula T sull’input 〈C〉I Se T accetta, accetta; se T rifiuta, rifiuta.

Page 49: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Estensioni

Nota:Potremmo formulare i tre precedenti problemi sostituendo ai DFAuna qualsiasi rappresentazione equivalente (NFA o espressioniregolari).

Es.:

ANFA = {〈B,w〉 | B e un NFA che accetta la parola w},

AREX = {〈R,w〉 | R e un’espressione regolare e w ∈ L(R)}.

E facile convincersi che questi linguaggi sono decidibili.

Page 50: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problemi indecidibili

I Motivazioni per lo studio di questi problemi:

I Sapere che esistono problemi non risolvibili con un computer

I I problemi indecidibili sono esoterici o lontani dai problemi diinteresse informatico? NO

I Esempi di problemi indecidibili:

I Il problema generale della verifica del software non e risolvibilemediante computer

I Costruire un perfetto sistema di “debugging” per determinarese un programma si arresta.

I Equivalenza di programmi: Dati due programmi essiforniscono lo stesso output?

I Compressione dati ottimale: Trovare il programma piu cortoper produrre una immagine data.

I Individuazione dei virus: Questo programma e un virus?

Page 51: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problemi indecidibili

I Motivazioni per lo studio di questi problemi:I Sapere che esistono problemi non risolvibili con un computer

I I problemi indecidibili sono esoterici o lontani dai problemi diinteresse informatico? NO

I Esempi di problemi indecidibili:

I Il problema generale della verifica del software non e risolvibilemediante computer

I Costruire un perfetto sistema di “debugging” per determinarese un programma si arresta.

I Equivalenza di programmi: Dati due programmi essiforniscono lo stesso output?

I Compressione dati ottimale: Trovare il programma piu cortoper produrre una immagine data.

I Individuazione dei virus: Questo programma e un virus?

Page 52: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problemi indecidibili

I Motivazioni per lo studio di questi problemi:I Sapere che esistono problemi non risolvibili con un computer

I I problemi indecidibili sono esoterici o lontani dai problemi diinteresse informatico? NO

I Esempi di problemi indecidibili:

I Il problema generale della verifica del software non e risolvibilemediante computer

I Costruire un perfetto sistema di “debugging” per determinarese un programma si arresta.

I Equivalenza di programmi: Dati due programmi essiforniscono lo stesso output?

I Compressione dati ottimale: Trovare il programma piu cortoper produrre una immagine data.

I Individuazione dei virus: Questo programma e un virus?

Page 53: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problemi indecidibili

I Motivazioni per lo studio di questi problemi:I Sapere che esistono problemi non risolvibili con un computer

I I problemi indecidibili sono esoterici o lontani dai problemi diinteresse informatico? NO

I Esempi di problemi indecidibili:

I Il problema generale della verifica del software non e risolvibilemediante computer

I Costruire un perfetto sistema di “debugging” per determinarese un programma si arresta.

I Equivalenza di programmi: Dati due programmi essiforniscono lo stesso output?

I Compressione dati ottimale: Trovare il programma piu cortoper produrre una immagine data.

I Individuazione dei virus: Questo programma e un virus?

Page 54: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problemi indecidibili

I Motivazioni per lo studio di questi problemi:I Sapere che esistono problemi non risolvibili con un computer

I I problemi indecidibili sono esoterici o lontani dai problemi diinteresse informatico? NO

I Esempi di problemi indecidibili:I Il problema generale della verifica del software non e risolvibile

mediante computerI Costruire un perfetto sistema di “debugging” per determinare

se un programma si arresta.I Equivalenza di programmi: Dati due programmi essi

forniscono lo stesso output?

I Compressione dati ottimale: Trovare il programma piu cortoper produrre una immagine data.

I Individuazione dei virus: Questo programma e un virus?

Page 55: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problemi indecidibili

I Motivazioni per lo studio di questi problemi:I Sapere che esistono problemi non risolvibili con un computer

I I problemi indecidibili sono esoterici o lontani dai problemi diinteresse informatico? NO

I Esempi di problemi indecidibili:I Il problema generale della verifica del software non e risolvibile

mediante computerI Costruire un perfetto sistema di “debugging” per determinare

se un programma si arresta.I Equivalenza di programmi: Dati due programmi essi

forniscono lo stesso output?

I Compressione dati ottimale: Trovare il programma piu cortoper produrre una immagine data.

I Individuazione dei virus: Questo programma e un virus?

Page 56: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problemi indecidibili

I Motivazioni per lo studio di questi problemi:I Sapere che esistono problemi non risolvibili con un computer

I I problemi indecidibili sono esoterici o lontani dai problemi diinteresse informatico? NO

I Esempi di problemi indecidibili:I Il problema generale della verifica del software non e risolvibile

mediante computerI Costruire un perfetto sistema di “debugging” per determinare

se un programma si arresta.I Equivalenza di programmi: Dati due programmi essi

forniscono lo stesso output?

I Compressione dati ottimale: Trovare il programma piu cortoper produrre una immagine data.

I Individuazione dei virus: Questo programma e un virus?

Page 57: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problemi indecidibili

OBIETTIVO: presentare un problema irrisolvibile (linguaggioindecidibile)

Il linguaggio consiste delle coppie 〈M,w〉 dove M e una MdT cheaccetta la stringa w

AMdT = {〈M,w〉 | M e una MdT che accetta la parola w}

Teorema

Il linguaggio

AMdT = {〈M,w〉 | M e una MdT che accetta la parola w}

non e decidibile.

Page 58: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problemi indecidibili

OBIETTIVO: presentare un problema irrisolvibile (linguaggioindecidibile)

Il linguaggio consiste delle coppie 〈M,w〉 dove M e una MdT cheaccetta la stringa w

AMdT = {〈M,w〉 | M e una MdT che accetta la parola w}

Teorema

Il linguaggio

AMdT = {〈M,w〉 | M e una MdT che accetta la parola w}

non e decidibile.

Page 59: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problemi indecidibili

OBIETTIVO: presentare un problema irrisolvibile (linguaggioindecidibile)

Il linguaggio consiste delle coppie 〈M,w〉 dove M e una MdT cheaccetta la stringa w

AMdT = {〈M,w〉 | M e una MdT che accetta la parola w}

Teorema

Il linguaggio

AMdT = {〈M,w〉 | M e una MdT che accetta la parola w}

non e decidibile.

Page 60: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Strumenti

Cardinalita di insiemi (infiniti).

Diagonalizzazione: metodo introdotto da Cantor.

Page 61: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Cardinalita

Cardinalita di un insieme: la sua taglia

Due insiemi hanno la stessa cardinalita se e possibile stabilire unacorrispondenza tra i loro elementi.

Es: A = {1, 2, 3},B = {4, 3, 5} ⇒ 1− 4, 2− 3, 3− 5

Cosa possiamo dire per insiemi infiniti?

Page 62: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Cardinalita

Cardinalita di un insieme: la sua taglia

Due insiemi hanno la stessa cardinalita se e possibile stabilire unacorrispondenza tra i loro elementi.

Es: A = {1, 2, 3},B = {4, 3, 5} ⇒ 1− 4, 2− 3, 3− 5

Cosa possiamo dire per insiemi infiniti?

Page 63: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Cardinalita

Quanti numeri naturali ci sono? INFINITI!

Quanti numeri reali ci sono? INFINITI!

La quantita di numeri reali e la stessa di quella dei numeri naturali?

Come si misura la cardinalita di insiemi infiniti?

Page 64: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Cardinalita

Quanti numeri naturali ci sono? INFINITI!

Quanti numeri reali ci sono? INFINITI!

La quantita di numeri reali e la stessa di quella dei numeri naturali?

Come si misura la cardinalita di insiemi infiniti?

Page 65: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Cardinalita

Quanti numeri naturali ci sono? INFINITI!

Quanti numeri reali ci sono? INFINITI!

La quantita di numeri reali e la stessa di quella dei numeri naturali?

Come si misura la cardinalita di insiemi infiniti?

Page 66: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Il Metodo della diagonalizzazione

Introdotto da Cantor nel 1973 mentre cercava di determinare comestabilire se, dati due insiemi infiniti, uno e piu grande dell’altro.

- Cantor osservo che due insiemi finiti hanno la stessacardinalita se gli elementi dell’uno possono essere messi incorrispondenza uno a uno con quelli dell’altro.

- Estese questo concetto agli insiemi infiniti.

Page 67: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Il Metodo della diagonalizzazione

Introdotto da Cantor nel 1973 mentre cercava di determinare comestabilire se, dati due insiemi infiniti, uno e piu grande dell’altro.

- Cantor osservo che due insiemi finiti hanno la stessacardinalita se gli elementi dell’uno possono essere messi incorrispondenza uno a uno con quelli dell’altro.

- Estese questo concetto agli insiemi infiniti.

Page 68: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Il Metodo della diagonalizzazione

Introdotto da Cantor nel 1973 mentre cercava di determinare comestabilire se, dati due insiemi infiniti, uno e piu grande dell’altro.

- Cantor osservo che due insiemi finiti hanno la stessacardinalita se gli elementi dell’uno possono essere messi incorrispondenza uno a uno con quelli dell’altro.

- Estese questo concetto agli insiemi infiniti.

Page 69: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Premessa: Funzioni

Definizione

Una funzione f : X → Y e una relazione input-output.X e l’insieme dei possibili input (dominio),Y e l’insieme dei possibili output (codominio).Per ogni input x ∈ X esiste un solo output y = f (x) ∈ Y .

Definizione

f : X → Y e iniettiva se ∀x , x ′ ∈ X x 6= x ′ ⇒ f (x) 6= f (x ′)

Definizione

f : X → Y e suriettiva se ∀y ∈ Y si ha y = f (x) per qualchex ∈ X

Definizione

Una funzione f : X → Y e una funzione biettiva di X su Y (o unabiezione tra X e Y ) se f e iniettiva e suriettiva.

Page 70: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Premessa: Funzioni

Definizione

Una funzione f : X → Y e una relazione input-output.X e l’insieme dei possibili input (dominio),Y e l’insieme dei possibili output (codominio).Per ogni input x ∈ X esiste un solo output y = f (x) ∈ Y .

Definizione

f : X → Y e iniettiva se ∀x , x ′ ∈ X x 6= x ′ ⇒ f (x) 6= f (x ′)

Definizione

f : X → Y e suriettiva se ∀y ∈ Y si ha y = f (x) per qualchex ∈ X

Definizione

Una funzione f : X → Y e una funzione biettiva di X su Y (o unabiezione tra X e Y ) se f e iniettiva e suriettiva.

Page 71: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Premessa: Funzioni

Definizione

Una funzione f : X → Y e una relazione input-output.X e l’insieme dei possibili input (dominio),Y e l’insieme dei possibili output (codominio).Per ogni input x ∈ X esiste un solo output y = f (x) ∈ Y .

Definizione

f : X → Y e iniettiva se ∀x , x ′ ∈ X x 6= x ′ ⇒ f (x) 6= f (x ′)

Definizione

f : X → Y e suriettiva se ∀y ∈ Y si ha y = f (x) per qualchex ∈ X

Definizione

Una funzione f : X → Y e una funzione biettiva di X su Y (o unabiezione tra X e Y ) se f e iniettiva e suriettiva.

Page 72: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Premessa: Funzioni

Definizione

Una funzione f : X → Y e una relazione input-output.X e l’insieme dei possibili input (dominio),Y e l’insieme dei possibili output (codominio).Per ogni input x ∈ X esiste un solo output y = f (x) ∈ Y .

Definizione

f : X → Y e iniettiva se ∀x , x ′ ∈ X x 6= x ′ ⇒ f (x) 6= f (x ′)

Definizione

f : X → Y e suriettiva se ∀y ∈ Y si ha y = f (x) per qualchex ∈ X

Definizione

Una funzione f : X → Y e una funzione biettiva di X su Y (o unabiezione tra X e Y ) se f e iniettiva e suriettiva.

Page 73: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Premessa: Funzioni

Esempio f : {1, 2, 5} → {2, 4, 7}1→ 2, 2→ 2, 5→ 4 e una funzione. Non e ne iniettiva nesuriettiva.

Esempio f : {1, 2, 5} → {2, 4, 7, 9}1→ 2, 2→ 4, 5→ 7 e una funzione iniettiva ma nonsuriettiva.

Esempio f : {1, 2, 5} → {2, 4}1→ 2, 2→ 4, 5→ 2 e una funzione suriettiva ma noniniettiva.

Esempio f : {1, 2, 5} → {2, 4, 7}1→ 2, 2→ 4, 5→ 7 e una funzione biettiva.

Page 74: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Premessa: Funzioni

Esempio f : {1, 2, 5} → {2, 4, 7}1→ 2, 2→ 2, 5→ 4 e una funzione. Non e ne iniettiva nesuriettiva.

Esempio f : {1, 2, 5} → {2, 4, 7, 9}1→ 2, 2→ 4, 5→ 7 e una funzione iniettiva ma nonsuriettiva.

Esempio f : {1, 2, 5} → {2, 4}1→ 2, 2→ 4, 5→ 2 e una funzione suriettiva ma noniniettiva.

Esempio f : {1, 2, 5} → {2, 4, 7}1→ 2, 2→ 4, 5→ 7 e una funzione biettiva.

Page 75: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Premessa: Funzioni

Esempio f : {1, 2, 5} → {2, 4, 7}1→ 2, 2→ 2, 5→ 4 e una funzione. Non e ne iniettiva nesuriettiva.

Esempio f : {1, 2, 5} → {2, 4, 7, 9}1→ 2, 2→ 4, 5→ 7 e una funzione iniettiva ma nonsuriettiva.

Esempio f : {1, 2, 5} → {2, 4}1→ 2, 2→ 4, 5→ 2 e una funzione suriettiva ma noniniettiva.

Esempio f : {1, 2, 5} → {2, 4, 7}1→ 2, 2→ 4, 5→ 7 e una funzione biettiva.

Page 76: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Premessa: Funzioni

Esempio f : {1, 2, 5} → {2, 4, 7}1→ 2, 2→ 2, 5→ 4 e una funzione. Non e ne iniettiva nesuriettiva.

Esempio f : {1, 2, 5} → {2, 4, 7, 9}1→ 2, 2→ 4, 5→ 7 e una funzione iniettiva ma nonsuriettiva.

Esempio f : {1, 2, 5} → {2, 4}1→ 2, 2→ 4, 5→ 2 e una funzione suriettiva ma noniniettiva.

Esempio f : {1, 2, 5} → {2, 4, 7}1→ 2, 2→ 4, 5→ 7 e una funzione biettiva.

Page 77: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Premessa: Cardinalita

Definizione

Due insiemi X e Y hanno la stessa cardinalita se esiste unafunzione biettiva f : X → Y di X su Y .

|X | = |Y | ⇔ esiste una funzione biettiva f : X → Y

Esempio f : {1, 2, 5} → {2, 4, 7} 1→ 2, 2→ 4,5→ 7.

Esempio f : N→ {2n | n ∈ N} n→ 2n

Page 78: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Premessa: Cardinalita

Definizione

Due insiemi X e Y hanno la stessa cardinalita se esiste unafunzione biettiva f : X → Y di X su Y .

|X | = |Y | ⇔ esiste una funzione biettiva f : X → Y

Esempio f : {1, 2, 5} → {2, 4, 7} 1→ 2, 2→ 4,5→ 7.

Esempio f : N→ {2n | n ∈ N} n→ 2n

Page 79: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Premessa: Cardinalita

Definizione

Due insiemi X e Y hanno la stessa cardinalita se esiste unafunzione biettiva f : X → Y di X su Y .

|X | = |Y | ⇔ esiste una funzione biettiva f : X → Y

Esempio f : {1, 2, 5} → {2, 4, 7} 1→ 2, 2→ 4,5→ 7.

Esempio f : N→ {2n | n ∈ N} n→ 2n

Page 80: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Premessa: Cardinalita

Definizione

Due insiemi X e Y hanno la stessa cardinalita se esiste unafunzione biettiva f : X → Y di X su Y .

|X | = |Y | ⇔ esiste una funzione biettiva f : X → Y

Esempio f : {1, 2, 5} → {2, 4, 7} 1→ 2, 2→ 4,5→ 7.

Esempio f : N→ {2n | n ∈ N} n→ 2n

Page 81: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Insiemi numerabili

Definizione

Un insieme e enumerabile (o numerabile) se ha la stessa cardinalitadi un sottoinsieme di N.

Se A e numerabile possiamo “numerare” gli elementi di A escrivere una lista (a1, a2, . . .)

cio e per ogni numero naturale i , possiamo specificare l’elementoi–mo della lista.

Es. Per l’insieme dei numeri naturali pari, l’elemento i-mo dellalista corrisponde a 2i .

Page 82: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Insiemi numerabili

Es. L’insieme dei numeri razionali e numerabile

Mostriamo che possiamo formare una lista di tutti i numerirazionali.Formiamo un rettangolo infinito:

1/1 1/2 1/3 1/4 . . .2/1 2/2 2/3 2/4 . . .3/1 3/2 3/3 3/4 . . .4/1 4/2 4/3 4/4 . . .. . . . . . . . . . . . . . .

Page 83: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Insiemi numerabili

Come formiamo la lista di tutti i numeri razionali?Se prendiamo prima tutta la prima linea, non arriviamo mai allaseconda!

1/1 1/2 1/3 1/4 . . .2/1 2/2 2/3 2/4 . . .3/1 3/2 3/3 3/4 . . .4/1 4/2 4/3 4/4 . . .. . . . . . . . . . . . . . .

Page 84: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Insiemi numerabili

Idea: Listiamo per diagonali: I, II, III, IV, V, VI,. . .

1/1 1/2 1/3 1/4 . . .2/1 2/2 2/3 2/4 . . .3/1 3/2 3/3 3/4 . . .4/1 4/2 4/3 4/4 . . .. . . . . . . . . . . . . . .

1/1, 2/1, 1/2, 3/1, 2/2, 1/3, . . .

Nota: dovremmo eliminare i duplicati (ma e solo una questionetecnica)

Page 85: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Insiemi numerabili

Σ∗ e numerabile.:listiamo prima la stringa vuota, poi le stringhe (in ordinelessicografico) lunghe 1, poi 2, . . .

Esempio: Σ = {0, 1}, w0 = ε, w1 = 0, w2 = 1, w3 = 00, ...

Page 86: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Insiemi numerabili

L’insieme

{〈M〉 | M e una MdT sull’alfabeto Σ}

e numerabile: e possibile codificare una MdTM con una stringa su un alfabeto Σ.

Esempio: Σ = {0, 1},〈M〉 = 111C111C211 . . . 11Cn,Ct = 0i10j10h10k0m e la codifica di δ(qi , aj) = (qh, ak ,Dm),con D1 = L, D2 = R.

Page 87: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

L’insieme dei numeri reali non e numerabile.

Sia per assurdo R numerabile, allora possiamo costruire la lista

f (1), f (2), f (3), . . .

Per ogni i ≥ 1 , scriviamo f (i) = f0(i), f1(i)f2(i)f3(i) . . .Es: se f (1) = 4, 256 . . .allora f0(1) = 4, f1(1) = 2, f1(1) = 2, f2(1) = 5, f3(1) = 6, . . .

Organizziamoli in una matrice:

i\f (i) f1 f2 f3 . . . . . . . . .

1 f1(1) f2(1) f3(1) . . . fi (1) . . .2 f1(2) f2(2) f3(2) . . . fi (2) . . .3 f1(3) f2(3) f3(3) . . . fi (3) . . ....

......

.... . .

......

i f1(i) f2(i) f3(i) . . . fi (i) . . ....

......

......

.... . .

Page 88: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

L’insieme dei numeri reali non e numerabile.

Sia per assurdo R numerabile, allora possiamo costruire la lista

f (1), f (2), f (3), . . .

Per ogni i ≥ 1 , scriviamo f (i) = f0(i), f1(i)f2(i)f3(i) . . .Es: se f (1) = 4, 256 . . .allora f0(1) = 4, f1(1) = 2, f1(1) = 2, f2(1) = 5, f3(1) = 6, . . .

Organizziamoli in una matrice:

i\f (i) f1 f2 f3 . . . . . . . . .

1 f1(1) f2(1) f3(1) . . . fi (1) . . .2 f1(2) f2(2) f3(2) . . . fi (2) . . .3 f1(3) f2(3) f3(3) . . . fi (3) . . ....

......

.... . .

......

i f1(i) f2(i) f3(i) . . . fi (i) . . ....

......

......

.... . .

Page 89: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

L’insieme dei numeri reali non e numerabile.

Sia per assurdo R numerabile, allora possiamo costruire la lista

f (1), f (2), f (3), . . .

Per ogni i ≥ 1 , scriviamo f (i) = f0(i), f1(i)f2(i)f3(i) . . .Es: se f (1) = 4, 256 . . .allora f0(1) = 4, f1(1) = 2, f1(1) = 2, f2(1) = 5, f3(1) = 6, . . .

Organizziamoli in una matrice:

i\f (i) f1 f2 f3 . . . . . . . . .

1 f1(1) f2(1) f3(1) . . . fi (1) . . .2 f1(2) f2(2) f3(2) . . . fi (2) . . .3 f1(3) f2(3) f3(3) . . . fi (3) . . ....

......

.... . .

......

i f1(i) f2(i) f3(i) . . . fi (i) . . ....

......

......

.... . .

Page 90: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

L’insieme dei numeri reali non e numerabile (cont.)

i\f (i) f1 f2 f3 . . . . . . . . .

1 f1(1) f2(1) f3(1) . . . fi (1) . . .2 f1(2) f2(2) f3(2) . . . fi (2) . . .3 f1(3) f2(3) f3(3) . . . fi (3) . . ....

......

.... . .

......

i f1(i) f2(i) f3(i) . . . fi (i) . . ....

......

......

.... . .

Sia x ∈ (0, 1) il numero x = 0, x1x2x3 . . . xi . . .ottenuto scegliendo xi 6= fi (i) per ogni i ≥ 1

Chiaramente x ∈ R.

Risulta x nella lista?Se x = f (j) allora il suo j-mo digit soddisfa xj = fj(j);Ma xj 6= fj(j) (per def. di x), contraddizione!

Quindi x ∈ R non pu o comparire nella lista e R non numerabile

Page 91: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

L’insieme dei numeri reali non e numerabile (cont.)

i\f (i) f1 f2 f3 . . . . . . . . .

1 f1(1) f2(1) f3(1) . . . fi (1) . . .2 f1(2) f2(2) f3(2) . . . fi (2) . . .3 f1(3) f2(3) f3(3) . . . fi (3) . . ....

......

.... . .

......

i f1(i) f2(i) f3(i) . . . fi (i) . . ....

......

......

.... . .

Sia x ∈ (0, 1) il numero x = 0, x1x2x3 . . . xi . . .ottenuto scegliendo xi 6= fi (i) per ogni i ≥ 1

Chiaramente x ∈ R. Risulta x nella lista?

Se x = f (j) allora il suo j-mo digit soddisfa xj = fj(j);Ma xj 6= fj(j) (per def. di x), contraddizione!

Quindi x ∈ R non pu o comparire nella lista e R non numerabile

Page 92: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

L’insieme dei numeri reali non e numerabile (cont.)

i\f (i) f1 f2 f3 . . . . . . . . .

1 f1(1) f2(1) f3(1) . . . fi (1) . . .2 f1(2) f2(2) f3(2) . . . fi (2) . . .3 f1(3) f2(3) f3(3) . . . fi (3) . . ....

......

.... . .

......

i f1(i) f2(i) f3(i) . . . fi (i) . . ....

......

......

.... . .

Sia x ∈ (0, 1) il numero x = 0, x1x2x3 . . . xi . . .ottenuto scegliendo xi 6= fi (i) per ogni i ≥ 1

Chiaramente x ∈ R. Risulta x nella lista?Se x = f (j) allora il suo j-mo digit soddisfa xj = fj(j);Ma xj 6= fj(j) (per def. di x), contraddizione!

Quindi x ∈ R non pu o comparire nella lista e R non numerabile

Page 93: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Il Metodo della diagonalizzazione

{w1,w2, . . .} = Σ∗, {M1,M2, . . .} = MdT su Σ: numerabili

w1 w2 w3 . . . wi wj

M1 x1,1 · · · · ·M2 · x2,2 · · · ·· · · x3,3 · · ·· · · · x4,4 · ·

Mi · · · · xi ,i xi ,j· · · · · · ·· · · · · · ·

con xi ,j = 1 se wj ∈ L(Mi ), x = 0 altrimenti.

Sia L = {wi ∈ Σ∗ | wi 6∈ L(Mi )}L e il “complemento della diagonale”:se l’elemento (Mi ,wi ) della diagonale e xi ,i = 1, allora wi 6∈ L;se l’elemento (Mi ,wi ) della diagonale e xi ,i = 0, allora wi ∈ L

Page 94: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Il Metodo della diagonalizzazione

{w1,w2, . . .} = Σ∗, {M1,M2, . . .} = MdT su Σ: numerabili

w1 w2 w3 . . . wi wj

M1 x1,1 · · · · ·M2 · x2,2 · · · ·· · · x3,3 · · ·· · · · x4,4 · ·

Mi · · · · xi ,i xi ,j· · · · · · ·· · · · · · ·

con xi ,j = 1 se wj ∈ L(Mi ), x = 0 altrimenti.

Sia L = {wi ∈ Σ∗ | wi 6∈ L(Mi )}L e il “complemento della diagonale”:se l’elemento (Mi ,wi ) della diagonale e xi ,i = 1, allora wi 6∈ L;se l’elemento (Mi ,wi ) della diagonale e xi ,i = 0, allora wi ∈ L

Page 95: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Il Metodo della diagonalizzazione

{w1,w2, . . .} = Σ∗, {M1,M2, . . .} = MdT su Σ: numerabili

w1 w2 w3 . . . wi wj

M1 x1,1 · · · · ·M2 · x2,2 · · · ·· · · x3,3 · · ·· · · · x4,4 · ·

Mi · · · · xi ,i xi ,j· · · · · · ·· · · · · · ·

con xi ,j = 1 se wj ∈ L(Mi ), x = 0 altrimenti.

Sia L = {wi ∈ Σ∗ | wi 6∈ L(Mi )}L e il “complemento della diagonale”:se l’elemento (Mi ,wi ) della diagonale e xi ,i = 1, allora wi 6∈ L;se l’elemento (Mi ,wi ) della diagonale e xi ,i = 0, allora wi ∈ L

Page 96: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Il Metodo della diagonalizzazione

w1 w2 w3 . . . wi wj

M1 x1,1 · · · · ·M2 · x2,2 · · · ·· · · x3,3 · · ·· · · · x4,4 · ·

Mi · · · · xi ,i xi ,j· · · · · · ·· · · · · · ·

con xi ,j = 1 se wj ∈ L(Mi ), xi ,j = 0 altrimenti.

Sia L = {wi ∈ Σ∗ | wi /∈ L(Mi )}Puo L comparire nella lista?

Supponiamo L = L(Mh),

I wh ∈ L ⇒ xh,h = 0 ⇒ wh /∈ L(Mh) = L contraddizione

I wh /∈ L ⇒ xh,h = 1 ⇒ wh ∈ L(Mh) = L contraddizione

Page 97: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Il Metodo della diagonalizzazione

w1 w2 w3 . . . wi wj

M1 x1,1 · · · · ·M2 · x2,2 · · · ·· · · x3,3 · · ·· · · · x4,4 · ·

Mi · · · · xi ,i xi ,j· · · · · · ·· · · · · · ·

con xi ,j = 1 se wj ∈ L(Mi ), xi ,j = 0 altrimenti.

Sia L = {wi ∈ Σ∗ | wi /∈ L(Mi )}Puo L comparire nella lista?Supponiamo L = L(Mh),

I wh ∈ L ⇒ xh,h = 0 ⇒ wh /∈ L(Mh) = L contraddizione

I wh /∈ L ⇒ xh,h = 1 ⇒ wh ∈ L(Mh) = L contraddizione

Page 98: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Il Metodo della diagonalizzazione

“Esistono piu linguaggi (problemi) che macchine di Turing(algoritmi)”

Corollary

Esistono linguaggi che non sono Turing riconoscibili

Page 99: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Il Metodo della diagonalizzazione

“Esistono piu linguaggi (problemi) che macchine di Turing(algoritmi)”

Corollary

Esistono linguaggi che non sono Turing riconoscibili

Page 100: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Macchina di Turing Universale

Abbiamo visto chee possibile codificare una MdTM con una stringa su un alfabeto Σ.

E possibile anche codificare una MdT M e una stringa w conuna stringa su un alfabeto Σ.Esempio: 〈M,w〉 = “codifica di M ′′#“codifica di w ′′.

Page 101: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Macchina di Turing Universale

Abbiamo visto chee possibile codificare una MdTM con una stringa su un alfabeto Σ.

E possibile anche codificare una MdT M e una stringa w conuna stringa su un alfabeto Σ.Esempio: 〈M,w〉 = “codifica di M ′′#“codifica di w ′′.

Page 102: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Macchina di Turing Universale

I Una MdT universale U simula la computazione di unaqualsiasi MdT M

I U riceve in input una rappresentazione 〈M,w〉 di M e di unpossibile input w di M

I E chiamata universale perche la computazione di una qualsiasiMdT puo essere simulata da U

I Anticipo alcuni sviluppi fondamentali in informatica:

- Compilatore Java (o C , C++) in Java (o in C , C++)- Programma eseguito da un computer

Teorema

Esiste una MdT universale.

〈M,w〉 → Macchina Universale U →

{accetta se M accetta w

rifiuta se M rifiuta w

Page 103: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Macchina di Turing Universale

I Una MdT universale U simula la computazione di unaqualsiasi MdT M

I U riceve in input una rappresentazione 〈M,w〉 di M e di unpossibile input w di M

I E chiamata universale perche la computazione di una qualsiasiMdT puo essere simulata da U

I Anticipo alcuni sviluppi fondamentali in informatica:

- Compilatore Java (o C , C++) in Java (o in C , C++)- Programma eseguito da un computer

Teorema

Esiste una MdT universale.

〈M,w〉 → Macchina Universale U →

{accetta se M accetta w

rifiuta se M rifiuta w

Page 104: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Macchina di Turing Universale

I Una MdT universale U simula la computazione di unaqualsiasi MdT M

I U riceve in input una rappresentazione 〈M,w〉 di M e di unpossibile input w di M

I E chiamata universale perche la computazione di una qualsiasiMdT puo essere simulata da U

I Anticipo alcuni sviluppi fondamentali in informatica:

- Compilatore Java (o C , C++) in Java (o in C , C++)- Programma eseguito da un computer

Teorema

Esiste una MdT universale.

〈M,w〉 → Macchina Universale U →

{accetta se M accetta w

rifiuta se M rifiuta w

Page 105: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Macchina di Turing Universale

I Una MdT universale U simula la computazione di unaqualsiasi MdT M

I U riceve in input una rappresentazione 〈M,w〉 di M e di unpossibile input w di M

I E chiamata universale perche la computazione di una qualsiasiMdT puo essere simulata da U

I Anticipo alcuni sviluppi fondamentali in informatica:

- Compilatore Java (o C , C++) in Java (o in C , C++)- Programma eseguito da un computer

Teorema

Esiste una MdT universale.

〈M,w〉 → Macchina Universale U →

{accetta se M accetta w

rifiuta se M rifiuta w

Page 106: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Macchina di Turing Universale

I Una MdT universale U simula la computazione di unaqualsiasi MdT M

I U riceve in input una rappresentazione 〈M,w〉 di M e di unpossibile input w di M

I E chiamata universale perche la computazione di una qualsiasiMdT puo essere simulata da U

I Anticipo alcuni sviluppi fondamentali in informatica:- Compilatore Java (o C , C++) in Java (o in C , C++)

- Programma eseguito da un computer

Teorema

Esiste una MdT universale.

〈M,w〉 → Macchina Universale U →

{accetta se M accetta w

rifiuta se M rifiuta w

Page 107: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Macchina di Turing Universale

I Una MdT universale U simula la computazione di unaqualsiasi MdT M

I U riceve in input una rappresentazione 〈M,w〉 di M e di unpossibile input w di M

I E chiamata universale perche la computazione di una qualsiasiMdT puo essere simulata da U

I Anticipo alcuni sviluppi fondamentali in informatica:- Compilatore Java (o C , C++) in Java (o in C , C++)- Programma eseguito da un computer

Teorema

Esiste una MdT universale.

〈M,w〉 → Macchina Universale U →

{accetta se M accetta w

rifiuta se M rifiuta w

Page 108: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Macchina di Turing Universale

I Una MdT universale U simula la computazione di unaqualsiasi MdT M

I U riceve in input una rappresentazione 〈M,w〉 di M e di unpossibile input w di M

I E chiamata universale perche la computazione di una qualsiasiMdT puo essere simulata da U

I Anticipo alcuni sviluppi fondamentali in informatica:- Compilatore Java (o C , C++) in Java (o in C , C++)- Programma eseguito da un computer

Teorema

Esiste una MdT universale.

〈M,w〉 → Macchina Universale U →

{accetta se M accetta w

rifiuta se M rifiuta w

Page 109: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Macchina di Turing Universale

I Una MdT universale U simula la computazione di unaqualsiasi MdT M

I U riceve in input una rappresentazione 〈M,w〉 di M e di unpossibile input w di M

I E chiamata universale perche la computazione di una qualsiasiMdT puo essere simulata da U

I Anticipo alcuni sviluppi fondamentali in informatica:- Compilatore Java (o C , C++) in Java (o in C , C++)- Programma eseguito da un computer

Teorema

Esiste una MdT universale.

〈M,w〉 → Macchina Universale U →

{accetta se M accetta w

rifiuta se M rifiuta w

Page 110: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

AMdT e Turing riconoscibile

Teorema

Il linguaggio

AMdT = {〈M,w〉 | M e una MdT che accetta la parola w}

e Turing riconoscibile.

Dimostrazione.

Definiamo una MdT U che accetta AMdT : sull’input 〈M,w〉 doveM e una MdT e w e una stringa

1. Simula M sull’input w .2. Se M accetta, accetta; se M rifiuta, rifiuta.

Page 111: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

AMdT e Turing riconoscibile

Teorema

Il linguaggio

AMdT = {〈M,w〉 | M e una MdT che accetta la parola w}

e Turing riconoscibile.

Dimostrazione.

Definiamo una MdT U che accetta AMdT : sull’input 〈M,w〉 doveM e una MdT e w e una stringa

1. Simula M sull’input w .2. Se M accetta, accetta; se M rifiuta, rifiuta.

Page 112: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

AMdT e Turing riconoscibile

Teorema

Il linguaggio

AMdT = {〈M,w〉 | M e una MdT che accetta la parola w}

e Turing riconoscibile.

Dimostrazione.

Definiamo una MdT U che accetta AMdT : sull’input 〈M,w〉 doveM e una MdT e w e una stringa

1. Simula M sull’input w .

2. Se M accetta, accetta; se M rifiuta, rifiuta.

Page 113: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

AMdT e Turing riconoscibile

Teorema

Il linguaggio

AMdT = {〈M,w〉 | M e una MdT che accetta la parola w}

e Turing riconoscibile.

Dimostrazione.

Definiamo una MdT U che accetta AMdT : sull’input 〈M,w〉 doveM e una MdT e w e una stringa

1. Simula M sull’input w .2. Se M accetta, accetta; se M rifiuta, rifiuta.

Page 114: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Dettagli: Simulazione di MdT input

Abbiamo visto MdT che simula AutomaSimulare MdT M con altra MdT risulta molto simile.

1. Marca stato iniziale di M (stato corrente) e primo simbolo sunastro (posizione corrente testina)

2. cerca prossima transizione (nella parte che descrive la funzionedi transizione),sia (q, x)→ (q′, x ′,D)

3. Esegui la transizione

4. Aggiorna lo stato corrente (marca q′) e la posizione correntedella testina (marca simbolo a D)

5. Se lo stato corrente risulta qaccept/qreject decidi diconseguenza, altrimenti ripeti da 2

Page 115: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Dettagli: Simulazione di MdT input

Abbiamo visto MdT che simula AutomaSimulare MdT M con altra MdT risulta molto simile.

1. Marca stato iniziale di M (stato corrente) e primo simbolo sunastro (posizione corrente testina)

2. cerca prossima transizione (nella parte che descrive la funzionedi transizione),sia (q, x)→ (q′, x ′,D)

3. Esegui la transizione

4. Aggiorna lo stato corrente (marca q′) e la posizione correntedella testina (marca simbolo a D)

5. Se lo stato corrente risulta qaccept/qreject decidi diconseguenza, altrimenti ripeti da 2

Page 116: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Note

1. Nota: U e detta MdT universale.

2. Nota: U riconosce AMdT : accetta ogni coppia〈M,w〉 ∈ AMdT

3. Nota: U cicla su 〈M,w〉 se (e solo se) M cicla su w . QuindiU non decide AMdT .

Page 117: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Note

1. Nota: U e detta MdT universale.

2. Nota: U riconosce AMdT : accetta ogni coppia〈M,w〉 ∈ AMdT

3. Nota: U cicla su 〈M,w〉 se (e solo se) M cicla su w . QuindiU non decide AMdT .

Page 118: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Note

1. Nota: U e detta MdT universale.

2. Nota: U riconosce AMdT : accetta ogni coppia〈M,w〉 ∈ AMdT

3. Nota: U cicla su 〈M,w〉 se (e solo se) M cicla su w . QuindiU non decide AMdT .

Page 119: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata

AMdT = {〈M,w〉 | M e una MdT e w ∈ L(M)}

Teorema

Il linguaggio AMdT non e decidibile.

Page 120: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata

Prima di vedere la dimostrazione consideriamo un classico quesitodi Bertrand Russell:

In un paese vive un solo barbiere,Un uomo ben sbarbato, che rade tutti e soli gli uomini del villaggioche non si radono da soli.

Chi sbarba il barbiere?

Autoreferenza puo causare problemi!

Page 121: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata

Prima di vedere la dimostrazione consideriamo un classico quesitodi Bertrand Russell:

In un paese vive un solo barbiere,Un uomo ben sbarbato, che rade tutti e soli gli uomini del villaggioche non si radono da soli.

Chi sbarba il barbiere?

Autoreferenza puo causare problemi!

Page 122: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata: Dimostrazione

Supponiamo per assurdo che esiste una macchina di Turing H condue possibili risultati di una computazione (accettazione, rifiuto) etale che:

H =

{accetta se M accetta w

rifiuta se M rifiuta w

H : 〈M,w〉 → H →

{accetta se M accetta w

rifiuta se M rifiuta w

Page 123: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata: Dimostrazione

Supponiamo per assurdo che esiste una macchina di Turing H condue possibili risultati di una computazione (accettazione, rifiuto) etale che:

H =

{accetta se M accetta w

rifiuta se M rifiuta w

H : 〈M,w〉 → H →

{accetta se M accetta w

rifiuta se M rifiuta w

Page 124: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata: Dimostrazione

Costruiamo una nuova MdT D che usa H come sottoprogrammaD sull’input 〈M〉, dove M e una MdT:

1. Simula H sull’input 〈M, 〈M〉〉2. Fornisce come output l’opposto di H, cioe se H accetta,

rifiuta e se H rifiuta, accetta

〈M〉 → D → 〈M, 〈M〉〉 → H →

{accetta

rifiuta→ I →

{rifiuta

accetta

Quindi

D(〈M〉) =

{rifiuta se M accetta 〈M〉,accetta se M rifiuta 〈M〉

Page 125: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata: Dimostrazione

Costruiamo una nuova MdT D che usa H come sottoprogrammaD sull’input 〈M〉, dove M e una MdT:

1. Simula H sull’input 〈M, 〈M〉〉2. Fornisce come output l’opposto di H, cioe se H accetta,

rifiuta e se H rifiuta, accetta

〈M〉 → D → 〈M, 〈M〉〉 → H →

{accetta

rifiuta→ I →

{rifiuta

accetta

Quindi

D(〈M〉) =

{rifiuta se M accetta 〈M〉,accetta se M rifiuta 〈M〉

Page 126: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata: Dimostrazione

Costruiamo una nuova MdT D che usa H come sottoprogrammaD sull’input 〈M〉, dove M e una MdT:

1. Simula H sull’input 〈M, 〈M〉〉2. Fornisce come output l’opposto di H, cioe se H accetta,

rifiuta e se H rifiuta, accetta

〈M〉 → D → 〈M, 〈M〉〉 → H →

{accetta

rifiuta→ I →

{rifiuta

accetta

Quindi

D(〈M〉) =

{rifiuta se M accetta 〈M〉,accetta se M rifiuta 〈M〉

Page 127: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata: Dimostrazione

1. Nota: MdT M deve essere in grado di accettare ogni stringa.

2. Nota: La codifica 〈M〉 di M e una stringa.

3. Nota: Operare una macchina sulla sua codifica e analogo adusare un compilatore Pascal per compilarlo(il compilatore Pascal e scritto in Pascal).

Page 128: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata: Dimostrazione

1. Nota: MdT M deve essere in grado di accettare ogni stringa.

2. Nota: La codifica 〈M〉 di M e una stringa.

3. Nota: Operare una macchina sulla sua codifica e analogo adusare un compilatore Pascal per compilarlo(il compilatore Pascal e scritto in Pascal).

Page 129: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata: Dimostrazione

Autoreferenzialita puo essere pericolosa!

Ora se diamo in input a D la sua stessa codifica 〈D〉 abbiamo

D(〈D〉) =

{rifiuta se D accetta 〈D〉,accetta se D rifiuta 〈D〉

〈D〉 → D → 〈D, 〈D〉〉 → H →

{accetta

rifiuta→ I →

{rifiuta

accetta

Cioe D accetta 〈D〉 se e solo se D rifiuta 〈D〉Assurdo!Tutto causato dall’assunzione che esiste H!Quindi H non esiste!�

Page 130: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata: Dimostrazione

Autoreferenzialita puo essere pericolosa!

Ora se diamo in input a D la sua stessa codifica 〈D〉 abbiamo

D(〈D〉) =

{rifiuta se D accetta 〈D〉,accetta se D rifiuta 〈D〉

〈D〉 → D → 〈D, 〈D〉〉 → H →

{accetta

rifiuta→ I →

{rifiuta

accetta

Cioe D accetta 〈D〉 se e solo se D rifiuta 〈D〉Assurdo!Tutto causato dall’assunzione che esiste H!Quindi H non esiste!�

Page 131: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata: Dimostrazione

Autoreferenzialita puo essere pericolosa!

Ora se diamo in input a D la sua stessa codifica 〈D〉 abbiamo

D(〈D〉) =

{rifiuta se D accetta 〈D〉,accetta se D rifiuta 〈D〉

〈D〉 → D → 〈D, 〈D〉〉 → H →

{accetta

rifiuta→ I →

{rifiuta

accetta

Cioe D accetta 〈D〉 se e solo se D rifiuta 〈D〉Assurdo!Tutto causato dall’assunzione che esiste H!Quindi H non esiste!�

Page 132: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata: Dimostrazione

Autoreferenzialita puo essere pericolosa!

Ora se diamo in input a D la sua stessa codifica 〈D〉 abbiamo

D(〈D〉) =

{rifiuta se D accetta 〈D〉,accetta se D rifiuta 〈D〉

〈D〉 → D → 〈D, 〈D〉〉 → H →

{accetta

rifiuta→ I →

{rifiuta

accetta

Cioe D accetta 〈D〉 se e solo se D rifiuta 〈D〉Assurdo!Tutto causato dall’assunzione che esiste H!Quindi H non esiste!�

Page 133: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata: Dimostrazione

Autoreferenzialita puo essere pericolosa!

Ora se diamo in input a D la sua stessa codifica 〈D〉 abbiamo

D(〈D〉) =

{rifiuta se D accetta 〈D〉,accetta se D rifiuta 〈D〉

〈D〉 → D → 〈D, 〈D〉〉 → H →

{accetta

rifiuta→ I →

{rifiuta

accetta

Cioe D accetta 〈D〉 se e solo se D rifiuta 〈D〉Assurdo!Tutto causato dall’assunzione che esiste H!Quindi H non esiste!�

Page 134: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita del problema della fermata: Riepilogo dellaDimostrazione

1. Definiamo AMdT = {〈M,w〉 |M e MdT che accetta w}2. Assumiamo AMdT decidibile; sia H MdT che lo decide

3. Usiamo H per costruire MdT D che inverte le decisioni;D(〈M〉): accetta se M rifiuta 〈M〉 ; rifiuta se M accetta 〈M〉.

4. Diamo in input a D la sua codifica 〈D〉:D(〈D〉): accetta sse D rifiuta.Contraddizione

Page 135: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Diagonalizzazione?

Consideriamo la tavola

〈M1〉 〈M2〉 〈M3〉 〈M4〉 . . .

M1 acc acc . . .M2 acc acc acc acc . . .M3

M2 acc acc . . ....

......

......

...

Page 136: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Diagonalizzazione?

Consideriamo H: MdT H rifiuta se Mi va in loop

〈M1〉 〈M2〉 〈M3〉 〈M4〉 . . .

M1 acc rej acc rej . . .M2 acc acc acc acc . . .M3 rej rej rej rej . . .M2 acc acc rej rej . . .

......

......

......

Page 137: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Diagonalizzazione?

Consideriamo ora D e D(〈D〉):

Dobbiamo considerare la diagonale!

〈M1〉 〈M2〉 〈M3〉 〈M4〉 . . . 〈D〉 . . .

M1 acc rej acc rej . . . . . . . . .M2 acc acc acc acc . . . . . . . . .M3 rej rej rej rej . . . . . . . . .M2 acc acc rej rej . . . . . . . . .

......

......

......

......

D acc acc rej rej . . . ??? . . ....

......

......

......

...

Page 138: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita

I Nella prova precedente e stato utilizzato il metodo delladiagonalizzazione.

I In conclusione, AMdT e Turing riconoscibile ma e indecidibile.

I Che differenza c’e tra le due dimostrazioni?Cioe che differenza c’e tra U e D?

I Sappiamo che esistono linguaggi che non sono Turingriconoscibili.

I Vogliamo individuare uno specifico linguaggio non Turingriconoscibile (AMdT )

Page 139: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita

I Nella prova precedente e stato utilizzato il metodo delladiagonalizzazione.

I In conclusione, AMdT e Turing riconoscibile ma e indecidibile.

I Che differenza c’e tra le due dimostrazioni?Cioe che differenza c’e tra U e D?

I Sappiamo che esistono linguaggi che non sono Turingriconoscibili.

I Vogliamo individuare uno specifico linguaggio non Turingriconoscibile (AMdT )

Page 140: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Indecidibilita

I Nella prova precedente e stato utilizzato il metodo delladiagonalizzazione.

I In conclusione, AMdT e Turing riconoscibile ma e indecidibile.

I Che differenza c’e tra le due dimostrazioni?Cioe che differenza c’e tra U e D?

I Sappiamo che esistono linguaggi che non sono Turingriconoscibili.

I Vogliamo individuare uno specifico linguaggio non Turingriconoscibile (AMdT )

Page 141: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

Definizione

Diciamo che un linguaggio L e co-Turing riconoscibile se L eTuring riconoscibile.

Teorema

Un linguaggio L e decidibile se e solo se L e Turing riconoscibile eco-Turing riconoscibile.

Page 142: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

Definizione

Diciamo che un linguaggio L e co-Turing riconoscibile se L eTuring riconoscibile.

Teorema

Un linguaggio L e decidibile se e solo se L e Turing riconoscibile eco-Turing riconoscibile.

Page 143: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

L e decidibile ⇔ L e il suo complemento sono entrambi Turingriconoscibili.

Dimostrazione(⇒) Se L e decidibile allora esiste una macchina di Turing Mcon due possibili risultati di una computazione (accettazione,rifiuto) e tale che M accetta w se e solo se w ∈ L. Allora L eTuring riconoscibile. Inoltre e facile costruire una MdTM che accetta w se e solo se w 6∈ L:

w → H →

{accetta se w ∈ L

rifiuta se w 6∈ L→

{rifiuta se H accetta

accetta se H rifiuta

Page 144: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

L e decidibile ⇔ L e il suo complemento sono entrambi Turingriconoscibili.

Dimostrazione(⇒) Se L e decidibile allora esiste una macchina di Turing Mcon due possibili risultati di una computazione (accettazione,rifiuto) e tale che M accetta w se e solo se w ∈ L. Allora L eTuring riconoscibile. Inoltre e facile costruire una MdTM che accetta w se e solo se w 6∈ L:

w → H →

{accetta se w ∈ L

rifiuta se w 6∈ L→

{rifiuta se H accetta

accetta se H rifiuta

Page 145: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

L e decidibile ⇔ L e il suo complemento sono entrambi Turingriconoscibili.

Dimostrazione(⇒) Se L e decidibile allora esiste una macchina di Turing Mcon due possibili risultati di una computazione (accettazione,rifiuto) e tale che M accetta w se e solo se w ∈ L. Allora L eTuring riconoscibile. Inoltre e facile costruire una MdTM che accetta w se e solo se w 6∈ L:

w → H →

{accetta se w ∈ L

rifiuta se w 6∈ L→

{rifiuta se H accetta

accetta se H rifiuta

Page 146: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

(⇐) Supponiamo che L e il suo complemento siano entrambiTuring riconoscibili. Sia M1 una MdTche riconosce L e M2 una MdTche riconosce L. Definiamo una MdTN (a due nastri): sull’input x

1. Copia x sui nastri di M1 e M2

2. Simula M1 e M2 in parallelo (usa un nastro per M1, l’altro perM2

3. Se M1 accetta, accetta; se M2 accetta, rifiuta

Page 147: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

(⇐) Supponiamo che L e il suo complemento siano entrambiTuring riconoscibili. Sia M1 una MdTche riconosce L e M2 una MdTche riconosce L. Definiamo una MdTN (a due nastri): sull’input x

1. Copia x sui nastri di M1 e M2

2. Simula M1 e M2 in parallelo (usa un nastro per M1, l’altro perM2

3. Se M1 accetta, accetta; se M2 accetta, rifiuta

Page 148: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

(⇐) Supponiamo che L e il suo complemento siano entrambiTuring riconoscibili. Sia M1 una MdTche riconosce L e M2 una MdTche riconosce L. Definiamo una MdTN (a due nastri): sull’input x

1. Copia x sui nastri di M1 e M2

2. Simula M1 e M2 in parallelo (usa un nastro per M1, l’altro perM2

3. Se M1 accetta, accetta; se M2 accetta, rifiuta

Page 149: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

(⇐) Supponiamo che L e il suo complemento siano entrambiTuring riconoscibili. Sia M1 una MdTche riconosce L e M2 una MdTche riconosce L. Definiamo una MdTN (a due nastri): sull’input x

1. Copia x sui nastri di M1 e M2

2. Simula M1 e M2 in parallelo (usa un nastro per M1, l’altro perM2

3. Se M1 accetta, accetta; se M2 accetta, rifiuta

Page 150: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

x →M1 →accetta

M2 → accetta →

{accetta se M1 accetta

rifiuta se M2 accetta

N decide L. Infatti, per ogni stringa x abbiamo due casi:

1. x ∈ L. Ma x ∈ L se e solo se M1 si arresta e accetta x . QuindiN accetta x .

2. x 6∈ L. Ma x 6∈ L se e solo se M2 si arresta e accetta x . QuindiN rifiuta x .

Poiche una e solo una delle due MdTaccetta x , N e una MdTcon solo due possibili risultati di una computazione(accettazione, rifiuto) e tale che N accetta x se e solo sex ∈ L.

Page 151: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

x →M1 →accetta

M2 → accetta →

{accetta se M1 accetta

rifiuta se M2 accetta

N decide L. Infatti, per ogni stringa x abbiamo due casi:

1. x ∈ L. Ma x ∈ L se e solo se M1 si arresta e accetta x . QuindiN accetta x .

2. x 6∈ L. Ma x 6∈ L se e solo se M2 si arresta e accetta x . QuindiN rifiuta x .

Poiche una e solo una delle due MdTaccetta x , N e una MdTcon solo due possibili risultati di una computazione(accettazione, rifiuto) e tale che N accetta x se e solo sex ∈ L.

Page 152: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

x →M1 →accetta

M2 → accetta →

{accetta se M1 accetta

rifiuta se M2 accetta

N decide L. Infatti, per ogni stringa x abbiamo due casi:

1. x ∈ L. Ma x ∈ L se e solo se M1 si arresta e accetta x . QuindiN accetta x .

2. x 6∈ L. Ma x 6∈ L se e solo se M2 si arresta e accetta x . QuindiN rifiuta x .

Poiche una e solo una delle due MdTaccetta x , N e una MdTcon solo due possibili risultati di una computazione(accettazione, rifiuto) e tale che N accetta x se e solo sex ∈ L.

Page 153: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

x →M1 →accetta

M2 → accetta →

{accetta se M1 accetta

rifiuta se M2 accetta

N decide L. Infatti, per ogni stringa x abbiamo due casi:

1. x ∈ L. Ma x ∈ L se e solo se M1 si arresta e accetta x . QuindiN accetta x .

2. x 6∈ L. Ma x 6∈ L se e solo se M2 si arresta e accetta x . QuindiN rifiuta x .

Poiche una e solo una delle due MdTaccetta x , N e una MdTcon solo due possibili risultati di una computazione(accettazione, rifiuto) e tale che N accetta x se e solo sex ∈ L.

Page 154: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

x →M1 →accetta

M2 → accetta →

{accetta se M1 accetta

rifiuta se M2 accetta

N decide L. Infatti, per ogni stringa x abbiamo due casi:

1. x ∈ L. Ma x ∈ L se e solo se M1 si arresta e accetta x . QuindiN accetta x .

2. x 6∈ L. Ma x 6∈ L se e solo se M2 si arresta e accetta x . QuindiN rifiuta x .

Poiche una e solo una delle due MdTaccetta x , N e una MdTcon solo due possibili risultati di una computazione(accettazione, rifiuto) e tale che N accetta x se e solo sex ∈ L.

Page 155: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

Teorema

AMdT non e Turing riconoscibile.

Dimostrazione.

Supponiamo per assurdo che AMdT sia Turing riconoscibile.Sappiamo che AMdT e Turing riconoscibile.Quindi AMdT e Turing riconoscibile e co-Turing riconoscibile.Per il precedente teorema, AMdT e decidibile.Assurdo, poiche abbiamo dimostrato che AMdT e indecidibile.

Page 156: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

Teorema

AMdT non e Turing riconoscibile.

Dimostrazione.

Supponiamo per assurdo che AMdT sia Turing riconoscibile.

Sappiamo che AMdT e Turing riconoscibile.Quindi AMdT e Turing riconoscibile e co-Turing riconoscibile.Per il precedente teorema, AMdT e decidibile.Assurdo, poiche abbiamo dimostrato che AMdT e indecidibile.

Page 157: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

Teorema

AMdT non e Turing riconoscibile.

Dimostrazione.

Supponiamo per assurdo che AMdT sia Turing riconoscibile.Sappiamo che AMdT e Turing riconoscibile.

Quindi AMdT e Turing riconoscibile e co-Turing riconoscibile.Per il precedente teorema, AMdT e decidibile.Assurdo, poiche abbiamo dimostrato che AMdT e indecidibile.

Page 158: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

Teorema

AMdT non e Turing riconoscibile.

Dimostrazione.

Supponiamo per assurdo che AMdT sia Turing riconoscibile.Sappiamo che AMdT e Turing riconoscibile.Quindi AMdT e Turing riconoscibile e co-Turing riconoscibile.

Per il precedente teorema, AMdT e decidibile.Assurdo, poiche abbiamo dimostrato che AMdT e indecidibile.

Page 159: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

Teorema

AMdT non e Turing riconoscibile.

Dimostrazione.

Supponiamo per assurdo che AMdT sia Turing riconoscibile.Sappiamo che AMdT e Turing riconoscibile.Quindi AMdT e Turing riconoscibile e co-Turing riconoscibile.Per il precedente teorema, AMdT e decidibile.

Assurdo, poiche abbiamo dimostrato che AMdT e indecidibile.

Page 160: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Un linguaggio che non e Turing riconoscibile

Teorema

AMdT non e Turing riconoscibile.

Dimostrazione.

Supponiamo per assurdo che AMdT sia Turing riconoscibile.Sappiamo che AMdT e Turing riconoscibile.Quindi AMdT e Turing riconoscibile e co-Turing riconoscibile.Per il precedente teorema, AMdT e decidibile.Assurdo, poiche abbiamo dimostrato che AMdT e indecidibile.

Page 161: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita

E importante riconoscere che un problema P e indecidibile.

Come? Due possibilita:

I Supporre l’esistenza di una MdTche decide P e provare che questo conduce a unacontraddizione.

I Considerare un problema P ′ di cui sia nota l’indecidibilita edimostrare che P ′ “non e piu difficile” del problema inquestione P.

Page 162: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita

E importante riconoscere che un problema P e indecidibile.

Come? Due possibilita:

I Supporre l’esistenza di una MdTche decide P e provare che questo conduce a unacontraddizione.

I Considerare un problema P ′ di cui sia nota l’indecidibilita edimostrare che P ′ “non e piu difficile” del problema inquestione P.

Page 163: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita

E importante riconoscere che un problema P e indecidibile.

Come? Due possibilita:

I Supporre l’esistenza di una MdTche decide P e provare che questo conduce a unacontraddizione.

I Considerare un problema P ′ di cui sia nota l’indecidibilita edimostrare che P ′ “non e piu difficile” del problema inquestione P.

Page 164: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita

E importante riconoscere che un problema P e indecidibile.

Come? Due possibilita:

I Supporre l’esistenza di una MdTche decide P e provare che questo conduce a unacontraddizione.

I Considerare un problema P ′ di cui sia nota l’indecidibilita edimostrare che P ′ “non e piu difficile” del problema inquestione P.

Page 165: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un esempio

Esempio Σ = {0, 1}.

EVEN = {w ∈ Σ∗ | w e la rappresentazione binaria di n ∈ N pari}

ODD = {w ∈ Σ∗ | w e la rappresentazione binaria di n ∈ N dispari}

Sia w ∈ Σ∗ e sia n il corrispondente decimale di w . E facilecostruire la MdTINCR:

w → INCR → w ′ (= rappresentazione binaria di n + 1)

Page 166: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un esempio

Esempio Σ = {0, 1}.

EVEN = {w ∈ Σ∗ | w e la rappresentazione binaria di n ∈ N pari}

ODD = {w ∈ Σ∗ | w e la rappresentazione binaria di n ∈ N dispari}

Sia w ∈ Σ∗ e sia n il corrispondente decimale di w . E facilecostruire la MdTINCR:

w → INCR → w ′ (= rappresentazione binaria di n + 1)

Page 167: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un esempio

Esempio Σ = {0, 1}.

EVEN = {w ∈ Σ∗ | w e la rappresentazione binaria di n ∈ N pari}

ODD = {w ∈ Σ∗ | w e la rappresentazione binaria di n ∈ N dispari}

Sia w ∈ Σ∗ e sia n il corrispondente decimale di w . E facilecostruire la MdTINCR:

w → INCR → w ′ (= rappresentazione binaria di n + 1)

Page 168: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un esempio

Esempio Σ = {0, 1}.

EVEN = {w ∈ Σ∗ | w e la rappresentazione binaria di n ∈ N pari}

ODD = {w ∈ Σ∗ | w e la rappresentazione binaria di n ∈ N dispari}

Sia w ∈ Σ∗ e sia n il corrispondente decimale di w . E facilecostruire la MdTINCR:

w → INCR → w ′ (= rappresentazione binaria di n + 1)

Page 169: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un esempio

I EVEN “non e piu difficile” di ODD: se esiste una MdTR che decide ODD, la MdTS decide EVEN.

S : w → INCR → w ′ → R

I Viceversa se EVEN e indecidibile proviamo cosı che ancheODD lo e: se per assurdo esistesse una MdTR che decide ODD, la MdTS deciderebbe EVEN.

I Problema. Possiamo dire che ODD “non e piu difficile” diEVEN? In che modo?

Page 170: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un esempio

I EVEN “non e piu difficile” di ODD: se esiste una MdTR che decide ODD, la MdTS decide EVEN.

S : w → INCR → w ′ → R

I Viceversa se EVEN e indecidibile proviamo cosı che ancheODD lo e: se per assurdo esistesse una MdTR che decide ODD, la MdTS deciderebbe EVEN.

I Problema. Possiamo dire che ODD “non e piu difficile” diEVEN? In che modo?

Page 171: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un esempio

I EVEN “non e piu difficile” di ODD: se esiste una MdTR che decide ODD, la MdTS decide EVEN.

S : w → INCR → w ′ → R

I Viceversa se EVEN e indecidibile proviamo cosı che ancheODD lo e: se per assurdo esistesse una MdTR che decide ODD, la MdTS deciderebbe EVEN.

I Problema. Possiamo dire che ODD “non e piu difficile” diEVEN? In che modo?

Page 172: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un esempio

I EVEN “non e piu difficile” di ODD: se esiste una MdTR che decide ODD, la MdTS decide EVEN.

S : w → INCR → w ′ → R

I Viceversa se EVEN e indecidibile proviamo cosı che ancheODD lo e: se per assurdo esistesse una MdTR che decide ODD, la MdTS deciderebbe EVEN.

I Problema. Possiamo dire che ODD “non e piu difficile” diEVEN? In che modo?

Page 173: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Esempio (il “vero” problema della fermata):

HALTMdT = {〈M,w〉 | M e una MdT e M si arresta su w}

Se HALTMdT fosse decidibile potremmo decidere anche AMdT :

I Sia R una MdT che decide HALTMdT .

I Costruiamo S che sull’input 〈M,w〉, dove M e una MdT e we una stringa:

- simula R su 〈M,w〉- se R rifiuta, rifiuta; se R accetta (questo significa che M si

ferma su w) simula M finche M si arresta su w .- Se M ha accettato, accetta; se M ha rifiutato, rifiuta.

Se R decide HALTMdT allora S decide AMdT . Poichesappiamo che AMdT e indecidibile allora anche HALTMdT

deve essere indecidibile.

Page 174: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Esempio (il “vero” problema della fermata):

HALTMdT = {〈M,w〉 | M e una MdT e M si arresta su w}

Se HALTMdT fosse decidibile potremmo decidere anche AMdT :

I Sia R una MdT che decide HALTMdT .

I Costruiamo S che sull’input 〈M,w〉, dove M e una MdT e we una stringa:

- simula R su 〈M,w〉- se R rifiuta, rifiuta; se R accetta (questo significa che M si

ferma su w) simula M finche M si arresta su w .- Se M ha accettato, accetta; se M ha rifiutato, rifiuta.

Se R decide HALTMdT allora S decide AMdT . Poichesappiamo che AMdT e indecidibile allora anche HALTMdT

deve essere indecidibile.

Page 175: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Esempio (il “vero” problema della fermata):

HALTMdT = {〈M,w〉 | M e una MdT e M si arresta su w}

Se HALTMdT fosse decidibile potremmo decidere anche AMdT :

I Sia R una MdT che decide HALTMdT .

I Costruiamo S che sull’input 〈M,w〉, dove M e una MdT e we una stringa:

- simula R su 〈M,w〉- se R rifiuta, rifiuta; se R accetta (questo significa che M si

ferma su w) simula M finche M si arresta su w .- Se M ha accettato, accetta; se M ha rifiutato, rifiuta.

Se R decide HALTMdT allora S decide AMdT . Poichesappiamo che AMdT e indecidibile allora anche HALTMdT

deve essere indecidibile.

Page 176: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Esempio (il “vero” problema della fermata):

HALTMdT = {〈M,w〉 | M e una MdT e M si arresta su w}

Se HALTMdT fosse decidibile potremmo decidere anche AMdT :

I Sia R una MdT che decide HALTMdT .

I Costruiamo S che sull’input 〈M,w〉, dove M e una MdT e we una stringa:

- simula R su 〈M,w〉- se R rifiuta, rifiuta; se R accetta (questo significa che M si

ferma su w) simula M finche M si arresta su w .- Se M ha accettato, accetta; se M ha rifiutato, rifiuta.

Se R decide HALTMdT allora S decide AMdT . Poichesappiamo che AMdT e indecidibile allora anche HALTMdT

deve essere indecidibile.

Page 177: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Esempio (il “vero” problema della fermata):

HALTMdT = {〈M,w〉 | M e una MdT e M si arresta su w}

Se HALTMdT fosse decidibile potremmo decidere anche AMdT :

I Sia R una MdT che decide HALTMdT .

I Costruiamo S che sull’input 〈M,w〉, dove M e una MdT e we una stringa:

- simula R su 〈M,w〉

- se R rifiuta, rifiuta; se R accetta (questo significa che M siferma su w) simula M finche M si arresta su w .

- Se M ha accettato, accetta; se M ha rifiutato, rifiuta.

Se R decide HALTMdT allora S decide AMdT . Poichesappiamo che AMdT e indecidibile allora anche HALTMdT

deve essere indecidibile.

Page 178: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Esempio (il “vero” problema della fermata):

HALTMdT = {〈M,w〉 | M e una MdT e M si arresta su w}

Se HALTMdT fosse decidibile potremmo decidere anche AMdT :

I Sia R una MdT che decide HALTMdT .

I Costruiamo S che sull’input 〈M,w〉, dove M e una MdT e we una stringa:

- simula R su 〈M,w〉- se R rifiuta, rifiuta; se R accetta (questo significa che M si

ferma su w) simula M finche M si arresta su w .

- Se M ha accettato, accetta; se M ha rifiutato, rifiuta.

Se R decide HALTMdT allora S decide AMdT . Poichesappiamo che AMdT e indecidibile allora anche HALTMdT

deve essere indecidibile.

Page 179: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Esempio (il “vero” problema della fermata):

HALTMdT = {〈M,w〉 | M e una MdT e M si arresta su w}

Se HALTMdT fosse decidibile potremmo decidere anche AMdT :

I Sia R una MdT che decide HALTMdT .

I Costruiamo S che sull’input 〈M,w〉, dove M e una MdT e we una stringa:

- simula R su 〈M,w〉- se R rifiuta, rifiuta; se R accetta (questo significa che M si

ferma su w) simula M finche M si arresta su w .- Se M ha accettato, accetta; se M ha rifiutato, rifiuta.

Se R decide HALTMdT allora S decide AMdT . Poichesappiamo che AMdT e indecidibile allora anche HALTMdT

deve essere indecidibile.

Page 180: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Esempio (il “vero” problema della fermata):

HALTMdT = {〈M,w〉 | M e una MdT e M si arresta su w}

Se HALTMdT fosse decidibile potremmo decidere anche AMdT :

I Sia R una MdT che decide HALTMdT .

I Costruiamo S che sull’input 〈M,w〉, dove M e una MdT e we una stringa:

- simula R su 〈M,w〉- se R rifiuta, rifiuta; se R accetta (questo significa che M si

ferma su w) simula M finche M si arresta su w .- Se M ha accettato, accetta; se M ha rifiutato, rifiuta.

Se R decide HALTMdT allora S decide AMdT . Poichesappiamo che AMdT e indecidibile allora anche HALTMdT

deve essere indecidibile.

Page 181: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Analizziamo l’esempio precedente:

I A partire dalla MdT R che decide HALTMdT abbiamocostruito una MdT S decide AMdT .

I Questa MdT S e ottenuta facendo seguire alla computazionedi R e se R accetta, la computazione di una MdT M ′:

〈M,w〉 → M ′ : Simula M su w →

{accetta se M accetta w ;

cicla altrimenti

I M ′ si ferma su w se e solo se M accetta w , cioe:

〈M,w〉 ∈ AMdT ⇔ 〈M ′,w〉 ∈ HALTMdT

I La stringa F (〈M,w〉) = 〈M ′,w〉 puo essere ottenuta medianteuna MdT G .

Page 182: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Analizziamo l’esempio precedente:

I A partire dalla MdT R che decide HALTMdT abbiamocostruito una MdT S decide AMdT .

I Questa MdT S e ottenuta facendo seguire alla computazionedi R e se R accetta, la computazione di una MdT M ′:

〈M,w〉 → M ′ : Simula M su w →

{accetta se M accetta w ;

cicla altrimenti

I M ′ si ferma su w se e solo se M accetta w , cioe:

〈M,w〉 ∈ AMdT ⇔ 〈M ′,w〉 ∈ HALTMdT

I La stringa F (〈M,w〉) = 〈M ′,w〉 puo essere ottenuta medianteuna MdT G .

Page 183: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Analizziamo l’esempio precedente:

I A partire dalla MdT R che decide HALTMdT abbiamocostruito una MdT S decide AMdT .

I Questa MdT S e ottenuta facendo seguire alla computazionedi R e se R accetta, la computazione di una MdT M ′:

〈M,w〉 → M ′ : Simula M su w →

{accetta se M accetta w ;

cicla altrimenti

I M ′ si ferma su w se e solo se M accetta w , cioe:

〈M,w〉 ∈ AMdT ⇔ 〈M ′,w〉 ∈ HALTMdT

I La stringa F (〈M,w〉) = 〈M ′,w〉 puo essere ottenuta medianteuna MdT G .

Page 184: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Analizziamo l’esempio precedente:

I A partire dalla MdT R che decide HALTMdT abbiamocostruito una MdT S decide AMdT .

I Questa MdT S e ottenuta facendo seguire alla computazionedi R e se R accetta, la computazione di una MdT M ′:

〈M,w〉 → M ′ : Simula M su w →

{accetta se M accetta w ;

cicla altrimenti

I M ′ si ferma su w se e solo se M accetta w , cioe:

〈M,w〉 ∈ AMdT ⇔ 〈M ′,w〉 ∈ HALTMdT

I La stringa F (〈M,w〉) = 〈M ′,w〉 puo essere ottenuta medianteuna MdT G .

Page 185: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Analizziamo l’esempio precedente:

I A partire dalla MdT R che decide HALTMdT abbiamocostruito una MdT S decide AMdT .

I Questa MdT S e ottenuta facendo seguire alla computazionedi R e se R accetta, la computazione di una MdT M ′:

〈M,w〉 → M ′ : Simula M su w →

{accetta se M accetta w ;

cicla altrimenti

I M ′ si ferma su w se e solo se M accetta w , cioe:

〈M,w〉 ∈ AMdT ⇔ 〈M ′,w〉 ∈ HALTMdT

I La stringa F (〈M,w〉) = 〈M ′,w〉 puo essere ottenuta medianteuna MdT G .

Page 186: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Quindi due requisiti:

1. La stringa F (〈M,w〉) = 〈M ′,w〉 puo essere ottenuta medianteuna MdTG .

2. M ′ si ferma su w se e solo se M accetta w , cioe:

〈M,w〉 ∈ AMdT ⇔ 〈M ′,w〉 ∈ HALTMdT

I due requisiti sono entrambi necessari:

1. Il primo assicura che possiamo costruire una MdT

S : 〈M,w〉 → G → 〈M ′,w〉 → MdT che decide HALTMdT

2. Il secondo che la MdT S deciderebbe AMdT

Page 187: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Quindi due requisiti:

1. La stringa F (〈M,w〉) = 〈M ′,w〉 puo essere ottenuta medianteuna MdTG .

2. M ′ si ferma su w se e solo se M accetta w , cioe:

〈M,w〉 ∈ AMdT ⇔ 〈M ′,w〉 ∈ HALTMdT

I due requisiti sono entrambi necessari:

1. Il primo assicura che possiamo costruire una MdT

S : 〈M,w〉 → G → 〈M ′,w〉 → MdT che decide HALTMdT

2. Il secondo che la MdT S deciderebbe AMdT

Page 188: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Quindi due requisiti:

1. La stringa F (〈M,w〉) = 〈M ′,w〉 puo essere ottenuta medianteuna MdTG .

2. M ′ si ferma su w se e solo se M accetta w , cioe:

〈M,w〉 ∈ AMdT ⇔ 〈M ′,w〉 ∈ HALTMdT

I due requisiti sono entrambi necessari:

1. Il primo assicura che possiamo costruire una MdT

S : 〈M,w〉 → G → 〈M ′,w〉 → MdT che decide HALTMdT

2. Il secondo che la MdT S deciderebbe AMdT

Page 189: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Quindi due requisiti:

1. La stringa F (〈M,w〉) = 〈M ′,w〉 puo essere ottenuta medianteuna MdTG .

2. M ′ si ferma su w se e solo se M accetta w , cioe:

〈M,w〉 ∈ AMdT ⇔ 〈M ′,w〉 ∈ HALTMdT

I due requisiti sono entrambi necessari:

1. Il primo assicura che possiamo costruire una MdT

S : 〈M,w〉 → G → 〈M ′,w〉 → MdT che decide HALTMdT

2. Il secondo che la MdT S deciderebbe AMdT

Page 190: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Quindi due requisiti:

1. La stringa F (〈M,w〉) = 〈M ′,w〉 puo essere ottenuta medianteuna MdTG .

2. M ′ si ferma su w se e solo se M accetta w , cioe:

〈M,w〉 ∈ AMdT ⇔ 〈M ′,w〉 ∈ HALTMdT

I due requisiti sono entrambi necessari:

1. Il primo assicura che possiamo costruire una MdT

S : 〈M,w〉 → G → 〈M ′,w〉 → MdT che decide HALTMdT

2. Il secondo che la MdT S deciderebbe AMdT

Page 191: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita: un altro esempio

Quindi due requisiti:

1. La stringa F (〈M,w〉) = 〈M ′,w〉 puo essere ottenuta medianteuna MdTG .

2. M ′ si ferma su w se e solo se M accetta w , cioe:

〈M,w〉 ∈ AMdT ⇔ 〈M ′,w〉 ∈ HALTMdT

I due requisiti sono entrambi necessari:

1. Il primo assicura che possiamo costruire una MdT

S : 〈M,w〉 → G → 〈M ′,w〉 → MdT che decide HALTMdT

2. Il secondo che la MdT S deciderebbe AMdT

Page 192: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Schema di Riduzione

Dal problema A al Problema B

1. Sappiamo che A risulta indecidibile

2. Vogliamo provare che B e indecidibile

3. Assumiamo (per assurdo) B decidibile edusiamo questa assunzione per provare A decidibile

4. La contraddizione ci fa concludere: B indecidibile

Page 193: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Schema di Riduzione

Dal problema A al Problema B

1. Sappiamo che A risulta indecidibile

2. Vogliamo provare che B e indecidibile

3. Assumiamo (per assurdo) B decidibile edusiamo questa assunzione per provare A decidibile

4. La contraddizione ci fa concludere: B indecidibile

Page 194: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Schema di Riduzione

Dal problema A al Problema B

1. Sappiamo che A risulta indecidibile

2. Vogliamo provare che B e indecidibile

3. Assumiamo (per assurdo) B decidibile edusiamo questa assunzione per provare A decidibile

4. La contraddizione ci fa concludere: B indecidibile

Page 195: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Schema di Riduzione

Dal problema A al Problema B

1. Sappiamo che A risulta indecidibile

2. Vogliamo provare che B e indecidibile

3. Assumiamo (per assurdo) B decidibile edusiamo questa assunzione per provare A decidibile

4. La contraddizione ci fa concludere: B indecidibile

Page 196: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riepilogo per HALTMdT

Dal problema A al Problema B

1. Sappiamo che A risulta indecidibileUnico conosciuto: A = AMdT

2. Vogliamo provare che B e indecidibileHALTMdT gioca il ruolo di B

3. Assumiamo (per assurdo) B decidibile ed usiamo questaassunzione per provare A decidibileProviamo HALTMdT decidibile ⇒ AMdT decidibile

Sia R una MdT che decide HALTMdT .Costruiamo S che sull’input 〈M,w〉

I simula R su 〈M,w〉I Se R accetta (M si ferma su w)

I simula M finche M si arresta su w .Se M ha accettato, accetta; se M ha rifiutato, rifiuta.

Se R decide HALTMdT allora S decide AMdT !

4. La contraddizione ci fa concludere: B = HALTMdT

indecidibile

Page 197: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riepilogo per HALTMdT

Dal problema A al Problema B

1. Sappiamo che A risulta indecidibileUnico conosciuto: A = AMdT

2. Vogliamo provare che B e indecidibileHALTMdT gioca il ruolo di B

3. Assumiamo (per assurdo) B decidibile ed usiamo questaassunzione per provare A decidibileProviamo HALTMdT decidibile ⇒ AMdT decidibileSia R una MdT che decide HALTMdT .Costruiamo S che sull’input 〈M,w〉

I simula R su 〈M,w〉I Se R accetta (M si ferma su w)

I simula M finche M si arresta su w .Se M ha accettato, accetta; se M ha rifiutato, rifiuta.

Se R decide HALTMdT allora S decide AMdT !

4. La contraddizione ci fa concludere: B = HALTMdT

indecidibile

Page 198: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riepilogo per HALTMdT

Dal problema A al Problema B

1. Sappiamo che A risulta indecidibileUnico conosciuto: A = AMdT

2. Vogliamo provare che B e indecidibileHALTMdT gioca il ruolo di B

3. Assumiamo (per assurdo) B decidibile ed usiamo questaassunzione per provare A decidibileProviamo HALTMdT decidibile ⇒ AMdT decidibileSia R una MdT che decide HALTMdT .Costruiamo S che sull’input 〈M,w〉

I simula R su 〈M,w〉I Se R accetta (M si ferma su w)

I simula M finche M si arresta su w .Se M ha accettato, accetta; se M ha rifiutato, rifiuta.

Se R decide HALTMdT allora S decide AMdT !

4. La contraddizione ci fa concludere: B = HALTMdT

indecidibile

Page 199: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riepilogo per HALTMdT

Dal problema A al Problema B

1. Sappiamo che A risulta indecidibileUnico conosciuto: A = AMdT

2. Vogliamo provare che B e indecidibileHALTMdT gioca il ruolo di B

3. Assumiamo (per assurdo) B decidibile ed usiamo questaassunzione per provare A decidibileProviamo HALTMdT decidibile ⇒ AMdT decidibileSia R una MdT che decide HALTMdT .Costruiamo S che sull’input 〈M,w〉

I simula R su 〈M,w〉I Se R accetta (M si ferma su w)

I simula M finche M si arresta su w .Se M ha accettato, accetta; se M ha rifiutato, rifiuta.

Se R decide HALTMdT allora S decide AMdT !

4. La contraddizione ci fa concludere: B = HALTMdT

indecidibile

Page 200: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto di MdT

Consideriamo

EMdT = {〈M〉 | M MdT tale che L(M) = ∅}

Teorema

EMdT e indecidibile.

1. Sappiamo che AMdT risulta indecidibile

2. Vogliamo provare che EMdT e indecidibile

3. Assumiamo (per assurdo) EMdT decidibile edusiamo questa assunzione per provare AMdT decidibile

4. La contraddizione ci fa concludere: EMdT indecidibile

Page 201: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto di MdT

Consideriamo

EMdT = {〈M〉 | M MdT tale che L(M) = ∅}

Teorema

EMdT e indecidibile.

1. Sappiamo che AMdT risulta indecidibile

2. Vogliamo provare che EMdT e indecidibile

3. Assumiamo (per assurdo) EMdT decidibile edusiamo questa assunzione per provare AMdT decidibile

4. La contraddizione ci fa concludere: EMdT indecidibile

Page 202: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto di MdT

Consideriamo

EMdT = {〈M〉 | M MdT tale che L(M) = ∅}

Teorema

EMdT e indecidibile.

1. Sappiamo che AMdT risulta indecidibile

2. Vogliamo provare che EMdT e indecidibile

3. Assumiamo (per assurdo) EMdT decidibile edusiamo questa assunzione per provare AMdT decidibile

4. La contraddizione ci fa concludere: EMdT indecidibile

Page 203: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto di MdT

Consideriamo

EMdT = {〈M〉 | M MdT tale che L(M) = ∅}

Teorema

EMdT e indecidibile.

1. Sappiamo che AMdT risulta indecidibile

2. Vogliamo provare che EMdT e indecidibile

3. Assumiamo (per assurdo) EMdT decidibile edusiamo questa assunzione per provare AMdT decidibile

4. La contraddizione ci fa concludere: EMdT indecidibile

Page 204: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto di MdT

Assumiamo (per assurdo) EMdT decidibile, sia R MdT che lo decideUsiamo R per costruire una MdT S che decide AMdT :

Data istanza 〈M,w〉 di AMdT ,Usiamo R su 〈M〉.

R accetta ⇒ L(M) = ∅ ⇒ M non accetta w⇒ Decider S per AMdT deve rifiutare 〈M,w〉.

R rifiuta 〈M,w〉 ⇒ L(M) 6= ∅Rimane la domanda: w ∈ L(M)?Modifichiamo M in M1

Page 205: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto di MdT

Assumiamo (per assurdo) EMdT decidibile, sia R MdT che lo decideUsiamo R per costruire una MdT S che decide AMdT :

Data istanza 〈M,w〉 di AMdT ,Usiamo R su 〈M〉.

R accetta ⇒ L(M) = ∅ ⇒ M non accetta w⇒ Decider S per AMdT deve rifiutare 〈M,w〉.

R rifiuta 〈M,w〉 ⇒ L(M) 6= ∅Rimane la domanda: w ∈ L(M)?Modifichiamo M in M1

Page 206: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto di MdT

Assumiamo (per assurdo) EMdT decidibile, sia R MdT che lo decideUsiamo R per costruire una MdT S che decide AMdT :

Data istanza 〈M,w〉 di AMdT ,Usiamo R su 〈M〉.

R accetta ⇒ L(M) = ∅ ⇒ M non accetta w⇒ Decider S per AMdT deve rifiutare 〈M,w〉.

R rifiuta 〈M,w〉 ⇒ L(M) 6= ∅Rimane la domanda: w ∈ L(M)?Modifichiamo M in M1

Page 207: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto di MdT

Assumiamo (per assurdo) EMdT decidibile, sia R MdT che lo decideUsiamo R per costruire una MdT S che decide AMdT :

Data istanza 〈M,w〉 di AMdT ,Usiamo R su 〈M〉.

R accetta ⇒ L(M) = ∅ ⇒ M non accetta w⇒ Decider S per AMdT deve rifiutare 〈M,w〉.

R rifiuta 〈M,w〉 ⇒ L(M) 6= ∅Rimane la domanda: w ∈ L(M)?Modifichiamo M in M1

Page 208: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto di MdT: M1

Iniziamo con MdT t.c. L(M1) = L(M)

Page 209: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto di MdT: M1

Inseriamo filtro che controlla se l’input corrisponde a w :facendo un confronto carattere per carattere tra input x e stringaw (data)

Page 210: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto di MdT: M1

Descrizione formale di M1

M1 su input x

1. Se x 6= w , rifiuta

2. Se x = w e M accetta w , accetta

M rifiuta w sse L(M1) = ∅

Page 211: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto di MdT: S

Input di S corrisponde alla coppia 〈M,w〉Prima di ”usare” R (decider di EMdT ), S deve calcolare la codifica〈M1〉 di M1 (deve aggiungere il filtro)

S su input 〈M,w〉1. Calcola la codifica 〈M1〉 di M1

2. Usa R su input 〈M1〉3. Se R rifiuta, accetta

se R accetta (L(M1) = ∅), rifiuta

Se R accetta (L(M1) = ∅ e quindi w /∈ L(M)) quindi S rifiuta

Se R rifiuta (L(M1) = {w} e w ∈ L(M)) quindi S accetta

Conclusione: Da R abbiamo costruito un decider S per AMdT ,quindi R non esiste.

Page 212: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto di MdT: S

Input di S corrisponde alla coppia 〈M,w〉Prima di ”usare” R (decider di EMdT ), S deve calcolare la codifica〈M1〉 di M1 (deve aggiungere il filtro)

S su input 〈M,w〉1. Calcola la codifica 〈M1〉 di M1

2. Usa R su input 〈M1〉3. Se R rifiuta, accetta

se R accetta (L(M1) = ∅), rifiuta

Se R accetta (L(M1) = ∅ e quindi w /∈ L(M)) quindi S rifiuta

Se R rifiuta (L(M1) = {w} e w ∈ L(M)) quindi S accetta

Conclusione: Da R abbiamo costruito un decider S per AMdT ,quindi R non esiste.

Page 213: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto di MdT: S

Input di S corrisponde alla coppia 〈M,w〉Prima di ”usare” R (decider di EMdT ), S deve calcolare la codifica〈M1〉 di M1 (deve aggiungere il filtro)

S su input 〈M,w〉1. Calcola la codifica 〈M1〉 di M1

2. Usa R su input 〈M1〉3. Se R rifiuta, accetta

se R accetta (L(M1) = ∅), rifiuta

Se R accetta (L(M1) = ∅ e quindi w /∈ L(M)) quindi S rifiuta

Se R rifiuta (L(M1) = {w} e w ∈ L(M)) quindi S accetta

Conclusione: Da R abbiamo costruito un decider S per AMdT ,quindi R non esiste.

Page 214: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Problema del vuoto di MdT: S

Input di S corrisponde alla coppia 〈M,w〉Prima di ”usare” R (decider di EMdT ), S deve calcolare la codifica〈M1〉 di M1 (deve aggiungere il filtro)

S su input 〈M,w〉1. Calcola la codifica 〈M1〉 di M1

2. Usa R su input 〈M1〉3. Se R rifiuta, accetta

se R accetta (L(M1) = ∅), rifiuta

Se R accetta (L(M1) = ∅ e quindi w /∈ L(M)) quindi S rifiuta

Se R rifiuta (L(M1) = {w} e w ∈ L(M)) quindi S accetta

Conclusione: Da R abbiamo costruito un decider S per AMdT ,quindi R non esiste.

Page 215: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Funzioni calcolabili

Definizione

Una funzione f : Σ∗ → Σ∗ e calcolabile se esiste una TM M taleche su ogni input w, M si arresta con f (w), e solo con f (w), sulsuo nastro.

I Nota: questa definizione sottolinea la differenza tra definireuna funzione f , cioe definire i valori di f e calcolare tali valoridi f .

I La funzione F : 〈M,w〉 → 〈M1,w〉 dell’esempio precedente ecalcolabile.

Page 216: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Funzioni calcolabili

Definizione

Una funzione f : Σ∗ → Σ∗ e calcolabile se esiste una TM M taleche su ogni input w, M si arresta con f (w), e solo con f (w), sulsuo nastro.

I Nota: questa definizione sottolinea la differenza tra definireuna funzione f , cioe definire i valori di f e calcolare tali valoridi f .

I La funzione F : 〈M,w〉 → 〈M1,w〉 dell’esempio precedente ecalcolabile.

Page 217: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Funzioni calcolabili

Definizione

Una funzione f : Σ∗ → Σ∗ e calcolabile se esiste una TM M taleche su ogni input w, M si arresta con f (w), e solo con f (w), sulsuo nastro.

I Nota: questa definizione sottolinea la differenza tra definireuna funzione f , cioe definire i valori di f e calcolare tali valoridi f .

I La funzione F : 〈M,w〉 → 〈M1,w〉 dell’esempio precedente ecalcolabile.

Page 218: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Funzioni calcolabili

Le seguenti funzioni aritmetiche sono calcolabili (dove n,m ∈ N):

I incr(n) = n + 1

I dec(n) =

{n − 1 se n > 0;

0 se n = 0

I (m, n)→ m + n;

I (m, n)→ m − n;

I (m, n)→ m · n

Page 219: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita

Definizione

Un linguaggio A e riducibile a un linguaggio B (A ≤m B) se esisteuna funzione calcolabile f : Σ∗ → Σ∗ tale che ∀w

w ∈ A⇔ f (w) ∈ B

La funzione f e chiamata la riduzione di A a B.

I Una riduzione fornisce un modo per convertireproblemi di appartenenza ad A in problemi di appartenenza aB.

I Se un problema A e riducibile a B e sappiamo risolvere Ballora sappiamo risolvere A⇒ A “non e piu difficile” di B.

Page 220: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riducibilita

Definizione

Un linguaggio A e riducibile a un linguaggio B (A ≤m B) se esisteuna funzione calcolabile f : Σ∗ → Σ∗ tale che ∀w

w ∈ A⇔ f (w) ∈ B

La funzione f e chiamata la riduzione di A a B.

I Una riduzione fornisce un modo per convertireproblemi di appartenenza ad A in problemi di appartenenza aB.

I Se un problema A e riducibile a B e sappiamo risolvere Ballora sappiamo risolvere A⇒ A “non e piu difficile” di B.

Page 221: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riduzioni

Teorema

Se A ≤m B e B e decidibile, allora A e decidibile.

Siano: M il decider per B ed f la riduzione da A a BCostruiamo un decider N per A: su input w

I Calcola f (w)I ”utilizza” M su f (w) e da lo stesso output.

w ∈ A ⇔ f (w) ∈ B (f riduzione da A a B) ⇔ M accetta f (w)

Quindi N decide A.

Teorema

Se A ≤m B e B e Turing riconoscibile, allora A e Turingriconoscibile.

RA riconoscitore per A, RB riconoscitore per B,

RA : w → f → f (w)→ RB

Page 222: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riduzioni

Teorema

Se A ≤m B e B e decidibile, allora A e decidibile.

Siano: M il decider per B ed f la riduzione da A a BCostruiamo un decider N per A: su input w

I Calcola f (w)I ”utilizza” M su f (w) e da lo stesso output.

w ∈ A ⇔ f (w) ∈ B (f riduzione da A a B) ⇔ M accetta f (w)

Quindi N decide A.

Teorema

Se A ≤m B e B e Turing riconoscibile, allora A e Turingriconoscibile.

RA riconoscitore per A, RB riconoscitore per B,

RA : w → f → f (w)→ RB

Page 223: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riduzioni

Teorema

Se A ≤m B e B e decidibile, allora A e decidibile.

Siano: M il decider per B ed f la riduzione da A a BCostruiamo un decider N per A: su input w

I Calcola f (w)I ”utilizza” M su f (w) e da lo stesso output.

w ∈ A ⇔ f (w) ∈ B (f riduzione da A a B) ⇔ M accetta f (w)

Quindi N decide A.

Teorema

Se A ≤m B e B e Turing riconoscibile, allora A e Turingriconoscibile.

RA riconoscitore per A, RB riconoscitore per B,

RA : w → f → f (w)→ RB

Page 224: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riduzioni

CorollarioSe A ≤m B e A e indecidibile, allora B e indecidibile.

(se B fosse decidibile lo sarebbe anche A in virtu del teoremaprecedente)

CorollarioSe A ≤m B e A non e Turing riconoscibile, allora B non eTuring riconoscibile.

(se B fosse Turing riconoscibile lo sarebbe anche A in virtu delteorema precedente)

Page 225: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riduzioni

CorollarioSe A ≤m B e A e indecidibile, allora B e indecidibile.

(se B fosse decidibile lo sarebbe anche A in virtu del teoremaprecedente)

CorollarioSe A ≤m B e A non e Turing riconoscibile, allora B non eTuring riconoscibile.

(se B fosse Turing riconoscibile lo sarebbe anche A in virtu delteorema precedente)

Page 226: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riduzioni

CorollarioSe A ≤m B e A e indecidibile, allora B e indecidibile.

(se B fosse decidibile lo sarebbe anche A in virtu del teoremaprecedente)

CorollarioSe A ≤m B e A non e Turing riconoscibile, allora B non eTuring riconoscibile.

(se B fosse Turing riconoscibile lo sarebbe anche A in virtu delteorema precedente)

Page 227: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Riduzioni

CorollarioSe A ≤m B e A e indecidibile, allora B e indecidibile.

(se B fosse decidibile lo sarebbe anche A in virtu del teoremaprecedente)

CorollarioSe A ≤m B e A non e Turing riconoscibile, allora B non eTuring riconoscibile.

(se B fosse Turing riconoscibile lo sarebbe anche A in virtu delteorema precedente)

Page 228: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

ATM = {〈M,w〉 | M e una TM e w ∈ L(M)}

ETM = {〈M〉 | M e una TM e L(M) = ∅}

ATM ≤m ETM

Data una MT M e una stringa w , sia M1 la MdT tale che, su uninput x :

1. Se x 6= w allora M1 si ferma e rifiuta x .

2. Se x = w allora M1 simula M su w e accetta x se M accettax = w .

La funzione: 〈M,w〉 → 〈M1〉 e una riduzione di ATM a ETM .

Infatti, M accetta w (cioe 〈M,w〉 ∈ ATM) se e solo se L(M1) 6= ∅(cioe se e solo se 〈M1〉 ∈ ETM).

Page 229: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

ATM = {〈M,w〉 | M e una TM e w ∈ L(M)}

ETM = {〈M〉 | M e una TM e L(M) = ∅}

ATM ≤m ETM

Data una MT M e una stringa w , sia M1 la MdT tale che, su uninput x :

1. Se x 6= w allora M1 si ferma e rifiuta x .

2. Se x = w allora M1 simula M su w e accetta x se M accettax = w .

La funzione: 〈M,w〉 → 〈M1〉 e una riduzione di ATM a ETM .

Infatti, M accetta w (cioe 〈M,w〉 ∈ ATM) se e solo se L(M1) 6= ∅(cioe se e solo se 〈M1〉 ∈ ETM).

Page 230: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

ATM = {〈M,w〉 | M e una TM e w ∈ L(M)}

ETM = {〈M〉 | M e una TM e L(M) = ∅}

ATM ≤m ETM

Data una MT M e una stringa w , sia M1 la MdT tale che, su uninput x :

1. Se x 6= w allora M1 si ferma e rifiuta x .

2. Se x = w allora M1 simula M su w e accetta x se M accettax = w .

La funzione: 〈M,w〉 → 〈M1〉 e una riduzione di ATM a ETM .

Infatti, M accetta w (cioe 〈M,w〉 ∈ ATM) se e solo se L(M1) 6= ∅(cioe se e solo se 〈M1〉 ∈ ETM).

Page 231: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

ATM ≤m ETM e AMdT indecidibile ⇒ EMdT indecidibile.

Quindi anche EMdT e indecidibile(decidibilita non risente della complementazione)

Nota. Non esiste nessuna riduzione da AMdT a EMdT .

Page 232: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

ATM ≤m ETM e AMdT indecidibile ⇒ EMdT indecidibile.

Quindi anche EMdT e indecidibile(decidibilita non risente della complementazione)

Nota. Non esiste nessuna riduzione da AMdT a EMdT .

Page 233: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

ATM ≤m ETM e AMdT indecidibile ⇒ EMdT indecidibile.

Quindi anche EMdT e indecidibile(decidibilita non risente della complementazione)

Nota. Non esiste nessuna riduzione da AMdT a EMdT .

Page 234: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

REGULARMdT = {〈M〉 | M e una MdT e L(M) e regolare }

AMdT ≤m REGULARMdT

Data una MT M e una stringa w , sia R la macchina di Turing taleche, su un input x :

1. Se x ∈ {0n1n | n ∈ N}, allora R si ferma e accetta x .

2. Se x 6∈ {0n1n | n ∈ N} allora R simula M su w e accetta x seM accetta w .

f : 〈M,w〉 → 〈R〉 e riduzione da AMdT a REGULARMdT .Infatti, se M accetta w allora L(R) = Σ∗ (regolare) e se M nonaccetta w allora L(R) = {0n1n | n ∈ N} (non regolare)

Quindi M accetta w (cioe 〈M,w〉 ∈ AMdT ) se e solo se L(R) eregolare (cioe se e solo se 〈R〉 ∈ REGULARMdT ).

Page 235: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

REGULARMdT = {〈M〉 | M e una MdT e L(M) e regolare }

AMdT ≤m REGULARMdT

Data una MT M e una stringa w , sia R la macchina di Turing taleche, su un input x :

1. Se x ∈ {0n1n | n ∈ N}, allora R si ferma e accetta x .

2. Se x 6∈ {0n1n | n ∈ N} allora R simula M su w e accetta x seM accetta w .

f : 〈M,w〉 → 〈R〉 e riduzione da AMdT a REGULARMdT .Infatti, se M accetta w allora L(R) = Σ∗ (regolare) e se M nonaccetta w allora L(R) = {0n1n | n ∈ N} (non regolare)

Quindi M accetta w (cioe 〈M,w〉 ∈ AMdT ) se e solo se L(R) eregolare (cioe se e solo se 〈R〉 ∈ REGULARMdT ).

Page 236: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

REGULARMdT = {〈M〉 | M e una MdT e L(M) e regolare }

AMdT ≤m REGULARMdT

Data una MT M e una stringa w , sia R la macchina di Turing taleche, su un input x :

1. Se x ∈ {0n1n | n ∈ N}, allora R si ferma e accetta x .

2. Se x 6∈ {0n1n | n ∈ N} allora R simula M su w e accetta x seM accetta w .

f : 〈M,w〉 → 〈R〉 e riduzione da AMdT a REGULARMdT .Infatti, se M accetta w allora L(R) = Σ∗ (regolare) e se M nonaccetta w allora L(R) = {0n1n | n ∈ N} (non regolare)

Quindi M accetta w (cioe 〈M,w〉 ∈ AMdT ) se e solo se L(R) eregolare (cioe se e solo se 〈R〉 ∈ REGULARMdT ).

Page 237: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

REGULARMdT = {〈M〉 | M e una MdT e L(M) e regolare }

AMdT ≤m REGULARMdT

Data una MT M e una stringa w , sia R la macchina di Turing taleche, su un input x :

1. Se x ∈ {0n1n | n ∈ N}, allora R si ferma e accetta x .

2. Se x 6∈ {0n1n | n ∈ N} allora R simula M su w e accetta x seM accetta w .

f : 〈M,w〉 → 〈R〉 e riduzione da AMdT a REGULARMdT .Infatti, se M accetta w allora L(R) = Σ∗ (regolare) e se M nonaccetta w allora L(R) = {0n1n | n ∈ N} (non regolare)

Quindi M accetta w (cioe 〈M,w〉 ∈ AMdT ) se e solo se L(R) eregolare (cioe se e solo se 〈R〉 ∈ REGULARMdT ).

Page 238: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

EMdT = {〈M〉 | M e una MdT e L(M) = ∅}

EQMdT = {〈M1,M2〉 | M1,M2 sono MdT e L(M1) = L(M2)}

EMdT ≤m EQMdT

Sia M1 una macchina di Turing tale che L(M1) = ∅.f : 〈M〉 → 〈M,M1〉 e una riduzione di EMdT a EQMdT .Infatti, L(M) = ∅ (cioe 〈M〉 ∈ EMdT ) se e solo seL(M) = ∅ = L(M1) (cioe se e solo se 〈M,M1〉 ∈ EQMdT )

Page 239: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

EMdT = {〈M〉 | M e una MdT e L(M) = ∅}

EQMdT = {〈M1,M2〉 | M1,M2 sono MdT e L(M1) = L(M2)}

EMdT ≤m EQMdT

Sia M1 una macchina di Turing tale che L(M1) = ∅.f : 〈M〉 → 〈M,M1〉 e una riduzione di EMdT a EQMdT .Infatti, L(M) = ∅ (cioe 〈M〉 ∈ EMdT ) se e solo seL(M) = ∅ = L(M1) (cioe se e solo se 〈M,M1〉 ∈ EQMdT )

Page 240: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

AMdT ≤m EQMdT

Idea: Data 〈M,w〉, considerare una MT M1 che accetta Σ∗ euna macchina M2 che accetta Σ∗ se M accetta w :

Per ogni input x :M1 accetta x ,M2 simula M su w . Se M accetta, M2 accetta.

I f : 〈M,w〉 → 〈M1,M2〉 e riduzione da AMdT a EQMdT .Infatti, M accetta w (cioe 〈M,w〉 ∈ AMdT ) se e solo seL(M1) = Σ∗ = L(M2) (cioe se e solo se 〈M1,M2〉 ∈ EQMdT )

Page 241: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

AMdT ≤m EQMdT

Idea: Data 〈M,w〉, considerare una MT M1 che accetta Σ∗ euna macchina M2 che accetta Σ∗ se M accetta w :

Per ogni input x :M1 accetta x ,M2 simula M su w . Se M accetta, M2 accetta.

I f : 〈M,w〉 → 〈M1,M2〉 e riduzione da AMdT a EQMdT .Infatti, M accetta w (cioe 〈M,w〉 ∈ AMdT ) se e solo seL(M1) = Σ∗ = L(M2) (cioe se e solo se 〈M1,M2〉 ∈ EQMdT )

Page 242: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

AMdT ≤m EQMdT

Idea: Data 〈M,w〉, considerare una MT M1 che accetta Σ∗ euna macchina M2 che accetta Σ∗ se M accetta w :

Per ogni input x :M1 accetta x ,M2 simula M su w . Se M accetta, M2 accetta.

I f : 〈M,w〉 → 〈M1,M2〉 e riduzione da AMdT a EQMdT .Infatti, M accetta w (cioe 〈M,w〉 ∈ AMdT ) se e solo seL(M1) = Σ∗ = L(M2) (cioe se e solo se 〈M1,M2〉 ∈ EQMdT )

Page 243: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

AMdT ≤m EQMdT

Idea: Data 〈M,w〉, considerare una MT M1 che accetta Σ∗ euna macchina M2 che accetta Σ∗ se M accetta w :

Per ogni input x :M1 accetta x ,M2 simula M su w . Se M accetta, M2 accetta.

I f : 〈M,w〉 → 〈M1,M2〉 e riduzione da AMdT a EQMdT .Infatti, M accetta w (cioe 〈M,w〉 ∈ AMdT ) se e solo seL(M1) = Σ∗ = L(M2) (cioe se e solo se 〈M1,M2〉 ∈ EQMdT )

Page 244: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

I AMdT ≤m EQMdT

I Idea: Data 〈M,w〉, considerare una MT M1 che accettal’insieme vuoto e una macchina M2 che accetta Σ∗ se Maccetta w :

Per ogni input x :M1 rifiuta x ,M2 simula M su w . Se M accetta, M2 accetta.

I f : 〈M,w〉 → 〈M1,M2〉 e riduzione da AMdT a EQMdT .

Infatti, M accetta w (cioe 〈M,w〉 ∈ AMdT )se e solose L(M1) = ∅ 6= Σ∗ = L(M2)(cioe se e solo se 〈M1,M2〉 ∈ EQMdT ).

Page 245: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

I AMdT ≤m EQMdT

I Idea: Data 〈M,w〉, considerare una MT M1 che accettal’insieme vuoto e una macchina M2 che accetta Σ∗ se Maccetta w :

Per ogni input x :M1 rifiuta x ,M2 simula M su w . Se M accetta, M2 accetta.

I f : 〈M,w〉 → 〈M1,M2〉 e riduzione da AMdT a EQMdT .

Infatti, M accetta w (cioe 〈M,w〉 ∈ AMdT )se e solose L(M1) = ∅ 6= Σ∗ = L(M2)(cioe se e solo se 〈M1,M2〉 ∈ EQMdT ).

Page 246: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

I AMdT ≤m EQMdT

I Idea: Data 〈M,w〉, considerare una MT M1 che accettal’insieme vuoto e una macchina M2 che accetta Σ∗ se Maccetta w :

Per ogni input x :M1 rifiuta x ,M2 simula M su w . Se M accetta, M2 accetta.

I f : 〈M,w〉 → 〈M1,M2〉 e riduzione da AMdT a EQMdT .

Infatti, M accetta w (cioe 〈M,w〉 ∈ AMdT )se e solose L(M1) = ∅ 6= Σ∗ = L(M2)(cioe se e solo se 〈M1,M2〉 ∈ EQMdT ).

Page 247: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

I AMdT ≤m EQMdT

I Idea: Data 〈M,w〉, considerare una MT M1 che accettal’insieme vuoto e una macchina M2 che accetta Σ∗ se Maccetta w :

Per ogni input x :M1 rifiuta x ,M2 simula M su w . Se M accetta, M2 accetta.

I f : 〈M,w〉 → 〈M1,M2〉 e riduzione da AMdT a EQMdT .

Infatti, M accetta w (cioe 〈M,w〉 ∈ AMdT )se e solose L(M1) = ∅ 6= Σ∗ = L(M2)(cioe se e solo se 〈M1,M2〉 ∈ EQMdT ).

Page 248: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

I AMdT ≤m EQMdT

I Idea: Data 〈M,w〉, considerare una MT M1 che accettal’insieme vuoto e una macchina M2 che accetta Σ∗ se Maccetta w :

Per ogni input x :M1 rifiuta x ,M2 simula M su w . Se M accetta, M2 accetta.

I f : 〈M,w〉 → 〈M1,M2〉 e riduzione da AMdT a EQMdT .

Infatti, M accetta w (cioe 〈M,w〉 ∈ AMdT )se e solose L(M1) = ∅ 6= Σ∗ = L(M2)(cioe se e solo se 〈M1,M2〉 ∈ EQMdT ).

Page 249: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

Teorema

EQMdT non e ne Turing riconoscibile ne co-Turing riconoscibile.

Dimostrazione.

Supponiamo per assurdo che EQMdT sia Turing riconoscibile.

AMdT ≤m EQMdT ⇒ AMdT ≤m EQMdT

Quindi AMdT sarebbe Turing riconoscibile: assurdo.

Supponiamo per assurdo che EQMdT sia co-Turingriconoscibile, cioe che EQMdT sia Turing riconoscibile.

AMdT ≤m EQMdT ⇒ AMdT ≤m EQMdT

Quindi AMdT sarebbe Turing riconoscibile: assurdo.

Page 250: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

Teorema

EQMdT non e ne Turing riconoscibile ne co-Turing riconoscibile.

Dimostrazione.

Supponiamo per assurdo che EQMdT sia Turing riconoscibile.

AMdT ≤m EQMdT ⇒ AMdT ≤m EQMdT

Quindi AMdT sarebbe Turing riconoscibile: assurdo.

Supponiamo per assurdo che EQMdT sia co-Turingriconoscibile, cioe che EQMdT sia Turing riconoscibile.

AMdT ≤m EQMdT ⇒ AMdT ≤m EQMdT

Quindi AMdT sarebbe Turing riconoscibile: assurdo.

Page 251: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

Teorema

EQMdT non e ne Turing riconoscibile ne co-Turing riconoscibile.

Dimostrazione.

Supponiamo per assurdo che EQMdT sia Turing riconoscibile.

AMdT ≤m EQMdT ⇒ AMdT ≤m EQMdT

Quindi AMdT sarebbe Turing riconoscibile: assurdo.

Supponiamo per assurdo che EQMdT sia co-Turingriconoscibile, cioe che EQMdT sia Turing riconoscibile.

AMdT ≤m EQMdT ⇒ AMdT ≤m EQMdT

Quindi AMdT sarebbe Turing riconoscibile: assurdo.

Page 252: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

Teorema

EQMdT non e ne Turing riconoscibile ne co-Turing riconoscibile.

Dimostrazione.

Supponiamo per assurdo che EQMdT sia Turing riconoscibile.

AMdT ≤m EQMdT ⇒ AMdT ≤m EQMdT

Quindi AMdT sarebbe Turing riconoscibile: assurdo.

Supponiamo per assurdo che EQMdT sia co-Turingriconoscibile, cioe che EQMdT sia Turing riconoscibile.

AMdT ≤m EQMdT ⇒ AMdT ≤m EQMdT

Quindi AMdT sarebbe Turing riconoscibile: assurdo.

Page 253: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

Teorema

EQMdT non e ne Turing riconoscibile ne co-Turing riconoscibile.

Dimostrazione.

Supponiamo per assurdo che EQMdT sia Turing riconoscibile.

AMdT ≤m EQMdT ⇒ AMdT ≤m EQMdT

Quindi AMdT sarebbe Turing riconoscibile: assurdo.

Supponiamo per assurdo che EQMdT sia co-Turingriconoscibile, cioe che EQMdT sia Turing riconoscibile.

AMdT ≤m EQMdT ⇒ AMdT ≤m EQMdT

Quindi AMdT sarebbe Turing riconoscibile: assurdo.

Page 254: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

Teorema

EQMdT non e ne Turing riconoscibile ne co-Turing riconoscibile.

Dimostrazione.

Supponiamo per assurdo che EQMdT sia Turing riconoscibile.

AMdT ≤m EQMdT ⇒ AMdT ≤m EQMdT

Quindi AMdT sarebbe Turing riconoscibile: assurdo.

Supponiamo per assurdo che EQMdT sia co-Turingriconoscibile, cioe che EQMdT sia Turing riconoscibile.

AMdT ≤m EQMdT ⇒ AMdT ≤m EQMdT

Quindi AMdT sarebbe Turing riconoscibile: assurdo.

Page 255: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Esempi di riduzioni

Teorema

EQMdT non e ne Turing riconoscibile ne co-Turing riconoscibile.

Dimostrazione.

Supponiamo per assurdo che EQMdT sia Turing riconoscibile.

AMdT ≤m EQMdT ⇒ AMdT ≤m EQMdT

Quindi AMdT sarebbe Turing riconoscibile: assurdo.

Supponiamo per assurdo che EQMdT sia co-Turingriconoscibile, cioe che EQMdT sia Turing riconoscibile.

AMdT ≤m EQMdT ⇒ AMdT ≤m EQMdT

Quindi AMdT sarebbe Turing riconoscibile: assurdo.

Page 256: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Teorema di Rice

Afferma che, per ogni proprieta non banale delle funzionicalcolabili, il problema di decidere quali funzioni soddisfino taleproprieta e quali no, e indecidibile.Propriet banale: proprieta che non effettua alcuna discriminazionetra le funzioni calcolabili, cioe che vale o per tutte o per nessuna.

Teorema di Rice. Sia

P = {〈M〉 | M e una MdT che verifica la proprieta P}un linguaggio che soddisfa le seguenti due condizioni:

1. L’appartenenza di M a P dipende solo da L(M), cioe

∀M1,M2 MdT tali che L(M1) = L(M2), 〈M1〉 ∈ P ⇔ 〈M2〉 ∈ P

2. P e un problema non banale, cioe

∃M1,M2 MdT tali che 〈M1〉 ∈ P, 〈M2〉 6∈ P

P e indecidibile.

Page 257: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Teorema di Rice

Afferma che, per ogni proprieta non banale delle funzionicalcolabili, il problema di decidere quali funzioni soddisfino taleproprieta e quali no, e indecidibile.Propriet banale: proprieta che non effettua alcuna discriminazionetra le funzioni calcolabili, cioe che vale o per tutte o per nessuna.

Teorema di Rice. Sia

P = {〈M〉 | M e una MdT che verifica la proprieta P}un linguaggio che soddisfa le seguenti due condizioni:

1. L’appartenenza di M a P dipende solo da L(M), cioe

∀M1,M2 MdT tali che L(M1) = L(M2), 〈M1〉 ∈ P ⇔ 〈M2〉 ∈ P

2. P e un problema non banale, cioe

∃M1,M2 MdT tali che 〈M1〉 ∈ P, 〈M2〉 6∈ P

P e indecidibile.

Page 258: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Teorema di Rice

Afferma che, per ogni proprieta non banale delle funzionicalcolabili, il problema di decidere quali funzioni soddisfino taleproprieta e quali no, e indecidibile.Propriet banale: proprieta che non effettua alcuna discriminazionetra le funzioni calcolabili, cioe che vale o per tutte o per nessuna.

Teorema di Rice. Sia

P = {〈M〉 | M e una MdT che verifica la proprieta P}un linguaggio che soddisfa le seguenti due condizioni:

1. L’appartenenza di M a P dipende solo da L(M), cioe

∀M1,M2 MdT tali che L(M1) = L(M2), 〈M1〉 ∈ P ⇔ 〈M2〉 ∈ P

2. P e un problema non banale, cioe

∃M1,M2 MdT tali che 〈M1〉 ∈ P, 〈M2〉 6∈ P

P e indecidibile.

Page 259: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Teorema di Rice

Afferma che, per ogni proprieta non banale delle funzionicalcolabili, il problema di decidere quali funzioni soddisfino taleproprieta e quali no, e indecidibile.Propriet banale: proprieta che non effettua alcuna discriminazionetra le funzioni calcolabili, cioe che vale o per tutte o per nessuna.

Teorema di Rice. Sia

P = {〈M〉 | M e una MdT che verifica la proprieta P}un linguaggio che soddisfa le seguenti due condizioni:

1. L’appartenenza di M a P dipende solo da L(M), cioe

∀M1,M2 MdT tali che L(M1) = L(M2), 〈M1〉 ∈ P ⇔ 〈M2〉 ∈ P

2. P e un problema non banale, cioe

∃M1,M2 MdT tali che 〈M1〉 ∈ P, 〈M2〉 6∈ P

P e indecidibile.

Page 260: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Teorema di Rice

I Ogni proprieta non banale del linguaggio di una MdT eindecidibile.

I Nota la differenza tra una proprieta di L(M) e una proprieta diM:

- Esempio: L(M) = ∅ e una proprieta del linguaggio.- Esempio: “M ha almeno 1000 stati” e una proprieta della

MdT.- “L(M) = ∅” e indecidibile; “M ha almeno 1000 stati” e

facilmente decidibile, basta guardare alla codifica di M econtare.

Page 261: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Teorema di Rice

I Ogni proprieta non banale del linguaggio di una MdT eindecidibile.

I Nota la differenza tra una proprieta di L(M) e una proprieta diM:

- Esempio: L(M) = ∅ e una proprieta del linguaggio.- Esempio: “M ha almeno 1000 stati” e una proprieta della

MdT.- “L(M) = ∅” e indecidibile; “M ha almeno 1000 stati” e

facilmente decidibile, basta guardare alla codifica di M econtare.

Page 262: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Teorema di Rice

I Ogni proprieta non banale del linguaggio di una MdT eindecidibile.

I Nota la differenza tra una proprieta di L(M) e una proprieta diM:

- Esempio: L(M) = ∅ e una proprieta del linguaggio.

- Esempio: “M ha almeno 1000 stati” e una proprieta dellaMdT.

- “L(M) = ∅” e indecidibile; “M ha almeno 1000 stati” efacilmente decidibile, basta guardare alla codifica di M econtare.

Page 263: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Teorema di Rice

I Ogni proprieta non banale del linguaggio di una MdT eindecidibile.

I Nota la differenza tra una proprieta di L(M) e una proprieta diM:

- Esempio: L(M) = ∅ e una proprieta del linguaggio.- Esempio: “M ha almeno 1000 stati” e una proprieta della

MdT.

- “L(M) = ∅” e indecidibile; “M ha almeno 1000 stati” efacilmente decidibile, basta guardare alla codifica di M econtare.

Page 264: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Teorema di Rice

I Ogni proprieta non banale del linguaggio di una MdT eindecidibile.

I Nota la differenza tra una proprieta di L(M) e una proprieta diM:

- Esempio: L(M) = ∅ e una proprieta del linguaggio.- Esempio: “M ha almeno 1000 stati” e una proprieta della

MdT.- “L(M) = ∅” e indecidibile; “M ha almeno 1000 stati” e

facilmente decidibile, basta guardare alla codifica di M econtare.

Page 265: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Conseguenze del Teorema di Rice

Non possiamo decidere se una MdT:

- Accetta ∅.

- Accetta un linguaggio finito.

- Accetta un linguaggio regolare, ecc.

Page 266: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Conseguenze del Teorema di Rice

Non possiamo decidere se una MdT:

- Accetta ∅.- Accetta un linguaggio finito.

- Accetta un linguaggio regolare, ecc.

Page 267: DECIDIBILITA E INDECIDIBILIT A - di-srv.unisa.it · 1) Seleziona un nodo di G e marcalo:Marca il primo nodo sulla lista (es. con un sul digit piu a sinistra) 2) Ripeti nch e nuovi

Conseguenze del Teorema di Rice

Non possiamo decidere se una MdT:

- Accetta ∅.- Accetta un linguaggio finito.

- Accetta un linguaggio regolare, ecc.


Recommended