Przecięcie kontekstu bez użycia zwykłych języków


16

Mówi się, że przecięcie języka L bez kontekstu z językiem zwykłym M jest zawsze wolne od kontekstu. Zrozumiałem dowód na konstrukcję wielu produktów, ale wciąż nie rozumiem, dlaczego nie zawiera kontekstu, ale nie jest regularny.

Język generowany przez takie skrzyżowanie ma ciągi znaków, które są akceptowane zarówno przez PDA, jak i DFA. Skoro jest akceptowany przez DFA, to czy nie powinien to być zwykły język? Ponadto, jeśli skrzyżowanie jest regularne, oznacza to również brak kontekstu, ponieważ wszystkie zwykłe języki są również pozbawione kontekstu.

Czy ktoś może mi wyjaśnić, dlaczego język uzyskany przez takie skrzyżowanie nie jest regularny?


12
Rozważ. * Jako zwykły język i jego przecięcie z kontekstowym.
AProgrammer

1
Byłyby to ciągi kontekstowe. Ale te ciągi są również generowane przez zwykły język, więc byłby to język bezkontekstowy, który jest również regularny.
sanjeev mk

8
Język może być regularny. Ale zwykle tak nie jest. Pomyśl jeszcze raz o kontrprzykładzie podanym przez AProgrammer. To prawdopodobnie powinna być odpowiedź. Każdy język bezkontekstowy jest podzbiorem zwykłego języka. To prawda, że ​​przecięcie języków CF i REG zostanie zaakceptowane przez DFA REG, ale ma to również znaczenie, co zostanie odrzucone.
Karolis Juodelė


1
@DW Trafne, ale ktoś zaproponował to jako dupek i to nie tak. To pytanie nasuwa pytanie, dlaczego skrzyżowanie nie zawsze jest regularne; drugi pyta, dlaczego skrzyżowanie nie zawsze jest nieregularne. Konkretna konfiguracja tego pytania (mówiąc o ciągach znaków, które są akceptowane zarówno przez DFA, jak i PDA, więc są akceptowane przez DFA, więc język jest prawidłowy, prawda?) Oznacza, że ​​odpowiedzi na drugie pytanie nie są „ Naprawdę dobrze na to odpowiedzieć.
David Richerby

Odpowiedzi:


20

Jeśli jest pozbawiony kontekstu, to PDA P to akceptuje. Jeśli M jest regularne, to DFA F to akceptuje. Językiem przecięcie składa się ze słów, które są rozpoznawane przez P i F .LPMFPF

Każde słowo, które jest na skrzyżowaniu jest akceptowana przez , ale nie wszystkie słowa, które zostały zaakceptowane przez F są na skrzyżowaniu: tylko te, które są również akceptowane przez P .FFP

Dowód krzyżowy polega na zbudowaniu automatu który zawiera mechanikę zarówno P, jak i F , i który akceptuje tylko słowa, za które obie strony akceptują. Automat międzyplatformowy to PDA (a zatem rozpoznany język jest pozbawiony kontekstu) - intuicyjnie, ponieważ iloczyn krzyżowy z n- stanowym DFA polega na pobraniu n kopii P i dodaniu ( q , a , [ q ] ) strzałki między pasujące członkowskie w P gdzie DFAPFPFnnP(q,a,[q])Pastrzały. Rezultatem nie jest ogólnie automat skończony (nawet niedeterministyczny), ponieważ część opiera się na stosie, a ta zależność nie ustępuje w PF w ogóle.P.P.fa

Trywialna przykładem jest * jest regularny, i jeżeli L jest kontekst wolny, ale nieregularny, a następnie L * = L jest kontekst wolny, ale nieregularny.ZAL.L.ZA=L.


2
+1 Prawie opublikowałem odpowiedź, która odpowiada Twojemu ostatniemu zdaniu. Szczerze mówiąc, reszta odpowiedzi wydaje się niepotrzebna. :)
Patrick87,

nie dostał „dodawania (q, a, [q]) strzałek między pasującymi stanami w P, gdzie DFA ma strzałki.”. Nie można zwizualizować, jak będzie wyglądał produkt PDA.
anir
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.