• Non ci sono risultati.

2Complementidilinguaggiricorsivamenteenumerabili 1Complementidilinguaggidecidibili Indecidibilitàdellinguaggiouniversale AzzoliniRiccardo2020-12-22

N/A
N/A
Protected

Academic year: 2021

Condividi "2Complementidilinguaggiricorsivamenteenumerabili 1Complementidilinguaggidecidibili Indecidibilitàdellinguaggiouniversale AzzoliniRiccardo2020-12-22"

Copied!
4
0
0

Testo completo

(1)

Azzolini Riccardo 2020-12-22

Indecidibilità del linguaggio universale

1 Complementi di linguaggi decidibili

Teorema: Se L è un linguaggio decidibile, allora anche il suo complemento L è decidibi- le.

Dimostrazione: Siccome L è decidibile, esiste per definizione una MdT M che termina per ogni input ed è tale che L(M ) = L. Si può dunque scrivere un programma P che simula l’esecuzione di M su un input w e inverte il risultato restituito dalla simulazione:

Input: w ∈ {0, 1}

Output: ACCETTA o RIFIUTA result = simula(#MdT(M ), w) if (result == ACCETTA)

return RIFIUTA else

return ACCETTA

Il programma P termina per ogni input, e accetta w se e solo se w /∈ L(M) = L, ovvero riconosce il linguaggio L. Applicando la tesi di Church-Turing, si deduce che esiste anche una macchina di Turing che riconosce L e termina per ogni input, quindi L è decidibile.

2 Complementi di linguaggi ricorsivamente enumerabili

Teorema: Se un linguaggio L e il suo complemento L sono ricorsivamente enumerabili, allora L e L sono anche decidibili.

Dimostrazione: Secondo l’ipotesi che L e L siano r.e., esistono per definizione due MdT M e M tali che L(M ) = L e L(M ) = L. Si consideri ora un programma P che, data in ingresso una stringa w ∈ {0, 1}, esegue in parallelo simula(#MdT(M ), w) e simula(#MdT(M ), w). Siccome per ogni stringa w si ha che w ∈ L = L(M) ⇐⇒ w /∈

L = L(M ), sicuramente una delle MdT accetta la stringa, quindi termina sempre almeno

1

(2)

una delle due esecuzioni parallele di simula. Il comportamento di P viene poi definito in funzione del risultato restituito dalla prima simulazione che termina:1

• se termina prima simula(#MdT(M ), w), allora

P restituisce

(ACCETTA se simula(#MdT(M ), w) restituisceACCETTA RIFIUTA se simula(#MdT(M ), w) restituisceRIFIUTA

• se invece termina prima simula(#MdT(M ), w), allora

P restituisce

(ACCETTA se simula(#MdT(M ), w) restituisceRIFIUTA RIFIUTA se simula(#MdT(M ), w) restituisceACCETTA

Così, P termina per ogni input, e restituisce ACCETTA se e solo se w∈ L.

Dall’esistenza di P si deduce, tramite la tesi di Church-Turing, che esiste una MdT M la quale termina per ogni input ed è tale che L(M) = L. Ciò dimostra che L è decidibile, e dunque, per il teorema precedente, anche L è decidibile.

3 Il linguaggio universale è r.e. ma non decidibile

Si è già dimostrato che il linguaggio universale,

Lu={#MdT(M )111w| M accetta w}

è ricorsivamente enumerabile. Ora, si vuole dimostrare che esso è indecidibile:

Teorema: Il linguaggio Lu è ricorsivamente enumerabile ma non è decidibile.

3.1 Dimostrazione

Si consideri il linguaggio complemento di Lu:

Lu =



α∈ {0, 1}

α non codifica correttamente una coppia (M, w), oppure α = #MdT(M )111w e M non accetta w



Se si suppone per assurdo che Lu sia decidibile, segue da uno dei teoremi precedenti che anche Lu è decidibile: esiste una MdT M che si arresta per ogni input ed è tale che

1Si osservi che la prima simulazione che termina non è necessariamente quella che accetta l’input: la computazione che accetta termina sempre, ma la computazione che non accetta potrebbe in alcuni casi terminare per prima (mentre in altri casi potrebbe terminare per ultima, o non terminare mai).

Allora, nel definire il comportamento di P , è importante considerare appunto i casi in cui la prima simulazione terminata rifiuta l’input.

2

(3)

L(M ) = Lu. Dunque, la simulazione simula(#MdT(M ), w) termina per ogni w ∈ {0, 1}, e restituisce:

simula(#MdT(M ), w) =

(ACCETTA se w ∈ L(M) = Lu

RIFIUTA se w /∈ L(M) = Lu

Si consideri ora il seguente programma P : Input: w ∈ {0, 1}

Output: ACCETTA o RIFIUTA i = bin2dec(1w)

Mi = eMdT(i)

return simula(#MdT(M ), #MdT(Mi)111wi)

Per prima cosa, questo programma calcola l’indice i della stringa di input w nell’enu- merazione e01, cioè il valore i tale che wi = w. Tale indice viene poi usato per ottenere Mi, la MdT avente indice i nell’enumerazione eMdT. Infine, P simula l’esecuzione di M su una stringa di input che codifica la coppia (Mi, wi).

Il programma P termina per ogni input (perché la simulazione della computazione di M si arresta sempre per ipotesi, così come terminano sempre tutte le altre funzioni

utilizzate), e in particolare, dato un input w = wi,2

P restituisce

(ACCETTA se #MdT(Mi)111wi ∈ L(M) = Lu

RIFIUTA se #MdT(Mi)111wi ∈ L(M) = L/ u

(per la definizione di simula(#MdT(M ), #MdT(Mi)111wi) e per l’ipotesi L(M ) = Lu).

Successivamente, ricordando la definizione di Lu,

Lu =



α∈ {0, 1}

α non codifica correttamente una coppia (M, w), oppure α = #MdT(M )111w e M non accetta w



si osserva che, nel caso particolare del programma P , la stringa α è sempre della forma

#MdT(Mi)111wi, ovvero codifica correttamente una coppia (Mi, wi), quindi #MdT(Mi) 111wi ∈ L/ u se e solo se Mi accetta wi: su un input wi,

P restituisce

(ACCETTA se Mi non accetta wi

RIFIUTA se Mi accetta wi

Per la tesi di Church-Turing, dall’esistenza di P si deduce l’esistenza di una MdT MP che termina per ogni input e riconosce il linguaggio

L(MP) ={wi∈ {0, 1} | Mi non accetta wi}

2Siccome la prima cosa che P fa è determinare l’indice di w in e01, è conveniente rappresentare la stringa di input w già come un elemento widell’enumerazione.

3

(4)

(lo stesso linguaggio riconosciuto da P ). Così, a partire dall’ipotesi che Lu sia decidibile, si è dedotto che L(MP) è decidibile, ma ciò è assurdo: L(MP) = Ld è il linguaggio di diagonalizzazione, e si è dimostrato che Ld non può essere decidibile, in quanto non ricorsivamente enumerabile.

In conclusione, poiché si sa già che Lu è r.e., si deduce che Lu è r.e. ma non è decidibile:

il teorema è dimostrato.

4 Halting problem

Un altro problema di decisione importante, simile al problema LM corrispondente al linguaggio universale, è l’halting problem (problema dell’arresto), HP:

Parametri: Una macchina di Turing M = ⟨Q, {0, 1}, Γ, δ, q1, B, F⟩ e un suo input w∈ {0, 1}.

Domanda: M si arresta su input w?

Il linguaggio corrispondente a HP è

L(HP) =

 x

x è la codifica di una coppia (M, w) per cui M si arresta su input w



che è ricorsivamente enumerabile ma non è decidibile.

4

Riferimenti

Documenti correlati

Questo fatto è importante perché una resistenza deve essere selezionata non solo in base al suo valore di resistenza, ma anche in base alla potenza che è in grado di dissipare

• quando il pulsante è aperto (non premuto), la resistenza mette la porta di I/O alla tensione di alimentazione, quindi si ha uno stato logico

Ad esempio, sul tipo di scheda più comune (Arduino UNO, e i suoi tanti cloni), le porte di I/O digitali sono 14, numerate da 0 a 13, e alla porta 13 è già collegato un LED

Questo scenario è utile per illustrare uno schema di controllo più avanzato di quello visto prima, perché un moto- re elettrico può facilmente essere comandato con un segnale

Tipicamente, i microcontrollori usano le interfacce asincrone per comunicare con dispo- sitivi come i computer, e le interfacce sincrone per comunicare con altri componenti digitali

Il meccanismo di selezione degli slave a livello hardware, tramite le linee SS, rende sem- plice e veloce la comunicazione, e permette un’elevata flessibilità (ad esempio, se uno

Un altro tipo molto utile sono i motori passo-passo (stepper), che in genere hanno almeno quattro fili, perché hanno più avvolgimenti che devono essere alimentati separata- mente.

Inizialmente, si considerano i libri di matematica come un blocco unico, e si deter- minano tutte le sistemazioni di tale blocco insieme agli altri 6 + 2 = 8 libri, ovvero tutte