Niestety, twój problem jest nierozstrzygalny. Podejście, na które natknąłem się (które może być obezwładnione, więc każdy, kto ma bardziej celowe podejście, powinno się wzmocnić!) Najpierw używa przekątnego argumentu, aby wykazać, że istnieje jednolity CSL X który nie jest regularny (w przeciwieństwie do wyniku pozytywnego dla jednorzędowych świetlówek kompaktowych), a następnie zmniejsza problem zatrzymania maszyn Turinga, biorąc pod uwagę TM M , konstruując CSG G który symuluje M na długości taśmy krótszej niż łańcuch parsowania w , rozpoznając X jeśli M zatrzymuje się bez przekraczania swoich granic i nie parsuje inaczej, tak aby G powodzeniem analizował wszystkie w∈Xktóre są wystarczająco długie iff M zatrzymuje (tak, że L(G) różni się od X tylko skończoną liczbą łańcuchów i dlatego nie może być regularny), w przeciwnym razie G rozpozna pusty język (który jest wyraźnie regularny).
Kluczem do tego podejścia jest obserwacja, że CSG nie zajmują się jedynie kwestiami gramatycznymi, takimi jak struktura fraz - w rzeczywistości sekwencje wyprowadzania CSG mogą przeprowadzać dowolne niedeterministyczne obliczenia ograniczone przestrzenią (rzeczywiście istnieją PSPACE-kompletne CSL), zanim przejdziemy do wyrównywania z ciągiem analizy. Najłatwiej to zaobserwować poprzez standardowe konwersje między CSG i gramatykami monotonicznymi (które nadal działają, gdy są ograniczone do jednoargumentowych alfabetów), oraz zastosowanie prostych monotonicznych produkcji do symulacji przejść maszyny Turinga na łańcuchach pochodnych, które reprezentują etapy w historii obliczeń. W tej odpowiedzi założę, że czytelnik może zrozumieć większość szczegółów, gdy CSG jest wymagany do symulacji danego obliczenia. (Zakładam, że pytający czuje się dobrze z tym wszystkim, ale zastanawiam się nad tym, czy jest kompletny. Niemniej jednak prosimy o wyjaśnienia w komentarzach).
Po pierwsze, potrzebujemy naszego nieregularnego jednoargumentowego CSG. ( EDYCJA: więc to była przesada - nieregularne, jednoargumentowe CSL można łatwo wykazać np. Poprzez pompowanie lematu w dowolnym języku, który wykazuje najbardziej podstawową nieregularność. Patrz komentarze dla przykładów. Z perspektywy czasu, używając przekątnego argumentu było jak przyłożenie głowicy nuklearnej do walki na noże. Przejrzyj tę konstrukcję, jeśli jesteś ciekawy, w przeciwnym razie przejdź do redukcji).
Niech być wyliczeniem DFA nad alfabetem { 1 } , tak aby liczba stanów w D i wzrosła w i . Opisujemy CSG G X pod względem jego zachowania podczas analizowania łańcucha 1 n ∈ { 1 } ∗ :D1,D2,...{1}DiiGX1n∈{1}∗
- Niedeterministycznie generuje ciąg „pustych” nieterminali, które uważamy za „taśmę”. Jeden z pustych nieterminali powinien być osobnym „nieokreślonym„ pustym + głowicą do odczytu i zapisu + początkowego stanu ”. Jeśli parsowany ciąg nie jest równy 1 n, to wyprowadzenie zakończy się niepowodzeniem. Resztę procesu opisujemy w kategoriach obliczeń deterministycznych symulowanych przez jedyne możliwe wyprowadzenie.n1n
- Wydrukuj na taśmie kodowanie po którym następuje liczba i w systemie binarnym, gdzie i = n - c i c jest wybierane, aby zawsze mieć wystarczająco dużo miejsca na taśmie, aby zrobić to, co musimy. (Jest to możliwe, ponieważ wymagana przestrzeń do kodować ď I i I rośnie logarytmicznie w I ).Diii=n−ccDiii
- Oceń na wejściu 1 i . Nie wymaga to reprezentowania taśmy D i - możesz po prostu zapisać pojedynczy stan, który zmieniasz zgodnie z przejściami D i w miarę zmniejszania i .Di1iDiDii
- Jeśli odrzuca 1 i , nadpisuj całą taśmę nie-zaciskami, które dają 1 . W przeciwnym razie zawiodę.Di 1i1
Bierzemy . Wyraźnie X ≠ L ( D i ) dla dowolnego i , ponieważ 1 i + c ∈ X ⇔ 1 i + c ∉ L ( D i ) .X=L(GX)X≠L(Di)i1i+c∈X⇔1i+c∉L(Di)
Następnym krokiem jest zaprojektowanie redukcji z problemu zatrzymania do problemu osoby pytającej. (Jeśli pominąłeś powyższą sekcję, niech będzie arbitralnym niestandardowym nieliniowym CSL generowanym przez CSG G X ).XGX
Niech będzie arbitralną TM. Konwertujemy M na CSG G, który zachowuje się w następujący sposób przy analizie ciągu 1 n :MMG1n
- Wygeneruj puste nieterminale, przy czym najbardziej lewy to osobny blank + głowica do odczytu i zapisu nieterminalny, a także wygeneruj „graniczny” nieterminalny z każdej strony. Ponownie, jeśli wygenerujemy niewłaściwą liczbę nieterminali, wówczas ponosimy porażkę.n−2
- Symuluj w przestrzeni między brzegowymi nieterminalami. Jeśli M kiedykolwiek przejdzie do jednego ze stanów granicznych, kończymy symulację i zakładamy, że M nigdy się nie zatrzymuje.MMM
- Jeśli postojów, zachowują się jak G- X . Gdybyśmy musieli zakończyć symulację, to nie powiodła się.MGX
Zauważ, że jeśli zdoła działać wiecznie w granicach, to G nigdy nie będzie w stanie wygenerować łańcucha analizowania, a więc zawiedzie. Jeśli M postojów, to istnieje pewna ilość miejsca N która wystarcza, że zawiera m całą obliczenia „S, w związku G analizuje 1 m , gdy m ≥ n + 2 i 1 m ∈ X , a zatem X jest związek L ( G ) i skończony język, skąd L ( G )MGMnMG1mm≥n+21m∈XXL(G)L(G)nie jest regularny. Z drugiej strony, jeśli nigdy się nie zatrzymuje, to L ( G ) = ∅ jest wyraźnie regularne.ML(G)=∅
Algorytm decydujący, czy jest regularny, czy nie, określa, czy M zatrzymuje się na czystej taśmie, co jest nierozstrzygalne. Wynika z tego, że problem osoby pytającej jest nierozstrzygalny.L(G)M