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])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,rq≡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 .Aq=(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. wr.wqi.w,ri.wi∈[k]q . On peut montrer que q ≢ r implique l'existence d'un w de poly-taille.qi∈Fi∀i∈[k]q≢rw
Lemme 2 : Décider si est (in) accessible est en NL.q
Preuve (esquisse): devinez (poly-taille) les chemins de à q i ( i ∈ [ k ] ).ziqii∈[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 ) .As(1)s(i)s(i−1)c ( q)jeq≡ 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 NLkj ← 0qqqjqj = iqs ( 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 ) .UNEO ( 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|jes ( i )≡UNE′= ( Q′, Σ , δ′, z′, F′)
- ;Q′= { s ( i ) : i ∈ [ m ] }
- ;F′= { q∈ Q′: qje∈ Fje∀ i ∈ [ k ] }
- où 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∈Σq←s(i).a(s(i),a,s(c(q)))O(log2n)A′est minimale et .L(A′)=L(A)