¿Cómo demostrar que los DFA de los NFA pueden tener un número exponencial de estados?


20

Todos los autómatas finitos no deterministas pueden convertirse en autómatas finitos deterministas equivalentes. Sin embargo, un autómata finito determinista solo permite una sola flecha por símbolo que apunta desde un estado. Por lo tanto, sus estados deberían ser miembros del conjunto de estados de poder de la NFA. Esto parece indicar que el número de estados del DFA podría escalar exponencialmente en términos del número de estados del NFA. Sin embargo, me preguntaba cómo probar esto realmente.


77
Es una pregunta razonable, y la construcción no es completamente obvia, pero aún podría ser una pregunta de tarea. Por lo tanto, sería útil saber por qué quieres saber.

Hay algunas construcciones aquí, pero parece que debería estar en un papel en alguna parte. No sé de una referencia. También, por encima de mi cabeza, creo que hay una construcción tal que el NFA cuenta en binario en sus estados activos, y acepta solo después de aproximadamente transiciones ...? 2n
vzn

Respuestas:


15

Una operación que transforma un NFA en otro NFA pero no lo hace para un DFA es la inversión (apunte todas las flechas al revés e intercambie los estados iniciales con los estados de aceptación). El lenguaje reconocido por el autómata transformado es el lenguaje inverso .LR={un1u0u0un1L}

Por lo tanto, una idea es buscar un lenguaje que tenga una construcción asimétrica. En adelante, este lenguaje debe reconocerse inspeccionando los primeros símbolos, que requieren solo estados. Yendo hacia atrás, debería ser necesario mantener una memoria de los últimos estados, lo que requiere estados donde es el tamaño del alfabeto.n + O ( 1 ) n A n + O ( 1 ) Ann+O(1)nAn+O(1)A

Estamos buscando un lenguaje de la forma donde consiste en palabras de longitud , es un subconjunto no trivial del alfabeto y no proporciona ninguna restricción adicional. También podríamos elegir el alfabeto más simple (un alfabeto singleton no servirá, no obtienes NFA más pequeños allí) y . Una no trivial significa . En cuanto a , requerimos que no se correlacione con (por lo que el DFA para el lenguaje invertido necesitará mantener la memoria de ): tomeM n n S M A = { a , b } M = A S S = { a } M n S S M n = A nMnSMMnnSMA={a,b}M=ASS={a}MnSSMn=An .

Por lo tanto, sea . Se reconoce por un simple DFA con estados. n + 2Ln=(a|b)na(a|b)n+2

dfa

Invertirlo produce un NFA que reconoce .LnR=(a|b)a(a|b)n

nfa

El DFA mínimo que reconoce tiene al menos estados. Esto se debe a que todas las palabras de longitud deben alcanzar estados distintos en el DFA. (En otras palabras, pertenecen a distintas clases de equivalencia de Myhill-Nerode ). Para probar esto, tome dos palabras distintas y deje que sea ​​una posición en la que difieren ( ). Sin pérdida de generalidad, supongamos que y . Entonces y ( es una extensión distintiva para 2 n + 1 2 n + 1 u , v A n + 1 k u kv k u k = a v k = b u b kL R n v b kL R n b k u v u v L R n u b k v bLnR2n+12n+1u,vAn+1kukvkuk=avk=bubkLnRvbkLnRbku y ). Si y conducen al mismo estado en un DFA que reconoce entonces lo harían y , lo cual es imposible ya que uno conduce a un estado de aceptación y el otro no.vuvLnRubkvbk

Reconocimiento: este ejemplo fue citado en Wikipedia sin explicaciones. El artículo hace referencia a un artículo que no he leído y que ofrece un límite más estricto:
Leiss, Ernst (1981), "Representación sucinta de los lenguajes regulares por autómatas booleanos", Ciencia teórica 13 (3): 323–330, doi: 10.1016 / S0304-3975 (81) 80005-9 .


Respuesta lógica: los estados en DFA se usan como memoria (para almacenar información como el interruptor de encendido y apagado del ventilador), por lo que lo que se puede representar en un solo estado en DFA se puede representar mediante la combinación de estados en NFA equivalente. Esa es la razón por la que NFA tiene menos estados en comparación con DFA equivalente. Ahora, si tiene estados en un conjunto entonces el conjunto de todas las combinaciones posibles de es un conjunto de potencia que es , por lo tanto, si invertimos un NFA de estados en DFA equivalente, entonces DFA consistirá en a lo sumo estados. - ¿Tiene sentido? Q Q 2 n n 2 nnQQ2nn2n
Grijesh Chauhan

1
@GrijeshChauhan Esto no es lo que hizo la pregunta. Sí, es fácil ver que por cada NFA con estados hay un DFA con a lo sumo 2 n estados. Pero aquí queremos ver que se alcanza el límite, es decir, que para cualquier n hay un NFA de estado n tal que el DFA equivalente más pequeño tiene al menos 2 n estados (o cerca de eso, aquí pruebo el límite 2 n - 1 ) n2nnn 2n2n1
Gilles 'SO- deja de ser malvado'

hmm ... después de leer tu respuesta dos veces y del comentario "Pero aquí queremos ver que se alcanza el límite" ahora podría haberlo entendido. Gracias.
Grijesh Chauhan

8

Considere la siguiente familia de idiomas: Ln={x1,x2,,xk#xk+1:i{1,,k} with xi=xk+1}

Ln{#,1,,n}

O(n)Lnnii3

Ln2O(n){1,,n}

Estoy bastante seguro de que el libro de Sipser tiene este ejemplo.


La construcción en el libro de Siper produce un DFA con exactamente 2 ^ n estados. Si el NFA tiene el conjunto de estados Q, entonces el conjunto de estados del DFA es Pow (Q) para simular todos los posibles estados 'paralelos' en los que se encuentra una migración de NFA. (Editar para agregar opinión sobre el alcance de la pregunta) Dado que el la construcción utilizada para esto en un texto estándar muestra claramente la posibilidad de un número exponencial de estados, me parece que este no es el nivel de investigación. Sin embargo, podría ser adecuado como solicitud de referencia.
Logan Mayfield

8

nn2n

Este ejemplo también muestra que los NFA pueden incurrir en una explosión exponencial bajo complementación. De hecho, se sabe que cualquier NFA (o incluso una gramática libre de contexto) para el lenguaje de todas las palabras que contienen todos los símbolos del alfabeto debe tener un número exponencial de estados.


1
σΣ(Σσ)

ΣnO(n2)2n2n

El punto de este ejemplo es que la explosión coincide exactamente con la construcción del conjunto de potencia. Existe un ejemplo binario con la misma explosión, pero es más complicado.
Yuval Filmus

Sí, es un buen ejemplo.
6005

1
O(nlogn)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.