5. Lenguaje aceptado por unAF 6. Equivalencia entre aut´omatas finitos
7. Aut´omatas finitos, expresiones regulares y gram´aticas regulares 8. Minimizaci´on de un AFD
9. Aplicaciones: an´alisis l´exico
1. Arquitectura de un aut´omata finito (AF)
Un aut´omata finito es una estructura matem´atica que representa un sistema o m´aquina abstracta cuya arquitectura puede verse en la figura 3.1
Cinta de entrada 0 1 0 0 1 Control de estados finito 6 Cabezal de lectura Figura 3.1: Arquitectura de un AF
Lacinta de entrada(que se extiende infinitamente hacia la derecha) est´a dividida en celdas, cada una de las cuales es capaz de almacenar un s´olo s´ımbolo de un cierto alfabeto. La m´aquina es capaz de leer los s´ımbolos de esta cinta de izquierda a derecha por medio de uncabezal de lectura. Cada vez que se lee un s´ımbolo, el cabezal de lectura se mueve a la siguiente celda a la derecha y la m´aquina efect´ua un cambio de estado o transici´on. Esta transici´on est´a determinada por
elmecanismo de control (que contiene un n´umero finito de estados), programado para conocer cual debe ser el nuevo estado, que depender´a de la combinaci´on del estado actual y el s´ımbolo de entrada le´ıdo.
Los aut´omatas finitos pueden considerarse como mecanismos aceptadores o reconocedores de palabras. De manera informal decimos que un aut´omata finito aceptar´a una palabra de entrada si, comenzando por un estado especial llamado estado inicial y estando la cabeza de lectura apuntando al primer s´ımbolo de la cadena, la m´aquina alcanza unestado final o de aceptaci´on despu´es de leer el ´ultimo s´ımbolo de la cadena.
2. Aut´omatas finitos deterministas
Unaut´omata finito determinista(AF D) se define como una quintuplaM = (Q, V, δ, q0, F),
donde:
Qes un conjunto finito de estados V es elalfabeto de entrada
q0 es elestado inicial
F ⊆Qes el conjunto de estados finales δ :Q×V −→Q es lafunci´on de transici´on
El nombre “determinista” viene de la forma en que est´a definida la funci´on de transici´on: si en un instantetla m´aquina est´a en el estadoqy lee el s´ımbolo aentonces, en el instante siguiente t+ 1 la m´aquina cambia de estado y sabemos con seguridad cual es el estado al que cambia, que es precisamenteδ(q, a).
ElAF Des inicializadocon una palabra de entrada wcomo sigue: 1. wse coloca en la cinta de entrada, con un s´ımbolo en cada celda 2. el cabezal de lectura se apunta al s´ımbolo m´as a la izquierda dew 3. elestado actual pasa a ser q0
Una vez que se ha inicializado el AF D, comienza su “ejecuci´on” sobre la palabra de entrada. Como cualquier computador tiene unciclo de ejecuci´on b´asico:
1. se lee els´ımbolo actual, que es el apuntado por el cabezal de lectura. Si el cabezal apunta a una celda vac´ıa entonces el AF D termina su ejecuci´on, aceptando la palabra en caso de que el estado actual sea final y rechazando la palabra en caso contrario. Esto ocurre cuando se ha le´ıdo toda la palabra de entrada, y se produce una situaci´on similar a tener una condici´on “fin de fichero” en la ejecuci´on de un programa
2. se calcula el estado siguiente a partir del estado actual y del s´ımbolo actual seg´un la funci´on de transici´on, esto es,δ(estado actual, simbolo actual) =estado siguiente 3. el cabezal de lectura se mueve una celda a la derecha
4. el estado siguiente pasa a ser el estado actual y vuelve al paso 1
La funci´on de transici´on de unAF Dse puederepresentar de dos formas: mediante una tabla de transici´on o mediante un diagrama de transici´on.
Tabla de transici´on
Cada fila corresponde a un estadoq∈Q El estado inicial se precede del s´ımbolo→
Cada estado final se precede del s´ımbolo #
Cada columna corresponde a un s´ımbolo de entradaa∈V En la posici´on (q, a) est´a el estado que determine δ(q, a)
Diagrama de transici´on
Los nodos se etiquetan con los estados
El estado inicial tiene un arco entrante no etiquetado Los estados finales est´an rodeados de un doble c´ırculo
Habr´a un arco etiquetado conadesde el nodoqi alqj siδ(qi, a) =qj
Ejemplo 3.1 Supongamos que tenemos el aut´omata finito determinista dado por M = ({q0, q1, q2},{0,1}, δ, q0,{q1})
donde la funci´on δ:{q0, q1, q2} × {0,1} −→ {q0, q1, q2} viene dada por
δ(q0,0) =q0 δ(q0,1) =q1
δ(q1,0) =q0 δ(q1,1) =q2
δ(q2,0) =q2 δ(q2,1) =q1
La tabla de transici´on correspondiente a este aut´omata ser´a: δ 0 1
→q0 q0 q1
# q1 q0 q2
q2 q2 q1
y el diagrama de transici´on correspondiente se muestra en la figura 3.2.
q0 q1 q2 - µ ª 0 0 0 1 1 1 ? = > ?
Figura 3.2: Diagrama de transici´on del ejemplo 3.1
¨ §
¥ ¦
Nota El diagrama de transici´on de un AF D tiene por cada nodo un s´olo arco etiquetado con cada uno de los s´ımbolos del alfabeto. Algunos autores consideran que la funci´on de transici´on puede serparcial, es decir, no estar definida para alg´un δ(q, a). En ese caso se dice que el AF D es incompleto, y en el diagrama de tran- sici´on faltar´ıan los arcos correspondientes a los casos no definidos de la funci´on de transici´on. Nosotros consideraremos que losAF Ds soncompletos.
3. Aut´omatas finitos no deterministas
Un aut´omata finito no determinista (AF N D) es una quintupla M = (Q, V,∆, q0, F)
donde todos los componentes son como en los AF Ds, excepto la funci´on de transici´on que se define ahora como:
∆ :Q×V −→ P(Q)
dondeP(Q) denota el conjunto de las partes deQ (o conjunto potencia 2Q).
El hecho de que el codominio de la funci´on de transici´on seaP(Q) es lo que a˜nade esta carac- ter´ıstica de “no determinismo”: a partir del estado actual y del s´ımbolo actual de entrada no se puede determinar de forma exacta cu´al ser´a el estado siguiente. Por ejemplo, podemos tener ∆(q, a) ={q1, q2, . . . , qm}y esto indica que dado el estado actualq y el s´ımbolo de entradaa, el estado siguiente puede ser cualquier estado entreq1 yqm.Tambi´en puede darse el caso de que ∆(q, a) =∅, lo que indica que el estado siguiente no est´a definido.
Intuitivamente, unAF N D acepta una palabra de entrada wsiempre que sea posible comenzar por el estado inicial y que exista una secuencia de transiciones que nos lleven a consumir la palabra y acabe el aut´omata en un estado final. Puede que tengamos otras secuencias de transiciones que no acaben en estado final, pero basta que exista una que acabe en estado final para que la palabra sea aceptada.
LosAF N Dtambi´en se representan mediante tablas o diagramas de transici´on. En el diagrama de transici´on, el no determinismo se descubre porque hay alg´un nodo del que parten dos o m´as arcos etiquetados con el mismo s´ımbolo del alfabeto, o falta alg´un arco para alg´un s´ımbolo del alfabeto. En la figura 3.3 podemos ver un ejemplo de tabla y diagrama de transici´on de un AF N D. q0 {q0, q3} {q0, q1} q0 q3 q4 q1 q2 ¾ - - ? ? a,b a,b a,b a a b b q1 q2 q3 ∅ {q2} {q2} {q2} ∅ {q4} q4 {q4} {q4} a b δ
Tabla de transici´on Diagrama de transici´on # # - ? ? - Figura 3.3: Ejemplo de AF N D