Vous êtes sur la page 1sur 11

Definicin formal Formalmente, un autmata finito es una 5-tupla (Q, , q0, , F) donde:6

es un conjunto finito de estados; es un alfabeto finito; es el estado inicial; es una funcin de transicin; es un conjunto de estados finales o de aceptacin.

Representacin como diagramas de estados

Este autmata finito est definido sobre el alfabeto ={0,1}, posee dosestados s1 y s2, y sus transicionesson (s1,0)=s2, (s1,1)=s1, (s2,0)=s1y (s2,1)=s2. Su estado inicial es s1, que es tambin su nico estado final. Los autmatas finitos se pueden representar mediante grafos particulares, tambin llamados diagramas de estados finitos, de la siguiente manera:

Los estados Q se representan como vrtices, etiquetados con su nombre en el interior. Una transicin desde un estado a otro, dependiente de un smbolo del alfabeto, se representa mediante una arista dirigida que une a estos vrtices, y que est etiquetada con dicho smbolo.

El estado inicial q0 se caracteriza por tener una arista que llega a l, proveniente de ningn otro vrtice. El o los estados finales F se representan mediante vrtices que estn encerrados a su vez por otra circunferencia.

Representacin como tabla de transiciones Artculo principal: Tabla de transicin de estados. Otra manera de describir el funcionamiento de un autmata finito es mediante el uso de tablas de transiciones o matrices de estados. Dos posibles tablas para el ejemplo de la imagen anterior podran ser las siguientes: salida smbolo llegada qQ (q,) Q 0 1 s1 0 s2

*s1 s2 s1

s1

s1 s2 s1 s2

s2

s1

s2

s2

La primera representa explcitamente los parmetros y el valor que toma cada ocurrencia de la funcin de transicin.7 La segunda es ms compacta, y marca con una flecha el estado inicial, y con un asterisco los estados finales. Funcionamiento

El esquema general es el de una cinta lectora que avanza slo hacia delante y de a una celda, segn lafuncin de transicin. En el comienzo del proceso de reconocimiento de una cadena de entrada, el autmata finito se encuentra en el estado inicial y a medida que procesa cada smbolo de la cadena va cambiando de estado de acuerdo a lo determinado por la funcin de transicin. Cuando se ha procesado el ltimo de los smbolos de la cadena de entrada, el autmata se detiene en el estado final del proceso. Si el estado final en el que se detuvo es un

estado de aceptacin, entonces la cadena pertenece al lenguaje reconocido por el autmata; en caso contrario, la cadena no pertenece a dicho lenguaje. Note que el estado inicial de un autmata finito siempre es nico, en tanto que los puede contener ms de

estados finales pueden ser ms de uno, es decir, el conjunto estado inicial. Generalizacin de la funcin de transicin

un elemento. Tambin puede darse el caso de que un estado final corresponda al mismo

Si es un alfabeto, entonces se denota * al conjunto de todas las cadenas de caracteres o palabras que se pueden conformar con dicho alfabeto. Una funcin de transicin se puede generalizar a una funcin *, que opera sobre estados y secuencias de smbolos, en lugar de smbolos individuales del alfabeto. As, esta nueva funcin de transicin se define , permitiendo caracterizar los autmatas de manera ms abreviada y sin perder expresividad.6 La funcin * puede expresarse tambin de manera recursiva, definiendo para toda cadena x *, todo smbolo a , y un estado q Q:6

, que es la base inductiva, siendo la cadena vaca, y , que es la induccin propiamente tal.

Se llama configuracin de un autmata finito a un "instante" en el cmputo de la mquina; es decir, al estado actual en que se encuentra dicho cmputo, junto con la palabra que ha sido procesada hasta ese momento. Formalmente, se define como un par ordenado (q, x) Q *. De este modo, se puede definir adems laconfiguracin inicial del autmata, como el par (q0,x), donde x es la entrada; y la configuracin final, como el par (q,), con q F. De este modo, el lenguaje regular aceptado por un autmata finito A puede denotarse como L(A) = {w; *(q0,w) F}, es decir, como el conjunto de todas las configuraciones iniciales que conllevan a estados finales.

Autmata finito determinista

AFD que reconoce el lenguaje regular conformado exclusivamente por las cadenas con un nmero par de ceros y par de unos. Artculo principal: Autmata finito determinista. Un autmata finito determinista (abreviado AFD) es un autmata finito que adems es un sistema determinista; es decir, para cada estado q Q en que se encuentre el autmata, y con cualquier smbolo a del alfabeto ledo, existe siempre a lo ms una transicin posible (q,a). En un AFD no pueden darse ninguno de estos dos casos:

Que existan dos transiciones del tipo (q,a)=q1 y (q,a)=q2, siendo q1 q2; Que existan transiciones del tipo (q,), salvo que q sea un estado final, sin transiciones hacia otros estados.

Un ejemplo interesante de autmatas finitos deterministas son los tries. Autmata finito no determinista

AFND con transiciones (q0,b)=q0y (q0,b)=q1, que acepta el lenguaje regular sobre el alfabeto {a,b} conformado por todas las palabras que terminan en b; es decir, que equivale a la expresin regular(a|b)*b+.

AFND- a cuyo estado 2 se puede acceder pasando por el estado 3, sin procesar smbolos de entrada. Artculo principal: Autmata finito no determinista. Un autmata finito no determinista (abreviado AFND) es aquel que, a diferencia de los autmatas finitos deterministas, posee al menos un estado q Q, tal que para un smbolo a del alfabeto, existe ms de una transicin (q,a) posible. Haciendo la analoga con los AFDs, en un AFND puede darse cualquiera de estos dos casos:

Que existan transiciones del tipo (q,a)=q1 y (q,a)=q2, siendo q1 q2; 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 autmata es un autmata finito no determinista con transiciones vacas otransiciones (abreviado AFND-). Estas transiciones permiten al autmata cambiar de estado sin procesar ningn smbolo de entrada. Formalmente, se distingue de la 5-tupla que define a un autmata finito determinista en su funcin de transicin. Mientras en un AFD esta funcin se define de la siguiente manera:

en un AFND se define como:

Para el caso de los AFND-, se suele expresar la funcin de transicin de la forma:

donde P(Q) es el conjunto potencia de Q.

Esto significa que los autmatas finitos deterministas son un caso particular de los no deterministas, puesto que Q pertenece al conjunto P(Q). La interpretacin que se suele hacer en el cmputo de un AFND es que el automta puede estar en varios estados a la vez, generndose una ramificacin de las configuraciones existentes en un momento dado. Otra interpretacin puede ser imaginar que la mquina "adivina" a qu estado debe ir, eligiendo una transicin entre varias posibles. Note finalmente que en un autmata finito no determinista podemos aceptar la existencia de ms de un nodo inicial, relajando an ms la definicin original. [editar]Equivalencias entre autmatas finitos Se dice que dos autmatas finitos son equivalentes, si ambos reconocen el mismo lenguaje regular. Toda expresin regular (que define a su vez un lenguaje regular) puede ser expresada como un autmata finito determinista,8 y viceversa.9 Dada una expresin regular, es posible construir un AFND- que reconozca dicho lenguaje, por ejemplo mediante el algoritmo de Thompson. Luego, todo AFND- puede transformarse en un AFND equivalente, as como todo AFND puede transformarse en un AFD equivalente, mediante el mtodo llamado construccin de conjunto potencia. As, por transitividad, para cualquier autmata finito no determinista siempre existe un autmata finito determinista equivalente, y viceversa.3 Normalmente en el diseo de autmatas finitos, lo primero que se hace es construir un AFND-, que es el ms sencillo de construir, por poseer menos restricciones en su funcin de transiciones. Luego dicho autmata se reduce a un AFND, y finalmente a un AFD, el cual por sus caractersticas deterministas ya puede ser implementado sin problemas

utilizando un lenguaje de programacin. [editar]Conversin de un AFND- a un AFND La conversin de un AFND- en un AFND se basa en el concepto de clausura-, que corresponde a una clausura transitiva contextualizada en la teora de autmatas.

Dado un estado q, se llama clausura-(q) al conjunto de todos los estados a los que se puede acceder a partir de q, procesndose a lo ms un nico smbolo de la entrada. Puede definirse recursivamente de la siguiente manera:10

(Base inductiva) Para todo estado q, q clausura-(q). (Induccin) Dados dos estados p y r, si p clausura-(q) y r (p,), entonces r clausura-(q).

El algoritmo para eliminar las transiciones vacas es el siguiente: 1. Se calcula la clausura- del estado inicial, formndose un

conjunto A que corresponder al estado inicial del nuevo autmata. 2. Para cada smbolo del alfabeto, se verifican los estados alcanzables a partir de algn estado contenido en A, y se calcula la clausura- de dichos estados alcanzables. Si dichas clausuras producen nuevos conjuntos distintos de A, estos sern nuevos estados a los que se acceder a partir de A y del smbolo correspondiente. 3. Se repite lo anterior para cada nuevo conjunto, hasta que no existan transiciones posibles para ningn smbolo del alfabeto. Ejemplo Eliminacin de las transiciones vacas de un AFND-.

AFND- inicial.

En este caso se obtiene un AFD, que es un caso particular de AFND. En el ejemplo de la figura, se tendr inicialmente: clausura-(1) = {1,2,3,4,6} = A Para A:

Para el smbolo a: 4 va a 5, y clausura-(5) = {5,7} = B. Para el smbolo b: no existen transiciones posibles. Para B: Para el smbolo a: no existen transiciones posibles. Para el smbolo b: 5 va a 6, y clausura-(6) = {6} = C. Para C: Para el smbolo a: no existen transiciones posibles. Para el smbolo b: no existen transiciones posibles. Con esto concluye el algoritmo y se obtiene el autmata de la figura. En algunos casos puede ocurrir que al quitar las transiciones psilon obtengamos directamente un AFD, pues la nica razn de nodeterminismo era justamente la presencia de dichas transiciones. [editar]Conversin de un AFND a un AFD Artculo principal: Construccin de subconjuntos. Conversin de un AFND a unAFD.

AFND inicial.

Proceso de conversin.

AFD final. Todo AFND (QN, , q0, N, FN) puede convertirse en un AFD (QD, , q0, D, FD) equivalente, que mantiene el alfabeto y el estado inicial q0 originales. La conversin implica pasar por un AFD intermedio con estados y transiciones redundantes, que al no ser accesibles a partir del estado inicial, son eliminados para obtener el AFD definitivo. Para definir el AFD intermedio, se deben seguir los siguientes pasos: 1. Primero se redefine el conjunto de estados QN = {q0, q1, ..., qm} original, como uno conformado por todos los subconjuntos de QN. Los nuevos estados finales sern todos aquellos estados que contengan a alguno de los estados finales originales. 2. Posteriormente, se redefine el conjunto de transiciones original, por transiciones del tipo D(S,a), donde a, y S es la unin de todos los estados q de QN para los cuales exista la transicin N(q,a). 3. Por ltimo, se eliminan los estados inaccesibles o inalcanzables (junto con sus transiciones de salida), es decir, aquellos a los que no se puede acceder a partir del estado inicial. Luego de esta depuracin, se obtiene el AFD final. Ejemplo En las figuras de ejemplo, como el AFND inicial posee tres estados (q0, q1, q2), entonces el AFD intermedio poseer siete ({q0}, {q1}, {q2}, {q0, q1}, {q0, q2}, {q1, q2}, {q0, q1, q2}), y como el estado final original era q2, entonces los estados finales del AFD intermedio son {q2}, {q0, q2}, {q1, q2} y {q0, q1, q2}. Con respecto a las nuevas transiciones, note por ejemplo que se mantuvo la transicin N(q0,1)=q0, siendo ahora llamada D({q0},1)={q0}; sin embargo, dado que originalmente se daba que N(q0,0)=q0 y N(q0,0)=q1, ahora estas dos transiciones fueron reemplazadas por D({q0},0)={q0, q1}. Para terminar, note que los estados {q1}, {q2} y {q1, q2} no estn conectados con el resto del autmata que posee el estado inicial; por tanto, son eliminados. Asimismo es eliminado tambin {q0, q1, q2}, pues a pesar de estar conectado con el resto del autmata, no es

accesible a partir de {q0}. As finalmente, eliminando estos cuatro estados, as como sus respectivas transiciones, se obtiene el AFD buscado. [editar]Minimizacin de un AFD Dos estados de un autmata finito determinista son estados

equivalentes si al unirse en un slo estado, pueden reconocer el mismo lenguaje regular que si estuviesen separados. Esta unin de estados implica la unin tanto de sus transiciones de entrada como de salida. Si dos estados no son equivalentes, se dice que son estados distinguibles. Un estado final con un estado no-final nunca sern equivalentes. Un AFD est minimizado, si todos sus estados

son distinguibles y alcanzables. Un algoritmo de minimizacin de AFD es el siguiente: 1. Eliminar los estados inaccesibles del autmata. 2. Construir una tabla con todos los pares (p, q) de estados restantes. 3. Marcar en la tabla aquellas entradas donde un estado es final y el otro es no-final, es decir, aquellos pares de estados que son claramente distinguibles. 4. Para cada par (p, q) y cada smbolo a del alfabeto, tal que r = (p,a) y s = (q,a): 1. Si (r, s) ya ha sido marcado, entonces p y q tambin son distinguibles, por lo tanto marcar la entrada (p, q). 2. De lo contrario, colocar (p, q) en una lista asociada a la entrada (r, s). 5. Agrupar los pares de estados no marcados. Luego del tercer paso, si la tabla creada queda completamente marcada, entonces el AFD inicial ya era mnimo. La complejidad computacional del problema de minimizar un AFD es polinomial. De hecho, existen algoritmos ms eficientes an que el mostrado en este artculo (aunque menos intuitivos).11 Sin embargo, el problema de minimizar un autmata
12 13

finito no

determinista es NP-

completo y PSPACE-completo.

Ejemplo Minimizacin de un AFD.

AFD con estados redundantes.

AFD minimizado. En la primera figura del ejemplo, se muestra un autmata con el estado inaccesible d, el cual puede eliminarse inmediatamente. Luego se construye la tabla de pares de estados, y a continuacin se marcan, de acuerdo a la tercera lnea del algoritmo, las filas y columnas correspondientes a los estados finales c y g, salvo la celda que representa el par (c,g), puesto que al ser ambos estados finales, pueden ser estados equivalentes. Posteriormente, se marcan las celdas restantes de acuerdo a la cuarta lnea del algoritmo, notando que el par (b, f) queda asociado con el par (c, g), y as finalmente se obtiene el autmata final, agrupando los estados b y f, as como c y g, tal y como se muestra en la segunda figura del ejemplo.

Tablas para la bsqueda de estados equivalentes b c e f g abcef b c e f g abcef b c e f g abcef

Vous aimerez peut-être aussi