L'intersection de deux DFA (minimes) avec n états peut être calculée en utilisant O (n 2 ) temps et espace. Ceci est optimal en général, car le DFA résultant (minimal) peut avoir n 2 états. Cependant, si le DFA minimal résultant a z états, où z = O (n), peut-il être calculé dans l'espace n 2-eps , pour un eps constant> 0? Je serais intéressé par un tel résultat même pour le cas spécial où les DFA d'entrée sont acycliques.
automata-theory
dfa
Rasmus Pagh
la source
la source
Réponses:
La réponse est oui sans aucune exigence sur la taille de l'automate. Il peut être calculé dans l' espaceO(log2n) même pour k DFA où k est une constante.
Soit ( i ∈ [ k ] ) soient k DFA. Nous montrons que, compte tenu ⟨ A 1 , ... , A k ⟩ , le calcul du DFA minimal reconnaissant L ( A 1 ) ∩ ⋯ ∩ L ( A k ) peut être fait en OAi=(Qi,Σi,δi,zi,Fi) i∈[k]) k ⟨A1,…,Ak⟩ L(A1)∩⋯∩L(Ak) espace. Nous prouvons d'abord quelques résultats techniques.O(log2n)
Définition 1 : Soit deux états puis q ≡ r ssi ∀ w ∈ Σ ∗ , q . w ∈ F ⇔ r . w ∈ Fq,r q≡r ∀w∈Σ∗ q.w∈F⇔r.w∈F
Nous considérons maintenant l'automate donné par la construction classique du produit cartésien. Que q = ( q 1 , ... , q k ) et r = ( r 1 , ... , r k ) soit des états de A .A q=(q1,…,qk) r=(r1,…,rk) A
Lemme 1 : Décider si est en NL.q≡r
Preuve (esquisse): Nous montrons que le test de l'inéquivalence est en NL et utilisons NL = coNL. Devinez un mot (une lettre à la fois) tel que q . w est un état final et r . w ne l'est pas. Ceci peut être réalisé en calculant q i . w , r i . w dans l'espace logarithmique pour i ∈ [ k ] et en utilisant le fait que q est final ssi q i ∈ F iw∈Σ∗ q. w r.w qi.w,ri.w i∈[k] q . On peut montrer que q ≢ r implique l'existence d'un w de poly-taille.qi∈Fi∀i∈[k] q≢r w
Lemme 2 : Décider si est (in) accessible est en NL.q
Preuve (esquisse): devinez (poly-taille) les chemins de à q i ( i ∈ [ k ] ).zi qi i∈[k]
Définition 2 : Considérons les états de dans l'ordre lexicographique. Définissez s ( 1 ) comme étant le premier état accessible et s ( i ) le premier état accessible suivant s ( i - 1 ) qui n'est équivalent à aucun état précédent. Nous définissons c ( q ) comme l'unique i tel que q ≡ s ( i ) .A s(1) s(i) s(i−1) c ( q) je q≡ s ( i )
Lemme 3 : peut être calculé dans l' espace O ( log 2 n ) .s ( i ) O ( log2n )
Preuve (esquisse): la définition 2 donne un algorithme. Nous utilisons compteurs pour parcourir les états. Soit j ← 0 et q l'état actuel. À chaque état, nous utilisons le lemme 2 pour vérifier si q est accessible. Si c'est le cas, nous bouclons sur tous les états précédents et nous vérifions si l'un d'eux est équivalent à q . S'il n'y en a pas, on incrémente j et on sort q si j = i . Sinon, nous stockons q comme étant s ( j ) et nous continuons. Étant donné que nous ne stockons qu'un nombre constant de compteurs et que nos tests peuvent être effectués en NLk j ← 0 q q q j q j = i q s ( j ) , ceci complète la preuve.NL ⊆ DSPACE ( log2n )
Corollaire 1 : peut être calculé dans l' espace O ( log 2 n ) .c ( q) O ( log2n )
Théorème : La minimisation de peut être effectuée dans l' espace O ( log 2 n ) .UNE O ( log2n )
Preuve (esquisse): Soit être le plus grand i tel que s ( i ) soit défini (c'est-à-dire le nombre de classes de ≡ ). Nous donnons un algorithme produisant un automate A ′ = ( Q ′ , Σ , δ ′ , z ′ , F ′ ) où1 ≤ m ≤ | Q0| ⋯ | Q1| je s ( i ) ≡ UNE′= ( Q′, Σ , δ′, z′, F′)
Nous montrons maintenant comment calculer . Pour chaque i ∈ [ m ] , a ∈ Σ , calculez q ← s ( i ) . a et sortir la transition ( s ( i ) , a , s ( c ( q ) ) ) . Par le lemme 3 et le corollaire 1, cet algorithme s'exécute dans l' espace O ( log 2 n ) . On peut vérifier que A ′δ′ i∈[m],a∈Σ q←s(i).a (s(i),a,s(c(q))) O(log2n) A′ est minimale et .L(A′)=L(A)
la source
Dick Lipton et ses collègues ont récemment travaillé sur ce problème, et Lipton en a parlé ici:
http://rjlipton.wordpress.com/2009/08/17/on-the-intersection-of-finite-automata/
It appears that doing better than O(n^2) is open even for the very-special case of determining if the DFA intersection defines the empty language.
The paper gives complexity consequences that would result from a much-improved algorithm handling not just 2 DFAs in the intersection, but larger numbers as well.
la source
Si vous disposez de k DFA (k fait partie de l'entrée) et que vous souhaitez savoir si leur intersection est vide, ce problème est PSPACE-complete en général:
Peut-être que si vous étudiez attentivement cette preuve (et les constructions similaires de Lipton et de ses co-auteurs), vous pourriez trouver une sorte d'espace limite inférieure même pour k fixe.
la source
Given two automataA , B accepting finite languages (acyclic automata), the state complexity of L(A)∩L(B) is in Θ(|A|⋅|B|) (1). This result also holds for unary DFAs (not necessarily acyclic) (2). However, you seem to be talking about the space required to compute the intersection of two automata. I don't see how the classic construction using the Cartesian product uses O(n2) space. All you need is a constant number of counters of logarithmic size. When you compute the transition function for the new state (q,r) you only have to scan the input without looking to any previously generated data.
Perhaps you want to output the minimal automaton? If this is the case, then I have no clue whether it can be achieved. The state complexity of the intersection for finite languages doesn't seem encouraging. However, unary DFAs have the same state complexity and I think it can be achieved with such automata. By using results from (2), you can get the exact size of the automaton recognizing the intersection. This size is described by the length of the tail and the cycle, thus the transition function can be easily computed with very few space since the structure is entirely described by those two sizes. Then, all you have to do is to generate the set of final states. Letn be the number of states in the resulting automaton, then for all 1≤i≤n , state i est un état final ssi uneje est accepté par les deux UNE et B . Ce test peut être effectué avec peu d'espace.
la source