Академический Документы
Профессиональный Документы
Культура Документы
2 Autmata Finito Determinista (AFD) 2.2.1 Definicin de autmata finito determinista 2.2.2 Cmo procesa cadenas un AFD 2.2.3 Notaciones ms simples para los AFD 2.2.4 Extensin a cadenas de la funcin de transicin 2.2.5 El lenguaje de un AFD 2.3 Autmatas finitos no deterministas (AFN) 2.3.1 Punto de vista informal de los autmatas finitos no deterministas 2.3.2 Definicin de un autmata finito no determinista 2.3.3 Funcin de transicin extendida 2.3.4 El lenguaje de un AFN 2.3.5 Equivalencia de autmatas finitos deterministas y no deterministas 2.4 Aplicacin: bsqueda de texto (lectura, pag. 57) 2.5 Autmatas finitos con transiciones- (ampliacin pag. 61) 2.6 Resumen del Captulo 2
Tablas de transiciones Una tabla de transiciones es una representacin tabular convencional de una funcin, como por ejemplo , que toma dos argumentos y devuelve un valor. Las filas de la tabla corresponden a los estados y las columnas a las entradas. La entrada para la fila correspondiente al estado q y la columna correspondiente a la entrada a es el estado (q,a ). Ejemplo 2.3. Tabla de transicin del autmata del ejemplo 2.1.
El estado inicial se marca mediante una flecha y los estados de aceptacin mediante un asterisco.
(q,w) = p. Entonces (q, w) es lo que obtenemos al hacer la transicin desde el estado p con la entrada a, el ltimo smbolo de w. Es decir, (q, w) = (p, a) . Ejemplo 2.4. Disear un AFD que acepte el lenguaje L = {w | w tiene un nmero par de ceros y un nmero par de unos} La tarea de los estados de este AFD es saber si el nmero de 0s y de 1s es par o impar. Existen por tanto cuatro estados que pueden interpretarse de la manera siguiente: q0 - #0s y #1s es par; q1 - #0s es par y #1s es impar; q2 - #0s es impar y #1s es par q3 - #0s y #1s es impar. El estado q0 es tanto el estado inicial como el nico estado de aceptacin. As donde la funcin de transicin se describe mediante el diagrama de transiciones.
La comprobacin de que una cadena, w = 110101, pertenece a L supone calcular (q0, w) para cada prefijo w de 110101, comenzando por y aumentando progresivamente el tamao. El resumen de este clculo es:
No existe un arco que salga de q1 etiquetado con 1, y tampoco hay arcos que salgan del estado q2. En estas situaciones, el hilo de la existencia del AFN correspondiente a dichos estados simplemente "muere", aunque pueden continuar existiendo
otros hilos. Mientras que un AFD debe tener un arco que salga de cada estado para cada smbolo de entrada, el AFN no tendr dicha restriccin. La siguiente figura muestra cmo procesa un AFN las entradas. Suponemos que el AFN del ejemplo 2.6 recibe la secuencia de entrada 00101
2.3.2 Definicin de autmata finito no determinista Un AFN se representa esencialmente como un AFD: A = (Q, , , q0, F) donde: 1. Q es un conjunto finito de estados. 2. . es un conjunto finito de smbolos de entrada. 3. q0, un elemento de Q, es el estado inicial. 4. F, un subconjunto de Q, es el conjunto de estados finales (o de aceptacin). 5. , la funcin de transicin, es una funcin que toma como argumentos un estado de Q y un smbolo de entrada de L, y devuelve un subconjunto de Q. La nica diferencia entre un AFN y un AFD se encuentra en el tipo de valor que devuelve : un conjunto de estados en el caso de un AFN y un nico estado en el caso de un AFD. Ejemplo 2.7 El AFN de la figura puede especificarse formalmente como transicin est dada por la tabla de transiciones de la figura siguiente. , donde la funcin de
Las tablas de transiciones pueden emplearse para especificar la funcin de transicin tanto de un AFN como de un AFD. La nica diferencia es que cada entrada de la tabla para el AFN es un conjunto, aunque dicho conjunto tenga un nico elemento. Cuando no hay transicin de un estado ante un smbolo de entrada dado, la entrada adecuada es 0, el conjunto vaco.
Para calcular (q, w), suponiendo que w = xa, obtenemos primero estos estados que estn etiquetadas con a. Ejemplo 2.8. Utilizamos
para describir el procesamiento de la entrada 00101 por el AFN del ejemplo 2.7.
Es decir para calcular D(S,a) nos fijamos en todos los estados p de S, vemos a qu estados de N pasan desde p con la entrada a, y calculamos la unin de todos estos estados. Ejemplo 2.10. Paso del AFN del ejemplo 2.7 a AFD. Dado que el conjunto de estados de N es {q0, q1, q2}, la construccin del subconjunto da como resultado un AFD con 23 = 8 estados, correspondientes a todos los subconjuntos de estos tres estados.
La tabla de transiciones pertenece a un AFD. Tanto las entradas de la tabla como los estados son conjuntos. Para clarificar se pueden emplear nuevos nombres para estos estados. Los estados que no sean accesibles partiendo desde el estado de inicio se pueden eliminar. El AFD final slo tiene tres estados, que es el mismo nmero de estados del AFN. Sin embargo, el AFD tiene seis transiciones frente a las cuatro del AFN. Teorema 2.11. Si D = (QD, , D, {q0}, FD) es el AFD construido a partir del AFN N = (QN, , N, q0, FN) mediante la construccin de subconjuntos, entonces L(D) = L(N). Teorema 2.12. Un lenguaje L es aceptado por algn AFD si y slo si L es aceptado por algn AFN.
El enunciado formal de lo que hacen los estados de N es: 1. N se encuentra en el estado q0 despus de leer cualquier secuencia de entrada w. 2. N se encuentra en el estado qi, para i = 1, 2,, n, despus de leer la secuencia de entrada w si y slo si el smbolo isimo del final de w es 1; es decir, w es de la forma x1a1a2ai-l, donde los aj son los smbolos de cada entrada. Con este lenguaje para un AFN de 3 estados (el 2 trmino desde el final es un 1), obtendramos un AFD de 2 3-1 estados cuya conversin sera: q0 q1 *q2 0 {q0} {q2} 0 1 {q0, q1} {q2} 0 {q0} {q0, q1} {q0, q2} {q0, q1,q2} 0 {q0} {q0, q2} {q0} {q0, q2} 1 {q0, q1} {q0, q1,q2} {q0, q1} {q0, q1,q2}
Con este lenguaje se observa adems El principio de las sillas, del que se deduce que si un autmata tiene n estados y reconoce de la entrada una cadena de n+m smbolos entonces, el autmata forzosamente deber contener bucles. Estados muertos y AFD sin ciertas transiciones En ocasiones, se disea un AFD para que deje de funcionar de cualquier estado para cualquier smbolo, en lugar de ("muera") en situaciones en las que se sabe que es imposible que exigir que tenga exactamente una transicin para cada cualquier extensin de la secuencia de entrada sea aceptada. Este entrada. autmata es en realidad un AFN. Si utilizamos la construccin de subconjuntos para convertirlo en un AFD, el autmata parece prcticamente el mismo, pero incluye un estado muerto. Se corresponde con 0, el conjunto vaco de estados del autmata. Podemos aadir un estado muerto a cualquier autmata que no tenga ms de una transicin para cualquier estado y smbolo de entrada. As, aadimos una transicin al estado muerto desde cualquier otro estado q, para todos los smbolos de entrada para los que q no tenga ninguna otra transicin. El resultado ser un AFD en sentido estricto. Por esto, en ocasiones, se denominar autmata a un AFD que tenga a lo sumo una transicin saliendo