La palabra autmata evoca algo que pretende imitar las funciones propias de los seres vivos, especialmente relacionadas con el movimiento, por ejemplo, el tpico robot antropomorfo. En el campo de los Traductores, Procesadores, Compiladores e Intrpretes, lo fundamental no es la simulacin del movimiento, sino la simulacin de procesos para tratar informacin. La informacin se codifica en cadenas de smbolos, y un autmata es un dispositivo que manipula cadenas de smbolos que se le presentan a su entrada, produciendo otras tiras o cadenas de smbolos a su salida. El autmata recibe los smbolos de entrada, uno detrs de otro, es decir secuencialmente. El smbolo de salida que en un instante determinado produce un autmata, no slo depende del ltimo smbolo recibido a la entrada, sino de toda la secuencia o cadena, que ha recibido hasta ese instante. Todo lo anterior conduce a definir un concepto fundamental: estado de un autmata. El estado de un autmata es toda la informacin necesaria en un momento dado, para poder deducir, dado un smbolo de entrada en ese momento, cual ser el smbolo de salida. Es decir, conocer el estado de un autmata, es lo mismo que conocer toda la historia de smbolos de entrada, as como el estado inicial, estado en que se encontraba el autmata al recibir el primero de los smbolos de entrada.
2.1 Definicin formal de autmatas: Un autmata finito o mquina de estado finito es un modelo matemtico de un sistema que recibe una cadena constituida por smbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autmata reconoce. Formalmente, un autmata finito (AF) puede ser descrito como una 5-tupla (Q, , o, s, F ) donde: Q es un conjunto de estados; es un alfabeto de entrada; o es una funcin de transicin o: Q x ( {c}) (Q), donde representa a la cadena vaca y (Q) es el conjunto potencia del conjunto de estados; q e Q es el estado inicial; F _ Q es un conjunto de estados de aceptacin o finales.
Descripcin informal de su funcionamiento En el comienzo del proceso de reconocimiento de una cadena, el AF 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. Si el estado en el que se detuvo es un estado de aceptacin o final, entonces la cadena pertenece al lenguaje reconocido por el autmata, caso contrario, la cadena no pertenece a dicho lenguaje.
2.2 Representacin de autmatas: Los autmatas se pueden representar mediante: Tabla de transiciones Diagrama de transiciones
2.2.1. Tabla de transiciones: En Teora de autmatas y Lgica secuencial, una tabla de transicin de estados es una tabla que muestra que estado (o estados en el caso de un Autmata finito no determinista) se mover la mquina de estados, basndose en el estado actual y otras entradas. Informtica Terica I-2013
Prof. Yariela Y. Hernndez 2
Esta tabla de transiciones contiene ,Q, filas, que corresponden a los estados y ,, columnas que corresponden a los smbolos del alfabeto. La componente (i, j ) es el estado o(q i , a j ) donde q i es el i-simo elemento de Q y a j es el j-simo elemento de , suponiendo que se ha realizado una ordenacin previa en dichos conjuntos. Ejemplo: Sea A = {(q 0 , q 1 , q 2 ), (a, b), o, q 0 , ((q 0 , q 1 )} con la siguiente definicin de o: o(q 0 , a) = q 0 o(q 1 , a) = q 2 o(q 0 , a) = q 0
o(q 0 , b) = q 1 o(q 1 , b) = q 1 o(q 2 , b) = q 2
La tabla de transiciones correspondientes es: a b q 0 q 0 q 1
q 1 q 2 q 1
q 2 q 2 q 2
2.2.1. Diagrama de transiciones o estados: UN DIAGRAMA DE TRANSICIONES es una coleccin finita de crculos, los cuales se pueden rotular para fines de referencia, conectados por flechas que reciben el nombre de ARCOS. Cada uno de estos arcos se etiqueta con un smbolo o categora de smbolos que podra presentarse en la cadena de entrada que se analiza. Uno de los crculos se designa con un apuntador, y representa una posicin inicial. Adems, por lo menos uno de los crculos se representa como un circulo doble; estos crculos dobles designan posiciones del diagrama en las cuales se ha reconocido una cadena valida. Decimos que una cadena de smbolos es aceptada por un diagrama de transiciones si los smbolos que aparecen en la cadena (de izquierda a derecha) corresponden a una secuencia de arcos rotulados que conducen del crculo designado por el apuntador a un circulo doble. Los crculos de un diagrama de transiciones representan posiciones, o estados, donde no podemos encontrar al evaluar una cadena de smbolos. Es comn llamar estados a los crculos de un diagrama de transiciones. l circulo de partida se llama estado inicial y los crculos dobles, estados de aceptacin.
Ejemplo 1: El siguiente es el diagrama de transiciones que representa la sintaxis de un nombre de variable Informtica Terica I-2013
Prof. Yariela Y. Hernndez 3
Ejemplo 2: El siguiente autmata, el cual, para el alfabeto S = { a, b, c } reconoce la cadena c, la cadena a, las cadenas que empiezan por a y acaban en a o en b y las que empiezan por a, seguidas de una serie de a de b y acaban en c.
Transformaciones de/a diagrama de estados Es posible dibujar un Diagrama de estados partiendo de la tabla. Una secuencia posible de pasos a seguir es la siguiente: 1. Dibuja crculos que representen los estados dados. 2. Para cada uno de los estados, mira la correspondiente fila y dibuja una flecha para cada uno de los estados destino. Pueden ser mltiples flechas para un mismo carcter de entrada si el autmata es un AF No Determinista. 3. Designa un estado como el estado inicial. El estado inicial est dado en la definicin formal del autmata. 4. Designa uno o ms estados como estado final (o tambin llamado de aceptacin). Esto tambin est dado en la definicin formal.
Informtica Terica I-2013
Prof. Yariela Y. Hernndez 4
2.3 Autmata finito determinista: Los Autmatas se caracterizan por tener un Estado inicial, reciben una cadena de smbolos, cambian de estado por cada elemento ledo o pueden permanecer en el mismo estado. Tambin tienen un conjunto de Estados Finales o Aceptables que nos indican si una cadena pertenece al lenguaje al final de una lectura. Existen tres tipos de autmatas finitos 1. Autmata finito determinista (AFD) Cada estado de un autmata de este tipo tiene una transicin por cada smbolo del alfabeto.
2. Autmata finito no determinista (AFND) Los estados de un autmata de este tipo pueden, o no, tener una o ms transiciones por cada smbolo del alfabeto. El autmata acepta una palabra si existe al menos un camino desde el estado q 0 a un estado final F etiquetado con la palabra de entrada. Si una transicin no est definida, de manera que el autmata no puede saber como continuar leyendo la entrada, la palabra es rechazada. Tiene la capacidad de estar en varios estados simultneamente.
3. Autmata finito no determinista, con transiciones (AFND-) Adems de ser capaz de alcanzar ms estados leyendo un smbolo, permite alcanzarlos sin leer ningn smbolo. Si un estado tiene transiciones etiquetadas con , entonces el AFND puede encontrarse en cualquier de los estados alcanzables por las transiciones , directamente o a travs de otros estados con transiciones . El conjunto de estados que pueden ser alcanzados mediante este mtodo desde un estado q, se denomina la clausura de q.
AFND con transiciones vacas
Informtica Terica I-2013
Prof. Yariela Y. Hernndez 5
Autmatas finitos deterministas: Un Autmata recibe secuencialmente una cadena de smbolos y cambia de estado por cada smbolo ledo o tambin puede permanecer en el mismo estado. Al final de la lectura el estado del Autmata nos indica si la cadena es aceptada o mejor dicho pertenece al Lenguaje que describe nuestra mquina. Si al final de leer todos los smbolos de entrada la mquina est en alguno de los estados Finales entonces esa cadena es aceptada, si el estado no es final entonces la cadena no pertenece al lenguaje. Un AFD o autmata finito determinista es aquel en cual para cada par (estado, smbolo) est perfectamente definido el siguiente estado al cual pasara el autmata, es decir para cualquier estado q en que se encuentre el autmata y con cualquier smbolo s del alfabeto ledo, existe exactamente una transicin que parte de q y esta etiquetada con s. Formalmente, un autmata finito determinista (AFD) es similar a un Autmata de estados finitos, representado con una 5-tupla (Q, , o, q, F ) donde: Q es un conjunto de estados; es un alfabeto de entrada; o es una funcin de transicin o: Q x Q Q q e Q es el estado inicial; F _ Q es un conjunto de estados de aceptacin o finales.
Al contrario de la definicin de autmata finito, este es un caso particular donde no se permiten transiciones vacas, el dominio de la funcin o es Q (con lo cual no se permiten transiciones desde un estado de un mismo smbolo a varios estados).
DIAGRAMA DE TRANSICIONES DETERMINISTA Para representar un programa en el mecanismo de control utilizamos un diagrama de transiciones cuyos estados representan los estados de la mquina y cuyos arcos representan una posible transicin de la mquina. Por lo tanto, los estados de inicio y aceptacin del diagrama corresponden a los estados de inicio y aceptacin del autmata. Un diagrama para un AFD aceptara si y solo si su estado inicial es tambin un estado de aceptacin.
El requisito del determinismo impone ciertas restricciones sobre los diagramas de transiciones que pueden aparecer en los programas para un autmata finito determinista. Se dice que un diagrama de transiciones es determinista si cumple las siguientes condiciones: En particular, cada estado de estos diagramas solo debe tener un arco que sale para cada smbolo del alfabeto; de lo contrario, una mquina que llega a este estado se enfrentara a una eleccin de cul debe ser el arco a seguir. Adems, dicho diagrama debe estar completamente definido, es decir debe existir por lo menos un arco para cada smbolo del alfabeto; de lo contrario, una mquina que llega a este estado puede enfrentarse a una situacin donde no pueda aplicarse ninguna transicin. Ejemplo 1: El siguiente diagrama no es determinista ya que no est completamente definido; no representa cual ser la accin que debe ocurrir si se recibe una letra o un dgito mientras se encuentra en el estado 2. Informtica Terica I-2013
Prof. Yariela Y. Hernndez 6
No obstante, el diagrama visto anteriormente no tiene ms de un arco de salida de un estado para cada smbolo y, por consiguiente, pueden modificarse para ajustarse a los requisitos del determinismo, aplicando lo siguiente: - Aadimos un estado que representara un papel de captacin global Para cada smbolo del alfabeto, dibujar un arco rotulado con dicho smbolo, que empieza y termina en este nuevo estado. - Agregamos arcos de los otros estados a este nuevo, hasta que cada uno de los estados sea el origen de un arco para cada smbolo del alfabeto. Diagrama modificado del ejemplo 1.
El funcionamiento de esta mquina es el siguiente: Inicialmente la memoria se encuentra en el estado q 0 , la cinta de entrada contiene la cadena a analizar por la mquina, escrita a partir de su primera posicin, y la cabeza de lectura se encuentra apuntando a esa primera posicin de la cinta. Suponiendo el autmata en un estado q y suponiendo que lee en la cinta de entrada un smbolo a, la memoria finita pasa al estado o(q,a) y mueve la cabeza lectora una posicin a la derecha. Cuando la cabeza lectora llega a la primera posicin vaca de la cinta significa que la cadena de entrada ha sido completamente analizada por la mquina. Se dice que la cadena es aceptada si el estado al que se llega finalmente pertenece al conjunto de estados finales F.