Decidere il vuoto dell'intersezione delle lingue normali in tempi subquadratici


23

Sia due lingue normali fornite dagli NFA come input.L1,L2M1,M2

Supponiamo di voler verificare se . Questo può essere chiaramente fatto da un algoritmo quadratico che calcola l'automa del prodotto di , ma mi chiedevo se fosse noto qualcosa di più efficiente.L1L2M1,M2

Esiste un algoritmo per decidere se ? Qual è l'algoritmo più veloce conosciuto?o(n2)L1L2


5
Se qualcuno ha buone idee per favore fatemelo sapere, ma attualmente è un problema aperto. Se potessi risolvere questo problema in un tempo lineare, in pratica qualsiasi problema risolvibile da una macchina non deterministica che utilizza solo n bit di memoria potrebbe essere risolto in modo deterministico in tempo. 2n2
Michael Wehar,

6
Penso che sia ancora aperto per qualsiasi sub-quadratico. Qualche informazione in più: rjlipton.wordpress.com/2009/08/17/…
Michael Wehar,

4
Quindi, per esempio (basato sul commento di Michael), l'ipotesi del tempo esponenziale forte implica che l'esponente dovrebbe essere 2. Penso che ciò potrebbe anche provenire dall'ipotesi del tempo esponenziale ...
Ryan Williams,

4
RB: Supponiamo che tu possa verificare la vacuità di due DFA di dimensione nel tempo n 1 + ε con ε < 1 . Ora, se hai k DFA di dimensione n , puoi creare il prodotto dei primi k / 2 DFA e dei restanti k / 2 DFA. Quindi, verifica la vacuità nel tempo ( n k / 2 ) 1 + ε = n 1nn1+εε<1knk/2k/2che è meglio dink. vzn: questo pluripremiato articolo è stato scritto da @MichaelWehar che ha commentato in questo thread. Michael, forse potresti inviare una risposta, se hai tempo! (nk/2)1+ε=n12k+ε2knk
Michael Blondin,

4
@RyanWilliams Ciao Ryan, cosa ti porta a pensare che l'ipotesi del tempo esponenziale più debole implichi che non possiamo risolvere più rapidamente la non vuoto dell'intersezione per due DFA? Qualcun altro me l'ha suggerito anche una volta. :)
Michael Wehar,

Risposte:


22

Risposta semplice : se esiste un algoritmo più efficiente che gira in tempo per qualche δ < 2 , allora l'ipotesi del forte tempo esponenziale sarebbe confutata.O(nδ)δ<2


Dimostreremo un teorema più forte e seguirà la semplice risposta.

Teorema : se siamo in grado di risolvere il problema di non vuoto dell'intersezione per due DFA in tempo , allora qualsiasi problema che non è risolvibile in modo deterministico utilizzando solo n bit di memoria è risolvibile in modo deterministico in p o l y ( n ) 2 ( δ n / 2 ) tempo.O(nδ)poly(n)2(δn/2)

Motivazione : Supponiamo di poter risolvere la non vuoto di intersezione per due DFA in . Consentire una macchina di Turing non deterministica M con un nastro di input di sola lettura e un nastro di lavoro binario di lettura / scrittura. Consentire una stringa di input x di lunghezza n. Supponiamo che M non acceda a più di n bit di memoria sul nastro di lavoro binario.O(nδ)

Un calcolo di M sull'input x può essere rappresentato da un elenco finito di configurazioni. Ogni configurazione è costituita da uno stato, una posizione sul nastro di input, una posizione sul nastro di lavoro e fino a n bit di memoria che rappresentano il nastro di lavoro.

Ora, considera che il nastro di lavoro è stato diviso a metà. In altre parole, abbiamo una sezione sinistra di celle e una sezione destra dinn2 celle. Ogni configurazione può essere suddivisa in un pezzo sinistro e un pezzo destro. Il pezzo sinistro è costituito dallo stato, dalla posizione sul nastro di input, dalla posizione sul nastro di lavoro e dalnn2 bit dalla sezione sinistra. Il pezzo giusto è costituito dallo stato, dalla posizione sul nastro di input, dalla posizione sul nastro di lavoro e dalnn2 bit dalla sezione destra.n2

Ora costruiamo un DFA cui stati sono pezzi lasciati e un DFA D 2 i cui stati sono pezzi giusti. I caratteri alfabetici sono istruzioni che indicano lo stato in cui andare, come devono spostarsi le testine del nastro e come manipolare la cella attiva del nastro di lavoro.D1D2

L'idea è che e D 2 leggono in un elenco di istruzioni corrispondenti a un calcolo di M sull'input x e verificano insieme che sia valido e accettante. Sia D 1 che D 2 saranno sempre d'accordo su dove si trovano le testine perché tali informazioni sono incluse nei loro caratteri di input. Pertanto, possiamo avere D 1 verificare che l'istruzione sia appropriata quando la posizione del nastro di lavoro è nel pezzo sinistro e D 2 verificare quando nel pezzo giusto.D1D2D1D2D1D2

In totale, ci sono al massimo stati per ciascun DFA e al massimo p o l y ( n ) caratteri alfabetici distinti.poly(n)2n/2poly(n)

Dal presupposto iniziale, ne consegue che possiamo risolvere la non vuoto dell'intersezione per i due DFA in tempo.poly(n)2(δn/2)

Potrebbe esserti utile: https://rjlipton.wordpress.com/2009/08/17/on-the-intersection-of-finite-automata/


k+O(log(n))O(nδ)poly(n)2(δk/2)

Commenti, correzioni, suggerimenti e domande sono i benvenuti. :)


1
Ω(n2)

1
kk

1
(2k2)k

1
NSpun'ce(2log(n))DTiome(n) implies SETH is false. When I write 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.