Czy istnieją z natury niejednoznaczne i deterministyczne języki bezkontekstowe?

36

Nazwijmy bezkontekstowy język deterministyczny wtedy i tylko wtedy, gdy może on zostać zaakceptowany przez deterministyczny automat odpychający, a niedeterministyczny inaczej.

Nazwijmy język bezkontekstowy z natury dwuznacznym wtedy i tylko wtedy, gdy wszystkie bezkontekstowe gramatyki, które generują ten język, są dwuznaczne, a jednoznaczne inaczej.

Przykładem deterministycznego, jednoznacznego języka jest język: Przykładem niedeterministycznego, jednoznacznego języka jest język: { w { a , b } | w = w R }

{zanbn{za,b}|n0}
{w{za,b}|w=wR}

Z Wikipedii przykładem z natury niejednoznacznego języka bezkontekstowego jest następujący związek języków bezkontekstowych, który również musi być pozbawiony kontekstu:

L.={zanbmdomren{za,b,do,re}|n,m0}{zanbndomrem{za,b,do,re}|n,m0}

Teraz pytania:

  1. Czy wiadomo, czy istnieje deterministyczny, z natury dwuznaczny, pozbawiony kontekstu język? Jeśli tak, to czy istnieje (łatwy) przykład?
  2. Czy wiadomo, czy istnieje niedeterministyczny, z natury niejednoznaczny język bezkontekstowy? Jeśli tak, to czy istnieje (łatwy) przykład?

Oczywiście, ponieważ istnieje z natury niejednoznaczny język bezkontekstowy ( jest przykładem), odpowiedź na jedno z tych pytań jest łatwa, jeśli wiadomo, czy jest deterministyczny czy niedeterministyczny. Zakładam również, że to prawda, że ​​jeśli jest deterministyczny, to na pewno też będzie niedeterministyczny ... ale wcześniej byłem zaskoczony. Referencje są mile widziane i z góry przepraszamy, jeśli jest to dobrze znany, znany wynik (w takim przypadku jestem całkowicie nieświadomy tego).L.L.

Patrick87
źródło

Odpowiedzi:

30

Jeśli język jest deterministyczny, jest akceptowany przez jakiś deterministyczny automat odpychający, co z kolei oznacza, że ​​istnieje pewna gramatyka LR (1) opisująca język, a ponieważ każda gramatyka LR (1) jest jednoznaczna, oznacza to, że nie może z natury być dwuznacznym. Knuth udowodnił to w swoim artykule, w którym przedstawił LR (1) ( O tłumaczeniu języków od lewej do prawej ).L.L.

Język może być opisany przez gramatykę bezkontekstową wtedy i tylko wtedy, gdy może zostać rozpoznany przez jakiś niedeterministyczny automat. Jako szczególny przypadek tego, z natury niejednoznaczne gramatyki bezkontekstowe mogą zostać przeanalizowane przez jakiś niedeterministyczny automat.

W ostatecznym rozrachunku, każdy deterministyczny automat odpychający jest również niedeterministyczny (dotyczy to niemal wszystkiego, co może być niedeterministyczne, w przypadku rozsądnej definicji niedeterminizmu).

Alex ten Brink
źródło
+1 za odniesienie dla faktu, że wszystkie deterministyczne świetlówki kompaktowe nie są z natury niejednoznaczne. W rzeczywistości odpowiada to również na inne pytanie: ponieważ istnieje z natury niejednoznaczny język i nie jest on deterministyczny, musi być niedeterministyczny (zauważ, że moja definicja niedeterministycznego CFL nie jest standardowa, ponieważ wyklucza deterministyczne CFL; to moja wina za niewłaściwe użycie terminologii). W każdym razie podałeś przykład pytania (2) i pokazałeś, że pytanie (1) jest niemożliwe. Poczekam i zobaczę, czy ktoś opracuje więcej, ale w przeciwnym razie zaakceptuje to jako poprawne. Dzięki!
Patrick87,
0

czytając wikipedię oraz odpowiedź i komentarz na ten temat, ponownie (Q2), stwierdzając wprost, wszystkie wrodzone niejednoznaczne świetlówki kompaktowe muszą być niedeterministyczne zgodnie ze standardową definicją (w tym własnym przykładem!). natknąłem się na ten ref

vzn
źródło