Czy istnieje algorytm / systematyczna procedura sprawdzania, czy język jest prawidłowy?
Innymi słowy, biorąc pod uwagę język określony w formie algebraicznej (pomyśl o czymś takim jak ), sprawdź, czy język jest prawidłowy, czy nie. Wyobraź sobie, że piszemy serwis internetowy, który pomaga uczniom we wszystkich zadaniach domowych; użytkownik określa język, a usługa internetowa odpowiada „zwykły”, „nieregularny” lub „nie wiem”. (Chcielibyśmy, aby serwis internetowy odpowiadał „Nie wiem” tak rzadko, jak to możliwe.) Czy istnieje jakieś dobre podejście do automatyzacji? Czy to jest wykonalne? Czy jest to rozstrzygalne (tj. Czy można zagwarantować, że nigdy nie będziemy musieli odpowiadać „nie wiem”)? Czy istnieją rozsądnie wydajne algorytmy do rozwiązania tego problemu i możliwe jest udzielenie odpowiedzi innej niż „nie wiem” dla wielu / większości języków, które mogą powstać w praktyce?
Klasyczną metodą udowodnienia, że język nie jest regularny, jest pompowanie lematu. Wygląda jednak na to, że w pewnym momencie wymaga ręcznego wglądu (np. Wybranie słowa do pompowania), więc nie jestem pewien, czy można go przekształcić w coś algorytmicznego.
Klasyczną metodą udowodnienia, że język jest prawidłowy, byłoby użycie twierdzenia Myhill – Nerode w celu uzyskania automatu stanu skończonego. To wygląda na obiecujące podejście, ale wymaga umiejętności wykonywania podstawowych operacji na językach w formie algebraicznej. Nie jest dla mnie jasne, czy istnieje systematyczny sposób symbolicznego wykonywania wszystkich operacji, które mogą być potrzebne, na językach w formie algebraicznej.
Aby pytanie było dobrze postawione, musimy zdecydować, w jaki sposób użytkownik określi język. Jestem otwarty na sugestie, ale myślę coś takiego:
gdzie jest wyrażeniem słownym, a S jest systemem liniowych nierówności względem zmiennych długości, z następującymi definicjami:
Każde z jest wyrażeniem słownym. (Reprezentują one zmienne, które mogą przyjąć dowolne słowo w Σ ∗ .)
Każde z jest wyrażeniem słownym. (Tutaj x r oznacza odwrotność ciągu x .)
Każda z liter jest wyrażeniem słownym. (Niejawnie, Σ = { a , b , c , … } , więc a , b , c , … reprezentują pojedynczy symbol w alfabecie.)
Każdy z to słowo, wyrażenie, jeśli η jest długość zmiennej.
Łączenie wyrażeń słownych jest wyrażeniem słownym.
Każde z jest zmienną długością. (Reprezentują one zmienne, które mogą przyjmować dowolne liczby naturalne).
Każdy z Jest zmienną długością. (Reprezentują one długość odpowiadającego słowa.)
Wydaje się to wystarczająco szerokie, aby poradzić sobie z wieloma przypadkami, które widzimy w ćwiczeniach z podręczników. Oczywiście możesz zastąpić dowolną inną tekstową metodę określania języka w formie algebraicznej, jeśli masz lepszą sugestię.
Odpowiedzi:
Odpowiedź brzmi nie. Decyzja, czy dana gramatyka bezkontekstowa generuje zwykły język, stanowi nierozwiązalny problem.
Aktualizacja . Udzieliłem tej negatywnej odpowiedzi na pytanie ogólne
ponieważ języki bezkontekstowe są rozwiązaniami równań algebraicznych w językach: patrz rozdział II, Twierdzenia 1.4 i 1.5 w książce J. Berstela Transductions and Lext-Lext-Languages .
To samo pytanie jest jednak rozstrzygalne w przypadku deterministycznych języków bezkontekstowych, co jest nietypowym wynikiem ze względu na Stearns [1] i ulepszone przez Valiant [2]:
[1] RE Stearns, Test regularności dla maszyn wypychających, informacje i kontrola 11 323- 340 (1967). DOI: 10.1016 / S0019-9958 (67) 90591-8.
[2] LG Valiant. Regularność i związane z nią problemy deterministycznych automatów wypychających J. ACM 22 (1975), s. 1–10.
Jest jeszcze jeden pozytywny wynik, bliższy specyfikacji podanej w drugiej części pytania. Przypomnijmy, że semilinear podzbiory są dokładnie ustawia się zdefiniować arytmetyka presburgera. Istnieją również racjonalne podzbiory N k . W szczególności, podzbiór N k określa inequations liniowych racjonalny. Teraz, biorąc pod uwagę racjonalne podzbiór R o N K jest rozstrzygalne czy język l ( R ) = { U N 1 1 ⋯ u n k k | ( N 1N.k N.k N.k R N.k
jest regularne. W istocie, wiadomo, [Ginsburg-Spanier], że l ( R ), jest regularny, jeżeli i tylko jeżeli R jest rozpoznawalny podzbiór N K i jest rozstrzygalne [Ginsburg-Spanier] czy dana racjonalne podzbiór N k jest rozpoznawalny.
S. Ginsburg i EH Spanier., Półgrupy, formuły Presburger i języki , Pacific J. Math. 16 (1966) 285–296.
S. Ginsburg i EH Spanier. Ograniczone zestawy regularne , Proc. amerykańskiej matematyki. Soc. 17 , 1043–1049 (1966).
To nie rozwiązuje drugiej części pytania, która może być nierozstrzygalna z powodu zmiennych słów, ale daje rozsądny fragment na początek.
źródło