fbpx
Wikipedia

Autómata finito no determinista

Un autómata finito no determinista (abreviado AFND) es un autómata finito que, a diferencia de los autómatas finitos deterministas (AFD), posee al menos un estado qQ, tal que para un símbolo a ∈ Σ del alfabeto, existe más de una transición δ(q,a) posible.

En este ejemplo, δ(q0,b)=q0 y δ(q0,b)=q1. Por lo tanto, se trata de un autómata finito no determinista, que reconoce la expresión regular (a|b)*b+.

En un AFND puede darse cualquiera de estos dos casos:

  • Que existan transiciones del tipo δ(q,a)=q1 y δ(q,a)=q2, siendo q1q2;
  • Que existan transiciones del tipo δ(q, ε), siendo q un estado no-final, o bien un estado final pero con transiciones hacia otros estados.

Cuando se cumple el segundo caso, se dice que el autómata es un autómata finito no determinista con transiciones vacías o transiciones ε (abreviado AFND-ε). Estas transiciones permiten al autómata cambiar de estado sin procesar ningún símbolo de entrada. Considérese una modificación al modelo del autómata finito para permitirle ninguna, una o más transiciones de un estado sobre el mismo símbolo de entrada.

Definición formal

Formalmente, si bien un autómata finito determinista se define como una 5-tupla (Q, Σ, q0, δ, F) donde:[1]

  •   es un conjunto de estados;
  •   es un alfabeto;
  •   es el estado inicial;
  •   es una función de transición;
  •   es un conjunto de estados finales o de aceptación.

en un AFND la función de transición se define como:

 

Para el caso de los AFND-ε, se suele expresar la función de transición de la forma:

 

donde P(Q) es el conjunto potencia de Q. Esto significa que los autómatas finitos deterministas son un caso particular de los no deterministas, puesto que Q pertenece al conjunto P(Q).

La interpretación que se suele hacer en el cómputo de un AFND es que el automáta puede pasar por varios estados a la vez, generándose una ramificación de las configuraciones existentes en un momento dado. Asimismo, en un autómata finito no determinista podemos aceptar la existencia de más de un nodo inicial.

Funcionamiento

La máquina comienza en el estado inicial especificado y lee una cadena de caracteres pertenecientes al alfabeto. El autómata utiliza la función de transición de estados T para determinar el siguiente estado, usando el estado actual y el símbolo que acaba de leer o la cadena vacía. Sin embargo, "el estado siguiente de un AFND no solo depende de el evento de entrada actual, sino que también en un número arbitrario de los eventos de entrada posterior. Hasta que se producen estos acontecimientos posteriores no es posible determinar en qué estado se encuentra la máquina" . Cuando el autómata ha terminado de leer, y se encuentra en un estado de aceptación, se dice que el AFND acepta la cadena, de lo contrario se dice que la cadena de caracteres es rechazada. Tanto para un AFND como para un autómata finito determinista (AFD) se puede aceptar el mismo lenguaje. Por lo tanto, es posible convertir un AFND existente en un AFD para el desarrollo de una máquina tal vez más simple. Esto puede llevarse a cabo utilizando la construcción del conjunto potencia, que puede conducir a un aumento exponencial en el número de estados necesarios.

Implementación

Hay muchas formas de implementar una AFND:

  • Convertir al equivalente AFD: en algunos casos esto puede causar un aumento exponencial en el tamaño del autómata, y así un espacio auxiliar proporcional al número de estados en el AFND (como el almacenamiento del valor del estado requiere en la mayoría de un bit por cada estado en el AFND).
  • Mantener un conjunto de datos de todos los estados en que la máquina podría estar en la actualidad. Al consumir el último carácter de entrada, si uno de estos estados es un estado final, la máquina acepta la cadena. En el peor de los casos, esto puede requerir espacio adicional proporcional al número de estados en el AFND; si la estructura del conjunto usa un bit por estado del AFND, entonces esta solución es exactamente equivalente a la anterior.
  • Crear múltiples copias. Por cada n forma de la decisión, el AFND crea hasta n-1 copias de la máquina. Cada uno de ellos entrara en un estado independiente. Si, al momento de consumir el último símbolo de la entrada, al menos una copia del AFND esta en un estado de aceptación, el AFND lo aceptará. (Esto también requiere un almacenamiento lineal con respecto al número de estados del AFND, ya que puede haber una máquina por cada estado del AFND).

AFND-ε

Propiedades

Para todo  , se escribe   si y solo si a   se puede llegar desde  , yendo a lo largo de cero o más flechas  . En otras palabras,   si y solo si existe   donde   tal que

 .

Para cualquier  , el conjunto de estados a los que se puede llegar a partir de p se le llama epsilon-closure o ε-closure de p y se escribe como

 .

Para cualquier subconjunto  , definir el ε-closure de P como

 .

Para el conjunto vacío

 .

Para cualquier subconjunto   y   se cumplen las propiedades:

 .
Si   entonces  .
 .

Las transiciones epsilon son transitivas, ya que puede demostrarse que para todo   y  , si   y  , entonces  .

Del mismo modo, si   y   entonces   Sea x una cadena del alfabeto Σ∪{ε}. Un AFND-ε M acepta la cadena x si existe tanto una representación de x de la forma x1x2 ... xn, donde xi ∈ (Σ ∪{ε}), y una secuencia de estados

p0,p1, ..., pn, donde piQ, Cumpliéndose las siguientes condiciones:

  1. p0   E({q0})
  2. pi   E(T(pi-1, xi )) para i = 1, ..., n
  3. pn   F.

Sea  , la definición recursiva de   es:

  1.  
  2.  

Para calcular   :

definiremos   donde

  1.  
  2.  

Si  

Aplicación

El AFND y el AFD son equivalentes en esto, ya que si un lenguaje es reconocido por el AFND, también será reconocido por un AFD, y viceversa. El establecimiento de esta equivalencia es útil porque a veces la construcción de un AFND para reconocer un lenguaje determinado es más fácil que construir un AFD para dicho lenguaje. También es importante porque el AFND se puede utilizar para reducir la complejidad del trabajo matemático necesario para establecer muchas propiedades importantes en la teoría de la computación. Por ejemplo, es mucho más fácil demostrar las siguientes propiedades utilizando un AFND que un AFD:

Ejemplo

El ejemplo siguiente muestra un AFND M, con un alfabeto binario que determina si la entrada contiene un número par de ceros (0) o un número par de unos (1). Entonces M = (Q, Σ, T, s0, F) donde:

  • Σ = {0, 1},
  • Q = {s0, s1, s2, s3, s4},
  • E({s0}) = { s0, s1, s3 }
  • F = {s1, s3}, y
  • La función de transición T puede ser definida por esta tabla de transición de estados:
0
1
ε
S0
{}
{}
{S1, S3}
S1
{S2}
{S1}
{}
S2
{S1}
{S2}
{}
S3
{S3}
{S4}
{}
S4
{S4}
{S3}
{}

El diagrama de estados para M es:

 

M puede ser visto como la unión de dos AFDs: uno con los estados {S1, S2} y el otro con los estados {S3, S4}.

El lenguaje de M puede ser descrito por el lenguaje regular dado por la expresión regular:

 

Véase también

Referencias

  1. Chakraborty, Samarjit (17 de marzo de 2003). «Formal Languages and Automata Theory. Regular Expressions and Finite Automata». Computer Engineering and Networks Laboratory. Swiss Federal Institute of Technology (ETH) Zürich (en inglés): 17. Consultado el 30 de marzo de 2010. 

Bibliografía

  • M. O. Rabin and D. Scott, "Finite Automata and their Decision Problems", IBM Journal of Research and Development, 3:2 (1959) pp.115-125.
  • Michael Sipser, Introduction to the Theory of Computation. PWS, Boston. 1997.
  • John E. Hopcroft and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, Addison-Wesley Publishing, Reading Massachusetts, 1979.
  •   Datos: Q617295
  •   Multimedia: Finite state machine

autómata, finito, determinista, este, artículo, sección, tiene, referencias, pero, necesita, más, para, complementar, verificabilidad, este, aviso, puesto, abril, 2018, autómata, finito, determinista, abreviado, afnd, autómata, finito, diferencia, autómatas, f. Este articulo o seccion tiene referencias pero necesita mas para complementar su verificabilidad Este aviso fue puesto el 9 de abril de 2018 Un automata finito no determinista abreviado AFND es un automata finito que a diferencia de los automatas finitos deterministas AFD posee al menos un estado q Q tal que para un simbolo a S del alfabeto existe mas de una transicion d q a posible En este ejemplo d q0 b q0 y d q0 b q1 Por lo tanto se trata de un automata finito no determinista que reconoce la expresion regular a b b En un AFND puede darse cualquiera de estos dos casos Que existan transiciones del tipo d q a q1 y d q a q2 siendo q1 q2 Que existan transiciones del tipo d q e siendo q un estado no final o bien un estado final pero con transiciones hacia otros estados Cuando se cumple el segundo caso se dice que el automata es un automata finito no determinista con transiciones vacias o transiciones e abreviado AFND e Estas transiciones permiten al automata cambiar de estado sin procesar ningun simbolo de entrada Considerese una modificacion al modelo del automata finito para permitirle ninguna una o mas transiciones de un estado sobre el mismo simbolo de entrada Indice 1 Definicion formal 2 Funcionamiento 3 Implementacion 4 AFND e 4 1 Propiedades 4 2 Aplicacion 5 Ejemplo 6 Vease tambien 7 Referencias 8 BibliografiaDefinicion formal EditarFormalmente si bien un automata finito determinista se define como una 5 tupla Q S q0 d F donde 1 Q displaystyle Q es un conjunto de estados S displaystyle Sigma es un alfabeto q 0 Q displaystyle q 0 in Q es el estado inicial d Q S Q displaystyle delta colon Q times Sigma to Q es una funcion de transicion F Q displaystyle F subseteq Q es un conjunto de estados finales o de aceptacion en un AFND la funcion de transicion se define como d Q S P Q displaystyle delta Q times Sigma to mathcal P Q Para el caso de los AFND e se suele expresar la funcion de transicion de la forma d Q S ϵ P Q displaystyle delta Q times Sigma cup epsilon to mathcal P Q donde P Q es el conjunto potencia de Q Esto significa que los automatas finitos deterministas son un caso particular de los no deterministas puesto que Q pertenece al conjunto P Q La interpretacion que se suele hacer en el computo de un AFND es que el automata puede pasar por varios estados a la vez generandose una ramificacion de las configuraciones existentes en un momento dado Asimismo en un automata finito no determinista podemos aceptar la existencia de mas de un nodo inicial Funcionamiento EditarLa maquina comienza en el estado inicial especificado y lee una cadena de caracteres pertenecientes al alfabeto El automata utiliza la funcion de transicion de estados T para determinar el siguiente estado usando el estado actual y el simbolo que acaba de leer o la cadena vacia Sin embargo el estado siguiente de un AFND no solo depende de el evento de entrada actual sino que tambien en un numero arbitrario de los eventos de entrada posterior Hasta que se producen estos acontecimientos posteriores no es posible determinar en que estado se encuentra la maquina Cuando el automata ha terminado de leer y se encuentra en un estado de aceptacion se dice que el AFND acepta la cadena de lo contrario se dice que la cadena de caracteres es rechazada Tanto para un AFND como para un automata finito determinista AFD se puede aceptar el mismo lenguaje Por lo tanto es posible convertir un AFND existente en un AFD para el desarrollo de una maquina tal vez mas simple Esto puede llevarse a cabo utilizando la construccion del conjunto potencia que puede conducir a un aumento exponencial en el numero de estados necesarios Implementacion EditarHay muchas formas de implementar una AFND Convertir al equivalente AFD en algunos casos esto puede causar un aumento exponencial en el tamano del automata y asi un espacio auxiliar proporcional al numero de estados en el AFND como el almacenamiento del valor del estado requiere en la mayoria de un bit por cada estado en el AFND Mantener un conjunto de datos de todos los estados en que la maquina podria estar en la actualidad Al consumir el ultimo caracter de entrada si uno de estos estados es un estado final la maquina acepta la cadena En el peor de los casos esto puede requerir espacio adicional proporcional al numero de estados en el AFND si la estructura del conjunto usa un bit por estado del AFND entonces esta solucion es exactamente equivalente a la anterior Crear multiples copias Por cada n forma de la decision el AFND crea hasta n 1 copias de la maquina Cada uno de ellos entrara en un estado independiente Si al momento de consumir el ultimo simbolo de la entrada al menos una copia del AFND esta en un estado de aceptacion el AFND lo aceptara Esto tambien requiere un almacenamiento lineal con respecto al numero de estados del AFND ya que puede haber una maquina por cada estado del AFND AFND e EditarPropiedades Editar Para todo p q Q displaystyle p q in Q se escribe p ϵ q displaystyle p stackrel epsilon rightarrow q si y solo si a q displaystyle q se puede llegar desde p displaystyle p yendo a lo largo de cero o mas flechas ϵ displaystyle epsilon En otras palabras p ϵ q displaystyle p stackrel epsilon rightarrow q si y solo si existe q 1 q 2 q k Q displaystyle q 1 q 2 cdots q k in Q donde k 0 displaystyle k geq 0 tal que q 1 T p ϵ q 2 T q 1 ϵ q k T q k 1 ϵ q T q k ϵ displaystyle q 1 in T p epsilon q 2 in T q 1 epsilon cdots q k in T q k 1 epsilon q in T q k epsilon Para cualquier p Q displaystyle p in Q el conjunto de estados a los que se puede llegar a partir de p se le llama epsilon closure o e closure de p y se escribe como E p q Q p ϵ q displaystyle E p q in Q p stackrel epsilon rightarrow q Para cualquier subconjunto P Q displaystyle P subseteq Q definir el e closure de P como E P p P E p displaystyle E P bigcup limits p in P E p Para el conjunto vacio E displaystyle E Para cualquier subconjunto A Q displaystyle A subseteq Q y B Q displaystyle B subseteq Q se cumplen las propiedades E E A E A displaystyle E E A E A Si A B displaystyle A subseteq B entonces E A E B displaystyle E A E B E A B E A E B displaystyle E A cup B E A cup E B Las transiciones epsilon son transitivas ya que puede demostrarse que para todo q 0 q 1 q 2 Q displaystyle q 0 q 1 q 2 in Q y P Q displaystyle P subset Q si q 1 E q 0 displaystyle q 1 in E q 0 y q 2 E q 1 displaystyle q 2 in E q 1 entonces q 2 E q 0 displaystyle q 2 in E q 0 Del mismo modo si q 1 E P displaystyle q 1 in E P y q 2 E q 1 displaystyle q 2 in E q 1 entonces q 2 E P displaystyle q 2 in E P Sea x una cadena del alfabeto S e Un AFND e M acepta la cadena x si existe tanto una representacion de x de la forma x1x2 xn donde xi S e y una secuencia de estadosp0 p1 pn donde pi Q Cumpliendose las siguientes condiciones p0 displaystyle in E q0 pi displaystyle in E T pi 1 xi para i 1 n pn displaystyle in F Sea P Q displaystyle P subseteq Q la definicion recursiva de E P displaystyle E P es q P q E P displaystyle forall q in P Rightarrow q in E P q E P p T q ϵ p E P displaystyle forall q in E P land forall p in T q epsilon Rightarrow p in E P Para calcular E P displaystyle E P definiremos E P B n displaystyle E P B n donde B 0 P displaystyle B 0 P B i B i 1 p q B i 1 p T q ϵ displaystyle B i B i 1 cup p q in B i 1 land p in T q epsilon Si B i B i 1 B n B i 1 displaystyle B i B i 1 Rightarrow B n B i 1 Aplicacion Editar El AFND y el AFD son equivalentes en esto ya que si un lenguaje es reconocido por el AFND tambien sera reconocido por un AFD y viceversa El establecimiento de esta equivalencia es util porque a veces la construccion de un AFND para reconocer un lenguaje determinado es mas facil que construir un AFD para dicho lenguaje Tambien es importante porque el AFND se puede utilizar para reducir la complejidad del trabajo matematico necesario para establecer muchas propiedades importantes en la teoria de la computacion Por ejemplo es mucho mas facil demostrar las siguientes propiedades utilizando un AFND que un AFD La union de dos lenguajes regulares es regular La concatenacion de dos lenguajes regulares es regular La Clausura de Kleene en un Lenguaje regular es regular Ejemplo EditarEl ejemplo siguiente muestra un AFND M con un alfabeto binario que determina si la entrada contiene un numero par de ceros 0 o un numero par de unos 1 Entonces M Q S T s0 F donde S 0 1 Q s0 s1 s2 s3 s4 E s0 s0 s1 s3 F s1 s3 y La funcion de transicion T puede ser definida por esta tabla de transicion de estados 0 1 eS0 S1 S3 S1 S2 S1 S2 S1 S2 S3 S3 S4 S4 S4 S3 El diagrama de estados para M es M puede ser visto como la union de dos AFDs uno con los estados S1 S2 y el otro con los estados S3 S4 El lenguaje de M puede ser descrito por el lenguaje regular dado por la expresion regular 1 01 01 0 10 10 displaystyle 1 01 01 cup 0 10 10 Vease tambien EditarAutomata finito Automata finito determinista Construccion de subconjuntosReferencias Editar Chakraborty Samarjit 17 de marzo de 2003 Formal Languages and Automata Theory Regular Expressions and Finite Automata Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology ETH Zurich en ingles 17 Consultado el 30 de marzo de 2010 Bibliografia EditarM O Rabin and D Scott Finite Automata and their Decision Problems IBM Journal of Research and Development 3 2 1959 pp 115 125 Michael Sipser Introduction to the Theory of Computation PWS Boston 1997 John E Hopcroft and Jeffrey D Ullman Introduction to Automata Theory Languages and Computation Addison Wesley Publishing Reading Massachusetts 1979 Datos Q617295 Multimedia Finite state machineObtenido de https es wikipedia org w index php title Automata finito no determinista amp oldid 128484332, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos