Intersezione DFA nello spazio subquadratico?


25

L'intersezione di due DFA (minimi) con n stati può essere calcolata usando O (n 2 ) tempo e spazio. Questo è ottimale in generale, poiché il DFA (minimo) risultante può avere n 2 stati. Tuttavia, se il DFA minimo risultante ha stati z, dove z = O (n), può essere calcolato nello spazio n 2-eps , per una costante eps> 0? Sarei interessato a tale risultato anche per il caso speciale in cui i DFA di input sono aciclici.


3
Ehm ... se due DFA a n stati sono aciclici, ognuno accetta semplicemente un insieme finito di parole di lunghezza al massimo n, nel qual caso la loro intersezione è solo l'intersezione dei due grafici di transizione etichettati, che avrà n stati e può essere calcolato in tempo e spazio lineari. Oppure mi sfugge qualcosa?
Joshua Grochow,

4
Sì, i DFA aciclici accettano solo un insieme finito di parole. Ma ci sono esempi di DFA aciclici la cui intersezione ha dimensioni n ^ 2. Ad esempio, pensa a un DFA che accetta stringhe del modulo AABC (dove ABC sono stringhe di lunghezza k) e uno che accetta stringhe del modulo ABCC.
Rasmus Pagh,

1
ricodifica: cs.cc è una designazione arxiv, quindi i tag forniti non hanno bisogno del prefisso cs.cc.
Suresh Venkat,

Risposte:


15

La risposta è senza alcun requisito sulla dimensione dell'automa. Può essere calcolato nello spazio O(log2n) anche per k DFA in cui k è una costante.

Sia ( i [ k ] ) essere k DFA. Si dimostra che, data A 1 , ... , A k , calcolando la minima DFA riconosce L ( A 1 ) L ( A k ) può essere realizzata in OAi=(Qi,Σi,δi,zi,Fi)i[k])kA1,,AkL(A1)L(Ak) spazio. Innanzitutto dimostriamo alcuni risultati tecnici.O(log2n)

Definizione 1 : Sia due stati, quindi q r iff w Σ , q . w F r . w Fq,rqrwΣq.wFr.wF

Consideriamo ora l'automa dato dalla costruzione classica del prodotto cartesiano. Let q = ( q 1 , ... , q k ) e r = ( r 1 , ... , r k ) essere stati di A .Aq=(q1,,qk)r=(r1,,rk)A

Lemma 1 : Decidere se è in NL.qr

Prova (schizzo): mostriamo che l'ineguaglianza del test è in NL e usiamo NL = coNL. Indovina una parola (una lettera alla volta) tale che q . w è uno stato finale e r . w non lo è. Ciò può essere ottenuto calcolando q i . w , r i . w nello spazio log per i [ k ] e usando il fatto che q è definitivo iff q iF iwΣq.wr.wqi.w,ri.wi[k]qqiFii[k]wqrw

Lemma 2 : Decidere se è (in) accessibile è in NL.q

Prova (schizzo): indovina (poli-dimensioni) percorsi da a ( ).q i i [ k ]ziqii[k]

Definizione 2 : considerare gli stati di in ordine lessicografico. Definisci come primo stato accessibile e il primo stato accessibile dopo che non è equivalente a nessuno stato precedente. Definiamo come unico tale che .s ( 1 ) s ( i ) s ( i - 1 ) c ( q ) i q s ( i )As(1)s(i)s(i1)c(q)iqs(i)

Lemma 3 : può essere calcolato nello spazio .O ( log 2 n )s(i)O(log2n)

Prova (schizzo): la definizione 2 produce un algoritmo. Usiamo i contatori per scorrere gli stati. Lascia che e siano lo stato corrente. In ogni stato, usiamo il lemma 2 per verificare se è accessibile. In tal caso, eseguiamo il ciclo su tutti gli stati precedenti e verifichiamo se qualcuno di essi equivale a . Se non ce ne sono, incrementiamo e produciamo se . Altrimenti, memorizziamo come e continuiamo. Poiché memorizziamo solo un numero costante di contatori e i nostri test possono essere eseguiti inj 0 q q q j q j = i q s ( j ) NL DSPACE ( log 2 n )kj0qqqjqj=iqs(j)NLDSPACE(log2n), questo completa la prova.

Corollario 1 : può essere calcolato nello spazio .O ( log 2 n )c(q)O(log2n)

Teorema : la minimizzazione di può essere eseguita nello spazio .O ( log 2 n )AO(log2n)

Prova (schizzo): Lascia cheessere il più grande tale che sia definito (cioè il numero di classi di ). Diamo un algoritmo che emette un automa dovei 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)) dove .q=(z0,,zk)

Ora mostriamo come calcolare . Per ogni , calcola e genera la transizione . In base al lemma 3 e al corollario 1, questo algoritmo viene eseguito nello spazio . È possibile verificare che sia minimo e . i [ m ] , a Σ q s ( i ) . a ( s ( i ) , a , s ( c ( q ) ) ) O ( log 2 n ) A L ( A ) = L ( A )δi[m],aΣqs(i).a(s(i),a,s(c(q)))O(log2n)AL(A)=L(A)


3
Bell'algoritmo! Ecco un modo leggermente diverso di guardare questo algoritmo. Il suo nucleo è che la minimizzazione dello stato di ogni dato DFA può essere fatta in tempo polinomiale e spazio . Successivamente, è facile costruire un DFA che rappresenti l'intersezione nello spazio logaritmico (quindi nel tempo polinomiale e nello spazio ), e possiamo comporre due funzioni calcolabili nel tempo polinomiale e spazio (in modo simile alla composizione di due riduzioni dello spazio logaritmico), producendo l'intero algoritmo in tempo polinomiale e spazio . O (O(log2n)O ( log 2 n ) O ( log 2 n )O(log2n)O(log2n)O(log2n)
Tsuyoshi Ito,

2
Ho appena visto questa risposta ... Non vedo perché l'algoritmo venga eseguito nello spazio polytime e contemporaneamente. Sì, , ma non è noto se - ovvero, possiamo ottenere un algoritmo in esecuzione in polytime e possiamo ottenere un altro algoritmo in esecuzione nello spazio , ma non so come risolvere i problemi nello spazio polytime e con un singolo algoritmo. 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 ( log 2 n ) N L O ( log 2 n )O(log2n)NLPDSPACE[log2n]NLTISP[nO(1),log2n]O(log2n)NLO(log2n)
Ryan Williams,

Hai ragione, non so neanche io. L'ho pubblicato molto tempo fa, quindi non sono sicuro del motivo per cui l'ho scritto in questo modo, ma forse intendevo "tempo polinomiale o O (log² n)". Lo modificherò perché è fuorviante. Grazie!
Michael Blondin,

14

Dick Lipton e colleghi hanno recentemente lavorato su questo problema, e Lipton ne ha fatto un blog qui:

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

Sembra che fare meglio di O (n ^ 2) sia aperto anche per il caso molto particolare di determinare se l'intersezione DFA definisce il linguaggio vuoto.
L'articolo fornisce conseguenze sulla complessità che deriverebbero da un algoritmo molto migliorato che gestisce non solo 2 DFA nell'intersezione, ma anche numeri più grandi.


1
e che dire dei limiti inferiori?
Marcos Villagra,

1
Giusto per chiarire le domande: sono felice di passare O (n ^ 2) tempo (o forse anche n ^ O (1) tempo) per migliorare il limite dello spazio.
Rasmus Pagh,

13

Se ti vengono dati k DFA (k fa parte dell'input) e desideri sapere se la loro intersezione è vuota, questo problema è PSPACE completo in generale:

Dexter Kozen: limiti inferiori per sistemi a prova naturale FOCS 1977: 254-266

Forse se studi attentamente questa dimostrazione (e costruzioni simili di Lipton e dei suoi coautori), potresti trovare una sorta di spazio inferiore legato anche per k fisso.


Grazie per questo puntatore. Immagino che ciò potrebbe portare a uno spazio n ^ Omega (1) inferiore rispetto allo spazio aggiuntivo necessario, a parte l'input. Ma potrebbe forse portare a uno spazio super-lineare limite inferiore?
Rasmus Pagh,

1
@ user124864 Dato DFA con stati ciascuno, l'automa del prodotto avrà stati. Ora, ci sono due trucchi che puoi fare per ridurne le dimensioni. Il primo è che prendi in considerazione solo il componente raggiungibile del grafico del prodotto. In secondo luogo, è possibile ridurre al minimo il DFA del prodotto. Alla fine della giornata, è difficile capire quale lingua è riconosciuta da questo automa del prodotto. n n kknnk
Michael Wehar,

1
@ user124864 Anche solo provare a determinare se il prodotto DFA riconosce un linguaggio non vuoto è difficile. Questo è il problema di non vuoto dell'intersezione. Per duro, intendo che è completo in senso forte. XNL
Michael Wehar,

1
@ user124864 Se riesci a risolverlo in meno di tempo, otteniamo algoritmi più veloci per i problemi completi di PSPACE. Non è risolvibile in spazio binario non deterministico. Non è noto se possiamo risolverlo in meno di spazio binario deterministico. Non è noto se possiamo risolverlo nel tempo polinomiale deterministico simultaneo e nello spazio binario per qualsiasi funzione (in tal modo si migliorerebbe il teorema di Savitch). o ( 1 ) k log ( n ) k 2nko(1)klog(n)k2log2(n)f(k)log2(n)f
Michael Wehar,

1
@ user124864 Nota: abbiamo entrambi i seguenti. (1) Battere il tempo implica in modo deterministico algoritmi deterministici più veloci per i problemi completi di PSPACE e (2) battere il tempo implica in modo non deterministico algoritmi non deterministici più veloci per i problemi di PSPACE completo. nknk
Michael Wehar,

7

Dati due automi , accettano linguaggi finiti (automi aciclici), la complessità dello stato di è in (1) . Questo risultato vale anche per DFA unari (non necessariamente aciclica) (2) . Tuttavia, sembra che tu stia parlando dello spazio richiesto per calcolare l'intersezione di due automi. Non vedo come la costruzione classica che utilizza il prodotto cartesiano usi lo spazio . Tutto ciò che serve è un numero costante di contatori di dimensioni logaritmiche. Quando si calcola la funzione di transizione per il nuovo stato è necessario solo scansionare l'input senza cercare dati precedentemente generati.B L ( A ) L ( BABL(A)L(B)Θ(|A||B|) O(n2)(q,r)

Forse vuoi produrre l'automa minimo? Se questo è il caso, allora non ho idea se possa essere raggiunto. La complessità dello stato dell'intersezione per le lingue finite non sembra incoraggiante. Tuttavia, i DFA unari hanno la stessa complessità di stato e penso che possa essere raggiunto con tali automi. Utilizzando i risultati di (2) , è possibile ottenere la dimensione esatta dell'automa che riconosce l'intersezione. Questa dimensione è descritta dalla lunghezza della coda e dal ciclo, quindi la funzione di transizione può essere facilmente calcolata con pochissimo spazio poiché la struttura è interamente descritta da quelle due dimensioni. Quindi, tutto ciò che devi fare è generare l'insieme degli stati finali. Sia il numero di stati nell'automa risultante, quindi per tutto , state1 i n i a i A Bn1ini è uno stato finale sse è accettato da entrambi e . Questo test può essere eseguito con poco spazio.aiAB


1
Sì, mi interessa l'automa minimo o almeno un automa di dimensioni simili. Grazie per i suggerimenti ai DFA unari. Tuttavia, questo non sembra aiutare molto nel caso generale.
Rasmus Pagh,
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.