You are on page 1of 9

Teora de Autmatas I Autmatas finitos y lenguajes regulares

-1-

AUTMATAS FINITOS Y LENGUAJES REGULARES


- Autmatas finitos: reconocen lenguajes regulares. - Aplicacin ms importante: construccin de compiladores (analizadores lxicos). ANLISIS LXICO - Token: elemento del lenguaje (palabra reservada, nombre de variable, punto y coma, constante, etc). - Marcas de fin de cadena: delimitan los tokens. Diagrama de transicin de estados - Coleccin finita de crculos conectados por arcos. Crculos: estados. Estado inicial: marcado con un puntero. Estados finales o de aceptacin: marcados por crculos dobles. Estados intermedios. Arcos dirigidos: transiciones. Etiquetados con smbolos o categoras de smbolos. Se transita de un estado a otro tras recibir a la entrada el smbolo de la etiqueta. - Ejemplo:

Teora de Autmatas I Autmatas finitos y lenguajes regulares

-2-

- Proceso de reconocimiento de una cadena: Se parte del estado inicial (actual). Se lee la cadena smbolo a smbolo de izquierda a derecha. Por cada smbolo ledo se produce una transicin desde el estado actual a otro a travs de la flecha cuya etiqueta coincide con el smbolo ledo. La cadena es reconocida si tras realizar las transiciones correspondientes a la cadena completa se alcanza un estado de aceptacin. - Ejemplos: Cadena de entrada: i24 Transiciones: 1 i 3 2 3 4 3 : cadena acept ada Cadena de entrada: 18 Transiciones: 1 1 2 8 2 : cadena r echazada Tabla de transicin de estados - Matriz bidimensional cuyos elementos proporcionan el resumen de un diagrama de transiciones. Tantas filas como estados. Tantas columnas como smbolos de entrada. Columna adicional etiquetada con FDC para marcar los estados de aceptacin. - Conversin de diagrama de transicin a tabla de transicin: Si del estado i se pasa al estado j a travs de un arco de etiqueta n, rellenar la casilla (i,n) con j. Si no existe ninguna transicin desde el estado i con el smbolo n, marcar la casilla correspondiente con un estado de error. - Ejemplo: letra 3 error 3 dgito 2 error 3 FDC error error aceptar

1 2 3

Teora de Autmatas I Autmatas finitos y lenguajes regulares

-3-

AUTMATAS FINITOS DETERMINISTAS (AFD) - Definiciones: Alfabeto: conjunto finito de smbolos. Cadena: secuencia de smbolos de un alfabeto terminada por un smbolo de fin de cadena. Flujo de entrada a un autmata: cadenas analizadas. - AFD: mquina conceptual. Flujo de entrada: cinta de entrada con smbolos grabados. Proceso de reconocimiento: Cabeza lectora que avanza en un nico sentido. Mecanismo de control de transiciones. - Mecanismo de control en un AFD: Gobierna las transiciones de estado de la mquina en funcin del flujo de entrada. Se representa por un diagrama de transicin o una tabla de transicin. - AFD: mquina analizadora de cadenas que acepta las cadenas aceptadas por su diagrama de transicin, y rechaza las restantes. Finito: tiene un nmero finito de estados. Determinista: siempre existe una y slo una transicin posible. - AFD: M(S,,,i,F) S: conjunto finito de estados. : alfabeto de entrada. : funcin de transicin de estados: S x S. i: estado inicial. F: conjunto de estados de aceptacin: F S - ( x) = q p x q p, - Proceso de reconocimiento: x1x2 .. n L( ) s0s1s2..sn .x M .

x1 x2 xn i= s0 s1 s2 .. sn F .

j 0 j n ( j, j)= sj+1 s x - Cadena vaca (): aceptada por el AFD si y slo si i F. - Diagrama de transicin determinista: El diagrama est completamente definido: de cada estado sale un arco y slo uno con cada smbolo del alfabeto. Si el diagrama es no determinista, aadir un estado de rechazo de captacin global.

Teora de Autmatas I Autmatas finitos y lenguajes regulares

-4-

LMITES DE LOS AUTMATAS FINITOS DETERMINISTAS - Longitud de una cadena w: w - *: conjunto de cadenas de longitud finita que se pueden construir con . - Lenguaje L: subconjunto de * (L *). Las cadenas aceptadas por un AFD M(S,,,i,F) son un lenguaje: L(M) *. Lenguaje regular: aceptado por un AFD. Teorema 1.1 Para cualquier alfabeto y cualquier AFD M(S,,,i,F), existe un lenguaje distinto de L(M). Es decir: existen lenguajes que no pueden ser aceptados por ningn AFD. Teorema 1.2 Si un lenguaje regular contiene cadenas del tipo xnyn, con n arbitrariamente grande, tambin contiene cadenas del tipo xmyn, siendo m n. Lema de bombeo: si un AFD acepta un lenguaje L con un nmero infinito de cadenas, entonces aceptar una cadena uvw donde v>0 tal que uvnmL, siendo n>0.

Teora de Autmatas I Autmatas finitos y lenguajes regulares

-5-

AUTMATAS FINITOS NO DETERMINISTAS (AFND) - Son autmatas en cuyo diagrama de transicin existen varios arcos etiquetados con el mismo smbolo saliendo del mismo estado, o bien hay transiciones no existentes. - En un momento dado, en un AFND puede suceder lo siguiente: Existen varias transiciones posibles aplicables. No existe ninguna transicin aplicable (mquina no totalmente definida). - Las transiciones de los AFND pueden ser inciertas. - Un AFND acepta una cierta cadena si es posible que tras analizarla el autmata quede en uno de los estados de aceptacin. - AFND: M(S,,,i,F) S: conjunto finito de estados. : alfabeto de entrada. : subconjunto de S x x S. i: estado inicial. F: conjunto de estados de aceptacin: F S - ( x, p x q p, q) - Proceso de reconocimiento: x1x2 .. n L( ) s0s1s2..sn .x M .

x1 x2 xn i= s0 s1 s2 .. sn F .

j 0 j n ( j, j, j+1 ) s x s Teorema 1.3 Para cada AFND M(S,,,i,F) existe un AFD M(S,,,i,F) que acepta el mismo lenguaje, donde S'= ( no vacas. S) i = {i} S) S) si f si F} F' ( , F'= { f ( i i F es la coleccin de subconjuntos de S que contienen al menos un estado de F. : funcin SxSx, Si S, (Si,x) = {sS uSi(u,x,s)} (S,x) es el conjunto de estados de S a los que se puede llegar desde los estados de S a travs de un arco con etiqueta x. Teorema 1.4 Para cualquier alfabeto , los lenguajes aceptados por los AFD son los mismos que los aceptados por los AFND.

Teora de Autmatas I Autmatas finitos y lenguajes regulares

-6-

GRAMTICAS - Gramtica: cudrupla (V,T,S,R) donde V: conjunto de smbolos no terminales. T: conjunto de smbolos terminales (alfabeto) (T=). S: axioma o smbolo de inicio. SV. R: conjunto de reglas de produccin (reescritura) de la forma XYZW, donde X,Y,Z y W representan combinaciones cualesquiera de smbolos terminales y no terminales, con la restriccin de que en la parte izquierda de la regla debe haber al menos un smbolo no terminal. El lado derecho de una regla puede contener la cadena vaca. - Ejemplo: 1. 2. 3. 4. 5. 6. S ASB S A aAa A B Bb Bb

- Una gramtica genera una cadena de terminales si partiendo del axioma S y aplicando las reglas de reescritura se puede obtener una cadena de smbolos terminales. - Ejemplo de derivacin: S ASB AASBB AABB AaAaBB AaaBB aaBB aaBbB aabbB aabbb - Las gramticas generan lenguajes. GRAMTICAS REGULARES - Sus reglas de reescritura son de la forma Z yY Zx Z Teorema 1.5 Para cada gramtica regular G(V,,i,R) existe un autmata M(S,,,i,F) que reconoce el lenguaje generado por G, donde S=V F V, F={vi Vvi R} i es el smbolo inicial de G y el estado inicial de M. : subconjunto de S x x S ={(P,x,Q) P xQ R, P,QV, x }. un terminal seguido de un no terminal un terminal solo la cadena vaca

Teora de Autmatas I Autmatas finitos y lenguajes regulares

-7-

EXPRESIONES REGULARES - Operaciones con lenguajes: Unin. Concatenacin. * Cierre o estrella de Kleene ( ): concatenacin de 0 ms cadenas de lenguaje. Palabra vaca (): concatenacin de 0 cadenas. - Una expresin regular para un alfabeto se define as: 1. es una expresin regular. 2. Cada miembro de es una expresin regular. 3. Si p y q son expresiones regulares, tambin lo es p q. 4. Si p y q son expresiones regulares, tambin lo es p q. * 5. Si p es una expresin regular, tambin lo es p . - Una expresin regular sobre un alfabeto representa un lenguaje definido sobre l. Teorema 1.6 Dado un alfabeto , los lenguajes regulares de son los lenguajes representados por las expresiones regulares de . DEMOSTRACIN: A) Obtencin de un autmata a partir de una expresin regular Sean dos lenguajes L1 y L2 definidos sobre el mismo alfabeto y aceptados por sendos autmatas A1 (S1,,1,i1,F1) y A2 (S2,,2,i2,F2). Los autmatas que reconocen L1 L2, * L1 L2 y L1 se obtienen del siguiente modo: Unin: A(S,,,i,F) 1. Dibujar los dos autmatas. 2. Aadir un nuevo estado i, que ser el inicial. 3. De cada rama que salga de un estado inicial (i1 o i2), aadir una nueva rama con el mismo destino que parta de i. 4. El estado inicial es final si y slo si i1F1 i2F2. Mediante este procedimiento, el autmata queda definido as: S = S1 S2 {i} i i1 F1 F2 {} s i F1 i F2 2 F = s i F1 i F2 i1 2 F1 F2 p,x,q) 1 ( p,x,q) ( ( p,x,q) p,x,q) 2 ( Funcin de transicin : i i (1,x,q) 1 (,x,q) (2 ,x,q) 2 (,x,q) i i

Teora de Autmatas I Autmatas finitos y lenguajes regulares

-8-

Concatenacin: A(S,,,i1,F) 1. Dibujar los dos autmatas. 2. De cada estado final de A1, emitir un arco a cada estado que reciba un arco de i2, y colocarle la misma etiqueta que el anterior. 3. El estado inicial es i1. 4. Los estados finales sern los del conjunto F2, y en el caso de que el estado i2F2, tambin sern finales los de F1. Y en el autmata se cumple que: S = S1 S2 s i F2 i 2 F2 F = i 2 F1 F2 s i F2 p,x,q) i ( p,x,q) ( Funcin de transicin : p,x,q) p F1 i (2 ,x,q) 2 ( Estrella de Kleene: A(S,,,i1,F) 1. Dibujar el autmata. 2. Aadir un nuevo estado inicial i. 3. Hacer a i estado de aceptacin. 4. Por cada arco que salga de i1, emitir otro desde i al mismo destino con igual etiqueta. 5. Por cada estado de aceptacin, emitir un arco por cada arco que sale de i, con igual destino y etiqueta. Y en el autmata se cumple que: S = S1 {i} F = F1 {i} p,x,q) 1 ( p,x,q) ( Funcin de transicin : (1,x,q) 1 ( i p,x,q) p F1 ( ,x,q) (,x,q) i 1 1 i Entonces, dada una expresin regular, es posible construir el autmata que reconoce el lenguaje representado por ella aplicando los procedimientos antedescritos a los autmatas que reconocen las subsiguientes partes de la expresin regular original. B) Obtencin de la expresin regular del lenguaje reconocido por un autmata Se parte del supuesto de que el autmata tiene un nico estado de aceptacin. Si el autmata tiene ms de un estado de aceptacin, se desdobla en tantos autmatas parciales como estados de aceptacin tenga el original, tomando como de aceptacin slo uno en cada uno de ellos. La expresin regular del lenguaje aceptado por el autmata original ser la unin de todas las aceptadas por los autmatas parciales. Si el autmata tiene un solo estado, que es inicial y final, la expresin regular buscada ser la estrella de Kleene de la unin de todas las etiquetas de los arcos del diagrama. Si el autmata tiene dos estados, uno ser inicial y otro de aceptacin.

Teora de Autmatas I Autmatas finitos y lenguajes regulares

-9-

Si el arco s no est en el diagrama, la expresin regular del lenguaje representado por el autmata es . Si el arco s s est en el diagrama, pero no est el arco u, la expresin regular ser * * ((r s) t ) Si en el diagrama estn tanto el arco s como el u, la expresin regular resultante ser * * * * * (((r s) t ) (u ((r s) t )) ), siendo r y t sustituidos por si no existen en el diagrama original. Supongamos que para todo autmata con n estados, es posible representar el lenguaje que acepta mediante una expresin regular. Si nos encontramos con un autmata con n+1 estados: Se toma un estado cualquiera s0 que no sea inicial ni de aceptacin, y se construye un nuevo autmata con n estados, eliminando de l s0 y todos sus arcos. Con los arcos eliminados se forman todas las combinaciones posibles de pares de arcos tomando uno de los que llegaban a s0 desde otro estado y otro de los que salan de s0 y llegaban a otro estado. Para cada par, en el nuevo autmata se aade un arco que sale del estado del que sala el arco que llegaba a s0 y llega al estado al que llegaba el arco que sala de s0. * El nuevo arco llevar la etiqueta p r q, siendo p y q respectivamente las etiquetas de los arcos incidente y saliente, y r la unin de las etiquetas de los arcos que salan de s0 y llegaban a l mismo en el autmata de n+1 estados.

Con lo que se ha demostrado por induccin que es posible obtener la expresin regular que representa el lenguaje aceptado por un autmata finito.

You might also like