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.L1∩L2≠∅M1,M2

Esiste un algoritmo per decidere se ? Qual è l'algoritmo più veloce conosciuto?o(n2)L1∩L2≠∅


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
(2k−2)k

1
NSpun'ce(2⋅log⁡(n))⊆DTiome(n) implies SETH is false. When I write NSpace(2⋅log⁡(n)), I mean 2⋅log⁡(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.