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.
Odpowiedzi:
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 =L.1, L2), …
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.źródło
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 ∗
Nietrudno jest pokazać, że dla dowolnej liczby całkowitej mamy M n + 1 ⊆ M n, a zatem M n ∩ M 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ąć).n ≥ 1 M.n + 1⊆ M.n M.n∩ M.n + 1= M.n + 1
źródło
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.
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.
źródło
źródło