Czy DPDA bez ruchów

16

W formalnym opisie deterministycznych automatów wypychających pozwalają one na ruchy , w których maszyna może wyskakiwać lub pchać symbole na stos bez odczytywania symbolu z wejścia. Jeśli te ϵ ruchy są niedozwolone, a stos można zmodyfikować tylko raz po odczytaniu każdego symbolu, czy wynikowe automaty są równe mocy DPDA?ϵϵ

Może być coś trywialnego, czego mi brakuje w odniesieniu do używania zestawu mocy jako nowego Γ , co pozwala na „kompresowanie” ϵ ruchów do równoważnego automatu bez nich, podobnie jak w przypadku kompresji ϵ ruchów w DFA. Wydaje się, że taka konwersja nie jest tak trywialna jak w przypadku DFA i nie jestem pewien, czy to w ogóle możliwe.ΓΓϵϵ

Czy zatem oba są równoważne pod względem mocy? Pytam tylko, ponieważ wszyscy wydają się zakładać, że DPDA mają ruchów i zastanawiam się, dlaczego takie założenie istnieje, ponieważ wydaje się, że jest to bardziej złożony model.ϵ

Phylliida
źródło
W porządku. Czy jest więc powód, dla którego studiujemy tylko te z ruchami ? ϵ
Phylliida,
1
Więc właśnie zdałem sobie sprawę, że faktycznie możesz rozpoznać . Po prostu zaczynasz w stanie akceptacji, a następnie po przeczytaniu pierwszego a pchasz i na stos, a po przeczytaniu drugiego a wciskasz # na stos. Po tym, piszesz A do stosu dla każdego innego A można przeczytać, zaczynając od A można przeczytać po naciśnięciu # do stosu. L={a2nbn}aaaaa
Phylliida,
Następnie, jeśli czytasz , wiedząc, że czytasz nieparzystą liczbę a , które odrzucasz (usiądź w zablokowanym stanie), w przeciwnym razie przejdziesz do innego stanu i zepchniesz a ze stosu. Powtórz to dla każdego przeczytanego b . Jeśli ostatecznie podczas analizowania b , # znajduje się na górze stosu zamiast a , wprowadź stan akceptacji. Następnie wprowadź stan odrzucenia, jeśli zostaną odczytane jakiekolwiek inne symbole. W każdym przypadku innym niż te opisane powyżej wprowadź stan odrzucenia. Czy to działa? baabba
Phylliida,
Dla mnie brzmi dobrze.
Klaus Draeger,
1
Popraw mnie, jeśli się mylę, ale zgadzam się. Uważam też, że można rozpoznać z DPDA że zawsze porusza się w prawo na taśmie wejściowej (nigdy zatrzymania). Jedyną trudną częścią jest doprowadzenie go do stanu końcowego. Akceptacja DPDA może być trudna. {a2nbn}
Michael Wehar

Odpowiedzi:

18

Być może znalazłem kilka istotnych informacji w:

Jean-Michel Autebert, Jean Berstel, Luc Boasson; Języki bezkontekstowe i automaty pushdown; Podręcznik języków formalnych; 1997, s. 111–174

DPDA bez przejścia są znane jako deterministyczne automaty wypychające w czasie rzeczywistym .ϵ

Na przykład są mniej wydajne niż DPDA

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

jest deterministyczny i może być rozpoznany przez DPDA, ale nie może być rozpoznany przez żaden DPDA w czasie rzeczywistym .

Co możesz zrobić, to wyeliminować rosnące przejścia:ϵ

Twierdzenie 5.4 : Dla każdego DPDA możliwe jest zbudowanie DPDA rozpoznającego ten sam język, tak że zmniejsza się dowolna reguła .ϵ

Marzio De Biasi
źródło
1
Wielkie dzieki! To odpowiada pierwszej części mojego pytania. Druga część to - dlaczego ich nie studiujemy? Wydaje się, że wszyscy skupiają się na tych, które nie są wyświetlane w czasie rzeczywistym, co wydaje mi się dziwne.
Phylliida,
2
@DanielleEnsign: w Google można znaleźć wyniki dotyczące RDPDA, na przykład problem równoważności jest rozstrzygalny . Ale zgadzam się z tobą, nie przyciągnęły one zbyt wiele uwagi.
Marzio De Biasi,