Decydowanie o pustce przecięcia zwykłych języków w czasie subkwadratowym


23

Niech będą dwoma zwykłymi językami podanymi przez NFA M_1 jako dane wejściowe.M 1 , M 2L1,L2M1,M2

Załóżmy, że chcielibyśmy sprawdzić, czy . Można to wyraźnie zrobić za pomocą algorytmu kwadratowego, który oblicza automat produktu , , ale zastanawiałem się, czy wiadomo coś bardziej wydajnego.M 1 , M 2L1L2M1,M2

Czy istnieje algorytm do decydowania, czy ? Jaki jest najszybszy znany algorytm?L 1L 2o(n2)L1L2


5
Jeśli ktoś ma dobre pomysły, daj mi znać, ale obecnie jest to otwarty problem. Jeśli mógłbyś rozwiązać ten problem, powiedzmy w czasie liniowym, to w zasadzie każdy problem rozwiązany przez niedeterministyczną maszynę wykorzystującą tylko n bitów pamięci mógłby zostać rozwiązany deterministycznie w czasie . 2n2
Michael Wehar

6
Myślę, że wciąż jest dostępny dla każdego subkwadratowego. Więcej informacji: rjlipton.wordpress.com/2009/08/17/…
Michael Wehar

4
Na przykład (na podstawie komentarza Michaela), silna hipoteza wykładniczego czasu sugeruje, że wykładnik powinien wynosić 2. Myślę, że może to również wynikać z hipotezy wykładniczego czasu ...
Ryan Williams

4
RB: Załóżmy, że możesz przetestować pustkę dwóch DFA o rozmiarze w czasie n 1 + ε z ε < 1 . Teraz, jeśli masz k DFA o rozmiarze n , możesz zbudować iloczyn pierwszych k / 2 DFA i pozostałych k / 2 DFA. Następnie sprawdź pustkę w czasie ( n k / 2 ) 1 + ε = n 1nn1+εε<1knk/2k/2co jest lepsze niżnk. vzn: Ten wielokrotnie nagradzany artykuł napisał @MichaelWehar, który skomentował ten wątek. Michael, być może mógłbyś udzielić odpowiedzi, jeśli masz czas! (nk/2)1+ε=n12k+ε2knk
Michael Blondin,

4
@ RyanWilliams Cześć Ryan, co prowadzi cię do wniosku, że słabsza wykładnicza hipoteza czasowa implikuje, że nie możemy szybciej rozwiązać problemu braku pustki skrzyżowania dla dwóch DFA? Ktoś inny zasugerował mi to raz. :)
Michael Wehar

Odpowiedzi:


22

Prosta odpowiedź : jeśli istnieje bardziej wydajny algorytm działający w czasie dla pewnego δ < 2 , wówczas hipoteza silnego wykładniczego czasu byłaby obalona.O(nδ)δ<2)


Udowodnimy mocniejsze twierdzenie, a następnie pojawi się prosta odpowiedź.

Twierdzenie : Jeśli możemy rozwiązać problem nieopróżnienia przecięcia dla dwóch DFA w czasie , to każdy problem, który nie jest deterministycznie rozwiązany przy użyciu tylko n bitów pamięci, jest deterministycznie rozwiązany w p o l y ( n ) 2 Czas ( δ n / 2 ) .O(nδ)poly(n)2)(δn/2))

Uzasadnienie : Załóżmy, że możemy rozwiązać brak pustki skrzyżowania dla dwóch DFA w czasie . Niech zostanie podana niedeterministyczna maszyna Turinga M z taśmą wejściową tylko do odczytu i binarną taśmą roboczą do odczytu / zapisu. Niech zostanie podany ciąg wejściowy x o długości n. Załóżmy, że M nie ma dostępu do więcej niż n bitów pamięci na binarnej taśmie roboczej.O(nδ)

Obliczenia M na wejściu x mogą być reprezentowane przez skończoną listę konfiguracji. Każda konfiguracja składa się ze stanu, pozycji na taśmie wejściowej, pozycji na taśmie roboczej i maksymalnie n bitów pamięci reprezentujących taśmę roboczą.

Teraz rozważmy, że taśma robocza została podzielona na pół. Innymi słowy, mamy lewą sekcję komórki i prawa sekcjann2) komórki. Każda konfiguracja może zostać podzielona na lewą i prawą część. Lewy kawałek składa się ze stanu, pozycji na taśmie wejściowej, pozycji na taśmie roboczej oraznn2) bity z lewej sekcji. Właściwy kawałek składa się ze stanu, pozycji na taśmie wejściowej, pozycji na taśmie roboczej oraznn2) bity z prawej sekcji.n2)

Teraz budujemy DFA którego stany są lewymi kawałkami, i DFA D 2, których stany są prawymi kawałkami. Znaki alfabetu to instrukcje określające, do którego stanu należy przejść, w jaki sposób powinny się poruszać głowice taśmy oraz jak manipulować aktywną komórką taśmy roboczej.re1re2)

Chodzi o to, że i D 2 czytają listę instrukcji odpowiadających obliczeniu M na wejściu x i razem sprawdzają, czy jest poprawna i akceptuje. Zarówno D 1 i D 2 będzie zawsze uzgodnić gdzie głowice są dlatego, że informacje są zawarte w ich znaków wejściowych. Dlatego możemy poprosić D 1 o sprawdzenie, czy instrukcja jest odpowiednia, gdy pozycja taśmy roboczej znajduje się w lewym elemencie, a D 2 o sprawdzenie, czy w prawym elemencie.re1re2)re1re2)re1re2)

W sumie co najwyżej jest dla każdej DFA co najwyżej P ° l r ( n ) oddzielnych liter alfabetu.poly(n)2)n/2)poly(n)

Przy wstępnym założeniu, wynika, że można rozwiązać przecięcia non-pustkę dla w dwóch DFA czasu.poly(n)2)(δn/2))

Może ci się to przydać: https://rjlipton.wordpress.com/2009/08/17/on-the-intersection-of-finite-automata/


CNF-SAT można rozwiązać za pomocą bitów pamięci, gdzie k jest liczbą zmiennych. Powyższą konstrukcję można wykorzystać, aby pokazać, że jeśli uda nam się rozwiązać brak pustki przecięcia dla dwóch DFA w czasie O ( n δ ) , to możemy rozwiązać CNF-SAT w p o l y ( n ) 2 ( δ k / 2 ) czas. Dlatego prosta odpowiedź jest ważna.k+O(log(n))O(nδ)poly(n)2)(δk/2))

Komentarze, poprawki, sugestie i pytania są mile widziane. :)


1
wszystko świetnie, ale pierwotne pytanie powyżej dotyczyło NFA; czy to wszystko nadal następuje? niektóre kluczowe szczegóły zostały pominięte. wydaje się wart papieru. czy to wszystko w opublikowanym? jeśli tak, proszę przytoczyć je / powiązać z ponumerowanymi twierdzeniami tam itp., pomocne byłoby również wskazanie tego bardziej w kategoriach klas złożoności standardowej L, P, NP, PSpace, ExpTime itp., jeśli to możliwe. zastanawiasz się także, czy można coś powiedzieć o kierunku „silnej” pustki przecięcia DFA w dwóch kierunkach dolnej granicy ( ?) → SETH ...? co trzeba na to pokazać? Ω(n2))
vzn

1
Cześć VZN, problem przecięcia dla NFA wydaje się nieco trudniejszy niż problem przecięcia dla DFA. Nie dzieje się tak jednak, ponieważ występuje sparametryzowane ograniczenie od braku pustki skrzyżowania dla NFA do braku pustki skrzyżowania dla k DFA. Jest to wspomniane w mojej pierwszej pracy. kk
Michael Wehar

1
Być może możesz bardziej szczegółowo opisać, co masz na myśli, mówiąc o dwudrożnym DFA. Problem braku pustki dla dwukierunkowych DFA z przewróceniem jest tak samo trudny jak problem braku pustki przecięcia dla k jednokierunkowych DFA. Link: cs.stackexchange.com/questions/13456/…(2)k-2))k
Michael Wehar

1
W kategoriach standardowych klas złożoności można by to sformułować następująco: oznacza, że ​​SETH jest fałszem. Kiedy piszę N S p a c e ( 2 log ( n ) ) , mam na myśli 2 log ( n )N.S.pzadomi(2)log(n))reT.jammi(n)N.S.pzadomi(2)log(n))2)log(n)przestrzeń dla niedeterministycznych maszyn Turinga z dwustronną taśmą wejściową tylko do odczytu i dwustronną taśmą roboczą do odczytu / zapisu binarnego.
Michael Wehar,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.