You are on page 1of 7

Captulo 2: Autmatas finitos. 2.1 Descripcin Informal de un autmata Finito (lectura, pag. 31) 2.

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

2 AUTOMATAS FINITOS 2.2 Autmata finito determinista (AFD)


Es aquel que slo puede estar en un nico estado despus de leer cualquier secuencia de entradas. "Determinista" hace referencia a que para cada entrada slo existe uno y slo un estado al que el autmata puede hacer la transicin a partir de su estado actual. Un autmata finito "no determinista", puede estar en varios estados a la vez. "Autmata finito" normalmente hace referencia a la variedad determinista.

2.2.1 Definicin de autmata finito determinista


Un autmata finito determinista consta de: l. Un conjunto finito de estados, a menudo designado como Q. 2. Un conjunto finito de smbolos de entrada, a menudo designado como . 3. Una funcin de transicin que toma como argumentos un estado y un smbolo de entrada y devuelve un estado. La funcin de transicin se designa habitualmente como . Se representa mediante arcos entre los estados y las etiquetas sobre los arcos. Si q es un estado y a es un smbolo de entrada, entonces (q,a) es el estado p tal que existe un arco etiquetado a que va desde q hasta p. 4. Un estado inicial, uno de los estados de Q. 5. Un conjunto de estados finales o de aceptacin F. F Q . Se usar la notacin de "quntupla" siguiente: A = (Q, , , q0, F) donde A es el nombre del AFD, Q es su conjunto de estados, son los smbolos de entrada, es la funcin de transicin, q0 es el estado inicial y F es el conjunto de estados finales.

2.2.2 Cmo procesa cadenas un AFD


El "lenguaje" del AFD es el conjunto de todas las cadenas que acepta. Si w es una cadena, y qn es el estado al que se llega despus de aplicar todas las entradas y transiciones, si qn pertenece a F, entonces la entrada w se acepta y, si no, se "rechaza". Ejemplo 2.1. AFD que acepte nicamente todas las cadenas de ceros y unos que contengan la secuencia 01 en cualquier posicin de la cadena. {w | w tiene la forma x01y donde x e y constan slo de ceros y unos} o {x01y | x e y son cadenas cualesquiera formadas por 0s y 1s} La especificacin completa del autmata A que acepta el lenguaje L de cadenas que contienen una subcadena 01 es: A = ({ q0 ,q1 ,q2},{0, 1}, ,q0, {q1} ), donde es la funcin de transicin: (q0 , 1) = q0, (q0, 0) = q2, (q2, 0) = q2, (q2 , 1) = q1, (q1, 0) = (q1, 1) = q1.

2.2.3 Notaciones ms simples para los AFD


Hay disponibles otras dos notaciones, adems de la de quntupla, que adems cuentan con una descripcin detallada de la funcin de transicin . Diagramas de transiciones Un diagrama de transiciones de un AFD, A = (Q, , , q0, F), es un grafo definido como sigue: a) Para cada estado de Q, existe un nodo. b) Para cada estado q de Q y cada smbolo de entrada a de , sea (q,a) = p. Entonces, el diagrama de transiciones tiene un arco desde el nodo q hasta el nodo p, etiquetado como a. Si existen varios smbolos de entrada que dan lugar a transiciones desde q hasta p, entonces el diagrama de transiciones puede tener un nico arco etiquetado con la lista de estos smbolos. c) Existe una flecha dirigida al estado inicial qo, etiquetada como Inicio. Esta flecha no tiene origen en ningn nodo. d) Los nodos correspondientes a los estados de aceptacin (los que pertenecen a F) estn marcados con un doble crculo. Los estados que no pertenecen a F tienen un crculo simple. Ejemplo 2.2. Diagrama de transicin del autmata del ejemplo 2.1.

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.

2.2.4 Extensin a cadenas de la funcin de transicin


Un AFD define un lenguaje: el conjunto de todas las cadenas que dan lugar a una secuencia de transiciones desde el estado inicial hasta un estado de aceptacin. En trminos del diagrama de transiciones, el lenguaje de un AFD es el conjunto de etiquetas ubicadas a lo largo de todos los caminos que van desde el estado inicial hasta cualquier estado de aceptacin. Definimos una funcin de transicin extendida que describir lo que ocurre cuando se parte de cualquier estado y se sigue cualquier secuencia de entradas. Si es la funcin de transicin, entonces la funcin de transicin extendida construida a partir de ser . La funcin de transicin extendida es una funcin que toma un estado q y una cadena w y devuelve un estado p (el estado al que el autmata llega partiendo del estado q y procesando la secuencia de entradas w). Definimos por induccin sobre la longitud de la cadena de entrada como sigue: BASE. (q, ) = q. Si partimos del estado q y no leemos ninguna entrada, entonces permaneceremos en el estado q. PASO INDUCTIVO. Supongamos que w es una cadena de la forma xa; es decir, a es el ltimo smbolo de w y x es la cadena formada por todos los smbolos excepto el ltimo. Por ejemplo, w = 1101 se divide en x = 110 y a = 1. Luego (q, w) = ( (q ,x) ,a). La idea es simple. Para calcular (q, w), en primer lugar se calcula (q, x), el estado en el que el autmata se encuentra despus de procesar todos los smbolos excepto el ltimo de la cadena w. Supongamos que este estado es p; es decir,

(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:

2.2.5 El lenguaje de un AFD


Ahora podemos definir el lenguaje de un AFD, A = (Q, , , q0, F). Este lenguaje se designa por L(A) y se define como: , es decir, el lenguaje de A es el conjunto de cadenas w que parten del estado inicial q0 y van hasta uno de los estados de aceptacin. Si L es L(A) para un determinado AFD A, entonces decimos que L es un lenguaje regular.

2.3 Autmatas finitos no deterministas


Un autmata finito "no determinista" (AFN) tiene la capacidad de estar en varios estados a la vez. Esta capacidad a menudo se expresa como la posibilidad de que el autmata "conjeture" algo acerca de su entrada. Los AFN aceptan los lenguajes regulares, al igual que los AFD.

2.3.1 Punto de vista informal de los autmatas finitos no deterministas


Al igual que el AFD, un AFN tiene un conjunto finito de estados, un conjunto finito de smbolos de entrada, un estado inicial y un conjunto de estados de aceptacin. Tambin dispone de una funcin de transicin , cuto tipo es la diferencia entre los AFD y los AFN. En los AFN, es una funcin que toma un estado y smbolos de entrada como argumentos (igual que en un AFD), pero devuelve un conjunto de cero, uno o ms estados. Ejemplo 2.6. Autmata finito no determinista, cuyo trabajo consiste en aceptar todas y slo las cadenas formadas por ceros y unos que terminan en 0l. El estado q0 es el estado inicial y podemos pensar que el autmata estar en dicho estado (quiz entre otros estados) siempre que no haya "conjeturado" que ya ha comenzado a leer el 01 final.

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.

2.3.3 Funcin de transicin extendida


Como para los AFD, necesitamos extender la funcin de transicin de un AFN a una funcin que tome un estado q y una cadena de smbolos de entrada w, y devuelva el conjunto de estados en los que el AFN se encontrar si se inicia en el estado q y procesa la cadena w. La idea se obtiene de la primera figura de la pgina; (q, w) es la columna de los estados encontrados despus de leer w, si q es el nico estado en la primera columna. Esta figura sugiere que (q0 ,001) = {q0 ,q2}. Base: Paso inductivo. Suponiendo w = xa, y :

Para calcular (q, w), suponiendo que w = xa, obtenemos primero estos estados que estn etiquetadas con a. Ejemplo 2.8. Utilizamos

(q, x), y despus seguimos todas las transiciones de

para describir el procesamiento de la entrada 00101 por el AFN del ejemplo 2.7.

2.3.4 El lenguaje de un AFN


Como hemos sugerido, un AFN acepta una cadena, w si es posible elegir cualquier secuencia de transiciones que pasan del estado inicial a cualquier estado de aceptacin. Aunque la misma w pueda llevar tambin a un estado de no aceptacin, o a ningn estado no tiene relevancia. Formalmente, si A = (Q, , , q0, F) es un AFN, entonces , es decir, L(A) es el conjunto de cadenas w pertenecientes a L* tal que (q0, w) contiene al menos un estado de aceptacin.

2.3.5 Equivalencia de autmatas finitos deterministas y no deterministas


Todo lenguaje que puede describirse mediante algn AFN tambin puede ser descrito mediante algn AFD. El AFD puede tener 2n estados mientras que el AFN ms pequeo para el mismo lenguaje tiene slo n estados, en la prctica el AFD tiene aproximadamente tantos estados como el AFN, aunque a menudo tiene ms transiciones. La demostracin de que los AFD pueden hacer lo que hacen los AFN implica una "construccin" importante conocida como construccin de subconjuntos. La construccin de subconjuntos se inicia a partir de un AFN N = (QN, , N, q0, FN) y su objetivo es la descripcin de un AFD D = (QD, , D, {q0}, FD) tal que L(D) = L(N). Los alfabetos de entrada de los dos autmatas son iguales y el estado inicial de D es el conjunto que contiene slo al estado inicial de N. Los otros componentes de D se construyen: - QD es el conjunto de los subconjuntos de QN; es decir, QD es el conjunto potencia de QN. Si QN tiene n estados, entonces QD tendr 2n estados. A menudo, no todos estos estados son accesibles a partir del estado inicial de QD. Los estados inaccesibles pueden ser "eliminados", por lo que el nmero de estados de D puede ser mucho menor que 2n. - FD es el conjunto de los subconjuntos S de QN tal que S FN 0. Es decir, FD est formado por todos los conjuntos de los estados de N que incluyen al menos un estado de aceptacin de N. - Para cada conjunto S QN y para cada smbolo de entrada a perteneciente a :

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.

2.3.6 Un caso desfavorable para la construccin de subconjuntos


Supongamos el lenguaje formado por el conjunto de todas las cadenas de ceros y unos tales que el smbolo n-simo contado desde el final de la cadena es 1. A partir de su AFN no se puede llegar a un AFD con los 2n estados accesibles, pero si se observa el crecimiento exponencial (2n-1) de los estados del AFD ms pequeo que es equivalente a un AFN de n estados.

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

2.6 Resumen del Captulo 2


+ Autmata finito determinista. Un AFD tiene un conjunto finito de estados y un conjunto finito de smbolos de entrada. Un estado se disea para que sea el estado inicial, y cero o ms estados para que sean estados de aceptacin. Una funcin de transicin determina cmo cambia el estado cada vez que se procesa un smbolo de entrada. + Diagramas de transiciones. Son adecuados para representar autmatas mediante un grafo en el que los nodos son los estados y los arcos se etiquetan con los smbolos de entrada, indicando las transiciones de dicho autmata. El estado inicial se designa mediante una flecha y los estados de aceptacin mediante crculos dobles. + Lenguaje de un autmata. El autmata acepta cadenas. Una cadena es aceptada si, comenzando por el estado inicial, la transicin causada por el procesamiento de los smbolos de dicha cadena, uno cada vez, lleva a un estado de aceptacin. En trminos del diagrama de transiciones, una cadena es aceptada si sus smbolos son las etiquetas de un camino que va desde el estado inicial hasta algn estado de aceptacin. + Autmata finito no determinista. El AFN difiere del AFD en que el primero puede tener cualquier nmero de transiciones (incluyendo cero) a los estados siguientes desde un estado dado para un determinado smbolo de entrada. + Construccin de subconjuntos. Si se tratan los conjuntos de un AFN como estados de un AFD, es posible convertir cualquier AFN en un AFD que acepta el mismo lenguaje. + Transiciones-. Podemos extender el AFN permitiendo transiciones para una entrada vaca, es decir, para ningn smbolo de entrada. Estos AFN extendidos puede convertirse en autmatas AFD que aceptan el mismo lenguaje. + Aplicaciones de bsquedas en texto. Los autmatas finitos no deterministas son una forma til de representar reconocedores de patrones que exploran un texto largo para localizar una o ms palabras clave. Estos autmatas pueden simularse directamente por software o pueden convertirse primero en un AFD, que a continuacin se simula.

You might also like