Possiamo mostrare che una lingua non è calcolabile in modo computabile mostrando che non esiste un verificatore per essa?


11

Una delle definizioni di un insieme calcolabile (ce, equivalente a ricorsivamente enumerabile, equivalente a semidecidabile) è la seguente:

è ce se esiste una lingua decidibile V Σ (chiamato verificatore) st per tutte le x Σ ,AΣVΣxΣ

sse esiste un y Σ * vx , y V .xAyΣx,yV

Quindi un modo per dimostrare che una lingua non è ce è mostrare che non esiste un verificatore decidibile per esso. Questo metodo è utile per dimostrare che le lingue non sono ce in pratica?V


3
che cos'è ce (intendevi con riferimento a?)
Ran G.

Non riesco a pensare a una situazione in cui ciò sia utile per dimostrare che una lingua non è CE. Mi aspetto che tu possa facilmente sostituire con A in una riduzione multipla. Se si avvicinò con qualche altra riduzione, mi sarei aspettato che le "uscite negative" x , y V non significherebbe tanto quanto y è esistenzialmente quantificata. VAx,yVy
Lucas Cook,

@RanG., Re è la vecchia terminologia, oggigiorno viene comunemente definita ce da persone che lavorano nella teoria della calcolabilità. (Se sei interessato al motivo della modifica della terminologia, ti suggerisco di controllare la homepage di Robert Soare.)
Kaveh

@Kaveh grazie. Ogni giorno si imparano cose nuove ...
Ran G.

Risposte:


4

In pratica, di solito non proviamo solo che una lingua è ri o no. Se la lingua è ri, vogliamo sapere se è ricorsiva. Se non è re, vogliamo sapere che tipo di laurea ha, non solo che la laurea non è.

Ad esempio, se è un problema con P T 0 ‴, allora non è re, ma quel fatto sul salto di Turing è più informativo di sapere che non è rePPT0PPP

Quindi, mentre, in linea di principio, è possibile dimostrare che una lingua non viene ripetuta dimostrando che non esiste un verificatore, in pratica è più istruttivo dimostrare che la lingua non è ripetuta dimostrando che calcola qualcosa che nessuna reimpostazione può calcolare; la natura di quel "qualcosa" in genere fornisce informazioni utili sul problema oggetto di studio.


3

Per chiarire la terminologia che uso chiaro: decidable = recursive = computable, semidecidable = ricorsivamente enumerable = computably enumerable, co-semidecidable = co-recursively enumerable = co-computably enumerable.

In pratica, un metodo comune per dimostrare che una lingua non è semidecidabile è mostrare che non è decidibile e che è semidecidibile. Quindi fai uso del fatto che qualsiasi linguaggio che sia sia semidecidabile sia semidecidabile è anche decidibile per concludere che la tua lingua non è semidecidibile. (nota che questo funziona solo in una direzione: una lingua non può essere né semidecidibile né semidecidibile, nel qual caso hai bisogno di qualche altro metodo)

CFGCFG

Un altro metodo è mostrare che la lingua è completa per un livello superiore della gerarchia aritmetica .

È ovviamente possibile provare direttamente che non esiste un verificatore, ma questo è spesso noioso, poiché di solito ripete la prova che il problema dell'arresto è indecidibile. Si noti tuttavia che l'argomento di cui sopra dimostra essenzialmente implicitamente che non può esserci alcun verificatore, quindi immagino che potresti dire che è un metodo per dimostrare che non esiste un verificatore, ma quindi potresti considerare qualsiasi prova di non semidecidabilità come una prova che esiste nessun verfier.


C'è un difetto nella tua lingua. Una lingua non può essere semi-decidibile e non semidecidibile. Le lingue indecidibili sono tali lingue.
Dave Clarke,

@DaveClarke: ho aggiunto alcune definizioni terminologiche. È corretto adesso?
Alex ten Brink,


@DaveClarke: ho aggiunto una nota dicendo che funziona solo in una direzione.
Alex ten Brink,

3
Non sono convinto che questa sia una tecnica che chiunque userebbe. Perché non ridurre il problema a un problema noto "non semi-decidibile".
Dave Clarke,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.