Unia zwykłych języków, która nie jest regularna


12

Natknąłem się na to pytanie: „Podaj przykłady dwóch zwykłych języków, których związek nie tworzy zwykłego języka”.

Jest to dla mnie dość szokujące, ponieważ uważam, że zwykłe języki są zamknięte w związku. Co oznacza dla mnie, że jeśli biorę dwóch języków regularnych i Unii nich, musi uzyskać język regularny.

I myślę, że rozumiem tego dowód: moim słowem, jeśli języki są regularne, to istnieją automaty, które je rozpoznają. Jeśli weźmiemy wszystkie stany (unia) i dodamy nowy stan dla punktu wejścia i zmodyfikujemy funkcję przejścia dla nowego stanu za pomocą epsilon, wszystko będzie w porządku. Pokazujemy również, że istnieje ścieżka z każdego stanu itp.

Czy możesz mi powiedzieć, gdzie się mylę, a może w inny sposób podejść do pytania.

Źródło pytania, ćwiczenie 4, w języku francuskim.

To samo pytanie zadaje się również na skrzyżowaniu.


Inny sposób, aby to zobaczyć. Załóżmy, że taki nieskończony związek daje regularny język. Rozważmy dowolny język Nieregularnie . Możesz podzielić jego elementy na nieskończoną liczbę podjęzyków L i, gdzie każdy z L i jest skończony (a zatem regularny). Teraz wykonaj połączenie wszystkich L i . Z założenia jest to język regularny, ale założyliśmy, że L jest językiem nieregularnym, stąd sprzeczność. Umożliwienie zamknięcia w ramach unii nieskończonej sprawiłoby, że wszystkie języki byłyby prawidłowe. LLiLiLiL
Bakuriu

Dla nieskończonej unii: weź dowolny nieregularny język i rozważ każde L i = { w i } . Najwyraźniej L i jest regularne. L={w1,w2,w3,}Li={wi}Li
Pål GD

Odpowiedzi:


26

Istnieje znacząca różnica między pytaniem, jakie zadajesz, a pytaniem postawionym w ćwiczeniu. Pytanie dotyczy przykładu zestawu regularnych języków takich, że ich związek L = i = 1 L i nie jest regularny. Zwróć uwagę na zasięg unii: 1 do . Zwykłe języki są zamknięte w ramach skończonej jedności, a dowody biegną wzdłuż linii, które szkicujesz w pytaniu, jednak rozpada się to w nieskończonej jedności. Możemy to pokazać, przyjmując L i =L1,L2,

L=i=1Li
1 dla każdego i (przy Σ = { 0 , 1 } ). Nieskończony związek tych języków daje oczywiście kanoniczny nieregularny (bezkontekstowy) język L = { 0 i 1 ii N } .Li={0i1i}iΣ={0,1}L={0i1iiN}

Nawiasem mówiąc, możemy łatwo zobaczyć, gdzie zawodzi normalny dowód. Wyobraź sobie tę samą konstrukcję, w której dodajemy nowy stan początkowy i przejścia do starych stanów początkowych. Jeśli zrobimy to z nieskończonym zestawem automatów, zbudujemy automaty z nieskończoną liczbą stanów, oczywiście sprzeczne z definicją automatów skończonych .ε

Wreszcie zgaduję, że zamieszanie może wynikać ze sformułowania pierwotnego pytania, które zaczyna się od „Donner deux exemples des suites de langages ...”, co oznacza (z grubsza , mój francuski jest trochę zardzewiały, ale zewnętrznie zweryfikowany!) „Podaj dwa przykłady sekwencji języków ...” zamiast „Podaj dwa przykłady języków ...”. Nieostrożne czytanie może jednak pomylić drugie z pierwszym.


1
Oraz określenie jak set-dopełnienie L í ich skrzyżowanie byłoby również nieregularne. Twoja francuska lektura jest słuszna, nie tylko z grubsza . M.jaL.ja
Laurent LA RIZZA

Masz rację co do francuskiej części tłumaczenia. Myślałem, że ta część sekwencji nie była ważna. ha ha. Dzięki za odpowiedź, różnica jest teraz dla mnie jasna.
Dave

3

W przypadku drugiego pytania rozważ języki zdefiniowane przez Zauważ, że dla dowolnego n 1 , M n jest regularne , ponieważ (1) lewy zbiór jest skończony, a zatem regularny, (2) prawy zbiór jest oznaczony wyrażeniem regularnym a n a a

M.n={zak2)1kn}{zajotjot(n+1)2)}
n1M.nzanzaza tak samo jest i (3) zwykłe języki są zamknięte w skończonych związkach, jak już wiesz.

Nietrudno jest pokazać, że dla dowolnej liczby całkowitej mamy M n + 1M n, a zatem M nM n + 1 = M n + 1, więc indukcyjnie mamy n i = 0 M i = M n (czego tak naprawdę nie potrzebujemy tutaj, ale jest zbyt ładny, aby go pominąć).n1M.n+1M.nM.nM.n+1=M.n+1

ja=0nM.ja=M.n

M.nzan2)+1,zan2)+2),,za(n+1)2)-1

ja=0M.ja={zan2)n1}
który nie jest językiem regularnym. (Jeśli nie znasz tego faktu, jest w wielu tekstach teoretycznych, a dowód jest wart wysiłku przeczytania.)

1

Po co wybierać skomplikowane regularne języki, aby pokazać, że regularne zestawy nie są zamknięte w nieskończonej unii? Języki singleton są wystarczające, aby pokazać, że każdy język RE jest nieskończonym związkiem regularnych zbiorów.

L.wL.i=index(w)Li={wi=index(w)}LiL=i=1Lja jest RE.

M.ja=ΣL.jaM.jaja=1M.ja=ΣL.L.

Stąd każdy język rekurencyjny jest nieskończonym połączeniem zbiorów regularnych, a także nieskończonym przecięciem zbiorów regularnych (nie tych samych, ale ich uzupełnień :).

Nieskończoność jest pełna niespodzianek, a to, co jest prawdziwe dla dowolnie dużych wartości, może nie być prawdziwe w nieskończoności.


1

{ϵ}{za}{b}{zaza}{bb}{zazaza}{zabza}{bzab}{bbb} ...

Σ-{pja}pjaja

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.