A interseção de dois (mínimo) DFAs com n estados pode ser calculada usando O (n 2 ) tempo e espaço. Isso é ideal em geral, uma vez que o DFA resultante (mínimo) pode ter n 2 estados. No entanto, se o DFA mínimo resultante tiver estados z, onde z = O (n), ele pode ser calculado no espaço n 2-eps , para alguns eps constantes> 0? Eu estaria interessado em tal resultado, mesmo no caso especial em que os DFAs de entrada são acíclicos.
automata-theory
dfa
Rasmus Pagh
fonte
fonte
Respostas:
A resposta é sim, sem qualquer requisito sobre o tamanho do autômato. Pode ser calculado no espaçoO(log2n) mesmo para k DFAs onde k é uma constante.
Seja ( i ∈ [ k ] ) sejam k DFAs. Mostra-se que, dado ⟨ Um 1 , ... , A k ⟩ , calcular o mínimo DFA reconhecendo L ( A 1 ) ∩ ⋯ ∩ L ( A k ) pode ser feito em óAi=(Qi,Σi,δi,zi,Fi) i∈[k]) k ⟨A1,…,Ak⟩ L(A1)∩⋯∩L(Ak) espaço. Primeiro, provamos alguns resultados técnicos.O(log2n)
Definição 1 : Let ser dois estados depois q ≡ r sse ∀ w ∈ Σ * , q . w ∈ F ⇔ R . w ∈ Fq,r q≡r ∀w∈Σ∗ q.w∈F⇔r.w∈F
Agora consideramos o autômato dado pela construção clássica do produto cartesiano. Vamos q = ( q 1 , ... , q k ) e r = ( r 1 , ... , r k ) ser estados de Uma .A q=(q1,…,qk) r=(r1,…,rk) A
Lema 1 : Decidindo se está em NL.q≡r
Prova (esboço): Mostramos que o teste de desigualdade está em NL e usamos NL = coNL. Adivinhe uma palavra (uma letra de cada vez) tal que q . w é um estado final e r . w não é. Isso pode ser alcançado computando q i . w , r i . w no espaço de log para i ∈ [ k ] e usando o fato de q ser final iff q i ∈ F iw∈Σ∗ q.w r.w qi.w,ri.w i∈[k] q . Pode ser demonstrado que qqi∈Fi∀i∈[k] implica a existência de um w de tamanho poli.q≢r w
Lema 2 : Decidir se é (in) acessível está em NL.q
Prova (esboço): Estimativa (poli-size) caminhos de a q i ( i ∈ [ k ] ).zi qi i∈[k]
Definição 2 : Considere os estados de em ordem lexicográfica. Defina s ( 1 ) como sendo o primeiro estado acessível es ( i ) o primeiro estado acessível após s ( i - 1 ) que não é equivalente a nenhum estado anterior. Definimos c ( q ) como o único i tal que q ≡ s ( i ) .A s(1) s(i) s(i−1) c(q) i q≡s(i)
O lema 3 : pode ser calculado em O ( logs(i) .O(log2n)
Prova (esboço): A definição 2 produz um algoritmo. Usamos contadores para percorrer os estados. Seja j ← 0 e q o estado atual. Em cada estado, usamos o lema 2 para verificar se q está acessível. Se for, fazemos um loop em todos os estados anteriores e verificamos se algum deles é equivalente a q . Se não houver, incrementamos j e produzimos q se j = i . Caso contrário, armazenamos q como sendo s ( j ) e continuamos. Como armazenamos apenas um número constante de contadores e nossos testes podem ser realizados em NLk j←0 q q q j q j=i q s(j) , isso completa a prova.NL⊆DSPACE(log2n)
O corolário 1 : pode ser calculado no espaço O ( log 2 n ) .c(q) O(log2n)
Teorema : Minimizar pode ser feito no espaço O ( log 2 n ) .A O(log2n)
Prova (esboço): Seja seja o maior i tal que s ( i ) seja definido (isto é, o número de classes de ≡ ). Damos um algoritmo que produz um autômato A ′ = ( Q ′ , Σ , δ ′ , z ′ , F ′ ) onde1≤m≤|Q0|⋯|Q1| i s(i) ≡ A′=(Q′,Σ,δ′,z′,F′)
We now show how to computeδ′ . For every i∈[m],a∈Σ , compute q←s(i).a and output the transition (s(i),a,s(c(q))) . By lemma 3 and corollary 1, this algorithm runs in O(log2n) space. It can be checked that A′ is minimal and L(A′)=L(A) .
fonte
Dick Lipton and colleagues recently worked on this problem, and Lipton blogged about it here:
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.
fonte
If you're given k DFAs (k is part of the input) and wish to know if their intersection is empty, this problem is PSPACE-complete in general:
Perhaps if you carefully study this proof (and similar constructions by Lipton and his co-authors), you might find some sort of space lower bound even for fixed k.
fonte
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 is a final state iff ai is accepted by both A and B . This test can be carried with few space.
fonte