El autmata finito es un modelo matemtico de un sistema, con entradas y
salidas discretas. El sistema puede estar en cualquiera de un nmero finito de configuraciones o estados.
El estado del sistema resume la informacin concerniente a entradas anteriores y que es necesaria para determinar el comportamiento del sistema para entradas posteriores.
Un autmata finito tiene un conjunto de estados y su control pasa de un estado a otro en respuesta a las entradas externas.
El propsito de un estado es el de recordar la parte relevante del historial del sistema. Puesto que slo existe un nmero finito de estados, generalmente, no es posible recordar el historial completo, por lo que el sistema debe disearse cuidadosamente, con el fin de recordar lo que es importante y olvidar lo que no lo es. La ventaja de disponer de slo un nmero finito de estados es que podemos implementar el sistema mediante un conjunto fijo de recursos.
El mecanismo de un elevador es un ejemplo de un sistema de estados finitos. El mecanismo no recuerda todas las demandas previas de servicio, sino solo el piso en el que se encuentra, la direccin de movimiento (hacia arriba o hacia abajo) y el conjunto de demandas de servicio aun no satisfechas.
2.1 DEFINICION FORMAL Un autmata finito (AF) consiste en un conjunto de estados y un conjunto de transiciones de estado a estado, que se da sobre smbolos tomados de un alfabeto . Para cada smbolo de entrada existe exactamente una transicin a partir de cada estado.
Un estado, por lo general denotado como q 0 , es el estado inicial con el que el autmata comienza. Algunos estados estn designados como final o de aceptacin.
A un AF se le asocia un grafo dirigido, conocido como diagrama de transiciones.
Denotaremos formalmente a un autmata finito por el conjunto de 5 cantidades (Q, ,,q0,F) EN DONDE:
Q: Es un conjunto finito de estados.
: Es un alfabeto de entrada finito.
: Es la funcin de transicin entre cada estado
q0: Es un elemento de Q, es el estado inicial.
F: Es el conjunto de estados finales.
Diagramas de transiciones Un diagrama de transiciones de un AF 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 un flecha dirigida al estado inicial q0, 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. 2.3 CLASIFICACION AUTOMATA FINITO (AF) AUTOMATA FINITO DETERMINISTA (AFD) AUTOMATA FINITO NO DETERMINISTA (AFN) AUTOMATA FINITO DETERMINISTA Un autmata finito se dice que es determinista cuando no puede encontrarse en mas de un estado a un mismo tiempo. Un autmata finito determinista consta de:
1. 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 . En nuestra representacin grfica informal del autmata, se ha representa mediante arcos entre los estados y las etiquetas sobre los arcos.
4. Un estado inicial q0, uno de los estados de Q.
5. Un conjunto de estados finales o de aceptacin F. El conjunto F es un subconjunto de Q. Cmo procesa cadenas un AFD Lo primero que tenemos que entender sobre un AFD es cmo decide si aceptar o no una secuencia de smbolos de entrada. El lenguaje del AFD es el conjunto de todas las cadenas que acepta.
Supongamos que a1a2 an es una secuencia de smbolos de entrada.
Comenzaremos con el AFD en el estado inicial, q0. Consultamos la funcin de transicin , por ejemplo (q0,a1) = q1 para hallar el estado al que pasar el AFD A despus de procesar el primer smbolo de entrada a1. A continuacin procesamos el siguiente smbolo de entrada, a2, evaluando (q1,a2); supongamos que este estado es q2. Continuamos aplicando el mismo procedimiento para hallar los estados q3,q4, . . . ,qn tal que (qi1,ai) = qi para todo i. Si qn pertenece a F, entonces la entrada a1a2 an se acepta y, si no lo es se rechaza Especificamos formalmente un AFD que acepte nicamente todas las cadenas de ceros y unos que contengan la secuencia 01 en cualquier posicin de la cadena. Podemos describir este lenguaje L como sigue:
{w | w tiene la forma x 01y para algunas cadenas x e y constan slo de ceros y unos}
En primer lugar, sabemos que su alfabeto de entrada es = {0,1}. Tiene un determinado conjunto de estados, Q, siendo uno de ellos, por ejemplo q0, el estado inicial.
Para decidir si 01 es una subcadena de la entrada, A tiene que recordar: 1. Ha ledo ya una subcadena 01? En caso afirmativo, aceptar cualquier secuencia de entradas futura; es decir, slo se encontrar en estados de aceptacin.
2. Todava no ha ledo la secuencia 01, pero la entrada ms reciente ha sido un 0, de manera que si ahora lee un 1, habr ledo la subcadena 01 y podr aceptar cualquier cosa que lea de ah en adelante?
3. Todava no ha ledo la secuencia 01, pero la ltima entrada no existe (acaba de iniciarse) o ha sido un 1? En este caso, A no puede aceptar la entrada hasta que no lea un 0 seguido inmediatamente de un 1. EJEMPLO AUTOMATA FINITO NO DETERMINISTA DEFINICION FORMAL 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 y devuelve un subconjunto de Q. Observe que 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. AUTOMATA FINITO NO DETERMINISTA 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. Por ejemplo, cuando el autmata se utiliza para buscar determinadas secuencias de caracteres (por ejemplo, Palabras clave) dentro de una cadena de texto larga, resulta til conjeturar que estamos al principio de una de estas cadenas y utilizar una secuencia de estados nicamente para comprobar la aparicin de la cadena, carcter por carcter. Un AFN acepta un lenguaje que tambin es aceptado por algunos AFD. Es decir, los AFN aceptan los lenguajes regulares, al igual que los AFD. Sin embargo, existen razones para estudiar los AFN: a menudo son ms compactos y fciles de disear que los AFD. 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, que denominaremos normalmente . La diferencia entre los AFD y los AFN se encuentra en el tipo de funcin .
En los AFN, es una funcin que toma un estado y smbolos de entrada como argumentos (al igual que la funcin de transicin del AFD), pero devuelve un conjunto de cero, uno o ms estados (en lugar de devolver exactamente un estado, como lo hacen los AFD). EJEMPLO Un autmata finito no determinista, cuyo trabajo consiste en aceptar todas y slo las cadenas formadas por ceros y unos que terminan en 01.