Przecięcie dwóch (minimalnych) DFA ze stanami n można obliczyć przy użyciu O (n 2 ) czasu i przestrzeni. Jest to ogólnie optymalne, ponieważ otrzymany (minimalny) DFA może mieć n 2 stanów. Jeśli jednak wynikowy minimalny DFA ma stany z, gdzie z = O (n), czy można go obliczyć w przestrzeni n 2-eps , dla pewnej stałej eps> 0? Byłbym zainteresowany takim wynikiem nawet w specjalnym przypadku, w którym wejściowe DFA są acykliczne.
automata-theory
dfa
Rasmus Pagh
źródło
źródło
Odpowiedzi:
Odpowiedź brzmi „ tak” bez żadnych wymagań co do wielkości automatu. Można go obliczyć w przestrzeniO ( log2)n ) nawet dla k DFA, gdzie k jest stałą.
Niech ( i ∈ [ k ] ) będzie k DFA. Pokażemy, że biorąc pod uwagę ⟨ 1 , ... , k ⟩ , obliczania minimal DFA rozpoznawaniem L ( 1 ) ∩ ⋯ ∩ L ( k ) można zrobić w OZAja= ( Qja, Σja, δja, zja, F.ja) i ∈ [ k ] ) k ⟨A1,…,Ak⟩ L(A1)∩⋯∩L(Ak) spacja. Najpierw udowadniamy niektóre wyniki techniczne.O(log2n)
Definicja 1 : Niech będą dwoma stanami, a następnie q ≡ r iff ∀ w ∈ Σ ∗ , q . w ∈ F ⇔ r . w ∈ F.q,r q≡r ∀w∈Σ∗ q.w∈F⇔r.w∈F
Rozważamy teraz automat podany przez klasyczną konstrukcję kartezjańską. Niech q = ( q 1 , ... , q k ) i r = ( r 1 , ... , r k ) być stany A .A q=(q1,…,qk) r=(r1,…,rk) A
Lemat 1 : Zdecydowanie, czy jest w NL.q≡r
Dowód (szkic): Pokazujemy, że testowanie nierówności jest w NL i używamy NL = coNL. Odgadnij słowo (jedna litera na raz), takie jak q . w jest stanem końcowym i r . w nie jest. Można to osiągnąć obliczając q i . w , r i . w w przestrzeni dziennika dla i ∈ [ k ] i wykorzystując fakt, że q jest końcem iff q i ∈ F iw∈Σ∗ q.w r.w qi.w,ri.w i∈[k] q qi∈Fi∀i∈[k] wq≢r w
Lemat 2 : Decydowanie, czy jest (nie) dostępne, należy do NL.q
Dowód (szkic): Zgadnij ( ) ścieżki od do ( ).q i i ∈ [ k ]zi qi i∈[k]
Definicja 2 : Rozważ stany w porządku leksykograficznym. Zdefiniuj jako pierwszy dostępny stan, a pierwszy dostępny stan po który nie jest równoważny z żadnym poprzednim stanem. Definiujemy jako unikalne takie, że .s ( 1 ) s ( i ) s ( i - 1 ) c ( q ) i q ≡ s ( i )A s(1) s(i) s(i−1) c(q) i q≡s(i)
Lemat 3 : można obliczyć w przestrzeni .O ( log 2 n )s(i) O(log2n)
Dowód (szkic): Definicja 2 daje algorytm. Używamy liczników do iteracji stanów. Niech i będzie stanem bieżącym. W każdym stanie używamy lematu 2, aby sprawdzić, czy jest dostępne. Jeśli tak, zapętlamy wszystkie poprzednie stany i sprawdzamy, czy którykolwiek z nich jest równoważny . Jeśli nie ma, zwiększamy wartość i wyprowadzamy jeśli . W przeciwnym razie przechowujemy jako i kontynuujemy. Ponieważ przechowujemy tylko stałą liczbę liczników, a nasze testy można przeprowadzić wj ← 0 q q q j q j = i q s ( j ) NL ⊆ DSPACE ( log 2 n )k j←0 q q q j q j=i q s(j) NL⊆DSPACE(log2n) , to kończy dowód.
Wniosek 1 : można obliczyć w przestrzeni .O ( log 2 n )c(q) O(log2n)
Twierdzenie : Minimalizację można przeprowadzić w przestrzeni .O ( log 2 n )A O(log2n)
Dowód (szkic): Niechbyć największym takim, że jest zdefiniowane (tj. liczba klas ). Podajemy algorytm wyprowadzający automat gdziei s ( i ) ≡ A ′ = ( Q ′ , Σ , δ ′ , z ′ , F ′ )1≤m≤|Q0|⋯|Q1| i s(i) ≡ A′=(Q′,Σ,δ′,z′,F′)
Teraz pokazujemy, jak obliczyć . Dla każdego , oblicz i wypisz przejście . W przypadku lematu 3 i następnej 1 ten algorytm działa w przestrzeni . Można sprawdzić, czy jest minimalne, a . i ∈ [ m ] , a ∈ Σ q ← s ( i ) . a ( s ( i ) , a , s ( c ( q ) ) ) O ( log 2 n ) A ′ L ( A ′ ) = L ( A )δ′ i∈[m],a∈Σ q←s(i).a (s(i),a,s(c(q))) O(log2n) A′ L(A′)=L(A)
źródło
Dick Lipton i koledzy ostatnio pracowali nad tym problemem, a Lipton napisał o nim na blogu:
http://rjlipton.wordpress.com/2009/08/17/on-the-intersection-of-finite-automata/
Wydaje się, że radzenie sobie lepiej niż O (n ^ 2) jest otwarte nawet w bardzo szczególnym przypadku ustalenia, czy przecięcie DFA definiuje pusty język.
W artykule podano konsekwencje złożoności, które wynikałyby ze znacznie ulepszonego algorytmu obsługującego nie tylko 2 DFA na skrzyżowaniu, ale także większe liczby.
źródło
Jeśli otrzymujesz k DFA (k jest częścią danych wejściowych) i chcesz wiedzieć, czy ich przecięcie jest puste, ten problem jest ogólnie związany z PSPACE:
Być może, jeśli dokładnie przestudiujesz ten dowód (i podobne konstrukcje Liptona i jego współautorów), możesz znaleźć coś w rodzaju dolnej granicy nawet dla ustalonego k.
źródło
źródło