Intersection DFA dans l'espace sub-quadratique?


25

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.


3
Um ... si deux DFA à n états sont acycliques, alors chacun accepte simplement un ensemble fini de mots de longueur au plus n, auquel cas leur intersection est juste l'intersection des deux graphes de transition étiquetés, qui auront n états et peut être calculé en temps et en espace linéaires. Ou est-ce que je manque quelque chose?
Joshua Grochow

4
Oui, les DFA acycliques n'acceptent qu'un ensemble fini de mots. Mais il existe des exemples de DFA acycliques dont l'intersection a la taille n ^ 2. Par exemple, pensez à un DFA qui accepte des chaînes de la forme AABC (où ABC sont des chaînes de longueur k) et à un autre qui accepte des chaînes de la forme ABCC.
Rasmus Pagh du

1
retagging: cs.cc est une désignation arxiv, donc les balises données n'ont pas besoin du préfixe cs.cc.
Suresh Venkat

Réponses:


15

La réponse est oui sans aucune exigence sur la taille de l'automate. Il peut être calculé dans l' espace O(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])kA1,,AkL(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,rqrwΣq.wFr.wF

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 .UNEq=(q1,,qk)r=(r1,,rk)UNE

Lemme 1 : Décider si est en NL.qr

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 iF iwΣq.wr.wqje.w,rje.wje[k]q . On peut montrer que q r implique l'existence d'un w de poly-taille.qjeFjeje[k]qrw

Lemme 2 : Décider si est (in) accessible est en NL.q

Preuve (esquisse): devinez (poly-taille) les chemins de à q i ( i [ k ] ).zjeqjeje[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 ) .UNEs(1)s(je)s(je-1)c(q)jeqs(je)

Lemme 3 : peut être calculé dans l' espace O ( log 2 n ) .s(je)O(bûche2n)

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 NLkj0qqqjqj=jeqs(j) , ceci complète la preuve.NLDSPACE(bûche2n)

Corollaire 1 : peut être calculé dans l' espace O ( log 2 n ) .c(q)O(bûche2n)

Théorème : La minimisation de peut être effectuée dans l' espace O ( log 2 n ) .UNEO(bûche2n)

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 )1m|Q0||Q1|jes(je)UNE=(Q,Σ,δ,z,F)

  • ;Q={s(je):je[m]}
  • ;F={qQ:qjeFjeje[k]}
  • q = ( z 0 , , z k ) .z=s(c(q))q=(z0,,zk)

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Σqs(i).a(s(i),a,s(c(q)))O(log2n)Aest minimale et .L(A)=L(A)


3
Bel algorithme! Voici une façon légèrement différente de voir cet algorithme. Son noyau est que la minimisation d'état de n'importe quel DFA donné peut être effectuée dans le temps polynomial et l' espace . Après cela, il est facile de construire un DFA représentant l'intersection dans l'espace logarithmique (donc dans le temps polynomial et l'espace O ( log 2 n ) ), et nous pouvons composer deux fonctions calculables en temps polynomial et espace O ( log 2 n ) (d'une manière similaire à la composition de deux réductions d'espace logarithmique), produisant l'algorithme entier en temps polynomial et OO(log2n)O(log2n)O(log2n) espace. O(log2n)
Tsuyoshi Ito

2
I just saw this answer... I don't see why the algorithm runs in polytime and O(log2n) space simultaneously. Yes, NLPDSPACE[log2n], but it is not known if NLTISP[nO(1),log2n] -- that is, we can get an algorithm running in polytime, and we can get another algorithm running in , mais je ne sais pas comment résoudre les problèmes de N L en polytemps et O ( log 2 n ) avec un seul algorithme. O(log2n)NLO(log2n)
Ryan Williams

Vous avez raison, je ne sais pas non plus. Je l'ai posté il y a longtemps, donc je ne sais pas pourquoi je l'ai écrit de cette façon, mais peut-être que je voulais dire "temps polynomial ou O (log² n)". Je vais le modifier car il est trompeur. Merci!
Michael Blondin

14

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.


1
and what about lower bounds?
Marcos Villagra

1
Juste pour clarifier les questions: je suis heureux de passer O (n ^ 2) de temps (ou peut-être même n ^ O (1) de temps) pour améliorer l'espace lié.
Rasmus Pagh

13

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:

Dexter Kozen: limites inférieures pour les systèmes de preuve naturels FOCS 1977: 254-266

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.


Thanks for this pointer. I'm guessing that this could possibly lead to an n^Omega(1) space lower bound on the additional space needed, apart from the input. But could it possibly lead to a super-linear space lower bound?
Rasmus Pagh

1
@user124864 Given k DFA's with n states each, the product automaton will have nk states. Now, there are two tricks you can do to reduce its size. The first is that you just consider the reachable component of the product graph. Second, you could minimize the product DFA. At the end of the day, figuring out what language is recognized by this product automaton is hard.
Michael Wehar

1
@user124864 Even just trying to determine if the product DFA recognizes a non-empty language is hard. This is the intersection non-emptiness problem. By hard, I mean that it is XNL complete in a strong sense.
Michael Wehar

1
@user124864 If you can solve it in less than nk time, then we get faster algorithms for PSPACE complete problems. It is not solvable in o(1)klog(n) non-deterministic binary space. It's not known if we can solve it in less than k2log2(n) deterministic binary space. It's not known if we can solve it in simultaneous deterministic polynomial time and f(k)log2(n) binary space for any function f (doing so would improve Savitch's theorem).
Michael Wehar

1
@user124864 Note: we have both of the following. (1) Beating nk time deterministically implies faster deterministic algorithms for PSPACE complete problems and (2) beating nk time non-deterministically implies faster non-deterministic algorithms for PSPACE complete problems.
Michael Wehar

7

Given two automata A, 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. Let n be the number of states in the resulting automaton, then for all 1in, 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.


1
Yes, I am interested in the minimal automaton, or at least an automaton of similar size. Thanks for the pointers to unary DFAs. However, this does not seem to help much for the general case.
Rasmus Pagh
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.