Перетин DFA в підквадратичному просторі?


25

Перетин двох (мінімальних) DFA з n станами можна обчислити, використовуючи O (n 2 ) час і простір. Це в цілому оптимально, оскільки отриманий (мінімальний) DFA може мати n 2 станів. Однак якщо отриманий мінімум DFA має z станів, де z = O (n), чи можна його обчислити в просторі n 2-eps , для деяких константних eps> 0? Мене би зацікавив такий результат навіть для особливого випадку, коли вхідні ДФА ациклічні.


3
Гм ... якщо два n-стану DFA є ациклічними, то кожен приймає лише кінцевий набір слів довжиною не більше n, і в цьому випадку їх перетин є лише перетином двох мічених графіків переходу, які матимуть n станів і можна обчислити в лінійному часі та просторі. Або я щось пропускаю?
Джошуа Грохов

4
Так, ациклічні DFA приймають лише кінцевий набір слів. Але є приклади ациклічних DFA, перетин яких має розмір n ^ 2. Наприклад, подумайте про один DFA, який приймає рядки форми AABC (де ABC - це рядки довжиною k), і той, який приймає рядки форми ABCC.
Расмус Паг

1
переназначення: cs.cc - це арксивське позначення, тому вказаним тегам не потрібен префікс cs.cc.
Суреш Венкат

Відповіді:


15

Відповідь " так" без будь-яких вимог щодо розміру автомата. Його можна обчислити в просторі O(log2n) навіть для k DFA, де k - константа.

Нехай ( i [ k ] ) - k DFA. Покажемо , що при 1 , ... , до , обчислення мінімального ДКА , що розпізнає L ( 1 ) L ( K ) може бути зроблено в OAi=(Qi,Σi,δi,zi,Fi)i[k])kA1,,AkL(A1)L(Ak) пробіл. Ми спочатку доводимо деякі технічні результати.O(log2n)

Визначення 1 : Нехай - два стани, тоді q r iff w Σ , q . w F r . w Fq,rqrwΣq.wFr.wF

Тепер ми розглянемо автомат дається класичною декартовою конструкцією виробу. Нехай д = ( д 1 , ... , д до ) і г = ( г 1 , ... , т до ) бути стану A .Aq=(q1,,qk)r=(r1,,rk)A

Лема 1 : Визначення того, чи є в NL.qr

Доведення (ескіз): Ми показуємо, що нееквівалентність тестування є в NL та використовуємо NL = coNL. Відгадайте слово (одна буква на той час), що q . w - кінцевий стан, а r . w ні. Цього можна досягти, обчисливши q i . ш , р я . w у логічному просторі для i [ k ] і використовуючи той факт, що q є кінцевим iff q iF iwΣq.wr.wqi.w,ri.wi[k]q . Можна показати, що q r передбачає існування w w полі-розміру.qiFii[k]qrw

Лема 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(i1)c(q)iqs(i)

Лему 3 : можна обчислити в просторі O ( log 2 n ) .s(i)O(log2n)

Доведення (ескіз): визначення 2 дає алгоритм. Ми використовуємо лічильники, щоб перебирати штати. Нехай j 0 і q - поточний стан. У кожному стані ми використовуємо лему 2, щоб перевірити, чи доступний q . Якщо це так, ми робимо цикл на всі попередні стани і перевіряємо, чи будь-який з них еквівалентний q . Якщо їх немає, збільшуємо j і виводимо q, якщо j = i . В іншому випадку ми зберігаємо q як s ( j ) і продовжуємо. Оскільки ми зберігаємо лише постійну кількість лічильників і наші тести можна проводити в NLkj0qqqjqj=iqs(j) , це завершує доказ.NLDSPACE(log2n)

Висновок 1 : можна обчислити в просторі O ( log 2 n ) .c(q)O(log2n)

Теорема : Мінімізацію можна зробити в просторі O ( log 2 n ) .AO(log2n)

Доведення (ескіз): Нехай бути найбільшим i таким, що визначається s ( i ) (тобто кількість класів ). Наведемо алгоритм, що виводить автомат A = ( Q , Σ , δ , z , F ), де1m|Q0||Q1|is(i)A=(Q,Σ,δ,z,F)

  • ;Q={s(i):i[m]}
  • ;F={qQ:qiFii[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Σqs(i).a(s(i),a,s(c(q)))O(log2n)Aмінімальна і .L(A)=L(A)


3
Гарний алгоритм! Ось трохи інший спосіб поглянути на цей алгоритм. Її суть полягає в тому, що мінімізація стану будь-якої заданої DFA може бути здійснена в поліноміальний час та простір . Після цього легко побудувати деяку DFA, що представляє собою перетин у логарифмічному просторі (отже, у поліноміальному часі та O ( log 2 n ) просторі), і ми можемо скласти дві функції, обчислювані в поліноміальному часі та O ( log 2 n ) просторі (аналогічно складенню двох логарифмічно-просторових скорочень), отримуючи весь алгоритм у поліноміальний час та OO(log2n)O(log2n)O(log2n) пробіл. O(log2n)
Tsuyoshi Ito

2
Я щойно побачив цю відповідь ... Я не бачу, чому алгоритм працює одночасно в політаймі та просторі . Так, N L P D S P A C E [ log 2 n ] , але невідомо, чи N L T I S P [ n O ( 1 ) , log 2 n ] - тобто ми можемо отримати алгоритм, що працює в політаймі, і ми можемо отримати інший алгоритм, що працюєO(log2n)NLPDSPACE[log2n]NLTISP[nO(1),log2n] простір, але я не знаю, як вирішити N L задач у політимі та O ( log 2 n ) просторі за допомогою одного алгоритму. O(log2n)NLO(log2n)
Райан Вільямс

Ви маєте рацію, я також не знаю, як. Я розміщував це давно, тому не знаю, чому я написав це так, але, мабуть, я мав на увазі "поліноміальний час або O (log² n)". Я відредагую її, бо вона вводить в оману. Дякую!
Майкл Блондин

14

Дік Ліптон та його колеги нещодавно працювали над цією проблемою, і Ліптон обговорив про це тут:

http://rjlipton.wordpress.com/2009/08/17/on-the-intersection-of-finite-automata/

Здається, що краще, ніж O (n ^ 2), відкрито навіть для особливого випадку визначення, чи визначає перехрестя DFA порожню мову.
У статті наведені складні наслідки, які були б наслідком вдосконаленого алгоритму обробки не лише 2 DFA в перехресті, а й більшої кількості.


1
а як щодо нижніх меж?
Маркос Віллагра

1
Просто для уточнення запитань: я радий витратити час O (n ^ 2) (а може, навіть і n ^ O (1) час) на покращення обмеженого простору.
Расмус Паг

13

Якщо вам надано k DFA (k є частиною вхідних даних) і хочете дізнатися, чи їх перетин порожній, ця проблема взагалі PSPACE-повна:

Декстер Козен: Нижні межі для систем природної корекції FOCS 1977: 254-266

Можливо, якщо уважно вивчити цей доказ (і подібні конструкції Ліптона та його співавторів), ви можете знайти якийсь простір нижньої межі навіть для фіксованого k.


Дякуємо за цей покажчик Я здогадуюсь, що це, можливо, призведе до нижнього межі n ^ Omega (1) додаткового простору, крім входу. Але чи могло це призвести до нижньої межі суперлінійного простору?
Расмус Паг

1
@ user124864 Враховуючи, що DFA має по n станів, автоматика продукту матиме n k станів. Тепер є два хитрощі, які можна зробити, щоб зменшити його розмір. Перший полягає в тому, що ви просто враховуєте доступну складову графіка товару. По-друге, ви могли мінімізувати DFA продукту. Врешті-решт, зрозуміти, яку мову розпізнає цей автомат, важко. knnk
Майкл Вехар

1
@ user124864 Важко навіть намагатися визначити, чи розпізнає продукт DFA непусту мову. Це проблема непрохідності перехрестя. Під важким, я маю на увазі, що це повна в сильному сенсі. XNL
Майкл Вехар

1
@user124864 If you can solve it in less than nk time, then we get faster algorithms for PSPACE complete problems. It is not solvable in o(1)klog(n) non-deterministic binary space. It's not known if we can solve it in less than k2log2(n) deterministic binary space. It's not known if we can solve it in simultaneous deterministic polynomial time and f(k)log2(n) binary space for any function f (doing so would improve Savitch's theorem).
Michael Wehar

1
@user124864 Note: we have both of the following. (1) Beating nk time deterministically implies faster deterministic algorithms for PSPACE complete problems and (2) beating nk time non-deterministically implies faster non-deterministic algorithms for PSPACE complete problems.
Michael Wehar

7

Given two automata A, B accepting finite languages (acyclic automata), the state complexity of L(A)L(B) is in Θ(|A||B|) (1). This result also holds for unary DFAs (not necessarily acyclic) (2). However, you seem to be talking about the space required to compute the intersection of two automata. I don't see how the classic construction using the Cartesian product uses O(n2) space. All you need is a constant number of counters of logarithmic size. When you compute the transition function for the new state (q,r) you only have to scan the input without looking to any previously generated data.

Perhaps you want to output the minimal automaton? If this is the case, then I have no clue whether it can be achieved. The state complexity of the intersection for finite languages doesn't seem encouraging. However, unary DFAs have the same state complexity and I think it can be achieved with such automata. By using results from (2), you can get the exact size of the automaton recognizing the intersection. This size is described by the length of the tail and the cycle, thus the transition function can be easily computed with very few space since the structure is entirely described by those two sizes. Then, all you have to do is to generate the set of final states. Let n be the number of states in the resulting automaton, then for all 1in, state i is a final state iff ai is accepted by both A and B. This test can be carried with few space.


1
Yes, I am interested in the minimal automaton, or at least an automaton of similar size. Thanks for the pointers to unary DFAs. However, this does not seem to help much for the general case.
Rasmus Pagh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.