Вирішення порожнечі перетину звичайних мов у підквадратичний час


23

Нехай L1,L2 - дві регулярні мови, задані NFA як вхідні дані.M1,M2

Припустимо, ми хотіли б перевірити, чи . Це однозначно можна зробити за допомогою квадратичного алгоритму, який обчислює автоматику виробів , але мені було цікаво, чи відомо щось більш ефективне.L1L2M1,M2

Чи існує алгоритм для визначення, чи буде ? Який найшвидший відомий алгоритм?o(n2)L1L2


5
Якщо у когось є хороші ідеї, будь ласка, повідомте мене, але наразі це відкрита проблема. Якщо ви могли вирішити цю проблему в прямолінійному скажімо, тоді в основному будь-яка проблема, вирішена недетермінованою машиною, що використовує лише n біт пам'яті, може бути вирішена детерміновано за рази. 2n2
Майкл Вехар

6
Я думаю, що це все ще відкрито для будь-якого субквадратичного. Ще інформація: rjlipton.wordpress.com/2009/08/17/…
Michael Wehar

4
Так, наприклад (на підставі коментаря Майкла), сильна експоненціальна часова гіпотеза передбачає, що показник повинен бути 2. Я думаю, що це також може бути випливає з гіпотези експоненціального часу ...
Райан Вільямс

4
RB: Припустимо, ви можете перевірити на порожнечу двох DFA розміром за час n 1 + ε з ε < 1 . Тепер, якщо у вас є k DFA розміру n , ви можете скласти добуток перших k / 2 DFA та решти k / 2 DFA. Потім вчасно перевіряємо на порожнечу ( n k / 2 ) 1 + ε = n 1nn1+εε<1knk/2k/2що краще, ніжnk. vzn: Цей нагородний документ написав @MichaelWehar, який прокоментував цю тему. Майкл, можливо, ти міг би подати відповідь, якщо встигнеш! (nk/2)1+ε=n12k+ε2knk
Майкл Блондин

4
@ RyanWilliams Привіт Раян, що змушує вас думати, що слабша експоненціальна часова гіпотеза передбачає, що ми не можемо швидше вирішити перехрестя без порожнечі для двох DFA? Хтось ще один раз мені це запропонував. :)
Michael Wehar

Відповіді:


22

Проста відповідь : Якщо існує більш ефективний алгоритм, який працює в за деякий δ < 2 , то сильна експоненціальна часова гіпотеза буде спростована.O(nδ)δ<2


Ми доведемо сильнішу теорему, і тоді випливе проста відповідь.

Теорема : Якщо ми можемо вирішити задачу про порожнечу перетину для двох DFA за час , то будь-яка проблема, яка не може бути вирішена детермінантно, використовуючи лише n біт пам'яті, детерміновано вирішується в p o l y ( n ) 2 ( δ n / 2 ) час.O(nδ)poly(n)2(δn/2)

Обґрунтування : Припустимо, що ми можемо вирішити непереміщення перехрестя протягом двох DFA за час . Дозвольте надати недетерміновану машину Тюрінга M із стрічкою лише для читання та двійковою робочою стрічкою для читання / запису. Нехай задається рядок введення x довжини n. Припустимо, що M не має доступу до більш ніж n бітів пам'яті на двійковій робочій стрічці.O(nδ)

Обчислення M на вході x може бути представлено кінцевим списком конфігурацій. Кожна конфігурація складається з стану, положення на вхідній стрічці, положення на робочій стрічці та до n біт пам'яті, які представляють робочу стрічку.

Тепер подумайте, що робоча стрічка була розділена навпіл. Іншими словами, у нас лівий відрізок комірки і правий відрізокnn2 комірки. Кожна конфігурація може бути розбита на ліву частину та праву частину. Ліва деталь складається із стану, положення на вхідній стрічці, положення на робочій стрічці таnn2 біти з лівого розділу. Права деталь складається із стану, положення на вхідній стрічці, положення на робочій стрічці таnn2 біта з правого розділу.n2

Тепер ми будуємо DFA , стани якого є лівими фрагментами, і DFA D 2 , стани яких є правими відрізками. Символи алфавіту - це інструкції, які говорять про те, до якого стану потрібно перейти, як повинні рухатися головки стрічки та як слід керувати активною коміркою робочої стрічки.D1D2

Ідея полягає в тому, що і D 2 читають у списку інструкцій, що відповідають обчисленню M на вході x, і разом перевіряють, чи він дійсний і приймає. І D 1 і D 2 завжди будуть домовлятися про те, де розташовані головки стрічки, оскільки ця інформація міститься у вхідних символах. Отже, ми можемо мати, щоб D 1 переконався, що інструкція підходить, коли положення робочої стрічки знаходиться в лівій частині, а D 2 - у правій частині.D1D2D1D2D1D2

Всього існує щонайбільше станів для кожного DFA та не більше p o l y ( n ) різних символів алфавіту.poly(n)2n/2poly(n)

З початкового припущення випливає, що ми можемо вирішити неперерізну перетину для двох DFA за часу.poly(n)2(δn/2)

Це може бути вам корисним: https://rjlipton.wordpress.com/2009/08/17/on-the-intersection-of-finite-automata/


CNF-SAT вирішується за допомогою бітів пам'яті, де k - кількість змінних. Попередня конструкція може бути використана для показу, що якщо ми можемо вирішити не порожнечу перетину для двох DFA за час O ( n δ ) , то ми можемо вирішити CNF-SAT в p o l y ( n ) 2 ( δ k / 2 ) час. Тому відповідь проста .k+O(log(n))O(nδ)poly(n)2(δk/2)

Коментарі, виправлення, пропозиції та питання вітаються. :)


1
все чудово, але оригінальне питання, що було вище, стосувалося НФА; чи все це дотримується? Крім того, деякі ключові деталі залишаються без уваги. здається варто паперу. чи все це у вашому опублікованому? якщо так plz, цитуйте його / прив'язуйте до пронумерованих теорем там і т.д. також цікаво, чи можна сказати що-небудь про напрямок "сильної" порожнини перетину DFA в нижній межі ( ?) → SETH ...? що для цього потрібно показати? Ω(n2)
vzn

1
Привіт VZN, проблема перетину для NFA's видається дещо складніше, ніж проблема перетину для DFA. Однак це не так, оскільки існує параметризоване зменшення від не порожнечі перетину для NFA до перетину не порожнечі для k DFA. Про це йдеться в моїй першій роботі. kk
Michael Wehar

1
(2k2)k

1
NSpace(2log(n))DTime(n)NSpace(2log(n)), I mean 2log(n) space for non-deterministic Turing machines with a two-way read only input tape and a two-way read/write binary work tape.
Michael Wehar
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.