Hierarchia Chomsky'ego (–Schützenberger) jest używana w podręcznikach teoretycznej informatyki, ale oczywiście obejmuje tylko bardzo niewielką część języków formalnych (REG, CFL, CSL, RE) w porównaniu z pełnym diagramem złożoności Zoo . Czy hierarchia odgrywa już jakąkolwiek rolę w bieżących badaniach? Znalazłem niewiele odniesień do Chomsky'ego tutaj na cstheory.stackexchange, aw Zoo Złożoności w ogóle nie wymieniono nazw Chomsky i Schützenberger.
Czy obecne badania bardziej koncentrują się na innych sposobach opisu, ale na gramatyce formalnej? Szukałem praktycznych metod opisywania języków formalnych z różną ekspresyjnością i natknąłem się na rosnący język kontekstowy (GCSL) i języki wyraźnie widoczne (VPL), które leżą między klasycznymi językami Chomsky'ego. Czy nie należy aktualizować hierarchii Chomsky'ego, aby ją uwzględnić? A może nie ma sensu wybierać konkretnej hierarchii z pełnego zestawu klas złożoności? O ile rozumiem, próbowałem wybrać tylko te języki, które mogą się zmieścić w lukach hierarchii Chomsky'ego:
REG (= Chomsky 3) ⊊ VPL ⊊ DCFL ⊊ CFL (= Chomsky 2) ⊊ GCSL ⊊ CSL (= Chomsky 1) ⊊ R ⊊ RE
Nadal nie rozumiem, gdzie mieszczą się „języki lekko kontekstowe” i „języki indeksowane” (gdzieś pomiędzy CFL i CSL), chociaż wydaje się, że ma to praktyczne znaczenie dla przetwarzania języka naturalnego (ale może coś praktycznego jest mniej interesujące w badaniach teoretycznych ;-). Ponadto możesz wspomnieć o GCSL ⊊ P ⊂ NP ⊂ PSPACE i CSL ⊊ PSPACE ⊊ R, aby pokazać związek ze znanymi klasami P i NP.
Znalazłem na GCSL i VPL:
- Robert McNaughton: Wprowadzenie do hierarchii Chomsky'ego ?. W: Jewels are Forever, Wkład w teoretyczną informatykę na cześć Arto Salomaa. S. 204-212, 1999
- http://en.wikipedia.org/wiki/Nested_word#References (VPL)
Byłbym również szczęśliwy, jeśli znasz jakiś najnowszy podręcznik gramatyki formalnej, który dotyczy również VPL, DCLF, GCSL i gramatyki indeksowanej, najlepiej ze wskazówkami niż praktyczne zastosowania.
Odpowiedzi:
Z tego, co widziałem w społeczności przetwarzania języka naturalnego, gramatyki formalne à la Chomsky nie są już tak często używane. Oni (również) uważają, że Chomsky Hierarchia jest przestarzała do modelowania języka.
To, co zajęło jego miejsce, to takie rzeczy, jak reguła przepisywania (algorytm Larsa), modele zależności (Dan Klein), gramatyka substytucji drzewa (model DOP), gramatyka funkcji binarnych (Alex Clark).
źródło
W skrócie: tak.
W szczególności: Chomsky był jednym z pierwszych, którzy sformalizowali hierarchię dotyczącą języków, gramatyki i automatów. Ten wgląd jest nadal bardzo istotny i jest nauczany na wszystkich kursach wprowadzających do teorii automatów. Jednak konkretna hierarchia, którą wymyślił Chomsky, a nazwy elementów hierarchii nie są już tak naprawdę znaczące. Od tego czasu wynaleźliśmy wiele formalizmów, które mieszczą się między poziomami hierarchii Chomsky'ego, powyżej lub poniżej niej. Imiona, których używał Chomsky, nie są szczególnie interesujące, tzn. Nie opierają się na interesującej mierze złożoności ani niczym, są tylko liczbami. Czy językami łagodnie kontekstowymi powinny być Type-1.5, Type-1.7 lub Type-1.3? Kogo to obchodzi. „Lekko wrażliwa na kontekst” to znacznie bardziej informacyjna nazwa.
Zoo Złożoność jest nieco inne, ponieważ jest pełne wszelkiego rodzaju równoważności warunkowej i tym podobne. Bardziej nowoczesna hierarchia teorii automatów nie byłaby liniowa (np. Porównaj CFG vs PEG), ale nadal miałaby dobrze znaną topologię. Aby spojrzeć na współczesną teorię automatów, powinieneś zapoznać się z pracą nad bibliotekami kombinatora parserów i niektórymi zagadnieniami związanymi z unifikacją i teorią typów (choć obie te gałęzie są bardzo odległe).
źródło
Jeśli cokolwiek w TCS jest nieaktualne, to ta hierarchia włączania niewielkiego podzbioru klas złożoności była znana / uważana za interesującą w 1956 roku.
Spoczywaj w pokoju, Hierarchio Chomsky'ego i niech już nie prześladujesz programu nauczania teorii licencjata.
źródło
Jeśli weźmiesz pod uwagę Hierarchię Chomsky'ego z „nowoczesnymi” nazwami (tj. REG, LIN, CFL, CSL, RE odpowiednio DFA / NFA, PDA, LBA, TM), mówię: Nie, to nie jest przestarzałe!
Powód 0 : Nadal jest poprawny w tym sensie, że jego definicje i wyniki nie są sprzeczne z nowszą wiedzą.
Powód 1 : Te klasy / modele obliczeniowe są nadal pierwszymi, których uczysz - ponieważ są proste i dobrze przestudiowane. Spróbuj nauczyć automatu LR licencjata bez uprzedniego omówienia DFA / DPDA.
Powód 2 : Klasy są wciąż pierwszymi / głównymi punktami odniesienia dla nowych wynalazków (przejrzałem artykuł o wielu CFG, który oczywiście powiedział: więcej niż CFG, mniej niż CSG). Może to częściowo wynikać z tego, że najpierw się ich uczy, ale także dlatego, że są proste i dobrze się uczyć .
Anti-Reason 3 : Wyniki nie są przestarzałe tylko dlatego, że znaleziono nowe klasy / modele. Zachowują swoją wartość jako podstawy pola, mimo że nie są aktywnie wykorzystywane na granicy badań.
źródło
Myślę, że to zależy od modelu obliczeniowego. Jeśli weźmiesz pod uwagę skończone / pushdown / itp. automaty jako model obliczeń, wtedy ważna staje się hierarchia Chomsky'ego (patrz na przykład książka Sipsera). Z drugiej strony odgrywa niewielką rolę w modelu obliczeniowym Turinga.
Pomocna może być następująca ilustracja:
Edycja: Języki formalne odgrywają ważną rolę w projektowaniu języków komputerowych (takich jak Java) i kompilatorów, a także w przetwarzaniu języka naturalnego (NLP).
źródło