Відповідь " так" без будь-яких вимог щодо розміру автомата. Його можна обчислити в просторі O(log2n) навіть для k DFA, де k - константа.
Нехай ( i ∈ [ k ] ) - k DFA. Покажемо , що при ⟨ 1 , ... , до ⟩ , обчислення мінімального ДКА , що розпізнає L ( 1 ) ∩ ⋯ ∩ L ( K ) може бути зроблено в OAi=(Qi,Σi,δi,zi,Fi)i∈[k])k⟨A1,…,Ak⟩L(A1)∩⋯∩L(Ak) пробіл. Ми спочатку доводимо деякі технічні результати.O(log2n)
Визначення 1 : Нехай - два стани, тоді q ≡ r iff ∀ w ∈ Σ ∗ , q . w ∈ F ⇔ r . w ∈ Fq,rq≡r∀w∈Σ∗q.w∈F⇔r.w∈F
Тепер ми розглянемо автомат дається класичною декартовою конструкцією виробу. Нехай д = ( д 1 , ... , д до ) і г = ( г 1 , ... , т до ) бути стану A .Aq=(q1,…,qk)r=(r1,…,rk)A
Лема 1 : Визначення того, чи є в NL.q≡r
Доведення (ескіз): Ми показуємо, що нееквівалентність тестування є в NL та використовуємо NL = coNL. Відгадайте слово (одна буква на той час), що q . w - кінцевий стан, а r . w ні. Цього можна досягти, обчисливши q i . ш , р я . w у логічному просторі для i ∈ [ k ] і використовуючи той факт, що q є кінцевим iff q i ∈ F iw∈Σ∗q.wr.wqi.w,ri.wi∈[k]q . Можна показати, що q ≢ r передбачає існування w w полі-розміру.qi∈Fi∀i∈[k]q≢rw
Лема 2 : Визначення того, чи є (в) доступним, є в NL.q
Доведення (ескіз): Вгадайте (полірозмір) шляхи від до q i ( i ∈ [ k ] ).ziqii∈[k]
Визначення 2 : Розгляньте стани в лексикографічному порядку. Визначте 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)
Лему 3 : можна обчислити в просторі O ( log 2 n ) .s(i)O(log2n)
Доведення (ескіз): визначення 2 дає алгоритм. Ми використовуємо лічильники, щоб перебирати штати. Нехай j ← 0 і q - поточний стан. У кожному стані ми використовуємо лему 2, щоб перевірити, чи доступний q . Якщо це так, ми робимо цикл на всі попередні стани і перевіряємо, чи будь-який з них еквівалентний q . Якщо їх немає, збільшуємо j і виводимо q, якщо j = i . В іншому випадку ми зберігаємо q як s ( j ) і продовжуємо. Оскільки ми зберігаємо лише постійну кількість лічильників і наші тести можна проводити в NLkj←0qqqjqj=iqs(j) , це завершує доказ.NL⊆DSPACE(log2n)
Висновок 1 : можна обчислити в просторі O ( log 2 n ) .c(q)O(log2n)
Теорема : Мінімізацію можна зробити в просторі O ( log 2 n ) .AO(log2n)
Доведення (ескіз): Нехай бути найбільшим i таким, що визначається 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))q=(z0,…,zk)
Тепер ми покажемо, як обчислити . Для кожного i ∈ [ m ] , a ∈ Σ , обчислити q ← s ( i ) . a і вивести перехід ( s ( i ) , a , s ( c ( q ) ) ) . За лемою 3 та наслідком 1 цей алгоритм працює в просторі O ( log 2 n ) . Можна перевірити, що A ′δ′i∈[m],a∈Σq←s(i).a(s(i),a,s(c(q)))O(log2n)A′мінімальна і .L(A′)=L(A)