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. :)