Chciałbym wiedzieć, dlaczego do rozpoznawania języków bezkontekstowych działają tylko niedeterministyczne automaty wypychające (DPA = NPDA). Dlaczego deterministyczne automaty wypychające (DPDA) nie rozpoznają takich języków?
fl.formal-languages
automata-theory
context-free
Reactormonk
źródło
źródło
Odpowiedzi:
Nie jestem do końca pewien, jakiego smaku „dlaczego” szukasz. Jednym z powodów wzrostu mocy przy dopuszczaniu niedeterminizmu jest następujący przykład:
PozwolićL. być zestawem palindromów ww¯ nad jakimś alfabetem (co najmniej dwóch symboli), gdzie w¯ jest odwrotnością w . NPDA dla tego języka może po prostu wypychać symbole na stos, a następnie w pewnym momencie zgadnąć, że osiągnął środek wejścia i stopniowo opróżniał stos. Zauważ, że warunek akceptacji jest czysto egzystencjalny - wystarczy, aby poprawnie zgadnąć słowo.
Deterministyczny PDA musiałby wybrać pozycję, którą uważa za środkową, w sposób zależny tylko od bieżącego prefiksu. ZałożyćZA jest takim DPDA. Dla każdegok∈N , pozwolić uk=ab2ka ; pozwolićv0 być pustym słowem i vk+1=vkukvk . Jest to sekwencja palindromów, z których każdy jest prefiksem następnego, więcA musi być w stanie akceptacji qk , z pustym stosem, po przeczytaniu vk . Zgodnie z zasadą gołębnicy musi być kilkak,l takie, że k≠l i qk=ql (istnieje skończona liczba stanów, a więc niektóre muszą zostać „ponownie wykorzystane”, ponieważ istnieje nieskończona liczba stanów k s). Ale wtedyA nie mogę odróżnić vkukvk , który jest palindromem, z vlukvk , co nie jest.
źródło
FA deterministycznie lub niedeterministycznie akceptuje ten sam język (tj. Regularny Lang).
Ale w przypadku PDA , jeśli ograniczymy go do zachowania deterministycznego , nie zaakceptuje niektórych CFL (CFL bez właściwości prefiksu (z wyjątkiem RL)).
Dlaczego tak?
Rozważ przykład CFL, który nie ma właściwości przedrostka (właściwość Przedrostek języka: żaden ciąg nie jest poprawnym przedrostkiem innego łańcucha w języku).
L = wwr
na przykład. ciągi 00 i 0000 . (00 jest poprawnym prefiksem 0000, więc wwr nie ma właściwości pref.).
Zdarza się, że 00 DPDA przejdzie do stanu końcowego. Teraz, ponieważ DPDA nie ma wyboru między akceptacją a ciągłością , nie może zaakceptować 0000 po zaakceptowaniu 00 . To jest miejsce, w którym PDA wymaga niedeterminizmu .
Uwagi : W przypadku FA, lang (RL) bez pref. właściwość może zostać przyjęta deterministycznie (np. ciągi zaczynające się od 0). To pokazuje, że wpływ właściwości prefiksu RL i CFL jest inny . Różnica między determinizmem a niedeterminizmem w PDA powoduje powstanie nowej rodziny języków. który jest akceptowany przez DPDA. Ten język nazywa się DCFL .
źródło