I DCFL sono chiusi per inversione?


8

Secondo questo grafico , i DCFL sono chiusi per inversione.

Tuttavia, non sono convinto come la prova intuitiva (invertendo le frecce della macchina a controllo dello stato finito e cambiando spinta e pop) per questo sembra dipendere dal non determinismo nella scelta della transizione nulla da prendere dallo stato iniziale (poiché il il nuovo stato iniziale conterrebbe una transizione nulla a tutti i vecchi stati finali).

Ciò renderebbe il "PDA inverso" di un DPDA non deterministico ogni volta che vi è più di un singolo stato finale nel DPDA originale.

Qual è l'errore nella mia tesi? O c'è un altro modo per provare questo?


1
Per favore fatemi sapere se la mia risposta StackOverflow richiede ulteriori spiegazioni. Il problema con il tuo tentativo di prova è questo: il PDA che costruisci non è l'unico PDA per la lingua che accetta. Potrebbero essercene altri, eventualmente arrivati ​​in modo diverso, che sono deterministici. In particolare, i DCFL possono essere accettati dai PDA che non sono deterministici.
Patrick87,

Giusto, motivo per cui mi rendo conto che questa non è affatto una "prova", avrebbe significato solo se il risultato fosse sempre un DCFL, che non lo è. Immagino che stavo solo provando a dimostrarlo usando lo stesso metodo usato per le lingue regolari e fallito. Grazie per il contro esempio!
Peteykun,

Prendere in considerazione L=bncnab2ncn
Pranav,

Quella tabella dice anche che le lingue ricorsive sono chiuse λ-sostituzione gratuita ... è corretto?
anir,

Risposte:


10

Ho cercato Hopcroft e Ullman 1979 e si dice a pagina 281 che non è chiuso per inversione. Ma non ho trovato prove nel mio rapido sguardo al capitolo pertinente.

La ricerca sul Web fornisce anche una risposta negativa, con contro esempio, sullo stackoverflow di un membro di CS (notazione adattata):

(a+b+c)WcWR, dove W(a+b)+; questo non è deterministico perché non sai doveWcW inizia il bit.

WRcW(a+b+c), dove W(a+b)+; questo è deterministico perché puoi scrivere un PDA deterministico per accettare semplici palindromi del moduloWRcW e modificare lo stato di accettazione per eseguire il loop su se stesso su uno qualsiasi di a, b e c.

Il trucco qui è che i PDA devono leggere l'input da sinistra a destra.


Questo è assurdo. Patrick87 ha fornito gli esempi, @Raphael ha svolto metà del lavoro di editing e ho ottenuto il rappresentante. Quindi, otteniamo così poco per il vero lavoro ... :)
babou,

3
Pensalo come un "compenso del cercatore" :) Sono solo sconcertato dal fatto che il sistema funzioni abbastanza bene da aver trovato quel mio vecchio post. Il sistema funziona! Ave SE!
Patrick87,

H&U ha trascurato l'inversione per DCFL? Citano non chiusura sotto unione, concatenazione, Kleene, morfismo in Thm 10.5 vedi Esercizio 10.4 (recitato ma con una soluzione). Tuttavia, notano{0i1i2ji,j}{0i1j2ji,j} non è DCFL, quindi nemmeno lo è K={0i1i2jai,j}{0i1j2jbi,j}mediante chiusura del DCFL sotto quoziente con set regolare, Thm 10.2. Ma l'inversione diK è un DCFL, i "marcatori" a e bfornire le informazioni su dove utilizzare il pushdown. [Forse @babou può aggiungere questo se gli piace; è lui a raccogliere le ripetizioni qui :)]
Hendrik Jan
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.