Istnieje wiele algorytmów, które mogą analizować gramatykę bezkontekstową w czasie . Używając mnożenia macierzy, można nawet iść asymptotycznie szybciej.
Jednak wszystkie algorytmy do analizy dowolnych CFG, które znam, mają najgorsze wykorzystanie przestrzeni (chociaż, co prawda, nie mam pojęcia, jakie jest użycie przestrzeni przez ten algorytm mnożenia macierzy). Zastanawiałem się, czy istnieją jakieś algorytmy, które poprawiłyby wykorzystanie tego miejsca (więc pomijając ograniczenie czasowe).
Pytanie pojawiło się w moim umyśle po mentalnym połączeniu ze spacją związaną ze wszystkimi znanymi algorytmami parsowania CFG. Prawdopodobnie nie ma to praktycznego znaczenia, a jedynie coś, o czym chciałbym wiedzieć.
ds.algorithms
fl.formal-languages
space-bounded
parsing
context-free
Alex ten Brink
źródło
źródło
Odpowiedzi:
Pierwsza połowa tej odpowiedzi to nic innego jak skuteczne ( do log 2 ( n ) ) przeformułowanie odpowiedzi Davida w kategoriach złożoności teoretycznej.log4(n) log2(n)
Język bezkontekstowy żyć w klasie złożoność Klasa ta jest równoważnie charakteryzowana przez półzwiązane obwody o głębokości logarytmicznej . Są to obwody wielomianowe, w których bramki OR mają nieograniczony wachlarz, a bramki AND mają ograniczony wachlarz (powiedzmy 2). Zwiększając głębokość o współczynnik logarytmiczny, możemy zastąpić każdą nieograniczoną bramę wachlarza wachlarza ograniczonymi OR wachlarzem wachlarza. To postawiło problem w N C 2 . Nietrudno dostrzec, jak N C 2 można ocenić za pomocą D S P A C E ( log 2 (LOGCFL. NC2. NC2 powiedzmy najpierw głębokie poszukiwanie, które utrzymuje lewą / prawą sekwencję dzieci przy zbadanych do tej pory bramach. Wynik wraca do pracy Lewisa-Hartmanisa. I chociaż poprawia to ograniczenie przestrzeni Davida, może to zająć n log n czasu. Nie wiemy nic lepszego.DSPACE(log2(n)) nlogn
Tradycyjnym sposobem na zrozumienie kompromisu czasoprzestrzennego jest użycie gry kamykowej. Było kilka artykułów na temat CYK; ostatnia próba jest w pierwszej części tej prezentacji . Tutaj pokazano, że (a) przestrzeń liniowa może być osiągnięta w czasie wykładniczym i (b) jeśli czas jest ograniczony do , wówczas CYK użyłby co najmniej n 2 przestrzeni.O(n2) n2
Z pewnością bardzo interesujący problem wart uwagi.
źródło
źródło
źródło