Odpowiedź brzmi „ tak” bez żadnych wymagań co do wielkości automatu. Można go obliczyć w przestrzeni O ( 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,rq≡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 .Aq=(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.wr.wqi.w,ri.wi∈[k]qqi∈Fi∀i∈[k]wq≢rw
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 ]ziqii∈[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 )As(1)s(i)s(i−1)c(q)iq≡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 )kj←0qqqjqj=iqs(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 )AO(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|is(i)≡A′=(Q′,Σ,δ′,z′,F′)
- Q′={s(i):i∈[m]} ;
- F′={q∈Q′:qi∈Fi∀i∈[k]} ;
- q = ( z 0 , … , z k )z′=s(c(q)) gdzie .q=(z0,…,zk)
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)