La intersección de dos (mínimos) DFA con n estados se puede calcular utilizando O (n 2 ) tiempo y espacio. Esto es óptimo en general, ya que el DFA resultante (mínimo) puede tener n 2 estados. Sin embargo, si el DFA mínimo resultante tiene estados z, donde z = O (n), ¿se puede calcular en el espacio n 2-eps , para algunos eps constantes> 0? Me interesaría tal resultado incluso para el caso especial donde los DFA de entrada son acíclicos.
automata-theory
dfa
Rasmus Pagh
fuente
fuente
Respuestas:
La respuesta es sí sin ningún requisito sobre el tamaño del autómata. Se puede calcular en el espacioO(log2n) incluso para k DFA donde k es una constante.
Sea ( i ∈ [ k ] ) sean k DFA. Se demuestra que, dada ⟨ A 1 , ... , A k ⟩ , el cálculo de la mínima DFA reconocimiento de L ( A 1 ) ∩ ⋯ ∩ L ( A k ) puede hacerse en OAi=(Qi,Σi,δi,zi,Fi) i∈[k]) k ⟨A1,…,Ak⟩ L(A1)∩⋯∩L(Ak) espacio. Primero probamos algunos resultados técnicos.O(log2n)
Definición 1 : Sea dos estados, entonces q ≡ r iff ∀ w ∈ Σ ∗ , q . w ∈ F ⇔ r . w ∈ Fq,r q≡r ∀w∈Σ∗ q.w∈F⇔r.w∈F
Ahora consideramos el autómata dado por la construcción clásica de productos cartesianos. Deje que q = ( q 1 , ... , q k ) y r = ( r 1 , ... , r k ) sea estados de A .A q=(q1,…,qk) r=(r1,…,rk) A
Lema 1 : Decidir si está en NL.q≡r
Prueba (boceto): demostramos que probar la desigualdad está en NL y usamos NL = coNL. Adivina una palabra (una letra a la vez) tal que q . w es un estado final y r . w no lo es. Esto se puede lograr calculando q i . w , r i . w en el espacio logarítmico para i ∈ [ k ] y usando el hecho de que q es final iff q i ∈ F iw∈Σ∗ q.w r.w qi.w,ri.w i∈[k] q qi∈Fi∀i∈[k] wq≢r w
Lema 2 : Decidir si es (in) accesible está en NL.q
Prueba (boceto): Adivina (poli-tamaño) rutas de a ( ).q i i ∈ [ k ]zi qi i∈[k]
Definición 2 : Considere los estados de en orden lexicográfico. Defina como el primer estado accesible el primer estado accesible después de que no es equivalente a ningún estado anterior. Definimos como el único tal que .s ( 1 ) s ( i ) s ( i - 1 ) c ( q ) i q ≡ s ( i )A s(1) s(i) s(i−1) c(q) i q≡s(i)
Lema 3 : se puede calcular en el espacio .O ( log 2 n )s(i) O(log2n)
Prueba (boceto): la definición 2 produce un algoritmo. Usamos contadores para iterar sobre los estados. Deje y sea el estado actual. En cada estado, usamos el lema 2 para verificar si es accesible. Si es así, hacemos un bucle en todos los estados anteriores y verificamos si alguno de ellos es equivalente a . Si no hay ninguno, incrementamos y sacamos si . De lo contrario, almacenamos como y continuamos. Como solo almacenamos un número constante de contadores y nuestras pruebas pueden llevarse a cabo enj ← 0 q q q j q j = i q s ( j ) NL ⊆ DSPACE ( log 2 n )k j←0 q q q j q j=i q s(j) NL⊆DSPACE(log2n) , esto completa la prueba.
Corolario 1 : se puede calcular en el espacio .O ( log 2 n )c(q) O(log2n)
Teorema : minimizar puede hacerse en el espacio .O ( log 2 n )A O(log2n)
Prueba (boceto): Seaser el mayor tal que se defina (es decir, el número de clases de ). Damos un algoritmo que genera un autómata dondei s ( i ) ≡ A ′ = ( Q ′ , Σ , δ ′ , z ′ , F ′ )1≤m≤|Q0|⋯|Q1| i s(i) ≡ A′=(Q′,Σ,δ′,z′,F′)
Ahora mostramos cómo calcular . Para cada , calcule y la salida de la transición . Por el lema 3 y el corolario 1, este algoritmo se ejecuta en el espacio . Se puede verificar que es mínimo y . 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∈Σ q←s(i).a (s(i),a,s(c(q))) O(log2n) A′ L(A′)=L(A)
fuente
Dick Lipton y sus colegas trabajaron recientemente en este problema, y Lipton escribió sobre él aquí:
http://rjlipton.wordpress.com/2009/08/17/on-the-intersection-of-finite-automata/
Parece que hacerlo mejor que O (n ^ 2) está abierto incluso para el caso muy especial de determinar si la intersección DFA define el lenguaje vacío.
El documento presenta consecuencias complejas que resultarían de un algoritmo mejorado que maneja no solo 2 DFA en la intersección, sino también números más grandes.
fuente
Si recibe k DFA (k es parte de la entrada) y desea saber si su intersección está vacía, este problema es PSPACE-complete en general:
Quizás si estudias cuidadosamente esta prueba (y construcciones similares de Lipton y sus coautores), podrías encontrar algún tipo de espacio en el límite inferior incluso para k fijo.
fuente
Dados dos autómatas , aceptan lenguajes finitos (autómatas acíclicos), la complejidad del estado de está en (1) . Este resultado también es válido para los DFA unarios (no necesariamente acíclicos) (2) . Sin embargo, parece estar hablando del espacio requerido para calcular la intersección de dos autómatas. No veo cómo la construcción clásica que usa el producto cartesiano usa el espacio . Todo lo que necesita es un número constante de contadores de tamaño logarítmico. Cuando calcula la función de transición para el nuevo estado , solo tiene que escanear la entrada sin mirar ningún dato generado previamente.A B L(A)∩L(B) Θ(|A|⋅|B|) O(n2) (q,r)
¿Tal vez desea generar el autómata mínimo? Si este es el caso, entonces no tengo idea de si se puede lograr. La complejidad del estado de la intersección para los idiomas finitos no parece alentadora. Sin embargo, los DFA unarios tienen la misma complejidad de estado y creo que se puede lograr con dichos autómatas. Al usar los resultados de (2) , puede obtener el tamaño exacto del autómata que reconoce la intersección. Este tamaño se describe por la longitud de la cola y el ciclo, por lo tanto, la función de transición se puede calcular fácilmente con muy poco espacio, ya que la estructura se describe completamente por esos dos tamaños. Entonces, todo lo que tiene que hacer es generar el conjunto de estados finales. Sea el número de estados en el autómata resultante, luego para todos , estado1 ≤ i ≤ n i a in 1≤i≤n i es un estado final si y sólo si es aceptada por ambos y . Esta prueba se puede realizar con poco espacio.ai BA B
fuente