I DPDA senza


16

Nella descrizione formale di Deterministic Pushdown Automata, consentono mosse, in cui la macchina può far apparire o spingere simboli nello stack senza leggere un simbolo dall'input. Se queste ϵ mosse non sono consentite e lo stack può essere modificato solo una volta dopo aver letto ogni simbolo, gli automi risultanti sono pari alla potenza dei DPDA?ϵϵ

Ci può essere qualcosa di banale che mi manca per quanto riguarda utilizzando la Powerset di come nuova Γ , che consente di "comprimere" ε si muove nel automa equivalente senza di loro, in modo simile a come è possibile comprimere ε si muove in un DFA. Solo che una tale conversione non è così banale come per i DFA, e non sono sicuro che sia nemmeno possibile.ΓΓϵϵ

Quindi sono i due equivalenti al potere? Lo sto solo chiedendo perché tutti sembrano supporre che i DPDA abbiano mosse e mi chiedo perché tale presupposto esista, dal momento che sembra un modello più complesso.ϵ


Va bene. Quindi c'è un motivo per cui studiamo solo quelli con mosse allora? ϵ
Phylliida,

1
Quindi ho appena capito che in realtà puoi riconoscere . Si inizia semplicemente in uno stato di accettazione, quindi dopo aver letto il primo a , si preme & nello stack e dopo aver letto il secondo a si preme # nello stack. Dopo di che, si scrive un un allo stack per ogni altra un si legge, a partire dalla una di leggere dopo aver spinto # allo stack. L={a2nbn}aaaaa
Phylliida,

Quindi, se leggi a mentre sai di aver letto un numero dispari di a , rifiuti (siedi in uno stato bloccato), altrimenti vai in un altro stato e spingi a a dalla pila. Lo ripeti per ogni lettura b . Se alla fine mentre analizza a b , # è in cima allo stack anziché a a , inserisci uno stato di accettazione. Quindi immettere uno stato di rifiuto se vengono letti altri simboli. In ogni caso diverso da quelli indicati sopra, inserire uno stato di rifiuto. Funziona? baabba
Phylliida,

Per me va bene.
Klaus Draeger,

1
Correggimi se sbaglio, ma sono d'accordo. Credo anche che tu possa riconoscere con un DPDA che si sposta sempre direttamente sul nastro di input (senza mai fermarsi). L'unica parte difficile è farla finire sullo stato finale. L'accettazione per DPDA può essere complicata. {a2nbn}
Michael Wehar,

Risposte:


18

Forse ho trovato alcune informazioni rilevanti in:

Jean-Michel Autebert, Jean Berstel, Luc Boasson; Lingue senza contesto e automi pushdown; Manuale delle lingue formali; 1997, pp. 111-174

I DPDA senza transizioni sono noti come automi pushdown deterministici in tempo realeϵ .

Sono meno potenti dei DPDA, per esempio

L={anbpcanp,n>0}{anbpdbpp,n>0}

è deterministico e può essere riconosciuto da un DPDA, ma non può essere riconosciuto da nessuno DPDA in tempo reale .

Quello che puoi fare è eliminare le crescenti transizioni :ϵ

Proposizione 5.4 : Per qualsiasi DPDA è possibile costruire un DPDA riconoscendo la stessa lingua in modo tale che qualsiasi regola stia diminuendo.ϵ


1
Fantastico, grazie! Quindi questo risponde alla prima parte della mia domanda. La seconda parte è: perché non li studiamo? Tutti sembrano concentrati su quelli non in tempo reale e questo mi sembra strano.
Phylliida,

2
@DanielleEnsign: cercandoti su Google puoi trovare alcuni risultati sui PSR, ad esempio il problema dell'equivalenza è decidibile . Ma sono d'accordo con te, non hanno attirato molta attenzione.
Marzio De Biasi,
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.