In che modo dimostrare che un linguaggio privo di contesto è ambiguo indecidibile?


19

Ho letto da qualche parte che una macchina di Turing non può calcolare questo ed è quindi indecidibile, ma perché? Perché è computazionalmente impossibile per una macchina generare l'albero di analisi e prendere una decisione? Forse mi sbaglio e si può fare?


1
Sì, hai ragione, una macchina di Turing non può decidere se un linguaggio privo di contesto è ambiguo o meno, e questo può essere ridotto dal problema post-corrispondenza , che è indecidibile. Si noti che un albero di analisi può essere infinitamente grande e non possiamo decidere quando fermiamo il calcolo.
Hsien-Chih Chang 張顯 之

Hsien-Chih, ti riferisci a "alberi di analisi" per parole non nella lingua (ovvero analisi non riuscite) o stai cercando di dire che gli alberi di analisi possono diventare arbitrariamente grandi?
Raffaello,

Risposte:


22

Riduciamo dal problema di corrispondenza della posta . Supponiamo che possiamo, infatti, decidere la lingua .{G|G a CFG and L(G) ambiguous}

Dato : costruisci il seguente CFG G = ( V , Σ , R , S ) : V = { S , S 1 , S 2 } , R = { S S 1 | S 2 , S 1α 1 Sα1,,αm,β1,,βmG=(V,Σ,R,S)V={S,S1,S2} (dove σ iR={SS1|S2,S1α1S1σ1||αmS1σm|α1σ1||αmσm,S2β1S2σ1||βmS2σm|β1σ1||βmσm}σisono nuovi caratteri aggiunti all'alfabeto, ad es. ).σi=i_

wSS1S1S2w

SS1ασ~SS2βσ~α=βαβσ~

Quindi, abbiamo ridotto a PCP e dato che è indecidibile, abbiamo finito.

(Fammi sapere se ho fatto qualcosa di stupido!)


1
{GG a CFG and L(G) ambiguous}
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.