Autómatas, Gramáticas y Lenguajes Formales. Problemas Resueltos - Elena Gaudioso

January 7, 2017 | Author: Overdrive | Category: N/A
Share Embed Donate


Short Description

Download Autómatas, Gramáticas y Lenguajes Formales. Problemas Resueltos - Elena Gaudioso...

Description

Autómatas, Gramáticas y Lenguajes Formales Problemas Resueltos

Autómatas, Gramáticas y Lenguajes Formales Problemas Resueltos

Tomás García Saiz Elena Gaudioso Vázquez

sanz y torres

AUTÓMATAS. GRAMÁTICAS Y LENGUAJES FORMALES: PROBLEMAS RESUELTOS Todos los derechos reservados. Queda prohibida, salvo excepción prevista en la ley, cualquier forma de reproducción, distribución, comunicación pública y transformación de esta obra sin contar con la autorización de los autores y/o editores. La infracción de los derechos mencionados puede ser constitutiva de delito contra la propiedad intelectual.

© Tomás García Saiz y Elena Gaudioso Vázquez

© EDITORIAL SANZYTORRES, S. L. cl Pinos Alta, 49 - 28029 Madrid ~902400415-913145599

www.sanzytorres.com [email protected] www.sanzytorres.com/editorial [email protected] ISBN: 978-84-92948-36-9 Depósito legal: M-52021-2010 Portada: Iván Pérez López Composición: Autores Impresión y encuadernación: FER Fotocomposición, cl Alfonso Gómez, 38, 3° C, 28037 Madrid

índice

1. Autómatas Finitos, Lenguajes, Gramáticas y Expresiones Regulares 1.1. Base Teórica. . . . . 1.2. Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . 2. Autómatas a Pila, Lenguajes y Gramáticas Independientes del Contexto 2.1. Base Teórica. . . . . 2.2. Problemas resueltos .

1 1 5 59 59 63

3. Máquinas de Thring 3.1. BaseTeórica.. 3.2. Problemas resueltos.

121 121 127

Referencias

165

1

índice de figuras

1.1. 1.2. 1.3. lA.

Ejemplo de transiciones en un autómata finito regular . . . . . . . . . . .. Ejemplo de transiciones a un estado de error . . . . . . . . . . . . . . . .. Diagrama con las transiciones entre los estados de aceptación y el nodo error Diagrama parcial del autómata que procesa los cinco primeros símbolos de una cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5. Primeros estados definidos para el autómata que reconoce el lenguaje L del ejercicio 1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1.6. Autómata finito parcial que reconoce el lenguaje L del ejercicio 1.2 . . . . 1.7. Autómata finito no determinista que reconoce el lenguaje del enunciado 1.2 1.8. Gramática que genera el lenguaje del ejercicio 1.2 . .. . . . . . . . . . .. 1.9. Autómata que reconoce la codificación de un número binario . . . . . . .. 1.10. Autómata que reconoce los operadores matemáticos, los paréntesis y los corchetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.11. Autómata correspondiente al analizador léxico de una calculadora binaria 1.12. Estados del autómata que reconoce palabras que contienen las 5 vocales. 1.13. Transiciones del estado {aiu} . . . . . . . . . . . . . . . . . . . . . . . 1.14. Diagrama parcial del autómata que reconoce palabras que contienen las 5 vocales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.15. Ejemplo de un autómata finito no determinista. . . . . . . . . . 1.16. Representación gráfica de un autómata finito no determinista . . 1.17. Diagrama de transiciones de un autómata finito no determinista . 1.18. Representación gráfica de los estados del autómata finito determinista equivalente al autómata finito no determinista de la figura 1.16 . . . . . 1.19. Transiciones deterministas obtenidas a partir de la transición (A, z, e). . III

6 6 8 9 14 14 15 18 20 20 21 26 27 28 33 34 36 37 37

1.20. Transiciones deterministas obtenidas a partir de la transición (B, y, e).. .. 1.21. Transiciones deterministas definidas a partir de las transiciones (A, x, A) y (A, x, B). . . . . . . . . . . . . . . 1.22. Autómata finito determinista . . . . . . . . . . 1.23. Autómata finito que reconoce e1lenguaje xy*x. 1.24. Autómata finito que reconoce el lenguaje x*yx* 1.25. Autómata finito que reconoce el lenguaje (xy*x).U (x*yx*) . 1.26. Autómata que reconoce el lenguaje (xy*x) . (x*yx*) 1.27. Autómata que reconoce múltiples repeticiones de las cadenas del lenguaje

38

xy*x . . . . . . . . . . . . . . . . . . . . . . 1.28. Autómata que reconoce el lenguaje (xy* x) *. . . . . . . 1.29. Autómata finito que reconoce el lenguaje xy ..... . 1.30. Autómata que reconoce el lenguaje ((xy*x)* U x*yx*) 1.31. Autómata que reconoce el lenguaje (xy. ((xy*x)* U (x*yx*))) 1.32. Autómata que reconoce el lenguaje (xy . ((xy*x)* U (x*yx*)) . xy) . 1.33. Autómata siwplificado que reconoce el lenguaje (xy· ((xy*x)* U (x*yx*))· xy) 1.34. Autómata finito que no reconoce la cadena xzxx .....

44 44 45 46 46 47 47 49 49 51 51 52 52 52

1.35. Autómata finito que reconoce el lenguaje del ejercicio 1.11 1.36. Autómata finito que reconoce el lenguaje (xy)* .. 1.37. Autómata finito que reconoce el lenguaje (xz U y) .... . 1.38. Autómata finito que reconoce el lenguaje (zz)* ..... . 1.39. Autómata finito que reconoce el lenguaje (xy)*(xz U y)(zz)* 1.40. Autómata finito simplificado que reconoce el lenguaje (xy)*(xz U y)(zz)* 1.41. Autómata finito que reconoce el lenguaje L = {wl w tiene un número par de

x} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.42. Autómata finito que reconoce el lenguaje que contiene las cadenas con un número impar de x's . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1.43. Autómata finito que resulta de la concatenación de los autómatas de las figuras 1.42 y 1.41 . . . . . . . . . . . . . . . . . . 1.44. Autómata finito que reconoce el lenguaje :B* . . . . . . . . . . . . . . . . 1.45. Autómata finito que reconoce el lenguaje (x U y)*xy . . . . . . . . . . . 1.46. Autómata finito que reconoce el lenguaje complementario de (x U y)*xy . 1.47. Autómata finito que reconoce el lenguaje {x, xy} . . . . . . . . . . . .. 1.48. Autómata finito que reconoce el lenguaje formado por la cadena vacía . . 1.49. Autómata finito que reconoce el lenguaje compuesto por todas las cadenas distintas de la cadena vacía . . . . . . . . . . . . . . . . . . . . . .. IV

38 39

40 41 42 43

54 54 55 56 56 57 57 58 58

2.1. Relación entre los lenguajes independientes del contexto deterministas, no deterministas y los lenguajes regulares.. . . . . . . . . . . . . . . . . . 2.2. Autómata a pila que reconoce el lenguaje {xnyn : n E N+}. . . . . . . 2.3. Autómata a pila que reconoce el lenguaje {xnym zP, m = n + p, O <

61 64

m,n,pEN}...............................

68

2.4. Ejemplo de las transiciones posibles cuando se lee una x de la entrada. . 70 2.5. Autómata que reconoce cadenas con un mismo número x's e y's. . . . . 71 2.6. Autómata finito regular que reconoce cadenas con al menos una consonante, una vocal y un número . . . . . . . . . . . . . . . . . . . . . . . . . . .. 73 2.7. Autómata a pila que reconoce el lenguaje formado por todas las cadenas que contienen al menos una consonante, una vocal y un número. 76 2.8. Autómata del analizador sintáctico LL(l) del ejercicio 2.5. 79 2.9. Autómata del analizador sintáctico LL(l) del ejercicio 2.6. . 82 2.10. Autómata del analizador sintáctico LR(1) del ejercicio 2.7. . 87 2.11. Autómata a pila que reconoce el lenguaje de las cadenas que representan operaciones matemáticas. . . . . . . . . . . . . . . . . . . . . . . . . . .. 90 2.12. Autómata a pila que reconoce el lenguaje {zxn zyn zln E N}. . . . . . . .. 97 2.13. Transiciones no deterministas del autómata que reconoce el lenguaje {xnym: n:S; m:S; 2n} . . . . . . . . . . . . . . . . . . . . . . . 99 2.14. Autómata a pila que reconoce el lenguaje {xnym: n:S; m :S; 2n} 100 2.15. Autómata a pila que reconoce el lenguaje {xnym: O < m < n} . 103 2.16. Autómata a pila que reconoce el lenguaje {xn+2yn : O < n E N} . 105 2.17. Autómata a pila que reconoce el lenguaje {xny2n} . . . . . . . . . 108 2.18. Autómata a pila que reconoce el lenguaje {xnym : n, m> O, n = mVm = 2n} 108 2.19. Autómata finito que reconoce el lenguaje {xnym : O :S; m :S; n y si n = O =? 2.20. 2.21. 2.22. 2.23.

m=O} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..

111

Autómata a pila equivalente a la gramática del enunciado 2.16. . . . . .. Autómata a pila que reconoce el lenguaje L = {wlw E {O, 1}*, w = vv R } Autómata a pila del enunciado 2.18 . . . . . . . . . . . . . Autómata finito que reconoce el lenguaje del enunciado 2.19

113 115 118 118

3.1. Relación entre los lenguajes independientes del contexto, los lenguajes regulares y los lenguajes estructurados por frases. . . . . . . . . . . . . .. 3.2. Máquina de Turing que reconoce el lenguaje {xnyn zn : O < n E N}. . . .. 3.3. Máquina de Turing que reconoce si en un determinado proceso, los eventos A y E están activos en el mismo momento. . . . . . . . . . . . . . . . .. 3.4. Máquina de Turing que se encarga de trasladar el primer sumando a la primera cinta y el segundo sumando a la segunda cinta . . . . . . . . . 3.5. Máquina de Turing que suma dos números escritos en notación binaria .

v

123 128 132 136 13 7

3.6. Máquina de Turing de dos cintas que busca la primera aparición de la cadena contenida en la segunda cinta dentro de la cadena contenida en la primera cinta 139 3.7. Autómata finito que reconoce el lenguaje formado por las cadenas de x's e y's que no empiezan por x . . . . . . . . . . . . . . . . . . . . . . . . .. 142 3.8. Diagrama de transiciones de la máquina SL . . . . . . . . . . . . . . . .. 146 3.9. Máquina de Turing que busca el patrón xy en la cinta de entrada y lo sustituye por zz siempre que los símbolos xy no sean los primeros símbolos de la cinta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 3.10. Máquina de Turing que busca el patrón xy en la cinta de entrada y lo sustituye por zz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 149 3.11. Diagrama de transiciones parcial de una máquina de Turing que desplaza un lugar a la izquierda los símbolos contenidos a la derecha de la celda actual. 151 3.12. Diagrama de transiciones de una máquina de Turing que desplaza de manera indefinida un lugar a la izquierda los símbolos contenidos en la cinta a la derecha de la celda actual. . . . . . . . . . . . . . . . . . . . . . . . . . . 152 3.13. Máquina de Turing de dos cintas que elimina la primera aparición de la cadena conte!?:ida en la segunda cinta dentro de la cadena contenida en la primera cinta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 155 3.14. Máquina de Turing que reconoce el lenguaje {xnyn : n E N+}. . . . . . . 159 3.15. Máquina de Turing de dos cintas que reconoce el lenguaje {xnyn : n E N+}. 163

VI

Prólogo

La teoría de autómatas es una materia básica en el área de la computación. Esta materia se ocupa del estudio de las máquinas de estados finitos que se utilizan como reconocedores de lenguajes. En cuanto a reconocedores, suponen la base para la construcción de compiladores y para el estudio de la computabilidad, esto es, qué es capaz de computar una máquina actual y con qué complejidad. Por lo general, los textos que cubren esta materia, lo hacen desde un enfoque teórico proponiendo, para cada tema, una serie de ejercicios que debe resolver el lector. En esta materia es especialmente importante conocer la relación que existe entre las diferentes formas de representación de las diferentes máquinas teóricas existentes. El objetivo de este libro es el de plantear ejercicios que recorran, para un mismo problema, todas las posibilidades de representación y sus equivalencias. No es objetivo de este libro presentar la base teórica que permita resolver estos ejercicios. Este libro sirve por tanto, de complemento para otros textos de contenido teórico. En cada capítulo se enunciarán los conocimientos teóricos necesarios para la resolución de los problemas planteados, así como las referencias que se pueden consultar para alcanzar dichos conocimientos. El libro se completa con ejercicios más cortos de carácter teórico/práctico que permiten afianzar los conocimientos en esta materia. Como ayuda para la comprensión de los ejercicios expuestos en este texto se recomienda el uso de JFLAP, un programa gráfico implementado en Java que permite experimentar con lenguajes formales, gramáticas y autómatas (disponible en http://www.ia.uned.es/asignaturas/aglf/) Los autores

VII

CAPÍTULO

1

Autómatas Finitos, Lenguajes Regulares, Gramáticas Regulares y Expresiones Regulares

En este capítulo se tratarán problemas relacionados con las máquinas teóricas conocidas como autómatas finitos que, aunque tienen un poder limitado, son capaces de reconocer la clase de los lenguajes regulares. Los autómatas finitos y los lenguajes regulares se encuentran en el nivel más bajo de la jerarquía de máquinas y lenguajes. Sin embargo, son la base, por ejemplo, de la construcción de los analizadores léxicos en los compiladores. Estos analizadores son los encargados de reconocer cuáles son las cadenas de símbolos del programa fuente que deben considerarse como representaciones de patrones válidos, por ejemplo, nombres de variables, constantes numéricas o palabras reservadas.

1.1. Base Teórica Para la resolución de los problemas de este capítulo es necesario conocer: • Los autómatas finitos deterministas y no deterministas, su representación mediante un número finito de estados y transiciones entre los mismos y mediante tabla de transiciones. • Los lenguajes regulares reconocidos por los autómatas finitos y ejemplos de lenguajes regulares básicos tales como: el lenguaje vacío 0, el lenguaje formado por la cadena vacía {A}, cualquierlenguaje finito, {xnln E N+},{xnymlm, n E N+}, ... 1

1. Autómatas Finitos, Lenguajes, Gramáticas y Expresiones Regulares • Límites de los autómatas finitos y ejemplos de lenguajes no regulares, como por ejemplo, {xnynln E N+}. • Gramáticas regulares. Son las gramáticas que generan lenguajes regulares. Las gramáticas se definen mediante un conjunto de símbolos terminales y no terminales y un conjunto de reglas de reescritura o producciones. Las gramáticas regulares cumplen que, en el lado izquierdo de cada producción existe un único no terminal y en el lado derecho de cada producción existe un único terminal o un terminal seguido de un único no terminal o la cadena vacía. • Expresiones regulares. Para definir lenguajes regulares pueden usarse también una serie de bloques básicos denominados expresiones regulares que se combinan mediante las operaciones de unión, concatenación y estrella de Kleene. Dado un determinado alfabeto I: una expresión regular se define como [Brookshear, 1993]: • (/) es una expresión regular que representa al lenguaje vacío, esto es, al lenguaje que no contiene ninguna cadena. • Cada miembro del alfabeto I: es una expresión regular. • Si p Yq son expresiones regulares entonces también 10 son: p U q, p. q y p* . Donde U, . Y * representan las operaciones de unión, concatenación y estrella de Kleene respectivamente. • Conversión de un autómata finito a una gramática regular equivalente y viceversa. • Conversión de un autómata finito a una expresión regular equivalente y viceversa. Para cubrir los contenidos anteriores se pueden consultar numerosas referencias en la literatura, en concreto, las siguientes dos fuentes: • Capítulos 1, 2 Y 3 del libro Teoría de autómatas, lenguajes y computación. H. E. Hopcroft, R. Motwani, J. D. Ullman. Pearson. Addison Wesley. Tercera Edición, 2008 ([Hopcroft et al., 2008]). • Capítulo 1 del libro Teoría de la Computación: Lenguajes Formales, Autómatas y Complejidad. J.O. Brookshear. Addison-Wesley Iberoamericana, 1993([Brookshear, 1993]). La nomenclatura que se va a utilizar en este capítulo es la siguiente:

2

Autómatas, Gramáticas y Lenguajes formales: problemas resueltos

• Un autómata finito se representa formalmente, mediante la siguiente tupla: (S, ¿;, 8, T, F) donde S es un conjunto de estados, ¿; es el alfabeto de la máquina, 8 es un subconjunto de Sx¿;xS que representa la función de transición, T es un elemento de S y representa el estado inicial y Fes ún subconjunto de S y representa la colección de estados de aceptación. La función de transición define las transiciones del autómata. Así por ejemplo, 8(So, O) = SI indica que si el estado actual es So yel símbolo actual de la entrada es O, entonces, el autómata cambia al estado SI' Por tanto, a la hora de determinar las transiciones de un autómata, sólo se tiene en cuenta el estado actual y símbolo actual de la entrada. Cuando se represente el autómata mediante un diagrama de transiciones el estado inicial está representado de la siguiente manera:

Mientras que los estados finales o de aceptación se representarán:

® Las transiciones entre estados se representan mediante arcos etiquetados por el símbolo que es necesario leer de la entrada para pasar de un estado a otro. Las transiciones en las que el estado inicial y final coincidan, se representan mediante bucles. Así, por ejemplo, las transiciones definidas como 8(So, O) = SI Y8(So, 1) = So se representará en un diagrama de transiciones de la siguiente manera: 1

Se supone que cada autómata dispone de una cabeza lectora que se va desplazando hacia la derecha por la cinta de entrada para leer los símbolos de la cadena que está procesando. • Una gramática se representa por la siguiente tupla: (S, V, T, R) donde Ves un conjunto finito de no terminales, T es un conjunto finito de terminales, S E V es el símbolo inicial de la gramática y R es un conjunto finito de reglas de reescritura o producciones. Las letras mayúsculas del alfabeto A, B, ... , S, V, T, ... denotarán los símbolos no terminales de la gramática. El conjunto de símbolos terminales de la gramática

3

1. Autómatas Finitos, Lenguajes, Gramáticas y Expresiones Regulares

lo constituirán los símbolos del alfabeto y que usualmente se representan con letras minúsculas. Las reglas de reescritura de la gramática se representarán indicando la parte izquierda de la regla seguida de una flecha y seguida a su vez de la parte derecha de la regla, por ejemplo, S -+ lA. • Las expresiones regulares se representarán usando los símbolos del alfabeto así corno los operadores de unión (U), concatenación (-) y estrella de kleene (*). Corno ejemplo, la expresión regular (O . (O U 1)* . O) representa aquellas cadenas que comienzan y terminan en O. Nótese que en otros textos, corno por ejemplo [Hopcroft et al., 2008], el operador unión se representa mediante el símbolo + en vez de U. • Para representar las posiciones de cinta no escritas de la cinta de entrada se utilizará el símbolo A..

4

Autómatas, Gramáticas y Lenguajes formales: problemas resueltos

1.2.

Problemas resueltos

IEJERCICIO 1.11 Dado el siguiente lenguaje regular L = {w E {O,l}*1 cada bloque de 5 símbolos consecutivos de w contiene al menos dos ceros} construir el autómata finito que lo reconoce, así como la gramática regular que genera las cadenas pertenecientes a este lenguaje.

SOLUCIÓN El lenguaje del enunciado comprende todas las cadenas formadas por O's y l's en las que cada subcadena de 5 símbolos consecutivos contiene un mínimo de dos ceros. Algunos ejemplos de cadenas válidas de este lenguaje son: 00111, 101011, 0011100 Y 11001100110. Por el contrario, las siguientes cadenas no son válidas: 11111,011110, 111011110 Y 011011011. La cadena 011011011 es un ejemplo de cadena no válida puesto que, aunque su primera subcadena de 5 elementos (i.e. 01101) si es válida, la siguiente subcadena de 5 elementos, que se construiría eliminando el primer elemento de la cadena e incorporando el sexto elemento de la cadena inicial, sería 11011, que no cumple las condiciones del enunciado. En consecuencia, la cadena no pertenece al lenguaje. Para que un autómata finito sea capaz de distinguir las cadenas válidas de las que no 10 son, debería poder recordar cuáles son los últimos cinco elementos que ha leído. La única forma de almacenar está información dentro de un autómata finito es asociar a cada estado una única subcadena. Como este lenguaje tiene un alfabeto binario, el número de estados necesarios para almacenar todas las opciones de subcadenas de 5 símbolos será 25 = 32. Cada uno de estos 32 estados se ha nombrado con un número comprendido en el intervalo [O ... 31]. La biyección para saber qué cadena corresponde a cada uno de los estados, se ha definido considerando que la cadena de 5 elementos del alfabeto (i.e. O y 1), es un número natural escrito en notación binaria. De esta manera, dada una cadena, se le hace corresponder el número en notación decimal, que indica el número del estado correspondiente a dicha cadena. Una vez que el autómata ha leído los 5 primeros símbolos de una cadena, debería tratar los siguientes símbolos, volviendo a utilizar la biyección comentada anteriormente. La nueva subcadena que se considera es aquella que resulta de eliminar el primer elemento de la cadena anterior, añadiendo el nuevo símbolo que aparezca en la entrada. Como ejemplo, se supone que el autómata se encuentra en el estado VlO . Por tanto, los últimos 5 símbolos que ha leído componen la subcadena 01010. A continuación, en la entrada se puede encontrar un O o un 1. Si en la entrada se encuentra un O, la nueva cadena sería 10100. En ese caso, el autómata debería pasar del estado Vio al estado V20 (esto es, existiría una transición y por tanto, un arco que una los estados VlO y 1120)' Si por el contrario, el siguiente carácter a leer de la entrada

5

1. Autómatas Finitos, Lenguajes, Gramáticas y Expresiones Regulares

o

1

Figura 1.1: Transiciones que se producen cuando, estando en el estado VIO, se lee de la entrada los símbolos: O o 1. Nótese que los tres nodos son nodos de aceptación 0,1

.@

@__O_,l_ _

Figura 1.2: Transiciones al estado de error desde un estado de no aceptación (en este caso, el estado V27 ) fuera un 1, la nueva cadena sería 10101. En ese caso, el autómata debería pasar del estado VlO al estado V21 . Si el autómata llega a cualquiera de estos tres nodos, la cadena leída cumple las condiciones del lenguaje y por tanto deben ser nodos de aceptación. La figura 1.1 ilustra el ejemplo descrito. Un ejemplo de un estado de no aceptación, sería el nodo 1127' Este nodo se corresponde con la codificación decimal de la cadena 11011 que no es una cadena válida del lenguaje. Por tanto, una vez que se alcanza el estado 1127, el autómata no debe aceptar la cadena. En este caso, si el siguiente símbolo de la cadena es un 1, la nueva subcadena a analizar sería 10111 correspondiente al estado 1123. Por el contrario, si el siguiente símbolo es un O la nueva subcadena a analizar sería 10110 correspondiente al estado 1122 (que es un estado de aceptación). Siguiendo la metodología del ejemplo anterior, se deberían definir dos transiciones desde el estado 1127 a los estados V23 y V22 • No obstante, si se definen estas dos transiciones, el autómata aceptaría la cadena en el caso de que se lea un O de la entrada, lo cual es un error, porque una vez que el autómata alcanza el estado 1127, éste debe rechazar la cadena puesto que ya ha encontrado una subcadena no válida del lenguaje. Para resolver esta situación se define un nuevo estado de error (E). Este estado será el destino de todas las transiciones que partan de estados de no aceptación independientemente del símbolo que se lea de la entrada. En la figura 1.2 se ilustra este ejemplo. En la figura 1.3 se muestra el diagrama con todas las transiciones que se producen entre los estados de aceptación y el nodo error. Para completar el autómata que reconozca el lenguaje del enunciado, es necesario definir los estados y las transiciones que controlen la lectura de los cinco primeros símbolos de la cadena. En la figura 1.4, se muestra esta parte inicial del autómata. En esta figura, los estados 6

Autómatas, Gramáticas y Lenguajes formales: problemas resueltos

qi controlan los símbolos leídos hasta el momento. Así por ejemplo, el estado qo es el estado inicial en el que no se ha leído ningún símbolo, estado ql es el estado en el que se ha leído un y el esetado q2 es el estado en el que se ha leído el símbolo 1.

°

Ejemplos de ejecución del autómata Se van a considerar a continuación diferentes cadenas de entrada con el objetivo de ilustrar el funcionamiento del autómata . • Cadena de entrada: 00111

En este caso, la cadena de entrada sólo tiene 5 caracteres, por tanto, sólo se ejecutará la parte del autómata que se muestra en la figura 1.4. El estado inicial es el estado qo y por lo tanto antes de empezar a leer la cadena, el autómata estará posicionado en ese estado. Para controlar la porción de cadena que ya se ha leído, se subrayará el símbolo de la entrada que debe considerar el autómata en cada momento (que denominaremos símbolo actual). Al comienzo de la ejecución del autómata, la entrada sería la siguiente: Q011l. En la siguiente tabla se muestran las transiciones que va realizando el autómata (el símbolo). representa las posiciones de cinta no escritas que pudieran encontrarse en la cinta de entrada).

I Paso I

Cinta

o

Q0111)' OQ111). 00111), 00111), 00111). 00111¿

1 2 3 4

5

I Estado I Función de Transición I qo ql q3 qs q18 V7

o(qo, O) = ql O(ql' O) = q3 O(q3, 1) = qs o(qs, 1) = qlS O(q18, 1) = V7 Aceptar

Cada vez que se lee un símbolo de la entrada, la cabeza lectora del autómata se desplaza a la siguiente posición a la derecha del símbolo actual de la cinta. Por lo tanto, siguiendo las transiciones mostradas en la tabla anterior, al leer el primer el autómata pasa del estado qo al estado ql (esto es, se ha ejecutado la función de transición o(qo, O) = ql), además la cabeza lectora se desplaza y el símbolo actual ahora es el segundo cero de la cadena. Cada una de las siguientes acciones del autómata se interpretan de forma similar.

°

• Cadena de entrada: 11111 lt

I

Este es un ejemplo de una cadena no válida del lenguaje. En la siguiente tabla se muestra el funcionamiento del autómata con esta cadena de entrada.

.L............-----------------7

--

1. Autómatas Finitos, Lenguajes, Gramáticas y Expresiones Regulares

0,1 0,1 1 1

VI5

V31

1130 1129

° 1 O

O

° °

00 11 00

O

1 O

Figura 1.3: Diagrama con las transiciones entre los estados de aceptación y el nodo error. Nótese que existen estados de no aceptación a los que nunca se llega puesto que no existen transiciones para las que sean nodo destino

8

Autómatas, Gramáticas y Lenguajes formales: problemas resueltos

11:31 1 1

fQ

O O

1

"'29

1

~

"'27 O

1 1 O O

~

1 1 O O 1

O 1

1 O O

O Figura 1.4: Diagrama parcial del autómata que procesa los cinco primeros símbolos de una cadena

9

1. Autómatas Finitos, Lenguajes, Gramáticas y Expresiones Regulares

I Paso I Cinta I Estado I Función de Transición I o 11111.,\ qo Ó(qol1) = q2 1

2 3 4 5

11111.,\ 11111,\ 11111,\ 11111,\ 11111~

q2 q6 q14 q30 V:n

= q6 Ó(q6l 1) = q14 Ó(q14l 1) = q30 ó( q30, 1) = V:n

15 ( q2 1 1)

Rechazar

• Cadena de entrada: 0011100 Esta cadena es una cadena válida del lenguaje y tiene más de cinco caracteres. Por tanto, una vez leídos los primeros cinco símbolos de la entrada (ver figura 1.4), el autómata pasará a ejecutar las transiciones que se muestran en la figura 1.3. En la siguiente,!abla se muestra el funcionamiento del autómata con la cadena de entrada 0011100.

I Paso I o 1 2 3 4

5 6 7

Cinta Q011100,\ OQ11100,\ 0011100,\ 0011100,\ 0011100,\ 00111QO,\ 001110Q,\ 0011100~

I Estado I Función de Transición I qo ql q3 qs qlS V7 Vi4 V2S

Ó(qOlO) = ql Ó(qlJ O) = q3 Ó(q3l 1) = qs 15 ( qs 1 1) = qlS Ó(qlSl 1) = V7 Ó(V7l O) = V14 Ó(V14l O) = V2s Aceptar

• Cadena de entrada: 0110101110 Esta cadena es una cadena que no pertenece al lenguaje y que tiene más de cinco caracteres. El funcionamiento del autómata con esta cadena de entrada se muestra en la siguiente tabla: 10

Autómatas, Gramáticas y Lenguajes formales: problemas resueltos

j Paso j

o 1 2

3 4

5 6 7 8 9 10

I

Cinta Estado Q110101110,\ qo 0110101110,\ ql 0110101110,\ q4 011QlO111O,\ qlQ 0110101110,\ q21 01101Q1110,\ lr'í3 0110101110,\ V26 0110101110,\ V21 0110101110,\ Vn 011010111Q,\ E E 0110101110~

I Función de Transición I . ppif:.swoqauww>. ppieQwoqauww>. ppieswoqauww>. ppieswQqauww>. ppieswoqauww>. ppieswoqª-uww>. ppieswoqaJJ.ww>. ppieswoqauww>. ppieswoqauww>.

12

ppieswoqauww~

1 2 3 4'~

5 6 7 8 9 10

I Estado I Función de Transición 0 0 0 {i} {ei} {ei} {ei} {eio} {eio} {aeio} {aeiou} {aeiou} {aeiou}

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF