AUTOMATAS Y LENGUAJES

Un enfoque de diseño

ab a b b

...

q7 q6 q5

q0

q1 q2 q3 Ramón Brena Tec de Monterrey Verano 2003

q4

ii

Prefacio
En a˜os recientes se ha visto la aparici´n de un buen n´mero de textos en el tema de n o u Lenguajes Formales y Aut´matas (Ver al final referencias [10], [7], [23], [8], [3], [21], etc.). Por o una parte, esto indica la importancia y riqueza que el tema tiene; por otra, ante tal variedad de oferta todo nuevo libro en el ´rea requiere una justificaci´n que indique su aporte con a o respecto a lo existente. Este texto se sit´a en una generaci´n de textos que tratan de poner el estudio de los u o lenguajes formales y aut´matas al alcance de estudiantes que no necesariamente son avezados o matem´ticos buscando establecer nuevos teoremas, sino que buscan una iniciaci´n a estos a o temas, que adem´s les sirva como un ejercicio en el arte de formalizar, en particular en a nociones relacionadas con la computaci´n. Entre estos textos “accesibles”, encontramos, por o ejemplo, a [23]. Estos nuevos textos han reemplazado en muchas universidades a los “cl´sicos” a [6] y a´n [10] -que ya era m´s accesible-, y han permitido que la teor´ de la computaci´n se u a ıa o estudie a nivel profesional en carreras relacionadas con computaci´n y matem´ticas. o a El presente libro es resultado de una experiencia de impartir el curso de Teor´ de la ıa 1 Computaci´n por m´s de 10 semestres en el ITESM, en Monterrey, M´xico. Durante este o a e lapso, aunque ciertamente se fue enriqueciendo el contenido t´cnico, el principal refinamiento e consisti´ en ir detectando cuidadosamente las dificultades principales a las que se enfrentao ban los estudiantes, para poder estructurar y presentar el material de forma que aquellos estuvieran en condiciones de comprenderlo de manera eficiente. Aqu´ el ´nfasis no est´ tanto ı e a en hacer el curso “m´s f´cil” para los estudiantes, sino en asegurarse de que ´stos cuenten a a e con los elementos para que ellos mismos reconstruyan estos contenidos dentro de su cabeza; no se trata, pues, simplemente de “vaciar” informaci´n en la cabeza del estudiante. La teor´ o ıa educativa que sustenta esta forma de trabajo esta basada en el “aprendizaje por reestructuraci´n” [18]. o El texto est´ presentado de manera tal que es posible para el alumno estudiar el material a antes de cubrir el tema en clase; de hecho esta es la forma en que se utiliza en el ITESM, contrariamente a muchas clases tradicionales, en las que el alumno se presenta a la exposici´n o del profesor y ya luego estudia el texto. En el ITESM la clase no se utiliza principalmente para exposici´n del profesor, sino que se hacen ejercicios, problemas en equipo, miniex´menes o a semanales, etc. Esta situaci´n exige del texto que sea comprensible sin tener ninguna noci´n o o del tema adquirida previamente, por lo que tuvimos que incluir explicaciones claras que permitan al alumno reconstruir en su mente la idea intuitiva, y -sobre todo- ejemplos. A lo largo del texto, cada una de las nociones presentadas es seguida inmediatamente por un ejemplo ilustrativo. Este texto es aplicable tanto al nivel de maestr´ en computaci´n o equivalente, como ıa o a clases de nivel profesional (licenciaturas, ingenier´ ıas). De hecho en el ITESM se aplica en ambos niveles. La diferencia fundamental entre el enfoque del curso de nivel profesional y el
1

Abreviatura de “Instituto Tecnol´gico y de Estudios Superiores de Monterrey”. o

iii de maestr´ estriba en que el curso de nivel ingeniero enfatiza los aspectos de “saber hacer”, ıa (por ejemplo, saber comparar dos aut´matas deterministas), mientras que el curso de nivel o maestr´ enfatiza el “saber justificar” (por ejemplo, probar por inducci´n que una gram´tica ıa o a es correcta). El material cuyo nivel es propiamente de maestr´ es identificado por medio de una ıa barra vertical al margen, como en el presente p´rrafo. Esto incluye tambi´n las secciones de a e ejercicios. En breve, los puntos que caracterizan a este libro, y que en cierta medida lo hacen particular, son:

La presentaci´n did´ctica ha sido -en nuestra opini´n- m´s pulida que en la mayor´ o a o a ıa de textos en Teor´ de la Computaci´n. Por ejemplo, primero se presentan las nociones ıa o de manera intuitiva, y solamente despu´s se procede a su formalizaci´n. e o Es aplicable tanto al nivel de maestr´ como en carreras de ingenier´ en computaci´n, ıa ıa o mostrando en forma expl´ ıcita y gr´fica qu´ secciones est´n destinadas a cada nivel. a e a Siendo un libro m´s orientado a estudiantes de ingenier´ que de matem´ticas, se a ıa a enfatizan los temas que tienen com´nmente aplicaci´n en su campo profesional, como u o los aut´matas finitos. Esta es la raz´n por la que se cubren con mucho m´s detalle estos o o a temas que otros de inter´s m´s te´rico, como la calculabilidad en m´quinas de Turing. e a o a Sabemos de alumnos que han conseguido un buen empleo no universitario gracias a su conocimiento de aut´matas finitos. o Por la misma raz´n del punto anterior, ciertos temas que tradicionalmente se exponen o con una motivaci´n matem´tica, como las propiedades de los “Lenguajes Regulares”, o a en este texto se presentan en el contexto de m´todos de dise˜o, lo que es consistente e n con nuestro enfoque ingenieril. Es este aspecto lo que justifica el subt´ ıtulo “un enfoque de dise˜o” de este texto. n Ofrecemos metodolog´as para resolver ciertas clases de problemas, tales como el dise˜o ı n de expresiones regulares y gram´ticas, que no son presentadas en otros libros de teor´ a ıa de aut´matas, o lo hacen de forma mucho m´s escueta. Inclusive algunos temas, tales o a como las propiedades de cerradura de los lenguajes regulares a la uni´n de conjuntos, o se presentan aqu´ como una herramienta de soluci´n de problemas de dise˜o, y no ı o n simplemente por el inter´s matem´tico del tema. e a Presentamos errores frecuentes de los estudiantes de esta materia, permitiendo de este modo que el lector se beneficie de una extensa experiencia directa en la ense˜anza de n la materia. Los algoritmos no se presentan en forma de “pseudoc´digo”, es decir, usando estruco turas de control de lenguajes imperativos (p.ej. while, for, etc.), sino que damos una

iv interpretaci´n intuitiva de los resultados intermedios obtenidos por los algoritmos. Peno samos que este enfoque brinda una mejor comprensi´n de los algoritmos, pues es m´s o a f´cil recordar ideas que lineas de c´digo. a o ¡El texto est´ en espa˜ol en el original! (es decir, no se trata de una traducci´n de un a n o texto en ingl´s). Las traducciones son muchas veces desventajosas respecto al original. e El libro, en tanto que libro electr´nico, es un archivo est´ndar de tipo PDF, con “hiperlio a gas” que permiten localizar r´pidamente figuras, citas, p´ginas del texto, etc. a a ¡El libro es gratuito! En efecto, no se distribuye con fines de lucro. Esto no pretende atentar contra la industria editorial, sino apoyar el aprendizaje del ´rea de aut´matas y a o lenguajes en Am´rica Latina, regi´n que no est´ sobrada de recursos como para querer e o a engrosar los flujos de capital hacia los grandes centros editoriales del mundo. La estructura de este texto es la siguiente: despu´s de una breve revisi´n de las nociones e o preliminares de matem´ticas, en los primeros cap´ a ıtulos (2-3) veremos la clase m´s simple de a lenguajes, los Lenguajes Regulares, junto con las m´quinas abstractas que les corresponden a –los Aut´matas Finitos–, y al mismo tiempo introduciremos una metodolog´ de an´lisis de o ıa a las m´quinas abstractas y de los lenguajes, metodolog´ que volveremos a utilizar en las a ıa siguientes secciones del curso, para otros tipos de lenguajes y de m´quinas. a En los cap´ ıtulos 4 y 5 veremos los Lenguajes Libres de Contexto y los Aut´matas de Pila. o Finalmente, a partir del cap´ ıtulo 6 estudiaremos el tipo de m´quinas m´s poderoso, las a a M´quinas de Turing, que son en cierta forma el l´ a ımite te´rico de lo que es posible de hacer o con m´quinas procesadoras de informaci´n. a o T´ ıpicamente, en un curso de nivel profesional se inicia con el cap´ ıtulo de preliminares, y se contin´a con los cap´ u ıtulos 2-3. Se enfatizan los cap´ ıtulos 4 y 5, as´ como la teor´ de ı ıa los compiladores. A continuaci´n se cubren los aspectos b´sicos de las M´quinas de Turing o a a (inicio de cap´ ıtulo 6). En el curso de maestr´ la revisi´n de preliminares casi se omite, y se cubren los cap´ ıa, o ıtulos 2 2-3, s´lo que en un nivel de profundidad mayor que en el caso del nivel profesional. Luego o se procede a estudiar los Aut´matas de Pila, las M´quinas de Turing y la Tesis de Church o a (cap´ ıtulos 4, 5 y 6), con ´nfasis en las pruebas. e Agradezco la colaboraci´n del Dr. Jos´ Luis Aguirre en la correcci´n de los errores en o e o versiones previas, as´ como en sugerencias para mejorar la exposici´n de ciertos temas. Tamı o bi´n agradezco al Comit´ del Fondo de Apoyo a Proyectos en Did´ctica su apoyo financiero. e e a Finalmente doy las gracias a muchos alumnos que ayudaron a depurar el escrito mientras sirvi´ como apuntes de la materia. o

2

Recordar que el material de nivel maestr´ est´ indicado con una barra vertical en el margen. ıa a

. o 1. . . . . . . . . . . . . .2. . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. 1. . . . . . . . . . . . . . . 1. . . . . Lenguajes. . . . .4. . . . . . . .4. . . . . . . . . Conjuntos . . . . . . . . . . . . . . . . . . . . . . 1. . . . . . . . . . . . . Conjuntos infinitos . . . . . . Pruebas por inducci´n .1. . . . operaciones con lenguajes . . . . . . . . . . . . . . . . . . .´ Indice general 1. . 1. . . . . . . . . . . . . . . . . . . . Aut´matas finitos o v . . .1. . . . .5. . . Lenguajes . . Equivalencias de conjuntos . . . .1. . . . . . .1. . . . . . . . . . . . .1. 1. . Ejercicios . . . Relaciones y funciones . . 1. . . . . . . . . . . . . . . . . . . o 1. .2. . . . Manejo l´gico de enunciados . . . . . . . . . . . . . . . . . . . Operaciones con conjuntos . .3. . . . 1.1. . . La jerarqu´ de Chomsky . . . . . . . . . . . . . . . . . Operaciones . . . . . . . . . .1.3. . . . .1. . .4. . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . ıa 1. . . . . . . . . . . . . .2. . . . . cadena de caracteres . . . . . . . . . . . . . 1. . . Alfabeto. . . . . . Preliminares 1. . 1. . .1. . . . . . . Tablas de verdad . . . . . . . . 1. . . . . . . 3 3 5 5 7 8 10 12 14 15 16 17 17 19 20 I Lenguajes regulares y sus m´quinas a 23 25 2. . . . . . . .2. . . . . . . . .

. .1. . . . .9. . . . . . . .3.6. . . . . . . . .2. . . . . . . . . . . . . . . . . . 2. . . . . . . . .1. Simplificaci´n por clases de equivalencia . . . . . . . .4. . . . . . . . . . . . . . . . . . . o 2. . . . . . .1. . . . . . . . a 2. . . . . . . . . . . . . . . .7. . . . . . . . a 2. . . . . . . . .1. . . . . . .7. . . . . . . . . . . . . . . . . .8. . . .1. . . . . . . . . . . . o 2. . . . . . . . . . . . . .3. . . . . o 2. .4. . . . . . 2. . . . . . . . . . . . . . . . . . . n 2. . . . . . . . .6. .6. . . . . . Ejercicios . . . . . . . .4. Equivalencia de AFD Y AFN . n 2. . . . . . . . . Equivalencia de aut´matas finitos. . . . . . . M´quinas de Moore . . . . . . . . . . . . 2. . . . . . . . . . o 2. . . . 26 29 30 31 32 37 39 41 42 47 48 50 53 54 55 56 56 58 59 60 64 72 73 3. . . . . . . . . . . .2.3. . . . . . . a 2. . . Aut´matas finitos con salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dise˜o de AFD por complemento . a n o 2. . . . . . . . . . . . a 2. . . . . . . . M´todos de dise˜o de AFDs . M´s dise˜o de AFN: Intersecci´n de lenguajes . . . . . . 2. . . . . . . . . . . .2. . . . . . . . . . M´quinas de Mealy . Modelado de sistemas discretos . . . . .1. . . . . . . . .7. . . . . . . . . . . . .2. Dise˜o de AFN . . . . .4.7.2. . . . . . .8. . Definici´n formal de aut´matas finitos . . . . Estados finales . . . . . . . . . o o 2. . . o 2. . . .8. . . . . . . . . o o 2. . Equivalencia de las m´quinas de Moore y Mealy . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . a 2. . . . n 2. .vi ´ INDICE GENERAL 2. . . . . . Aut´matas finitos no deterministas . . . . . o 2.8. . . . . . .1. . Funcionamiento de los aut´matas finitos . . . C´lculo de funciones en AF .4. . . .1. . . . . . . . . . . . . . . . . . Expresiones Regulares y Gram´ticas Regulares a 79 . . . .7. . . . . . Representaci´n formal de los AFN . . . . . .8. . . . . Dise˜o por conjuntos de estados . . . . . . . . . . . . .2. . . M´quinas de estados finitos . . . . . e n 2. . Tabla de estados distinguibles . . Simplificaci´n de Aut´matas finitos .

. . . . 3. . Gram´ticas formales . . . Gram´ticas y la jerarqu´ de Chomsky . . . . . .4. Gram´ticas y lenguajes libres de contexto a 4. . . . .4. . . . . . . . . . .1. . . . . . . . . . . . . Expresiones regulares . . . . . . . . . . . . . . . Ejercicios . . . . . .5. . . Significado de las ER . . . . . . . . . . . . . . . . Equivalencias de Expresiones Regulares . 116 n . . . . . . . .3. . . . . . . . . . . . .1. . . . . . . . . o 3. . . . .2. . . . . . . . . .3. . . .2. . . . . . . . . . . . . . . . L´ ımites de las representaciones textuales . . .5. . . .6. . . . . . . 3. . Limitaciones de los lenguajes regulares . . . .7. . . . . . . . . . . . . . . . . . . Definici´n formal de Lenguajes Regulares . . . . . . . . . .4. . . . . . . . . . . . . . . . .3. . . . . .2. . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 a ıa 4. . . . . . . . 3. . . . . . . . . . . . . . a 3. . . . . . . 3. . . . . . Conversi´n de ER a AF . . . . . . . . . . . . .1. . . . . . . . . . Dise˜o de GLC . . . . . Gram´ticas regulares . . . . . . . ıa n 3. . . . . . . . Lenguajes Regulares . . a 3.2. . . . . . . . . .2. .5. . . . . . 103 II Lenguajes libres de contexto y sus m´quinas a 109 111 4. . . . . El teorema de bombeo . . . .1. . .2. . Formalizaci´n de las GLC . . . 101 3. . . . . . . . . . . . .1. . Gram´ticas regulares . 113 a 4. . . . . . . . . . . . . Aut´matas finitos y gram´ticas regulares . . . . . . . . . . . . . . o 3. . . . . o 3. . . . . . . . . 101 3. . . . . . . . . . Conversi´n de AF a ER . . . . . . . . . . Equivalencia de expresiones regulares y aut´matas finitos . . . . . . . . .4. . . . . . 115 o 4. . . . . .1. . . . .2. . . . . Metodolog´ de dise˜o de las ER . . . . . 3. Lenguajes y gram´ticas libres de contexto (LLC y GLC) . . . . .1. . . . . . . . . . . . . . . .3. . . . . . . . . .5. . . . . a 3. . . . . o 3. . .2. . . . .6. .´ INDICE GENERAL 3. . . . . . o a vii 79 80 81 81 83 86 88 89 90 91 95 96 96 99 3. . . . . . . . . .

. . . . . . . . . . . . . . . . GLC para la concatenaci´n de lenguajes . . . . . . . . . 119 a 4. . . . . .4. . . . . . . . . . 125 o 4. . . . . . . . . . . . Adaptaci´n de GLC . . . . . . . . . . . 127 a 4. . . Derivaciones izquierda y derecha . . . . . . . 119 o 4. . . . . . . . . . . . . Aut´matas de Pila o 145 5. . 117 o 4. . . 136 4. . . . . . . . . . .3. . . . . Teorema de bombeo para los LLC . . . . . .5. . . . . . .2. . . . . . . . . . . . . . . .6. . . . . . . . . 151 o 5. . . . . . . . Eliminaci´n de reglas inaccesibles . . . . . . . . . .9. . . . . . . . . . 147 n 5. . .8.9.1.8. . . .8. . . . . . . . .5. Eliminaci´n de reglas A → ε . 129 o 4. . . . . . Transformaci´n de las GLC y Formas Normales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . Propiedades de decidibilidad de los LLC . . . . . . . . 149 o 5. Arboles de derivaci´n . . . .10. Ejercicios . . . . . . . . Gram´ticas libres y sensitivas al contexto . . 122 u 4. .11. .3. . . . . . . . . . . . . . . . . . . . . . . . . . . .1.2. . . . . . . Formalizaci´n de los AP . . . . . . . . . . . . . . . . . . . 138 4. . . . 146 o 5. . . . . . . . . . . . . . . . . . Dise˜o de AP . . . . . . . . . . . . . . . . Funcionamiento de los Aut´matas de Pila (informal) . . . . . . . 124 4. . . . . . . . . . . 131 o 4. . . . . . . . . . . . . 136 4. . . . . . . . . . . . . . . 141 5. . 132 4. . . . . . . . . . Relaci´n entre AF y AP . . . . . . . 128 o 4. . . . . . . . 121 o 4. . . . . . . . . . . . . . . . . . . . . 130 o 4. . Mezcla de gram´ticas . . .8. . . .1. . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . .2. . . . . Ambig¨edad en GLC . . . . Pruebas de correcci´n y completez .4. .1. . . .4. .4. . . . . . . . . . . . . . .4. Limitaciones de los LLC . . 118 o 4.5. . . Eliminaci´n de reglas A → B . . . .1. . . . . . .viii ´ INDICE GENERAL 4. . . . . . . . . . . 152 o . . . . . . . . Formas Normales . . . . . . . . . . . .7. . . . .2. . . . . .8. .4.4. . .2. . . . . . . . . . . . . . . . . . . . GLC para uni´n de lenguajes . . Combinaci´n modular de AP . . . .

. . . .´ INDICE GENERAL 5. . Funcionamiento de la m´quina de Turing . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . .6. . . . . . Comparaci´n de las MT con otras m´quinas . . . .4. . .5. . . . 177 o 6. . . . 178 o 6. . . . . . . . . . . . . . .2. . . . . . . . .4. . . . . . . . . . . . . . 152 5. . 160 5. . MT para c´lculos de funciones . . . . . . . 155 5. . . . . .8. . . . . . .2. . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . 188 6. . .1. . . . . . . . . .2. . . Configuraci´n . . . . Compiladores LR(0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . 181 o 6. . . . . . . . . . . . . . . . 179 a 6. . . . . . . . . . . . . . . M´quinas de Turing a 6. . L´ ımites de las MT . . . . . . . . . . . . . . . . . . . . . . . . . .1. . Problemas de decisi´n . . . . . . . . . Compiladores LL . . . . . . . . . . . . . .2. . . . . . . . . . . . . . .5.1. . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . .6. . . 184 o a 6. . . . . Relaci´n entre aceptar y decidir . . . . . . . . . . .7. . . . . . . . . . . . . 191 . . . . . . . . . . Formalizaci´n de la MT . . . . . . . . . . 178 6. . . . M´quinas de Post .1. . . . . . .6. . . . . . . . . . . . . . . . . Principio de previsi´n . . . . . . . . . . . . .2. . 182 o 6. . . . 184 a 6. . . . . . . . . . . . . . . . . Tesis de Church . . . Palabra aceptada . . . . . 183 6. C´lculos en MT . . . . . . . . . . . . . .7. . . . . . . . . . 174 o 6. . . . . . . Relaci´n entre configuraciones . . . . . . . . . . . Relaci´n entre AP y LLC o ix . . 162 III M´quinas de Turing y sus lenguajes a 167 169 6. . . . . . . . 178 a 6. . . . . . 173 o 6. . . . . . . . . . . . . . . . . . . . . . Configuraci´n “colgada” . . . 187 o 6. . . . . . . . . . . . .6. . . .2. . . . . . Ejercicios . . . . . . . . 169 a 6.5. .2. . . . . .5. . . . . . . . . . . . . . . . Equivalencia entre MP y MT . . . . Formalizaci´n de las MP . . . . .3.6. . . . . . . . . 156 o 5. . . . .

. . . . . . . Ejercicios . . 192 ıa 6. . .7. . . .1. . . .8. . . . . 195 . . . . . . . . . . . . . . . . . . . . . .9. . . . . . . . . .´ INDICE GENERAL 1 6. 191 6. . . . . . . . . . . . . . . MT en la jerarqu´ de Chomsky . . . . . . . El problema del paro de MT . . . . . . . . . . . . .

2 ´ INDICE GENERAL .

quedar claro que este repaso queda fuera del ´rea de aut´matas y lenguajes formales. adem´s de recordar nociones e a que pueden no estar frescas. suficientemente precisa. a o para nuestros prop´sitos es suficiente. para un o verdadero matem´tico. Es por esto que en este e ıa cap´ ıtulo presentamos los conceptos m´s b´sicos de dicha Teor´ de Conjuntos. sin embargo. Conjuntos El fundamento m´s importante para el estudio de los lenguajes y aut´matas es la Teor´a a o ı de Conjuntos. sino que unicamente haremos a ıa ´ un repaso. Para los lectores que requieran una introducci´n o ıa o m´s exhaustiva a la teor´ de conjuntos y temas afines.}. . estaremos dio ciendo en realidad “expresar en t´rminos de la Teor´ de Conjuntos”. y se parece a la noci´n de clase. u denotado por N. . Por otra a o parte. especialmente en teor´ de conjuntos. Un objetivo adicional del presente cap´ ıtulo es uniformizar la notaci´n. 2.1. que var´ bastante de libro a libro. no es nuestra intenci´n hacer una introducci´n para un lector que no tenga ninguna o o base en matem´tica. {1. recomendamos textos como [19].Cap´ ıtulo 1 Preliminares En esta parte repasaremos brevemente algunas nociones y notaciones que ser´n necesarias a para comprender adecuadamente el resto del material de este libro. a a ıa La idea de un conjunto como una colecci´n de individuos u objetos no es. o Un conjunto que vamos a utilizar con frecuencia es el de los n´meros naturales. siempre que hablemos de “formalizar” una noci´n. a ıa 1. En efecto. 3 . sin embargo. . lo cual quiere decir que citamos expl´ o ıcitamente cada uno de sus elementos. Los conjuntos pueden expresarse de dos maneras b´sicamente: a En extensi´n. ayudando al lector a detectar sus puntos d´biles. Debe. 3.

el tama˜o de {a. a Dos conjuntos A y B son iguales. j ∈ A. tenemos tambi´n x ∈ B. A ⊆ A para e e o cualquier conjunto A: todo conjunto es subconjunto de s´ mismo. {2. 5} que contiene exactamente los n´meros 1. {b. si y s´lo si tienen los mismos elementos. que es un subconjunto propio de ´ste. b. indicado como {a. c}}. o e . c}. y se representa como n u |A| para un conjunto A. pues tanto i como j son elementos cualquiera de A. por ejemplo. hay que indicarlo expl´ ıcitamente. Por ejemplo. i ∈ A. e A = B ssi A ⊆ B y B ⊆ A. c} ⊂ {a. {a. c}. c}. Para indicar que un subconjunto contiene menos elementos que otro. {2. u En intenci´n. El conjunto sin elementos (vac´ se representa por ∅ o bien por {}. 3 y 5. c}} es 2 y no 3. es decir. A ⊆ B cuando siempre que x ∈ A. entonces |A| < |B|. {1. que A es subconjunto de B. 3}} = {{3. pero hay conjuntos que no o n tienen un n´mero determinado de elementos. b. en vez de citarlos expl´ ıcitamente. por o a ejemplo. i < 6}. como en A = {2. a El tama˜o de un conjunto es el n´mero de elementos que contiene. 4}. dando una descripci´n precisa de los elementos que forman parte del o o conjunto. Obs´rvese que de acuerdo con esta definici´n. como en B = {{a}. {2. y significa que A implica B y tambi´n B implica A. b. Un caso extremo es el ı conjunto vac´ que es subconjunto de cualquier conjunto. 1 Por ejemplo. y el tama˜o de ∅ es cero. 3}. PRELIMINARES como en el conjunto {1. se escribe A ⊂ B. el conjunto {a. Los conjuntos u pueden contener conjuntos como elementos. A = B. o m´s o a a t´cnicamente. j ∈ A. c} es subconjunto e de {a. Para indicar que a no est´ en B se escribe a ∈ B. Claramente. c} es 3.4 CAP´ ITULO 1. x ∈ A ssi x ∈ B. y si e e A ⊂ B. si decimos. que denotan mediante ´reas cerradas (por ejemplo a 1 “A ssi B” se lee “A si y s´lo siB”. estos se llaman “infinitos” y ser´n discutidos u a m´s adelante. Por ejemplo. ıo. c} ⊆ {a. Por ejemplo. o La notaci´n A ⊆ B significa que el conjunto A est´ “contenido” en el conjunto B. donde se supone que los n´meros impares cumplen la condici´n impar(i). pues tiene 2 elementos. vemos que en los conjuntos el orden de los elementos es irrelevante. Si necesitamos que sean distintos. {b. i = j. Sin embargo. el tama˜o de {{a}. Obs´rverse tambi´n que si A ⊆ B. c}. 3. entonces |A| ≤ |B|. como en la expresi´n i. el conjunto del punto anterior u puede ser visto como {i ∈ N|impar(i). y que cada elemento del conjunto es distinto de todos los otros elementos. no estamos suponiendo que i sea distinto de j. La definici´n de “tama˜o” parece muy clara. ıo) La notaci´n a ∈ B significa que a es elemento o est´ contenido en el conjunto B. 4}. 2}. Por ejemplo. b. En otras palabras. siendo el primero {a} n y el segundo {b. Se supone que en los conjuntos no hay repeticiones de elementos. o Representamos a los conjuntos con letras may´sculas. 3} ∈ {1. Por n n ejemplo. esto o es. 1}. Las relaciones de inclusi´n entre conjuntos se acostumbran representar gr´ficamente meo a diante los llamados “diagramas de Venn”.

2. e se espera que A ⊆ C. y el 10 es el resultado. a 1.2. Operaciones Llamamos operaciones a formas est´ndar de combinar o transformar objetos matem´ticos. como es el caso de la suma o la o multiplicaci´n de n´meros. 2 Tambi´n es asociativa. es decir. A ∪ B = {x|x ∈ A o x ∈ B}.1. como se aprecia intuitivamente en la figura 1. y B es subconjunto de C. Es unaria si tiene un s´lo operando. a a Por ejemplo. que contiene los elementos del conjunto A y o tambi´n los del conjunto B. 1. 2. La uni´n de conjuntos es conmutativa. El 3 y el 7.1. lo cual se como prende f´cilmente visualizando las ´reas correspondientes en el diagrama de Venn de a a la figura 1. 3} ∪ {3. como en la o operaci´n de la ra´ cuadrada.1: Diagrama de Venn elipses) los conjuntos.1. Por ejemplo. por ejemplo. Operaciones con conjuntos Sean A y B conjuntos. Se dice que es asociativa si x ⊗ (y ⊗ z) = (x ⊗ y) ⊗ z. Una operaci´n o o es binaria cuando tiene dos operandos. que son los objetos que se combinan. pero no la resta. si un conjunto A es subconjunto de B y ´ste es subconjunto de C. e 2 En seguida se presenta una prueba matem´tica de esta propiedad.1.1. e {1. pues el ´rea de A a est´ obviamente contenida dentro de la de C. a . que en la expresi´n “3 + 7” combina los o o objetos 3 y 7 dando como resultado el objeto 10. el “+” es la operaci´n. son los operandos. o u la suma es asociativa.1 se ilustra la situaci´n donde un conjunto o A es subconjunto de B. pues podemos ver que 8 − (4 − 3) = (8 − 4) − 3. por ejemplo. una operaci´n habitual es la suma. 4}.2. 4} = {1. 3. o ız Una operaci´n “⊗” es conmutativa si x ⊗ y = y ⊗ x. CONJUNTOS 5 C A B Figura 1. En los diagramas de Venn es f´cil visualizar relaciones que de otra forma pueden parecer a complejas.1. en la figura 1. denotada por A ∪ B. Se definen las siguientes operaciones con los conjuntos: Uni´n de conjuntos. Por ejemplo.

(1. 4. usando la figura 1. 2{1.2 es f´cil verificar una relaci´n tan compleja como A ∩ B = a o c c c (A ∪B ) . 2. c)) que ((a. identificando las dos maneras de obtener el ´rea sombreada de la figura. 2. . a Por ejemplo. 3). es un caso particular de la diferencia. denotada como 2A . 2. a un elemento (a. {1. La diferencia de conjuntos no es ni asociativa ni conmutativa. etc. 3. para todo conjunto A. . d. Recu´rdese que el conjunto vac´ siempre forma parte de todo conjunto potencia. es decir. Con ayuda de diagramas de Venn es f´cil comprender las operaciones de conjuntos. .2. siguiendo a ya sea el lado izquierdo o derecho de la ecuaci´n. 4} = {3}. 3} − {3. 3}}. En un diagrama de Venn la intersecci´n de dos o elipses se ilustra por el ´rea que ambas comparten. 5} = {(1. . . c) de un producto cartesiano A × B × C se le llama tripleta. (2.3} = {∅. escrita A ∩ B. Sea U un universo. complemento de los n´meros pares son los n´meros u u u c c nones: {2. 2} × {3. {1}. que contiene los elementos de A que no est´n en B. . lo cual se puede probar f´cilmente con un ejemplo (ver secci´n de a o ejercicios). 5). 4). y similarmente a un elemento (a. Por ejemplo. 3} ∩ {3. n Producto Cartesiano de dos conjuntos. b) que uno (b. . Complemento de un conjunto. si el universo son los a n´meros naturales {1. A − B. .2. La e ıo A notaci´n “2 ” recuerda que el tama˜o del conjunto potencia de A es 2 elevado a la o n potencia del tama˜o de A. o Diferencia de conjuntos. por ejemplo {1. contiene como elementos a todos los subconjuntos de A. {1. {1. b. b). En otras palabras. Por a ejemplo. 2A es un conjunto de conjuntos. es el conjunto de pares ordenados (a. a). 5. {1. 5)} El tama˜o de un producto cartesiano A × B es |A| multiplicado por |B|. (2. 5} = {1. 4} = {1. b) tales que a ∈ A y b ∈ B.} = {1. b. A − B = {x|x ∈ A y x ∈ B}. como se puede n verificar en el ejemplo anterior. ni asociativo.}. La resta o diferencia de conjuntos no siempre le “quita” elementos al primer conjunto. e) de un producto cartesiano A × B × C × D × E se le a llama qu´ ıntuplo. c). pues no es lo mismo un par (a. que contiene los elementos que pertenecen sio mult´neamente al conjunto A y al conjunto B.6 CAP´ ITULO 1. denotada por Ac contiene los elementos del universo que no est´n en A. 3}. 3). 2. 2}. c. PRELIMINARES Intersecci´n de conjuntos. 3. a Potencia de un conjunto A. esto es. como es el ´rea sombreada de la a a figura 1. {2}. |2A | = 2|A| . 2}. {1. 4. A ∩ Ac = ∅. pues no es lo mismo (a. {1. adem´s. c. entonces el complemento del conjunto A. esto a es. Por ejemplo. o A un elemento (a. (2. 6. {2. El producto cartesiano no es conmutativo. La intersecci´n es conmutativa y asociativa. 2. 3} − {4. {3}. esto es. Por ejemplo. . 3}. d) de un producto cartesiano A × B × C × D se le llama cu´druplo. cuando el primer conjunto es considerado como el “universo” que contiene todos los elementos posibles. (1. b. A ∩ B = {x|x ∈ A y x ∈ B}. 3}. Claramente A ∪ A = U . (b. Por ejemplo. A × B. . 4). 2. 2A = {x|x ⊆ A}.}.

Es decir. a 1.3.1. CONJUNTOS 7 A B Figura 1. debemos llegar a concluir que x ∈ (B ∪ A). de la manera siguiente: A ∩ B = ((A ∩ B) ) = (A ∪ B ) . Vamos a hacer esta prueba enseguida. entonces. Hemos visto que A ∪ B ⊆ B ∪ A es equivalente a decir que si un elemento x es parte de A ∪ B.La intersecci´n de conjuntos puede expresarse usando la uni´n y el compleo o C C C C C mento. Equivalencias de conjuntos La igualdad A ∪ B = B ∪ A es una de las llamadas “equivalencias de conjuntos”. queremos probar o que A ∪ B = B ∪ A para conjuntos cualesquiera A y B. si x ∈ B tendremos x ∈ A ∪ B. (A ∩ B)C = AC ∪ B C . que son muy utiles para reemplazar una expresi´n con operaciones de conjuntos por otra equivalente ´ o pero m´s conveniente –por ejemplo m´s simple. entonces x tambi´n debe e ser parte de B ∪ A..2: Intersecci´n de dos conjuntos o Ahora probaremos la conmutatividad de la uni´n de conjuntos. La igualdad A ∪ B = B ∪ A puede descomponerse en A ∪ B ⊆ B ∪ A y B ∪ A ⊆ A ∪ B. Leyes de De Morgan (A ∪ B)C = AC ∩ B C . . x ∈ A o bien x ∈ B o o (o ambos a la vez). en los dos casos podemos concluir que x ∈ A ∪ B. Leyes distributivas A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C). que era lo que necesit´bamos para nuestra prueba. pues A ∪ B contiene todos los elementos de A. A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C). entonces seguramente x ∈ A ∪ B. para los conjuntos A y B. siendo la otra parte enteramente similar. Ejemplo. Esto es. Como x ∈ (A ∪ B). por ejemplo A ∪ B ⊆ B ∪ A. Si x ∈ A. A ∩ B = B ∩ A. por definiciones que hemos visto antes. En consecuencia. lo que tenemos que probar es lo siguiente: suponiendo que x ∈ (A ∪ B). Doble complemento (AC )C = A. Similarmente. Entonces vamos a probar una de ellas. En la lista siguiente presentamos algunas de a a las equivalencias de m´s frecuente uso: a Leyes conmutativas A ∪ B = B ∪ A. de acuerdo con la definici´n de uni´n.1.1.

milia del autor. 1). Marta)}. (Leonor. en la faı ıas. (1. para x ∈ D. (Leonor. 3). (1. compaginando el ´rea asociada a a cada uno de los lados de la ecuaci´n. PRELIMINARES Las equivalencias de conjuntos pueden verificarse f´cilmente usando los diagramas de a Venn. (1. Desde luego.8 CAP´ ITULO 1. estamos familiarizados con la familia vista como una relaci´n entre o personas. 2. 3). 3)} es reflexiva. (2. (1. Por ejemplo. 2). El´ ıas). (2. Leonor). si D = {1. Marta). El´as) ser´ inaceptable. (Elias. 3} × {1. P × P es {(Leonor. 2). Marta}. esto es: R−1 = {(y. Arturo). Arturo). 1). por ejemplo. (2. esto es. 2. (Marta. el par (El´as. . pues nadie puede ser padre de s´ mismo. (3. 3)} es {(2. 3). y) ∈ R} Por ejemplo. (Arturo. (El´as. (2. (Arturo. el producto cartesiano ıas. (1. (3. Arturo). 3}. (Marta. (1. Leonor). 3). ı (Arturo. pues Leonor y El´ son padres de Arturo y ıas Marta. (El´ ı ı ı ıas.}. x) | (x. ≤ = {(1. . a aquella en donde se invierte el o orden de los pares ordenados. 2). Arturo). (El´as. ni ı ı ıa ı siquiera en las liberales familias modernas. 1)}. Esta definici´n matem´tica de relaci´n no parece tener mucho que ver con la idea intuo a o itiva de que una cosa “tiene relaci´n con otra”. 1). 2). a relaciones “x es padre de y”. y) corresponden. 2). Cabr´ preguntarnos qu´ caracter´ ıa e ısticas deber´ ıa tener una relaci´n para ser aceptable como “x es padre de y”. (1. 3} o con los elementos {(2. la relaci´n en {1. (El´as. . Relaciones y funciones Las nociones de relaciones y funciones pueden derivarse directamente del producto cartesiano de conjuntos. 2).4. o Se dice que una relaci´n binaria en D × D es reflexiva cuando contiene todos los pares de o la forma (x. por ejemplo la relaci´n “≤” contiene los pares de n´meros naturales tales que el primer o u componente es menor o igual al segundo. Marta). denotado por R−1 . Arturo). ıa o Por ejemplo. 3)} no lo es. Dado un cono junto de personas. Leonor). pero {(2. 1). Un subconjunto de este producto cartesiano es. (Marta. Leonor). 3). cuyos pares (x. El´ Arturo. y que nos permitir´ contestar ıan a esta pregunta (ver secci´n de ejercicios). pero en realidad ambas nociones s´ correo ı sponden. se llama relaci´n a todo subconjunto de un producto carteo siano. El´as). A continuaci´n discutimos o o algunas caracter´ ısticas que las relaciones pueden tener o no. {(Leonor. o 1. 2. El´as). en el ejemplo anterior de las relaciones familiares no cualquier subconjunto del producto cartesiano podr´ ser candidato a corresponder a la relaci´n “x es padre de y”. el inverso de la relaci´n {(1. . Consideremos m´s espec´ a ıficamente la relaci´n “x es padre de y”. (Leonor. x). o Se llama inverso de una relaci´n R. (El´ Marta)}. (Leonor. (Arturo. de la forma que hemos comentado antes. Marta). (1. Marta). Arturo). En efecto. 3). El´ ıas). 2).1. por ejemplo P = {Leonor. (Marta. (1. Por ejemplo. esto es. (3.

(1. (3. 3)}. porque tiene el par (3. (1. es decir. 1). 3). (1. (2. los pares ordenados asocian a cada primer componente un unico segundo componente. 2)}. 2). 2). (1. (1. (3. 1). y) tambi´n contiene o e e (y. 2). ı. (3. Una relaci´n es transitiva cuando siempre que contiene los pares (x. z). 3). pero la o o relaci´n de cada quien con su padre s´ lo es (cada quien tiene a lo m´s un padre). Se pueden tener tambi´n combinaciones de varias cerraduras.1. (1. 1) que no era indispensable agregar. b) ∈ f . 2). (1. 1)} no lo es. ıa (2. 3). (2. (3. As´ si f (1) = 2. 2). 1). pero {(2. (3. 2). en vez de (a. 3)} es transitiva. 3). (1. no es la cerradura o reflexiva de R1 . a R se le agregan los pares ordenados que sean necesarios hasta que se vuelva reflexiva. 3). (1. (1. (1. 3). (3. Por ejemplo. o (2. (1. que en el caso de {(2. z) tamo bi´n contiene (x. (2. 1). para una funci´n o o f . 3)} es {(2. Por ejemplo. Similarmente definimos la cerradura sim´trica de una relaci´n. {(2. 3)} no es una funci´n. (1. a ´ . 2). (3. Muchas veces consideramos que las funciones “obtienen una salida a partir de una entrada”. 1)} es sim´trica. Por ejeme plo. 2). (2. 3). 1)}. 3). (1. (1. 1). Decimos que la cerradura reflexiva es la menor extensi´n de la relaci´n o o original porque no deben a˜adirse m´s pares ordenados que los estrictamente necesarios para n a volverla reflexiva. Por ejemplo. 1). (3. (1. 2). 1)} es {(1. 3). Es decir. o o tal que R ∪ ∆ es reflexiva. Un caso particular de las relaciones son las funciones. 2). (1. 2). Llamamos cerradura reflexiva de una relaci´n R. 1). 3)} s´ lo es. 1). o ı a La notaci´n habitual para las funciones es f (a) = b. (1. 2). a˜adiendo los pares ese o n trictamente necesarios para que se vuelva sim´trica. 3). aunque inicialmente R no lo haya sido. (1. sino que m´s bien en ciertas a situaciones es m´s util tomar uno u otro punto de vista. aunque cumple con ser una extensi´n de R1 y tambien con ser reflexiva. 1). Esta manera de conceptualizar las funciones no se contrapone a la idea de funciones como relaciones especiales (esto es. 3). 1). la relaci´n {(2. (2. 3). (2. 3)}. 3)} es {(2. la menor extensi´n de R. se considera que a partir de la entrada 1 se obtiene la salida 2. 2). 2). (2. (1. (1. 2). la cerradura sim´trica de e e {(2. (3. pero {(1. (1. conjuntos de pares ordenados). (1. la relaci´n de hermanos no es una funci´n. (1. (1. la cerradura reflexiva de R1 = {(2. (1. 2). Por ejemplo. 1). 3). 3). la relacion {(2. e (1. 3). la relaci´n ´ o {(1. Por ejemplo. 1)} no lo es. 2). 1). (3. (1. CONJUNTOS 9 Una relaci´n es sim´trica si y solo si siempre que contiene un par (x. 2). (1. 1). (2. como la cerradura reflexiva e y transitiva. 2). y) y (y. o ı Tomando como ejemplo las familias. (1. 3). la cerradura transitiva de la relaci´n {(1. 1). 3). R∪∆. (1. En otras palabras. 3). Por ejemplo. (3. 3)} ser´ {(2. 2). pero e o {(2. (2. x). 2).1.1)}. La cerradura transitiva tambi´n se define de una manera enteramente similar. que son relaciones en que no hay dos pares ordenados que tengan el mismo primer componente. (1. 2). pero en realidad ambas notaciones son equivalentes.

a ı o de los elementos. decimos que A es el dominio de la funci´n y B es el codominio. en una secuencia s´ es relevante la repetici´n ı. (2. As´ 1. 9). Una funci´n f : A → B puede verse como o o un mapeo que relaciona cada elemento del dominio A con un elemento del codominio B. la funci´n cuadrado que presentamos antes no es sobreyectiva. 9”. la funci´n o {(1. b) ∈ f entonces a ∈ A y b ∈ B. la funci´n cuadrado : N → N relaciona cada n´mero natural con su cuadrado. (3. 2.1. entonces su inverso f −1 es tamo bi´n una funci´n (total). pues varios hermanos comparten un mismo padre. 1). 3 = 1. 2. como el 7. pues no se puede expresar su tama˜o como un n´mero. 3. que sirve para . Esto es. u u Si una funci´n f es a la vez sobreyectiva e inyectiva. o Una funci´n es inyectiva. la comparaci´n de tama˜os de conjuntos infinitos no es tan simple como o n en el caso de los conjuntos finitos. . z) y (y. y por lo tanto el par (3. pues por ejemplo. 3). 2. cuyo tama˜o no puede expresarse con un n´mero. tambi´n llamada uno a uno. 2. 5) no forma parte del dominio de la funci´n. A las funciones que cumplen con ambas propiedades se les llama e o biyectivas. ordenados de menor a mayor. Por ejemplo. (3. z) tengan el mismo segundo elemento.}. por lo que 1. . (2. . 3 = 2. como ser´ el caso de la funci´n de resta a ıa o en los naturales: resta : N × N → N. (3. pues hay o muchos n´meros. con un n´mero de elementos determinado– a u tambi´n puede haber conjuntos infinitos. Adem´s. 3. (2. .}. Conjuntos infinitos Adem´s de los conjuntos “finitos” –esto es. que es la seo cuencia de n´meros naturales impares menores que 10. 1. cuando para cada elemento del o e codominio hay un unico elemento del dominio. no se presenta el caso de que ´ dos pares como (x. Una funci´n es sobreyectiva si cada elemento del codominio aparece en alg´n par ordeo u nado. 5) no tiene un resultado en los naturales. 3.10 CAP´ ITULO 1. Una secuencia es una sucesi´n ordenada de elementos.5. 2. Sin embargo. pero {(1. 3. e n u u un ejemplo es el conjunto de los n´meros naturales N = {1. 1)} s´ lo es. . 3). n u En estos casos se aplica lo que se conoce como “el principio del palomar”. mientras que una funci´n es parcial cuando no o o est´ definida para todos los elementos del dominio. La u diferencia entre un conjunto y una secuencia es que en una secuencia el orden s´ importa y ı en un conjunto no. 7. o a como en el ejemplo de la funci´n cuadrado. que no son el cuadrado de ning´n otro. 3)} no es inyectiva. . Por ejemplo. Se dice que una funci´n es total cuando est´ definida para todos los elementos del dominio. 5. PRELIMINARES Escribimos f : A → B para indicar que si (a. A´n a estos conjuntos u pueden aplicarse todas las operaciones antes descritas. ı Siguiendo el ejemplo de las familias. como “1. 1. es o u decir. 4). 2). resta(3. Por ejemplo. 2). la funci´n que asocia a cada persona con su padre o no es inyectiva. cuadrado = {(1.

. . 1). Esta idea tan sencilla puede aplicarse para comparar el tama˜o de conjuntos infinitos. A estos conjuntos se les llama incontables. pero una muy simple consiste en asignar a cada n´mero el doble de u s´ mismo. menor o igual a la cantidad de lugares disponibles en el palomar. y no va a haber dos n´meros que compartan el mismo par. CONJUNTOS 11 comprobar si dos conjuntos tienen o no el mismo tama˜o. . . ver secci´n de ejercicios). esto se puede hacer u u de muchas maneras. . (1. que est´ formado por aquellos n´meros o / a u . En efecto. sean N ıcil y P los naturales y los pares. Sup´ngase que se quiere comprobar n o si en un palomar la cantidad de palomas con que se cuenta es mayor. esto es.1. u e Otro ejemplo de conjunto infinito contable es el conjunto de pares de n´meros.1. por ejemplo. S3 . Similarmente se puede ver si no hay m´s lugares a a que palomas. 1). n As´ se puede verificar. pero es mucho a menos evidente que |N| ≤ |P|. A cada n´mero natural le debemos poder asignar un n´mero par distinto. S2 . cosa que vamos a mostrar usando el principio del palomar. concluimos que no u u hay m´s n´meros naturales que pares. Adicionalmente los conjuntos finitos tambi´n son contables. Como esto se puede hacer para todos ı los n´meros. 3). (2. hay conjuntos infinitos “m´s grandes” que los conjuntos a infinitos contables. Una manera simple de verificarlo es asignar a cada una de las palomas un sitio disponible. 2). Un ejemplo de conjunto incontable es 2N . un resultado dif´ de aceptar intuitivamente. se sabe que no hay m´s palomas que lugares. en el sentido de que no van a alcanzar los elementos del conjunto contable para asignar uno a cada elemento del conjunto “grande”. o Aunque resulte sorprendente. (4. (1. respectivamente. Es f´cil ver que |P| ≤ |N|. esto es. u N × N = {(1.} Sup´ngase ahora el conjunto D = {n ∈ N|n ∈ Sn }. 2). si 2N es contable. cuando sus o e elementos pueden ponerse “en una fila”. y si es posible hacerlo para todas las palomas. . En u otras palabras. N En efecto.} (La prueba de que es contable se deja como ejercicio.. (2. As´ verificamos que el conjunto de palomas tiene el mismo tama˜o que el de ı n lugares disponibles. el llamado “Teorema de Kantor” establece este hecho. concluyendo entonces que 2N en realidad es incontable. al 7 le asignamos el par 14. (3. 1).Un conjunto infinito es contable. 1). etc. por ejemplo. o dicho de una manera m´s t´cnica. que el conjunto de los pares tiene el mismo tama˜o ı n que el de los naturales. el conjunto potencia de los naturales. tambi´n llamado enumerable. La prueba del Teorema de Kantor es muy simple y se basa en empezar suponiendo que ı o 2 s´ es contable. a u Definici´n. sus elementos pueden ser puestos en una sucesi´n como sigue: o 2N = {S1 . los conjuntos contables infinitos tienen el mismo tama˜o que el conjunto de n los n´meros naturales. cuando sus a e elementos pueden ponerse en correspondencia uno a uno con los n´meros naturales. y se llega a una contradicci´n.

S2 . . M´s a´n. debe ser igual a o a Sk para una cierta k. o Si la respuesta es negativa.2. Razonamientos l´gicos como el anterior pueden sistematizarse haciendo uso de s´ o ımbolos que representan afirmaciones. tenemos que k ∈ Sk . Algunos de estos n´meros son el 2307. Esto se representa matem´ticamente o e a No estudiaremos aqu´ el c´lculo proposicional. . como en el caso del 175. el u u 400. Hay que comprender.. como el 1023. limit´ndonos a revisar los aspectos realmente indispensı a a ables para manejar el material de este texto. de forma que la soluci´n al problema planteado sea m´s sencilla. lo o / que es una contradicci´n. Como por hip´tesis todos los subo conjuntos de los naturales fueron puestos en la sucesi´n S1 . ya sea por la complejidad de aquel. por la definici´n de D. si son pares o u terminan en 7. El lector interesado en estudiar el c´lculo proposicional puede a consultar textos como [19]. se sabe que para todo conjunto infinito A. que se llaman proposiciones en el llamado C´lculo proposia cional. entonces tambi´n B es cierto. Manejo l´gico de enunciados o En el proceso de soluci´n de problemas.12 CAP´ ITULO 1. as´ como el 1023 y el 175. 3 . por lo que hay toda una jerarqu´ de “infinitos”: ıa |N| < |2N | < |22 | < . tenemos que el conjunto o D. por la definici´n de D. en muchas situaciones es necesario transformar el enunciado en o a u otro equivalente. o a Por ejemplo. . A´n dentro de los conjuntos incontables hay unos conjuntos “m´s grandes” que otros. . PRELIMINARES n que no aparecen en el conjunto Sn que les corresponde. lo cual en ocasiones no es sencillo. La idea es que un n´mero cumple la condici´n cuando. –que est´ formado de naturales– debe hallarse en dicha sucesi´n. . por ejemplo. o bien ni es par ni termina en 7. consideremos el conjunto de n´meros naturales tales que. el 2307 o el 400. que es una rama de las matem´ticas. entonces contienen alg´n cero (0). entonces. o Concluimos que 2N es incontable. k ∈ Sk . lo que tambi´n es o e una contradicci´n. entonces. un aspecto clave es comprender cabalmente el o enunciado. Ahora nos preguntamos si k aparece o no en el conjunto D: Si la respuesta es afirmativa. ya sea contiene alg´n u o u cero. N 1. u a En efecto. o bien porque la forma poco rigurosa en que manejamos el lenguaje cotidiano puede provocar errores de interpretaci´n. es decir. porqu´ el 175 corresponde ı e al enunciado. 3 a En el ejemplo presentado arriba es crucial comprender el significado l´gico de la llamada o implicaci´n: Si A es cierto. se tiene que |A| < |2A |.

como ıa a “Si vamos a Yucat´n el clima ser´ c´lido pero no seco. donde el s´ a a o ımbolo “¬” representa la negaci´n de lo que sigue a su derecha.. si un o pap´ dice a su ni˜o: “Ir´s al cine si haces tu tarea”. que A es cierto exactamente en los mismos casos en que B es cierto. La implicaci´n A ⇒ B es cierta siempre que B o es cierto –independientemente de si A es cierto o no–. Por ejemplo. o o que significa que sus dos argumentos son equivalentes l´gicamente. . como en “A ⇒ B”. u La implicaci´n no es manejada rigurosamente en el lenguaje cotidiano. o a o aunque en este caso se deja abierta la posibilidad de que el ni˜o no vaya al cine aunque haya n hecho su tarea. Si el pap´ quisiera considerar todos los casos posibles. denotado por “⇔”. La implicaci´n. en realidad no est´ dando informaci´n a n a a o sobre qu´ pasar´ en caso de que el ni˜o no haga la tarea. As´ A ⇔ B quiere decir o ı. son llamados gen´ricamente conectivos o o o e l´gicos. Representando “ir al cine con el n a s´ ımbolo C y hacer la tarea con T . a o Resumiendo. Por ejemplo. o Otro s´ ımbolo l´gico de utilidad es la llamada “doble implicaci´n”. la frase se representar´ con la f´rmula T ⇒ C. a´n cuando ambos interlocutores e a n u sobreentienden que en ese caso el ni˜o no ir´ al cine. como e era el caso del n´mero 175 en el ejemplo presentado. Similarmente se pueden representar frases m´s complejas. tendr´ que decir a ıa algo como “ir´s al cine si y s´lo si haces tu tarea”. Si quisiera ıa o el pap´ dar informaci´n para atender el caso en que no se hace la tarea. mediante la llamada disyunci´n a o (∨). o bien con la conjunci´n (∧). o . con la f´rmula (Y ⇒ (C ∧ ¬S)) ∧ (O ⇒ (C ∧ S)). tendr´ que decir a o ıa algo como “S´lo si haces tu tarea ir´s al cine”. la conjunci´n.2. la negaci´n. algunas formas en que se expresa frecuentemente la implicaci´n “A ⇒ B” o son las siguientes: “Si A entonces B” “B si A” “B cuando A” “B siempre y cuando A” “A s´lo si B” o Otras frases tales como “Vamos a Yucat´n o a Oaxaca” o “El clima es c´lido y seco” a a tambi´n se pueden representar con s´ e ımbolos matem´ticos. MANEJO LOGICO DE ENUNCIADOS 13 usando el s´ ımbolo “⇒”. y tambi´n cuando A es falso.´ 1. para las frases unidas con o “y”. . la primera frase se a representar´ como Y ∨ O. si ir a Yucat´n se representa con Y e ir a Oaxaca con O. para las frases unidas con “o”. representado por la implicaci´n C ⇒ T . etc. mientras que si vamos a Oaxaca a a a ser´ c´lido y seco”.

1. y en las columnas a la derecha aparece el valor correspondiente de la proposici´n compuesta. En esa tabla de verdad tambi´n o o o o e podemos ver que la implicaci´n es simplemente un conectivo que tiene valor cierto en todos o los casos menos cuando A es cierto y B falso. viendo la tabla de verdad en la columna del “A ∨ B”.14 CAP´ ITULO 1. pero teniendo la garant´ de ´ ıa que el enunciado modificado es equivalente al original. la negaci´n y la implicaci´n. por ejemplo. PRELIMINARES 1. Doble negaci´n ¬(¬A) = A. vemos que tiene el valor “cierto” cuando tanto A como B son ciertos. o Leyes de De Morgan ¬(A ∧ B) = ¬A ∨ ¬B. disyunci´n. en la siguiente tabla de verdad se define el o comportamiento de los conectivos l´gicos de conjunci´n. ¬(A ∨ B) = ¬A ∧ ¬B. o . Podemos ver ahi que. en las f´rmulas con proposiciones tambi´n hay equio e valencias muy utiles. el conectivo de disyunci´n da “cierto” en todos los casos menos o cuando los dos argumentos son falsos. Desde luego que no son valores arbitrarios. o a Como en el caso de los conjuntos. Sin embargo. por ejemplo.2. sino que pretenden precisar el significado que tienen intuitivamente la disyunci´n. Es importante entender que los valores que aparecen en la tabla de verdad presentada arriba son definiciones. Vamos a considerar las siguientes equivalencias: Conmutatividad A ∧ B = B ∧ A. la conjunci´n. Tablas de verdad Una herramiente util para comprender y utilizar los conectivos l´gicos son las llamadas ´ o tablas de verdad. que tienen en los renglones cada caso posible de valores “cierto” o “falso” de las proposiciones elementales. esto contradice la manera en que a veces se maneja la disyunci´n en el lenguaje cotidiano. A ∨ (B ∧ C) = (A ∨ B) ∧ (A ∨ C). Implicaci´n A ⇒ B = (¬A) ∨ B. negaci´n e implicaci´n: o o o o o A 0 0 1 1 B 0 1 0 1 A∧B 0 0 0 1 A∨B 0 1 1 1 ¬A 1 1 0 0 A⇒B 1 1 0 1 En esta tabla de verdad el valor “cierto” se representa con 1 y el “falso” con 0. A ∨ B = B ∨ A. que nos permiten modificar enunciados. que por lo mismo no tienen que probarse. Por cierto. cuando se dice “O pagas lo o que debes o no te vuelvo a prestar”. se sobreentiende que ambas cosas no pueden ser ciertas a la vez. Distributividad A ∧ (B ∨ C) = (A ∧ B) ∨ (A ∧ C). Esto es congruente con la interpretaci´n que o dimos de la implicaci´n p´rrafos antes. Por ejemplo.

Hacemos notar que el material indicado como “nivel profesional” no incluye pruebas por inducci´n a lo largo del libro. Esto es debido al enfoque predominano temente ingenieril que se da al material de profesional. esta f´rmula es equivalente a: o o (¬(P ∨ T )) ∨ C Aplicando una equivalencia de De Morgan. Pruebas por inducci´n o Una forma de prueba que utilizaremos repetidamente en este texto es la prueba por inducci´n. queda como: (¬P ∧ ¬T ) ∨ C Esto es. Sirve para probar que una cierta propiedad es v´lida para todos los elementos de un o a conjunto infinito contable. u entonces contienen alg´n cero (0). o bien ni es par (¬P ) ni u u o termina en 7 (¬T ). PRUEBAS POR INDUCCION Doble implicaci´n A ⇔ B = (A ⇒ B) ∧ (B ⇒ A) o 15 Ejemplo. C a u que contiene alg´n cero. Las equivalencias de conectivos l´gicos se pueden probar haciendo las tablas de verdad o para las dos f´rmulas que se supone que son equivalentes. probamos la equivo alencia de la implicaci´n con la siguiente tabla de verdad.´ 1.El conjunto de n´meros naturales tales que. ya sea que el n´mero contiene alg´n cero (proposici´n C). Sea P que el n´mero es par. puede ser expresado de una forma u m´s simple usando las equivalencias.3. Por ejemplo.. . dejando las pruebas por inducci´n o para los estudiantes de posgrado. Entonces el enunciado original es: u (P ∨ T ) ⇒ C Usando la equivalencia de la implicaci´n. T que termina en 7.3. en la que se puede observar que o los valores de A ⇒ B y de (¬A) ∨ B son los mismos: A 0 0 1 1 B 0 1 0 1 ¬A 1 1 0 0 (¬A) ∨ B 1 1 0 1 A⇒B 1 1 0 1 1. si son pares o terminan en 7. que presentamos antes. Supongamos que se quiere probar que una propiedad P es cierta para todos los elementos de un conjunto infinito contable (C).

se prueba que P tambi´n es cierta o o o e para el siguiente elemento. pero 2i+1 < 2i+2 = 2(i+1). y con e u base en esta suposici´n. o o a existen muchas variantes de la inducci´n. postergando su estudio para las secciones donde se le utiliza directamente. como deb´ ıamos probar. Las pruebas por inducci´n no siempre son. como tener varias “bases”. ıa . por ejemplo.4. Por otra parte. n ∈ N. (inducci´n) Ahora. para probar propiedades de los n´meros naturales. Este paso se llama “base de la inducci´n”. y como tambi´n se cumple para el siguiente elemento. En efecto. la correcci´n de gram´ticas. e a y as´ sucesivamente. hasta llegar a c45 . o Despu´s se supone que la propiedad P es cierta para alg´n elemento ci de (C). supongamos que o o a queremos probar que todo n´mero natural es menor que el doble de s´ mismo. Para llegar a este a concepto es necesario definir antes otras nociones m´s elementales.16 CAP´ ITULO 1. pues 1 < 2. por lo que i + 1 < 2(i + 1). utilizaremos o u pruebas por inducci´n para probar. se verifica P(c0 ). sea c0 . esto es. llamada “hip´tesis de inducci´n”. Para probar que satisface la propiedad. Lenguajes Uno de los conceptos m´s importantes de este texto es el de Lenguaje. Para todas las definiciones a utilizaremos extensivamente la teor´ elemental de conjuntos. y como tenemos que se cumple para el siguiente elemento. Esta conclusi´n no es gratuita. u ı n < 2n. ya sabemos que se cumple para c0 . 1. En nuestro caso. esto es. esto es. entonces tambi´n e se cumple para c1 . Lo hacemos en dos pasos: (base) Primero comprobamos que para el caso del 1 se cumple. esto es. se cumplir´ para c2 . debemos comprobar que tambi´n se cumple para el siguiente n´mero. Como un ejemplo simple de la aplicaci´n de la inducci´n matem´tica. En efecto. Con base en los dos pasos anteriores se concluye que la propiedad P es cierta para todos los elementos del conjunto (C). suponiendo que para un n´mero i la propiedad se cumple. ci+1 . entonces i+1 < 2i+1. si i < 2i. e u i+1 < 2(i+1). No entraremos aqu´ en o ı detalles de esto. supongamos un o elemento de (C). como en los ejemplos que vimos en esta o secci´n. PRELIMINARES Inicialmente se prueba que es cierta para el primer elemento de (C). Lo mismo se puede hacer con cualquier otro elemento ı de (C). o u i < 2i. por ejemplo c45 .

. #. a. es s´lo uno de tantos alfabetos posibles. lo que o nos desviar´ demasiado de nuestros temas. o Con los s´ ımbolos de un alfabeto es posible formar secuencias o cadenas de caracteres. e Un caso particular de cadena es la palabra vac´ ε. a. entonces wvbra es la palabra abracadabra.1. b. La notaci´n usada para denotar la concatenaci´n o o de dos cadenas α y β es αβ. . contando las repeticiones. . a. aba. operaciones con lenguajes Un lenguaje es simplemente un conjunto de palabras. y . cuarenta. pero nosotros vamos a utilizar las letras a. Por ejemplo. b}. Σ∗ es otro. baba. r. Los s´ o ımbolos pueden ser cualesquiera.}. Un s´ ımbolo es una entidad indivisible. aa. la cual no tiene ninguna letra. tales como mxzxptlk.posiblemente vac´ ıastales que xvy = w. bb. . sus. aunque hay o o peque˜as diferencias t´cnicas. n e 7 Ver secci´n de ejercicios. Σ∗ = {ε. As´ el alfabeto del idioma espa˜ol. Por ejemplo. se supone que o forman una sola palabra (se concatenan). . 6 Por ejemplo. ladrones} es otro. (de una sola palabra). Puesto Las secuencias fueron definidas en la secci´n de preliminares. ıa. etc. La longitud de una concatenaci´n cumple la propiedad: |uv| = |u| + |v|. c. abb. En general utilizaremos la o notaci´n Σ para representar un alfabeto. aaa. Lenguajes. . |perro| es 5. la palabra “casa” es la o secuencia de letras c. pero no conmutativa o en el caso general. . z}. . 5 La prueba de estas propiedades requiere de una definici´n formal de las secuencias de caracteres. si w = abra y v = cada. Alfabeto. 4 Las cadenas de caracteres son llamadas tambi´n palabras. . 9. Cuando escribimos varias palabras o caracteres uno a continuaci´n de otro. . se denota por |w| para una palabra w. aaaa. balks. Formalmente. Por ejemplo. 7 1.4.1. 5 o Una palabra v es subcadena de otra w cuando existen cadenas x. As´ {abracadabra} es un lenguaje ı. El conjunto de todas las palabras que se pueden formar con un alfabeto Σ es denotado convencionalmente por Σ∗ . cadena de caracteres La noci´n m´s primitiva es la de s´ o a ımbolo. El conjunto Σ∗ es infinito. etc. . pero enumerable. y. como w.b.c. . b.4.4. . LENGUAJES 17 1. etc. . etc. ı.2. que se parece a la notaci´n Σ∗ . La concatenaci´n de palabras es asociativa. Un alfabeto es un conjunto no vac´ de s´ ıo ımbolos. y ε es subcadena de toda palabra. ıa 6 Luego veremos una operaci´n llamada Cerradura de Kleene. o 4 . ab. “bora” es subcadena de “v´ ıbora”. que es simplemente una representaci´n distino guible de cualquier informaci´n. n E = {a. s. {ali. esto es. La longitud de una palabra es la cantidad de letras que contiene.. (xy)z = x(yz). . si Σ = {a.

intersecci´n.18 CAP´ ITULO 1. para calcular la concatenaci´n ıa o de dos lenguajes hay que concatenar cada palabra del primero de ellos con cada una del segundo. Una operaci´n m´s complicada es la llamada “estrella de Kleene” o “cerradura de Kleene”. . la concatenaci´n L1 L2 o ser´ {canta. si L = {abra. C. Continuando indefinidan mente con esta acci´n. a Definici´n. x ∈ L1 . las cuales concatenamos para producir una nueva palabra. cadabra}. Esta noci´n se puede conceptualizar f´cilmente de la siguiente forma: Supongo a ∗ amos que inicialmente L contiene s´lo la palabra vac´ y los elementos de L.. El conjunto L Todas las palabras formadas por la concatenaci´n de miembros de L∗ o Por ejemplo. la cual a˜adimos a L∗ si no estaba ya. 9 o ıan Esta definici´n es congruente con la notaci´n Σ∗ que se utiliz´ para definir el conjunto de o o o ∗ todas las palabras sobre un alfabeto. es el m´s o a peque˜o conjunto que contiene: n La palabra vac´ ε ıa. ı para producir una palabra. sa}.} 8 Obs´rvese que la definici´n de la estrella de Kleene es recursiva. L∗ = {ε. abraabra. PRELIMINARES que los lenguajes son conjuntos. abra. pues de hecho Σ es la cerradura de Kleene del alfabeto. Kleene. cadabraabra. L∗ . pues en la tercera regla e o estamos suponiendo que ya hay palabras en L∗ . ma} y L2 = {nta.Si L es un lenguaje. masa}. Por ejemplo. diferencia). manta. o a en honor al matem´tico norteamericano S. Como se ve en este ejemplo. y ∈ L2 }. dados los lenguajes L1 = {ca. tomando los s´ ımbolos de ´ste como palabras de una letra. se ir´ obteniendo todos los elementos de L∗ . llamado “cerradura de Kleene” de L. e . . podemos efectuar con ellos todas las operaciones de los conjuntos (uni´n. Entonces de o ıa ah´ tomamos dos elementos cualesquiera. y los concatenamos. que no necesitan ser distintos. abracadabra. casa. como una extensi´n de la concatenaci´n de palabras: o o L1 • L2 = {w|w = xy. escrita como L1 • L2 . . quien la propuso. Definiremos adem´s la operaci´n de concatenaci´n o o a o o de lenguajes.

nosotros estudiaremos ıa las que aparecen en la figura 1. como veremos m´s adelante. . La jerarqu´ de Chomsky ıa Llamamos “clase de lenguajes” a conjuntos de lenguajes que comparten una cierta propiedad dada. o a Debe quedar claro que la descripci´n de L∗ en este ejemplo no es formal. la mayor´ de los lenguajes de programaci´n son Lenguajes Libres de Contexto. que son: Los “Lenguajes Regulares”. pues los “. que es la clase m´s peque˜a.3. LA JERARQU´ DE CHOMSKY IA 19 LENGUAJES REGULARES LENGUAJES RECURSIVAMENTE ENUMERABLES LENGUAJES LIBRES DE CONTEXTO LENGUAJES Figura 1. 10 Un ejemplo de lenguaje regular es el conjunto de todos los n´mero binarios. e incluye a los lenguajes m´s a n a simples. Esta noci´n es muy abstracta. ıa o Los “Lenguajes Recursivamente Enumerables”. 10 Luego veremos en qu´ sentido son m´s simples que las otras clases de lenguajes. y las clases de lenguajes son entonces conjuntos de conjuntos de secuencias de s´ ımbolos. pues ya los lenguajes son en s´ mismos conjuntos de o ı secuencias de s´ ımbolos.5. . De las clases de lenguajes propuestas en la jerarqu´ de Chomsky. ” dejan abierta la o puerta a muchas imprecisiones.3: Los LR en la jerarqu´ de Chomsky ıa 1. e a 8 . pues L∗ es infinito para cualquier L que tenga al menos un ıa elemento. quien o propuso una jerarqu´a de lenguajes. La clasificaci´n de lenguajes en clases de lenguajes es debida a N. que incluyen a los Lenguajes Regulares. Todas estas clases de lenguajes son representables de manera finita (mediante cadenas de caracteres que sirven como representaci´n). que incluyen a los Libres de Contexto (y por lo tanto a los Lenguajes Regulares). donde las clases m´s complejas incluyen a las m´s simı a a ples. Ahora bien.1.5. Chomsky [4]. Por ejemplo. 9 Claro que este proceso no terminar´ nunca. u Los “Lenguajes Libres de Contexto”.

b. b}. cu´ntos elementos contiene)? a n a 4. Un juego infantil consiste en proponer simult´neamente ya sea “piedra”. b. desde un punto de a a vista pr´ctico. Determinar si la relaci´n “gana sobre”. que e ıa debe tener la relaci´n “x es padre de y” (se entiende que “padre” incluye tambi´n a o e “madre”). Calcular las siguientes operaciones: a) (A ∪ B) − A b) A ∪ (B − A) c) 2A∪B d ) A × (A ∪ B) 5. simetr´ y transitividad. 6. ¿Cu´l es el tama˜o del conjunto {∅} (esto es. los lenguajes m´s utiles son aquellos que tienen una representaci´n finita. tijeras. 8. c} b) {a. Expresar en extensi´n el conjunto {x|x ∈ N. o o 7. c}} c) {∅} d ) {∅. c}. por a a ´ o lo que los dem´s lenguajes son s´lo de inter´s te´rico. {b. o tijeras. piedra sobre tijera. 16}. que es un subconjunto de {piedra. ıas 1. Ejercicios 1. 2. Se supone que tijera gana sobre papel. Expresar en intenci´n el conjunto {4. a o e o En cap´ ıtulos posteriores veremos que cada una de estas clases de lenguajes est´ asociada a a un tipo de “aut´mata” capaz de procesar estos lenguajes. en t´rminos de reflexividad. Proponer: a) Una relaci´n en A × A o b) Una funci´n en A → A o c) Una relaci´n en A × A que no sea funci´n. “tijeras” o a “papel”.6. 8. o 2. por lo que podemos saber que hay a lenguajes m´s all´ de los Recursivamente Enumerables. Sean los conjuntos A = {a. y papel sobre piedra. Proponer las caracter´ ısticas. 3}. papel} × {piedra. 14. x < 10}.20 CAP´ ITULO 1. papel} es: . Sea el conjunto A = {a. PRELIMINARES hay m´s lenguajes que posibles representaciones finitas. Calcular los conjuntos potencia de los siguientes conjuntos: a) {a. Sin embargo. Esto ha hecho pensar que las o categor´ de lenguajes de Chomsky no son completamente arbitrarias. 12. o 3. B = {1. {∅}} 6.

Calcular su cerradura: e o a) Reflexiva b) Sim´trica e c) Transitiva d ) Reflexiva y transitiva e) Transitiva y sim´trica e 21 f ) Reflexiva. U es “contienen alg´n 1” y D es “contienen alg´n u u 2”. d). b. sobreyectiva o biyectiva o 12. d). (b. que obtiene la madre (biol´gica) de cada persona. u o b) Expresa el enunciado como una f´rmula proposicional. Dar tres ejemplos de lenguajes basados en el alfabeto {a. EJERCICIOS a) Reflexiva b) Sim´trica e c) Transitiva 9. T es “terminan en 5”. Indicar si esta relaci´n es: o a) Una funci´n o b) Funci´n total o c) Funci´n inyectiva o d ) Funci´n sobreyectiva o 11. (d. entonces contienen alg´n 1 o 2. a). (b. Explicar la diferencia -si la hay. (c. e 10. d). o o y aplica una ley de De Morgan al resultado. d}. siendo el dominio y el codominio el e o conjunto {a. d). e o o Indica para esta funci´n: o a) Cu´les son el dominio y el codominio a b) Si es una funci´n total o c) Si es una funci´n inyectiva. Consid´rese la relaci´n {(a.6. c. donde M significa “mayores o que 5”. b)}. . 14. d). (d. 13. Consid´rese la funci´n madre(x). c}. Considera el conjunto de n´meros naturales tales que si son mayores que 5 o bien u terminan en 5. b)}. c) Transforma la f´rmula del inciso anterior de manera que no tenga una implicaci´n. u a) Propon 3 n´meros que cumplan la condici´n y 3 que no la cumplan. d).1. (c. b. Consid´rese la relaci´n {(a.entre un lenguaje vac´ y uno que contiene s´lo la ıo o palabra vac´ (tomar en cuenta que dos lenguajes son distintos s´lamente cuando uno ıa o de ellos contiene una palabra que el otro no contiene). transitiva y sim´trica (estas son llamadas “relaciones de equivalencia”. (c.

(1. . Probar que la concatenaci´n de lenguajes es asociativa pero no conmutativa. o e 21. (2. Probar que el conjunto N × N = {(1. bb. Probar que la intersecci´n de conjuntos es asociativa y tambi´n conmutativa. . 24. 2 ∗ para . (1. 1). 1). 19. ¿La palabra vac´ es elemento de cualquier alfabeto? ¿Puede la palabra vac´ ε formar ıa ıa parte de un alfabeto? ¿Puede un alfabeto contener palabras? 16.b} . Obtener {a. ε}. (2. Probar que la resta de conjuntos no es conmutativa ni asociativa. o 17. (4. PRELIMINARES 15. 18. Probar por inducci´n la propiedad de los naturales 1 + 2 + 3 + . 1). o 22. 1). 3).} es contable. 20. aba} con {a. bb}∗ (dar los primeros 10 elementos). Calcular la concatenaci´n del lenguaje {ε. . Mostrar 3 elementos de 2{a. Probar que el conjunto Σ∗ es infinito contable. 2).22 CAP´ ITULO 1. 23. (3. + n = o todo n ∈ N n(n+1) . . 2). .

Parte I Lenguajes regulares y sus m´quinas a 23 .

.

hay otro enfoque con que se puede modelar la m´quina embotelladora: c´mo funciona. Su dise˜o requiere de a a n conocimientos en mec´nica. o las imperfecciones en la soldadura. sin tomar en cuenta ni la forma de la m´quina ni sus dimensiones. Ejemplos o de estas m´quinas son las embotelladoras autom´ticas de refrescos. a a o las cuales est´n en relaci´n con los lenguajes regulares. y finalmente sale el tubo para permitir la colocaci´n de la c´psula (“corcholata”). etc. como veremos a continuaci´n. El orden en que se efect´a este ciclo es o a u crucial. Sin embargo. u En esta parte estudiaremos las m´quinas abstractas m´s simples. tales como el color con que se pinta. a El plano de dise˜o mec´nico de una m´quina es una abstracci´n de ´sta. y hasta din´mica de fluidos.Cap´ ıtulo 2 Aut´matas finitos o El t´rmino m´quina evoca algo hecho en metal. el resultado no ser´ satisfactorio. pues si se descarga el l´ ıquido antes de haber introducido el tubo en la botella. ıquido pasa por un ciclo repetitivo en que primero introduce un tubo en la botella. en el sentido de saber qu´ secuencia de operaciones a o e ejecuta. que ejee a cuta tareas repetitivas que requieren de mucha fuerza o velocidad o precisi´n. Al dise˜ar a a n tal m´quina. a El modelado de una m´quina en lo relacionado con secuencias o ciclos de acciones se a aproxima m´s al enfoque que adoptaremos en este curso. resistencia de materiales. As´ la parte que introduce el l´ ı. el plano en que se le dibuja hace abstracci´n de algunos detalles presentes en a o la m´quina real. los aut´matas finitos. que es util n a a o e ´ para representar su forma f´ ısica. a o o 25 . usualmente ruidoso y grasoso. a ni tampoco si efect´a movimientos rectos o curvos. Las m´quinas que estudiaremos a a son abstracciones matem´ticas que capturan solamente el aspecto referente a las secuencias a de eventos que ocurren. luego descarga el l´ ıquido.

Modelado de sistemas discretos Antes de definir los aut´matas finitos. De uno de estos estados se puede pasar a otro al ocurrir un evento o acci´n. separados por intervalos de tiempo. iremos de lo o m´s concreto a lo m´s abstracto. Hacer simulaciones (eventualmente computarizadas). al que se llega desde “casado” mediante el evento “inicio divorcio”. Ignici´n y Escape. Llamamos eventos discretos a aqu´llos en los que se considera su estado s´lo en ciertos e o momentos. o La noci´n m´s b´sica de los modelos de eventos discretos es la de estado. ?”. As´ por ejemplo. o Compresi´n.1. pero desde el punto de vista de la duraci´n de una vida humana. sin tener que actuar sobre el proceso e ıa o fen´meno f´ o ısico. a . en un motor de gasolina se dice que tiene cuatro tiempos: Admisi´n. pues a hay divorcios que duran a˜os. Hacer experimentos del tipo “¿qu´ pasar´ si. En este caso. . . casada. En o el caso del evento “divorcio”. Un ejemplo de la vida real es o el de los “estados civiles” en que puede estar una persona: soltera. y por lo tanto los sistemas discretos son solamente una abstracci´n de ciertos sistemas. Por ejemplo. sin importar lo que ocurre en el sistema entre estos momentos. a a o El modelado de fen´menos y procesos es una actividad que permite: o Verificar hip´tesis sobre dichos procesos. a Esto puede ser m´s o menos realista. De esta manera. Es como si la evoluci´n del sistema fuera descrita por una secuencia o de fotograf´ en vez de un flujo continuo.26 ´ CAP´ ITULO 2. o Efectuar predicciones sobre el comportamiento futuro. este tiempo puede considerarse despreciable. En estos modelos se supone que se permanece en los estados un cierto tiempo. Un estado es o a a una situaci´n en la que se permanece un cierto lapso de tiempo. empezaremos examinando las situaciones de la o realidad que pueden ser modeladas usando dichos aut´matas. el pist´n en realidad no se limita a pasar por o o o cuatro posiciones. sino que pasa por todo un rango de posiciones continuas. y se pasa bruscamente de una fotograf´ a otra. pero por el contrario. facilitando la comprensi´n intuitiva del tema. de los que nos interesa enfatizar su aspecto o “discreto”. tiempos” son una abstracci´n de la realidad. AUTOMATAS FINITOS 2. Similarmente. puede pasar al estado “casado” al ocurrir el evento “boda”. el modelo puede refinarse definiendo un nuevo n estado “divorci´ndose”. del estado “soltero” se a o ı. en el medio rural hay bodas que duran una semana. viuda. dependiendo de la situaci´n que se est´ modelando. los eventos son instant´neos. que es el o segundo concepto b´sico de la modelaci´n discreta. As´ los “cuatro ı. Sin embargo. a o a Por ejemplo. se puede pasar de “casado” a “divorciado” mediante el evento “divorcio”. pudiera ser inadecuado considerarlo como instant´neo. ıa Usualmente se considera que la realidad es continua. divorciada. etc. ıas.

en este caso “soltero”.2: Modelo en eventos discretos de un tel´fono e Es sumamente pr´ctico expresar los modelos de estados y eventos de manera gr´fica. En esta figura los nombres de los estados se refieren al aparato desde donde llamo. y en caso contrario se especifica que es el otro (“suena otro”. o contesto. sin sonar a´n. El estado donde se inicia tiene una marca “>”.1.2. la “Y” inicial se refiere a acciones que o hace uno mismo (por ejemplo. que se refiere al aparato telef´nico del interlocutor). “YD”.1. En este ejemplo suponemos que el estado en que inicia el proceso (que llamaremos estado inicial) es con el auricular colgado. como en la figura 2.1: Modelo de estados civiles de una persona YD YM COLGADO YC OM OC YC TONO SUENA OTRO OCUPADO OC YM HABLANDO OD SONANDO YD Figura 2. YD y OD deben quedar claras. OM. e As´ el significado de las transiciones YC. u Desde luego. llamadas transio o ciones. y los eventos por flechas entre los ´valos. En la figura 2. ı.2 se presenta un modelo simplificado del funcionamiento de un aparato telef´nico. como por ejemplo que empiece a sonar o bien que alguien descuelgue para marcar un n´mero. A partir de esa situaci´n. La “C” de “YC” se refiere a “colgar”. MODELADO DE SISTEMAS DISCRETOS 27 soltero boda casado muerte conyuge boda divorcio boda divorciado viudo Figura 2.. que es “yo descuelgo”). En las transiciones. elaborar modelos “adecuados” de un proceso real es un arte que requiere . etc. Dentro de cada estado se escribe su nombre. mientras que la “O” se refiere al otro tel´fono. mientras que al lado de las transiciones se escribe el nombre del evento asociado. mientras que la “M” es “marcar”. Los a a estados se representan por ´valos. pueden ocurrir u o varios eventos que nos lleven a un nuevo estado. YM. OC.

como ser´ ıa tener estados “Se encuentra en Acapulco” y “Se encuentra fuera de Guadalajara”. lo que no es posible en los estados. por ejemplo. como en “prepar´ndose para salir de casa”. sin haber otras opciones. Las condiciones asociadas a los estados deben ser excluyentes. e Los errores que m´s frecuentemente se cometen al hacer modelos de estados y eventos a son: Confundir estados con eventos. en el mismo ejemplo consideramos que la o persona que contesta el tel´fono no lo hace inmediatamente. en el modelo de estados civiles suponemos que una persona es ya sea soltera. habr´ que modificar el modelo. estamos considerando que al descolgar el auricular. o ıa 4. es necesario identificar un evento de inicio o y otro de terminaci´n. se debe reexpresar de forma que su duraci´n a o sea evidente. el tono de e marcar est´ inmediatamente disponible. esto es. esto es. a Si no se quiere que “salir de casa” sea un evento instant´neo. En cambio. pues “recuerdan” las situaciones n b´sicas por las que pasa el proceso.28 ´ CAP´ ITULO 2. tener un estado “salir de casa”. lo que quiere decir que entre todas ellas cubren todos los casos posibles. Los eventos instant´neos son asociados a los eventos. Diferenciar entre los eventos que se consideran instant´neos y aquellos que tienen una a duraci´n considerable: estos ultimos se asocian a los estados. a 1 . a 2. Si necesitamos considerar el concubinato como otra condici´n. Por ejemplo. pero en general los siguientes lineamientos pueden ser utiles: a ´ 1. o bien divorciada. AUTOMATAS FINITOS pr´ctica. 1 a Proponer conjuntos de estados no excluyentes. Por ejemplo. sino que hay un inicio y un fin e del timbre -aunque mi suegra acostumbra contestar el tel´fono antes de que se complete el e primer timbrazo. el levantar el a auricular (que se supone una acci´n instant´nea) es una transici´n. una persona no es soltera y casada a la a vez. que se traslapan. aunque en ciertas ciudades esta suposici´n puede a o ser una simplificaci´n inaceptable. 3. como en el ejemplo del divorcio que mencionamos antes. o bien casada. o la decisi´n de qu´ eventos son instant´neos y cuales tienen duraci´n depende enteramente o e a o de qu´ es importante en el problema particular que se desea modelar. u por lo que hay un estado entre estos dos eventos. En el ejemplo. pues pueden verificarse ambos simult´neamente. que razonablemente corresponde a un evento instant´neo. mientras que se o a o supone que puede transcurrir un tiempo antes de que el usuario marque un n´mero. Los estados son la base o ´ de un dise˜o de los modelos que estamos estudiando. Desde luego. Para los eventos con duraci´n. no deben verificarse varias simult´neamente. Las condiciones asociadas a los estados de un modelo bien hecho deben ser comprensivas. En el ejemplo del tel´fono.

En situaciones muy complejas. lo que en la pr´ctica o a . el modelado de eventos discretos por medio de estados y eventos no es adecuado.2. a La primera cuesti´n que hay que resolver para dise˜ar nuestro modelo es decidir c´mo son o n o los estados. donde varios procesos evolucionan concurrentemente. 2. a como las llamadas “redes de Petri” [16]. En estos casos se requieren herramientas m´s sofisticadas.2. En otros casos hay que tomar una decisi´n de dise˜o o o n conflictiva. Una buena idea ser´ que cada estado recordara lo que se lleva acumulado hasta ıa el momento. 2 y 5.2. y el precio a de cada lata es de 5. desde luego. Dicha m´quina acepta monedas de valor 1. El estado inicial. etc. que se quiere modelar el funcionamiento de una m´quina autom´tica o a a vendedora de bebidas enlatadas.1.3: Modelo con estados finales Proponer conjuntos de estados no comprensivos. Sup´ngase.1.5 3 2 1 0 4 1. por ejemplo. MODELADO DE SISTEMAS DISCRETOS 29 1 2 1 1 1 2 5 2 5 5 2.1. donde falta alg´n caso o situaci´n por u o considerar. En el diagrama presentado. se decidi´ que en ese caso se va al estado “5”. recordar´ que se lleva acumulado 0.5 Figura 2. el evento “2” para la moneda de valor 2.3.5 5 1. como en el caso en que en el estado “4” se introduzca una moneda de valor 2. pues los diagramas son demasiado grandes. de manera que se les pueda diferencias de las secuencias “malas”. Estados finales El prop´sito de algunos modelos de estados y eventos es el de reconocer secuencias o de eventos “buenas”. Vamos a considerar que el evento llamado “1” es la introducci´n de o una moneda de valor 1 en la m´quina. Muchas transiciones en dicho diagrama son evidentes. Con estas ıa ideas podemos hacer un diagrama de estados y eventos como el de la figura 2. como el paso del estado “1” al “3” tras la introducci´n de una moneda de valor 2.

De este modo. por palabras. donde este ultimo es final.1. en vez de un evento “meter 1” vamos a tener una transici´n con el caracter “1”. como 1. As´ en el ejemplo de la m´quina vendedora la palabra “1121” representa ı. que lleva al estado 4. . o bien simplemente se a queda con el sobrante. “meter 1”. las secuencias de eventos van a representarse por concatenaciones de caracteres. M´quinas de estados finitos a A partir de ahora vamos a considerar modelos de estados y eventos un poco m´s aba stractos que los que hemos visto antes. A partir de ahora los nombres de los eventos van a estar formados por un caracter. que vimos en la secci´n 2. como la secuencia “meter 1”. En la figura puede observarse que dicha secuencia hace pasar por los estados 0. 2. “meter 5”.3 es que el estado “5” es un estado especial. Desde luego. o e o o Adem´s. Por ejemplo. “meter 1”. e identificado por un ´valo de doble trazo. a esto es. e “meter 5” tambi´n es aceptable –desde luego. 1.30 ´ CAP´ ITULO 2. 1 con respecto a secuencias no aceptables. De este modo el diagrama nos permite diferencias las secuencias ´ aceptables respecto a otras que no lo son. en la m´quina vendedora de latas.1. Un aspecto muy importante del modelo de la figura 2. Los estados o finales indican que cuando se llega a ellos. 3 y 5. aunque e a seguramente no lo sea desde el punto de vista del cliente. desde el punto de vista de la m´quina. AUTOMATAS FINITOS a a q0 b a q2 b b q1 Figura 2. llamado estado final. En ese modelo pudimos reconocer secuencias de eventos o “aceptables”. “meter 2”. y les llamaremos transiciones en vez de “eventos”. 2. “meter 1”. la o elecci´n de qu´ caracter tomar como nombre de la transici´n es una decisi´n arbitraria. la secuencia a de eventos “meter 2”. que no es final. Retomemos el ejemplo de la m´quina vendedora de a latas. como la secuencia de monedas 2. 2.2. “meter 1”. por ejemplo. 1. a la secuencia de eventos “meter 1”. “meter 2”.4: Notaci´n gr´fica o a puede querer decir que la m´quina entrega un cambio al usuario. la secuencia de eventos que llev´ hasta ah´ puede o ı considerarse como “aceptable”. Obs´rverse que la secuencia “meter 5”. “meter 2” puede considerarse aceptable porque totaliza 5.

El aut´mata inicia su o o operaci´n en el estado q0 –que es el estado inicial–. Luego. La cabeza lectora se coloca en los segmentos de cinta que contienen los caracteres que componen la palabra de entrada. El control (indicado por una car´tula de reloj en la e u a a figura) le indica a la cabeza lectora cu´ndo debe recorrerse a la derecha. Simplemente a hay que pasar de estado a estado siguiendo las flechas de las transiciones. y al colocarse sobre un caracter lo “lee” y manda esta informaci´n al control.2. Una cabeza de lectura (y eventualmente escritura). pues en el diagrama hay una flecha de q0 a q2 con la letra b. al recibir la segunda ¢ ¡ £ ¤   ¥ § ¦ . a medida que va recibiendo los caracteres de la palabra de entrada. Se supone que hay a manera de saber cuando se acaba la entrada (por ejemplo. como veremos m´s adelante. seg´n el tipo de m´quina). nuestras m´quinas pueden ser visualizadas como dispositivos con los siguientes componentes: (ver a figura 2. y hay algunas posiciones llamadas finales (como o la indicada por un punto. para cada caracter de la palabra de entrada.1. por que permiten determinar si una palabra es aceptada o rechazada. q3 ) que son consideradas especiales. Este proceso puede ser seguido f´cilmente en los diagramas de estados.4 y la palabra de entrada “bb”. Por ejemplo. el funcionamiento de los aut´matas finitos consiste en ıa o ir pasando de un estado a otro. tambi´n puede recorrerse un lugar a la derecha (o a la izquierda o e tambi´n.´ 2. al llegar al blanco).2.5) Una cinta de entrada. MAQUINAS DE ESTADOS FINITOS 31 Figura 2. Un control. y al recibir la primera b pasa al estado o q2 . a 2. Funcionamiento de los aut´matas finitos o Como se hab´ comentado antes. sup´ngase que o tenemos el aut´mata de la figura 2. empezando por el estado inicial.5: Componentes de una m´quina abstracta a Desde el punto de vista abstracto que vamos a adoptar a partir de ahora. La “aguja” del control puede estar cambiando de posici´n.

habr´ un y a s´lo un estado siguiente. Como se utiliza terminolog´ matem´tica ıa a en vez de dibujos. s. q1 . para el aut´mata finito de la figura 2. que permite saber siempre cu´l ser´ el siguiente a a 2 que puede ser el mismo en el que se encontraba. AUTOMATAS FINITOS b de la palabra de entrada. las computadoras digitales son a ´ m´quinas de memoria limitada. decimos que se trata de una notaci´n formal. debemos incluir las informaa ciones que var´ de un aut´mata a otro. Estas informaciones son exactamente las que aparecen o en un diagrama de estados y transiciones. utilizamos o nociones de la teor´ de conjuntos que fueron ya presentadas en el cap´ ıa ıtulo 1. En esta secci´n vamos a presentar un formato matem´tico para representar las mismas o a informaciones que contiene un diagrama de estados. pasar´ del estado q2 a ´l mismo.3. δ.Una m´quina de estados finitos M es un qu´ o a ıntuplo (K.32 ´ CAP´ ITULO 2. donde: K es un conjunto de identificadores (s´ ımbolos) de estados. s ∈ K es el estado inicial. esto implica que para un estado y un s´ o ımbolo del alfabeto dados. esto quiere decir que e ıdo son m´quinas de memoria limitada. Los estados son el unico medio de que disponen los AF para recordar los eventos que ´ ocurren (por ejemplo. Esta caracter´ o ıstica. q1 . .4 la o trayectoria seguida para la palabra ab consiste en la secuencia de estados: q0 . Por ejemplo. que a partir de un estado y un s´ o o ımbolo del 2 alfabeto obtiene un nuevo estado. δ : K × Σ → K es la funci´n de transici´n.. qu´ caracteres se han le´ hasta el momento). es decir. Definici´n formal de aut´matas finitos o o Al describir una m´quina de estados finitos en particular. no tiene sentido incluir descripciones ıan o generales aplicables a todo aut´mata. Σ es el alfabeto de entrada. Definici´n. Σ. Es importante notar que δ es una funci´n y no simplemente a o una relaci´n. Podemos visualizar el camino recorrido en el diagrama de estados como una “trayectoria” recorrida de estado en estado. F ⊆ K es un conjunto de estados finales. En ultima instancia. aunque la cantidad de estados posibles de su memoria podr´ a ıa ser enorme. con la letra b. pues en la figura se puede ver a e una flecha que de q2 regresa al mismo estado. En particular. La funci´n de transici´n indica a qu´ estado se va a pasar sabiendo cu´l es el estado actual o o e a y el s´ ımbolo que se est´ leyendo. 2. F ). como los que hemos presentado antes.

una con a y otra con b. a). hasta un m´ximo de |K| (la cantidad a de estados).´ ´ 2. b). Despu´s veremos otros aut´matas finitos. a). b}. un estado de salida y un caracter consumido). La definici´n dada arriba corresponde a los aut´matas finitos o o 3 determin´ ıstas. de cada estado deben salir exactamente dos transiciones. abreviado “AFD” Ejemplo. q1 ). el n´mero o a u de transiciones que salen de cada estado debe ser igual a la cantidad de caracteres del alfabeto. siendo la informaci´n exactamente la misma.4 puede ser expresado formalo mente como: M = (K. 4 3 . ((q0 . en particular. donde: K = {q0 . q2 } Σ = {a. a).3. q0 .El aut´mata finito determinista de la figura 2. Σ. donde el alfabeto es {a. se llama determinismo. σ) q1 q2 q1 q1 q0 q2 Es f´cil ver que la diferencia entre los diagramas de estado y los AFD en notaci´n formal a o es solamente de notaci´n. b} δ = {((q0 . b). q2 ). q0 ). 4 o a Para el ejemplo de la figura 2. q2 )} F = {q1 . b). puesto que δ es una funci´n que est´ definida para todas las entradas posibles. F ). por lo que es sencillo o o pasar de una representaci´n a la otra. DEFINICION FORMAL DE AUTOMATAS FINITOS 33 estado. q1 . Recu´rdese que una funci´n no puede tener m´s de un resultado (en este caso. ((q2 . la cantidad o de estados finales puede ser cualquiera. inclusive cero. Otra condici´n es que debe haber exactamente un estado inicial. llamados no determin´ e o ıstas. un estado de llegada) e o a para cada entrada (en este caso. ((q2 . En cambio. o Tanto en los diagramas de estado como en la representaci´n formal hay que tener cuidado o en respetar las condiciones para que tengamos un aut´mata v´lido. q1 ). q2 } La funci´n de transici´n δ puede ser expresada mediante una tabla como la siguiente. ((q1 . ((q1 . δ.. o o para este ejemplo: q q0 q0 q1 q1 q2 q2 σ a b a b a b δ(q.4. q1 ).

luego. σ) = q . por medio de la transici´n ((q2 . etc. que ahora no son represeno e tadas como flechas. pues al terminar de ı. e aaaaa. como por ejemplo abab. usando la transici´n ((q0 . si un AFD se encuentra en un estado q y recibe un caracter a σ pasa al estado q ssi δ(q. a Por ejemplo. etc. la operaci´n se inicia en el estado o o inicial q0 . Se consumen todos los caracteres de dicha palabra de entrada. no acepta baba ni bba. o As´ en el ejemplo de la figura 2. Decimos que un AFD reconoce o acepta una palabra si se cumplen las siguientes condiciones: 1. y luego. baaa. N´tese que tampoco acepta o la palabra vac´ ε. ı. El concepto de lenguaje aceptado es una simple extensi´n de aquel de palabra aceptada: o Definici´n. si ((q. sino como elementos del conjunto δ de transiciones. o . el aut´mata de la figura 2. o consumirla se encuentra en el estado q2 . σ). En cambio. al terminarse la palabra. al recibir la primera b..4 acepta las palabras que empiezan con a. e De una manera m´s general. b). siguiendo las transiciones y pasando en consecuencia de un estado a otro. Formalizaci´n del funcionamiento de los AFD o El funcionamiento de los AF lo vamos a definir de manera an´loga a como se simula el a movimiento en el cine. b).El lenguaje aceptado por una m´quina M es el conjunto de palabras acepo a tadas por dicha m´quina. babba. o que son parte del conjunto F en la representaci´n formal). es decir.4.34 ´ CAP´ ITULO 2. AUTOMATAS FINITOS En la notaci´n formal tambi´n hay que seguir las transiciones. as´ como o ı las palabras que contienen aa. Tomando nuevamente el aut´mata de la figura 2. y tambi´n las que terminan en b. o al recibir la segunda b de la palabra de entrada. el cual es final. el aut´mata acepta la palabra bb. q2 ) pasa a q2 . Palabras aceptadas Los aut´matas finitos que hemos visto pueden ser utilizados para reconocer ciertas palo abras y diferenciarlas de otras palabras. el estado al que llega es uno de los estados finales del aut´mata o (los que tienen doble c´ ırculo en los diagramas. esto es. Para que un AFD acepte ε se necesita que el estado inicial sea tambi´n ıa e final. q2 ) pasa o al estado q2 –de hecho permanece en ´l. q ) ∈ δ.4 y la palabra de entrada bb. 2. mediante una sucesi´n de fotograf´ As´ la operaci´n de un o ıas.

la configuraci´n o a o correspondiente a la figura 2. abab). es o a ı. DEFINICION FORMAL DE AUTOMATAS FINITOS 35 b a a b a b q0     q1 q2   q3   Figura 2. Esta soluci´n tiene la ventaja de que entonces no es necesario representar la posici´n de la o o cabeza. pues ´sta se encuentra siempre al inicio de lo que falta por leer. como la cabeza lectora no puede echar marcha atr´s. es suficiente o a a a con considerar lo que falta por leer de la palabra de entrada. o 3.´ ´ 2. As´ por ejemplo. los caracteres por los a que ya pas´ no afectar´n m´s el funcionamiento de la m´quina. el estado en que se encuentra el control. ıa o o como se ilustra en la figura 2. El contenido de la cinta.3. e Entonces una configuraci´n ser´ un elemento de K × Σ∗ . donde el primer elemento o ıa es el contenido de la cinta. S´lo nos interesar´ incluir en las configuraciones aquellas informaciones que tengan relo a evancia en cuanto a la aceptaci´n de la palabra al final de su an´lisis. la posici´n de la cabeza lectora. Las informaciones relevantes para resumir la situaci´n de la m´quina en un instante son: o a 1. evidente que. La idea b´sica es la de describir completamente la situaci´n a o en que se encuentra la m´quina en un momento dado. y el tercero es el o estado. ıa: . en vez de la palabra completa. Por ejemplo. a la cabeza lectora y el control. Una configuraci´n ser´ entonces un elemento de Σ∗ × N × K.5 ser´ (q1 . 2.6. incluyendo el contenido de la cinta. el segundo describe la posici´n de la cabeza.6: La configuraci´n es como una fotograf´ de la situaci´n de un aut´mata en medio o ıa o o de un c´lculo a AF se describir´ en t´rminos de la sucesi´n de situaciones por las que pasa mientras analiza a e o una palabra de entrada. El equivalente en los AF de lo que es una fotograf´ en el cine es la noci´n de configuraci´n. Por lo tanto.

Definimos o a o formalmente esta noci´n: o Definici´n. .. w]] 5 M . ε]] M M M M En los AFD’s. w]] M [[q. ε]]. Ejemplo.Una palabra w ∈ Σ∗ es aceptada por una m´quina M = (K.Dados una palabra w ∈ Σ∗ y una m´quina M = (K. C1 M C2 . . .. (σ es el caracter que se ley´). σw]] M [[q2 . . M [[q.. babb]] M M [[q2 . AUTOMATAS FINITOS Para hacer las configuraciones m´s legibles. . tales que Ci Ci+1 .. para cada palabra de entrada s´lo hay una secuencia posible de configuraciones.Probar que el AFD de la figura 2. abb]] M M [[q0 . δ. o ı. Soluci´n. bb]] [[q2 . Teorema. . . que significa que de la o configuraci´n C1 la m´quina M puede pasar en un paso a la configuraci´n C2 . [[qs . vamos a utilizar dobles corchetes en vez de a par´ntesis.(por contradicci´n): Sean dos c´lculos distintos: o a [[s. sino que adem´s ya no deben quedar caracteres por leer (lo que falta por leer a es la palabra vac´ ıa). .. . F ) ssi o a ∗ existe un estado q ∈ F tal que [[s. b]] [[q2 . w ]] [[s. δ..[[q1 . s.. ε]] .4 acepta la palabra babb. M [[p.. si C1 = C2 ).. ε]]. As´ la expresi´n o M C1 ∗ C2 indica que de la configuraci´n C1 se puede pasar a C2 en alg´n n´mero de pasos o u u M (que puede ser cero. Como q2 ∈ F .Hay que encontrar una serie de configuraciones tales que se pueda pasar de o una a otra por medio de la relaci´n M . w]] para un σ ∈ Σ si y s´lo si existe una transici´n en M o o o tal que δ(q1 . Σ. [[qr . precisao mente porque son deterministas. N´tese que no basta con que se llegue a un o estado final q. Σ. Definici´n. w ]] M . la palabra es aceptada. abab]].. Definici´n. .. w]] [[s. σw ]] M [[r. . Generalmente escribimos los c´lculos como C1 M C2 M . C2 . . a Prueba. .36 ´ CAP´ ITULO 2. e Vamos a definir una relaci´n entre configuraciones. w]] M . σ) = q2 . Ahora ya tenemos los conceptos necesarios para definir cuando una palabra es aceptada. s. ε]]. como en [[q1 . s´lo hay un a o c´lculo [[s. o a a . o La cerradura reflexiva y transitiva de la relaci´n M es denotada por ∗ .Un c´lculo en una m´quina M es una secuencia de configuraciones C1 . F ). La unica forma posible es la siguiente: 5 o ´ [[q0 . Cn . σw ]] [[p. M a Cn .

se sigue que r = s. que haya palabras en el lenguaje considerado que no son aceptadas por el AFD. puesto que en general hay que considerar demasiadas posibilidades. Que “sobren palabras”. verdaderamente b´sico para el dise˜o met´dico de aut´matas. e Este problema es com´nmente llamado “problema de dise˜o”. esto es. qu´ condici´n “recuerda” cada uno de los e o estados del AFD.4. 6 Esto a implica que δ(p. y como δ es funci´n. los c´lculos son iguales hasta cierto punto. que tiene a’s seguidas y sin embargo son aceptadas por el AFD. σ) = r y tambi´n δ(p. M´s a´n. porque: 1. . y es posible que se presenten ambos a la vez. No es conveniente proceder u n por “ensayo y error”. o 2. que en el peor caso es la configuraci´n inicial [[s. w ]] y [[s.´ ˜ 2. Por ejemplo. 2. que no tienen a’s seguidas y sin embargo no son aceptadas por el AFD.4 para el lenguao je de las palabras en el alfabeto {a. Hay palabras. lo e o que contradice la hip´tesis. El lector debe concientizarse de que este es un principio de dise˜o imporn tant´ ısimo. cuando deber´ serlo. Como se ve. a El elemento m´s importante en el dise˜o sistem´tico de aut´matas a partir de un lenguaa n a o je consiste en determinar. METODOS DE DISENO DE AFDS 37 y sean [[r. a o Estos errores no son excluyentes. es posible equivocarse de las dos maneras a la vez en un s´lo aut´mata. a n o o 6 7 Es decir. w]]. supongamos que alguien propone el aut´mata de la figura 2. En este caso decimos que la soluci´n es incorrecta. M´todos de dise˜ o de AFDs e n Consid´rese el problema de construir un AFD que acepte exactamente un lenguaje dado. esto es. que el aut´mata acepte algunas palabras que no deber´ o ıa aceptar. σ) = s. b} que no tienen varias a’s seguidas. Hay palabras. y es muy f´cil equivocarse. o 2. Esta soluci´n es o defectuosa. hay dos maneras de equivocarse al dise˜ar un AFD: 7 a a u n 1. de manera expl´ ıcita. como “ba”.4. En este caso decimos que la soluci´n ıan o es incompleta. o o La moraleja de estos ejemplos es que es necesario dise˜ar los AFD de una manera m´s n a sistem´tica. como “baa”. Que “falten palabras”. w ]] las primeras configuraciones distintas en los dos c´lculos. QED.

7(a). Ejemplo. porque la cantidad de a’s pasa de ser par a impar. Los estados P e I aparecen en la figura 2.Dise˜ar un AFD que acepte exactamente el lenguaje en el alfabeto {0. As´ el dise˜o del AFD inicia con la propuesta de un conjunto de estados ı.38 ´ CAP´ ITULO 2. si ya tenemos el dise˜o de los n estados. u Para determinar qu´ estados son finales. y por lo tanto el estado P es inicial. Posteriormente se proponen las transiciones que permiten pasar de un estado a otro.. AUTOMATAS FINITOS b a b P (a) Dise˜o de estados n I P a I (b) AFD completo Figura 2. El resultado se muestra en la figura 2. por lo que es final. mientras que P no corresponde y no es final. 1} en n que las palabras no comienzan con 00.son: El n´mero de a’s recibidas hasta el momento es par (estado P).. Por ejemplo. .. u El n´mero de a’s recibidas hasta el momento es impar (estado I). n que “recuerdan” condiciones importantes en el problema considerado. lo cual es una tarea relativamente sencilla. claramente debemos irnos a I. Esta es la primera etapa del dise˜o de un n AFD. si estamos en P y recibimos una a. por lo que debemos o o u encontrarnos en el estado P (el cero es un n´mero par). esta ultima parte es ´ relativamente sencilla una vez que se cuenta con los estados y sus condiciones asociadas. En este caso vemos que el estado I es el que corresponde. Ejemplo.Las condiciones relevantes para este problema -que deben ser “recordadas” por o los estados correspondientes. b} en que la cantidad n de a’s es impar. debemos fijarnos en cu´les corresponden con el e a enunciado original de las palabras aceptadas.7(b).Dise˜ar un AFD que acepte las palabras en el alfabeto {a. En nuestro m´todo de dise˜o es importante trazar las transiciones unicamente despu´s e n ´ e de haber determinado cu´les son los estados y sus caracter´ a ısticas. Ahora ya podemos trazar las transiciones.7: Dise˜o de AFD para palabras con n´mero impar de a’s n u Recu´rdese que la unica forma de memoria que tienen los AFD es el estado en que e ´ se encuentran. Soluci´n. u Al iniciar la operaci´n del aut´mata no se ha recibido a´n ninguna a. Similarmente se hacen las otras transiciones.

a Este m´todo consiste en identificar inicialmente condiciones asociadas al enunciado del e problema. agregamos al a AF un estado final q3 y la transici´n de q0 a q3 con 1. 2. mientras que q2 no debe ser final. que obviamente ı o dirigimos hacia q3 . haciendo posible o n en consecuencia atacar problemas m´s complejos con menos posibilidades de equivocarse. seg´n la tabla siguiente: u Estado q0 q1 q2 q3 Condici´n o No se han recibido caracteres Se ha recibido un cero al inicio Se han recibido dos ceros iniciales Se recibi´ algo que no son dos ceros iniciales o Claramente tanto q0 como q1 deben ser estados finales. El estado q3 tiene transiciones hacia o s´ mismo con 0 y con 1.4. aunque ´stas no sean suficientemente espec´ e ıficas para asociarse a estados individuales.Para emprender el dise˜o en forma met´dica.4. Dise˜ o por conjuntos de estados n Es posible llevar un paso m´s all´ el m´todo de asociar una condici´n a cada estado: a a e o vamos a asociar condiciones a grupos de estados m´s que a estados individuales. De esta a manera aumentaremos el grado de abstracci´n en la etapa inicial de dise˜o. al estado q1 le falta su transici´n con 1. comenzamos por determinar o n o las condiciones que es importante recordar. con lo que el AF queda como se ilustra en la figura 2. agregando las transiciones que falten. A partir de q0 . METODOS DE DISENO DE AFDS 1 q2 39 q0 0 q1 0 1 1 0 q3 0 1 Figura 2.8.´ ˜ 2. Finalmente.1. En este ejemplo se puede apreciar que en ocasiones es necesario completar el conjunto de estados al momento de hacer las transiciones.8: AF para palabras que no empiezan en “00” Soluci´n.. Describiremos este m´todo mediante su aplicaci´n a un ejemplo particular: Dise˜ar un e o n AFD que acepte las palabras del lenguaje en {0. Ahora hay que completar el AF. si llega un 1 habr´ que ir a un estado final en el que se permanezca en adelante. y asociamos un estado a cada una de estas condiciones. 1} donde las palabras no contienen la .

lo que quiere decir que no faltan casos por considerar. considerando lo que ocurre al recibir cada uno de los posibles caracteres de entrada.40 ´ CAP´ ITULO 2. la condici´n o “Contienen 00 pero no 11”–. Contienen 00 pero no 11 Contienen 11. Los grupos de estados. as´ como la condici´n inicial con un s´ ı o ımbolo “>”.9(a). En dicha figura tambi´n se ilustran e unas nubes “dobles” para indicar que son condiciones finales –en este ejemplo. as´ como las transiciones que provocan que se pase de uno a ı otro. se representan como “nubes” en la figura 2. AUTOMATAS FINITOS 1 0 00 pero no 11 0 1 Ni 11 ni 00 1 11 0 1 A C D E 0 B 0 0 B 1 1 F 1 0. a Las condiciones deben ser comprensivas. lo que quiere decir que no deben poder ser ciertas dos o m´s al mismo tiempo.1 (a) Grupos de estados (b) Detalle de estados Figura 2. Estos diagramas no son a´n AFD. Lo que falta por hacer es refinar cada grupo u de estados. La forma en que se subdivide cada grupo de estados (“nube”) en estados individuales se detalla a continuaci´n: o . ı Inmediatamente a partir del enunciado identificamos las siguientes situaciones: Las letras consumidas hasta el momento no contienen ni 00 ni 11. pero casi. Estas condiciones cumplen dos requisitos que siempre se deben cumplir en este tipo de dise˜os: n Las condiciones deben ser excluyentes.9: Dise˜o de AFD por grupos de estados n subcadena 11 pero s´ 00.

esto e debe verificarse siempre. 2. encontrar directamente las condiciones asociadas a los estados puede ser algo dif´ por ejemplo. a En cualquier caso. complementario Lc = Σ∗ −L. 41 Esto nos da un total de 6 estados. Inicial. F ) es un aut´mata determinista que acepta un lenguaje regular L.2. δ. s.9(b)). en e vez de ir proponiendo sin ning´n orden los estados y las transiciones a la vez. esto es. . Se acaba de recibir un 1. o c para construir un aut´mata M que acepte el lenguaje complemento de L. y solamente despu´s se tracen las transiciones. ya sea que se encuentren directamente las condiciones para cada estado. El siguiente paso es hacer el dise˜o detallado de las transiciones. 2. lo que muy u frecuentemente conduce a errores. cada uno de los cuales tiene una condici´n muy o espec´ ıfica asociada (son los estados “A” a “F” en la figura 2. En este sentido el dise˜ar primero los grupos de estados n permite manejar la complejidad del problema de manera m´s modular y gradual. Se acaba de recibir un 1. 1. Formalmente. 1. El resultado se muestra en la figura 2. 2. para un cierto lenguaje L.4.9(b)) requerir´ ciertamente m´s inventiva de la que tenemos ıa a derecho a presuponer en el lector. En estos casos. y luego hacer una transformaci´n o o sencilla para obtener el aut´mata que acepta L. Contienen 00 pero no 11. lo que por experiencia consideramos que es n relativamente f´cil para cualquier alumno. consideramos importante que primero se determinen los estados con sus condiciones asociadas. 3.4. Σ∗ − L. o primero para grupos de estados. Dise˜ o de AFD por complemento n En ocasiones. e una soluci´n sencilla es hallar primero un AFD para Lc .´ ˜ 2. Se acaba de recibir un 0. es m´s sencillo encontrar un AFD para el lenguaje a exactamente contrario –t´cnicamente hablando. encontrar directamente la condici´n ıcil. o basta con intercambiar los estados finales de M en no finales y viceversa. METODOS DE DISENO DE AFDS Las letras consumidas hasta el momento no contienen ni 00 ni 11. Σ.9(b). Se acaba de recibir un 0. o Si M = (K. no se han recibido caracteres. Contienen 11 (no hay subcondiciones). Hacemos notar que en este ejemplo en particular. En a este diagrama se puede notar que los estados de una nube “final” son tambi´n finales. o “Las letras consumidas hasta el momento no contienen ni 00 ni 11 y se ha recibido un 0” (estado “B” en la figura 2.

Por ejemplo. Equivalencia de aut´matas finitos. Sin o o embargo. ella es aceptada en ı. Σ. e o Es muy importante notar que el m´todo de dise˜o por complemento s´lo se aplica a los aut´matas e n o o deterministas. Pero.11 aceptan ambos el lenguaje a∗ . 2. cuando aceptan exaco o tamente el mismo lenguaje. Dise˜amos M1 sistem´ticamente usando grupos de estados. As´ cuando una palabra es rechazada en M .5. Es por esto que se prefieren otros m´todos para probar la equivalencia de aut´matas.. y una prueba consiste en exhibir un ejemplo. δ. introduciendo estados individuales que recuerdan lo que se lleva reconocido de la cadena abaab. para resolver o o en forma sistem´tica y flexible problemas de dise˜o aparentemente muy dif´ a n ıciles. como aparece en la figura 2. como se muestra en 2. b}∗ de las palabras que no contienen la cadena “abaab”.10(b) –el grupo de estados que recuerda que ya se reconoci´ la cadena abaab tiene un s´lo estado. uno que n a recuerda que la palabra no contiene aun abaab y otro que recuerda que ya se reconoci´ dicha o cadena. la demostraci´n de equivalencia de o o dos aut´matas se convierte en la demostraci´n de igualdad de los lenguajes que aceptan. c 8 M y viceversa. como se muestra en la figura 2. pues no hay condiciones adicionales que o o recordar. o Definici´n. o En vista de esta situaci´n. Pero ¿c´mo saberlo? o De acuerdo con la definici´n que hemos presentado. dados dos AF distintos existe la posibilidad de que sean o equivalentes. los aut´matas (a) y (b) de la figura 2. pero luego veremos otras herramientas que se pueden usar en combinaci´n con la obtenci´n del complemento de un AF. Desde luego. Soluci´n. o Decimos que dos aut´matas que aceptan el mismo lenguaje son equivalentes.. K − F ). ¿puede haber de hecho varios AF distintos9 que acepten un mismo lenguaje? La respuesta es afirmativa. AUTOMATAS FINITOS M c = (K. s. M1 ≈ M2 . Luego detallamos cada uno de estos grupos de estados.10(c).Primero obtenemos un AFD M1 para el lenguaje cuyas palabras s´ contienen o ı la cadena “abaab”. que veremos luego.Dos aut´matas M1 y M2 son equivalentes. la soluci´n ser´ un AFD donde cambiamos los estados finales por no o a finales y viceversa en M1 .10(a)..Obtener un AF para el lenguaje en {a. demostrar que dos lenguajes son iguales puede complicarse si se trata de lenguajes infinitos.42 ´ CAP´ ITULO 2. y no a los llamados “no deterministas”. 9 ¿Qu´ se quiere decir por “distintos”? ¿Si dos AF s´lo difieren en los nombres de los estados se considerar´n e o a distintos? 8 . el ejemplo descrito es muy sencillo. Ejemplo. Finalmente.

43 abaab b abaa a.5.´ 2.b b Con "abaab" b a. EQUIVALENCIA DE AUTOMATAS FINITOS.b b ^ a a a b a b a a aba b (c) b Figura 2.b a a ^ a b a b a a aba b (b) b Sin "abaab" (a) abaab b abaa a.10: Dise˜o del AF para palabras sin abaab n .

Decimos que dos estados q y q son compatibles si ambos son finales o ninguno o de los dos es final. Σ . r ) de estados incompatibles. Si aparece en el ´rbol un par (r. F ) o o y M = (K . son estados incompatibles. En caso contrario. s. si no est´n ya. Inicialmente la ra´ del ´rbol es el par ordenado (s. e 3. s ) que contiene los estados iniciales ız a de M y M respectivamente. El unico problema con esta idea estriba en que hay que garantizar que sean cubiertas ´ todas las posibles cadenas de caracteres w. r ).Existe un algoritmo para decidir si dos aut´matas finitos son equivo alentes o no. F ): 1. Si en el ´rbol hay un par (r.. σ). La idea del algoritmo de comparaci´n de AF D1 y AF D2 consiste en averiguar si existe o alguna secuencia de caracteres w tal que sigui´ndola simult´neamente en AF D1 y AF D2 e a se llega a estados incompatibles.. En caso o o contrario se contin´a a partir del paso 2. las cuales son infinitas en general. se interrumpe la cona strucci´n del mismo. δ. rσ = δ(r . 2. s . u . entonces los aut´matas son o equivalentes. Si dicha secuencia no existe. para cada caracter en Σ se a˜aden como hijos suyos a n los pares (rσ . Por ello se pens´ en explorar todas las posibles combinaciones de estados mediante un ´rbol. rσ ) donde rσ = δ(r. Σ. El algoritmo mencionado en el teorema de Moore consiste en la construcci´n de un ´rbol o a de comparaci´n de aut´matas. para dos aut´matas M = (K. δ . o o Definici´n. concluyendo que los dos aut´matas no son equivalentes. Dicho ´rbol o a a de comparaci´n se construye de la manera siguiente. Este ´rbol permite convertir el problema de la comparaci´n o o a o de los lenguajes aceptados en un problema de comparaci´n de estados de los aut´matas. σ).11: Aut´matas equivalentes o El m´todo que aqu´ propondremos para los AF se basa en el siguiente teorema: e ı Teorema de Moore. AUTOMATAS FINITOS b q0 a a q2 (a) a q1 b r0 b a (b) b b a r1 Figura 2.44 ´ CAP´ ITULO 2.

Estas ramas con l´ ınas punteada no son.´ 2. a pero pensamos que mejoran la comprensi´n del diagrama.13(c). o Ejemplo.12. como la que va de (q2 . estrictamente hablando.. EQUIVALENCIA DE AUTOMATAS FINITOS. o Se concluye que M y M son equivalentes. En el caso de que los aut´matas que se comparan no sean equivalentes.r0) a b 45 (q2. la construcci´n del o o a ´rbol de comparaci´n permite encontrar al menos una palabra en que los lenguajes aceptados o por ellos difieren. parte del ´rbol.b ´ Figura 2. Consid´rense. o a con l´ ınea punteada.13 (a) y (b).r0) a b (q1.6 (c) (a) (b) Figura 2.Sean los aut´matas M y M de la figuras 2. Una e o parte del ´rbol de comparaci´n se muestra en la figura 2.5.r1) a.5 a 1 b b a 2 4 b b 5 a b 3. por ejemplo. los aut´matas de las figuras 2. concluyendo que los dos aut´matas son equivalentes.4 a a a a b 2. En dicho ´rbol se muestran adicionalmente. r0 ) a (q0 . las ramas que van a nodos ya existentes. (q0. Si no aparecen nuevos pares (rσ .6 3 b a 6 a. rσ ) que no est´n ya en el ´rbol.12: Arbol de comparaci´n de AF o 1. r0 ). El ´rbol o a de comparaci´n se muestra en la figura 2.11(a) y (b) respectivamente.b 1.13: AFDs no equivalentes e a 4. hasta donde se encuentra el a o . se termina el proceso.

ıa 10 . siguiendo la palabra w en el ´rbol. si los lenguajes L(M ) y L(M ) son diferentes. hay que gastar los caracteres b. Para probar que este m´todo constituye un algoritmo de decisi´n para verificar la equive o alencia de dos aut´matas. es decir. En consecuencia. los nodos del ´rbol siendo todos distintos. Si se comparan dos aut´matas que no son equivalentes. En efecto. sea w. esto es.13(c). o a si aplicamos la misma w a M . Por otra parte. tal que es aceptada por uno y rechazada por el otro. QED. entonces a los lenguajes son id´nticos. que es finito. la palabra bba. w. ¿No e a a podr´ “atorarse” el proceso?. Esto muestra que los lenguajes aceptados por M y por M difieren en al a menos una palabra. ´ CAP´ ITULO 2. que no es final. son un a a subconjunto de K ×K .46 primer par de estados incompatibles. el punto 3 implica que si no hay pares incompatibles en el ´rbol. por lo que w no ser´ aceptada. debemos llegar a un a 10 par incompatible. hay que mostrar los puntos siguientes: o 1. o 3. vemos que para llegar desde la ra´ del ´rbol a ız a hasta el par incompatible (1. llegaremos al estado r . El punto 1 se prueba f´cilmente porque. La construcci´n del ´rbol siempre termina (no se “cicla”) o a 2. r ∈ F . entonces existe al menos una palabra. En cambio.13(a) no acepta la palabra ı o o bba. caracter por caracter. mientras que el de la figura 2. r ∈ F . Simplemente concatenamos los caracteres de entrada σ en dicha trayectoria. a Para probar el punto 2 basta con recorrer en el ´rbol la trayectoria que lleva al par a de estados incompatibles. a entonces los lenguajes aceptados por los aut´matas son efectivamente distintos. y obtendremos una palabra wtal que si la aplicamos como entrada al aut´mata M llegaremos al estado r. por propiedades de la l´gica elemental. al negar la e o conclusi´n de 3 se obtiene la negaci´n de su premisa. entonces en el ´rbol aparecer´n o a a estados incompatibles. w ser´ aceptada.13(b) s´ la acepta. r ). (r. Si en el ´rbol aparecen pares de estados incompatibles (uno final y el otro no final). As´ llegamos a la conclusi´n de que el aut´mata de la figura 2. En cuanto al punto 3. por lo que el ´rbol no puede extenderse indefinidamente. AUTOMATAS FINITOS Analizando el ´rbol de la figura 2. o o Reflexione porqu´ se est´ seguro de que es posible seguir w sobre el ´rbol.6). b y a. y por lo tanto sus lenguajes aceptados ı difieren al menos en la palabra bba. caracter por caracter.

al cambiar q por p en la configuraci´n.Dos estados son equivalentes. M´s a´n. se les pone a ambos como estado inicial de sendos aut´matas M1 y M2 . ssi intercambiar uno por otro en o cualquier configuraci´n no altera la aceptaci´n o rechazo de toda palabra. El unico problema con esta definici´n es que. para verificar si q0 ≈ q2 . es un hecho para nada evidente. uv]] ∗ ∗ M [[r. pero aceptando el mismo lenguaje que antes de la simplificaci´n. o o Formalmente escribimos: Dos estados p y q son equivalentes si cuando [[s. y se procede a comparar dichos aut´matas. Σ. δ. los estados q0 y q2 son en cierto modo redundantes. Esto se discute en la referencia [7]. para saber si dos estados q1 y q2 son equivalentes. o o o u 11 Como un primer ejemplo. a En el caso de los AFD. ε]] entonces r y t son estados compatibles.11 (a) y (b). q2 ∈ K.11(b). tendremos que q1 ≈ q2 ssi (K. q1 ≈ q2 . Simplificaci´n de Aut´matas finitos o o Una de las mejores cualidades de los AFD es que existen m´todos mec´nicos para sime a plificarlos. quiere decir que los estados q1 y q2 son equivalentes.11(a). 12 Es decir.. ver secci´n de ejercicios. Σ. y cuando se recibe una b se pasa a q1 . Este aspecto es resuelto por el siguiente o lema: Lema: Dado un AFD M = (K. habr´ que comparar o ıa El hecho de que para todo lenguaje regular existe un AFD m´ ınimo. F ) ≈ (K. habr´ que examinar. SIMPLIFICACION DE AUTOMATAS FINITOS 47 2. o que tiene un estado menos.6. Esta idea de “estados redundantes” se formaliza en lo que sigue: Definici´n. para verificar si dos estados dados p y q ´ o son equivalentes. y obtener el aut´mata de la figura 2. En el AFD de e (a). La definici´n nos dice qu´ son los estados equivalentes. hasta poder llegar al AFD m´s sencillo posible para un lenguaje dado. Se puede pensar u entonces en eliminar uno de ellos. 12 No damos la prueba. consid´rense los AFD de las figuras 2. vamos a entender por simplificaci´n la reducci´n en el n´mero de o o u estados. F ) y dos estados q1 . o e pero no c´mo saber si dos estados son equivalentes. si p ≈ q. para el aut´mata de la figura 2. δ. q1 . llamareo a u mos minimizaci´n a la obtenci´n de un aut´mata con el menor n´mero posible de estados. v]] Esta definici´n quiere decir que. v]] M [[t. la o o palabra va a ser aceptada (se acaba en el estado final t ) si y s´lo si de todos modos iba a o ser aceptada sin cambiar p por q (se acaba en el estado final r ). por ejemplo q2 . ε]] y [[p. si intercamıa biarlos en las configuraciones altera o no la aceptaci´n de esa palabra. q. δ. Por e ´ ejemplo. o o Si ´stos ultimos son equivalentes. Σ. ∗ M [[q. o 11 . F ).´ ´ 2. para cada palabra posible de entrada.6. que rebasa los alcances de este libro. el AFD contin´a en q0 o en q2 . porque mientras se est´n recibiendo e a’s. q2 . Esto es evidentemente o imposible para un lenguaje infinito.

si verificamos que q0 y q2 son equivao lentes. uno es final y el otro no final). Sin embargo. 2. Sin embargo. para evitar redundancias y hacer m´s eficiente al AFD. ya no pueden ser equivalentes.6. o . ı o La eliminaci´n de estados redundantes de un AFD es una manera de simplificar AFDs. a examinar m´todos m´s organizados para localizar los estados e a redundantes y minimizar los AFDs. que intuitivamente quiere decir que si o dos estados son distinguibles. dicha comparaci´n de AFDs da un resultado de o equivalencia. Las flechas que llegan al estado eliminado son redirigidas hacia su estado equivalente. As´ se llega al aut´mata de la figura 2. por lo que se concluye que los estados son redundantes. AUTOMATAS FINITOS a q1 b b b q0 a a q2 Figura 2. en el aut´mata de la figura 2. en el que se cambi´ el estado inicial por el otro estado o que se quiere comparar.14: Cambio de estado inicial dicho AFD con el de la figura 2.48 ´ CAP´ ITULO 2. hay que redirigir la flecha que va de q0 a q2 para que vaya al mismo q0 (se vuelve un ciclo). el trabajo que implica es mucho. y o puede usarse iteradamente para simplificar al m´ ınimo. se puede pensar en eliminar uno de ellos. Tabla de estados distinguibles Vamos a definir la noci´n de estados distinguibles.11(b).1. examinar cada par de estados es poco pr´ctico. a Vamos. 2. Por ejemplo. Una vez que se sabe que dos estados son equivalentes. y para AFDs grandes. La definici´n es inductiva: o Los estados p y q son distinguibles si son incompatibles (es decir. en consecuencia. Las flechas que salen del estado eliminado son eliminadas. Esta es la base de la inducci´n. y pensamos eliminar q2 . la eliminaci´n de a o un estado en el AFD plantea el problema de qu´ hacer con las flechas que conectan al estado e eliminado con el resto del aut´mata.11(a).14. En este ejemplo. Esta cuesti´n se resuelve con los siguientes criterios: o o 1.

σ) = q donde p y q son distinguibles. el caracter b nos lleva de 4 a 2. consid´rese el AFD de la figura 2. pues no tiene caso confrontar e cada estado contra s´ mismo. pero podemos ver que.16(b) se aprecian signos “×” en las celdas (2.16(c) se ha agregado una marca en la casilla (4.4). Es f´cil a a convencerse de que no hay forma de hacer distinguibles los pares (3. En ocasiones se requieren varios pasos intermedios para determinar que un par de estados es distinguible (esto no ocurre en el ejemplo reci´n visto).1). (5. y en cada cruce de rengl´n con columna se indica con una × cuando o son distinguibles. haciendo an´lisis similares.1) que se obtienen directamente del hecho de que son pares de estados incompatibles –por lo tanto distinguibles. Obs´rvese que en la tabla se omite la diagonal principal.15. empezamos con la tabla vac´ de la figura ıa 2.1). que viene del hecho de que con el caracter b las transiciones nos llevan de 2 a 1.2) y (5. ı (3.3). porque no son compatibles. (4. e Teorema. SIMPLIFICACION DE AUTOMATAS FINITOS 49 Figura 2.6. Su utilidad estriba en que es relativamente sencillo verificar si dos estados son distinguibles. para el AFD de la figura 2.1) y (5. En la tabla 2. de .3). y vemos que 2 y 1 son distinguibles al no ser compatibles.16(d) se pusieron marcas en (4.. Puede ser menos obvio ver que los estados 4 y 3 son distinguibles.16(a). σ) = p y δ(q0 . y de 4 a 2. Por ejemplo. pero el par (2. Una manera de organizar el trabajo de verificar qu´ pares de estados de un AFD son e distinguibles. aunque ambos son finales. e Por ejemplo. y similarmente de 3 a 1.2) y (5. En la figura 2. en la tabla 2.1) ya estaba marcado como distinguible.´ ´ 2.15: AFD a simplificar Si tenemos transiciones δ(p0 .2). consiste en construir una tabla en que los renglones y las columnas son los nombres de los estados. Este resultado se prueba en la referencia [7]. entonces tambi´n p0 y q0 son distinguibles. los cuales. Finalmente.Dos estados son equivalentes (o “redundantes”) ssi no son distinguibles.15. Este es el paso inductivo. Claramente los estados 1 y 3 son e distinguibles.

u . a a Este algoritmo. pues es necesario o examinar repetidamente cada celda de la tabla para verificar que los cuadros a´n no marcados u siguen sin ser distinguibles. de la forma que hemos visto. Simplificaci´n por clases de equivalencia o Existe otro m´todo de simplificaci´n de estados.2. debido a que permite organizar m´s sistem´ticamente el trabajo. podemos proceder a eliminar uno de ellos.16(d). sigue un o orden de operaciones inverso a la eliminaci´n gradual de estados redundantes que hemos o visto antes: en vez de ir reduciendo el n´mero de estados. el AFD m´ ınimo tiene 3 estados. En el ejemplo de la figura 2. de hecho m´s com´nmente usado que el e o a u que hemos presentado.6.50 ´ CAP´ ITULO 2. hasta que en una de las iteraciones ya no se agregue ninguna marca a la tabla. el procedimiento puede volverse algo complicado.16: Tabla de estados distinguibles acuerdo con el teorema presentado. que llamaremos “simplificaci´n por clases de equivalencia”. 2. son pares de estados equivalentes. como hay dos pares de estados redundantes. En aut´matas grandes. comienza con grupos de estados. AUTOMATAS FINITOS 2 3 4 5 1 2 3 4 2 3 4 5 X X X X 1 2 3 4 (a) (b) 2 3 4 5 X 2 3 X X X X X 4 5 X X X X X X X 1 2 3 4 1 2 3 4 (c) (d) Figura 2. Una vez que detectamos los pares de estados equivalentes.

6. ı Al terminar el proceso de divisi´n de clases. Antes de formalizar el proceso. La idea es formar clases de estados de un aut´mata que. respectivamente. hasta que no se halle evidencia que obligue a dividir ninguna clase. (a) AFD a simplificar (b) Clases iniciales (c) Clases al final (d) AFD simplificado Figura 2. hasta donde se sabe en ese moo mento. que se van dividiendo en clases m´s peque˜as. puede a veces inferirse que despu´s de todo no deben permanecer en e la misma clase. Luego se examinan o las transiciones de las clases que se formaron. y as´ en adelante. al examinar las transiciones de varios estados ıan de una misma clase. vamos a explicarlo con ayuda de un ejemplo.Consid´rese el AFD de la figura 2. Las transiciones del aut´mata simplificado se forman a partir de o o las transiciones de los estados contenidos en cada clase. hasta que el proceso de divisi´n a n o ya no pueda continuarse. En ese momento la clase en consideraci´n se “divide”. a ver si es necesario dividirlas nuevamente. Las primeras dos clases de equivalencia e que se forman contienen.17: Simplificaci´n por clases de equivalencia o Ejemplo. a los estados finales y a los estados no finales. podr´ ser equivalentes. . cada una de las clases representa un estado o del aut´mata simplificado.17(a).. Sin embargo.´ ´ 2. SIMPLIFICACION DE AUTOMATAS FINITOS 51 o “clases”.

mientras que desde 4 ir´ ıamos a la clase {2. {2. 3. 5} de la figura 2.17(c) como estados. En este punto ya no es posible dividir alguna de las 3 clases existentes.17(b). desde 3 nos vamos a la clase {2. 4. 5}. 4. σ). Si la respuesta es s´ la clase no necesita dividirse. 3. Obs´rvese que las transiciones de 2. 4. 4. Ahora vamos a examinar si todos los estados de cada clase tienen transiciones “similares”. y la de los estados con transiciones “diferentes” a q (que no van a dar a la misma clase de equivalencia con un mismo s´ ımbolo σ). estar en una sola clase de ıan 13 equivalencia ). nos damos cuenta de que el estado 3 tiene transiciones similares (con a a la clase {2. 5} debe dividirse. 3. 3. 5} se parta en dos. 5} en {2. Conclu´ ımos que 3 y 4 no pueden coexistir en una misma clase de equivalencia. Para cada uno de los otros estados. para un AFD (K. 5}. simplemente registramos a qu´ clase de equivalencia se e llega con cada s´ ımbolo de entrada. mientras que los estados 4 y 5 tienen transiciones diferentes a las de 2 (con a y con b van a la clase {2. Tomando como referencia al estado 2. Concluimos que estas son las clases de equivalencia m´s finas que pueden formarse. lo que en nuestro caso quiere decir que van a una misma clase de equivalencia. Σ. el procedimiento es como sigue. AUTOMATAS FINITOS los cuales evidentemente no podr´ ser equivalentes (esto es. lo que tambi´n ocurre desde el estado 4. s. Formalmente. dividir la clase en dos subclases: la que agrupa a los estados que tuvieron transiciones “similares” a q.17(c).17(d). formamos el AFD que aparece en 2. 4. y los estados finales del nuevo AFD vienen de las clases de equivalencia que contienen estados finales del antiguo AFD. σ) va a dar a la misma clase de equivalencia que δ(q . Hasta aqu´ 3 y 4 se comportan e ı similarmente. esto ocasiona que la clase {2. 5}. Al recibir el s´ ımbolo a. ı. consideremos la clase {2. Por ejemplo. Repetir para cada clase: Sea q un estado de la clase. 3. dividimos {2. 3} y {4.17(b). 3} y {4. 3. δ. 3. Luego habr´ que examinar las nuevas clases. Por ejemplo. 13 ¿Porqu´? e .17(d) son las de cualquiera de los e estados contenidos en cada clase. como aparece a a en la figura 2. 4. Haciendo el mismo an´lisis con los dem´s estados. verificar si δ(q. q . pues las transiciones de sus estados son “similares”. 4. ıa en este caso sucede que ya no se necesita dividir ninguna de ellas.17(b). para cada caracter σ. 5}. Si la respuesta es no. 3. 4. Inicialmente se tienen las clases F y K − F 2. Ahora examinamos las transiciones con b: desde 3 nos ir´ ıamos a la clase {1}. El estado inicial corresponde a la clase de equivalencia que contenga el antiguo estado inicial. con b a la clase {1}). por lo que la clase {2. a Tomando las clases de equivalencia de 2. {1}. F ): 1. 5}). 5}. tomemos los estados 3 y 4 de 2.52 ´ CAP´ ITULO 2. Estas dos clases se encuentran indicadas en la figura 2.

se trata de los aut´matas de Mealy. o o . puede a o haber distintas se˜ales de salida que correspondan a los comandos enviados a la m´quina n a 14 para dirigir su acci´n. {2.18.7. En el primer caso. 3. 4. Mealy [13] y E. Por ejemplo. para el nodo {2. indicando a causa de qu´ caracter la clase de e equivalencia se dividi´. Sin ı embargo. 3.17(a). 4. que corresponden a los 3 estados que tendr´ el AFD minimizado. seg´n si la salida depende de las transiciones o bien del estado en que se encuentra u el aut´mata. o el analizador lexicogr´fico es un aut´mata a o finito con salida. Moore [15]. las clases a o a de equivalencia resultantes son {1}. Inicialmente est´n todos los estados del AFD en a una clase. Luego. e ız a inmediatamente se dividen en finales y en no finales. 5 Figura 2. 5 1 b 2. la unica tarea que han ejecutado los aut´matas finitos es la ´ o de aceptar o rechazar una palabra. 3. como en el seguiente nivel en esa misma figura. 5}. vemos que ya no hay raz´n para dividirlas m´s.6. 3 4. mientras que 4 y 5 van a un final. para el AFD de la figura 2. Finalmente. Aut´matas finitos con salida o Hasta donde hemos visto. como en la ra´ del ´rbol en la figura 2. o 14 Haremos una breve descripci´n de los compiladores en la secci´n 5. y en el segundo.18: Clases de equivalencia organizadas en ´rbol a En la pr´ctica. que recibe como entrada el texto del programa y manda como salida los elementos lexicogr´ficos reconocidos (“tokens”).7. llevan a las mismas clases. 5} examinamos si las transiciones con los caracteres de entrada. a 2. de los o o aut´matas de Moore. 4. por lo que ese nodo se divide en dos. en vez de trazar l´ a ıneas sobre el diagrama de estados. como se aprecia en el tercer nivel de la figura. 5}. 3} y {4. AUTOMATAS FINITOS CON SALIDA 1. es posible definirlos de manera tal que produzcan una salida diferente de “si” o “no”. es conveniente organizar la informaci´n de las clases de equivalencia en ´rboles.´ 2. en el contexto de una m´quina controlada por un aut´mata. Examinando las transiciones en las clases de equivalencia que quedan o en las hojas del ´rbol. en este caso a y b. propuestos respectivamente por G. determinando as´ si pertenece o no a un lenguaje. 2. Ah´ tambi´n se puede ı e apreciar un s´ ımbolo b bajo el nodo {2. Hay dos formas de definir a los aut´matas a o con salida. 4. En los compiladores. 5 53 2. en donde cada nodo contiene o a los estados de una clase de equivalencia. 3. y verificamos que en el caso de b los estados 2 y 3 van a un no final.

. la salida asociada. Todos e los dem´s aspectos permanecen igual que en un AFD.19(a): a . consideremos un aut´mata que invierte la entrada binaria recibida (esto es.19: Aut´matas de Moore y Mealy o 2. o a Para formalizar los aut´matas de Moore una idea sencilla es a˜adir a un AFD est´ndar o n a una funci´n que asocie a cada estado una palabra de salida. Dicho aut´mata se representa gr´ficamente en la figura 2.7. Γ. llamaremos λ a esta funci´n.La siguiente m´quina de Moore formaliza el diagrama de la figura 2. se produce el s´ o ımbolo de salida asociado al estado al que se llega. y λ. que puede ser distinto al de entrada. que obtiene la salida asociada a cada estado. δ. Σ. o o Tambi´n vamos a agregar un alfabeto de salida Γ. Por n ejemplo. Las m´quinas de Moore se representan gr´ficamente como cualquier AFD. Dicha salida es producida una vez. Σ y o a e δ son como en los AFD. AUTOMATAS FINITOS 1 0 q0 q1 1 0 q0 1/0 0 1 0/1 (a) Moore 1/0 0/1 q0 1/0 q1 0/1 (b) Mealy (c) Moore transformado en Mealy Figura 2. al que se a a a˜ade. y cuando se llega a otro estado (o al mismo) por efecto de una transici´n. adem´s tenemos a Γ que es el alfabeto de a salida. al lado de cada estado. q0 ).1. M´quinas de Moore a En las m´quinas de Moore la salida depende del estado en que se encuentra el aut´maa o ta.Una m´quina de Moore es un s´xtuplo (K. Ejemplo. que es una cadena de caracteres. en donde K. λ.. Algunos estudiantes encuentran util la analog´ de los aut´matas de Moore con nociones de ´ ıa o electricidad: es como si cada estado tuviera un “nivel de voltaje” que se produce en la salida mientras el control se encuentre en dicho estado. a Definici´n.54 ´ CAP´ ITULO 2.19(a). y q0 es el estado inicial. la o salida es una cadena de caracteres tomados de Γ. que es una funci´n de K a Γ∗ . cambia o un 1 por 0 y un 0 por 1).

a Los criterios para dise˜ar tanto m´quinas de Moore como de Mealy son b´sicamente los n a a mismos que para cualquier otro AFD. ai ).. 1}. Por esto. para 1 ≤ i ≤ n.2. . . Ejemplo. q0 ). el diagrama para el inversor binario. Podemos imaginar que asociamos la salida a a las transiciones. una idea podr´ ser aumentarle a las transiciones a ıa la palabra producida en la salida. an es λ(q0 .Una m´quina de Mealy es un s´xtuplo (K. 1}.19(b) se puede representar formalmente de la siguiente forma: K = {q0 }. a λ(qn−1 . an ). M´quinas de Mealy a En las m´quinas de Mealy la salida producida depende de la transici´n que se ejecuta. para 1 ≤ i ≤ n. m´s que a los estados. ahora toma como o a entrada un estado y un caracter de entrada. 2. .7. a Para formalizar las m´quinas de Mealy. 0) δ(q. Sin embargo.7. y δ est´ tabulada como: a q q0 q1 δ(q. Γ. donde qi = δ(qi−1 . . donde qi = δ(qi−1 . adem´s de los estados. a diferencia de las m´quinas de Moore. λ(q1 ) = 1. ai ∈ Σ. Obs´rvese que.. a que dependa de una transici´n. q1 }. 15 o Definici´n. δ(q0 ) = q0 . δ. . y a o no solamente del estado. por modularidad se prefiere definir una funci´n de salida λ.El inversor de Mealy de la figura 2. en las m´quinas de Mealy la salida e a a depende de la entrada. . AUTOMATAS FINITOS CON SALIDA K = {q0 . 0) = 1. an es la concatenaci´n de a o λ(q0 ) λ(q1 ) . Σ. donde σ es el caracter que se consume de entrada. implementado como m´quina de Mealy. . a1 ) λ(q1 .´ 2. y w es la palabra que se produce en la salida. ai ). en la notaci´n gr´fica las etiquetas de las flechas son de o a la forma σ/w.19(b). 1) = 0. por lo que no presentaremos aqu´ m´todos especiales ı e 15 Esto suponiendo que no hay varias transiciones distintas entre dos mismos estados. Por ejemplo. toma un elemento de K × Σ –que incluye un estado y un caracter de entrada– y produce una palabra formada por caracteres de Γ. En efecto. a diferencia de las m´quinas de Moore. a2 ) . λ. a excepci´n de λ. que es una funci´n o o ∗ λ : K × Σ → Γ . λ(qn ). pero que. en el que todos los o a e componentes tienen el mismo significado que arriba. Σ = Γ = {0. λ(q0 ) = 0. Σ = {0. . 1) q1 q0 q1 q0 55 La salida de una m´quina de Moore M ante una entrada a1 . y λ(q0 . esto es. λ(q0 . se presenta en la figura 2. . La salida de una m´quina de Mealy ante una entrada a1 . podemos darnos cuenta de que es lo mismo que la salida dependa del estado y un caracter.

y en consecuencia. como se ilustra en la figura 2. Debe quedar claro que los tres caracteres que le saca de ventaja la salida al primer caracter de entrada se conservan hasta el final de la entrada. a)). remitimos al alumno a la referencia [7]. a) = λM oore (δM oore (q. Esta a o m´quina est´ ilustrada en la figura 2. en la a a salida se entregan cuatro caracteres. para una m´quina de Moore dada. que es una palabra de un cierto alfabeto Σ. para un mismo problema. pues en o a a general hay que crear estados adicionales. la salida ser´ x + 3. Si despreciamos la a salida de las m´quinas de Moore antes de recibir el primer caracter (o sea. que es otra palabra formada por caracteres del alfabeto de salida Γ. C´lculo de funciones en AF a Ya que las m´quinas de Mealy y de Moore pueden producir una salida de caracteres dada a una entrada. en el sentido a de que producen la misma salida.21(a).7. si la entrada es x. AUTOMATAS FINITOS x f f(x) Figura 2. y viceversa. pues haceo a a mos λM ealy (q. es natural aplicar dichas m´quinas al c´lculo de funciones.4. Podemos as´ ver una funci´n como una “caja negra”.20. es a posible encontrar. 2. Equivalencia de las m´quinas de Moore y Mealy a Aunque muchas veces. es decir. n 2. en lo subsecuente por cada caracter en la entrada se entrega un caracter en la salida.56 ´ CAP´ ITULO 2. a La transformaci´n de una m´quina de Mealy en Moore es m´s complicada. la m´quina de Mealy es m´s simple que a a la correspondiente de Moore. Por ejemplo. donde la funci´n es a a o vista como una forma de relacionar una entrada.20: Funci´n como “caja negra” o de dise˜o. ambas clases de m´quinas son equivalentes. etc. con una salida. Ejemplo.Representamos los n´meros naturales en el sistema unario. simplemente obtenemos qu´ salida proe ducir´ una transici´n de Mealy viendo la salida del estado al que lleva dicha transici´n en a o o Moore. u 5 es 11111. su equivalente de Mealy. de este modo. con entrada ε). 3 es 111. la salida tiene siempre tres caracteres m´s que la a entrada. que a partir ı o del argumento x entrega un resultado f (x).19(c).3. La transformaci´n de una m´quina de Moore en m´quina de Mealy es trivial..19(b) se puede transformar de esta a manera a la m´quina de Moore que aparece en la figura 2. En efecto. hasta que se acabe la entrada. a . al recibirse el primer caracter. la m´quina de Mealy de la figura 2. es decir.7. Queremos una m´quina de Mealy que calcule la funci´n f (x) = x + 3.

Σ. multiplicada por dos.21(b) entrega una salida que es la entrada ı. En efecto. o Formalizaci´n del c´lculo de funciones o a Decimos que una m´quina M calcula una funci´n f : Σ∗ → Σ∗ si dada una entrada a o ∗ x ∈ Σ la concatenaci´n de los caracteres que entrega a la salida es y ∈ Σ∗ . λ. s) es una tripleta o o a . donde y = f (x). o Definici´n. Por ejemplo.Una configuraci´n de una m´quina de Mealy (K.´ 2. la “concatenaci´n de los caracteres a la salida” puede o o ser tomada en cuenta en la configuraci´n.21: Funciones aritm´ticas en Mealy e (a) f (x) = 2x + 3 (b) f (x) = nx + m Figura 2. o La definici´n anterior puede ser formalizada en t´rminos de las configuraciones y del paso o e de una configuraci´n a otra.22: Funciones lineales en Mealy Ser´ interesante ver si los AF pueden calcular funciones aritm´ticas m´s complejas que ıa e a la simple suma de una constante. el esquema de AF de la figura 2.22(a) calcula la funci´n f (x) = 2x + 3..7. AUTOMATAS FINITOS CON SALIDA 57 (a) f (x) = x + 3 (b) Funci´n f (x) = 2x o Figura 2. a o Estos resultados pueden ser generalizados para mostrar que una m´quina de Mealy puede a calcular cualquier funci´n lineal. Γ. a˜adiendo a ´sta un argumento adicional en el o n e que se vaya “acumulando” la salida entregada. el AF de la figura 2. δ. Aun m´s. ¿se podr´ multiplicar la entrada en unario a por una constante? La respuesta es s´ El AF de la figura 2. En efecto. Esto nos lleva a una definici´n modificada de o configuraci´n.22(b) muestra o c´mo calcular una funci´n f (x) = nx + m. o o Cerca del final de este texto veremos que un AF no puede calcular funciones mucho m´s a complejas que las que hemos visto. ni siquiera pueden calcular la funci´n f (x) = x2 .

[[p. α es lo que resta por leer de la palabra. lo que quiere decir que o la funci´n que calcula –sea f – es tal que f (1101) = 0010. y β es lo que se lleva acumulado a la salida. y]] donde q ∈ K.19(b). donde q es el estado en que se encuentra el AF. se tiene: [[s. Aut´matas finitos no deterministas o Una extensi´n a los aut´matas finitos deterministas es la de permitir que de cada nodo o o del diagrama de estados salga un n´mero de flechas mayor o menor que |Σ|. o bien que haya varias flechas que salgan de un s´lo nodo con la misma etiqueta.19(b).23: AFN para palabras que contienen abbab [[q.58 a. 0]] [[q0 . As´ se puede u ı. para el AF de Mealy de la figura 2. ε]] ∗ [[q. Al retirar algunas de las restricciones que tienen los aut´matas finitos determin´ o ısticos. Definici´n. se pasa de una configuraci´n inicial o [[q0 . tenemos que [[q0 . ε]] a una configuraci´n final [[q0 .b abbab ´ CAP´ ITULO 2.Una m´quina M = (K. s) calcula una funci´n f : Σ∗ → Σ∗ si dada o a o ∗ una entrada x ∈ Σ . De este modo el funcionamiento del aut´mata que permite concatenar caracteres a la salo ida se define de una manera muy simple.. escrita “ ”. Utilizando la cerradura transitiva y reflexiva de la relaci´n “ ”.8. 1101. σ) y ξ = λ(q. que se denota por “ o podemos definir formalmente la noci´n de funci´n calculada: o o ∗ ”. AUTOMATAS FINITOS a. ε. siempre que y = f (x).. estos aut´matas finitos se les llama no determin´ o ısticos o no deterministas (abreviado AFN). utilizando la relaci´n del paso de una configuraci´n o o a otra. un AFN que acepte n a . v]] o [[q. δ. Γ. ε. α. x. dado el AF de Mealy de la figura 2. u. como sigue: Definici´n. Por ejemplo. Σ. σ). 01. 00]]. β]] ∈ K × Σ∗ × Γ∗ . Por ejemplo. λ. Inclusive se permite o que las transiciones tengan como etiqueta palabras de varias letras o hasta la palabra vac´ A ıa. 0010]] en cuatro pasos. su dise˜o para un lenguaje dado puede volverse m´s simple.b 1 2 Figura 2. Por ejemplo. por razones que luego veremos. vξ]] si q = δ(p. o 2. σu. 101. permitir que falte la flecha correspondiente a alguno de los s´ ımbolos del alfabeto.

1. {2}) El punto esencial es que ∆ es una relaci´n.Un aut´mata finito no determinista es un qu´ o o ıntuplo (K. 2). el AFN de la figura 2. Representaci´n formal de los AFN o Definici´n. estando en un nodo n. El problema en este ejemplo es particularmente grave porque en uno de los casos ı se llega a un estado final y en el otro no. la representaci´n formal de los AFN no es id´ntica a la de los AFD. tomando el aut´mata de la figura 2. 1). a. 2). por lo que todo AFD es de hecho un AFN.8. siguiendo las transiciones de 1 a s´ mismo. como o se hace en seguida. q2 ) ∈ ∆. si se nos presenta una palabra como abbaba. . que es una transici´n representada como una o flecha de etiqueta w en el diagrama de estados. (2. a. b. 1). y ∆. o o Esto significa que cada tripleta (q1 . o e N´tese que w puede ser la palabra vac´ o ıa. s y F tienen el mismo significado que para el caso de los aut´matas determin´ o ısticos.´ 2.23 quedar´ representado matem´ticamente por el ıa a siguiente qu´ ıntuplo: ({1. b} que contienen la subcadena abbab se ilustra en la figura 2.8. 17 Vamos a definir la noci´n de palabra aceptada en t´rminos de la representaci´n gr´fica o e o a 16 17 Sin embargo. Por ejemplo. Sin embargo. (1. no un caracter del alfabeto. w. o no sabremos si tomar la transici´n del estado 1 al 2. puede ocurrir que. Adem´s. ∆. permite pasar de q1 a q2 “gastando” en la entrada una subcadena w. pues puede haber varias opciones. gastando abbab. 2.23. o o bien gastar en 1 todas las letras de la palabra de entrada. Obs´rvese tambi´n que el o o e e segundo elemento de la relaci´n de transici´n es una palabra.23). 2)}. Σ. y ya en 2 gastar a.. abbab. 59 Hacemos notar en este punto que. {(1. {a. s. 2}.23. b. Σ. F ) donde K. b}. no una funci´n. en los aut´matas ı o o no determin´ ısticos se presenta una dificultad para poder saber qu´ camino tomar a partir e de un estado dado cuando se presenta un s´ ımbolo. no exista ninguna flecha que salga de n con etiqueta a (esto no ocurre en el ejemplo de la figura 2. dado que los AFN tienen menos restricciones que los AFD. llamado la relaci´n de transici´n. 16 Hasta aqu´ s´lo vemos ventajas de los AFN sobre los AFD. (1. resulta que los AFD son un caso particular de los AFN. Veremos m´s adelante c´mo enfrentar este tipo de a o situaciones.1. Estas diferencias con los AFD se deben reflejar en la definici´n formal de los AFN. y habiendo un s´ a ımbolo de entrada a. o o Por ejemplo. AUTOMATAS FINITOS NO DETERMINISTAS las palabras en {a. (2. es un subconjunto finito de K × Σ∗ × K.

la cantidad de trayectorias posibles puede ser muy grande como para examinar una por una. Dise˜ o de AFN n Como sugerimos al inicio de esta secci´n. ´ CAP´ ITULO 2. pero nosotros hemos preferido aplicarlos directamente o a mejorar las habilidades de dise˜o de AFN de los alumnos de computaci´n. En este ejemplo en particular es posible ver que la cadena ababab no es aceptada por el aut´mata. sean M1 y M2 . p3 = o abbab. por lo que no es posible llegar al estado final y la palabra no podr´ ser aceptada. desde un punto de vista m´s matem´tico que ingenieril. a 2. Son estos m´todos n e 19 modulares los que describiremos en esta secci´n. en una a a secci´n de “propiedades de los lenguajes regulares”. AUTOMATAS FINITOS Definici´n.. tal que la concatenaci´n de las etiquetas de las flechas es igual a w. p1 = b. que permiten manejar mejor la complejidad de los problemas. Probar que una caı ı o dena no es aceptada por un aut´mata no determin´ o ıstico es m´s dif´ pues hay que mostrar a ıcil. en los AFN es posible aplicar m´todos modulares o e de dise˜o.Verificar si la palabra baabbaba es aceptada por el AFN de la figura 2. que no existe ninguna trayectoria que satisfaga los requisitos. 19 En muchos libros estos temas se agrupan.2. 18 o Ejemplo.8. y p4 = a.23. podemos seguir o la siguiente secuencia de estados (trayectoria) en el AFN dado: Estado Cadena que consume Produce estado 1 b 1 1 a 1 1 abbab 2 2 a 2 As´ probamos que la cadena baabbaba s´ es aceptada por el aut´mata. o AFN para la uni´n de lenguajes o Si ya contamos con dos AFN. Soluci´n: La palabra baabbaba puede ser dividida en cuatro pedazos. n o 18 . que no hay en la palabra dada..Una palabra w es aceptada por un aut´mata no determin´ o o ıstico ssi existe una trayectoria en su diagrama de estados.60 de los aut´matas no determin´ o ısticos. que parte del estado inicial y llega a un estado final. es posible combinarlos para hacer un nuevo AFN que acepte la uni´n de los lenguajes que ambos aut´matas aceptaban. o o Se puede expresar la definici´n de palabra aceptada en t´rminos de la noci´n de configuraci´n (ver o e o o ejercicios). cuya concatenaci´n produce la palabra original. p2 = a. Ahora bien. pues la transici´n o o que liga el estado inicial 1 con el final 2 incluye dos b’s seguidas.

s1 . o seg´n el que convenga: si la palabra de entrada w est´ en L1 . F2 ) dos aut´matas que aceptan o 20 los lenguajes L1 .25(b) otro que acepta las palabras que terminan en bb.24: AFN para la uni´n de dos lenguajes o Sean M1 = (K1 . sean M1 = (K1 . s2 )}. entonces escogemos irnos a u a M1 . Σ1 . ε. Entonces hacemos un a aut´mata M3 cuyo estado inicial es q. ε. s1 ). en 2.8. Σ2 . Esta o ıas simple idea le permite escoger en forma no determinista entre irse al aut´mata M1 o a M2 .En la figura 2.Dise˜ar un aut´mata no determinista que acepte las palabras sobre {a.. a AFN para la concatenaci´n de lenguajes o Similarmente al caso anterior. Σ1 ∪ Σ2 . y que tiene transiciones vac´ de q a s1 y a s2 ..´ 2. Σ1 ∪ Σ2 .25(c) est´ el AFN que acepta el lenguaje dado. y similarmente a M2 para L2 . ε. F1 ) y M2 = (K2 . L2 respectivamente.25(a) se presenta un AFN que acepta las palabras que cono tienen un n´mero par de a’s. AUTOMATAS FINITOS NO DETERMINISTAS 61 Figura 2. e ¥ ε £ ¡   ε ¤ ¢ . w1 ∈ L1 . s2 .24 se representa gr´ficamente M3 . F2 ) dos aut´matas que aceptan los lenguajes L1 . u Soluci´n. u Finalmente... entonces se empieza procesando w1 exactamente como lo har´ M1 . Formalmente M3 = (K1 ∪ K2 ∪ {q}. ∆1 ∪ ∆2 ∪ {(q. Formalmente M3 = (K1 ∪ K2 . F1 ) y M2 = (K2 . L2 .. ∆2 . Σ1 . q. ∆1 . ∆1 . ∆2 . s2 )|p ∈ F1 }. Podemos entonces construir o un AFN M3 que acepte L1 L2 de la siguiente manera: A˜adimos unas transiciones vac´ que n ıas van de cada uno de los estados finales de M1 al estado inicial de M2 . F2 ) El funcionamiento de M3 es como sigue: cuando se recibe una palabra w = w1 w2 . Podemos entonces construir un AFN M3 que acepte L1 ∪ L2 de la siguiente manera: Sea q un nuevo estado que no est´ en K1 ni en K2 . s1 . b} que n o tengan un n´mero par de a o que terminen en bb. tambi´n se requiere e que los estados finales de M1 dejen de serlo. Σ2 . s2 . w2 ∈ L2 . y en 2.. hasta llegar ıa 20 Sin p´rdida de generalidad podemos suponer que K1 y K2 son disjuntos. (q. a Ejemplo. En la figura 2. ∆1 ∪ ∆2 ∪ {(p. F1 ∪ F2 ). s1 .

Otro AFN –figura 2. pero con grupos de aaa. o Soluci´n.b bb q3 q4 (b) Terminan en bb a.27(b)– acepta un lenguaje similar.Un AFN. baab o baaaaa.27(c). La soluci´n es su concatenaci´n.26 se representa M3 .b q3 bb q4 ε b q1 a a q2 b . Ejemplo.Construir un AFN que acepte el lenguaje en {a. En la figura 2. que se presenta en la figura 2. forzosamente debe ser posible llegar a un estado final de M2 . ilustrado en la figura 2. acepta palabras que contienen b’s y o grupos de aa en cualquier orden. por ejemplo.62 ´ CAP´ ITULO 2. Esta condici´n no se cumple. en bbaaabaa ni en aaabaaaa.. aaa. y los grupos de a’s que son repeticiones de aaa est´n a a la derecha de los que son repeticiones de aa. como en baabaaa..25: Combinaci´n de AFNs o hasta alguno de los antiguos estados finales de M1 . b} donde las a’s vienen en grupos de al menos dos seguidas. AUTOMATAS FINITOS (a) N´mero par de a u ε q0 (c) Combinaci´n de los dos o Figura 2. o o ¡   a.27(a). ya que por hip´tesis ıa o M2 acepta w2 . entonces se empieza procesando w2 como lo har´ M2 .

8.27: Concatenaci´n de dos AFN o £ ¥ ¡ ε   aaa 2 b (b) .´ 2. AUTOMATAS FINITOS NO DETERMINISTAS 63 ε ¤ ¢ Figura 2.26: AFN para la concatenaci´n de dos lenguajes o aa 1 b (a) aa aaa 1 b ε 2 b (c) Figura 2.

q1 }. sorprendente.28. b. Queremos analizar qu´ sucede cuando e e este AFN recibe la palabra baaaaab. pero sin “gastar” ning´n caracter podr´ estar tambi´n en el estado q1 . ıa Por ejemplo. pero muy util.. pro´ poniendo para un AFN c´mo construir un AFD que sea equivalente. consideremos la idea de mantener un conjunto de estados Qi en los que ser´ posible estar en cada momento al ir consumiendo las letras de una palabra de entrada. en el sentido de que habr´ algunos lenguajes a ıa aceptados por alg´n AFN para los cuales no habr´ ning´n AFD que los acepte. Al consumirse el primer caracter. o o . AUTOMATAS FINITOS a q2 a q0 b a ε q3 a a q1 b q4 Figura 2. q1 }. mientras que del q1 s´lo se o puede pasar a q1 . Inicialmente. consid´rese el AFN de la figura 2. Equivalencia de AFD Y AFN Los aut´matas finitos determin´ o ısticos (AFD) son un subconjunto propio de los no determin´ ısticos (AFN). u ıa u en realidad no sucede as´ ı.8. Entonces. 21 Podr´ entonces pensarse ıa que los AFN son “m´s poderosos” que los AFD.64 ´ CAP´ ITULO 2. u Este resultado.28: AFN a transformar en AFD 2. El m´todo de los conjuntos de estados e Dado un AFN M . vamos llevando registro de los conjuntos de estados en los que podr´ encontrarse el AFN. Teorema. Para ello. Y as´ en adelante.3. La tabla siguiente resume los conjuntos de estados por los ı que se va pasando para este ejemplo: 21 Salvo por el hecho de que δ es una funci´n y ∆ una relaci´n. o sea que el u ıa e proceso arranca con el conjunto de estados Q0 = {q0 . o El m´todo que usaremos para pasar de un AFN a un AFD se basa en la idea de considerar e el conjunto de estados en los que podr´ encontrarse el AFN al haber consumido una cierta ıa entrada. puede probarse en forma constructiva. se puede pasar de q0 a q0 o bien a q1 (pasando por el ε). el conjunto de estados en que se puede estar al consumir la b es Q1 = {q0 . podr´ encontrarse en el estado ıa ıa inicial q0 .Para todo AFN N . Sin embargo. existe alg´n AFD D tal que L(N ) = L(D). lo que quiere decir que todo AFD es un AFN.

los cuales inclu´ ımos en un nuevo conjunto de estados. este estado ı vac´ tendr´ transiciones con a y con b a s´ mismo. q4 } {q0 . el AFN pudiera encontrarse ya sea en q2 o en ı.29(b). Consid´rese el problema de e e transformar a AFD el AFN de la figura 2. q1 }. q1 . esto es {}.29(c). q1 }. entonces podremos completar un AFD. necesitamos organizar las entradas posibles de manera sistem´tica. q0 . con una a se pasa a {q3 .28 en los que se pudiera estar antes a de consumir el primer caracter. q1 } {q2 . q4 } {q1 } 65 Puesto que el ultimo conjunto de estados {q1 } incluye a un estado final. ı Con este mismo procedimiento se siguen formando los conjuntos de estados. q2 . Vamos a considerar el conjunto de estados del AFN en los que podr´ encontrarse ´ste en cada momento. En casos como ´ste. similarmente. esto es. como se ilustra en la figura 2. El conjunto inicial de estados ıa e estar´ formado por los estados del AFN de la figura 2. q4 . por ejemplo. q2 . q4 }. Continuando as´ al final se llega al ı. entonces hemos estado en realidad siguiendo los pasos o de ejecuci´n de un AFD con “mega-estados”. q1 } {q0 . consideramos cada posible caracter que puede llegar al estar en un “mega-estado”.29(b). que deber´ ser a 22 equivalente al AFN dado. AUTOMATAS FINITOS NO DETERMINISTAS Entrada b a a a a a b Estados {q0 . a partir del conjunto inicial de estados {q0 .29(a). a partir del conjunto de estados {q2 .8. diagrama de la figura 2. Un detalle importante a observar en este procedimiento es que en ocasiones no hay estados adonde ir. q3 . q4 } {q1 . ıo a ı 22 La equivalencia formal se discute m´s adelante. q1 } con la letra b llegamos al mismo conjunto {q0 . por ejemplo. al que se llega con una transici´n o con a. Dicho conjunto aparece en la figura 2. a . q3 . consideramos que habr´ una transici´n con b a un nuevo conjunto e a o de estados vac´o. Por supuesto. Para poder ser exhaustivos. a Vamos a describir inicialmente el m´todo sobre un ejemplo. A partir de ah´ tras recibir un caracter a. q3 } {q1 . Otra conclusi´n –mucho m´s util que la anterior– o a ´ es darse cuenta de que si consideramos a los conjuntos de estados Qi como una especie de “mega-estados” de cierto aut´mata. como fue baaaaab.29(c). q0 y q1 . a partir de {q2 . con b no llegamos a ning´n u estado. q4 }. o Una vez que comprendemos lo anterior. como se aprecia en la figura 2. q4 } {q0 . lo cual se representa con un “lazo” a s´ mismo en la figura 2. se concluye que ´ la palabra de entrada puede ser aceptada. si en vez de considerar una palabra en particular. q1 .28. nos damos cuenta de que.´ 2.

que son t´ ıpicos de los programas imperativos. donde los estados q2 y q3 son estados nuevos generados para hacer esta transformaci´n. o se generan las transiciones siguientes: (q1 . (q3 . esto muestra que es posible que en ese punto el AFN hubiera aceptado la palabra de entrada. En efecto. aaa. etc. a´n cuando o u hay una transici´n (q0 .66 ´ CAP´ ITULO 2. q3 ). AUTOMATAS FINITOS Ahora tomemos una pausa y respiremos hondo.30. a. si ´sta se terminara. una dificultad e a que puede presentarse es que algunas flechas del aut´mata tienen como etiquetas palabras de o varias letras. Una transformaci´n inofensiva o Cuando queremos aplicar el m´todo descrito en los p´rrafos precedentes. Esta transformaci´n es “inofensiva” en a o 23 el sentido de que no altera el lenguaje aceptado por el AFN. y desde luego no podemos tomar “un pedazo” de una transici´n. nos daremos cuenta de que ¡hemos construido un AFD!. a. ı.30 se tiene el AFN transformado de la figura 2. Esta situaci´n o o se aprecia en el AFN de la figura 2. condie o cionales. M´s bien vamos a presentar un a conjunto de definiciones que capturan los resultados intermedios en el proceso de conversi´n o de AFN a AFD. de la transici´n (q1 . o Con esta transformaci´n se puede pasar de un AFN cualquiera M a un AFN M equivao lente cuyas transiciones tienen a lo m´s un caracter. aa. Si nos alejamos del dibujo de manera que no observemos que son conjuntos de estados. sino que vemos los c´ ırculos como estados. Obviamente. q2 ). Por ejemplo. instrucciones de asignaci´n.. Unicamente falta determinar cu´les a de los nuevos estados son finales y cu´les no. Esto puede hacerse intercalando |w| − 1 estados intermedios en cada flecha con etiqueta w. (q2 .30. q1 ) cuya etiquete empieza con a.29(d) marcamos los estados finales. As´ por ejemplo. a estados del antiguo AFN de cada uno de los c´ ırculos. vemos que no hay una transici´n que permita hacerlo. q1 ). Formalizaci´n del algoritmo de conversi´n o o Vamos ahora a precisar el m´todo de conversi´n de AFN a AFD con suficiente detalle e o como para que su programaci´n en computadora sea relativamente sencilla. o Una soluci´n a esta dificultad es normalizar a 1 como m´ximo la longitud de las palabras o a que aparecen en las flechas. si uno de los conjuntos de estados a contiene un estado final del antiguo AFN. Por lo tanto. adem´s borramos los ı. para el AFN de la figura 2. As´ en el AFD de la figura 2. los estados e finales del nuevo aut´mata ser´n aquellos conjuntos de estados que contengan alg´n estado o a u final.28. q1 ) de la figura 2. o no vamos a describir el algoritmo en t´rminos de ciclos. Estas definiciones permiten programar en forma casi directa el algoritmo 23 Probar que esta transformaci´n preserva la equivalencia (ver ejercicios). a. y bautizamos cada conjunto de estados como un estado. Sin embargo. si a partir del estado inicial intentamos consumir la entrada “a”. o .

b a b b a q4 b q q0 3 4 q q1 a a b q3 a q q2 3 4 q q1 (c) (d) Figura 2. AUTOMATAS FINITOS NO DETERMINISTAS 67 q0 q1 (a) q0 q1 a b q2 q4 (b) q0 q1 a b q2 q4 b b a q0 q 1q 3 a b b q1 q2 q 1q 4 a a.´ 2.8.29: Transformaci´n de AFN a AFD o .

28. σ) = {p | (q. como por ejemplo Scheme [22]. Similarmente. q2 } gastando una a. Vamos a ir presentando las definiciones partiendo de la m´s sencilla. preferentemente de tipo o o funcional. As´ en la figura 2. a) = {}. AUTOMATAS FINITOS aaa ε q1 b Figura 2.31: AFN con transiciones vac´ ıas de conversi´n. a˜adiendo a cerr -ε(q) los estados a los que se llegue. b) = {q0 . que a partir de un estado q y un o caracter dado σ obtiene el conjunto de estados a los que se puede llegar desde q directamente gastando el caracter σ. u ı. a Primero introducimos una funci´n transicion(q. hasta que no sea posible a˜adir nuevos n n . σ. por lo que en realidad se tiene que considerar a q1 como uno de los estados a los que se puede llegar desde {q1 . Por lo tanto.31. tenemos que transicion(q0 . q1 }.68 aa q0 b ´ CAP´ ITULO 2. tomando el AFN de la figura 2. b) = {q1 }. transicion(q1 . se puede pasar de q2 a q0 y luego continuar “gratis” de q0 a q1 .30: AFN con transiciones de varias letras a b a q3 b q0 b q1 b q4 b a ε ε a q2 Figura 2. esta definici´n no toma en cuenta el hecho de que a veces es posible tener o transiciones que no gastan ning´n caracter -aquellas marcadas con ε. si se utiliza un lenguaje de programaci´n adecuado. y transicion(q3 . Por ejemplo. si con una tranıas. σ). a sici´n vac´ se llega a otro estado que tambi´n tiene transiciones vac´ hay que continuar o ıa e ıas. p) ∈ ∆} Sin embargo. Se puede definir matem´ticamente de la forma siguiente: a transicion(q. hay que modificar la definici´n anterior. o Vamos a definir una funci´n auxiliar cerr -ε(q) que es el conjunto de estados a los que o se puede llegar desde el estado q pasando por transiciones vac´ Adem´s. hasta llegar a la a m´s compleja.

2. en la figura 2. ε. q2 . y) | (x. AUTOMATAS FINITOS NO DETERMINISTAS 69 estados. obtener transicion(q. Por ejemplo. por lo que uniendo estos conjuntos. q3 }) = {q1 . . o Es f´cil extender la definici´n de cerradura al vac´ de un estado para definir la cerradura a o ıo al vac´ de un conjunto de estados: ıo Definici´n. 24 Consultar la definici´n de cerradura de una relaci´n en el cap´ o o ıtulo de preliminares. q4 }. dando por resultado un conjunto Q1 . q4 }. tomando la figura 2. .31. 3. Q0 = {q1 . σ) sea el conjunto de estados a los que se puede llegar desde q gastando σ. a) = {q1 }. y cerr -ε(q0 ) = {q0 }. a) = {}. q3 .La cerradura al vac´ cerr -ε(q) de un estado q es el m´s peque˜o conjunto o ıo a n que contiene: 1. y) ∈ ∆}. σ) = CERR-ε(Q1 ). . Por ejemplo.. q4 } 2. Con la funci´n de cerradura al vac´ ya estamos en condiciones de proponer una versi´n de o ıo o la funci´n transicion que tome en cuenta las transiciones vac´ Llamaremos a esta funci´n o ıas. ∪ cerr-ε(qn ). cerr -ε(q) se acostumbra llamar cerradura al vac´ porque matem´ticamente es la cerıo a radura de q con la relaci´n {(x. transicion(q2 . r) ∈ ∆. inclusive pasando por transiciones vac´ El ıas.. para un estado q y un caracter σ: 1. q4 }. y transicion(q4 . a) = {q2 . cerr -ε(q2 ) = {q2 . los pasos ser´ ıan como sigue: 1. y la definimos de forma que transicion-ε(q. . transicion(q1 . a). Calcular Q0 = cerr -ε(q) 2. Ejemplo. 24 o La funci´n cerr -ε(q) se puede definir como sigue: o Definici´n. q3 }. .31.´ 2. . q2 .31. qn }) es o ıo igual a cerr -ε(q1 )∪. Al estado q. σ). con p ∈ cerr -ε(q). . q2 . . Entonces CERR-ε({q1 .La cerradura al vac´ de un conjunto de estados CERR-ε({q1 . Para cada estado de Q0 ..Sea el AFN de la figura 2. algoritmo es como sigue. cerr -ε(q1 ) = {q1 . y unir todos los conjuntos obtenidos. q3 }. transicion-ε(q.8. Q1 = {q1 . ε. q2 . o “transicion-ε”. . Todo estado r tal que existe una transici´n (p. para calcular transicion-ε(q1 .

transicion-ε(q1 . 3. a) = {q0 . q2 . q3 . hacer: a) A˜adir el conjunto de estados TRANSICION -ε(Q. q4 }. 4. Como ultima definici´n. AUTOMATAS FINITOS 3. El grafo es un AFD 3. σ) para cada uno de los estados q ∈ Q. si no ha sido creado a´n. Σ. Para cada conjunto de estados Q ya presente. σ). en la figura 2. Simplemente aplicamos transicion-ε(q. ı . σ) para cada caracter σ del n alfabeto. Por ejemplo. y juntamos los resultados en un solo conjunto. Algoritmo de transformaci´n AFN – AFD: o Dado un AFN (K. un AFD equivalente se obtiene por los siguientes pasos: 1. para un conjunto de estados o Q y un caracter σ. a) = CERR-ε({q1 .31 TRANSICION -ε({q0 .70 ´ CAP´ ITULO 2. q3 }) = {q1 . a Ahora bien. σ). u b) A˜adir transiciones ((Q. llamamos a esta funci´n TRANSICION -ε(Q. pero que ser´n simplemente estados en el AFD que se a est´ creando. F ). El procedimiento de construcci´n del AFD termina siempre o 2. σ). a una funci´n que se aplique a un conjunto de estados y o un caracter. s. q2 . q2 . 2. El AFD as´ construido acepta el mismo lenguaje que el AFN original. q2 }. q3 . a Recu´rdese que lo que llamamos “conjunto de estados” en el algoritmo se refiere a cone junto de estados del AFN original. se supone que el AFD que hemos construido acepta el mismo lenguaje que el AFN original. Para garantizar la infalibilidad del procedimiento descrito falta a´n justificar u los siguientes puntos: 1. Qσ ) para cada conjunto de estados Qσ creado en el n paso anterior. El conjunto de estados inicial es cerr -ε(s). Los conjuntos de estados que contengan un estado en F ser´n finales. El alfabeto del AFD es el mismo del AFN. es directo extender la funci´n transicion-ε(q. que se apli´ o o ca a un estado y un caracter. q4 }. ∆. Finalmente resumimos el proceso global de transformaci´n de un AFN a un AFD en el o siguiente algoritmo.

por los que pasa N en el c´lculo: a [[q0 . o o a . donde s es el estado inicial del AFN. 25 Esta prueba se puede dividir en dos partes: L(N ) ⊆ L(D). e 25 Se supone que N ya sufri´ la “transformaci´n inofensiva” definida el la p´gina 66. . que va a ser un “estado” de D que va a contener a qσ (¿Porqu´?). FD es el conjunto de conjuntos de estados tales que en ellos aparece al menos un estado final del AFN. δD .. F ). sD . s. en D vamos a permanecer en Q. . ∆. σi ∈ Σ ∪ {ε}. . Σ.´ 2. donde K son los estados del AFN (¿Porqu´?). porque la cantidad o u |K| de nodos est´ limitada a un m´ximo de 2 . Hay dos posibilidades: 1. Si en N estamos en un estado q ∈ K –que aparece en Q ∈ KD – y se presenta una transici´n vac´ de q a q . σn . 2. Si una palabra w = σ0 σ1 . y de q pasamos a qσ con el caracter σ. .8. El alfabeto Σ es el mismo que el del AFN original. σn ]] [[qn+1 . a a e El segundo punto se justifica dando la definici´n completa del AFD: (KD . de la manera siguiente (vamos a denotar con Q may´sculas los “estados” de D): u Iniciamos el recorrido de N en q0 –su estado inicial– y el recorrido de D en cerr-ε(q0 ). . q) en δD y s´lo una por cada flecha con etiqueta σ que va del o conjunto de estados p al conjunto q . σ1 . qn+1 . o donde: Cada elemento de KD es uno de los conjuntos de estados que aparecen en el grafo.. que va a contener tanto a o ıa q como a q . FD ). . El estado inicial sD del AFD es igual a cerr-ε(s). ε]] Esta misma secuencia de estados puede seguirse en D. . σ0 σ1 . Hay una tripleta (p. AUTOMATAS FINITOS NO DETERMINISTAS 71 La construcci´n de este grafo tiene que acabarse en alg´n momento. queda pendiente probar que el AFD (que llamaremos D) acepta el mismo lenguaje que el AFN original N = (K. que es el estado inicial de D. σ). q1 . entonces en D pasamos a Qσ = TRANSICION -ε(QD . Finalmente. es aceptada por N . . Si en N estamos en un estado q ∈ K que aparece en Q ∈ KD . σn ]] [[q1 . [[qn . σ. σn ]] . Σ. . . entonces existe una secuencia estados q0 .

8. o Ejemplo. esto es posible. Es muy importante notar que s´lo es posible complementar AFD’s y no cualquier AFN. M´s dise˜ o de AFN: Intersecci´n de lenguajes a n o Los problemas de dise˜o de AFN en que se combinan dos condiciones que se deben cumplir n simult´neamente son particularmente dif´ a ıciles de resolver. sean M1 y M2 .32(b) acepta las palabras con un n´mero par de a’s. Este problema parece bastante dif´ a u ıcil.72 ´ CAP´ ITULO 2. Verif´ ıquese esto tratando de hacer directamente la complementaci´n o del AFN ({1}. en vez de aceptar las palabras con b’s. si consideramos la siguiente propiedad de la intersecci´n de conjuntos: o L1 ∩ L2 = (Lc ∪ Lc )c 1 2 Esta f´rmula sugiere un procedimiento pr´ctico para obtener un AFN que acepte la o a intersecci´n de dos lenguajes dados. 1)}. C C cambiando los estados finales por no finales y viceversa. Un ejemplo de estos problemas ser´ “obtener un AFN que acepte las palabras que contengan la cadena abb un n´mero ıa: u impar de veces y ba un n´mero par de veces”. En efecto. pero al cambiar finales por no finales ya no acepta ninguna palabra. AUTOMATAS FINITOS Siguiendo este procedimiento. b} en que las palabras son de longitud par y adem´s contienen un n´mero par de a’s. mientras que M2 de 2. aceptando as´ la palabra de entrada. u Ahora obtenemos los AFD que aceptan el complemento de los lenguajes de M1 y M2 . a en una configuraci´n [[qf . {a. Sin embargo. 1. la secuencia de estados necesaria en N a para aceptar w. ε]]. empezamos a o o calculando los AFD para los lenguajes que cumplen independientemente las dos condiciones. Se puede seguir el procedimiento inverso al del punto anterior para reconstruir. ser´ a´n mejor contar con un e ıa u m´todo modular que nos permitiera combinar de una manera sistem´tica las soluciones e a parciales para cada una de las condiciones. como podr´ ıamos 26 .Obtener un AF para el lenguaje en el alfabeto {a. a partir de un c´lculo que acepta w en D. qf ∈ K.32(a) acepta las palabras de longitud par. el cual originalmente acepta las palabras con a’s.4. ı L(D) ⊆ L(N ). Esto se ilustra en el siguiente ejemplo. pero se vuelve f´cil utilizando la f´rmula de intersecci´n de lenguajes. y desde e n luego esto es aplicable tambi´n a los AFN. Los detalles se dejan como ejercicio. El AFD M1 de la figura 2. y que por ello es estado final. o En efecto. en general llegaremos a un resultado err´neo (esto es. el aut´mata resultante no es equivalente o o 26 al original).. cuando la palabra de entrada se acaba al final del c´lculo. {1}). {(1. habremos llegado en D a un estado Qf ∈ KD que debe o contener a qf . si en un AFN simplemente cambiamos estados finales por no finales y viceversa. Ahora bien. QED 2. b}. a. u En los m´todos de dise˜o de AFD propusimos trabajar con grupos de estados.

a haber supuesto.). recibir petici´n de “password”. etc. este C AFD es simplificado y “complementado”.9. recibir mensaje pidiendo nombre de usuario.32(c)). o a b) El proceso de conexi´n de una terminal a un servidor Unix.32(d)). el cual es convertido a un AFD M4 . “divorciado”. desde el punto de o vista del usuario (esto es. “casado”. Finalmente. “viudo”. EJERCICIOS 73 b a. que es el aut´mata o buscado.b (b) a q0 ε a. dando M4 (figura 2.9. 2. . o c) El proceso de retiro de dinero en un cajero autom´tico. Trazar un diagrama de estados y eventos que modele: a) El paso de una persona de un estado civil a otro: considere al menos los estados civiles “soltero”.32: Intersecci´n de dos AFN o Combinamos estos aut´matas utilizando el procedimiento para la uni´n de lenguajes. Ejercicios 1.b b q1 q5 a b b b a b q6 b q4 ε a q2 a q3 q7 q8 a (c) (d) Figura 2.b a b q0 a. Considere al divorcio como un proceso con duraci´n (no instant´neo).2. o o dando un AFN M3 (figura 2.b q1 q2 a q3 (a) a. suministrar nombre de usuario.

1} donde las palabras no contienen la subcadena 11 pero s´ 00. “0011100”. b} donde las palabras son de longitud par y tienen un n´mero par u de a. Σ. c) lenguaje en {a. en que se ha eliminado de M el estado qk . En comunicaciones digitales. p. u b) Las palabras del lenguaje en {0. a o a) Las palabras en {a. Minimizar cada uno de los AFD’s del problema anterior: a) Por eliminaci´n de estados redundantes. es una se˜al que tiene “1” en las cifras que cambian. 3. o b) Por clases de equivalencia. AUTOMATAS FINITOS 2.ej. y “0” en las que permanecen constantes. 6. usando la tabla. Calcular en detalle los aut´matas M1 . δ. 8. tales o como las AFN. o o 9. que tiene dos estados equivalentes o qi .2. Aqu´ la igualdad de M1 y ı M2 se entiende en cuanto a la estructura de los AFD. 10. Definir formalmente cada uno de los componentes del aut´mata M .74 ´ CAP´ ITULO 2. a c) las palabras del lenguaje en {a. Poner o especial cuidado en definir las transiciones en M . Dise˜ar un aut´mata de Mealy o de Moore que recibe un flujo de “1” y “0”. sea qk . F ). Para simplificar un aut´mata M = (K. qk ∈ K. Aqui “directamente” quiere decir que no se haga por transformaci´n de otro tipo de soluciones. Dise˜e un aut´mata de Moore para obtener la derivan o da de la entrada. 4. n establecer claramente lo que “recuerda” cada estado antes de trazar las transiciones. Utilizar el m´todo de los grupos de estados (“nubes”) para dise˜ar directamente (sin e n pasar por AFN) AFD’s para los siguientes lenguajes: a) lenguaje en {0. b} n e que no inicien con abab. Se puede usar el algoritmo de minimizaci´n para comparar dos AFD M1 y M2 : dos o AFD son equivalentes ssi sus AFD m´ ınimos son iguales. b} donde las palabras que contienen aba terminan en bb. ı b) lenguaje en {a. 7. Dise˜ar usando el m´todo del complemento un AFD que acepte las palabras en {a. b} que contienen un n´mero par de a. se quiere eliminar uno de ellos. n como “0010010” para el ejemplo. b} que tienen un n´mero impar de ocurrencias de u la subcadena ab.4. 1} con a lo m´s un par de unos consecutivos. Escribir adem´s cada AFD resultante usando la notaci´n formal. s. Dise˜ar directamente 27 AFD’s que acepten los siguientes lenguajes. 5. pero los nombres de los estados pueden ser diferentes. para cada ejemplo. M2 y M3 del ejemplo de la secci´n 2. la derivada de un tren de pulsos. 27 . y cada n o vez que recibe una secuencia “11” la reemplaza por “00”.

3). (1. 3)}. b). b). 2. un procedimiento para decidir si L(M1 ) es casi igual a L(M2 ) consiste en: a) Hacer la comparaci´n de M1 y M2 . 5). b. v. q) por (p. 5}. b}. (2. creando un o nuevo estado no final i. uv. b). 2}. 2)}. (Sugerencia: hay que examinar los c´lculos que permit´ o a ıan aceptar una palabra antes de la transformaci´n. Definir “lenguaje aceptado” para los AFN en t´rminos de las configuraciones y del e paso de una configuraci´n a otra. {1. 2). {((1. a). δ. 3. {a. (1. dando M2 e) Comparar M2 con M1 . a). ((4. hacer los e ajustes necesarios para poder considerar al AFD como AFN). sea w. Decimos que los lenguajes de dos AFD son “casi iguales” si difieren unicamente en ´ una palabra. 5). obtener la representaci´n o o formal de un AFN tal que los diagramas de ambos sean id´nticos (esto es. (3. 2}) 16. 2). {2}) 2) ({1. u. ((3. Decimos que dos AFD M1 y M2 son iguales –atenci´n: no “equivalentes”– si s´lo difieren o o eventualmente en el nombre de los estados. EJERCICIOS 75 11. Pruebe la receta anterior con los AFD siguientes: a) M1 = ({1. 5)}. 2}. ((4. Dada la representaci´n formal de un AFD (K. sea Mw . s. 1). b). 1). 4. Ayuda: Utilizar la propiedad de los conjuntos A ⊆ B ssi A ∪ B = B. ((2. {(1. 5). a. 2)}. y detectar una palabra aceptada por M1 pero o no por M2 . {4}) 12. o 14. a . 1. {a. aa. a). a. b) Hacer un AFN que acepte unicamente w. dando un AFN M2 que acepta L(M2 ) ∪ {w} d ) Convertir M2 a AFD. 15. ((2.9. Probar que al reemplazar toda transici´n (p. (2. b. 3). 1. 1). 2). b}. a). 1. a). Sean dos aut´matas finitos no deterministas AF N1 y AF N2 o a) ¿C´mo es posible determinar si el lenguaje que acepta AF N1 es subconjunto del o que acepta AF N2 ? Justifique su respuesta. {a. a. b. i) y (i. F ). b}.2. b. Σ. {(1. 2)((1. el AFN seguir´ aceptando todas las palabras que aceptaba antes a de hacer la transformaci´n. a. {((3. {a. 4). b. Definir formalemente la igualdad de AFDs como una relaci´n de isomorfismo entre los estados de ambos. (2. y mostrar que en el AFN transformado o debe haber un c´lculo modificado que permite aceptar la misma palabra). 5). (2. (1. 3}. 2). ((5. q). b) Aplicar el procedimiento anterior para determinar si los AFN siguientes aceptan o no lenguajes complementarios: 1) ({1. o 13. (3. {1}) b) M2 = ({3. ´ c) Combinar M2 con Mw . b). 2). b}. ((5. Dados M1 y M2 . a. 1).

. usando para ello la relaci´n entre configuraciones C1 o C2 . . aunque sea una vez. c) Pruebe que los AA son equivalentes a los AF. en que.33: Ejemplo de AFCD un AFN dado es AFCD? Si es as´ proponga un m´todo sistem´tico para probarlo.76 ´ CAP´ ITULO 2. d ) Pruebe su procedimiento del inciso anterior transformando el AA del primer inciso a AF. 18. 19. o b) Defina formalmente los AA. . Suponga una variante de los aut´matas finitos. hay estados de aceptaci´n. y se pueden incluir varios caracteres en un arco. ” ). (Evite en sus definiciones el uso de “. la palabra es rechazada. indeo pendientemente de que al final se llegue o no a un estado final o de rechazo. adem´s de los estados finales. Suponga otra variante de los aut´matas finitos deterministas. donde se omiten los “infiernos”. a) Dibuje un AA que acepte las palabras sobre {a. la palabra ser´ aceptada. b} que comienzan por “bb” o terminan con “aaa”. en o o o que. la aceptaci´n de una palabra depende de o que al final se llegue a un estado final. b) Defina formalmente los AR. los aut´matas con reco o hazo (AR). AUTOMATAS FINITOS 17. Suponga unos aut´matas no deterministas con salida (AFNDS). ”). as´ como la noci´n de lenguaje aceptado por un ı o AA. hay estados de rechazo. . dando un procedimiento para construir un AF a partir de cualquier AA dado. ı. ¿Es posible probar que a a b q0 bab q1 Figura 2. Un ejemplo de AFCD est´ en la siguiente figura 2. tales que si el aut´mata a o o pasa por uno de ellos. Los AFCD son de hecho una abreviatura de los AFD. los aut´matas con aceptaci´n (AA). Se supone que si no se pasa por un estado de rechazo. as´ como la noci´n de lenguaje aceptado por un ı o AR. b} que no contengan las cadenas “abaab” ni “abba”. Un aut´mata finito casi determinista (AFCD) es un AFN en el cual nunca hay la posio bilidad de elegir entre dos caminos a tomar. . independientea mente del tipo de estado al que se llegue al agotar la palabra. Marque los estados de rechazo por nodos ⊗.33. (Evite en sus o definiciones el uso de “. tales que si a el aut´mata pasa por uno de ellos. en que las flechas son o de la forma “w/y”. donde “w” y “y” son palabras formadas respectivamente con el alfabeto de entrada y de salida (pueden ser la palabra vac´ ıa). aunque sea una vez. usando para ello la relaci´n entre configuraciones C1 C2. a) Dibuje un AR que acepte las palabras sobre {a. e a 20. adem´s de los estados finales. (Marque los estados de aceptaci´n por nodos ⊕).

e 21. e 1) Pruebe que todo aut´mata de Mealy. . a).6. partiendo del estado inicial. o o c) Se dice que un AFNDS es “confluente” cuando la salida obtenida es la misma independientemente de qu´ trayectoria se siga cuando haya varias opciones. si M podr´ o no “trabarse” para alguna palabra w (proponga un ıa m´todo de decisi´n). 3}. 2. o a) Definir formalmente cu´ndo un estado “q” es inaccesible. Si L es un lenguaje. σn es σn . . Pruebe que es posible/no es posible saber.9. 22. 26. 1)}. llegue a “q”. ((3. ¿Es regular el reverso de un lenguaje regular? (El reverso de una palabra σ1 σ2 . 2). {a. b). e u 24. e o 23. σ1 ). sin embargo. o . (Ayuda: considerar c´mo evoluciona el conjunto de “estados accesibles” o ante posibles transiciones). Probar el lema de la secci´n 2. Decimos que un AFN “se traba” cuando no hay una transici´n que indique adonde ir o ante el s´ ımbolo de entrada. . ((2. o b) Proponer un procedimiento para obtener el conjunto de los estados accesibles en un AFD. . es decir zs = w. utilizando para ello la a relaci´n de paso entre configuraciones. b}. ıo: ((3. 1). Para una palabra w. ¿Ser´ tambi´n posible combinar M1 y M2 de a e manera que obtengamos un AFN que acepte la diferencia L1 − L2 de sus lenguajes? Proponga un m´todo para hacerlo. s ∈ Σ∗ . o 2) ¿Es posible decidir si un AFNDS es confluente? Pruebe su respuesta proponiendo un procedimiento para decidir. a). o mostrando porqu´ es imposible. 1. un sufijo de w es cualquier subcadena s con que termina w.2. 1). Hemos visto que es posible dise˜ar modularmente un AFN que acepte la intersecci´n n o de los lenguajes aceptados por M1 y M2 . 2). Sufijo(L) es el conjunto de sufijos de las palabras de L. o o c) Aplicar el procedimiento de (b) para verificar si el lenguaje del siguiente AFD M es vac´ ({1. tal que w. ((1. b) Defina formalmente la noci´n de funci´n calculada. EJERCICIOS 77 a) Defina formalmente los AFNDS. Sufijo(R) tambi´n es aceptado por alg´n AFN. b). a). Esta. ((2. b). a) Una primera idea ser´ simplemente verificar si el conjunto de estados finales es ıa vac´ ¿Porqu´ no funciona esta idea ? ıo e b) Proponer un procedimiento que permita decidir si L(M ) = ∅ (Ayuda: Utilizar la comparaci´n de aut´matas). Demuestre que si hay un AFN que acepte R. Consideremos el problema de saber si el lenguaje aceptado por un AFD M es vac´ o ıo no lo es. {3}) 27. e 25. no es una definici´n formal. es confluente. visto como AFNDS. {((1. 2). dado un AFN M en particular. Un estado “q” de un AFD es “inaccesible” si no hay ninguna trayectoria que. z.

78 ´ CAP´ ITULO 2. AUTOMATAS FINITOS .

a 3. .} La regularidad en L2 consiste en que sus palabras comienzan con repeticiones de “ab”. ababab. como por ejemplo en el lenguaje L1 siguiente: L1 = {ab. abababab.1. . . . que es al mismo tiempo una de las de mayor utilidad pr´ctica. Como se a aprecia en la figura 1. Lenguajes Regulares Los lenguajes regulares se llaman as´ porque sus palabras contienen “regularidades” o ı repeticiones de los mismos componentes.3. ababc. u u Otro ejemplo m´s complicado ser´ el lenguaje L2 : a ıa L2 = {abc. .} En este ejemplo se aprecia que las palabras de L1 son simplemente repeticiones de “ab” cualquier n´mero de veces.Cap´ ıtulo 3 Expresiones Regulares y Gram´ticas a Regulares En este cap´ ıtulo estudiaremos la clase de lenguajes aceptados por los AF. 79 . abab. Estos lenguajes pueden adem´s ıa a ser descritos mediante dos representaciones que veremos: las Expresiones Regulares y las Gram´ticas Regulares. la de los lenguajes regulares. los Lenguajes Regulares son los m´s simples y restringidos dentro a de la jerarqu´ de Chomsky que presentamos anteriormente. . abccc. Aqu´ la “regularidad” consiste en que las palabras contienen “ab” u ı alg´n n´mero de veces. abab. cc.

Soluci´n. el lenguaje L3 = {anita. L = R1 ∪ R2 o o o L = R1 R2 respectivamente. Ejemplo. lava. u Esta definici´n nos permite construir expresiones en la notaci´n de conjuntos que repreo o sentan lenguajes regulares. b}∗ . EXPRESIONES REGULARES Y GRAMATICAS REGULARES seguidas de repeticiones de “c”.1. o 2 En efecto. mientras que {a. L es la uni´n o la concatenaci´n de otros lenguajes regulares R1 y R2 . L1 ∪ L3 = {anita.} 1 3. Esta es la idea b´sica para formar los lenguajes a Regulares. ab. Tambi´n es regular una concatenaci´n como L3 L3 = {anitaanita. Ambos lenguajes son o 2 regulares. lavala.El alfabeto es Σ = {a. b}∗ . y dar una expresi´n de o conjuntos que lo represente. etc. 1 .. a. L es la cerradura de Kleene de alg´n lenguaje regular. la.Un lenguaje L es regular si y s´lo si se cumple al menos una de las condiciones o o siguientes: L es finito. vamos a considerar que los lenguajes finitos son tambi´n regulares por definici´n. lava. pero que empiezan con a. lavatina. b}∗ es la cerradura de {a. la. al combinar lenguajes regulares uni´ndolos o concaten´ndolos.2. lavaanita. tina. b}. Adicionalmente a las repeticiones de esquemas simples. Por ejemplo. por lo tanto regular. {a} es finito. ababab. ver secci´n 1... anitatina.80 ´ CAP´ ITULO 3. Finalmente. ´stas ultimas son los elementos de e ´ {a. Por ejemplo. .Sea el lenguaje L de palabras formadas por a y b. abababab.1. abaa. mientras que el lenguaje que s´lo contiene la palabra a es {a}.} es regular. como aab. . Entonces su concatenaci´n es {a}{a. Similarmente es posible definir muchos otros lenguajes basados en la idea de repetir esquemas simples. lavalava. ahora bien. que tambi´n es regular. e o anitalava. El lenguaje L puede ser visto como la concatenaci´n o o de una a con cadenas cualesquiera de a y b. . . Probar que este lenguaje es regular. . ab. .4. L = R∗ . abab. tina} e o es regular. que es regular por ser finito. anitala. b}. o e Recu´rdese que la concatenaci´n de dos lenguajes L1 y L2 se define como el conjunto de las palabras e o formadas concatenando una de L1 con una de L2 . Definici´n formal de Lenguajes Regulares o Definici´n. tambi´n se e a e obtiene un lenguaje regular.

“(”. 3. c} las siguientes: “a”. y el n´mero 0. el de las expresiones regulares. entonces σ ∈ ER. 3. “∗ ”.3. Si σ ∈ Σ. “•”. Con estas ideas vamos a definir un lenguaje. pero nosotros o quisi´ramos una notaci´n en que las representaciones de los lenguajes fueran simplemente e o texto (cadenas de caracteres). As´ las representaciones de los lenguajes regulares ser´ simı ıan plemente palabras de un lenguaje (el de las representaciones correctamente formadas).2. que significa que se cuenta un conjunto sin u ning´n elemento. “+”.2. en que cada palabra va a denotar un lenguaje regular. Expresiones regulares La notaci´n de conjuntos nos permite describir los lenguajes regulares.2. Si E1 . E2 ∈ ER. que a se puede teclear en una terminal. “(”E1 “•”E2 “)” ∈ ER. No son ER: “ab”.1. ıa 3 Este ultimo es el caso de las expresiones de conjuntos para describir los conjuntos regulares. entonces “(”E1 “+”E2 “)” ∈ ER. Definici´n. Es la misma diferencia que hay entre el caracter ASCII “0”. EXPRESIONES REGULARES 81 3.Son ER en {a. “)”. “∧” y “Φ” ∈ ER 2. “((a • b(c)∗ )”. no expresiones matem´ticas 3 .. Las comillas “ ” enfatizan el hecho de que estamos definiendo cadenas de texto. “((a • b) • c)”.Sea Σ un alfabeto. Significado de las ER Las ER son simplemente f´rmulas cuyo prop´sito es representar cada una de ellas un o o lenguaje. “((a + b))∗ ”. As´ el significado de una ER es simplemente el lenguaje que ella representa. “Φ”} que cumplen con lo siguiente: 1. El conjunto ER de las expresiones regulares sobre Σ o contiene las cadenas en el alfabeto Σ∪ {“∧”. ı.. la ER “Φ” representa el conjunto vac´ {}. b. ıo Para comprender intuitivamente la manera en que las ER representan lenguajes. Vamos a decir que una palabra “empata” con una expresi´n regular si es o parte del lenguaje que esta representa. La palabra vac´ ε “empata” con la ER ∧. “(”E1 “)∗ ” ∈ ER. Por ejemplo. u Ejemplos. ´ . consideremos el proceso de verificar si una palabra dada w pertenece o no al lenguaje representado por una ER dada.

o o abc empata con (a • (b • c)) porque abc puede ser dividida en a y bc. Definici´n. = ({a} ∪ {b})∗ {a} = {a. Por ejemplo. ∗ . Luego. Una palabra w empata con una expresi´n U ∗ cuando w puede ser partida en pedazos o w = w1 w2 . una palabra w = uv. 4.El significado de una ER es una funci´n L : ER → 2Σ (esto es.. y ambos empatan con ((c + b) • a). esto es w est´ formada de dos pedazos u y v. S ∈ ER 5. a A continuaci´n definiremos formalmente la correspondencia entre la representaci´n (una o o ER) y el lenguaje representado. L(“∧”) = {ε} 3. cuando la ER es de la forma (U + V ). y a empata con a en la ER. etc. mientras que bc empata con (b • c) separando b y c de la misma manera. se aplica a ella la funci´n L. “b” empata “b”. caba empata con (((c + b) • a))∗ porque puede partirse en los pedazos ca y ba. L(“σ”) = {σ}.. EXPRESIONES REGULARES Y GRAMATICAS REGULARES Una palabra de una letra como “a” empata con una ER consistente en la misma letra “a”. definida o de la manera siguiente: 1. b}∗ {a} -usando 3 y simplificando. . Similarmente. S ∈ ER 6.82 ´ CAP´ ITULO 3. L( “(”R“)∗ ” ) = L(R)∗ . R. Por ejemplo. L(“(”R“•”S“)” ) = L(R)L(S). una funci´n o o o que toma como entrada una expresi´n regular y entrega como salida un lenguaje). puede empatar con una palabra w cuando esta empata con U o bien cuando empata con V . = L(“(a + b)”)∗ {a} -por 6 y 3. L( “(”R“+”S“)” ) = L(R) ∪ L(S). . de tal manera que cada pedazo wi empata con U . R ∈ ER Para calcular el significado de una ER en particular. lo cual es f´cil de verificar. empata con a una expresi´n (U • V ) a condici´n de que u empate con U y v empate con V .El significado de la ER “(((a + b))∗ • a)” se calcula de la manera siguiente: L(“(((a + b))∗ • a)”) = L(“((a + b))∗ ”)L(“a”) -usando 4. bc empata (a + (b • c)). hasta que el s´ ımbolo L desaparezca. σ ∈ Σ. Ejemplo. = (L(“a”) ∪L(“b”))∗ {a} -aplicando 5. L(“Φ”) = ∅ (el conjunto vac´ ıo) 2. Las o ecuaciones dadas arriba se aplican repetidamente. Por ejemplo. . R.

Ejemplos. Metodolog´ de dise˜ o de las ER ıa n Al tratar de encontrar una ER para un lenguaje dado.Encontrar una expresi´n regular para el lenguaje en {a. como abb.a.Una posible ER es (a + ab)∗ o Una soluci´n aceptable para este tipo de problemas debe cumplir dos caracter´ o ısticas: 1.Las palabras que represente la ER propuesta deben satisfacer la descripo ci´n del problema (por ejemplo. que no son representadas por dicha ER. As´ para el problema del ejemplo. Soluci´n. Se supone una precedencia de operadores en el e orden siguiente: primero “∗ ”. Estos huecos. dejando unos “huecos” pendientes para resolverse luego. Completez. a . “((a • b) • c)” y “(a • (c)∗ )”. Se eliminan los par´ntesis innecesarios.. respectivamente. o e 2. la soluci´n (ab)∗ no es adecuada porque o ı.2. 3. EXPRESIONES REGULARES Este es el lenguaje de las palabras sobre {a. Una t´cnica que funciona en muchos casos o e consiste en determinar primero la estructura de la ER. (a + b)∗ . mientras m´s complejo sea el a lenguaje es obvio que resulta m´s dif´ encontrar por pura intuici´n dicha ER. 83 Con objeto de hacer la notaci´n menos pesada.2. Ejemplo.La ER propuesta debe representar todas las palabras que satisfagan la condici´n. ac∗ son tomados como “a”. son tambi´n lenguajes para e los que habr´ que encontrar una ER.. En estos casos a ıcil o puede ser conveniente trabajar en forma met´dica. pertenecientes al lenguaje. b}∗ en el que inmedio atamente antes de toda b aparece una a. la soluci´n a∗ (a + b)∗ o o no es adecuada porque representa algunas palabras. Correcci´n. para el problema del ejemplo.3. b} que terminan en a.. abc. o hay palabras tales como aab. Eventualmente omitiremos el operador “•”. “((a + b))∗ ”.2. luego “•” y finalmente “+”. que no satisfacen la condici´n de que toda b est´ inmediatamente precedida por una a. suponiendo que ´ste se encuentra impl´ e ıcito entre dos subexpresiones contiguas. Adem´s se supone que los a operadores “•” y “+” son asociativos. vamos a simplificar las ER de la manera o siguiente: Omitiremos las comillas “ ”. que llamaremos contextos...

o rodeadas por otras dos ER. las palabras aabb. . . esta ultima b se juntar´ a la bb de la mitad. las palabras que no contengan bb” son particularmente dif´ ıciles. Como hay dos casos. . c} en que las palabras contienen exactamente una vez dos b contiguas. y as´ en adelante. que son < contexto1 > y < contexto2 >. lo cual es un subproblema e del problema original. . b(a + c) . En consecuencia. terminan en 11”. Para resolver este problema. el enunciado “palabras que si empiezan en 00. puede modificarse de la manera siguiente: “palabras que ya sea no empiezan en 00 o bien terminan en 11”. pertenecen al lenguaje. utilizando la conocida equivalencia de l´gica P ⇒ Q ≡ ¬P ∨ Q. . Lo que falta por considerar a es que puede haber cualquier cantidad de a’s o c’s en el < contexto1 >. En particular. los enunciados “negativos”..)∗ donde los detalles que faltan est´n representados por las “. Esto es equivalente a decir que toda b est´ seguida de una a o una c. . Por ejemplo. ´ ıa o . o ı a tambi´n una b seguida de una a. . porque en las ER no hay ning´n operador para representar u “lo que no forma parte del lenguajes”. considerando que podemos tener una b sola. El lenguaje de < contexto1 > comprende a las palabras que no tienen bb y adem´s no a 4 terminan en b.”. ¿qu´ es lo que s´ pueden contener? e ı Aqu´ podemos hacer un an´lisis por casos. podemos pensar en utilizar el operador e “+” para combinar esos casos.consiste en transıa o formar los enunciados de lenguajes de manera que sean m´s f´cilmente representables por a a ER. . que es (a + c + (a + c)b)∗ . si en un ı lenguaje las palabras no deben contener la cadena “bb”. sino que los operadores (como la uni´n o la estrella de o Kleene) tienden a a˜adir m´s palabras. Por e ´ o ejemplo. es necesario convertir un enunciado n a sobre lo que no se permite en otro enunciado sobre lo que s´ se permite. ı Tambi´n puede ser util modificar la forma l´gica en que se enuncian los lenguajes. Esto a quiere decir que la ER de este contexto va ser de la forma: (. pero no aaba. del tipo “. expresamos primero la estructura de la ER de la manera siguiente: < contexto1 > bb < contexto2 > Podemos ver que en esta expresi´n aparecen directamente las bb que deben estar en la ER.84 ´ CAP´ ITULO 3. Por ejemplo. abbba ni bbabb.Obtener una ER para el lenguaje en el alfabeto {a. b. violando la condici´n del problema. Ahora el problema es determinar qu´ ER corresponden a < contexto1 > y < contexto2 >. por lo que dicho contexto queda como: (b(a + c) + a + c)∗ Similarmente se puede obtener la expresi´n para < contexto2 >. babba. EXPRESIONES REGULARES Y GRAMATICAS REGULARES Ejemplo. Lo que aqu´ se gana es que o ı 4 Pues si terminaran en b. o por lo que finalmente la ER del problema es: (b(a + c) + a + c)∗ bb(a + c + (a + c)b)∗ Un importante elemento de metodolog´ -que se aplic´ en este ejemplo.

a . . . . a o “. (b + ab)∗ no Los “contextos” aqu´ fueron representados simplemente con “. La estructura as´ se precisa: 5 e e ı . . o pues hay palabras como ab que no son representadas por ella. . el cual ıa. que se puede resolver usando el operador “+” de las ER. Ahora bien. o bien secuencias en que toda a est´ separada de otra a por al menos una b. la subexe presi´n (b + ab)∗ por s´ misma es ya capaz de representar palabras que comiencen ya sea con o ı a o con b. (b + ab)∗ .2. Entonces la o condici´n del problema es: o Caa ⇒ ¬Cbb Por las equivalencias l´gicas vistas en la secci´n 1. En cambio. . o bien empiezan en 01”. esta condici´n es equivalente a: o o o ¬Caa ∨ ¬Cbb Es decir que las palabras no contienen aa o bien no contienen bb. Entonces pensaremos que despu´s de la a est´ la b que la separa de otras eventuales a’s. entonces no debe contener bb. no empiezan en 00”. Para que las palabras no contengan aa. . Aunque esta ER es correcta.. . Una idea para precisar m´s esta estructura ser´ pensar que antes y despu´s de la a debe a ıa e ∗ haber una b. como en la estructura siguiente: . Como la cantidad de a’s es e cualquiera. adem´s apareci´ en este enunciado una parte expresada negativamente. . siendo la otra enteramente similar. b} tal que si una palabra contiene la subcadena aa. como en la expresi´n (b + bab) .)∗ . no es completa. El uso de puntos suspensivos o de ı nombres para representar un contexto es simplemente cuesti´n de conveniencia en cada caso. . Por supuesto.2. (b + . por lo que podemos omitir el contexto del lado izquierdo. Soluci´n: Transformando l´gicamente el enunciado.”. . son la palabra vac´ o bien empiezan en 1. como e a por ejemplo “. . . tambi´n se resuelve f´cilmente por casos. . pueden contener cualquier secuencia con b. . pensando en qu´ puede aparecer al inicio y al final de una palabra. representamos la condici´n “contiene o o o la subcadena aa” por el s´ ımbolo Caa .3. y la condici´n “no contiene bb” por ¬Cbb . EXPRESIONES REGULARES 85 hacemos evidente la estructura de casos. . . o 5 .Obtener una ER que represente el lenguaje en {a. e a Ejemplo. Esto corresponde a la estructura: < sin aa > + < sin bb > Vamos a resolver la primera parte. necesariamente debemos hacer intervenir una estrella de Kleene. pero ´sta es f´cil de transformar en un enunciado positivo. .

quedando como (b + ab)∗ (a + b) + ∧.2. por lo que si tenemos dos ER espec´ ıficas. que es simplemente a˜adir ıa.3. n “+∧” a la ER. la equivalencia R + S = S + R quiere decir que la suma de expresiones regulares es conmutativa. o a Sin embargo. por lo que o en realidad el contexto derecho consistir´ en agregar una a o nada en absoluto. Es importante emprender estos ejercicios siguiendo los elementos de metodolog´ ıa que hemos presentado (adaptar expresiones conocidas.86 ´ CAP´ ITULO 3. que es el no poder representar a la palabra u o vac´ Esto se puede resolver de dos maneras: la menos elegante. pues se basa directamente en la conmutatividad de la uni´n de conjuntos. dando o como resultado: (b + ab)∗ (a + b) Pero a´n esta expresi´n presenta un problema. cuyo significado es que el lenguaje de ER1 es el mismo que el de ER2 (contienen las mismas palabras). Dejamos pendiente la soluci´n del contexto < sin bb >. lo cual desde luego no es conveniente. la funci´n ´ o ∗ L : ER →2Σ descrita arriba no es inyectiva. Este es un resultado correcto y completo. Peor a´n. que se resuelve con la expresi´n a + b. Habr´ que a˜adir esta posibiliıa n dad. las u ER (a + b)∗ y (a∗ b∗ )∗ representan el mismo lenguaje. o En la secci´n de ejercicios de este cap´ o ıtulo se proponen muchos problemas de dise˜o n de ER. vamos a excluir palabras tales como ab. a a La equivalencia R + S = S + R puede ser muy obvia. Por ejemplo. no existen procedimientos algor´ ıtmicos para comparar directamente dos ER. Entonces el contexto derecho puede ser a o b. n transformar los enunciados). pues al ver dos ER distintas no podemos a´n estar seguros de que representan dos lenguajes distintos. y no dej´ndose llevar por la primera “corazonada genial”. principalmente por incompletez. Pero si hacemos que el contexto derecho sea a. dise˜ar estructuras con “contextos”. que a generalmente nos lleva a expresiones err´neas. entonces la ER a∗ +b∗ ab ser´ equivalente a la ER b∗ ab+a∗ . quedando ıa ∗ la ER como (b + ab) (a + ∧). . como ba. la comparaci´n tiene que hacerse pasando o por una conversi´n a AFD que veremos m´s adelante. a diferencia de los AFD que vimos en el cap´ u ıtulo 2. o 3. Equivalencias de Expresiones Regulares Las expresiones regulares no representan en forma unica a un lenguaje -esto es. Esto quiere decir que puede haber varias ER para un mismo lenguaje. o una soluci´n m´s elegante que consiste o a en observar que la expresi´n (b + ab)∗ ya representaba palabras terminadas en b. Por ejemplo. en algunos casos resulta util aplicar ecuaciones de equivalencia entre las ´ ER. y ambas representar´n las mismas palabras. pero hay otras como (R∗ S)∗ = ∧ + (R + S)∗ S que o son mucho menos intuitivas. que son expresiones de la forma ER1 = ER2 . como a∗ y b∗ ab. EXPRESIONES REGULARES Y GRAMATICAS REGULARES es capaz de representar palabras terminadas en a.

(R∗ S)∗ = ∧ + (R + S)∗ S. Soluci´n: o (ab + a)∗ a = (a + ab)∗ a -por (1). . R + R = R 2. 1a. Esta equivalencia se puede probar en dos partes: R(SR)∗ ⊆ (RS)∗ R y (RS)∗ R ⊆ R(SR)∗ . = Rn = Q. 2a. Ejemplo: Verificar que las ER (ab + a)∗ a y a(ba + a)∗ son equivalentes. Las equivalencias de estos 9 grupos pueden usarse para verificar que dos ER denotan el mismo lenguaje. R • ∧ = ∧ • R = R. Entonces x es de la forma x = r0 s1 r1 s2 r2 . R = SR + T ssi R = S ∗ T . x ∈ (RS)∗ R. (RS ∗ )∗ = ∧ + R(R + S)∗ 9. usando las equivalencias dadas arriba para hacer reemplazamientos. R • Φ = Φ • R = Φ. La t´cnica a usar para verificar que P = Q. Φ∗ = ∧∗ = ε 5. R + S = S + R. clasificadas en 9 o grupos: 1. (rn−1 sn )rn . R∗ R = RR∗ . R(SR)∗ = (RS)∗ R 8. sn rn .Se prueba similarmente. (R + S)∗ = (R∗ + S ∗ )∗ = (R∗ S ∗ )∗ = (R∗ S)∗ R∗ = R∗ (SR∗ )∗ = R∗ + S ∗ 7. R • (S + T ) = R • S + R • T .2. parte. parte. R + Φ = Φ + R = R. . QED. es formar e una serie de equivalencias P = R1 = R2 = . (S + T ) • R = S • R + T • R 4. EXPRESIONES REGULARES 87 A continuaci´n damos una lista de las principales equivalencias de ER. R∗ = ∧ + RR∗ 6. Por lo tanto. . donde P. = ([a∗ a]b)∗ [a∗ a] -agrupamos t´rminos. Q ∈ ER.Sea x ∈ R(SR)∗ . = (a∗ ab)∗ a∗ a -por (6). . (R + S) + T = R + (S + T ). usando las equivalencias presentadas arriba. que vamos a ejemplificar demostrando R(SR)∗ = (RS)∗ R (grupo 7). R = RS + T ssi R = T S ∗ La prueba de varias de estas equivalencias sigue un mismo esquema. e .. . Pero esta misma palabra puede agruparse de otra manera: x = (r0 s1 )(r1 s2 ) .. R∗ = R∗ • R∗ = (R∗ )∗ = (∧ + R)∗ . .3. (R • S) • T = R • (S • T ) 3.

aaa.“∗”. que son elementos de Σ∗ . Por lo pronto. .1 se ilustra el mapeo que pretendemos entre los lenguajes. sino para cualquier forma de representar lenguajes mediante texto. pues de otro modo no sabr´ ıamos a cu´l de ellos representa. aab. = a(ba + a)∗ .“b”. Como vemos en este ejemplo. a. e = [a][a∗ (baa∗ )∗ ] -agrupando. b}∗”.4. Desde luego. adem´s de que hay el riesgo de que al aplicarla nos alejemos de la soluci´n a o en vez de acercarnos a ella.}. quisi´ramos que una cadena de caracteres no pudiera representar a m´s de un e a lenguaje. no hay metodolog´ generales que o ıas nos ayuden a dise˜ar estas pruebas. una cadena de caracteres de 6 caracteres puede representar . pues en muchos casos es dif´ ver intuitivamente qu´ equivalencia a ıcil e conviene aplicar. el conjunto de todas las palabras formadas por a’s y b’s.por (6). que es el conjunto infinito {ε.88 ´ CAP´ ITULO 3. Es por esto que normalmente probaremos la equivalencia n de dos ER usando el procedimiento de conversi´n a AFD que veremos en la secci´n 3. Para empeorar la situaci´n. ab. ba. = aa∗ (baa∗ )∗ . . en esta secci´n vamos a establecer un l´ u o o ımite que existe no s´lamente para las ER.por (1). En cambio. EXPRESIONES REGULARES Y GRAMATICAS REGULARES 2 Σ∗ Σ∗ Figura 3.“}”. que es una palabra formada por caracteres del alfabeto {“a”. “.“{”. b. En otras e secciones mostraremos que dichos lenguajes coinciden con los que pueden ser aceptados por alg´n aut´mata finito. . Por ejemplo. o En la figura 3.” }. = a(a + ba)∗ . es aceptable a que un lenguaje tenga varios representantes.aplicando (7) a los t´rminos entre corchetes. que son elementos ∗ del conjunto 2Σ . L´ ımites de las representaciones textuales Nos podemos preguntar qu´ tantos lenguajes se pueden representar con las ER. El uso de estas equivalencias para verificar que dos ER denotan el mismo lenguaje en general no es muy pr´ctico. o o 3.3. y las cadenas de caracteres que los representan.1: Representaciones de lenguajes = [a∗ a](b[a∗ a])∗ -por (7). puede ser representado mediante la cadena de caracteres “{a.

´ 3. As´ resulta que la cantidad de ı e ı lenguajes a representar es mayor que la cantidad de cadenas de caracteres que pudieran ser representaciones de aquellos. En efecto. o o 6 La prueba es uno de los ejercicios al final de esta secci´n. pero s´ con subconjuntos de ´ste. EQUIVALENCIA DE EXPRESIONES REGULARES Y AUTOMATAS FINITOS 89 todo un lenguaje infinito. Nos apoyaremos en el c´lebre teorema de Cantor. aunque parezca sorprendente. no hemos probado que para cualquier o expresi´n regular exista un aut´mata finito equivalente. no tanto por el inter´s matem´tico que o e a tiene. n n que es lo mismo que decir que Σ∗ es contable. como 2N es incontable. sino porque nos brinda procedimientos est´ndar extremadamente utiles para transfora ´ mar una expresi´n regular en aut´mata finito y viceversa. En vista del ´xito obtenido. para cada lenguaje posible. ¡hay m´s lenguajes posibles que cadenas de caracteres para represena tarlos! Esto se debe a que la cantidad de lenguajes posibles es incontable. o . 3. tiene el mismo tama˜o que 2N . e Se sabe que los conjuntos incontables son propiamente m´s “grandes” que los contables. Vamos a presentar una prueba de esta afirmaci´n. que es 2Σ .. observamos que el conjunto de todos u ∗ los lenguajes. y viceversa. Vamos a probar el siguiente Teorema. es incontable. a en el sentido de que un conjunto contable no puede ser puesto en correspondencia uno a uno con uno incontable.4.Un lenguaje es regular si y s´lo si es aceptado por alg´n aut´mata o u o finito. ya sea finie e to o infinito. Equivalencia de expresiones regulares y aut´matas o finitos A´n cuando por varios ejemplos hemos visto que lenguajes representados por expreu siones regulares son aceptados por aut´matas finitos. que establece que el conjunto potencia e de los n´meros naturales.4. 2Σ tambi´n lo es. mientras que las representaciones de dichos lenguajes son contables. 2N . La conclusi´n es que no todos los lenguajes pueden ser o representados en forma finita. pues N y Σ∗ son del mismo tama˜o. QED. lo cual es sencillo de probar 6 As´ podemos ı ∗ concluir que. quisi´ramos tener. Existe sin embargo un problema: para poder hacer lo anterior se necesitar´ que hubiera tantos ıa representantes (cadenas de caracteres) como lenguajes representados. Ahora bien. Esto se establece en el o o siguiente Teorema de Kleene.El conjunto de los lenguajes en un alfabeto Σ finito es incontable.. un representante que fuera una de estas cadenas finitas de caracteres.

{a.. (ab)∗ . Dicho procedimiento se describe a continuaci´n: o o La idea es hacer una transformaci´n gradual que vaya conviertiendo la ER en AF. (q0 . En la figura 3.3(a). F ) en donde ∆ ∈ K × ER × K. si G1 = ({q0 .2 se ilustra un ejemplo de GT. {q1 }) entonces L(G) = L(R). la GT asociada a la ER (a + ba)∗ bb se ilustra en la figura 3. {(q0 . Lo que falta por hacer es transformar gradualmente G1 en G2 . etc. q0 . o Una posible soluci´n es el uso de las gr´ficas de transici´n. En efecto. Por ejemplo. R. q1 ). q0 ). q0 . o y finalmente repeticiones de b’s. Σ. EXPRESIONES REGULARES Y GRAMATICAS REGULARES a (ab)* b q0 q1 Figura 3. hasta llegar a un Gn tal que en las flechas no haya m´s que caracteres solos (o bien la palabra a . sea R una ER. {(q0 . q1 }. o A partir de una ER es trivial obtener una GT que acepte el mismo lenguaje.1. En este ejemplo en particular es f´cil ver a que debe aceptar palabras que tienen primero una sucesi´n de a’s. a. b}. Las gr´ficas de transici´n (GT) son por lo tanto qu´ a o ıntuplos (K. Conversi´n de ER a AF o La prueba de que si un lenguaje es regular entonces es aceptado por un AF consiste en dar un procedimiento para transformar en forma sistem´tica una expresi´n regular en un a o aut´mata finito que acepte su lenguaje. q1 )}. s. Σ. puesto que las palabras en las etiquetas de un AFN pueden ser vistas como expresiones regulares que se representan a s´ mismas. luego repeticiones de ab.90 ´ CAP´ ITULO 3. Esta GT se representar´ formalmente como el qu´ ıa ıntuplo: ({q0 . Estas ultimas son esencialo a o ´ mente AFN en que las etiquetas de las flechas tienen expresiones regulares. {q1 }) Los AFN son un subconjunto propio de las GT. en lugar de palabras. ∆. entonces. o Para hacer la transformaci´n gradual de ER a AFN se requiere utilizar alguna repreo sentaci´n de los lenguajes regulares que sea intermedia entre las ER y los AFN. ı Ahora procederemos a describir el procedimiento de transformaci´n de ER a AFN.4.2: Una gr´fica de transici´n a o 3. q1 }. (q1 . q1 )}. b. luego en G3 .

. . o las ER.2..4. Ejemplo. Gn ∈AFN. y un nuevo estado final f . o o La equivalencia de G1 . 3. que inicialmente es el AFN que se quiere transformar.4. El primer paso en este procedimiento consiste en a˜adir al aut´mata finito un nuevo n o estado inicial i. y a n o ıa   i   ¡ ε k ¡ ¡   ε j . hasta que no sea posible aplicar ninguno de estos reemplazamientos. . mientras que el antiguo estado inicial q0 deja de ser inicial. Las transformaciones elementales se ilustran en la Tabla 3.´ 3. EQUIVALENCIA DE EXPRESIONES REGULARES Y AUTOMATAS FINITOS 91 Cuadro 3. Este es un proceso de eliminaci´n gradual de los operadores de ıa).1: Eliminaci´n de operadores para pasar de ER a AF o Reemplazar   ¡   Por ¡   R vac´ En efecto.1. Dicho procedimiento comprende los siguientes pasos: 1. q0 ). Para eliminar los operadores de las ER en Gi . adem´s se a˜ade una transici´n vac´ del nuevo estado inicial al antiguo. ilustradas en las figuras 3. mientras que los antiguos estados finales qi ∈ F dejan de ser finales. Conversi´n de AF a ER o La prueba de la parte “si” del teorema consiste en dar un procedimiento para transformar en forma sistem´tica un aut´mata finito en una expresi´n regular equivalente. Gn se asegura por el hecho de que cada una de las transformaciones preserva la equivalencia. Un a o o procedimiento para hacerlo consiste en ir eliminando gradualmente nodos de una GT. . G2 . aplicamos reemplazamientos de ciertas transiciones por otras. Soluci´n: Aplicamos una sucesi´n de transformaciones. hasta que unicamente queden un nodo ´ inicial y un nodo final.Dada la ER (a + ba)∗ bb. (i. obtener el AFN que acepta el lenguaje de dicha ER. ε.3(a)-(d).

92 ´ CAP´ ITULO 3. EXPRESIONES REGULARES Y GRAMATICAS REGULARES q0 (a+ba) bb (a) * q1 q0 (a+ba) * k (b) a+ba bb q1 q0 ε m ε k bb q1 (c) a q0 ε m ε k bb q1 ba (d) Figura 3.3: Transformaci´n ER→AF o .

´ 3.4. EQUIVALENCIA DE EXPRESIONES REGULARES Y AUTOMATAS FINITOS 93
* α1 (β 1 + ... +βk ) γ p1

1

q1

pn

βk
(a) Nodo a eliminar

(c) GT tras la eliminaci´n de nodos intermedios o

Figura 3.4: Eliminaci´n de nodos o

varias transiciones de los antiguos estados finales al nuevo: {(qi , ε, f )|qi ∈ F }. Esta transformaci´n tiene por objeto que haya un estado inicial al que no llegue ninguna o transici´n, y un solo estado final, del que no salga ninguna transici´n. Esta condici´n o o o 7 se requiere para llevar a cabo el siguiente paso. Desde luego, hay muchos aut´matas o que ya cumplen estas condiciones sin necesidad de a˜adir un nuevo estado inicial o un n nuevo estado final. 2. El segundo paso consiste en eliminar nodos intermedios en la GT. Se llama nodo intermedio a aquel que se encuentra en una trayectoria entre el estado inicial y el final. El procedimiento de eliminaci´n de nodos intermedios es directo. La idea es que al suprimo ir el nodo en cuesti´n, no se alteren las cadenas que hay que consumir para pasar de o uno a otro de los nodos vecinos. En otras palabras, al suprimir dicho nodo, se deben reemplazar las transiciones que antes tomaban ese nodo como punto intermedio para ir de un nodo vecino a otro, por otras transiciones que vayan del nodo vecino origen al nodo vecino destino, pero ahora sin pasar por el nodo eliminado. Para comprender cabalmente el procedimiento, hay que seguir el ejemplo dado m´s adelante. En la figura a 3.4(a) se representa un nodo q intermedio que se quiere eliminar, y los nodos entre los que se encuentra. Este esquema se adapta a todos los casos que pueden presentarse. En dicha figura, αi ,βi , γi son expresiones regulares. Para eliminar el nodo q, reemplazamos la parte de la GT descrita en la figura 3.4(a) por el subgrafo representado en la figura
7

Mas adelante se presenta un ejemplo de cada una de las operaciones involucradas en este procedimiento.

 

αn

q

 

p1

α1

β1

γ γ

1

q1

* α1 (β 1 + ... +βk ) γ

m

...

* α n (β 1 + ... +βk ) γ1

m

qm

* αn (β 1 + ... +βk ) γ pn

m

qm

(b) GT sin el nodo eliminado

R1

R2 Rn

94

´ CAP´ ITULO 3. EXPRESIONES REGULARES Y GRAMATICAS REGULARES 3.4(b). Los nodos intermedios se pueden eliminar en cualquier orden.

3. Cuando despu´s de aplicar repetidamente el paso 2 ya no sea posible hacerlo, tendremos e una GT de la forma de la figura 3.4(c). Esta GT se puede transformar en otra con una sola transici´n, fusionando todas las transiciones en una sola, con etiqueta R1 + R2 + o . . . + Rn . Esta etiqueta ser´ la ER buscada. a

Ejemplo.- Obtener una ER para el AFD de la figura siguiente:

Paso 1.- A˜adir un nuevo estado inicial y uno final n
ε ε ε

Paso 2.- Eliminaci´n de nodos intermedios. Eliminamos primero el nodo q1 . Para ello, o consideramos qu´ trayectorias o “rutas” pasan por el nodo a eliminar. Por ejemplo, en la e figura de arriba vemos solamente una trayectoria que pasa por q1 , la cual va de q0 a f . Ahora nos proponemos eliminar el nodo q1 , pero sin modificar “lo que se gasta” para pasar de q0 a f . Es f´cil ver que para pasar de q0 a f se gasta primero una a y luego alg´n n´mero de a u u repeticiones de a o b (para llegar de q1 a f no se gasta nada). Esto corresponde a la ER a(a + b)∗ , que ser´ la etiqueta de la nueva “ruta directa” de q0 a f , sin pasar, por q1 , como a se aprecia en la siguiente figura:
ε

ε

Paso 3.- Despu´s eliminamos el nodo q2 : e

´ 3.5. GRAMATICAS REGULARES
a(a+b)* ε

95

i

q0 bb * bb *a

f

Paso 4.- Eliminamos q0 :
(bb *a) * a(a+b) *

i

f

(bb *a) *bb *

Paso 5.- Finalmente fusionamos las expresiones que est´n en paralelo: a
* (bb *a) *a(a+b)* +(bb* a)* bb i f

Por lo que finalmente la ER buscada es (bb∗ a)∗ a(a + b)∗ + (bb∗ a)∗ bb∗ . La correcci´n de cada paso de transformaci´n se desprende del hecho de que tanto la o o eliminaci´n de nodos como la fusi´n de transiciones que se hace al final, preservan ambos la o o igualdad del lenguaje aceptado. Con este resultado establecemos la completa equivalencia entre las ER y los aut´matas o finitos (no deterministas). Al establecer la equivalencia de los AFN con las ER, autom´tia camente queda establecida la equivalencia entre las ER y los AFD. Este es un resultado de gran trascendencia tanto te´rica como pr´ctica, pues por una parte muestra la importancia o a de la clase de los lenguajes regulares, y por otra ofrece un grupo de herramientas pr´cticas, a tales como la minimizaci´n de AFD, que pueden ser puestas al servicio de las ER. o

3.5.

Gram´ticas regulares a

En esta secci´n veremos otra manera de representar los lenguajes regulares, adem´s de o a las Expresiones Regulares que ya vimos.

96

´ CAP´ ITULO 3. EXPRESIONES REGULARES Y GRAMATICAS REGULARES

3.5.1.

Gram´ticas formales a

La representaci´n de los lenguajes regulares que aqu´ estudiaremos se fundamenta en la o ı noci´n de gram´tica formal. Intuitivamente, una gram´tica es un conjunto de reglas para o a a formar correctamente las frases de un lenguaje; as´ tenemos la gram´tica del espa˜ol, del ı a n franc´s, etc. La formalizaci´n que presentaremos de la noci´n de gram´tica es debida a N. e o o a Chomsky [4], y est´ basada en las llamadas reglas gramaticales. a Una regla es una expresi´n de la forma α → β, en donde tanto α como β son cadenas o de s´ ımbolos en donde pueden aparecer tanto elementos del alfabeto Σ como unos nuevos s´ ımbolos, llamados variables. Los s´ ımbolos que no son variables son constantes. 8 Por ejemplo, una posible regla gramatical es X → aX. La aplicaci´n de una regla α → β a una o palabra uαv produce la palabra uβv. En consecuencia, las reglas de una gram´tica pueden a ser vistas como reglas de reemplazo. Por ejemplo, si tenemos una cadena de s´ ımbolos bbXa, le podemos aplicar la regla X → aX, dando como resultado la nueva cadena bbaXa.

3.5.2.

Gram´ticas regulares a

Nosotros nos vamos a interesar por el momento en las gram´ticas cuyas reglas son de la a forma A → aB o bien A → a, donde A y B son variables, y a es un caracter terminal. A estas gram´ticas se les llama regulares. a Ejemplo.- Sea una gram´tica con las siguientes reglas: a 1. S → aA 2. S → bA 3. A → aB 4. A → bB 5. A → a 6. B → aA 7. B → bA La idea para aplicar una gram´tica es que se parte de una variable, llamada s´ a ımbolo inicial, y se aplican repetidamente las reglas gramaticales, hasta que ya no haya variables en la palabra. En ese momento se dice que la palabra resultante es generada por la gram´tica, a o en forma equivalente, que la palabra resultante es parte del lenguaje de esa gram´tica. a
En la terminolog´ de los compiladores, se les llama “terminales” a los elementos de Σ, y “no terminales” ıa a las variables.
8

. bB). B}. (B. Por ejemplo. . S. aA). GRAMATICAS REGULARES 97 Por ejemplo. b} de longitud par terminadas en a. R.5. y las constantes a y b. M´s adelante veremos c´mo probar rigurosamente que una gram´tica efectivamente corresponde a un a o a lenguaje dado. (A. ⇒ a o w. {(S. bA). partiendo de S podemos producir bA (por la segunda regla). aB). L(G) = {w ∈ Σ∗ |S ⇒ w}. A y B. (A. 9 ∗ ∗ . esto es simplemente cuesti´n de facilidad de notaci´n. A una secuencia de pasos de derivaci´n le llamamos simplemente derivaci´n. (S. Definici´n. o o o La aplicaci´n de una gram´tica se formaliza con las siguientes nociones: o a Una cadena uXv deriva en un paso una cadena uαv. la gram´tica que presentamos arriba se representar´ formalmente como: a ıa ({S.. Formalizamos estas nociones con las siguientes definiciones: Definici´n. es igual al conjunto de las o a palabras derivables a partir de su s´ ımbolo inicial. A. b}. S) en donde: o a a V es un alfabeto de variables. formada exclusivamente por constantes) es derivable a partir de una gram´tica G si existe una secuencia de pasos de derivaci´n S ⇒ α1 ⇒ α2 ⇒ . {a. bA)}.Una gram´tica regular es un cu´druplo (V. o o Dicho de otra manera. Σ. (B. el s´ ımbolo inicial. es un subconjunto finito de V × (ΣV ∪ Σ). aB). una palabra w ∈ Σ∗ es derivable a partir de G ssi S ⇒ w. si hay una regla X → α ∈ R en la gram´tica.´ 3. es un elemento de V . S) Usualmente las reglas no se escriben como pares ordenados (A. Como ba tiene s´lo constantes. escrito como uXv ⇒ uαv. aA). a Una cadena w ∈ Σ∗ (esto es. donde ∗ ⇒ denota la cerradura reflexiva y transitiva de ⇒. Esto es. si consideramos que las variables a son S (que ser´ el s´ a ımbolo inicial). De hecho el lenguaje generado por esta gram´tica es el de a a 9 las palabras en {a. luego de bA podemos pasar a ba (por la quinta regla). . a). L(G). como lo requerir´ la ıa definici´n anterior. Σ es un alfabeto de constantes. en la gram´tica que acabamos de presentar. el conjunto de reglas. R. (A. sino como A → aB. podemos concluir que la palabra ba es parte del lenguaje o generado por la gram´tica dada.El lenguaje generado por una gram´tica G.

pensamos que u a una regla adicional podr´ ser C → a y tambi´n C → b. . B → aA 4. en la gram´tica presentada arriba. que recuerda que a´n no se produce ninguna b. con tales reglas podemos ıa e producir. pero si llega una b se llegar´ a la variable B. por ejemplo. que pertenece al lenguaje. que la palabra bababa puede ser derivada a partir del s´ ımbolo inicial S.Proponer una gram´tica que genere el lenguaje de las palabras en {a. ⇒ a bababa (esto es. . como abb. e no puede producirse con las reglas dadas. ababba. a partir de A. Dejamos este ejemplo como ejercicio (ver secci´n de ejercicios).. En efecto. que recuerda que se produjo una b. etc. con la que se u completa nuestra gram´tica. para terminar la producci´n de una palabra hecha solamente de constantes o es necesaria al menos una regla que no produzca variables en su lado derecho. A → bB 3. o Ejemplo. A → aA 2. EXPRESIONES REGULARES Y GRAMATICAS REGULARES Frecuentemente es f´cil mostrar que una palabra dada w es derivable a partir del s´ a ımbolo inicial S. se puede mostrar que S ⇒ . a . como memorias para “recordar” situaciones. esto es. B → bC 5. pregunt´ndonos a qu´ situaci´n se llega al producir una a e o a o b. C → bC Finalmente. la palabra abba. que recuerda que ya se produjeron las dos b’s. As´ tendremos las siguientes ı variables: A. C → aC 6. Como las palabras correctas tienen bb. si se produce una a se debe llegar a la misma A. u B. B → b. Tal regla no se encuentra a´n en la gram´tica dada. por ejemplo. Por ejemplo. mediante la derivaci´n siguiente: o A ⇒ aA ⇒ abB ⇒ abbC ⇒ abba Sin embargo. por lo que bababa ∈ L(G). tambi´n podemos verificar que la palabra abb.98 ´ CAP´ ITULO 3. b} que a contienen la subcadena bb. Hace falta a´n otra regla. Vamos a utilizar las variables de una manera similar a como se utilizaban en los AF los estados. Ahora podemos proponer reglas. C. Con estas ideas se proponen las siguientes reglas: a 1.

Z). A → aB 4. a o o Sin embargo. o bien ambas cosas a la vez. y consiste en asociar a los s´ ımbolos no terminales de la gram´tica (las variables) los estados de un aut´mata. Aut´matas finitos y gram´ticas regulares o a De manera similar a como hicimos en la secci´n anterior. podemos incurrir en los mismos errores que en los AF. Z es el unico estado final del aut´mata. queda pendiente el caso de las reglas A → b. 3. Este resultado es establecido por el siguiente Teorema.Obtener un aut´mata finito para la gram´tica regular G siguiente: o a 1.. b. a o Dicho procedimiento es directo.5. gram´tica tenemos una transici´n (A.. se tienen transiciones (A. B → aA 7. S → bA 3.5. en vez de e n a ello mejor vamos a examinar m´todos por los que es muy simple convertir las gram´ticas e a regulares a AF y viceversa. S → aA 2. a partir de una gram´tica dada. construir un aut´mata finito.´ 3. As´ para cada regla A → bC en la a o ı. aqu´ vamos a establecer la o ı equivalencia entre las gram´ticas regulares y los lenguajes regulares -y por ende los aut´matas a o finitos. B → bA . n a es decir.La clase de los lenguajes generados por alguna gram´tica regular es exactaa mente la de los lenguajes regulares. C) en el aut´mata. No vamos a examinar m´todos particulares de dise˜o de gram´ticas regulares. que sean incorrectas (producen palabras que no deber´ ıan) o bien incompletas (no pueden generar palabras que pertenecen al lenguaje).3. b. Para estos casos. y viceversa. La prueba de este teorema consiste en proponer un procedimiento para. ´ o Ejemplo. donde Z es un nuevo estado para el que no hay un no terminal asociado. GRAMATICAS REGULARES 99 Al dise˜ar gram´ticas regulares. A → a 6. A → bB 5.

o Ejemplo. F ). Σ.Q2 → aQ3 6. b b q0 a q1 a q2 b a q3 Figura 3. De ah´ conclu´ ı ımos que hay que incorporar a la gram´tica. δ. habr´ en la gram´tica una o a a regla Xp → σXq ..6: AFD que acepta palabras que no contienen 3 a’s seguidas Dicho aut´mata aparece en la figura 3..Q1 → a 12.Q1 → bQ0 5.100 ´ CAP´ ITULO 3.Q3 → bQ3 9. la gram´tica regular correspondiente contiene las a reglas: 1. la gram´tica regular a correspondiente. sin embargo..6..Para el AFD de la figura 3. Ahora bien. σ).Q1 → b 13. pendiente c´mo obtener las reglas de la forma Xp → σ.. al terminar una palabra aceptada en un AFD. σ). EXPRESIONES REGULARES Y GRAMATICAS REGULARES a S b a Z A a a b b B Figura 3... o Similarmente. una regla adicional Xp → σ.. que son o las que permiten terminar una derivaci´n.5.. a partir de un AFD (K.5: Aut´mata obtenido de la gram´tica o a b a..Q0 → bQ0 3..Q0 → b 11. donde q ∈ F .. q)...Q0 → a 10. s. Para cada transici´n de la forma ((p.Q1 → aQ2 4.Q2 → bQ0 7. adem´s de la regla o a Xp → σXq que se mencion´ anteriormente. necesariamente nos encontraremos en un estado final. q) ∈ δ.Q3 → aQ3 8. a por cada transici´n ((p. Queda.Q2 → b .Q0 → aQ1 2. es simple obtener. Nos damos cuenta de que la aplicaci´n de este o o tipo de reglas debe corresponder al consumo del ultimo caracter de una palabra aceptada ´ en el AFD. donde Xi es la variable en la gram´tica que corresponde al estado i del a AFD.

6. . y. El teorema de bombeo Formalmente. LIMITACIONES DE LOS LENGUAJES REGULARES 101 N´tese que en este ejemplo el AFD acepta la palabra vac´ mientras que la GR no es o ıa. capaz de generarla. En estos casos nos tenemos que contentar con generar un lenguaje igual al aceptado por el AFD excepto por la palabra vac´a. ı 3. suponiendo que cierto lenguaje es regular. Por ejemplo. y xy n z ∈ L. debe hacer un c´lculo de la forma: a . Ahora supongamos una palabra en L.1. u Lo que este resultado establece es que. Entonces existe un aut´mata M que lo acepta. Es decir.6. (Teorema de bombeo). Limitaciones de los lenguajes regulares Los AF est´n limitados a los estados de que disponen como unico medio para “recordar” a ´ la serie de s´ ımbolos recibidos hasta un momento dado. . Por lo mismo. En efecto. como la cantidad de a’s que puede haber en la primera mitad de la palabra es arbitraria. a Por ejemplo. Ahora o a o u bien. o Teorema. pues ambas llevan al estado q2 . en un AF. De hecho ninguna GR puede generar ε. m´s complicados que los lenguajes regulares. Como w debe ser aceptada. w = σ1 σ2 . para el lenguaje {an bn } no es posible construir un aut´mata finito que lo o acepte. supongamos o a que un AFD est´ recorriendo una palabra an bn .6. Sea m el n´mero de estados o u de M . la unica traza de los s´ ´ ımbolos recibidos es el estado en que se encuentra. varias secuencias distintas de caracteres que llevan a un mismo estado son consideradas como indistinguibles. vamos a establecer un teorema que precisa cu´l es la limitaci´n de los a o aut´matas finitos.4. para el AFD de la figura 2. hay palabras del lenguaje en que podemos insertar u repetidamente (“bombear”) una subcadena (y en el teorema) sin que el aut´mata se d´ cueno e ta.Si L es un lenguaje regular infinito. σn .3. Esta limitaci´n de los AF los hace finalmente incapaces de distinguir las palabras aceptables de o las no aceptables en ciertos lenguajes. entonces forzosamente dicho lenguaje debe contener palabras en que una subcadena se repite cualquier n´mero de veces. Supongamos que L es un lenguaje regular. o 3. ni representarlo por una expresi´n regular o gram´tica regular. z tales que y = ε. Esta situaci´n permite hacer pruebas por contradicci´n de que un lenguaje dado no es o o regular. como es la de los aut´matas finitos.. entonces existen cadenas x. para alg´n n ≥ 0. entonces al terminar el grupo de a’s el a aut´mata debe recordar cu´ntas encontr´. para poder comparar con el n´mero de b’s. Puesto de otra manera. las secuencias de caracteres bab y bbbbb son indistinguibles. dicha cantidad no puede recordarse con una cantidad de memoria fija. donde n ≥ m. Pero veamos en primer lugar la prueba del teorema de bombeo. σi ∈ Σ. debemos considerar que.

. . Esto termina la prueba. . y por lo tanto la palabra σ1 . σi−1 σj . . . . . . a o 2. σn ]] [[qi . σn ser´ aceptada a de todas maneras. σi−1 σj . supongamos que fuera regular. que o es σi . . Es a a a n n decir. ε]] Como M regresa al mismo estado. . y el c´lculo tiene longitud n + 1. . y = aa . Ejemplo. σj−1 puede ser eliminada. σi−1 . . el cual tiene la a forma: ∗ M ∗ M ∗ M [[q1 . En este caso. . σi−1 (σi . QED. . . σj−1 puede ser insertada cualquier n´mero de veces. la parte de la entrada que se consumi´ entre qi y qj .. σn ]] [[qn+1 . a. ε]] De igual manera. σi . σn ]] M [[q2 . σj . . mediante el c´lculo siguiente: a ∗ M ∗ M [[q1 . . 3. es decir. σn ]] [[qj . abb . σ1 σ2 . probaremos que el lenguaje o {a b } no es regular. . . En efecto. habr´ m´s a’s que b’s y la palabra no tendr´ la forma deseada. . lo cual es una contradicci´n. al repetirse y. . la cual no tendr´ la forma an bn . Pero en este caso. . es decir. en que la parte y puede repetirse cuantas veces sea. . σn ]] [[qn+1 . . . a para 0 ≤ i < j ≤ n + 1. a partir de una cierta longitud. σ1 . suponiendo que {a b } es regular hemos llegado a la conclusi´n de que contiene o palabras con m´s a’s que b’s.Como un ejemplo de la aplicaci´n de este teorema. las a’s y b’s quedar´n en desorden en la palabra. Existen 3 posibilidades: n n 1. . b. . al repetir varias veces y. . . a a Tambi´n en este caso hay contradicci´n. . . Que y no contenga caracteres distintos a “a”. . debe haber palabras de la forma xyz. u entonces el aut´mata aceptar´ las palabras de la forma: o a σ1 σ2 . la subcadena σi . . σ2 . . . . haciendo x = σ1 σ2 . σ1 σ2 . por el teorema de bombeo. Entonces podemos detallar m´s el calculo anterior. y = aa . por el principio de a correspondencia debe haber algunos estados que se repitan en el c´lculo. σn Entonces. qi = qj . . . σn ]] ∗ M [[qn+1 . . ε]] Como M tiene solamente m estados. Que y no contenga caracteres distintos de b. σn ]] [[qj . Este caso es similar al caso (1). σj . Entonces. σi . σj−1 )k σj . . σn tenemos el teorema de bombeo. Que y contenga a’s y b’s. . . .102 ´ CAP´ ITULO 3. y = σi . es decir. e o . . EXPRESIONES REGULARES Y GRAMATICAS REGULARES [[q1 . σj−1 y z = σj .

b} que no contienen dos b consecutivas. simplemente no se llega a ninguna conclusi´n. “aaaa”. b} que no contienen ni aa ni bb. Se concluye que o n n {a b } no es regular.7. 1} con a lo m´s un par de ceros consecutivos y a lo a m´s un par de unos consecutivos. n. como por ejemplo “ε”.7. Ejercicios 1.3. la prueba fracasa. c) El lenguaje {101. ()()(). no se puede o concluir ni que el lenguaje es regular ni que no lo es. (abaa)R = aaba ¡Atenci´n! este lenguaje no es igual a {wwR } o 12 La b que precede a la a no necesita estar inmediatamente antes. a 10 11 wR es el reverso de w. que se leen igual al derecho y al rev´s. que es el lenguaje cuyas palabras tienen dos mitades sim´tricas 10 . EJERCICIOS 103 Por lo tanto el suponer que {an bn } es regular nos lleva a contradicci´n. o a 2. e como ()(()). Es muy importante notar que para las pruebas por contradicci´n usando el teorema de o bombeo hay que explorar exhaustivamente todas las posibles maneras de dividir la palabra w en xyz. 1} que contengan tres ceros consecutivos. 1110}. b) Conjunto de palabras en {0. es decir. h) El conjunto de las palabras en {a. etc. b} tales que toda a est´ precedida por alguna a b. Encontrar Expresiones Regulares que representen los siguientes lenguajes (se presentan en orden de dificultad creciente): a) Conjunto de palabras en {0. “babaa”. 11 el lenguaje de los par´ntesis bien balanceados. “b”. ((())). d ) El lenguaje {w ∈ Σ∗ |w = an bak . Al fracasar la prueba. etc. e como por ejemplo ANITALAVALATINA. “bba”. como “ababab”. y encontrar contradicci´n en cada posible divisi´n. “000001”. k ≥ 0} e) Conjunto de palabras en {a. etc. f ) Conjunto de cadenas en {a. el lenguaje de las palabras pal´ e ındromas. Con una sola divisi´n posible en o o o que no se encuentre una contradicci´n. 1} terminadas en 00. . g) El lenguaje sobre {0. que es el lenguaje cuyas palabras tienen dos mitades iguales. 12 i ) Conjunto de palabras en {0. Convertir la ER a∗ ab + b(a + ∧) en notaci´n “f´cil” a ER estricta. {wwR } . 3. 1} en que las palabras no vac´ empiezan o terminan en ıas cero. etc. o Otros lenguajes que tampoco son regulares son : {ww}. como “0001000”.

3. Demostrar la siguiente equivalencia por identidades de Expresiones Regulares: (ab∗ )∗ a = a + a(a + b)∗ a 4. Probar que a∗ + b∗ no es equivalente a (a + b)∗ 6. c}∗ | |w| = 3} ˜ o) El lenguaje en {0. {1. s) El lenguaje sobre {a. etc. como “0000110”. y adem´s el n´mero de “b” es impar. a m) El lenguaje en {0. b. etc. u l ) El lenguaje en {0. etc. 2.). a u u) Lenguaje de las palabras en {a. ((2.104 ´ CAP´ ITULO 3. a). 1). Verificar si los siguientes pares de ER son equivalentes. tres. b}. {a. {((1. EXPRESIONES REGULARES Y GRAMATICAS REGULARES j ) El lenguaje sobre {a. a). b). “00100”. p) {w ∈ {a. 3)}. 2). ((3. pero no “baaaab”. r ) El lenguaje sobre {a. 1} en que las palabras no contienen un cero exactamente (pero pueden contener dos. 1} en que las palabras contienen m´s de tres ceros. q) Lenguaje en {a. b} en que las palabras contienen la subcadena “baaab” o bien la subcadena “abbba”. donde α y β representan cualquier cadena de caracteres (esto es. b} en que toda “b” tiene a su izquierda y a su derecha una “a” (no necesariamente junto). y adem´s la cantidad de a’s que aparecen a en w es par. b} en que las palabras pueden contener pares de a’s consecutivas. Convertir a ER el AFD siguiente: ({1. 1. b} en que todas las palabras son de longitud impar. 1} tales que no hay ning´n par de ceros consecutivos u 13 despu´s de un par de unos consecutivos. “baabaab”. usando equivalencias o bien encontrando un contraejemplo: a) a∗ + b∗ y (a + b)∗ b) a∗ y (aa∗ )∗ a∗ 5. t) El lenguaje en {a. k ) Conjunto de cadenas en {a. 3}. b). ((1. “1111”. c}∗ | w = αabcβ}. Convertir la ER (a + ab)∗ aba(a + ba)∗ a AFN. pero no grupos de 3 a’s consecutivas. e n) {w ∈ {a. ((3. b} que contienen un n´mero impar de b. ((2. por ejemplo “010”. b} tal que |w| es par. 13 En cualquier posici´n a la derecha o . 2). 3). b} que no contienen la subcadena “abaab”. etc. “0001000”. a). “1010”. 1). b. por ejemplo. n) Conjunto de palabras en {0. las palabras en este lenguaje no deben contener la subcadena abc). 3}). como “1111”. 7. b). 1} en que las palabras contienen un n´mero de ceros distinto u de 3.

(b) y (c) en un AF que acepta las palabras que contienen “aaa” o “bab” o son de longitud par e) Obtener un AF que acepte el complemento de lo que acepta (d) f ) Convertir el AF de (e) a ER 10.3. Luego se calcula su intersecci´n. utio lizando el m´todo expuesto en el cap´ e ıtulo precedente. b}. utilizando el m´todo siguiente: Primero e se convierten a AFD tanto la ER como la GR. q0 )}. Encuentre una Expresi´n Regular que represente las palabras en {a. ıa o con el lenguaje representado por la GR cuyas reglas son: S → aS. Demostrar que para todo alfabeto Σ. a b) Usando este operador. que es un AFD. T → bU. q0 ). “−” que significa que R1 − R2 representa n las palabras representadas por R1 pero no por R2 . Suponer que a˜adimos a las ER un operador. los cuales o pueden ser comparados). B → b. luego a AFD. EJERCICIOS 105 8. A → a. (Ayuda: Tratar de ordenar las cadenas de Σ∗ de menor a mayor). que acepta el lenguaje vac´ ıo. convirtiendo ambas a AFN. b). el resultado del paso anterior. usando el mapeo L(ER) como se hizo con los dem´s operadores de las ER. U → b. Probar las equivalencias: a) R • Φ = Φ • R = Φ. T → aS. b} donde las palabras no contienen la subcadena “abaab” ni la subcadena “bbbab”. Demostrar la siguiente equivalencia (ab∗ )∗ a = a + a(a + b)∗ a por equivalencia de aut´matas (Primero hay que convertir las ER a AFN. Comprobar si la ER (a + ∧)(ba)∗ (b + ∧) es equivalente a la GR cuyas reglas son: A → bB. se compara con el AFD ({q0 }. ((q0 . por el m´todo e siguiente: a) Encontrar un AF que acepte las palabras que contienen “aaa” b) Encontrar un AF que acepte las palabras que contienen “bab” c) Encontrar un AF que acepte las palabras de longitud par d ) Combinar los AF de (a). S → bT. a). {((q0 . {a. para una ER R b) Φ∗ = ∧ 14. 12. b}∗ que no cono tienen ni la subcadena “aaa” ni “bab” y que son de longitud impar. U → a. q0 . Finalmente. luego estos a AFD. Para la gram´tica de la p´gina 96. 15. el lenguaje Σ∗ es contable. 9. B → aA. . U → bU. y comparando.7. mostrar una derivaci´n de la palabra bababa. a a o 11. U → aU. a) Definir formalmente el significado del operador “−”. Verificar si es vac´ la intersecci´n del lenguaje representado por la ER (∧ + b)(a + ab)∗ . 13. proponer una ER para el lenguaje en {a. {}).

Esto proveer´ una o a a a prueba de correcci´n del AFD de la figura 3. Describir formalmente la construcci´n del aut´mata (K. Sean dos lenguajes no regulares. Pruebe que los siguientes lenguajes son / no son regulares: a) A = {w ∈ {a. c) {an bm | |n − m| ≤ 3} d ) {a. b) ¿Su intersecci´n podr´ eventualmente ser regular? (Ayuda: considere interseco ıa ciones finitas). 16. Σ. Usando el teorema de bombeo pruebe que los lenguajes siguientes no son regulares a) {an bm | m > n} (Ayuda: En alg´n momento se puede necesitar considerar las u n n+1 palabras de la forma a b ). . b}∗ − {an bn } 21. 18. b) {an bn+m cm }. ∆. con un operador de intersecci´n. Σ. F ) a partir de la o o gram´tica regular (V. a) Si LA es regular. Lo mismo del problema anterior. en el sentido de que para toda ER con operador “−” hay una ER equivalente sin “−”. u 17. ¿tambi´n lo ser´ necesariamente LA ? (Probar) e a 23. Sean dos lenguajes. ¿tambi´n lo ser´ necesariamente LB ? (Probar) e a b) Si LB es regular. b} donde las palabras contienen la subcadena “abaab” y un n´mero impar de b’s. c´lculo y palabra aceptada para las o o a GT. c) ¿Su concatenaci´n podr´ ser regular? (Ayuda: tomar {an bm |n ≥ m} como LA . S). LA y LB tales que LA es subconjunto de LB . R. Proponer una definici´n formal de configuraci´n. y o ıa buscar un LB “adecuado”). b}∗ | |w| ≥ 7} b) {an bn } ∩ A c) {w = an bn } (Ayuda: use los m´todos para combinar AFN’s) e d ) {an bn | n ≤ 7} 22. a) ¿Su uni´n podr´ eventualmente ser regular? (Ayuda: considere dos lenguajes o ıa complementarios). Hacer la prueba de correcci´n de la gram´tica de la p´gina 100. En este caso a proponer una ER para el lenguaje en {a. a 19.6. “&” tal que R1 &R2 o representa las palabras representadas simult´neamente por R1 y por R2 . LA y LB . EXPRESIONES REGULARES Y GRAMATICAS REGULARES c) Probar que el operador “−” no aumenta el poder de las ER.106 ´ CAP´ ITULO 3. s. o 20.

a) Defina una ERS que al recibir cada par de “aa” consecutivas emita un “0”. con todos los parentesis y operadores necesarios. Las subexpresiones de una ERS se consideran similarmente. puede ser necesario usar parentesis para establecer la precedencia deseada. (“aaa” contiene s´lo o un par). pero tienen asociada una salida a la entrada que representan. Se tiene la siguiente sintaxis: ER/S significa que cuando se recibe una palabra representada por ER. En general hay que distinguir entre el alfabeto de entrada ({a. ¿Ser´n equivalentes a las gram´ticas a a regulares? Pruebe su respuesta. y al terminarse la cadena de entrada se produce un “00”.3. El operador “/” tiene la precedencia m´s alta.7. Suponga las Expresiones Regulares con Salida (ERS).). por asemejarse a o a las gram´ticas regulares. etc. que son como las ER. en la ERS “(a/1 + b/0)∗ /00”. mientras que al recibir un par de “bb” consecutivas emita un “1”. c) Proponga un procedimiento general para pasar de ERS a aut´matas de Mealy. un “0”. simplificaciones. b) Defina formalmente el conjunto de las ERS (Las ERS que se definir´ son las ıan ERS “formales”. Sup´ngase un tipo de gram´ticas que llamaremos “semirregulares”. en que las reglas son de alguna de las siguientes formas: a a) A → σB b) A → Bσ c) A → σ donde σ es un terminal. EJERCICIOS 107 24. 1} en el ejemplo). o d ) Muestre su funcionamiento con la ERS del inciso (a). 25. b} en el ejemplo) y el de salida ({0. por cada “b”. Por ejemplo. por cada “a” que se recibe se saca un “1”. sin tomar en cuenta cuestiones de precedencia de operadores. o sea que la ERS “ab/0” significa que el “0” est´ asociado a a a la “b”. y A y B son no terminales. se produce una salida S. .

EXPRESIONES REGULARES Y GRAMATICAS REGULARES .108 ´ CAP´ ITULO 3.

Parte II Lenguajes libres de contexto y sus m´quinas a 109 .

.

llamados variables. pero haciendo las adaptaciones necesarias para los LLC. a o a En efecto. el an´lisis a a autom´tico de los LLC es computacionalmente mucho m´s eficiente que el de otras clases de a a lenguajes m´s generales.5. se les llama “terminales” a los elementos de Σ. < frase > → < sujeto > < predicado > Trat´ndose de los compiladores. 2 Adelante precisaremos las definiciones. que fueron introducidas ı a en la secci´n 3. 1 Una gram´tica es b´sicamente un conjunto de reglas. por ejemplo. de acuerdo con la Jerarqu´ de Chomsky (ver secci´n ıa o 1. por relacionar o las llamadas Gram´ticas Libres de Contexto con los Aut´matas de Pila.Cap´ ıtulo 4 Gram´ticas y lenguajes libres de a contexto Los Lenguajes Libres de Contexto (abreviado LLC) forman una clase de lenguajes m´s a amplia que los Lenguajes Regulares. como desde el punto a o de vista pr´ctico. a partir de los a˜os 70’s. a Retomaremos aqu´ las nociones relacionadas con las gram´ticas. Por otra parte.5). o Una regla es una expresi´n de la forma α → β. que representan a los LLC. en donde tanto α como β son cadenas o de s´ ımbolos en donde pueden aparecer tanto elementos del alfabeto Σ (llamados constantes) como unos nuevos s´ ımbolos. la siguiente gram´tica para producir un peque˜o subconjunto a n del idioma espa˜ol: n 1. y “no terminales” a las a variables. 1 111 . ya que casi todos los lenguajes de programaci´n est´n basados en los LLC. con lenguajes como Pascal. se hizo com´n la pr´ctica n u a de formalizar la sintaxis de los lenguajes de programaci´n usando herramientas basadas en o las Gram´ticas Libres de Contexto. Estos lenguajes son importantes tanto desde el punto de vista te´rico. a a 2 Consideremos.

o en forma equivalente. y a´n as´ ser´ posible producir frases ıa a a u ı ıa sin sentido. . Como vimos en la secci´n 3. para generar la frase a “el perro corre”. 4 Muchos pol´ ıticos son versados en estas artes. < articulo >. que la palabra resultante es parte del a lenguaje de esa gram´tica. reemplazando < sujeto > por medio de la segunda regla. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO 2. perro y luna. 3 . y se aplican repetidamente las reglas gramaticales. Luego. 3 En esta gram´tica se supone que las a variables son < frase >. llegamos a el perro corre. < sustantivo >. en vez de una cadena arbitraria de s´ ımbolos. sustantivos y verbos se requerir´ una gram´tica m´s sofisticada. < predicado > y < verbo >. y finalmente. podemos usar la gram´tica que acabamos de presentar. no es extra˜o a e n La notaci´n “|” es en realidad una abreviatura. Al restringir las reglas de la gram´tica se restringen tambi´n las palabras que se pueden generar. la idea para aplicar una gram´tica es que se parte de una o a variable.1. mientras que las constantes son el . 4 4. < verbo > → brilla | corre donde el s´ ımbolo “|” separa varias alternativas. llegamos a el < sustantivo > < predicado >. se puede imponer que el lado izquierdo de las reglas sea una variable. En efecto. En ese momento se dice que la palabra resultante es generada por la gram´tica. aplicando la tercera regla. Por ejemplo. < sujeto >. Para asegurar la coherencia en el uso de art´ ıculos. . aplicando la primera regla podemos obtener < sujeto > < predicado >. Desde luego. partiendo del s´ ımbolo inicial < frase >. por la quinta a el perro < verbo >. Gram´ticas y la jerarqu´ de Chomsky a ıa Es posible restringir la forma de las reglas gramaticales de manera que se acomoden a patrones predeterminados. Por la cuarta regla se llega a el perro < predicado >. a Por ejemplo. < predicado > → < verbo > 6. por la sexta. < articulo > → el | la 4. usando esta misma gram´tica podemos producir frases que tienen menos a sentido.5. llamada s´mbolo inicial.112 ´ CAP´ ITULO 4. una regla X → α|β es equivalente a las dos reglas X → α o y X → β. como “la perro brilla”. < sustantivo > → perro | luna 5. hasta ı que ya no haya variables en la palabra. La variable < frase > ser´ considerada a el s´ ımbolo inicial. < sujeto > → < articulo > < sustantivo > 3. la. obtenemos < articulo > < sustantivo > < predicado >.

´ 4.2. LENGUAJES Y GRAMATICAS LIBRES DE CONTEXTO (LLC Y GLC)

113

que las reglas de formas m´s restringidas generan los lenguajes m´s reducidos. N. Chomsky a a propuso [4] varias formas est´ndares de reglas que se asocian a varias clases de lenguajes, que a orden´ de manera tal que forman una jerarqu´ es decir, los lenguajes m´s primitivos est´n o ıa, a a incluidos en los m´s complejos. 5 As´ tenemos las siguientes clases de gram´ticas, asociadas a ı a a familias de lenguajes: 1. Gram´ticas regulares, o de tipo 3: las reglas son de la forma A → aB o bien A → a, a donde A y B son variables y a es constante. 6 Estas gram´ticas son capaces de describir a los lenguajes regulares. 2. Gram´ticas Libres de Contexto (GLC), o de tipo 2: las reglas son de la forma X → α, a donde X es una variable y α es una cadena que puede contener variables y constantes. Estas gram´ticas producen los lenguajes Libres de Contexto (abreviado “LLC”). a 3. Gram´ticas sensitivas al contexto o de tipo 1: las reglas son de la forma αAβ → αΓβ, a donde A es una variable y α,β y Γ son cadenas cualesquiera que pueden contener variables y constantes. 4. Gram´ticas no restringidas, o de tipo 0, con reglas de la forma α → β, donde α no a puede ser vac´ que generan los lenguajes llamados “recursivamente enumerables”. 7 ıo, Los lenguajes de tipo 0 incluyen a los de tipo 1, estos a los de tipo 2, etc. En la figura 1.3 ya se hab´ presentado la relaci´n entre los lenguajes de tipo 0, 2 y 3. ıa o

4.2.

Lenguajes y gram´ticas libres de contexto (LLC y a GLC)

Podemos ver que la gram´tica del espa˜ol dada arriba es una GLC, pero no podr´ ser a n ıa una gram´tica regular, pues hay varias reglas que no corresponden al formato de las reglas a de las gram´ticas regulares. Se ve por lo tanto que el formato de las reglas es menos r´ a ıgido en las GLC que en las gram´ticas regulares, y as´ toda gram´tica regular es GLC pero no a ı a viceversa. Por ejemplo, el lenguaje {an bn } –que no es regular, como vimos en la secci´n 3.6– tiene o la gram´tica libre de contexto con las siguientes reglas: a 1. S → aSb 2. S → ab
5 6

La jerarqu´ de Chomsky fue presentada inicialmente en la secci´n 1.5. ıa o Estas gram´ticas ya fueron discutidas en el cap´ a ıtulo 3.5. 7 Las dos ultimas clases de lenguajes ser´n discutidas en el cap´ ´ a ıtulo 6.

114

´ CAP´ ITULO 4. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO

Como vimos en el caso de las gram´ticas regulares, aplicar una regla X → α de una a gram´tica consiste en reemplazar X por α en una palabra. Por ejemplo, la regla S → aSb a se puede aplicar a una palabra aaSbb para obtener la palabra aaaSbbb, en donde es f´cil ver a que reemplazamos S por aSb. Al proceso de aplicar una regla se le conoce como “paso de derivaci´n”, y se denota o usando una flecha gruesa “⇒”, como en aaSbb ⇒ aaaSbbb (aplicando una regla S → aSb). Una secuencia de pasos de derivaci´n a partir de una variable especial de la gram´tica o a llamada “s´ ımbolo inicial” se llama simplemente derivaci´n. Por ejemplo, una derivaci´n de o o la palabra “aaabbb” utilizando la gram´tica de {an bn } ser´ (suponiendo que S es el s´ a ıa ımbolo inicial):

S ⇒ aSb ⇒ aaSbb ⇒ aaabbb

Como un ejemplo adicional, la gram´tica con las reglas siguientes permite generar exprea siones aritm´ticas con sumas y multiplicaciones de enteros: e

1. E → E + T 2. E → T 3. T → T ∗ F 4. T → F 5. F → CF 6. F → C 7. C → 0|1|2|3|4|5|6|7|8|9

El s´ ımbolo inicial aqu´ es E, las constantes son +, ∗ y las cifras 0 . . . 9; E, T, F, C son ı variables. Con esta gram´tica podemos generar, por ejemplo, la expresi´n 25 + 3 ∗ 12 de la manera a o siguiente:

´ 4.3. FORMALIZACION DE LAS GLC EXPRESION E ⇒E+T ⇒T +T ⇒F +T ⇒ CF + T ⇒ 2F + T ⇒ 2C + T ⇒ 25 + T ⇒ 25 + T ∗ F ⇒ 25 + F ∗ F ⇒ 25 + C ∗ F ⇒ 25 + 3 ∗ F ⇒ 25 + 3 ∗ CF ⇒ 25 + 3 ∗ 1F ⇒ 25 + 3 ∗ 1C ⇒ 25 + 3 ∗ 12 JUSTIFICACION S´ ımbolo inicial, inicia derivaci´n o Aplicaci´n 1a. regla o 2a. regla, sobre la E 4a. regla, sobre la T izquierda 5a. regla, sobre F 7a. regla 6a. regla 7a. regla 3a. regla 4a. regla 6a. regla, sobre la F izquierda 7a. regla 5a. regla 7a. regla 6a. regla 7a. regla

115

M´s adelante veremos una herramienta, los “´rboles de derivaci´n”, que permiten ena a o contrar m´s f´cilmente y visualizar mejor la derivaci´n de las palabras a partir del s´ a a o ımbolo inicial, aunque su formalizaci´n es menos directa que la simple derivaci´n paso a paso que o o hemos mostrado.

4.3.

Formalizaci´n de las GLC o

Definici´n.- Una gram´tica libre de contexto es un cu´druplo (V, Σ, R, S) en donde: o a a V es un alfabeto de variables, tambi´n llamadas no-terminales. e Σ es un alfabeto de constantes, tambi´n llamadas terminales. Suponemos que V y Σ e son disjuntos, esto es, V ∩ Σ = ∅. R, el conjunto de reglas, es un subconjunto finito de V × (V ∪ Σ)∗ . S, el s´mbolo inicial, es un elemento de V . ı Ejemplo.- La gram´tica de {an bn } que presentamos antes se representa formalmente como: a ({S}, {a, b}, {(S, aSb), (S, ab)}, S) Usualmente las reglas no se escriben como pares ordenados (X, α), sino como X → α; esto es simplemente cuesti´n de notaci´n. o o

116

´ CAP´ ITULO 4. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO

Definici´n.- Una cadena α ∈ (V ∪ Σ)∗ es derivable a partir de una gram´tica (V, Σ, R, S) o a si hay al menos una secuencia de pasos de derivaci´n que la produce a partir del s´ o ımbolo inicial S, esto es: S ⇒ ... ⇒ α Definici´n.- El lenguaje L(G) generado por una gram´tica (V, Σ, R, S) es el conjunto de o a palabras hechas exclusivamente de constantes, que son derivables a partir del s´ ımbolo inicial: L = {w ∈ Σ∗ |S ⇒ . . . ⇒ w} Es posible formalizar la definici´n de lenguaje aceptado sin tener que recurrir a los puntos o suspensivos “. . . ”, que son un recurso poco elegante en la formalizaci´n matem´tica desde el o a punto de vista de que recurren a la imaginaci´n del lector para reemplazarlos por la sucesi´n o o que se representa. A continuaci´n damos esta formalizaci´n alternativa. o o Las reglas permiten establecer una relaci´n entre cadenas en (V ∪ |Σ)∗ , que es la relaci´n o o de derivaci´n, ⇒G para una gram´tica G. Esta relaci´n se define de la siguiente manera: o a o Definici´n.- α ⇒G β ssi existen cadenas x, y ∈ (V ∪ Σ)∗ , tales que α = xuy, β = xvy, y o existe una regla u → v en R. La cerradura reflexiva y transitiva de ⇒G se denota por ⇒∗ . Una palabra w ∈ Σ∗ es G derivable a partir de G si existe una secuencia de derivaci´n S ⇒∗ w. o G Definici´n.- El lenguaje generado por una gram´tica G, esto es, L(G), es igual a {w ∈ o a Σ∗ | S ⇒∗ w}. G

4.4.

Dise˜ o de GLC n

El problema del dise˜o de GLC consiste en proponer, dado un lenguaje L, una GLC n G tal que su lenguaje generado es exactamente L. Decimos que una GLC G es correcta con respecto al lenguaje dado L cuando el lenguaje generado por G no contiene palabras que est´n fuera de L, es decir, L(G) ⊆ L, donde L(G) denota el lenguaje generado por e G. Similarmente, decimos que G es completa cuando G es capaz de generar al menos las palabras de L, es decir, L ⊆ L(G) Al dise˜ar gram´ticas, es posible cometer las mismas dos n a clases de errores que hemos mencionado para el dise˜o de expresiones regulares y aut´matas n o finitos: 1. Que “sobren palabras”, esto es, que la gram´tica genere algunas palabras que no deber´ a ıa generar. En este caso, la gram´tica ser´ incorrecta. a ıa

˜ 4.4. DISENO DE GLC

117

2. Que “falten palabras”, esto es, que haya palabras en el lenguaje considerado para las que no hay ninguna derivaci´n. En este caso, la gram´tica ser´ incompleta. o a ıa A´n cuando no hay m´todos tan sistem´ticos para dise˜ar las GLC como los que viu e a n mos para dise˜ar Expresiones Regulares o Aut´matas Finitos, es posible al menos reutilizar n o gram´ticas conocidas, y ya sea modificarlas para ajustar el lenguaje generado, o combinar a varias en una sola. Este ultimo es un m´todo particularmente eficaz, en el que profundizare´ e mos en esta secci´n. o

4.4.1.

Adaptaci´n de GLC o

Muchas veces es posible hacer modificaciones sencillas a una gram´tica conocida para a obtener la del lenguaje requerido. Por ejemplo, sup´ngase que queremos obtener una gram´tica o a n m que genere el lenguaje {a b |n > m}. Una buena idea ser´ partir de la gram´tica que hemos ıa a visto anteriormente, para el lenguaje similar {an bn }, cuya gram´tica tiene las siguientes rea glas: 1. S → aSb 2. S → ab Observamos que es necesario prever alguna regla para producir cualquier cantidad de a’s antes de las b’s, pues hay palabras como aaaab que necesitan ser generadas. Para esto proponemos una regla S → aS. Aplicando iteradamente esta regla podemos producir palabras como la mencionada: S ⇒ aS ⇒ aaS ⇒ aaaS ⇒ aaaab Sin embargo, a´n a˜adiendo esta regla subsiste el problema de que podr´ u n ıamos generar palabras incorrectas, pues cualquier palabra con igual cantidad de a’s y de b’s se genera utilizando unicamente las reglas de la gram´tica para {an bn }. ´ a Hay al menos dos maneras de solucionar este problema: 1. Podemos pensar en que la a que asegura que haya m´s a’s que b’s se produzca al inicio a de la derivaci´n, mediante la inclusi´n de un nuevo s´ o o ımbolo inicial, sea S0 , que produce aS, mediante una regla S0 → aS. Por ejemplo, generar´ ıamos aaaab del modo siguiente: S0 ⇒ aS ⇒ aaS ⇒ aaaS ⇒ aaaab 2. Otra manera es producir la a que garantiza m´s a’s que b’s al final de la derivaci´n, a o reemplazando la regla S → ab por S → a. La misma palabra se derivar´ como: ıa S ⇒ aS ⇒ aaS ⇒ aaaSb ⇒ aaaab

S) . Para garantizar esto ultimo se supone que las dos gram´ticas originales no ´ a tienen ninguna variable en com´n.118 ´ CAP´ ITULO 4. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO 4. u Definimos formalmente la gram´tica que genera la uni´n de lenguajes de la manera a o siguiente: Sean G1 = (V1 . As´ por ejemplo. Σ1 ∪ Σ2 . consiste en crear un nuevo s´ o ımbolo inicial S (S1 y S2 dejan de ser iniciales). S → S2 }. para el lenguaje {an bm |n = m} = {an bm |n < m} ∪ {an bm |n > m}.4. Σ1 . S → S1 y S → S2 . sin p´rdida de generalidad. 8 recu´rdese que por hip´tesis w ∈ L(G1 ). n ı a e La manera de combinar dos gram´ticas con s´ a ımbolos iniciales S1 y S2 respectivamente. Σ2 . tomar las reglas tanto de una gram´tica como de otra. S1 ) y G2 = (V2 . S2 ) dos GLC. para que el nuevo s´ n ımbolo inicial sea capaz de generar cualquiera de los dos antiguos s´ ımbolos iniciales. La GLC que genera e L(G1 ) ∪ L(G2 ) es G = (V1 ∪ V2 ∪ {S}. para los cuales conocemos las gram´ticas que los generan. para producir la uni´n de los lenguajes originales. para derivar la palabra aaaab seguimos los pasos: ı. mas las reglas S → S1 y S → S2 . el lenguaje a {an bm |n = m} se puede expresar como la uni´n de los lenguajes: o {an bm |n = m} = {an bm |n < m} ∪ {an bm |n > m} Para cada uno de los lenguajes que se unen es f´cil obtener una gram´tica –de hecho ya a a hemos dise˜ado aqu´ gram´ticas para lenguajes como ´stos. que las variables de G1 y G2 son disjuntas. R1 ∪ R2 ∪ {S → S1 . Por ejemplo. Por ejemplo. para una palabra w ∈ L(G1 ) la derivaci´n comienza aplicando S → S1 . las gram´ticas originales tendr´ reglas: a ıan {an bm |n > m} 1) S1 → aS1 b 2) S1 → aS1 3) S1 → a {an bm |n < m} 4) S2 → aS2 b 5) S2 → S2 b 6) S2 → b La gram´tica combinada tendr´ las reglas 1-6.2. e o . a partir del primer paso. R1 . R2 . El a ıa s´ ımbolo inicial es S. y o despu´s se contin´a con la derivaci´n a partir de S1 8 Similarmente se hace para una palabra e u o w ∈ L(G2 ). se puede suponer. se contin´a la derivaci´n utilizando alguna de las dos gram´ticas originales. GLC para uni´n de lenguajes o Muchos lenguajes pueden ser expresados en forma util como la uni´n de otros dos lengua´ o jes. En efecto. sin utilizar las u o a reglas de la otra. a y a˜adir dos nuevas reglas.

Una soluci´n es “mezclar” una GLC para el lenguaje {an bn con otra para el o lenguaje {an b2n . ı 9 . se tendr´ la siguiente derivaci´n: a ı. Llamamos a esto mezcla de gram´ticas. como es aabbb simplemente aplicando algunas veces la regla 1. para generar la palabra aabbb. o a a n n 10 mientras que la de {a b } ya la conoc´ ıamos.4. esto es. y otras la regla 3. pero permitiendo que las gram´ticas a combinar tengan un mismo a s´ ımbolo inicial. n ≤ m ≤ 2n}. pero el m´todo a o a e aqu´ mostrado tiene la ventaja de que es modular. u 4. siendo las reglas 2 y 4 id´nticas. esto es..Dise˜ar una GLC para el lenguaje {an bm . a Ejemplo. o 10 Ya hab´ ıamos obtenido la gram´tica de {an bm |n > m} por modificaci´n de otra gram´tica.4. resultan en una s´la regla al unir las gram´ticas. pues en e o a los conjuntos no hay repetici´n. Mezcla de gram´ticas a En ocasiones es necesario combinar dos gram´ticas. Por ejemplo. Ahora bien. donde la n cantidad de b’s est´ entre la cantidad de a’s y el doble de ´sta. a Desde luego. el lenguaje {a b |n > m} puede ser expresado como la concatenaci´n de ak con {an bn }. como en las palabras aabbb. cuyas GLC son respectivamente: {an bn } 1) S → aSb 2) S → ε {an b2n } 3) S → aSbb 4) S → ε La GLC “mezclada” contendr´ simplemente la uni´n de todas las reglas de las dos ıa o gram´ticas. L = L1 L2 . ıa o S ⇒1 aSb ⇒3 aaSbbb ⇒2 aabbb En esta derivaci´n puede apreciarse que es posible obtener una palabra “intermedia” o entre aabb y aabbbb. DISENO DE GLC 119 S ⇒ S1 ⇒ aS1 ⇒ aaS1 ⇒ aaaS1 ⇒ aaaaS1 ⇒ aaaab 4.3. a e aabb y aabbbb. seg´n se requiera para la palabra que hay que derivar. 9 As´ por ejemplo.˜ 4.4. hay una manera de combinar modularmente las gram´ticas de L1 y L2 para obtener la de L.4. de una manera similar a la uni´n que a o acabamos de presentar. y desde luego es f´cil encontrar una gram´tica para ak . GLC para la concatenaci´n de lenguajes o En ocasiones un lenguaje L puede ser expresado como la concatenaci´n de otros dos L1 o n m y L2 .

el a lenguaje L(G1 )L(G2 ) es generado por la siguiente GLC: G = (V1 ∪ V2 ∪ {S}. de acuerdo con la f´rmula de concatenaci´n dada m´s o a o o a arriba. Formalmente. S) . R2 . S → a (pal´ ındromos impares) 4. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO En efecto. T → bT . El lenguaje de los pal´ ındromos en {a. a y abbb no lo son. T → ε. para obtener las reglas de la nueva gram´tica. formada por dos partes: la parte pal´ ındroma y el resto de la palabra. b} tiene una gram´tica muy simple. el lenguaje LP P de los prefijos pal´ ındromos es igual a la concatenaci´n de LP y LR . S2 ). haciendo adem´s a S el nuevo s´ a ımbolo inicial. las palabras aabab. Σ2 . la palabra aabaa se puede derivar de la siguiente manera: S ⇒1 aSa ⇒1 aaSaa ⇒4 aabaa Por otra parte.. S → ε (pal´ ındromos pares) Por ejemplo. aba y aabaa 11 son prefijos pal´ ındromos.Definimos el lenguaje de los “prefijos pal´ ındromos” como aquel formado por palabras que tienen una parte izquierda de m´s de un caracter que es pal´ a ındromo (se lee igual de izquierda a derecha que de derecha a izquierda). b}. Por ejemplo. R1 . S → b (pal´ ındromos impares) 5. con las siguientes reglas: a 1. S1 ) y G2 = (V2 . El problema parece dif´ pero podemos considerar cada palabra de este lenguaje como ıcil. Ejemplo. La GLC de LP P es la combinaci´n de ambas gram´ticas. Proponer una GLC que genere exactamente el lenguaje de los prefijos pal´ ındromos en el alfabeto {a. R1 ∪ R2 ∪ {S → S1 S2 }. S → bSb 3. como la “parte restante” que viene despu´s de la parte pal´ e ındroma puede ser cualquier cosa.120 ´ CAP´ ITULO 4. . Dicho de otra forma. est´ claro que LR es simplemente {a. S → aSa 2. Σ1 . Σ1 ∪ Σ2 . 11 Esta ultima puede ser vista de dos maneras distintas como prefijo pal´ ´ ındromo. mientras que las palabras baa. si tenemos las gram´ticas G1 = (V1 . b}∗ . donde LP o es el lenguaje de los pal´ ındromos y LR genera la parte restante de las palabras. a y que tiene una GLC con las reglas: T → aT . que por ser regular es LLC. simplemente juntamos las reglas a de las originales –las cuales tienen s´ ımbolos iniciales S1 y S2 – y agregamos una nueva regla S → S1 S2 .

pero no a (() ni e )(: 12 1. . S → (S) 3. S ⇒1 SS ⇒3 S() ⇒2 (S)() ⇒1 (SS)() ⇒3 (()S)() ⇒3 (()())(). S → () Usando esta gram´tica. S → SS 2. 2.5. Por ejemplo. ıa o Se puede considerar que un ´rbol de derivaci´n es m´s abstracto que una derivaci´n a o a o “lineal” –es decir. (()())(). hay al menos las a derivaciones siguientes (anotamos como sub´ ındice de ⇒ el n´mero de regla aplicado): u 1. consid´rese la gram´tica siguiente para producir el lenguaje de e a los par´ntesis bien balanceados.´ 4.1. A estas estructuras se les llama ´rboles de derivaci´n. Por ejemplo.1: Par´ntesis bien balanceados e 4. . . seg´n el orden en que se decida “exo u pandir” los no terminales. la palabra (()())() puede ser derivada de la manera que se ilustra a en la figura 4. para el ´rbol de la figura arriba. ⇒ w– en el sentido de que para un solo ´rbol de o a derivaci´n puede haber varias derivaciones lineales. ARBOLES DE DERIVACION S S S ( S ) S S ( ) 121 ( ) ( ) Figura 4. una sucesi´n S ⇒ . Arboles de derivaci´n o Las GLC tienen la propiedad de que las derivaciones pueden ser representadas en forma arborescente. que tiene palabras como (()).5. S ⇒1 SS ⇒2 (S)S ⇒3 (S)() ⇒1 (SS)() ⇒3 (S())() ⇒3 (()())(). ()(). o tambi´n ´rboles a o e a de compilaci´n –por usarse extensivamente en los compiladores– y son de vital importancia o para la teor´ de los compiladores de los lenguajes de programaci´n. En dicha figura se puede apreciar la estructura que se encuentra impl´ ıcita en la palabra (()())().

en este caso V ∪ Σ ∪ {ε}. La etiqueta de los nodos que no son hojas debe estar en V . reemplazando a por ( y b por ).2(a) y (b). . se llama el producto del ´rbol. con etiquetas respectivamente A1 .. S) una GLC. . Ambig¨ edad en GLC u La correspondencia entre los ´rboles de derivaci´n y sus productos no es necesariamente a o biun´ ıvoca. As´ el problema de “compilar” una cadena de o a ı. . caracteres consiste en construir el ´rbol de derivaci´n a partir del producto de ´ste. Si un nodo n tiene etiqueta A. . Cada nodo tiene una etiqueta 2. entonces A → A1 . en un recorrido en orden del ´rbol a de derivaci´n. Σ. E → E + E 2.1. ´ ız 14 Formalmente. . o a Es decir. una etiqueta es una funci´n que va del conjunto de nodos al conjunto de s´ o ımbolos de donde se toman las etiquetas. 1.5. E → x 4.. hay GLC en las cuales para ciertas palabras hay m´s de un ´rbol de a a derivaci´n. para expresiones aritm´ticas sobre las variables o e x y y. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO 13 Formalmente. Definici´n. e 13 Un grafo arborescente se caracteriza por no tener ciclos.Sea G = (V. R. Sea por ejemplo la siguiente GLC.La cadena de caracteres que resulta de concatenar los caracteres termio nales encontrados en las etiquetas de los nodos hoja. que toma en cuenta la posibilidad de tener varios grupos de par´ntesis anidados.122 ´ CAP´ ITULO 4. . 12 . un ´rbol de derivaci´n es un grafo dirigido arborescente a o manera siguiente: definido de la Definici´n. . E → E ∗ E 3. . E → y Con esta gram´tica. Entonces un ´rbol de derivaci´n cumple las o a o siguientes propiedades: 1. a o e 14 4. ız 3. y los nodos n1 . Esta gram´tica puede ser dise˜ada adaptando la de {an bn }. al efectuar un recorrido en orden del ´rbol de derivaci´n recuperamos la cadena a o a partir de la cual se construy´ dicho ´rbol. La ra´ tiene etiqueta S. nm son sus hijos (de izquierda a derecha). y por el hecho de que existe una trayectoria unica para llegar de la ra´ a un nodo cualquiera. En efecto. Am . . Am ∈ R. para la expresi´n x + y ∗ x existen los dos ´rboles de derivaci´n de a o a o las figuras 4. y agregando a n la primera regla. . . y las de las hojas en Σ∪{ε}. 4. .

o a o En efecto. la de los a ıa t´rminos (T ) y factores (F ). al resultado de la suma (x + y) se multiplica con x. lo cual se o a e deja como ejercicio al lector. ARBOLES DE DERIVACION 123 E E x + y x x E E + y x * * (a) (b) Figura 4. el hecho de que existan dos ´rboles de derivaci´n para una misma exprea o si´n es indeseable. adem´s de la categor´ de las Expresiones (no-terminal E). F → y Con esta nueva GLC. a Existen t´cnicas para eliminar la ambig¨edad de una GLC. F → x 7.5.2: Dos ´rboles para x + y ∗ x a En este ejemplo. en general estas t´cnicas cone u e sisten en introducir nuevos no-terminales de modo que se eliminen los ´rboles de derivaci´n a o no deseados. es a a o o u una propiedad de la gram´tica. Para un mismo lenguaje puede a haber una gram´tica ambigua y una no ambigua. a mientras que en el de la derecha sumamos x al resultado de multiplicar x con y. Se dice que una gram´tica es ambigua ssi alguna palabra del lenguaje que genera tiene a m´s de un ´rbol de derivaci´n. el ´rbol de derivaci´n de la figura 4. es cl´sica la soluci´n que e a o consiste en introducir. como la estamos definiendo. . T → T ∗ F 4.´ 4. no de su lenguaje generado. en el ´rbol de la izquierda. pues cada ´rbol indica una manera distinta de estructurar la expresi´n.2(b) a la GLC con t´rminos y factores. Para nuestro ejemplo de los operadores aritm´ticos.2(a) se elimina. quedando a o finalmente una adaptaci´n del ´rbol de 4. por lo tanto el significado que se asocia a ambas expresiones puede ser distinto. N´tese que la ambig¨edad. T → F 5. F → (E) 6. E → T 3. dando la gram´tica con las reglas siguientes: e a 1. E → E + T 2.

si nos restringimos a aplicar las reglas solo al no terminal que se encuentre m´s a la izquierda en la palabra..Se llama derivaci´n izquierda de una palabra w a una secuencia S ⇒ w1 ⇒ o o . a o Ejemplo. .5. entonces habr´ una sola opci´n posible. Una manera de hacer unica la manera de derivar una palabra ´ consiste en restringir la elecci´n del s´ o ımbolo que se va a “expandir” en curso de la derivaci´n. S ⇒ . Un ejemplo. dado en [7] junto con la prueba correspondiente. estas t´cnicas de eliminaci´n de ambig¨edad no son siempre aplicables. B → b. y de e o u hecho hay algunos LLC para los que es imposible encontrar una gram´tica libre de contexto a no ambigua. en el paso o siguiente podemos aplicar alguna regla de la gram´tica ya sea a la primera o a la segunda de a las S.Para la gram´tica no ambigua con reglas S → AB. la palabra a ab se produce con la derivaci´n izquierda: o S ⇒ AB ⇒ aB ⇒ ab mientras que tambi´n se puede producir con la derivaci´n derecha: e o S ⇒ AB ⇒ Ab ⇒ ab Teorema.124 ´ CAP´ ITULO 4. o Prueba: La derivaci´n izquierda corresponde a un recorrido en preorden del ´rbol de o a derivaci´n. existe solamente a una derivaci´n izquierda S ⇒∗ w. puede haber varias derivaciones para obtener w a partir del o s´ ımbolo inicial. n≥1. para pasar de wi a wi+1 . sin embargo. a una palabra w ∈ L(G) corresponde un s´lo ´rbol a o a de derivaci´n AG . se aplica una regla al no terminal de wi que se encuentre m´s a la izquierda. . . A → a.Para una gram´tica no ambigua G. ⇒ wn ⇒ w en donde.. . estos lenguajes se llaman inherentemente ambiguos.. a . Derivaciones izquierda y derecha En una gram´tica no ambigua G. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO Sin embargo. a a o Desde luego. ⇒ w. a Definici´n. el hecho de elegir el no terminal m´s a la izquierda es arbitrario. o se sabe que existe un solo recorrido en preorden para un ´rbol dado. y una palabra w ∈ L(G).2. m≥1 4. si tenemos en cierto momento de la derivaci´n la palabra (S())(S). expandiendo los no terminales que vamos encontrando en el camino. es el siguiente: L = {an bn cm dm } ∪ {an bm cm dm }. En cambio. Ahora bien. o Por ejemplo. Similarmente se puede definir una derivaci´n derecha. igual a podemos elegir el no terminal m´s a la derecha.

o La idea de una prueba por inducci´n basada en la longitud de la derivaci´n es esencialo o mente mostrar que todas las palabras por las que se pasa en medio del proceso de derivaci´n o cumplen una propiedad. las cuales pueden contener variables o tanto como constantes. Esto tiene la gran ventaja de que dicha correspondencia ya no es una simple convicci´n intuitiva. hay que particularizar la propiedad para la ultima palabra de la derivaci´n. como base de la inducci´n. 2. que para las palabras intermedias de la o derivaci´n producidas en al menos k0 pasos. Dichas pruebas siguen a el siguiente esquema: 1. a o 2. A continuaci´n se hace el paso de inducci´n propiamente dicho. 4. Las pruebas de correcci´n se hacen por inducci´n. relacionado con la definici´n o del lenguaje considerado.6. Finalmente. ´ o que es la que s´lo contiene constantes. las pruebas que garantizan esta certeza son de un gran valor. Al concluir este paso. la propiedad se cumple. y luego se prueba que tambi´n se cumple al hacer un paso m´s o o e a de derivaci´n (esto es. sino que adquiere el rango de certeza matem´tica. Lo primero que hay que hacer es establecer un enunciado. Luego se prueba. Para esto primero se o o supone que la propiedad se cumple tras haber hecho i pasos de derivaci´n (esto es la o hip´tesis de inducci´n). o . En general las pruebas de correcci´n son m´s sencillas y siguen un patr´n m´s predecible o a o a que las de completez. Prueba de completez. o se ha probado que todas las palabras intermedias en el proceso de derivaci´n cumplen o con la propiedad. no a falten palabras del lenguaje dado. Con esto se termina la prueba. Pruebas de correcci´n y completez o Es posible en general hacer pruebas matem´ticas de que una gram´tica corresponde a a a un lenguaje dado. pero algo modificado de manera que se pueda aplicar a las palabras intermedias en el proceso de derivaci´n. o 3. como podremos constatar en los ejemplos que siguen. para las palabras derivadas en i+1 pasos). que es b´sicamente el enunciado del lenguaje. donde es extremadamente importante asegurarse de que no hay errores. que se asegura de que al producir palabras con la gram´tica.´ 4. PRUEBAS DE CORRECCION Y COMPLETEZ 125 4. que garantiza que todas las palabras que se producen al utilizar o la gram´tica efectivamente corresponden a la descripci´n del lenguaje dado. Prueba de correcci´n. m´s precisamente por inducci´n en la longitud de la o o a o derivaci´n. Las pruebas que permiten establecer la correspondencia entre un lenguaje y una gram´tica a dados requieren dos partes: 1. En ciertas o a aplicaciones.6.

En k pasos. que o tambi´n est´n en LX . porque algunas palabras. ıcil.. de todas maneras la prueba de correcci´n que acabamos de hacer seguir´ a o ıa funcionando.. o o o necesitamos primero generalizar el enunciado de forma que sea aplicable a las palabras con variables que aparecen a la mitad de la derivaci´n. Esto es. con o o ∗ α. se tiene (trivialmente) una palabra en PX . eliminando las “S” de las palabras de PX ..A la palabra αSβ. e . Evidentemente la aplicaci´n de las reglas 2 y 3 genera palabras αSSβ y αβ en o LX. las dos o ninguna. Paso de inducci´n.. Esto puede ser en ocasiones a dif´ y no hay “recetas” tan uniformes como para las pruebas de correcci´n. se generan palabras en PX . lo que nos da una palabra con los ´ par´ntesis bien balanceados. e a Finalmente. o o a y una gram´tica dada puede tener una. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO Ejemplo. QED e Las pruebas de completez muestran que todas las palabras del lenguaje en cuesti´n o pueden efectivamente ser generadas utilizando la gram´tica dada. a Vamos a presentar un ejemplo de prueba de completez para la gram´tica de los par´ntesis a e bien balanceados dada m´s arriba. o Hip´tesis de inducci´n. para mostrar el tipo de consideraciones que hay que hacer a para llevar a t´rmino la prueba. Aunque es menos evidente. pero en cambio no habr´ completez. β ∈ V . Por ejemplo. de la forma αSβ. la aplicaci´n de la regla 1 produce palabras α(S)β. α) ∈ P } Es decir. como (())(()) no a pueden ser generadas por la gram´tica. la ultima regla que debe aplicarse es la 3. S → (S) 2. se le pueden aplicar las o reglas 1-3. S → SS 3. obtenemos palabras de par´ntesis e bien balanceados. S → () Prueba de correcci´n..En 0 pasos. Hacemos la siguiente definici´n: o PX = {α ∈ (V ∪ Σ)∗ |elim(S. necesitamos un lenguaje extendido o donde se admita que las palabras contengan variables. generada en k pasos.126 ´ CAP´ ITULO 4. o N´tese que la completez y la correcci´n de una gram´tica son propiedades independientes. Base de la inducci´n.Para hacer la prueba por inducci´n en la longitud de la derivaci´n.Probar la correcci´n de la gram´tica siguiente que genera el lenguaje P de los o a par´ntesis bien balanceados (presentamos las reglas): e 1. si eliminamos la regla a 2 de la gram´tica.

de forma tal que w1 . las llamadas o a sensitivas al contexto. En el caso 2. Como |w | = k. o o con la S de la derecha. una gram´tica sensitiva al contexto ser´ la siguiente (s´lo damos las reglas): 16 a ıa o 15 16 El paso de inducci´n se hace en k + 2 y no en k + 1 porque todas las palabras en P tienen longitud par o Esta gram´tica produce palabras de al menos 6 caracteres. y luego continuando con la derivaci´n de w que existe o por hip´tesis de inducci´n. En cambio. o sea de el lenguaje {an bn cn |n > 1}. (Claramente k es par). aplicando inicialmente la regla S → SS. Similarmente para w2 . el s´ ımbolo A solo puede generar β cuando se encuentra rodeado por el “contexto” α1 . Hip´tesis de inducci´n: La gram´tica puede generar todas las palabras de longitud menor o o a o igual a k. donde w ∈ P . . para el que no hay ninguna GLC. Base de la inducci´n: La gram´tica puede generar todas las palabras de longitud 2 (Por o a la regla 3). por hip´tesis de inducci´n. En cambio. w2 ∈ P . w = (w ).7. w = w1 w2 .. α2 . un a a ejemplo es el lenguaje de las cadenas de la forma an bn cn .En el caso que nos ocupa. QED 4.7. GRAMATICAS LIBRES Y SENSITIVAS AL CONTEXTO 127 Prueba de completez. w no se puede partir en dos partes. que tiene los o par´ntesis bien balanceados). o o Esto completa la prueba. a . ya que |w1 |≤k.´ 4. |w| = k + 2 s´lo hay dos posibilidades: 15 . al quitar los dos par´ntesis m´s externos se e a tiene una palabra con par´ntesis bien balanceados (¿Porqu´?). definidas arriba. En el caso 1. donde para una regla α1 Aα2 → α1 βα2 . por esto se llaman “libres de contexto”. La palabra w se puede entonces generar o a aplicando primero la regla S → (S). en las GLC no es necesario especificar un contexto. es decir. Paso de inducci´n: Notamos que para una palabra dada w en P (esto es. . se debe poder generar w1 a partir de la S de la izquierda. Gram´ticas libres y sensitivas al contexto a Las GLC deben su nombre a una comparaci´n con otro tipo de gram´ticas. vamos a hacer una prueba por inducci´n o sobre la longitud de la palabra. Las gram´ticas sensitivas al contexto son estrictamente m´s poderosas que las GLC. w se puede partir en w1 y w2 . e o 1. por hip´tesis e e o de inducci´n w se puede generar con la gram´tica. 2.

AX → AB 8. S → ε Con esta gram´tica es posible hacer derivaciones arbitrariamente largas de una palabra a tan sencilla como “()”(el sub´ ındice de las flechas indica la regla utilizada): De hecho bastar´ con una regla BA → AB.128 ´ CAP´ ITULO 4. Luego las reglas 4 a 7 permiten reordenar las A y B. bB → bb En esta gram´tica. Transformaci´n de las GLC y Formas Normales o En muchas situaciones se considera conveniente modificar las reglas de la gram´tica. 17 . o bien simplemente por cuestiones de estandarizaci´n o facilidad de imo plementaci´n computacional. las reglas 1 a 3 generan A. 5. la a palabra aaabbbccc se puede generar de la forma siguiente: S ⇒1 aBT c ⇒2 aBABT cc ⇒3 aBABABccc ⇒4 aBXBXBccc ⇒5 aY XY XBccc ⇒6 aAXAXBccc ⇒7 aABABBccc ⇒4 aABXBBccc ⇒5 aAY XBBccc ⇒6 aAAXBBccc ⇒7 aAABBBccc ⇒8 aaABBBccc ⇒8 aaaBBBccc ⇒9 aaabBBccc ⇒10 aaabbBccc ⇒10 aaabbbccc. la presencia de reglas que producen vac´ en la gram´tica puede ser fuente de ıo a dificultades tales como la ambig¨edad. Desde luego. a de manera que cumplan las reglas con propiedades tales como no producir la cadena vac´ ıa del lado derecho. o la posibilidad de tener derivaciones arbitrariamente u largas. S → aBT c T → ABT c T → ABc BA → BX BX → Y X 6. Y X → AX 7. 17 y finalmente las reglas 8 a 10 permiten generar los terminales solamente cuando las letras est´n en el orden correcto. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO 1.8. S → SS 2. Tomemos por ejemplo la siguiente gram´tica para los par´ntesis bien balanceados a e (damos s´lo las reglas): o 1. B y c no necesariamente en orden (las a A y B van a estar alternadas). Como un ejemplo. S → (S) 3. a Por ejemplo. para que todas las A queden antes que todas las B. salvo que ´sta no cumple con el formato de las gram´ticas ıa e a sensitivas al contexto. 2. se entiende que esto debe hacerse sin modificar el lenguaje generado. aA → aa 9. aB → ab 10. cuando hablamos de “modificar las reglas de la o gram´tica”. 3. 4. 4. a.

8. Si queremos a e una GLC equivalente. ⇒3 SSS ⇒3 SS ⇒3 S ⇒2 (S) ⇒3 () Si pudi´ramos tener una gram´tica equivalente. . se puede cambiar la derivaci´n o S ⇒ . ⇒ αSβ ⇒ αSβ usando una nueva regla S → S.10). .8. . pero sin reglas que produzcan la cadena e a vac´ ya no ser´ posible hacer derivaciones arbitrariamente largas. ⇒ αSβ sin ninguna regla adicional (la parte de la derivaci´n αSβ ⇒ αSSβ ⇒ αSβ desaparece por o completo. ⇒ αSβ ⇒ α()β agregando una regla S ⇒ () a la gram´tica. . . de modo que esa S tuvo que ser generada ya sea por a S → (S) o por S → SS.1. ⇒ αSβ ⇒ αSSβ ⇒ αSβ por la derivaci´n o S ⇒ . . pero sin emplear producciones vac´ (como S → ε). . Esto puede ser una ıa. S´lo o o hay otras dos reglas en la gram´tica. ⇒ αSβ ⇒ α(S)β ⇒ α()β. . a para examinar de d´nde provino el no-terminal A que queremos eliminar.´ 4. simplemente reemplazarla por u S ⇒ . pues no sirve de nada). y por cada regla o B → αAβ de la gram´tica agregar una regla B → αβ . ıa ventaja a la hora de determinar si una palabra se deriva o no de una gram´tica (ver secci´n a o 4. derivaci´n o S ⇒ . Resumiendo. 4. α ∈ Σ∗ . una soluci´n ser´ en vez de hacer la o ıa. En el caso de S → (S). la idea que permite eliminar las reglas A → ε es la de irse un paso atr´s. . . una idea ser´ ıas ıa analizar “en reversa” la derivaci´n de donde viene la S que queremos cambiar por ε. TRANSFORMACION DE LAS GLC Y FORMAS NORMALES 129 S ⇒1 SS ⇒1 SSS ⇒1 . Eliminaci´n de reglas A → ε o Consideremos nuevamente la gram´tica para los par´ntesis bien balanceados. en que directamente ya se reemplaz´ A a o . o mejor a´n. . . β ∈ (Σ ∪ V )∗ mejor hacer directamente la derivaci´n o S ⇒ . Y en caso de que la S provenga de la regla a S → SS.

A → ε cuyo lenguaje no contiene a la palabra vac´ ıa. ¿para que usar esos intermediarios. S → SS. S → SS. e a S → (A). Desde ıa luego.2. donde G a o es la gram´tica transformada. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO por ε. La unica diferencia es que.130 ´ CAP´ ITULO 4. se tiene: a o a S → (S). A continuaci´n veremos c´mo. en que nos ocuparemos de la eliminaci´n de reglas de esa forma. mientras que la GLC transformada no la genera.8. y luego las B se transforman en S por la regla B → S. a o Otra cuesti´n m´s importante a´n debe haber saltado a la vista escrutadora del lector o a u perspicaz: ¡la nueva GLC no es exactamente equivalente a la anterior! En efecto. o o . B → S Claramente esta GLC es equivalente a la gram´tica dada anteriormente para generar los a par´ntesis bien balanceados. En caso de que el lenguaje en cuesti´n realmente contenga a la palabra vac´ no es o ıa. el hecho de que una GLC contenga reglas de la forma A → ε no significa que el lenguaje contenga forzosamente a la palabra vac´ consid´rese por ejemplo la siguiente gram´tica: ıa. S → (). A → AA. S → S La regla S → S es evidentemente in´til y se puede eliminar. Pero. A → (A). se pueden suprimir todas las reglas de la forma A → ε. Eliminaci´n de reglas A → B o Supongamos ahora que se tiene la gram´tica con las reglas siguientes: a S → (S). se e ´ tiene una regla S → BB. que es posible eliminar. S → BB. En estos casos vamos a expresar el lenguaje como la uni´n {ε} ∪ L(G ). pues resultan redundantes. como B en este caso. S → (). Por ejemplo. 4. posible estrictamente eliminar todas las producciones vac´ sin alterar el significado de la ıas gram´tica. Este peque˜o ajuste no modifica los resultados que obtuvimos a n arriba. Aplicando mec´nicamente la transformaci´n a dicha gram´tica. cuando es posible generar directamente SS a partir de S? La idea de eliminar las reglas de la forma A → B viene de observar que dichas reglas no producen nada util. simplemente introducen s´ ´ ımbolos intermediarios. Una vez hecho esto. sea la GLC de los par´ntesis bien balanceados: e S → (S). pero dejemos esto para el u siguiente p´rrafo. S → ε. la GLC original generaba la palabra vac´ ε. en vez de utilizar la regla S → SS.

.Una regla X → α de una gram´tica (V. . . la regla “in´til”. pues toda derivaci´n: u o . Esto prueba que la gram´tica modificada es equivalente a la original. al combinar B → S con S → () La gram´tica queda entonces con las reglas: a S → (S). Eliminaci´n de reglas inaccesibles o Consid´rese una gram´tica con reglas: e a S → aXbb. . . Para eliminar una regla inaccesible no se necesita hacer ninguna otra modificaci´n a o la gram´tica mas que simplemente borrarla. S) es inaccesible si no hay una o a derivaci´n S ⇒ α1 Xα2 . La equivalencia de la gram´tica sin la regla a a inaccesible y la original est´ garantizada por el hecho de que dicha regla no participa en a ninguna derivaci´n. si hacemos esto siempre que sea posible. B → () 4. podemos asegurar sin arriesgarnos que la regla X → α es a inaccesible. A reglas como ´stas se les llama inaccesibles. al combinar B → S con S → (S) B → BB. TRANSFORMACION DE LAS GLC Y FORMAS NORMALES 131 Supongamos que hay reglas A → B y B → Γi en la gram´tica. puede transformarse en: .´ 4. S → BB. porque no hay nadie que produzca la a u Y necesaria para que dicha regla se aplique. S → (). . Σ. α2 ∈ (V ∪ Σ)∗ . ⇒ αAβ ⇒ αBβ ⇒ αΓi β ⇒ . a Por ejemplo. Y → SX Es f´cil comprender que la tercera regla es in´til. sin modificar el lenguaje. donde α1 . ⇒ αAβ ⇒ αΓi β ⇒ . Ahora bien.3. aplicando esta transformaci´n a la gram´tica del ejemplo. B → BB.. al combinar B → S con S → BB B → (). entonces es posible a˜adir a n reglas A → Γi sin modificar el lenguaje. o . las reglas de la forma A → B se vuelven in´tiles. . o En t´rminos pr´cticos. B → (S). es B → S. Se producen las nuevas reglas siguientes: B → (S). R. si vemos que una variable X no aparece en el lado derecho de e a ninguna regla de la gram´tica.8. X → bSa.8. . o a u que tratamos de eliminar. e Definici´n.

132 ´ CAP´ ITULO 4. y escoger alguna a 18 Luego veremos c´mo calcular esta forma normal. La FNCH consiste en que las reglas pueden tener dos formas: 1. . Y → SZ 4. . A → a. siguiendo la estrategia siguiente: Se trata de construir a el ´rbol de derivaci´n de w de arriba hacia abajo (llamada “top-down” en ingl´s). Hay que “partir” dicha palabra en dos pedazos. y B ⇒ . y tratar de verificar si se puede derivar a a partir de A y b a partir de B.4. . ⇒ α. . w ∈ Σ. Z →) 5. la forma normal de Chomsky a (FNCH). es decir: S ⇒ . y por a o e consiguiente se supone inicialmente que el s´ ımbolo inicial S puede producir la palabra w. w = αβ . consid´rese la siguiente gram´tica para el lenguaje de los par´ntesis bien e a e 18 balanceados. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO 4. a ∈ Σ 2. S → XZ Supongamos que tenemos una palabra como (())(). S → XY 2. X → ( 3. o . ⇒ w ssi: 1. En seguida se procede a dividir la palabra de entrada w en dos pedazos. aparentemente tan arbitraria. hay una regla S → AB. hay una regla S → w 2. S → SS 6. Estos “est´ndares” reciben el nombre de formas normales. para luego tomar alguna regla S → AB .8. ⇒ β Por ejemplo. con B. w = αβ. tiene por objeto facilitar el an´lisis a sint´ctico de una palabra de entrada. con A ⇒ . y queremos verificar si se puede derivar a partir de esta gram´tica. a Vamos a estudiar una de las formas normales m´s conocidas. . C ∈ V Esta forma normal. en forma normal de Chomsky (damos sus reglas): 1. A → BC. Formas Normales En ocasiones es necesario expresar una GLC siguiendo un formato m´s preciso de las a reglas que la simple forma A → α. .

w = uv. puede ser necesario dividir e la palabra de otra manera. es decir.´ 4. Para que SS pueda generar (())() ahora se necesitar´ que la primera a S pueda generar (()). o Para ello. Dicho de otra forma. El ´rbol de compilaci´n se presenta en la figura 4. Si |w| > 1. Escogemos la regla S → XY . dividirla en u y v. es t´ a n ıpicamente un caso de recursi´n. Si en el punto 1 la divisi´n de la palabra no nos llev´ a una compilaci´n exitosa (es decir. y partimos la palabra en los pedazos (()) y (). . ⇒ u. v) no tuvieron ´xito). u) la funci´n que verifica si A ⇒ . a partir de S generar (()). TRANSFORMACION DE LAS GLC Y FORMAS NORMALES 133 S S X ( X ( S Y Z Z ) ) S X ( Z ) Figura 4. Ahora X tiene la responsabilidad de generar ( y Y la de generar ()). X genera directamente (. u) y CC(V. Entonces un algoritmo de an´lisis sint´ctico ser´ el o a a ıa siguiente: CC(A.8. y queda por resolver c´mo S produce (). a a o Esta manera de generar dos nuevos problemas similares al problema inicial. Escogemos la regla S → SZ. y la segunda pueda generar (). Entonces Z produce directamente ). Este hecho permite pensar en o un sencillo procedimiento recursivo para “compilar” palabras de un LLC. Estos son subproblemas muy similares al problema inicial. con lo que terminamos el an´lisis. y la separaci´n en los o pedazos () y ). intentar CC(U. pero con datos m´s peque˜os. u) y CC(V. Sea CC(A. Tomemos el primero. y partimos la palabra en ( y ()). v) 2. Por la segunda regla. puede ser necesario ensayar todas las formas . Ahora tomamos el problema de generar ()) a partir de Y .3.3: Arbol de la palabra (())() regla que produzca dos variables. o o o los llamados recursivos CC(U. y finalmente X produce ( y Z se encarga de ). S → SS. . Para cada regla de la forma A → U V . Escogemos la quinta regla. buscar una regla A → w. Si |w| = 1. w) : 1. escogemos la regla S → XZ.

A → a . Por otra parte.. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO posibles de dividir una palabra en dos partes. Entonces a˜adimos las reglas: n 7. A → β..134 ´ CAP´ ITULO 4. los lados derechos de las reglas son. antes de convencerse de que ´sta pertenece o e no a nuestro lenguaje.. A → a. 2. el no-terminal A que le corresponde.S → bY 3. Vamos a efectuar esta transformaci´n en a o dos etapas: en una primera etapa.S → aX 2. para pasar despu´s de Gtemp a G . B → b. etc.Y → aba Como se ve.X → Y a 4. con a ∈ Σ 2. en vez de un terminal a.. A´n cuando esto puede ser muy ineficiente computacionalmente. hay reglas (4... es u innegable que el algoritmo es conceptualmente muy sencillo..Y → bXX 6. Por ejemplo. ya sea un terminal. con β ∈ V V ∗ En Gtemp .. de modo que podamos poner. el obst´culo para que esta GLC est´ en la forma intermedia es que en los a e lados derechos de varias reglas (1. consid´rese la siguiente GLC: e 1. e En Gtemp las reglas son de las formas: 1. 3. 6) que en el lado derecho tienen varios terminales.X → ba 5. con la seguridad de que despu´s ser´ posible obtener e a a a partir de A. llevaremos G a una forma intermedia Gtemp . o una cadena (no vac´ ıa) de no-terminales. La manera de llevar una GLC cualquiera a la forma intermedia consiste en introducir reglas A → a. El siguiente problema a examinar es si efectivamente es posible transformar una GLC cualquiera G en otra GLC G que est´ en la FNCH. 5) se mezclan los terminales y los no-terminales.

Y → BW 5 .S → AX 2 . Si tenemos una regla X → X1 X2 .W → XX Similarmente se puede transformar la regla 6 . .Y → ABA con lo que la gram´tica ya est´ en la forma intermedia. el lado derecho de la regla afectada se reduce en longitud en una unidad. la dividimos en dos reglas. dejando la gram´tica (reglas 1 . 6 . . reemplazando a por A y b por B: 1 . donde W es una nueva variable. . Para el ejemplo visto arriba.. 5 . puede ser necesario dividir los lados derechos de algunas reglas en varias partes.. una X → X1 W y otra W → X2 .´ 4. La equivalencia de la nueva a a gram´tica con respecto a la original es muy f´cil de probar. o por lo que. es decir.. la regla 5 se convierte en: 5 .B → b 135 y modificamos las reglas (1.3.S → BY 3 . para pasar de Gtemp a la FNCH. 7. Xn . 3 .X → Y A 4 .X → BA 5 .8.. a 5 . 8) en la FNCH.. 4 ..Y → BXX 6 . a a Luego... . TRANSFORMACION DE LAS GLC Y FORMAS NORMALES 8. Cada vez que se aplica esta a transformaci´n.. 2 . se debe poder llegar siempre a reglas cuyo lado a derecho tiene exactamente dos no-terminales. 6 . no debe formar previamente parte de la gram´tica.5). Xn . aplic´ndola repetidas veces. .2.

y por lo tanto.9. Σ. ıa Para probar que existen en la derivaci´n ciclos de la forma uAz ⇒∗ uvAyz. u puede ser escrita como w = uvxyz. Esto puede ser o o muy util. 4.4) en el que el s´ ımbolo A es la ra´ y tambi´n una de las hojas.136 ´ CAP´ ITULO 4..4. o o que tiene la forma uAz ⇒∗ uvAyz. la idea o ser´ verificar que el tama˜o vertical del ´rbol (su profundidad) es mayor que la cantidad de a n a no-terminales disponibles. R. Nos dice que siempre hay manera de introducir (“bombear”) subrepticiamente subcadenas a las palabras de los LLC. Esa parte de la derivaci´n.1. Nos sirve para probar que ciertos lenguajes no son LLC.9. Prueba. a o p Como se ve. alg´n no-terminal debe repetirse. para evitarnos el trabajo de tratar in´tilmente de dise˜ar GLCs de lenguajes que ´ u n no tienen ninguna. Teorema de bombeo para los LLC Teorema. S) es |V |. Est´ claro que ese ız e a . Sea m = max({|α| |A → α ∈ R}). uv n xy n z ∈ L(G) para cualquier n≥0. Ahora bien. Este teorema es similar en esencia al teorema de bombeo para los lenguajes regulares.Basta con probar que hay una derivaci´n o S ⇒∗ uAz ⇒∗ uvAyz ⇒∗ uvxyz = w pues al aparecer el mismo no-terminal en dos puntos de la derivaci´n. y por lo tanto un ´rbol Aw para w. es posible insertar ese o “trozo” de la derivaci´n cuantas veces se quiera (incluyendo cero). Una herramienta para esto es aplicar el llamado “teorema de bombeo”. En consecuencia.Existe para cada G ∈ GLC un n´mero k tal que toda w ∈ L(G). u Primero. que se presenta enseguida. Vamos a representar el ´rbol de derivaci´n en la figura 4. u a o sea A ese no-terminal. donde |w| > k. con |w| > m tiene profundidad e a mayor que p. As´ toda palabra de longitud mayor que m|V | tendr´ necesariamente una ı. a A continuaci´n examinemos el problema de verificar si los ´rboles de derivaci´n pueden o a o tener una profundidad mayor que |V |. a profundidad mayor que |V |. de tal manera que v y y no son ambas vac´ y que ıas. Limitaciones de los LLC En esta secci´n veremos c´mo verificar que un lenguaje dado no es LLC. un ´rbol de profundidad p tiene a lo m´s a a p m hojas (¿porqu´?). que recuerda lo que ocurr´ con el teorema de bombeo para los lenguajes regulares.. alg´n no-terminal estar´ repetido en la derivaci´n. es una especie de “ciclo” sobre el no-terminal A. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO 4. la cantidad de no-terminales para una gram´tica (V. hay un sub´rbol del ´rbol de derivaci´n (el tri´ngulo intermedio en la figua a o a ra 4.

dos posibilidades: 1. ak/3 bk/3 ck/3 puede ser escrita como uvxyz. y quedar´ siempre un ´rbol a a a de derivaci´n v´lido. cada vez que dicho sub´rbol sea insertado. Tanto v como y (el que no sea vac´ contienen un s´lo tipo de letra (repeticiones de a. o Al haberse probado que el lenguaje {an bn cn } no es LLC. en el caso de los lenguajes regulares.. que si se o recuerda. de acuerdo con el teorema de bombeo. lo cual es imposible. En ambos casos se contradice la hip´tesis de que {an bn cn } es LLC. Entonces. su complemento daba otro lenguaje regular: Teorema. LIMITACIONES DE LOS LLC 137 S u A z v A y x Figura 4. Prueba.9. las subcadenas v e y se repeo a a tir´n una vez m´s. seg´n el teorema. pues no hemos incrementado en forma balanceada las tres letras. Sup´ngase o o n n n que {a b c } es LLC.4.El complemento de un LLC no necesariamente produce otro LLC. donde v y y no pueden ser ambas vac´ Existen ıas. Algo similar ocurre con respecto a la operaci´n de complemento del lenguaje.. b o c).. En este caso. Esto completa la prueba. ya que al repetir v o y.. uv 2 xy 2 z no puede ser de la misma forma. para una cierta k. ıo) o b o c). sino a lo m´s a dos de ellas. que acabamos o de probar que no es LLC. lo mismo ocurrir´ con la e ıa . a 2.. v o y contienen varias letras (combinaciones de a. Ejemplo. forzosamente las letras quedar´n en desorden. su intersecci´n es el lenguaje {an bn cn }.El lenguaje {an bn cn } no es LLC. o Prueba. si uvxyz es de la forma an bn cn . Pero. podemos probar que la intersecci´n de dos LLC no es necesariamente un LLC: o Teorema.La intersecci´n de dos LLC no es necesariamente LLC.4: sub´rbol puede ser insertado o quitado cuantas veces se quiera. En la figura se aprecia porqu´ es importante a a e que v e y no sean ambas vac´ QED ıas. uv 2 xy 2 z u n n n es de la forma a b c .Si el complemento de un LLC fuera tambi´n LLC. Sin embargo. Esto se prueba por contradicci´n.Los lenguajes L1 y L2 formados por las palabras de la forma an bn cm y am bn cn respectivamente son LLC.

Ejemplo. y por la cerradura de los LLC a la uni´n. En el siguiente ejemplo a se da un caso espec´ ıfico. En efecto. Tales algoritmos se llaman e ı algoritmos de decisi´n. mientras que hay otras preguntas que no se pueden contestar en el caso general. contiene la cadena “ba”– como en “abba”. todas las a est´n antes de todas las b. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO intersecci´n. se concluye que o L es LLC.Probar que el complemento del lenguaje {an bn } es LLC. Para esto. Vamos a examinar primero dos preguntas que s´ se pueden contestar con seguridad ı y en un tiempo finito. “abbb”. pues nos permiten decidir la respuesta a una pregunta. w = αbaβ Claramente esta clasificaci´n es exhaustiva. la segunda es que. Es f´cil ver que el caso (2) corresponde al lenguaje L2 = {an bm |n = m}. se concluye que L1 es LLC.. w = αbaβ 2. Debe tenerse cuidado al interpretar estos resultados. de acuerdo con las identidades de la teor´ de conjuntos. se llega a concluir un s´ o un no. Las que contienen la cadena “ba”. y por la cerradura de los LLC a la uni´n. o Finalmente. no habiendo letras en desorden. pues el lenguaje L1 cuyas palabras contienen la cadena “ba” es regular y por lo tanto LLC.10. como se vio en un ejemplo presentado o anteriormente. b} no es de la forma a b : la primera es que tiene letras en desorden –esto es. esto es. que el complemento de un LLC necesariamente no ser´ LLC. L2 puede a ser expresado como la uni´n de dos lenguajes LLC. pues como a no tiene b inmediatamente antes que a. por ejemplo. vamos a clasificar las palabras de L = {an bn }c en dos categor´ ıas: 1.138 ´ CAP´ ITULO 4. Para estas preguntas es posible dar un algoritmo o “receta” tal que. L1 ∩ L2 = o ıa c c c 19 (L1 ∪ L2 ) . como en “aaaa”. {an bn }c = L1 ∪ L2 . Propiedades de decidibilidad de los LLC Hay ciertas preguntas sobre los lenguajes libres de contexto y sus gram´ticas que es a posible contestar. Las que no contienen “ba”. etc. la cantidad de a’s y b’s no es la misma. Las preguntas o que vamos a contestar son las siguientes: 19 Lc es una abreviatura para Σ∗ − L. sigui´ndolo paso por paso. 4. . ya que. esto es. esto no quiere decir. El caso (1) es muy simple. El objetivo de esta clasificaci´n es distinguir o o ∗ n n las causas por las que una palabra en {a.

el lado derecho tiene varios s´ ımbolos. En vista de que la longitud de la palabra crece con cada paso de derivaci´n. es posible decidir si w ∈ L(G) a cuando las reglas de G cumplen la propiedad: “Para toda regla A → α. s´lo necesitamos examinar las derivaciones (izquierdas) o de 5 pasos a lo m´s -y que terminan en una palabra hecha unicamente de terminales. que mide 6 s´ ımbolos. o si tiene exactamente un s´ ımbolo. porque el lado derecho de las reglas tiene en general m´s de un s´ a ımbolo.10. la gram´tica de los par´ntesis a e bien balanceados cumple con la propiedad requerida: 1. ´ste es terminal. Por ejemplo. S → () 2. PROPIEDADES DE DECIDIBILIDAD DE LOS LLC 139 Teorema. S → (S) Como en esta gram´tica el lado derecho mide 2 o m´s s´ a a ımbolos. Estas a ´ derivaciones son las siguientes: 1 paso: S ⇒ () 2 pasos: S ⇒ (S) ⇒ (()) 3 pasos: S ⇒ (S) ⇒ ((S)) ⇒ ((())) S ⇒ SS ⇒ ()S ⇒ ()() 4 pasos: ⇒ (S) ⇒ ((S)) ⇒ (((S))) ⇒ (((()))) ⇒ (S) ⇒ (SS) ⇒ (()S) ⇒ (()()) ⇒ SS ⇒ ()S ⇒ ()(S) ⇒ ()(()) ⇒ SS ⇒ (S)S ⇒ (())S ⇒ (())() 5 pasos: ⇒ (S) ⇒ ((S)) ⇒ (((S))) ⇒ ((((S)))) ⇒ ((((())))) ⇒ (S) ⇒ ((S)) ⇒ ((SS)) ⇒ ((()S)) ⇒ ((()())) ⇒ (S) ⇒ (SS) ⇒ (()S) ⇒ (()(S)) ⇒ (()(())) ⇒ (S) ⇒ (SS) ⇒ ((S)S) ⇒ ((())S) ⇒ ((())()) ⇒ SS ⇒ ()S ⇒ ()(S) ⇒ ()((S)) ⇒ ()((())) S S S S S S S S S . o bien α ∈ Σ. |α| > 1. S → SS 3. es decir. para saber si hay una derivaci´n de la a o palabra ()(()).Dadas una gram´tica G y una palabra w..4. Por lo tanto. la aplicaci´n de cada regla o reemplaza un s´ ımbolo por dos o m´s.” e Prueba: La idea para probar el teorema es que cada derivaci´n incrementa la longitud de o la palabra. s´lo hay que examinar o o las derivaciones hasta una cierta longitud finita.

Para empezar observamos que las reglas de la forma A → a producen exclusivamente un terminal. o 20 . a ı estar´ entre alguna de las palabras derivadas en 5 pasos o menos. por lo que. como E → x y E → y que tienen en su lado derecho un a caracter. sea la gram´tica de las expresiones aritm´ticas: a e 1. Ahora bien. QED N´tese que en el enunciado del teorema nos estamos restringiendo a las GLC que satiso facen la condici´n: para toda regla A → α. ıa En el caso general se incluyen reglas de la forma A → a. ´ste es terminal. Por ejemplo. la palabra pertenece al lenguaje. a e ´ Con base en este grupo de derivaciones es simple probar que la palabra “(()()(” -de 6 caracteres de longitud. Cabe preguntarse e Ejercicio: hallar el m´todo que se sigui´ para obtener las derivaciones mostradas. y en caso contrario no pertenece al lenguaje. As´ si queremos determinar en forma segura si la o ı. o si tiene exactamente un s´ ımbolo. con a ∈ Σ. E → y Esta gram´tica tiene reglas. es decir.no pertenece al lenguaje generado por la gram´tica. palabra x ∗ y + x pertenece o no al lenguaje generado por la gram´tica. s´lo tenemos que a o examinar las derivaciones de longitud menor o igual a 9. pues si as´ fuera. el lado derecho o tiene varios s´ ımbolos. Entonces. para generar 5 terminales con reglas de la forma A → a se requieren 5 no-terminales. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO ⇒ ()S ⇒ ()SS ⇒ ()()S ⇒ ()()() ⇒ (S)S ⇒ (())S ⇒ (())(S) ⇒ (())(()) ⇒ (S)S ⇒ ((S))S ⇒ ((()))S((()))() ⇒ SSS ⇒ ()SS ⇒ ()()S ⇒ ()()() 20 Es f´cil ver que ´stas son las unicas posibles derivaciones. para una palabra w de longitud l hay que examinar las derivaciones de longitud hasta 2 ∗ l − 1. Si la palabra se encuentra al final de alguna de esas derivaciones. |α| > 1. |a| = 2. Esos 5 no-terminales se generan con las reglas de la forma A → a. En el peor de los casos. y probar que no se e o puede “escapar” ninguna derivaci´n. E → x 4. dada una expresi´n aritm´tica como x ∗ y + x. E → E ∗ E 3. E → E + E 2. En general. a lo m´s se usan ese tipo de reglas en 5 ocasiones (de hecho se ve que en una derivaci´n de a o x ∗ y + x ese tipo de reglas se usa exactamente en 3 ocasiones). Esto termina la prueba del teorema. que tiene 5 s´ o e ımbolos. Eso da un a o total de 5+4 = 9 pasos de derivaci´n. por lo que se requerir´n 4 pasos de derivaci´n para llegar a los 5 no-terminales. o bien α ∈ Σ. donde |a| > 1. en el peor caso.140 S S S S ⇒ SS ⇒ SS ⇒ SS ⇒ SS ´ CAP´ ITULO 4. se aplicaron tantas veces reglas de este tipo como letras tenga la palabra generada.

llaves y corchetes bien balanceados. n ≤ k ≤ n + m} (Ayuda: usar la mezcla de gram´ticas. esto es. “([])” y “()[[]]” son correctas. b}∗ en que las palabras tienen la misma cantidad de a’s y b’s. b} en que las palabras tienen la misma cantidad de a’s que de b’s. c) Una GLC que sea a la vez incorrecta e incompleta para este lenguaje. e) Una derivaci´n izquierda de la palabra abaababb usando esta ultima gram´tica. b) Una GLC incompleta. d ) Una GLC correcta y completa. o g) El lenguaje {an bk cm .Dada cualquier GLC G. b. en el sentido de que hay muchas GLC que no cumplen o dicha condici´n. 2. Para esto.4. d ) Un lenguaje de par´ntesis. pero su combinaci´n no lo est´. Proponer una gram´tica libre de contexto que genere las palabras binarias que comiena zan con 1. Proponer gram´ticas libres de contexto para los siguientes lenguajes: a a) El lenguaje {ai bj ck | ¬(i = j = k)} b) El lenguaje en {a. o a e) {ai bj ck | i = j − k} f ) El lenguaje {an bn+m cm } (Ayuda: usar la concatenaci´n de lenguajes). N´tese que en esta ultima palabra los par´ntesis solos est´n balanceados. 4. que no pueda generar algunas de las palabras de este lenguaje.11. Considerar el lenguaje en {a. Por ejemplo. Transformar las gram´ticas del problema 3 a la forma normal de Chomsky. Proponer: a) Una GLC incorrecta para este lenguaje. o 4. Ejercicios 1. c) Las palabras en {a. esto es. a . mientras que “[[]” y “([)]” no lo son. o Corolario . o ´ a 3. que genere palabras que no deber´ ıa. La prueba de este corolario consiste en dar un procedimiento para transformar una GLC cualquiera G en una GLC G que satisface las condiciones del teorema arriba enunciado. las e palabras “()[]”. De hecho la respuesta es no. as´ como o ´ e a ı los corchetes solos. EJERCICIOS 141 si esto constituye una limitaci´n. c} en que hay m´s a’s que c’s (la cantidad de b’s puede ser a cualquiera). pues existe un procedimiento para pasar de o una GLC arbitraria a una GLC que satisfaga la condici´n del teorema. y la a soluci´n al problema anterior).. es posible decidir si w ∈ L(G).11.

142 ´ CAP´ ITULO 4. b) Las reglas “in´tiles”. Poner especial o a cuidado al generar el enunciado generalizado. m. n. Contestar las siguientes preguntas. o STAT → if condici´n then STAT else STAT. Llamamos “´til” a un s´ u ımbolo no terminal A de una gram´tica libre de contexto que a cumple con dos propiedades: . GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO a) Eliminar las producciones vac´ ıas. . k = 1. con: a V = {PROG. . IF. ¿ser´ A libre de contexto? a e) ¿La intersecci´n de un lenguaje regular con un libre de contexto ser´ regular? o a f ) ¿La uni´n de un lenguaje libre de contexto con un lenguaje regular es libre de o contexto? g) ¿La intersecci´n de un lenguaje libre de contexto con un lenguaje regular es rego ular? h) ¿El reverso de un lenguaje libre de contexto es tambi´n libre de contexto? (Ayuda: e considerar una transformaci´n para obtener el reverso del lado derecho de las o reglas).} no es libre de contexto. 2. . Probar la correcci´n de las gram´ticas propuestas en el ejercicio 3. e) Limitar a 2 la longitud m´xima del lado derecho de las reglas. (Ayuda: las cadenas v e y se pueden repetir 0 veces). Mostrar que la siguiente gram´tica es / no es ambigua: G = (V. u c) Las reglas inaccesibles. S). as´ como al aplicarlo a los casos especiales. justificando la respuesta: a) ¿La concatenaci´n de un lenguaje regular con uno libre de contexto ser´ necesario a amente libre de contexto? b) ¿Todo lenguaje libre de contexto tendr´ alg´n subconjunto que sea regular? a u c) ¿Todo lenguaje libre de contexto ser´ subconjunto de alg´n lenguaje regular? a u d ) Si A ∪ B es libre de contexto. 7. R. STAT → stat} o S = PROG 6. 3. Sea L = {an bm cp dq | n = m = p + q}. Σ. else. 10. condici´n. 9. a 5. then. d ) Poner en la “forma intermedia” (s´lo variables o s´lo constantes en el lado derecho o o de las reglas). ¿Es L libre de contexto? Proponga (y explique) una GLC o pruebe que no es posible. ı 8. Probar mediante el teorema de bombeo que el lenguaje {an bn+m cn+m+k . STAT} Σ = {if. stat} o R = {PROG → STAT. STAT → if condici´n then STAT.

EJERCICIOS 143 a) S ⇒∗ aAb. b ∈ (V ∪ Σ)∗ . ¿Es decidible si A es util o no lo ´ es? Pruebe la respuesta. e o 11. b) A ⇒∗ w.11.4. donde V es el alfabeto de las variables y Σ (terminales y no terminales). y en caso afirmativo proponga el m´todo de decisi´n. . Dada una cierta GLC y un s´ ımbolo no terminal A. w ∈ Σ∗ . ¿El lenguaje {w = ai bm cn | i > m > n} es libre de contexto? Probar la respuesta. a.

144 ´ CAP´ ITULO 4. GRAMATICAS Y LENGUAJES LIBRES DE CONTEXTO .

u podr´ ıamos pensar en a˜adir al AF un almacenamiento auxiliar. que sabemos que es propiamente LLC. 1. tomemos por ejemplo el lenguaje de los par´ntesis bien balanceaa e 2 dos. 0.Cap´ ıtulo 5 Aut´matas de Pila o Puesto que los aut´matas finitos no son suficientemente poderosos para aceptar los LLC.1. o bien N para indicar a que no est´ en cero. 2. Entonces para analizar una palabra con par´ntesis lo que har´ a e ıamos ser´ ıa llevar la cuenta de cu´ntos par´ntesis han sido abiertos pero no cerrados. ıa Recomendamos al lector tratar de dise˜ar en detalle la tabla describiendo las transiciones n del aut´mata. 1. M´s bien pensar´ a ıamos en una m´quina que tuviera a la capacidad de recordar cadenas de caracteres arbitrarias. en todo momento a e dicha cuenta debe ser positiva o cero. Siguiendo esta idea. como se a aprecia en la figura 5. que llamaremos pila. para la palabra (())() el registro tomar´ sucesivamente los valores 1. ¿Qu´ m´quina se requiere para distinguir las e a palabras de par´ntesis bien balanceados de las que tienen los par´ntesis desbalanceados? e e Una primera idea podr´ ser la de una m´quina que tuviera un registro aritm´tico que le ıa a e permitiera contar los par´ntesis. A estos nuevos aut´matas con una pila auxiliar los llamaremos o ¡Cuidado! Esto no impide que un LLC en particular pueda ser aceptado por un AF. el registro mandar´ un s´ ıa ımbolo Z para indicar que est´ en cero. quien le e ıa mandar´ s´ ıa ımbolos I para incrementar en uno el contador y D para decrementarlo en uno. o 1 1 145 . o cabe preguntarnos qu´ tipo de aut´mata se necesitar´ para aceptar los LLC. como ANITALAVALATINA). 0. dicho registro ser´ controlado por el control finito. e o ıa Una idea es agregar algo a los AF de manera que se incremente su poder de c´lculo. 2 “Propiamente LLC” quiere decir que el lenguaje en cuesti´n es LLC pero no regular. no n´meros. A su vez. Aqu´ la m´quina contadora e ı a no va a funcionar. cosa trivialmente cierta si tomamos en cuenta que todo lenguaje regular es a la vez LLC. o Como un segundo ejemplo. consid´rese el lenguaje de los pal´ e ındromos (palabras que se leen igual al derecho y al rev´s. a Para ser m´s concretos. porque se necesita recordar toda la primera mitad de la palabra para poder compararla con la segunda mitad. donde n se podr´n ir depositando caracter por caracter cadenas arbitrariamente grandes. y al final del c´lculo debe ser exactamente cero. Por a ejemplo.

vamos a utilizar una notaci´n gr´fica. Los caracteres a la mitad de la pila no son accesibles sin quitar antes los que est´n encima de ellos. Para las o transiciones usaremos la notaci´n “w/α/β”. AUTOMATAS DE PILA b a a b a b a a q0     q1 q2   q3   Figura 5. y β lo que se mete a la pila. y e a naturalmente el primero que quitaremos es el ultimo que hemos colocado. que es el extremo por donde entran o o salen los caracteres. Al final de su operaci´n. Funcionamiento de los Aut´matas de Pila (inforo mal) La pila funciona de manera que el ultimo caracter que se almacena en ella es el primero ´ en salir (“LIFO” por las siglas en ingl´s). como en los AP de las figuras 5. u n o Al iniciar la operaci´n de un AP. no o . la pila puede ir recibiendo (y almacenando) caracteres. abreviado AP.1. Antes de formalizar los AP. la pila se encuentra vac´ Durante la operaci´n del o ıa. Esto se justifica porque puede ser necesario introducir en la pila caracteres especiales usados como separadores. para aceptar una palabra. tambi´n lo que se saca del tope de la pila. α es lo que se saca de la pila. a La pila tendr´ un alfabeto propio.146 ´ CAP´ ITULO 5. la transici´n “a/ε/b” indica que se consume de la entrada un caracter a. donde w es la entrada (secuencia de caracteres) o que se consume. seg´n las necesidades de dise˜o del aut´mata.1: Aut´mata con una pila auxiliar o Aut´matas de Pila. adem´s de los caracteres que se a consumen de la entrada. como si empil´ramos platos uno encima de otro. Por ejemplo. o AP. En los AP las transiciones de un estado a otro indican. parecida a la de los o a diagramas de los aut´matas finitos. la pila debe estar nuevamente o vac´ ıa. o 5. asi como tambi´n lo que e e se mete a la pila. Un aspecto crucial ´ de la pila es que s´lo podemos modificar su “tope”. que puede o no coincidir con el alfabeto de la palabra de a entrada. seg´n lo indiquen las transiciones u ejecutadas.2 (a) y (b).

Las columnas de una traza de ejecuci´n para un AP son: el estado en que se o o .2. Una primera versi´n de este dise˜o utiliza un s´lo estado q. para que una palabra de entrada sea aceptada en un AP se deben cumplir todas las condiciones siguientes: 1. Para los AP. Se supone que primero se ejecuta la operaci´n o de sacar de la pila y luego la de meter.Dise˜ar un AP que acepte exactamente el lenguaje con palabras de la forma n an bn . que. y se mete b a la pila. La pila debe estar vac´ ıa. siguen siendo v´lidas las ideas b´sicas del dise˜o sistem´tico. Para verificar el funcionamiento del aut´mata. 3. 5. y luego confrontar con la cantidad de b’s. Aunque en el caso de los AP no hay metodolog´ tan generalmente aplicables como era ıas el caso de los aut´matas finitos. La palabra de entrada se debe haber agotado (consumido totalmente).2(a). todas las palabras que acepta efectivamente pertenecen a L.2. Por exactamente queremos decir. En resumen. o a a n a en particular establecer claramente qu´ es lo que “recuerda” cada estado del AP antes de e ponerse a trazar transiciones a diestra y siniestra. que permiten distinguir cuando una palabra de entrada es aceptada. El AP se debe encontrar en un estado final. Distintos dise˜os para un mismo problema pueden tomar n decisiones diferentes en cuanto a qu´ recuerda cada cual. que M es capaz de aceptar todas las palabras de L. los AP tienen estados finales. o n o ı como en la figura 5. para cualquier n´mero natural n. y por otra parte. u Una idea que surge inmediatamente es la de utilizar la pila como “contador” para recordar la cantidad de a’s que se consumen.˜ 5. como en el caso de los aut´matas o finitos. e Ejemplo. con transiciones a/ε/a y b/a/ε de q a s´ mismo. mediante una tabla que llamaremos “traza de ejecuci´n”. 2.. Dise˜ o de AP n El problema de dise˜o de los AP consiste en obtener un AP M que acepte exactamente n un lenguaje L dado. adicionalmente tenemos que establecer una estrategia clara para el manejo de la pila. Al igual que los AF. por una parte. De hecho. DISENO DE AP 147 se saca nada de la pila. listando o o las situaciones sucesivas en que se encuentra. podemos simular su ejecuci´n. a la hora de dise˜ar un AP tenemos que repartir lo que requiere ser “recorn dado” entre los estados y la pila.

Por ejemplo. invertir el orden). esto es. AUTOMATAS DE PILA a/ ε/a q1 b/a/ ε b/a/ ε (b) Correcto q2 Figura 5. palabras que se leen igual de izquierda a derecha y de derecha a izquierda. Ejemplo. b}. Una soluci´n es utilizar los estados para memorizar las situaciones o de estar consumiendo a o estar consumiendo b. El problema a o viene de que no hemos recordado cuando se terminan las a y principian las b. en el alfabeto {a. Tendr´ ıamos dos estados s y f . mientras que aab y aabaa no. donde wR es el reverso de w (esto es. a . El diagrama de estados correspondiente se muestra en la figura 5. Una estrategia de soluci´n para dise˜ar este AP ser´ almacenar en la pila la primera o n ıa mitad de la palabra. En la figura 5. lo que falta por leer de la palabra de entrada.2: AP para el lenguaje an bn encuentra el aut´mata. 3 Suponemos que el tope de la pila est´ del lado izquierdo. aa y bbbbbb pertenecen a este lenguaje. por eso ha sido posible mezclarlas en abab. la traza de ejecuci´n del AP del ultimo ejemplo.2(b). que no tienen la forma deseada! (es e f´cil construir la traza de ejecuci´n correspondiente para convencerse de ello). Sin embargo. aunque en este ejemplo da lo mismo. y que tienen por tanto la forma wwR . para la palabra aabb.. para recordar que estamos en la primera o segunda mitad de la palabra. hay un problema: ¡el AP tambi´n acepta palabras como abab. y el contenido de la o pila.Proponer un AP que acepte el lenguaje de los pal´ ındromos con un n´mero u par de s´ ımbolos. las palabras abba. Por ejemplo. se o ´ 3 muestra a continuaci´n: o Estado Por leer q aabb q abb q bb q b q ε Pila ε a aa a ε Conclu´ ımos que el AP efectivamente puede aceptar palabras como an bn . y luego irla comparando letra por letra contra la segunda mitad.2 se detalla este AP.148 a/ ε/a b/a/ ε q (a) Incorrecto ´ CAP´ ITULO 5.

a o o hacer esto es directo. la siguiente tabla muestra un c´lculo a o a que permite aceptar la palabra w = abba: Estado s s s f f f Falta leer Pila abba ε bba a ba ba ba ba a a ε ε Transici´n o 1 2 3 5 4 5. podemos obtener un AP que acepte la uni´n L1 ∪L2 . rechazando en consecuencia la palabra de entrada. o 4 . Combinaci´n modular de AP o En los AP tambi´n es posible aplicar m´todos de combinaci´n modular de aut´matas. 4 El procedimiento de combinaci´n de AP para obtener la uni´n de aut´matas puede ser descrito en forma o o o m´s precisa utilizando la representaci´n formal de los AP. pues. y si no lo hace exactamente cuando hemos recorrido ya la mitad de la palabra. ni se manipula la pila.3: AP para el lenguaje {wwR } Se puede apreciar en el AP de dicha figura la presencia de una transici´n de s a f . Esta transici´n parece muy o peligrosa. que exista un a o c´lculo que acepte la palabra en cuesti´n.4. Entonces. independientemente de que un a c´lculo en particular se vaya por un camino err´neo. y se deja como ejercicio (ver secci´n de ejercicios).2. el AP podr´ llegar al final a un estado a que no sea final. o o En el caso de la uni´n. Por ejemplo.2.1. en que o ni se consumen caracteres de la entrada. dados dos AP M1 y M2 que aceptan respectivamente los lenguajes o L1 y L2 . e e o o como hicimos con los aut´matas finitos. Lo importante es. es posible obtener AP que acepten la o uni´n y concatenaci´n de los lenguajes aceptados por dos AP dados. DISENO DE AP b/ ε /b a/ ε/a s a/a/ ε b/b/ ε ε/ε/ε f 149 Figura 5. que se estudia en la siguiente secci´n. introduciendo un nuevo estado o inicial s0 con transiciones ε/ε/ε a los dos antiguos estados iniciales s1 y s2 . En particular. ¿c´mo saber o que estamos exactamente a la mitad de la palabra? Conviene en este punto recordar que en un aut´mata no determinista una palabra es o aceptada cuando existe un c´lculo que permite aceptarla. como se ilustra en la figura 5. porque se puede “disparar” en cualquier momento.˜ 5. sin embargo.

Claramente este lenguaje es la uni´n de {an bm |n > m} con {an bm |n < m}.. el AP a almacenar´ primero las a’s en la pila. Tambi´n es posible obtener modularmente un AP que acepte la concatenaci´n de los e o lenguajes aceptados por dos AP dados. ıa las a’s deben acabarse antes de terminar con las b’s o bien deben sobrar a’s al terminar con las b’s. De hecho ya vimos en el cap´ ıtulo 4 que la uni´n de o dos lenguajes libres de contexto es tambi´n libre de contexto. es ligeramente m´s complicada que para el caso de la a uni´n. ıa ıa Para esto. que son: o L = {ai bj ck |i = j} ∪ {ai bj ck |j = k} Para cada uno de estos dos lenguajes es f´cil obtener su AP. Nos damos n cuenta de que L es la uni´n de dos lenguajes.. Sin embargo. Para el primero de ellos.4: Uni´n de AP o Ejemplo. Dejamos los detalles como ejercicio para el lector. el cual se saca de la pila antes de iniciar la operaci´n de o o M2 . existe el problema: hay que garantizar que la pila se encuentre vac´ al pasar de M1 a M2 . para luego ir descontando una b por cada a de la pila. La idea b´sica ser´ poner transiciones vac´ que vayan de los estados finales de M1 o a ıa ıas al estado inicial de M2 . Los detalles se dejan como ejercicio (ver secci´n de ejercicios).Dise˜ar un AP que acepte el lenguaje L = {ai bj ck |¬(i = j = k)}. pues tiene una gram´tica libre e a de contexto. AUTOMATAS DE PILA ε/ε/ε s0 ε/ε/ε Figura 5. Sin embargo. es posible utilizar un caracter especial.150 ´ CAP´ ITULO 5. las c’s no modifican la pila y simplemente se verifica que no haya a o b despu´s de la e primera c.Obtener un AP que acepte el lenguaje {an bm |n = m}. la construcci´n de un AP que acepte la concatenaci´n de dos lenguajes a o o partir de sus respectivos AP M1 y M2 . e Ejemplo. que se mete a la pila antes de iniciar la operaci´n de M1 . y combinarlos con el m´todo descrito. pues de otro modo podr´ resultar un AP incorrecto. por ejemplo “@”. por lo que basta obtener los AP de cada o uno de ellos. o ¡£¡£¡£¡¡£¡¡£¡£¡£¡¡£¡ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ££¤¡£¡£¡£¡¡£¡¡£¡£¡£¡¡£¡ ¡¤¡¤¡¤¡¡¤¡¡¤¡¤¡¤¡¡¤¡ ¤¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤ £¡£¡£¡£¡¡£¡¡£¡£¡£¡¡£¡ ¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£ ¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤ £¡£¤¡£¤¡£¤¡¤£¡£¤¡¤£¡£¤¡£¤¡£¤¡¤£¡£¤¡¤£ £¤¡¤¡¤¡¤¡£¡¤¡£¡¤¡¤¡¤¡£¡¤¡£ ¡£¡£¡£¡¤¡£¡¤¡£¡£¡£¡¤¡£¡¤ £¤¡¤¡¤¡¤¡£¡¤¡£¡¤¡¤¡¤¡£¡¤¡£ ¡£¡£¡£¡¤£¤¡£¡¤£¤¡£¡£¡£¡¤£¤¡£¡¤£¤ ££¤¡£¡£¡£¡¡£¡¡£¡£¡£¡¡£¡ ¡¤¡¤¡¤¡£¡¤¡£¡¤¡¤¡¤¡£¡¤¡£ ¤¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤ £¡£¡£¡£¡¡£¡¡£¡£¡£¡¡£¡ ¡¤¡¤¡¤¡£¡¤¡£¡¤¡¤¡¤¡£¡¤¡£ ¡£¡£¡£¡¤¡£¡¤¡£¡£¡£¡¤¡£¡¤ £¤¡¤¡¤¡¤¡£¡¤¡£¡¤¡¤¡¤¡£¡¤¡£ ¡£¡£¡£¡¤¡£¡¤¡£¡£¡£¡¤¡£¡¤ £¤¡¤¡¤¡¤¡£¡¤¡£¡¤¡¤¡¤¡£¡¤¡£ ¡£¡£¡£¡¤¡£¡¤¡£¡£¡£¡¤¡£¡¤ £¤¡¤¡¤¡¤¡£¡¤¡£¡¤¡¤¡¤¡£¡¤¡£ ¡£¡£¡£¡£¤¡£¡£¤¡£¡£¡£¡£¤¡£¡£¤ ¤£¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤ £¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£ ¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤ £¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£ ¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤¡¤ £¡£¡£¡£¡¡£¡¡£¡£¡£¡¡£¡ ¡¡¡¡£¤£¤£¡¡£¤£¤£¡¡¡¡£¤£¤£¡¡£¤£¤£ ¡ ¡¡ ¡ ¡¡ ¡ ¡ ¡¡ ¢ ¢ ¢ ¢ ¢ ¢  ¢¡¢¡¡¢¡¢¡¡¢¡¢¡¢¡¡ ¡ ¡¡ ¡ ¡¡ ¡ ¡ ¡¡  ¢¡¢¡¡¢¡¢¡¡¢¡¢¡¢¡¡ ¡ ¡¢ ¢¡ ¡ ¡¢ ¢¡ ¡ ¡ ¡¢ ¢¡¢ ¢   ¢¡ ¡¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡¢¡ ¡¢¡¢¡ ¡¢¡¢¡¢¡ ¡  ¢¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢  ¡ ¡¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡  ¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢  ¡¢¡ ¡¢¡¢¡ ¡¢¡¢¡¢¡ ¡  ¢¡ ¡¢¡ ¡ ¡¢¡ ¡ ¡ ¡¢¡¢  ¡ ¢¡¢  ¡ ¢¡ ¢¡¢  ¡ ¢¡ ¢¡ ¢¡¢  ¡ ¢   ¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡   ¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡  ¢ ¢¡¢¡ ¢¡¢¡¢¡ ¢¡¢¡¢¡¢¡ ¢¡ ¢  ¡ ¡¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡¢¡¡¢¡¢¡¡¢¡¢¡¢¡¡ ¡ ¡ ¢¡ ¡ ¡ ¢¡ ¡ ¡ ¡ ¢¡ ¢  ¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢ ¡ ¡¡ ¡ ¡¡ ¡ ¡ ¡¡  ¢¡¢¡¢ ¡¢¡¢¡¢ ¡¢¡¢¡¢¡¢ ¡¢  ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡   ¢¡¢¡¡¢¡¢¡¡¢¡¢¡¢¡¡ ¡ ¡¢ ¢¡ ¡ ¡¢ ¢¡ ¡ ¡ ¡¢ ¢¡¢ ¢   ¢¡ ¡¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡¢¡ ¡¢¡¢¡ ¡¢¡¢¡¢¡ ¡  ¢¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢  ¡ ¡¢ ¡ ¡ ¡¢ ¡ ¡ ¡ ¡¢ ¡¢  ¢¡¢¡¡¢¡¢¡¡¢¡¢¡¢¡¡  ¡ ¡¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡¡ ¢ ¢ ¡¡¡ ¢ ¢ ¡¡¡¡ ¢ ¢ ¡ ¢ ¢  F1 s1 s2 F2 .

o o Ahora describiremos el funcionamiento de los AP.Una configuraci´n es un elemento de K × Σ∗ × Γ∗ .. γ)) ∈ ∆. Γ. F ). Formalizaci´n de los AP o Un aut´mata de pila es un s´xtuplo (K. Σ. ε). Para ello seguiremos el mismo m´todo que usamos en el caso de los e AF. mientras que si s´lo queremos sacar caracteres de la pila se har´ con la transici´n o a o ((p. (q.´ 5. si s´lo queremos meter la cadena γ a la pila. u. o Ahora definimos la relaci´n o entre configuraciones de la manera siguiente: . s. m´todo que reposa completamente en la noci´n de configuraci´n. una configuraci´n podr´ ser [[q. (q. u. o o Por ejemplo. (q. abbab. e o o Definici´n. ε)) (“pop”). Saca β de la pila. se har´ con la transici´n ((p. Puede verse que las o transiciones se definen como una relaci´n. Llega a un estado q. el AP hace lo siguiente: Estando en el estado p. γ)) o ıa o (“push”). para llegar a la definici´n del lenguaje o aceptado por un AP. Mete γ en la pila Las operaciones t´ ıpicas en las pilas –t´ ıpicamente llamadas en ingl´s el “push” y el “pop”– e pueden ser vistas como casos particulares de las transiciones de nuestro AP. ∆. u. donde: o e K es un conjunto de estados Σ es el alfabeto de entrada Γ es el alfabeto de la pila s ∈ K es el estado inicial F ⊆ K es un conjunto de estados finales. no como una funci´n. ⊗aa#a]] –obs´rvese que seguimos o ıa e la misma notaci´n que para representar las configuraciones de los AF. Si tenemos una transici´n de la forma o ((p. ∆ ⊆ (K × Σ∗ × Γ∗ ) × (K × Γ∗ ) es la relaci´n de transici´n.3. FORMALIZACION DE LOS AP 151 5.3. β). en efecto. por lo que de entrada se les o o formaliza como aut´matas no deterministas. consume u de la entrada. β). Ahora formalizaremos el funcionamiento de los AP.

donde p ∈ F .Los aut´matas de pila aceptan exactamente los LLC. Σ..2. b} ∆ est´ representada en la siguiente tabla: a (s. b) (f.. Σ. F = {f }. c}. F ). Σ = {a. Σ.5. donde o e K = {s.Todo lenguaje aceptado por un AF es tambi´n aceptado por un AP e Este resultado debe quedar intuitivamente claro. ε)) | (p. entonces [[p. a. ∆. L(M ) es el conjunto de palabras aceptadas por M . Relaci´n entre AF y AP o Teorema. ε]] o [[p. puesto que los AP son una extensi´n o de los AF.Un AP M = (K. s.El AP es el s´xtuplo (K. Γ. a) (f. ε) (f. ε]]. f }. ∆ . F ). F ) un AP. (q. Γ. Γ = {a. no solamente por el inter´s por la rigo e urosidad matem´tica. u. que acepta el lenguaje {wwR }. ux. s. s. verificar si son efectivamente capaces de aceptar los LLC. s. q) ∈ ∆} acepta el mismo lenguaje. F ) acepta una palabra w ∈ Σ∗ ssi [[s.. b}. Teorema.. ∆. b. En general vamos a omitir el sub´ ındice de M . ε) (f.Formalizar el AP de la figura 5. ε) (f. (q. b.. a) (s. β). el AP (K. b) (s. Σ.4. γα]] ssi o existe ((p. w ∈ {a. u. o Vamos a examinar la prueba de esta afirmaci´n. a. La cerradura reflexiva y transitiva de es ∗ . es decir.152 ´ CAP´ ITULO 5. x.. ε. βα]]| M [[q. AUTOMATAS DE PILA Definici´n. u. γ)) ∈ ∆. La prueba de este teorema se puede dividir en dos partes: . ∆. Σ. Relaci´n entre AP y LLC o Ahora vamos a establecer el resultado por el que iniciamos el estudio de los AP. sino sobre todo porque provee un m´todo de utilidad pr´ctica para a e a transformar una GLC en un AP. ε) (s. ∅. ∆. Γ. quedando simplemente como . F ) un AF. con ∆ = {((p. b. s. Prueba: Sea (K.Sea M = (K. ε). Soluci´n. ε) 5. Definici´n. w. 5. ε) (s. ∗ M Ejemplo. ε.

S → aSa 2. x)) para cada A → x ∈ R o 3. c. {q}) donde ∆ contiene las siguientes transiciones: 1. ∆. S). (q. S)) o 2. RELACION ENTRE AP Y LLC 1. ε. ε. Si M es un AP. S) (q. b) (q. entonces L(M ) es un LLC 2.Obtener un AP que acepte el LLC generado por la gram´tica con reglas: a 1. c) (q. Σ. Una transici´n ((p. V ∪ Σ. b. S) (q. A).. Una transici´n ((q.5. ε) (q. a. Sea una gram´tica G = (V. S) (q. c) (q. bSb) (q. La otra parte de la prueba (que tambi´n es un procedimiento de conversi´n) a e o puede consultarse en la referencia [21]. ε. Si L es un LLC. a) (q. (q. σ).´ 5. Entonces un AP M que acepta exactamente el a lenguaje generado por G se define como sigue: M = ({p. Σ. q}. S → c Las transiciones del AP correspondiente est´n dadas en la tabla siguiente: a 1 2 3 4 5 6 7 (p. Una transici´n ((q. ε). ε) (q. S) (q. R. entonces hay un AP M tal que L(M ) = L 153 Vamos a presentar unicamente la prueba con la parte 2. ε)) para cada σ ∈ Σ o Ejemplo. ε. S → bSb 3. ε) (q. ε) El funcionamiento de este AP ante la palabra abcba aparece en la siguiente tabla: . σ. que consideramos de mayor rele´ vancia pr´ctica. ε. aSa) (q. p. ε. (q.

Existe sin embargo un problema t´cnico: si observamos la “corrida” para la palabra abcba. En efecto. AUTOMATAS DE PILA Falta leer abcba abcba abcba bcba bcba cba cba ba a ε Pila ε S aSa Sa bSba Sba cba ba a ε Vamos a justificar intuitivamente el m´todo que acabamos de introducir para obtener un e AP equivalente a una gram´tica dada. e Por esto. e nos daremos cuenta de que no estamos aplicando las reglas en el orden descrito en el p´rrafo a anterior. por medio de las transiciones de tipo 3. “desenterrar” dicha variable hasta que aparezca en el tope de la pila. Esto o o o no es casualidad. podemos ver que las transiciones del tipo 2 (transiciones 2-4 del ejemplo). desde luego) mediante la aplicaci´n de transiciones del tipo 3. ε. de esto conclu´ ımos que el AP no utiliza los estados para “recordar” caracter´ ısticas de la entrada. lo cual puede hacerse consumiendo caracteres de la pila (y de la entrada. sino que m´s bien en la cuarta l´ a ınea de la tabla se consume un caracter a (aplicaci´n o de una transici´n del grupo 3) seguida de la aplicaci´n de una transici´n del grupo 2. y por lo tanto reposa exclusivamente en el almacenamiento de caracteres en la pila.154 Estado p q q q q q q q q q ´ CAP´ ITULO 5. ε]] ∗ M (G) [[q. se hace necesario. esto es. primero la transici´n del grupo 1. conclu´ o ımos con la siguiente proposici´n: o S ⇒∗ w ssi [[p. y que el primero de ellos desaparece del c´lculo en el primer a paso. a continuaci´n lo que hacen las reglas de o tipo 2 es realmente efectuar toda la derivaci´n dentro de la pila de la palabra de entrada. recu´rdese que los AP solo pueden accesar el caracter que se encuentra en el tope de la pila. lo que hacen es reemplazar en la pila una variable por la cadena que aparece en el lado derecho de la regla correspondiente. Una vez hecha la derivaci´n o de la palabra de entrada. Si observamos las transiciones del AP. Dado que la (´nica) transici´n de tipo 1 (transici´n 1 u o o del ejemplo) coloca el s´ ımbolo inicial en la pila. lo que ocurre es que las variables no pueden ser reemplazadas por el lado derecho de una regla si dichas variables no se encuentran en el tope de la pila. o reemplazando un lado izquierdo de una regla por su lado derecho. o De la construcci´n del AP que hemos descrito. veremos que a solamente tiene dos estados. sin haber a´n gastado un solo ıa u caracter de la entrada– podemos compararla caracter por caracter con la entrada. ε]] . p y q. antes de reemplazar una variable por la cadena del lado derecho de una regla. En efecto. w. –la cual estar´ dentro de la pila. luego las del grupo 2 y finalmente las del o grupo 3.

que representan los elementos del lenguaje –tales como las palabras claves (como “begin”. .5. Un beneficio adicional del analizador l´xico es que “filtra” caracteres in´tiles e u desde el punto de vista de la traducci´n que se quiere hacer.5.6. As´ los dem´s componentes del compilador ya no o ı. Compiladores LL El m´todo que hemos visto para obtener un AP a partir de una GLC puede ser conside erado como una manera de construir un compilador para el lenguaje correspondiente a la GLC dada. y otros elementos. De una manera muy general. los identificadores propuestos por el usuario.7). e Todav´ nos queda por probar que para todo AP hay una gram´tica equivalente. sino como una secuencia de “tokens”. un compilador –como los que se usan para traducir un lenguaje de programaci´n al lenguaje de m´quina– est´ compuesto por las partes que se o a a ilustran en la figura 5.6. como por ejemplo los o comentarios del programador. La equivalencia de los AP y de las GLC permite aplicar todas las propiedades de los LLC para resolver problemas de dise˜o de AP. Sus principales partes son: Un analizador l´xico. etc. y o o o son muchas veces construidos a partir de la definici´n de “tokens” mediante Expreo siones Regulares. a consideran la entrada como una secuencia de caracteres. “integer”. que recibe los caracteres del archivo de entrada.). n 5. los operadores (tales como “+”).5: Diagrama de un compilador donde M (G) denota al AP construido a partir de la gram´tica G por el procedimiento a reci´n descrito. El analizador l´xico puede ser considerado como un e aut´mata con salida (como los aut´matas de Moore y de Mealy de la secci´n 2. y entrega los llae mados “tokens”. COMPILADORES LL 155 ANALIZADOR LEXICO ANALIZADOR SINTACTICO GENERADOR DE CODIGO TABLA DE SIMBOLOS Figura 5. Generalmente varios caracteres corresponden a un s´lo “token”. A este ıa a respecto remitimos al lector a la referencia [10].

e 5. no se sabe si reemplazar en la pila S por ε o por aSb. El caracter le´ por adelantado nos permite en algunas ocasiones decidir adeıdo cuadamente cual de las transiciones del AP conviene aplicar. S → ε. o El principio de previsi´n consiste en que podamos “observar” un caracter de la palabra o de entrada que a´n no ha sido le´ (esto es llamado en ingl´s “lookahead”. cual de ellas va a e ser efectivamente aplicada. que toma como entrada los “tokens” y verifica que su secuena cia corresponde a la definici´n del lenguaje dada por medio de una gram´tica libre de o a contexto. Una manera de forzar a que un AP no determinista se vuelva determinista consiste en proveer un m´todo para decidir. S). como el generador de compiladores “yacc” [9]. En cambio. Para una descripci´n detallada de los compiladores y de las t´cnicas usadas para cono e struirlos. Una tabla de s´mbolos. para tener un verdadero compilador se requiere que se trate de un AP determinista. Principio de previsi´n o Desde luego. cuando hay varias transiciones aplicables.1. (q. la traza de ejecuci´n comenzar´ de la o ıa manera siguiente: n n Estado Falta leer Pila p aabb ε q aabb S En este punto. pues ser´ inaceptable que un mismo compilador diera resultados diferentes al ıa compilar varias veces un mismo programa. aSb)). o Ahora bien.. ε. v´ase la referencia [1]. al ser transiciones aplicables tanto ((q. Mediante el uso de herramientas adecuadas. que representa el lenguaje o {a b }. y las utiliza posteriormente para resolver las referencias que se hacen a ellos en el programa a traducir. AUTOMATAS DE PILA Un analizador sint´ctico.Sup´ngase la GLC con reglas S → aSb. que guiado por el analizador sint´ctico. es posible producir un analizador sint´ctico a partir de la definici´n a o del lenguaje mediante una gram´tica. que registra las definiciones de identificadores dadas por el ı usuario en su programa. si tomamos en cuenta . Ejemplo. que es la traducci´n del lenguaje fuente al lenguaje o o deseado (generalmente lenguaje ensamblador). En el caso de los compiladores esto se puede hacer mediante el llamado principio de previsi´n. (q. ε)) como ((q.156 ´ CAP´ ITULO 5.6. S). ε. La construcci´n del AP correspondiente es directa y la dejamos como ejercicio. produce realmente o a el resultado de la compilaci´n. mirar hacia u ıdo e adelante). a Un generador de c´digo. teniendo una palabra de entrada aabb.

pues la b de la entrada no podr´ cancelarse contra a la a de la pila. es evidente que no conviene reemplazar S a por ε.. nos damos cuenta de que no a conviene reemplazar en la pila S por aSb.5. Resumiendo. reemplazar en la pila S por aSb. ε.. Continuamos la ejecuci´n: o o Estado . . porque efectivamente dentro de la pila se lleva e a cabo una derivaci´n izquierda. Entonces hay que aplicar la ıa transici´n ((q.. se o 5 Ejercicio: hacer nuevamente la traza de ejecuci´n para la palabra abb. (q.. . COMPILADORES LL 157 que el siguiente caracter en la entrada ser´ a. aSb)). S). como lo que hemos visto. bb bb b b ε ε con lo cual la palabra de entrada es aceptada.. El lector puede comprobar esto en el ejemplo anterior.. S).. las columnas (a partir de la segunda) se refieren al siguiente caracter que ha de ser le´ (la “previsi´n”). Esta regla puede ser representada mediante la siguiente tabla: a aSb b ε ε S En esta tabla. La primera columna contiene la variable que se va a reemplazar en la pila por lo que indique la celda correspondiente en la tabla. La o ejecuci´n contin´a: o u Estado .. 5 A un AP aumentado con su tabla de previsi´n se le llama “compilador LL” por las siglas o en ingl´s “Left to right Leftmost derivation”. que es ((q. ε)). Entonces aplicamos la otra transici´n disponible. aabb aSb abb Sb abb aSbb bb Sbb Al ver que el siguiente caracter de entrada ser´ una b. A o un compilador LL que considera una previsi´n de un caracter. bas´ndose en la previsi´n del siguiente caracter a leer. o o . o a o fue esta: si el siguiente caracter es a. ε. habiendo una columna marcada “ε” por si en vez de haber un ıdo o caracter siguiente se encuentra el fin de la palabra... utilizando la tabla de previsi´n. pues entonces la a de entrada no podr´ ser cancelada. en este ejemplo la regla para decidir sobre la transici´n a aplicar. y si es b. (q.6. q q q q Falta leer Pila . q q q Falta leer Pila . reemplazar S por ε...

Este ejemplo en particular puede sacarse adelante haciendo una transformaci´n de la gram´tica. ε. abb Sb abb aAb bb Ab Se decide reemplazar A por b.158 ´ CAP´ ITULO 5. a reglas): 1. S). La raz´n por la que es necesario a veces hacer una previsi´n de m´s de un caracter es o o a porque para ciertas gram´ticas no es suficiente una predicci´n de un solo caracter. Hacemos el inicio de la ejecuci´n del AP correspondiente: o Estado Falta leer Pila p aabb ε q aabb S En este punto. bb bb b b ε ε La tabla de previsi´n entonces debe haber sido: o . A → Sb 3. en este caso a. la gram´tica con reglas S → aSb. A → b Con esta gram´tica ya es posible decidir entre las distintas transiciones considerando una a previsi´n de un solo caracter. As´ la gram´tica queda como (sus e u ı. (q. aSb)) y ((q. por ejemplo. un compilador de tipo LL que toma en cuenta una previsi´n o de k caracteres es LL(k). como se aprecia en la siguiente ejecuci´n del AP correspondio o ente: Estado p q q q q q q q q q Falta leer Pila Comentario aabb ε aabb S aabb aA abb A Se decide reemplazar A por Sb. reemplazando S por aSb o por ab de todos modos se produce la a de la previsi´n. que o a o consiste en a˜adir a la gram´tica una variable nueva (sea por ejemplo A). ab)). S). conocida como “factorizaci´n izquierda”. S → ab. en general. que tambi´n genera el e a e n n lenguaje {a b }. (q. que produce “lo n a que sigue despu´s del caracter com´n”. AUTOMATAS DE PILA le llama “LL(1)”. S → aA 2. por lo que dicha predicci´n no establece ninguna diferencia entre las transiciones o o ((q. Cona o sid´rese. ε.

. . para i = 1 . . aplicando la segunda y luego primera regla. R. o a cuyo argumento es una cadena de s´ ımbolos (al menos uno) que puede contener variables y constantes.. nos damos cuenta de que las cadenas que se pueden derivar a partir de S tienen que empezar con a. S). Necesitamos hacer las siguientes definiciones: e Definici´n..... y cuyo resultado es un conjunto de caracteres. .. Si hay en la gram´tica una regla a X → α donde σ ∈ f irst(α). f irst(S) = {a}. f irst(Ab) = f irst(A) por la segunda regla. Por ejemplo. A → Sb. COMPILADORES LL a aA Sb b b ε 159 S A Ahora veremos de una manera m´s sistem´tica c´mo construir la tabla de previsi´n. y f irst(Sb) = f irst(S) = f irst(aA) = f irst(a) = {a}. f irst(A) = f irst(b) ∪ f irst(Sb) por la tercera regla..Seguimos utilizando la gram´tica S → aA. α . a f irst(aA) = f irst(a) = {a}. A → Sb.5.. .Supongamos una gram´tica (V. . Ahora estamos en condiciones de dar un procedimiento para construir la tabla de previsi´n: supongamos que estamos tratando de llenar una celda de la tabla donde el rengl´n o o corresponde a la variable X y la columna a la constante σ. .. Por ello. n. para todas las reglas A → αi ... X σ . que empieza con a.6. A → b. b}. por lo que finalmente f irst(Ab) = {a. a a o o Supongamos una GLC sin producciones vac´ –lo cual pr´cticamente no representa una ıas a p´rdida de generalidad. ∪ f irst(αn ). σ ∈ Σ. .. v ∈ (V ∪ Σ)∗ . Σ. . f irst(α) = f irst(x) Si A ∈ V .... el lado derecho α se pone en dicha celda: . para la GLC con reglas S → aA. El operador f irst : (V ∪ Σ)+ → 2Σ . f irst(A) = f irst(α1 ) ∪ . Ejemplos.. A → b. entonces f irst(α) = {σ} Si α = xv. x ∈ (V ∪ Σ). porque lo unico que puede producir ´ S es aA. ε . . obtiene todos los caracteres con los que puede empezar una cadena derivable a partir de su argumento. f irst(α) se calcula sistem´ticamente a partir de las siguientes propiedades: a Si α = σ..

compiladores encuentran la derivaci´n “en reversa”.7. ver m´s adelante. qu´ regla de ıcil u o e reemplazo hay que aplicar a una variable en el tope de la pila. se vuelve demasiado dif´ adivinar. Las dos operaciones b´sicas de un compilador LR son: a Desplazamiento que consiste en pasar un caracter de la entrada al tope de la pila. ıan Cuando esto ocurre. donde σ ∈ f irst(α) y σ ∈ f irst(β). esto es.160 ´ CAP´ ITULO 5. simplemente se concluye que la tabla no se puede construir y que la gram´tica no es del tipo LL(1). a 5. los compiladores LR recorren el ´rbol de derivaci´n de abajo hacia arriba. y hay dos reglas distintas X → α y X → β. 6 6 De hecho se toma el reverso del lado derecho de una regla. reemplazando lados derechos de reglas o por lados izquierdos. por lo que se llaman tambi´n a o e compiladores ascendentes. se han propuesto otros compiladores. a . llamados LR (“Left to right Rightmost derivation”). De hecho. sino respecto al tope de la pila. hasta llegar eventualmente al s´ ımbolo inicial. que no tratan de adivinar una derivaci´n. para reemplazar por el lado izquierdo. sino que tratan de ir “reconociendo” cadenas que correspondan o al lado derecho de una regla gramatical. Reducci´n que consiste en reemplazar en el tope de la pila el lado derecho de una regla o gramatical por el lado izquierdo de la misma. Pero a´n en gram´ticas bastante e u a sencillas. los compiladores de tipo LL o son esencialmente “predictores” que tratan de llevar a cabo la derivaci´n en la pila. pero para esto se necesita primero haber pasado caracteres de la entrada a la pila. el reconocimiento del lado derecho de una regla no se hace respecto a la entrada. A → Sb. AUTOMATAS DE PILA Por ejemplo. Entonces. a Puede ocurrir que en una celda de la tabla de previsi´n queden los lados derechos de o varias reglas. Compiladores LR(0) Como se puede apreciar en toda la secci´n precedente. si la celda corresponde a la columna de la constante σ y al rengl´n o de la variable X. entonces tanto α como β tendr´ derecho a estar en esa celda de la tabla. As´ estos ı. siempre o reemplazando las variables por lo que ´stas deban producir. A → b: a S A a aA Sb b b ε Esta tabla es id´ntica a la que hab´ e ıamos supuesto anteriormente para la misma gram´tica. Por esto. a´n con la ayuda de la previsi´n. con este procedimiento se obtiene la siguiente tabla de previsi´n para la o gram´tica con reglas S → aA.

Estas transiciones permiten hacer la acci´n de desplazar. t´cnicamente e decimos que el reverso del lado derecho de una regla coincide con el tope de la pila. A → Sb. La idea de c´mo combinar los o o desplazamientos con las reducciones se comprende en el siguiente ejemplo: Supongamos la gram´tica para el lenguaje {an bn } con las reglas S → aA. f (final). pero “volteado” de izquierda a derecha. o Hay transiciones ((p. en el quinto rengl´n de la tabla. S): Hay 4 estados: i (inicial). esto es. (p. #)) ∈ ∆. (p. ε). la dificultad est´ en encontrar las secuencias de desplazaa mientos y reducciones que llevan a la situaci´n final deseada. Dada la palabra a aabb. A → b. en otros ejemplos es mucho m´s dif´ determinar qu´ acci´n llevar a ıcil e o a cabo.5. se tendr´ una traza de ejecuci´n como sigue: ıa o Falta leer Pila aabb ε a abb bb aa b baa Aaa b b Sa ε bSa Aa ε ε S Acci´n o Desplazar Desplazar Desplazar Reducir por Reducir por Desplazar Reducir por Reducir por Exito A→b S → aA A → Sb S → aA Obs´rverse. Estas transiciones efect´an u las reducciones. Hay una transici´n ((i. Σ.7. p y q. COMPILADORES LR(0) 161 Estas operaciones se aplican. en un orden “adecuado”. ε. αR ). ε). Esto se refleja en las definiciones que damos en seguida. existe un procedimiento para construir una tabla de previsi´n para compiladores o LR(1). R. hasta que en la pila quede s´lo o el s´ ımbolo inicial. donde αR es el reverso de α. α “volteado” de izquierda a derecha. e o a mientras que el lado derecho de la regla que corresponde es aA. (p. Esta transici´n coloca un “marcador” # en o o el fondo de la pila. para luego reconocer cuando la pila se ha vaciado. . que en el tope de la pila est´ la cadena Aa. Sin embargo. Ahora formalizaremos el procedimiento para construir el AP de tipo LR a partir de una GLC (V. Desde luego. ε. σ. A)) ∈ ∆ para cada regla A → α ∈ R. Vemos as´ que lo que se saca ı de la pila es el lado derecho de la regla. En este ejemplo en particular es relativamente f´cil discernir cuando hacer cada una de las a acciones. Se tienen transiciones ((p. σ)) ∈ ∆ para cada σ ∈ Σ. que puede ser consultado en la referencia [1].

e e/ /e e/bS/ e/#/e 5. b) Representar formalmente. S → aA. Σ. Ejercicios 1. [()]. A → b. (q. F ) que acepta el lenguaje de par´ntesis o e bien formados. Γ. #). Por ejemplo. ∆. . “)”. AUTOMATAS DE PILA /e/ /e/ e/e/# e/ Aa/ e/ / Figura 5. Σ.6: AP de tipo LR Tenemos una transici´n ((p. ()[]. s y F . e a o LR(1). Y a´n en este caso a u puede haber varias reducciones posibles.6 se representa el aut´mata o correspondiente a la GLC que hemos estado considerando.6 de la palabra aabb. ∆. [](). . ε. En el caso general. S). a o “Por leer” y “pila”. pues al ser a o ´ste no determinista. Por ejemplo. como en los ejemplos dados. (f. es decir: L(M ) = {e. en la figura 5. Sea un aut´mata de pila M = (K. las dificultades pueden estar en el uso del AP. “]”. Finalmente hay una transici´n ((q. . a) Dibujar el diagrama del AP que acepta el lenguaje descrito. (()). Este procedimiento es directo. c) Dar un c´lculo producido por la palabra err´nea “([]]”. (). pero no funciona en otros casos. con las columnas “Estado”.8. etc. en que no se sepa e si desplazar un caracter m´s a la pila o bien reducir por alguna regla. Una posible soluci´n a estos conflictos puede ser adoptar una pol´ o ıtica en que –por ejemplo– la reducci´n tenga preferencia sobre el desplazamiento.162 ´ CAP´ ITULO 5. LR(2). s. []. M´s que en la construcci´n del AP. esta transici´n reconoce cuando se o o lleg´ al s´ o ımbolo inicial. ε)) ∈ ∆. ([]). incluyendo los par´ntesis redondos “(”. ε. dando K. que incluyen previsi´n de caracteres (esto es. . Esto funciona adecuadao mente en el ejemplo reci´n presentado. as´ como los par´ntesis e ı e cuadrados “[”.}. Γ. esta transici´n se asegura de que o o se haya vaciado la pila antes de aceptar la palabra. en ciertas situaciones puede presentarse un conflicto. dichas t´cnicas pueden consultarse en la referencia [1]. esto es. ε)) ∈ ∆.).A → Sb. [[]]. e es necesario usar t´cnicas m´s complicadas. sugerimos hacer la traza de ejecuci´n o en el AP de la figura 5.

pues permite aplicar un dise˜o o a a n modular. o Ayuda: al despejar en la ecuaci´n la j el problema parece ser m´s f´cil.. Pruebe la correcci´n de la GLC por inducci´n sobre o o la longitud de la derivaci´n. Proponga un aut´mata de pila para el lenguaje: o {ai bj ck | i = j − k} 7 163 3.S → SS 4.S → bSa 3. b) Construir otro AP. en forma de una tabla. usando una pila que almacene el exceso de a’s o de b’s (basta con dibujar el diagrama de estados).8. para un AP de tipo LR.5..S → aSb 2. b) Suponga la siguiente GLC (sus reglas) que genera dicho lenguaje: 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) <AD> → <AD> → <AD> → <AD> → <BD> → <BD> → <BD> → <BC> → <BC> → <AC> → <AC> → <AC> → a <AD> d b <BD> d e a <AC> c b <BD> d b <BC> c e b <BC> c e a <AC> c b <BC> c e El s´ ımbolo inicial es <AD>. d ) Para cada uno de los incisos anteriores.. Considere el lenguaje {an bm cp dq | n + m = p + q} a) Proponga un AP que lo acepte. “por leer”. que es generado por la siguiente gram´tica: a 1. EJERCICIOS 2. y “acci´n aplicada”. “pila”. o 4. c) Lo mismo que el anterior. convirtiendo la GLC dada a AP de tipo LL. usando las columnas “estado”. Considere el lenguaje en {a. hacer una traza de ejecuci´n para la o palabra “abbaba”.. 7 .S → ε a) Dise˜ar directamente (sin convertir a partir de una gram´tica) un AP que acepte n a dicho lenguaje. b}∗ en que las palabras tienen la misma cantidad de a’s que de b’s.

AUTOMATAS DE PILA c) Obtenga un AP de tipo LL(1) a partir de esta gram´tica.2. Σ2 . ∆2 . calculando primero el “f irst” de cada vario able de la gram´tica. b) Elimine de la gram´tica las producciones vac´ y las in´tiles. o 6. “por leer”. Para el AP de la figura 5. que podr´ o ıamos llamar “aut´matas o de fila”. utilizando la traza de ejecuci´n para la palabra de entrada abbbcc. y la palabra de entrada aabb: a) Construir una traza de ejecuci´n. delineado en la secci´n 5. en los que en vez de la pila. a f ) Obtenga un AP de tipo LR para la gram´tica. Completar y detallar formalmente el procedimiento de combinaci´n modular de AP o para la concatentaci´n de lenguajes. Σ1 . y en caso de conflicto reduce-reduce preferir la transici´n que reduzca m´s s´ o a ımbolos? 7.164 ´ CAP´ ITULO 5. o o 8. obtener una traza de ejecuci´n. se tiene una fila que se accesa en orden PEPS (“FIFO”). 5. . a g) Indique si hay o no conflictos “shift-reduce” o “reduce-reduce” en el AP del inciso anterior. s1 . y o “acci´n”. que se accesa en orden UEPS (“LIFO”). en forma de tabla o con columnas “estado”. e) Obtenga la tabla de previsi´n LL(1). e o o b) Pruebe que el lenguaje {an bn } es aceptado por alg´n aut´mata de fila. a) D´ una definici´n formal de los aut´matas de fila. F2 ). para un AP de tipo LR(0).6. con columnas “estado”. para la palabra de entrada o “aaacdd”. e indicar si es de desplazamiento contra reducci´n o bien de una reducci´n contra otra o o reducci´n. e) Para los dos incisos anteriores. Γ2 . Considere el lenguaje L = {an bn+m cm } a) Proponga una GLC que genere L. “pila” y “acci´n”. “falta leer”. “pila”. Considere una variante de los aut´matas pushdown. 9. Γ1 . o a d ) Obtenga el AP correspondiente. a d ) Lo mismo. ∆1 .1. Formalice el procedimiento para obtener un AP que acepte la uni´n de los lenguajes o aceptados respectivamente por (K1 . del tipo LL. ¿Es o posible escribiendo resolver los conflictos con los criterios de preferir “reduce” a “shift”. s2 . para los conflictos shift-reduce. o b) Localizar los renglones de la tabla anterior donde se presenta un conflicto. u o c) ¿Piensa que los aut´matas de pila y de fila son equivalentes? Justifique de manera o informal. si las hay a ıas u c) Pruebe por inducci´n que la gram´tica es correcta. F1 ) y (K2 .

((q0 . . . ()(). o o (q1 . σn es el contenido de la pila. con e n relaci´n de transici´n como sigue: ∆ = {((q0 . (((()))). e)). ((())). b. o en los que para aceptar una palabra basta con que al final de ´sta el aut´mata se e o encuentre en un estado final.} c) {(). c) Pruebe su m´todo con el APn de pila de tama˜o 2 (caben dos caracteres). (q1 . Proponga m´quinas lo menos poderosas que sea posible para que acepten los siguientes a lenguajes: a) {().5. o b) Pruebe (constructivamente) que los APn son equivalentes a los AF. . los APn. la pila infinita de los aut´matas de pila puede ser limitada a un cierto tama˜o fijo. . a)). en que la pila tiene un tama˜o fijo n. (()). [< ()(<>) > ()]. . a) D´ una definici´n formal de los APEF. donde q es un estado del APn y σ1 σ2 . (q0 . un estado del AF). . n a) Proponga una definici´n de APn y de palabra aceptada por un APn. []. <>. . ([]). sin necesidad de que la pila est´ vac´ e ıa. . Las m´quinas reales tienen siempre l´ a ımites a su capacidad de almacenamiento. . b) Proponga un APEF que acepte el lenguaje {an bn }. e))}. As´ ı. . Considere una variante de los aut´matas de pila. los AP “por estado final” (APEF). o n Suponga una variante de los AP.} b) {(). donde q0 es inicial y q1 es final. . EJERCICIOS 165 10. incluyendo la definici´n de lenguaje acepe o o tado. . ()()(). (q1 . . (Ayuda: se puede asociar a cada par (q. b. a). a. σ1 σ2 . σn ). 11. e). . a).8.} 12.

AUTOMATAS DE PILA .166 ´ CAP´ ITULO 5.

Parte III M´quinas de Turing y sus lenguajes a 167 .

.

La cinta es de longitud infinita hacia la derecha.Cap´ ıtulo 6 M´quinas de Turing a As´ como en secciones anteriores vimos c´mo al a˜adir al aut´mata finito b´sico una ı o n o a pila de almacenamiento auxiliar.1(b)) tiene. a Aunque estas ideas –y otras a´n m´s fantasiosas– pueden ser interesantes. A˜adir otra pila. Turing propuso [24] en los a˜os 30 un modelo de m´quina abstracta.5). que result´ ser de una gran simplicidad y poder´ a la o o o ıo vez. como los aut´matas que a o hemos visto antes. un control finito. cabr´ ahora a ıa preguntarnos qu´ es lo que habr´ que a˜adir a un aut´mata de pila para que pudiera e ıa n o analizar lenguajes como {an bn cn }. o o a A. Permitir la escritura en la cinta.1. Poner varias cabezas lectoras de la entrada. como una n a extensi´n de los aut´matas finitos. vamos a enfocar u a nuestra atenci´n a una propuesta en particular que ha tenido un gran impacto en el desarrollo o te´rico de la computaci´n: la M´quina de Turing. ver figura 6. Funcionamiento de la m´quina de Turing a La m´quina de Turing (abreviado MT. La m´quina de Turing es particularmente importante porque es la m´s poderosa de a a todas las m´quinas abstractas conocidas (esto ultimo ser´ discutido en la secci´n 6. adem´s de la lectura de caracteres.1(a)). 3. Partiendo del AP b´sico (figura 6. llen´ndose los espacios con a 169 . una cabeza lectora y una cinta donde puede haber caracteres. a ´ a o 6. y donde eventualmente viene la palabra de entrada. algunas ideas a podr´ ser: ıan 1. n 2. aumentando con ello su poder de c´lculo. hacia donde se extiende indefinidamente.

Efect´a una transici´n de estado u o 3. MAQUINAS DE TURING b a a b a b b a a b a (a) Aut´mata de pila o (b) M´quina de Turing a Figura 6. en la MT la cabeza se mueve bidireccionalmente o a (izquierda y derecha).1(b). siendo el o o primer cuadro un caracter blanco. Lee un caracter en la cinta 2. Adem´s. pero iniciando a partir de la segunda posici´n de la cinta. Realiza una acci´n en la cinta o Las acciones que puede ejecutar en la cinta la MT pueden ser: Escribe un s´ ımbolo en la cinta. inicialmente toda la parte de la cinta a la derecha de la palabra de entrada est´ llena del caracter blanco ( ). por lo que hay un cuadro de la cinta que es el extremo izquierdo. como en la figura 6. a   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡ q3     ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡ q2   ¡   ¡   ¡     ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡ q1   ¡   ¡     ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡ q0     ¡   ¡   ¡ ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   a a .170 ´ CAP´ ITULO 6. se hace una o la otra. Como la cinta es infinita. pero no ambas a la vez. por lo que puede pasar repetidas veces sobre un mismo segmento de la cinta.1: el caracter blanco (que representaremos con “ ”). La palabra de entrada en la MT est´ escrita inicialmente en la cinta. o Mueve la cabeza a la izquierda o a la derecha Estas dos acciones son excluyentes. La operaci´n de la MT consta de los siguientes pasos: o 1. es decir. En la MT la cabeza lectora es de lectura y escritura. por lo que la cinta puede ser modificada en curso de ejecuci´n. como es habitual a en nuestros aut´matas. La cinta no es infinita hacia la izquierda.

o o igual se pod´ haber puesto “a/a” o “a/R” como etiqueta de la flecha.2.Dise˜ar (el control finito de) una MT que acepte las palabras en {a. Decimos que en la MT se llega al “final de un c´lculo” cuando se alcanza un estado a especial llamado halt en el control finito. 1 Al llegar al halt. como en el siguiente n ejemplo. b} que n comiencen con a. que en ingl´s significa detener. indicada por el caracter L (left. 2 Al dise˜ar una MT que acepte un cierto lenguaje. As´ podemos usar la notaci´n gr´fica utilizada para aquellos aut´matas para o ı.. ver o secci´n 2. y se acepta la palabra de entrada. se detiene la operaci´n de la MT. Ejemplo. Con estos recursos es suficiente para dise˜ar algunas MT. cuando trazamos una flecha que va de un estado p a un estado q con etiqueta σ/L. y en caso contrario se hace que la MT caiga en un ciclo infinito.7). a 2 M´s adelante daremos definiciones formales. FUNCIONAMIENTO DE LA MAQUINA DE TURING b/b /R 171 q0 q1 a/R h Figura 6. En particular. en realidad dise˜amos el aut´mata n n o finito que controla la cabeza y la cinta. El lenguaje aceptado por una MT es simplemente el conjunto de palabras aceptadas por ella. similarmente cuando se tiene una e flecha con σ/R el movimiento es a la derecha. quiere decir que cuando la entrada al control finito (esto es. a 1 .1. donde ξ es un caracter. En cierto sentido el halt ser´ entonces el ı. como resultado de una transici´n. en ingl´s). al iniciar la operaci´n de la MT. el cual es un aut´mata con salida (de Mealy. el cual es el cuadro m´s a la izquierda a de la cinta. leyendo y escribiendo “b”. ıa No traduciremos el t´rmino “halt”. Podemos asegurarnos de ello haciendo que la MT caiga en un ciclo infinito (ver ejemplos adelante). N´tese que la acci´n inmediatamente antes de caer en el “halt” es irrelevante.´ 6. Cuando la flecha tiene la etiqueta σ/ξ. Representaremos o o al halt por “h”. o a o indicar su funcionamiento. porque es tradicional usar exactamente e e este nombre en m´quinas de Turing. la o palabra se acepta. s´lo que adem´s detiene la ejecuci´n. La soluci´n se muestra en la figura 6. entonces la acci´n al recibir el caracter σ consiste en escribir el caracter ξ o en la cinta. la cabeza lectora hace un movimiento a ıdo la izquierda. la cabeza lectora est´ posicionada en el o o a caracter blanco a la izquierda de la palabra de entrada. ´ o a o Cuando queremos que una palabra no sea aceptada. Si la primera letra es una “a”. desde luego debemos evitar que la MT llegue al halt. el caracter le´ por la cabeza de la MT) es σ. As´ en la MT no hay estados finales. ıa unico estado final.2: MT que acepta palabras que empiezan con a Por definici´n.

pues para a ver cual es la ultima letra. para la palabra aabbcc. Es util. Ahora construiremos una MT que lo acepte. pero que pueden ser aceptados por una m´quina de Turing.. Proponemos el lenguaje an bn cn .3. La posici´n de la cabeza se indica por el o s´ ımbolo “ ”. en caso contrario se llega a halt. que se sabe que no a es LLC.. MAQUINAS DE TURING b/R b/b q0 /R q1 /L q2 a/a h a/R Figura 6. Para eso se puede detallar el funcionamiento con alg´n ejemplo representativo. ´ o Ejemplo. Cuando ya no encontremos ninguna a.Probar que hay lenguajes que no son libres de contexto. . hay que ir hasta el blanco a la derecha de la palabra. b o c en alguna pasada. tener una idea muy clara de c´mo se quiere ´ n o que funcione. antes de emprender el dise˜o de una MT. descontando en cada una de a ellas una a. luego regresar ´ a la ultima letra y verificar si es una “a”. si queda alguna de las otras dos letras la palabra no es aceptada. La estrategia para el funcionamiento de dicha MT consistir´ en ir haciendo “pasadas” por la palabra. una b y una c. u como en la tabla siguiente. b} que terminen con a. Aunque n este ejemplo parece bastante similar al precedente. Una soluci´n se muestra en la figura 6.Dise˜ar una MT que acepte las palabras en {a.172 ´ CAP´ ITULO 6.3: MT que acepta palabras que terminan con a Ejemplo. en realidad es m´s complicado. para descontar esos caracteres simplemente los reemplazaremos por un caracter “∗”.

esto es. o 6. b b b b b b c c c c c c c c c c c c 173 a . o o ∈ Σ. a e ıa Una MT es un qu´ ıntuplo (K. / ∈ΓyΣ⊆Γ . ∗ ∗ . ahora procedemos a su formalizaci´n. FORMALIZACION DE LA MT a a ∗ ∗ ∗ ∗ .... a su modelizaci´n o o matem´tica en t´rminos de la teor´ de conjuntos. Σ.. donde s ∈ K es el estado inicial. ∗ ∗ .2. a a a a a a b b b b b ∗ . δ.. Σ es el alfabeto de entrada.. R}) es la funci´n de transici´n.. s) donde: K es un conjunto de estados tal que h ∈ K.2. ∗ ... b ∗ .....´ 6.. donde Γ es el alfabeto de la cinta..... ∗ . Formalizaci´n de la MT o Habiendo en la secci´n precedente hecho un recuento intuitivo de las caracter´ o ısticas fundamentales de la MT. lo cual es relativamente simple y n que dejamos como ejercicio (ver secci´n de ejercicios). c a a c c Lo que falta por hacer es dise˜ar los estados de la MT. δ : (K − {h} × Γ) → K × (Γ ∪ {L. Γ. b ∗ b ∗ .

sin e a embargo. (s´lo est´ el estado inicial. con la cabeza lectora sobre un caracter a. si se regresa al estado inicial despu´s de haber ejecutado otras transiciones. esto quiere decir que estando la MT en el estado q ı. y similarmente R para la derecha. R). entonces debe haber flechas de salida de q con a. b}. pero puede entenderse o o o de la siguiente manera: la funci´n de transici´n del control finito debe considerar como o o entradas el estado actual. y K = {q. de q con b y tambi´n de q con . b). a) = (p. N´tese que. simplemente se indica el caracter que se escribe. donde b ∈ Γ. a partir del estado inicial podemos suponer. Desde luego. la cabeza a de la MT har´ un movimiento a la izquierda adem´s de la transici´n de estado. δ(s. que puede ser una escritura o un movimiento a la izquierda o o a la derecha.174 ´ CAP´ ITULO 6.2. δ(s. que es elemento de Γ. por lo que no tiene caso dibujar flechas del a estado inicial con a. sin afectar esto el funcionamiento de la a MT. el cual es un elemento de Γ. Configuraci´n o Como en otros aut´matas que hemos visto en secciones anteriores. a) = (p. Esto quiere decir que cada estado debe tener una cantidad o de flechas de salida igual a |Γ|. pues no debe tener ninguna flecha de salida. en principio debe tenerse por cada estado y o o cada caracter una transici´n. L). Luego. y adicionalmente escribir´ el caracter b. la funci´n de transici´n enviar´ al aut´mata a un o o a o estado p. y se detiene (hace halt) en cuanto llega a un blanco. En el caso de la escritura. Por ejemplo. h}. Γ = {a. s´ ser´ posible e ı a encontrar otros caracteres. }. para que no haya confusi´n se requiere que ni L ni R est´n en Γ. en las MT la configuo raci´n resume la situaci´n en que se encuentra la MT en cualquier punto intermedio de un o o c´lculo. o e el resultado de la funci´n de transici´n debe ser un elemento de K × (Γ ∪ {L.1. el resultado de la funci´n de transici´n debe incluir o o o el siguiente estado. Similarmente si δ(q. sin arriesgarnos. o a N´tese que h es una excepci´n. que es un elemento de K –pero que no puede ser h– as´ como el ı caracter le´ en la cinta. Por ejemplo. suponiendo en consecuencia que las dem´s flechas pueden tener una salida cualquiera. ) = (h. Por eso a la izquierda de la flecha aparece ıdo la expresi´n δ : (K − {h} × Γ). que no es posible encontrar m´s que el caracter blanco. a) = (s. que es elemento de K. Σ = {a}. de manera tal que con s´lo las informaciones contenidas en la configuraci´n podamos a o o reconstruir dicha situaci´n y continuar el c´lculo. una gran cantidad de flechas tiende a hacer menos comprensible un diagrama. 4 6. La acci´n “mover cabeza a la izquierda” se representa por el s´ o ımbolo L. por lo que solamente incluiremos las flechas “necesarias”. con b. 4 3 . puesto que δ es una funci´n. 3 En la pr´ctica. en vez de usar un s´ ımbolo o comando especial. etc. a. R). MAQUINAS DE TURING La expresi´n de la funci´n de transici´n parece algo complicada. sea la MT siguiente: K = {s. si Γ = { . o o As´ si δ(q. adem´s del o a a “halt”). Resumiendo. Otro resultado de la funci´n de transici´n es la o o acci´n a ejecutar por la MT. Puede verse por la funci´n de o transici´n que esta MT ejecuta un ciclo repetitivo en que mueve la cabeza hacia la derecha o en tanto siga leyendo un caracter a. h}. R}). a a o Por ejemplo. o o Desde luego.

hasta antes de la sucesi´n de o blancos que se extiende indefinidamente a la derecha. El cuadro en la posici´n de la cabeza lectora. o La parte de la cinta a la derecha de la cabeza lectora. desde luego. adoptaremos la soluci´n consistente en dividir la cinta o dentro de la configuraci´n en tres pedazos: o La parte de la cinta a la izquierda de la cabeza. ıa t´cnico: esta expresi´n no incluye la cadena vac´ la cual puede producirse cuando todos e o ıa.2. no podemos representarla toda por una cadena de caracteres. que siempre ser´ de tama˜o a n finito. Por ejemplo. Recordemos o o la soluci´n que hab´ o ıamos adoptado para los AF y AP. en la figura 6. La soluci´n es simplemente a˜adir este o n . por lo que los caracteres a la izquierda de la cabeza podr´ eventualmente ser le´ ıan ıdos de nuevo o hasta modificados. o o No hay problema con el estado en que se encuentra la MT. que es directamente un elemento de K.4(a) dicha parte de la cinta es “ a o ´ b b a b”. El siguiente problema es c´mo caracterizar la posici´n de la cabeza lectora. Otra soluci´n ser´ o ıa representar la posici´n por un n´mero entero que indicara la posici´n actual con respecto o u o a alguna referencia. que es un elemento de Γ∗ . Vamos a tomar la soluci´n de tomar en cuenta unicamente la parte de la cinta hasta o ´ antes de donde empieza la sucesi´n infinita de blancos. existe la dificultad de que como es infinita. hay un problema ı. Sin embargo. El problema es que esta soluci´n no funciona. pues esta ultima realmente no contiene o ´ ninguna informaci´n util. Sin embargo. FORMALIZACION DE LA MT 175 Las informaciones necesarias para resumir la situaci´n de una MT en medio de un c´lculo o a son: Estado en que se encuentra la MT Contenido de la cinta Posici´n de la cabeza o Ahora el problema es c´mo representar formalmente cada uno de los tres componentes de o la configuraci´n. tirando a la basura la parte a la izquierda de la cabeza lectora. Respecto al contenido de la cinta. en que represent´bamos de una vez a el contenido de la cinta y la posici´n de la cabeza limit´ndose a representar con una cadena o a lo que falta por leer de la palabra –esto es. un elemento de Γ∗ . pero podemos hacer una mejor caracterizaci´n de ella considerando que el ultimo caracter de o ´ ∗ ella no es blanco. tratando de hacerlo en la forma m´s similar posible a como representamos o a la configuraci´n para otros tipos de aut´matas. La parte a la derecha de la cabeza lectora es. As´ ser´ un elemento de Γ (Γ − { }).´ 6. que es un elemento de Γ. los caracteres a la derecha de la cabeza son blancos. pues en el caso de las MT o hay movimiento de la cabeza a la izquierda.

en las MT vamos a indicar las configuraciones encerradas entre dobles corchetes.. aa. bb]]. por lo que finalmente la parte a la derecha de la cabeza lectora es un elemento de Γ∗ (Γ − { }) ∪ {ε}.. Para simplificar a´n u m´s la notaci´n.4: Contenido de la cinta en una configuraci´n o Σ∗ Σ a a b Σ∗(Σ − { }) U {ε} b a b a .5: Configuraci´n en MT o caso..4(a) se representa con las cadenas de caracteres a . respectivamente).. la configuraci´n es un elemento de: o K × Γ∗ × Γ × (Γ∗ (Γ − { }) ∪ {ε} (Ver figura 6. MAQUINAS DE TURING a b b a b .4(b) ser´ representada por ε. bajo la cabeza una “a”..176 ´ CAP´ ITULO 6. y a su derecha –antes de la secuencia infinita de blancos– una cadena “bb”. a. como en [[q.5) Como en los AF y los AP. que es equivalente al ejemplo que acabamos de dar. la cinta de la figura 6. .. Finalmente. que indica que la MT en cuesti´n se encuentra en el o estado q. (a) (b) Figura 6. cuadro bajo la cabeza. a o o as´ en vez de tener cuatro componentes la configuraci´n tendr´ unicamente dos. K Figura 6. b y bab (parte izquierda. como por ı o a´ ejemplo en [[q. aaabb]]. y ıa b a b. podemos indicar por un caracter subrayado la posici´n de la cabeza lectora. y parte derecha. mientras que la cinta de la figura 6. habiendo a la izquierda de la cabeza una cadena “aa”. b a b . Por ejemplo.

bab ]] Si δ(q1 . a) = (q. bab]] [[q2 . L) Caso de movimiento a la derecha. w. a. [[q1 . a. wd. b. parte derecha vac´ ıa: [[p. d. bab]] [[q2 . b). a) = (q2 . a) = (q2 . donde a = o bien u = ε [[q. aabab]] [[q2 .La relaci´n en C × C –donde C es el conjunto de configuraciones– se define o o por casos. R) Ejemplos: Si δ(q1 .. ε]] . a) = (q. R) Caso de movimiento a la derecha. [[q1 . ε]] [[q. R). Relaci´n entre configuraciones o C2 ” que nos indica que la MT puede pasar Vamos a definir una relaci´n binaria “C1 o de la configuraci´n C1 a la configuraci´n C2 .´ 6. wa. parte derecha vac´ ıa: [[p. u]] ssi δ(p. wa. . bbb]] Si δ(q1 . w. FORMALIZACION DE LA MT 177 6. ab ]] [[q. o o Definici´n. . ε]] ssi δ(p. a) = (q. d. d. de la siguiente manera: Caso escritura: [[p. L). a. bab]] [[q1 . a. a) = (q2 . a) = (q. donde b ∈ Γ Caso de movimiento a la izquierda. L).2.2. wd. w. abb]] [[q2 . w. b). aabab]] [[q1 . ε]] ssi δ(p.2. bba]] [[q2 . abb]] [[q1 . [[q1 . u]] Caso de movimiento a la izquierda. w. u]] ssi δ(p. au]] [[q. u]] [[q. parte derecha no vac´ ıa: [[p. du]] ssi δ(p. w. parte derecha no vac´ ıa: [[p. ) = (q. ab ]] [[q2 .

sea la MT siguiente (dada ya como ejemplo anteriormente): K = {s}.3.5. a. α. a y se trate de hacer un movimiento a la izquierda. . aa]] se presenta el c´lculo o a siguiente: [[s.2. Como se ve.2. 6. a. no existe una configuraci´n C tal que [[p. a. L). a Formalmente.178 ´ CAP´ ITULO 6. el unico criterio para que la palabra de entrada w se ´ acepte es que se llegue a halt en alg´n momento. Cn de configuraciones tal que Ci Ci+1 . a. u]] C. aaaa]] [[s. o ∗ ∗ denotada por . . Ante la configuraci´n [[s. a) = (q. si tenemos una configuraci´n de la forma [[p. quedando Ci Cj . se produce un error llamado “configuraci´n o colgada”. ε. ∈ Γ. es aceptada por una MT M si o [[s. }. de modo que si no queremos que una palabra sea aceptada.4. Un c´lculo puede a a ser visto en t´rminos computacionales como una “traza de ejecuci´n”. δ(s. aaaa ]] [[h. Palabra aceptada Con las definiciones dadas ahora estamos en condiciones de definir formalmente las nociones de palabra aceptada y lenguaje aceptado: Definici´n. aaaa]] [[s. ).Una palabra w ∈ Σ∗ . Por ejemplo. MAQUINAS DE TURING 6. C2 . o En general vamos a evitar el uso intencional de las configuraciones colgadas. Configuraci´n “colgada” o En el caso de que la cabeza lectora se encuentre en el cuadro de la cinta m´s a la izquierda. a) = (s. 6. ε. independientemente del contenido final u . u]] y la transici´n es o o δ(p. ε. β]] donde a. aaaa ]] Se puede llegar de una configuraci´n Ci a Cj . . para i ≤ j en cero o varios pasos. y desde luego no podr´ ser aceptada la palabra de entrada.2.. β ∈ Γ. R). esto o se indica en forma compacta utilizando la cerradura reflexiva y transitiva de la relaci´n . . aaaa]] [[s. Σ = {a. C´lculos en MT a Igual que en otros tipos de aut´matas que hemos visto anteriormente. . a. que nos describe de una e o manera muy exacta la forma en que una MT responde ante una entrada en particular. ) = (h. α. δ(s. w]] ∗ [[h. en las MT un o c´lculo es una secuencia C1 . se har´ que la MT se cicle en vez de a “colgarse”. que tiene como consecuencia que la MT no pueda seguir funcionando.

. as´ reverse(aabb) = bbaa. como en a bbaa .. .3. Ejemplo. la cabeza est´ posicionada en el caracter a la derecha a de la palabra. . las MT tambi´n pueden ser utilizadas para calcular resultados u operaciones a partir de la entrada. la cinta al final debe quedar como: bbaa . Decimos de que un lenguaje L es Turing-aceptable si hay alguna MT que da halt para toda entrada w ∈ L. La cabeza no est´ ubicada exactamente en el cuadro a la derecha del resultado.. . . donde el caracter subrayado indica la posici´n de la cabeza. La cabeza estar´ posicionada en el primer blanco a la derecha de la palabra de salida. o es de la forma aabb . podr´ ıamos verlo como un resultado calculado. desgraciadamente): Aparece alg´n espacio blanco dentro del resultado. .. el cual es visto como “basura”. como a en la cinta bbaa .Supongamos la funci´n reverse. que invierte el orden en que aparecen las letras o en la palabra de entrada. Para poder interpretar sin ambig¨edad el contenido final de la u cinta como resultado. u La palabra de salida comienza en el segundo caracter de la cinta. salvo que en la primera. . Es muy importante ce˜irse estrictamente a este formato. 6. . la MT del ultimo ejemplo acepta ´ cualquier palabra de entrada. a Se puede apreciar que el formato para la palabra de salida es muy similar al de la palabra de entrada. u El resultado no est´ posicionado empezando en el segundo cuadro de la cinta. y no caer en ninguno de los n siguientes errores (frecuentes.´ 6. caracterizado por los siguientes puntos: La palabra de salida no debe contener ning´n caracter blanco ( ).3. MT PARA CALCULOS DE FUNCIONES 179 de la cinta. .. Por ejemplo. e En vez de considerar como “basura” el contenido de la cinta al llegar al halt. Si inicialmente el contenido de la cinta ı. . . como en la cinta bbaa ab . MT para c´lculos de funciones a Hasta el momento hemos visto las MT como analizadoras de palabras cuyo fin es determinar si la palabra de entrada pertenece o no al lenguaje aceptado.. Sin embargo. vamos a requerir que cumpla con un formato estricto. teniendo a su izquierda un blanco y a su derecha una infinidad de blancos. .

el resultado en este caso ser´ la cadena “11”. A esta forma de resta sin resultados negativos se le llama a veces “monus” en vez de “menos”. a u esto es. .Construir una m´quina de Turing que reste dos n´meros naturales en unario. Si hay una MT que calcula una funci´n f . Por ejemplo. En caso de que el sustraendo sea mayor que el minuendo. la resta de 5 − 3 quedar´ indicada por la cadena “11111 − 111”. o . Cuando se termine el sustraendo. como en la cinta bbaa Para precisar estas nociones. decimos que f es Turing-calculable. desde ıa ıa luego.. La estrategia para construir esta MT ser´ ir “descontando” cada 1 del minuendo contra ıa otro 1 del sustraendo. las funciones en matem´ticas sirven precisamente para describir la relaci´n a o entre un resultado y una entrada. Para evitar tener que recorrer el residuo. y) = x − y. como las MT reciben un solo argumento. MAQUINAS DE TURING Aparece “basura” (caracteres no blancos) en la cinta. . utilizamos la noci´n formal de configuraci´n : Una MT o o ∗ ∗ calcula un resultado u ∈ Σ a partir de una entrada w ∈ Σ si: [[s. tendr´ ıamos una secuencia de configuraciones de la cinta como las siguientes (la ultima l´ ´ ınea indica la configuraci´n en la que debe dar halt). w]] ∗ [[h. . M calcula un resultado u tal que f (w) = u. lo que ser´ el argumento de entrada. ε. ε]] Como se sabe. Podemos relacionar esta noci´n con la definici´n anterior o o de la manera siguiente: Una MT M calcula una funci´n f : Σ∗ → Σ∗ si para toda entrada o w. Resumiendo.180 ´ CAP´ ITULO 6. a la derecha o izquierda del b . La cabeza lectora al final debe estar ıa posicionada en el blanco a la derecha del residuo. el resultado es cero. resultado. . u. Desde luego.. descontamos caracteres del minuendo de derecha a izquierda. o Ejemplo. para realizar una funci´n de dos argumentos como la resta en realidad se recibe un solo argumento que o contiene un s´ ımbolo para separar dos partes de la entrada. se borran los caracteres in´tiles de manera que queden s´lo los restos u o del minuendo. reemplazando ambos por un caracter arbitrario –sea “∗”. f (x.

´ 6. 0}. . [[h...... ∗ .. .... 1 1 ∗ 1 − ∗ ∗ − ∗ Dejamos como ejercicio hacer el diagrama de estados del control finito de esta MT (ver secci´n de ejercicios). y [[s... − 1 − − 1 1 . la MT sirve para decidir si la entrada tiene una propiedad P o no la tiene.4. ıa La MT correspondiente debe generar los c´lculos siguientes: a ∗ [[s. ε. y para bab ser´ 0. 1 1 1 . 1 1 1 1 1 .... 0. b} es de longitud n par aparece en la figura 6. estamos considerando funciones g : Σ → {1. para una palabra de entrada como aaba la salida seria 1.. ε]] [[h. si la propiedad P consiste en que la entrada es de longitud par.. ε]] ∗ Un dise˜o para la MT que decide si una entrada en el alfabeto Σ = {a. 1 . w]] si |w| es par. En ı este caso. . o 6. ε. w]] si |w| es non. PROBLEMAS DE DECISION 1 1 ..... 1. 1 . . ∗ .. 1 . La estrategia en este dise˜o es primero recorrer la cabeza al n . 1 1 1 . Problemas de decisi´n o Un caso particular de funciones es aquel en que el resultado s´lo puede ser s´ o no.. − − 1 1 1 1 181 1 1 1 ..6. Si o ı ∗ representamos el s´ con 1 y el no con 0. ∗ ..4. Por ejemplo.

L es decidible ssi L y Lc son Turing-aceptables . y se llega a halt. Esto tiene la consecuencia siguiente: Proposici´n. es condici´n o indispensable que la palabra de entrada haya sido aceptada. Definici´n.Decimos que un lenguaje L es Turing-decidible si hay alguna MT que entrega o un resultado 1 si la entrada w est´ en L. hasta el momento.182 ´ CAP´ ITULO 6. Lc es Turing-decidible 3. MAQUINAS DE TURING a. Al terminar de borrar la palabra de entrada.Un lenguaje es Turing-decidible solamente si es Turing-aceptable. Si L es Turing-decidible. 6.b/R 2 4 /R 1 /L 5 /L 3 /0 /R 0/R h 7 a. seg´n que se haya u terminado en el estado 3 o 5.6: MT que decide si la entrada es de longitud par extremo derecho. a Debe quedar claro que para que una MT entregue como resultado 1 o 0. o Si un lenguaje no es Turing-decidible se dice que es indecidible.4.b/ /R /1 8 /L 6 a.. y luego ir borrando los caracteres de entrada. Relaci´n entre aceptar y decidir o Las siguientes propiedades que relacionan “Turing-decidible” con “Turing-aceptable” son utiles para comprender mejor ambas nociones: ´ 1. respectivamente. Todo lenguaje Turing-decidible es Turing-aceptable 2. y “recordando” mediante los estados 3 y 5 si la cantidad de letras es.b/ 1/R h Figura 6. par o impar. se escribe 1 o 0 en la cinta. M´s adelante veremos a lenguajes indecidibles. de derecha a izquierda..1. y un resultado 0 en caso contrario.

para hacerla m´s poderosa. pues dada una MT M que decide el lenguaje L. Ponemos a funcionar ambas m´quinas “en paralelo”. a Hasta nuestros d´ la llamada “tesis de Church” no ha podido ser probada ni refutada. propuso la conjetura de que a en realidad no puede haber ning´n modelo de c´mputo m´s poderoso que los desarrollados u o a hasta entonces. Supongamos que tenemos dos MT. con lo que necesariamente acepta w. El mismo A. y en alg´n momento M se detendr´. Se supone que. a La prueba de 3 es m´s complicada. Tambi´n el punto 2 es sencillo. Turing propuso. entrega una salida 0. sin embargo. que aceptan respectivamente los lenguajes L y Lc . Si w ∈ L. todos los intentos han sido infructuosos al encontrarse que dichas extensiones son equivalentes en poder de c´lculo a la a MT original [10]. Por ejemplo. podr´ ser calculado en una MT. Emil Post propuso a´n otro modelo de m´quina abstracta. a ambos enunciados son equivalentes. ıan a ı a como la m´quina de Post. Ahora bien. entonces w ∈ L . la MT debe primero que nada llegar al halt para toda palabra de w ∈ L. (Decimos que una tipo de m´quina MA es m´s poderoso que un tipo MB a a cuando el conjunto de lenguajes aceptados por alguna m´quina en MB es un subconjunto a propio de los aceptados por MA ). M ∗ decidir´ 1 o 0. De hecho no probaremos que si L y Lc son Turinga aceptables entonces L es decidido por alguna MT. TESIS DE CHURCH 183 La prueba de 1 es muy sencilla. y que si M se para. se propusieron MT no deterministas. M´s a´n. que inclu´ la MT. por la llamada Tesis de Church. M y M c . Sin embargo. sino m´s bien que hay un procedimiento a mec´nico para decidir L. en la llamada “Tesis de Turing”. no se considera un teorema que pudiera ser eventualmente probado. su c´lculo lambda. pues para decidir un lenguaje L. Church. producimos e una m´quina M que decide Lc cambiando en M el resultado 1 por 0 y viceversa. a analizando ambas la misma palabra w.6. entrega una salida 1. eventualmente M llegar´ al a c c halt. y que no podr´ haber una m´quina abstracta a a a que calcule algo que la MT no pueda calcular [11]. ıas La tesis de Church. que “observa” a M y a M c . Es evidente que para toda palabra w. que veremos luego. a la saz´n inventor a u o del c´lculo lambda –uno de los sistemas competidores de la MT–. por lo que el lenguaje es decidible. Ahora consideremos / u a una MT adicional M ∗ . que todo aquello que puede ser calculado. Tambi´n se han tratado de hacer “extensiones” a la MT.5. Tesis de Church Ha habido diversos intentos de encontrar otros modelos de m´quinas u otros formalismos a que sean m´s poderosos que las MT. en el mismo sentido que las MT son m´s poderosas que a a los AF y los AP.5. as´ como otras m´quinas abstractas. A. mientras que si M c se para. sino simplemente una hip´tesis de trabajo. o . si w ∈ L. e a Por ejemplo. basada en la idea de un diagrama de flujo u a [12]. independientemente de Turing. a 6.

Otras m´quinas de cinta a 3. a´n cuando en muchos otros textos se prefiere comparar a u a las MT con los “sistemas de reescritura”. 5 . s´lo consideraremos las m´quinas de Post. Pascal.1. 6. a En un diagrama de flujo se van siguiendo las flechas que nos llevan de la ejecuci´n de o una acci´n a la siguiente.). Las pruebas que vamos a considerar se basan en el principio de la simulaci´n. M´quinas de Post a En esta secci´n presentaremos los elementos de la m´quina propuesta por E. Conceptualmente las m´quinas de Post tienen poca relaci´n con el modelo b´sico de a o a m´quinas que hemos visto hasta el momento –b´sicamente derivaciones de los AF. Esta consiste o informalmente en que la m´quina simuladora act´a como lo har´ la m´quina simulada. MAQUINAS DE TURING 6. Las a a m´quinas de Post (MP) est´n basadas en el concepto de diagramas de flujo. Las comparao a ciones restantes pueden ser encontradas en la referencia [10]. Algunas acciones o especiales son condicionales. por lo que no abundaremos en ejemplos a y explicaciones. y a cada acci´n de Mora una o a o acci´n de Mada . Gram´ticas) a a De todas estas posibilidades. con el “c´lculo lambda” y otras alternativas. a este recorrido se le llama “flujo de control”.6. Comparaci´n de las MT con otras m´quinas o a Podemos considerar comparaciones de la MT con: 1. varias cabezas b) MT con no determinismo 2. ıas n o La utilidad pr´ctica de los diagramas de flujo es una de las razones para incluir el estudio de a las m´quinas de Post en este texto. Extensiones a la MT a) MT con varias cintas. a u ıa a Formalmente consiste en un mapeo µ que asocia a cada configuraci´n de la m´quina o a simuladora Mora una configuraci´n de la m´quina simulada Mada . Otros paradigmas (m´quinas de Post. de o a manera similar a como aparecen en [12].184 ´ CAP´ ITULO 6. Post. 5 o Pensamos que el lector est´ habituado a los diagramas de flujo. de modo tal que se cumpla la correspondencia de los tres puntos se˜alados o n arriba. etc. tan habituales en a a nuestros d´ por la ense˜anza de la programaci´n en lenguajes imperativos (C. dependiendo la que uno tome del cumplimiento de cierta condici´n.5. en el sentido de que tienen varias flechas de salida.

La acci´n x ← tail(x) tiene el efecto de quitar el primer caracter de la o palabra almacenada en la variable x. si la palabra de entrada es σ1 . los diagramas de flujo de Post. Hay adem´s una a salida marcada con ε. La acci´n START indica el punto en que empieza a recorrerse el diagrama de flujo. para el caso de que la variable x contenga la palabra vac´ (antes ıa de tratar de quitarle el caracter). indicadas o con sendos s´ ımbolos. . Asignaci´n. σ2 . ıa 6 . la continuaci´n del diagrama depender´ de cu´l o a a fue el caracter que se quit´ a x. . Hay una instrucci´n x ← xa para cada caracter a ∈ Σ. despu´s de ı. llamados “M´quinas de Post” (MP). Las acciones de la forma x ← xa. habiendo varias salidas de la condicional. . La acci´n ACCEPT indica que la palabra de entrada es aceptada.7: Acciones en MP En la figura 6. donde a ∈ Σ. La acci´n REJECT indica que la palabra de entrada no es aceptada (es rechazo ada). simplemente por compatibilidad con e la gran mayor´ de los textos disponibles.7 presentamos un resumen de las acciones de la MP. o Hemos utilizado los nombres en ingl´s para las acciones de la MP. σn . las cuales son: 6 Inicio. Tambi´n tero e mina la ejecuci´n del diagrama.´ 6. MAQUINAS DE POST 185 M´s espec´ a ıficamente. que corresponden al caracter que se quit´ a la variable. o Condicional. . Adem´s termina la ejecuci´n del diagrama. As´ si x = α antes de la asignaci´n. o Rechazo. o e ella tendremos x = αa. a consideran unas acciones muy elementales cuyo efecto eventualmente es alterar el valor de una unica variable x. el camino que tomemos para seguir el diagrama ser´ el indicado con un s´ a ımbolo que coincida con σ1 . En otras o palabras. Inicio Rechazo Acepta Condicion a START REJECT ACCEPT x ←tail(x) b # @ ε Asignacion x ← xa x ← xb   x ← x@ Figura 6. a o Acepta.6. tienen el efecto de a˜adir a la o n variable x el caracter a por la derecha. La variable x es capaz de almacenar una cadena de caracteres ´ arbitrariamente grande.

como resultado o ¤ @ . por la acci´n de x ← tail(x).La MP de la figura 6. y luego entran por la derecha.8: MP para {an bn } Ejemplo. podemos ver que la variable x toma los siguientes valores al recorrer el diagrama de flujo: Acci´n o START x ← x@ x ← tail(x) x ← tail(x) x ← xa x ← tail(x) x ← tail(x) x ← xb x ← tail(x) x ← x@ x ← tail(x) x ← tail(x) x ← tail(x) x ← x@ x ← tail(x) ACCEPT Valor de x aabb aabb@ abb@ bb@ bb@a b@a @a @ab ab ab@ b@ @ ε @ ε Como se puede observar en este listado. MAQUINAS DE TURING ¢ START x ←x@ £ x ←tail(x) a   b ¡ x ←tail(x) b @ ¤ ¡ ε ACCEPT a   ε REJECT x ← xa a ¡   x ←tail(x) ¤ x←xb b REJECT ε @ x ←x@ £ Figura 6.186 ´ CAP´ ITULO 6. las letras a. En efecto. b y el caracter @ salen de la variable x por la izquierda. siguiendo dicha figura..8 acepta el lenguaje {an bn }.

8 Adem´s necesitamos considerar el contenido de la ıa a variable. δ. los nodos est´n o a clasificados seg´n la acci´n que tienen asociada. . las MP podr´ ser caracterizadas como grafos. u o . y los v´rtices ser´ las flechas del diagrama de Post. a o el punto en que nos encontramos al recorrer el diagrama de flujo –lo que formalmente se representar´ como un nodo n ∈ N . Σ. donde los ıan nodos ser´ las acciones. nos apoyaremos en la noci´n de configuraci´n. ε} → N − {ST ART } Como se ve. Como habitualmente. as´ como una funci´n de transici´n que determine cu´l es el nodo siguiente ı o o a en el diagrama. en el caso de la acci´n condicional –en todas las dem´s acciones el caracter es o a irrelevante y el destino debe ser el mismo para todo caracter). MAQUINAS DE POST 187 de una acci´n x ← xσ. En el primer aspecto. que es una palabra formada por letras del alfabeto. Adicionalmente NA est´ clasificado u o a seg´n la letra que se a˜ade por la derecha. Iterando en el diagrama es posible cancelar cada a con cada b hasta que se agoten las letras.6.6. pudiendo aparecer adem´s el a 7 8 Este era el caso de las qu´ ıntuplas (K. As´ tendremos: ı Definici´n. En la configuraci´n debemos resumir todas las o o o informaciones que caracterizan completamente la situaci´n en que se encuentra una MP a o mitad de un c´lculo. s. Al decir que estamos en un nodo n. 7 mientras que a a el otro aspecto es el de caracterizar el funcionamiento de las m´quinas que tratamos de a formalizar. F ) para los AF. evidentemente. 6.Una MP es una tripleta (N. siendo NA el conjunto de nodos de asignaci´n y NC el conjunto de nodos condicionales. las a informaciones que hacen diferente a una m´quina de las dem´s de su clase. δ es la funci´n de transici´n que nos indica cu´l es el siguiente nodo al que hay que ir: o o a δ : N − {ACCEP T. NA = NAσ1 ∪ NAσ2 ∪ . NAσn u n Como de costumbre. En la configuraci´n de una MP vamos a considerar. . Esto es. ACCEP T. es decir.. Formalizaci´n de las MP o Recordemos antes que nada que la formalizaci´n de una m´quina abstracta reviste dos o a aspectos: uno es formalizar los componentes de una m´quina en particular. En otras palabras. δ). REJECT }. Ahora trataremos de formalizar el funcionamiento de las MP. REJECT } × Σ ∪ {@. donde: o N = NA ∪ NC ∪ {ST ART. esto es.1. En la MP de este o n ejemplo. significa que a´n no se ejecuta la acci´n del nodo n.´ 6. Σ es el alfabeto. comparando las l´ ıneas 2 y 10 del listado podemos ver que en la 10 ya se ha eliminado una a y una b. clasificados de acuerdo con las acciones que ıa a tienen asociadas. que no incluye el caracter @. el nodo destino de δ depende del nodo anterior y de un caracter (el caracter suprimido. una ıan e ıan MP ser´ b´sicamente un conjunto de nodos N . Σ. donde σ es el caracter u se a˜ade a la derecha.

a. a) = n. de manera tal que al final del c´lculo. bw]]. lo que contribuy´ a reforzar la conjetura establecida por A. que la o MT es la m´s poderosa expresi´n de lo algor´ a o ıtmicamente calculable. a = b. o una configuraci´n ser´ [[n. Si m ∈ NT . y Una palabra puede no ser aceptada ya sea porque se cae en un REJECT o bien porque la MP cae en un ciclo infinito. Por “simular” entendemos que.[[m.. u = w Definici´n. similarmente en el sentido contrario.. u. MAQUINAS DE TURING caracter especial @. Si m = s. la MP o haga una acci´n correspondiente.. o o 6. o La prueba del teorema de Post se hace mostrando que una MT puede ser simulada por una MP. similarmente para el sentido contrario e de la prueba. Entonces la configuraci´n es un elemento de N ×(Σ∪{@})∗ . w]] o [[ACCEP T. Teorema de Post.Para toda MT hay una MP que acepta el mismo lenguaje. se define de la manera siguiente: o Definici´n.Definir similarmente a como se hizo con las MT la noci´n de funci´n calculada.6.188 ´ CAP´ ITULO 6. Ejercicio. Por ejemplo. y viceversa. que significa que se puede pasar en la o MP M de la configuraci´n C1 a C2 . y viceversa. v]]. Al establecer ambas direcciones de la prueba se muestra la equivalencia MP-MT. o que calcula la misma funci´n. ∗ M [[n. w = uσ 3. w ∈ (Σ ∪ {@})∗ ssi δ(m.-Una palabra w ∈ Σ∗ es aceptada por una MP M ssi [[ST ART. por cada acci´n de la MT. a = b. Equivalencia entre MP y MT El mismo Post comprob´ la equivalencia entre sus diagramas de flujo y las m´quinas de o a Turing. ab@aa]]. una palabra sea o a aceptada en Post ssi es aceptada tambi´n en Turing. u = bw 2. Si m ∈ NAσ . o ıa La relaci´n entre dos configuraciones C1 M C2 . @}. Al simular MT en MP mostramos que estas ultimas son al menos ´ tan poderosas como las primeras (en el sentido de que pueden hacer todo lo que haga MT). La simulaci´n de la MT involucra los siguientes aspectos: o Codificar las configuraciones de la MT en configuraciones de la MP . Church –esto es. b ∈ Σ ∪ {ε.2. au]] o 1.

´ 6.6. MAQUINAS DE POST Para cada acci´n de MT, encontrar un diagrama en MP que haga lo mismo. o

189

La codificaci´n de la configuraci´n de la MT en una configuraci´n “equivalente” de la o o o MP involucra considerar c´mo codificar cada una de las informaciones de la configuraci´n o o de MT. En particular, hay que pensar c´mo expresar en MP el contenido de la cinta de MT, o as´ como la posici´n de la cabeza lectora. ı o Sea una configuraci´n [[q, w, u, v]] en MT. Entonces en la variable de la MP tendr´ o ıamos: uv@w. Como se ve, el primer caracter de la variable es el mismo caracter sobre el que est´ la a cabeza lectora en la MT; luego sigue a la derecha la misma cadena que en la MT. En cambio, la parte izquierda de la cinta en MT es colocada en la variable de MP separada por el caracter especial “@”. Por ejemplo, si en MT tenemos una cinta de la forma abaabbb, la variable de MP contendr´ la cadena abbb@aba. a Ahora hay que considerar c´mo “traducir” las acciones de una MT a acciones correspono dientes en una MP. Consideramos los siguientes casos: Escritura de caracter: Sea una transici´n δ(p, d) = (q, σ), donde σ ∈ Γ. Al paso entre o configuraciones de MT: [[p, abcdef g]] [[q, abcσef g]] corresponde el paso de x a x como sigue: x = def g@abc x = σef g@abc Para hacer la transformaci´n indicada (de x a x ) en MP, hay que encontrar un diao grama que la efect´e. Un diagrama que cumple con esta funci´n aparece en la figura u o 6.9. Movimiento a la derecha: Al paso entre configuraciones de MT: [[p, abcdef g]] corresponde el paso de x a x : x = def g@abc x = ef g@abcd Este paso de x a x se puede hacer con el (muy simple) diagrama de MP de la figura 6.10. Movimiento a la izquierda: A un paso entre configuraciones en MT: [[p, abcdef g]] corresponde el paso de x a x : x = def g@abc x = cdef g@ab El diagrama de la MP que hace dicha operaci´n es dejado como ejercicio (medianamente o dif´ ıcil) al lector (ver secci´n de ejercicios). o [[q, abcdef g]] [[q, abcdef g]]

190

´ CAP´ ITULO 6. MAQUINAS DE TURING

{defg@abc}

x tail(x)
{efg@abc}

x x

x@
{efg@abc@}

{efg@abc@ σ}

x tail(x)
u=@ u=@ {abc@ σefg}

x

x u x

x @
{abc@ σ efg@}

x tail(x)
u=@ u=@ {σ efg@abc}

x

xu

Figura 6.9: Escritura en MP

x←tail(x)

ζ x ←x ζ

Figura 6.10: Movimiento a la derecha en MP

6.7. L´ IMITES DE LAS MT

191

La prueba de equivalencia MT-MP en el otro sentido –esto es, la simulaci´n por parte o de una MT de una MP– es mucho m´s simple. Primero se toma el contenido inicial de la a variable de entrada como palabra de entrada de la MT. Luego cada una de las operaciones de MP (x ← xσ, x ← tail(x), ACCEP T , REJECT ) pueden ser simuladas por la MT correspondiente. Dejamos nuevamente los detalles de esta prueba al lector (ver secci´n de o ejercicios).

6.7.

L´ ımites de las MT

Aunque parezca incre´ ıble, hay problemas que no se pueden resolver como una secuencia determinista de operaciones elementales, que es lo esencial de las MT. Estos problemas son llamados algor´tmicamente irresolubles. Vamos a concentrar nuestra atenci´n en problemas ı o del tipo: dados una palabra w y (la descripci´n de) un lenguaje L, decidir si w ∈ L, que son o llamados “problemas de pertenencia de palabras” (word problems). Decimos que un lenguaje L es decidible si hay una MT para decidir el problema de la pertenencia de palabras. Muchos otros problemas que no son del tipo mencionado pueden sin embargo expresarse en t´rminos e de ´stos mediante una transformaci´n adecuada; por ejemplo, el problema de determinar si e o dos gram´ticas G1 y G2 son equivalentes, puede expresarse de la manera siguiente: Para toda a w ∈ L(G1 ), decidir si w ∈ L(G2 ).

6.7.1.

El problema del paro de MT

Ahora vamos a considerar un problema irresoluble que hist´ricamente tuvo mucha imo portancia porque fue el primer problema que se prob´ irresoluble. Una vez que se cuenta con o un primer problema irresoluble, la prueba de que otros problemas son irresolubles consiste en probar que ´stos pueden ser reducidos al problema de referencia. Este primer problema e irresoluble es el del paro de la MT. El problema del paro de la MT consiste en determinar algor´ ıtmicamente –esto es, mediante una MT– si una MT dada M va a parar o no cuando analiza la palabra de entrada w. Desde luego, como una MT analiza el comportamiento de otra, se requiere que esta ultima ´ sea dada como entrada a la primera; esto puede ser hecho mediante una codificaci´n de la o MT que debe analizarse. Una manera simple de codificar una MT es considerando la cadena de s´ ımbolos de su representaci´n como cu´druplo (K, Σ, δ, s). Denotaremos con d(M ) la o a 9 codificaci´n de una MT M . o Teorema.- No existe ninguna MT tal que, para cualquier palabra w y cualquier MT M , decida si w ∈ L(M ).
Esta soluci´n para codificar una MT no es perfecta, pues el alfabeto usado para codificar una MT o arbitraria no puede determinarse de antemano; no haremos por el momento caso de este detalle t´cnico. e
9

192
d(M) w 1 0

´ CAP´ ITULO 6. MAQUINAS DE TURING
M para con w M no para con w

Figura 6.11: El problema del paro de una MT En la figura 6.11 se muestra c´mo deber´ funcionar la MT que resolver´ el problema o ıa ıa del paro. Prueba 10 Por contradicci´n.- Sea A la MT de la figura 6.12(a). Entonces construimos o otra MT B, como se representa en la figura 6.12(b), esto es, se tiene una unica entrada con ´ la codificaci´n d(M ) de la MT M , y se pasa esta palabra a una MT copiadora, que duplica la o entrada d(M ). La salida de la copiadora ser´ dos veces d(M ). Esto es pasado como entrada a a una m´quina A que es A modificada 11 de la siguiente manera: a la salida 1 de A la a cambiamos de forma que en vez de dar el halt se cicle; debe quedar claro que esto siempre puede hacerse. Ahora bien, comparando A con A se ve que la salida 1 corresponde al hecho de que M para con d(M ). Finalmente supongamos que aplicamos la m´quina B a una entrada formada por la misma a m´quina codificada, esto es, d(B). Entonces cuando B se cicla, esto corresponde a la salida a que indica que “B se para con d(B)”, lo cual es contradictorio. Similarmente, B entrega un resultado 0 –esto es, se para– en el caso que corresponde a “B no se para con d(B)”, que tambi´n es contradictorio. Esto se ilustra en la figura 6.12(c). e Utilizando el problema del paro de la MT como referencia, se ha probado que otros problemas son tambi´n insolubles. Entre los m´s conocidos, tenemos los siguientes: e a El problema de la equivalencia de las gram´ticas libres de contexto. a La ambig¨edad de las GLC. u El problema de la pertenencia de palabras para gram´ticas sin restricciones. a No haremos la prueba de estos resultados; remitimos al lector a las referencias [10], [7].

6.8.

MT en la jerarqu´ de Chomsky ıa

En conclusi´n, las MT no son capaces de aceptar todos los lenguajes posibles en 2Σ . Sin o embargo, este hecho puede ser establecido simplemente a partir de la enumerabilidad de las
10 11

Esta prueba es debida a M. Minsky [14], aunque la primera prueba data de Turing [24]. Obs´rvese que la segunda repetici´n de d(M ) es de hecho la palabra w que se supone que es sometida a e o

M.

o o por lo que es tambi´n enumerable. un alfabeto est´ndar σ0 . etc. ı.6. σ1 . σ2 ..   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡ d(B)d(B)   ¡   ¡   ¡   ¡ A’   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡ B   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡ d(M)d(M)   ¡   ¡   ¡   ¡ A’   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡ B   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡ A   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡ d(M) w   ¡   ¡ 1   ¡   ¡ M para con w M no para con w   ¡   ¡   ¡ ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   0 d(M) cicla 0 M para con d(M) M no para con d(M) d(B) cicla 0 B para con d(B) B no para con d(B) .. e La funci´n de transici´n es parte de otros productos cartesianos de estados y caracteres. e Los estados iniciales trivialmente son enumerables. s) -y por lo tanto elementos de un producto a cartesiano-. al ser enumerable cada uno de los componentes necesariamente el cu´druplo es a tambi´n enumerable. δ. MT EN LA JERARQU´ DE CHOMSKY IA   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡ 193 (a) M´quina A a copia   ¡   ¡   ¡   ¡   ¡   ¡   ¡ (b) M´quina B a copia   ¡   ¡   ¡   ¡   ¡   ¡   ¡ (c) Contradicci´n o Figura 6. etc. q2 .12: Prueba del paro de MT MT: puesto que las MT son cu´druplos (K. En efecto: e Los conjuntos de los estados posibles son enumerables si estandarizamos los nombres de los estados a q0 . lo cual evidentemente no altera ning´n aspecto del u funcionamiento de la MT (ver secci´n de ejercicios). q1 . o Similarmente. puede codificar cualquier alfabeto a en particular. As´ tambi´n los alfabetos son enumerables. siguiendo la estandarizaci´n del o primer punto.8. Σ.

que fueron citados en la secci´n 4. Enumerables Gram.5 y 4. linealmente acotados o M´q. Σ∗ Desde luego.7.7) (4. en que se asocian distintos tipos de m´quinas a dichas categor´ de lenguajes.1. pueden estudiarse en las referencias [21] o [7]. Sensitivos al Contexto Gram. sensitivas al contexto (4.5) Lenguajes Libres de Contexto Gram. [7]. libres de contexto (4) (4) Leng.2) Aut´matas de Pila o (5) Aut´m. y por lo tanto hay lenguajes que no tienen una MT que los acepte. MAQUINAS DE TURING Ahora bien. de los lenguajes que pueden ser aceptados por una MT. De acuerdo con la presentaci´n de la jerarqu´ de Chomsky que hicimos al estudiar las o ıa gram´ticas en la secci´n 4. siguiendo la estructura de clases de lenguajes llamada “jerarqu´ de Chomsky”. el resultado anterior no ayuda a localizar exactamente qu´ lenguajes no e son aceptados por ninguna MT. que clasifica los lenguajes en categor´ y la forma ıa ıas. aunque no hemos estudiado los aut´matas “lino o ealmente acotados” en este libro. al ser enumerables las MT. 12 o Asimismo hemos mencionado. Resulta util entonces ubicar la parte de los lenguajes que s´ pueden aceptar las MT con ´ ı respecto a otras clases de lenguajes. 12 “Recursivamente enumerables” es solamente otro nombre para “Turing aceptable”. de Turing aceptando a (6. esto ya se hab´ hecho para algunos lenguajes en la secci´n ıa o precedente.7) Lenguajes Recursivos Leng.1. la clase de los lenguajes Sensitivos al Contexto. las MT son equivalentes en poder de c´lculo a las gram´ticas a o a a no restringidas. La prueba de esto puede ser consultada en diversas referencias [10]. que son los “recursivamente enumerables”. aunque no hemos definido ninguno de ellos m´s a que por su relaci´n con las MT.1) En esta tabla hemos diferenciado la clase de lenguajes que pueden ser decididos por una MT.5) Lenguaje que Gram´tica que a procesa lo genera Lenguajes Regulares Gram´ticas regulares a (3) (3. de la manera siguiente o (indicamos entre par´ntesis las secciones de este libro donde se presenta cada tema): e Tipo de aut´mata o Aut´matas finitos o (2. .Recursiv.1 ıa Recordando la jerarqu´ de Chomsky.194 ´ CAP´ ITULO 6. que presentamos en las secciones 1. que son llamados “recursivos”. ahora estamos a ıas en condiciones de refinar la tabla que fue presentada en la secci´n 4.2.4) M´q. no restringidas (4. resulta que no puede mapearse un elemento de 2 con una MT distinta. por completez. de Turing decidiendo a (6. usado en textos como [7].

Exprese esta MT usando la representaci´n formal. q2 . Dise˜e un diagrama de estados para la MT del ejemplo de la secci´n 6. Probar la enumerabilidad de los conjuntos de estados con nombres uniformizados q0 . 6. o a a 9. Describa las acciones efectuadas sobre la cinta. EJERCICIOS 195 As´ de acuerdo con la Tesis de Church. y 0 si no est´.3. Proponga una MT (o diagrama) que: a) Acepte las palabras de la forma an bm . usando las n a o m´quinas b´sicas vistas. Dise˜ar una MT que decida si la entrada es de longitud par. que inicialmente contiene s´lo cuadros o en la cinta para la palabra de entrada y para un blanco a cada lado de dicha palabra. etc. Obtenga tambi´n la representaci´n formal de dicha MT. a a 3. o tomando 1 si el estado en cuesti´n est´ presente. Complete el dise˜o de la MT para el ejemplo de la secci´n 6. Formalizar las MTCE. n. b) Decida si en una palabra an bm se cumple m < n. s). pero δ es una o a funci´n de (K × S) a (K ∪ {h}) × Σ × {L. o . tienen una “cinta estirable”. seg´n se va requiriendo. en particular la u definici´n de palabra aceptada. y que cuando se se mueve a la derecha fuera de la cinta. los lenguajes recursivamente enumerables son el ı. Una variante de la MT consiste en hacer que la m´quina haga un movimiento y tambi´n a e escriba en cada acci´n. S}. D´ la definici´n formal de la relaci´n e o o (“produce en un paso”). b}∗ . Dise˜e un diagrama de m´quina de Turing para calcular la funci´n |log2 n|. Ayuda: Considere una representaci´n binaria de cada conjunto de estados. 6. δ. donde el “movimiento” S significa que o la cabeza permanece en el lugar en que estaba. Dichas m´quinas son de la forma (K. R. n 5. para palabras en {a. Σ. esto es para n o aceptar el lenguaje an bn cn . autom´ticamente es creado a un nuevo cuadrito.6. Supongamos unas “MTCE” que son como las MT. 10. u o 4.5. Ejercicios 1.9. pero en vez de tener una cinta infinita a la derecha. esto es para calcular n o restas de n´meros en unario. q1 . 8. m > 0. m´s extenso conjunto de lenguajes que pueden ser algor´ a ıtmicamente analizados.2.8. Representar formalmente la MP de la figura 6. Proponer una MT (su diagrama) que: a) Acepte el lenguaje vac´ (∅) ıo b) Decida el lenguaje vac´ ıo c) Acepte el lenguaje {ε} d ) Decida el lenguaje {ε} 7. e o 2.9.

Demuestre que el problema de la equivalencia de los A2Pn es / no es decidible. . ¿todo lenguaje Turinga aceptable es aceptado por alg´n A2P?). Un aut´mata de dos pilas (A2P) es una extensi´n directa de un aut´mata de pila. qu´ quiere decir e e que una acci´n de MP “hace lo mismo” que la acci´n correspondiente de MT. Formalice los A2P en la forma w Figura 6. Pruebe su respuesta. MAQUINAS DE TURING 11. con la restricci´n de que no a o tienen las instrucciones x ← xσ. o f ) Dos A2Pn son equivalentes ssi aceptan el mismo lenguaje. d ) ¿Tienen los A2P el poder de c´lculo de las MT? (Es decir.14: M´quina de Post a 13.   START x←tail(x) a a REJECT ¡ ε ¢ ACCEPT b x ←tail(x) ¢ ¡ ε b ACCEPT Figura 6. c) Proponga un A2P que acepte el lenguaje {an bn cn }.13: Autom´ta de dos pilas (A2P) a m´s similar posible a los AP vistos en clase. 12. como en la figura 6. MP1 es equivalente a AF. Ahora bien. Suponga un subconjunto MP1 de las m´quinas de Post. proponiendo un m´todo sistem´tico o e a para pasar de una MP1 a un AF que acepte el mismo lenguaje. configuraci´n y palabra aceptada para A2Pn.13. Defina formalmente las nociones de: a a) Configuraci´n. Ayuda: mostrar u c´mo simular una MT con A2P.196 ´ CAP´ ITULO 6. pero o o o que tiene dos pilas en vez de una. a) Demuestre esta afirmaci´n constructivamente. (Este o o problema completa el enunciado del Teorema de Post). Definir formalmente. o b) Palabra aceptada y lenguaje aceptado. en t´rminos de configuraciones de MP y MT. o e) Adapte las definiciones de A2P.

c) Si no son equivalentes a Turing. justificando la respuesta: a) ¿El complemento de un lenguaje Turing-decidible es tambi´n Turing-decidible? e b) ¿El complemento de un lenguaje Turing-decidible es Turing-aceptable? . bas´ndose a en alg´n procedimiento sistem´tico (explicar cu´l es dicho procedimiento sisu a a tem´tico). o 16. como en una MT normal. Las acciones en las dos cintas son independientes. etc. Suponga una variante de las m´quinas de Turing. Si a las m´quinas de Post les cambiamos ligeramente las asignaciones para que sean a de la forma x ← σx . cuando se quiere solamente escribir (sin mover la cabeza) se hace un movimiento nulo (N). as´ como su funcionamiento (hasta definir palabra aceptada). ıa 15. esto es. ı b) Pruebe que las MTS son tan poderosas como la MT cl´sica (muestre c´mo obtener a o a partir de una MT la MTS equivalente).9. pero son equivalentes a alguna m´quina inferior.. Suponga una variante de las MT. probando que pueden hacer lo mismo (por ejemplo. o b) Si no son equivalentes a Turing. a probando dicha equivalencia. suponiendo que el resultado queda en la cinta 2. que o a pueden ser movimientos o escrituras. o y el control finito determina la acci´n a realizar (simult´neamente) en las cintas. ¿siguen siendo equivalentes a las MT? Pruebe su afirmaci´n. Conteste las siguientes preguntas. a d ) Si en una variante MP2 se permiten asignaciones x ← σ. en un solo movimiento. en la cinta 1 puede tener una acci´n L y en la cinta o 2 escribir. o c) Defina funci´n calculada. a) Proponga una definici´n formal de las MT2 o b) Defina las nociones de configuraci´n y palabra aceptada. mostrando c´mo obtener una MT cl´sica a partir de o a una MTS dada. por simulaci´n). las MTS en que se puede al mismo tiempo escribir en la cinta y hacer los movimientos a la izquierda y a la derecha (L y R).14. las MT2 en que se tienen dos cintas a (cinta 1 y cinta 2) en vez de una. EJERCICIOS b) Pruebe el m´todo propuesto en (a) con la MP1 dada en la figura 6. Por cada transici´n. e 197 c) Pruebe si la MP1 del inciso anterior acepta o no el lenguaje (abb ∗ a)∗. encontrando alg´n lenguaje que una s´ puede u ı aceptar y la otra no (habr´ que probar esto). a) Defina las MTS. c) Pruebe ahora lo rec´ ıproco. ya o sea: a) Si son equivalentes. ¿a qu´ tipo de aut´mata corresponde MP2? ¿Porqu´? e o e 14. donde σ ∈ Σ∗ . ambas son infinitas hacia la derecha y tienen sendas cabezas lectoras.6. 17. La palabra de entrada se escribe en la cinta 1. se leen a la vez los caracteres de las dos cintas.

describiendo el m´todo utilizado para esta prueba: e M T1 = ({f. Para las siguı ientes MT (no deterministas). e o . y en el caso afirmativo. p}. }. para algunos subconjuntos de las MT s´ es posible decidir la equivalencia. g. {a. Sin embargo. j. proponga el m´todo de decisi´n correspondiente. δ2 . }. {a. Es sabido que el problema de la equivalencia de MT es indecidible. b) ¿Es posible decidir si dos MTk son equivalentes? Pruebe su respuesta. b}. k. b}. probar rigurosamente su equivalencia / no equivalencia respecto a la aceptaci´n / rechazo de palabras (es decir. {a. n. a) ¿disminuye por ello el poder de c´lculo? ¿A qu´ tipo de aut´matas ser´ equiva e o ıan alentes las MTk ? Pruebe su respuesta. q) q o o o n n p p o h n p n o p p L L L L L L L a b a b a b 19.198 ´ CAP´ ITULO 6. que los lenguajes aceptados o son iguales). f ) f g g g f f j j k k k m m g h L f f f m k m f h m k L L L L L L L L L L L a b a b a b a b a b M T2 = ({o. dando una variante que llamaremos MTk. q. b. {a. MAQUINAS DE TURING c) ¿Todo lenguaje Turing-decidible ser´ subconjunto de alg´n lenguaje libre de cona u texto? d ) ¿La intersecci´n de un Turing-aceptable con un libre de contexto ser´ libre de o a contexto? 18. Si limitamos el tama˜o de la cinta de una m´quina de Turing a una cantidad fija k de n a cuadros. m}. δ1 . b.

9.6. siguiendo las ideas esbozadas en la p´gina 191. Completar la prueba de equivalencia de las MP y las MT. Realizar el diagrama de MP que simula el movimiento de la cabeza a la izquierda en una MT (esto es parte de la prueba de equivalencia de MP y MT). a . EJERCICIOS 199 20. detallando la simulaci´n de o la MP en una MT. 21.

200 ´ CAP´ ITULO 6. MAQUINAS DE TURING .

Minsky. Brookshear. Second Edition. CSLI Publications. Moore. [2] J. 1979.. [11] P. [14] M. Levine.. Cambridge. Hopcroft. Reading. Computer Science Press. 1956.. 1955.Lex & Yacc.. Press. T.Petri Net Theory and the Modeling of Systems.Principles of Compiler Design. Barwise. Prentice Hall. J. Ullman.. Lewis.L. [6] J. [16] J. Addison Wesley. R. [7] J. Papadimitriou.Elements of the Theory of Computation. Manna. Addison-Wesley.. Mealy..Teor´a de la Computaci´n.H.0 -An Introduction to Computability Theory. Mass. [15] E. 1989. D. MIT Press. Addison Wesley. J. [3] G. [9] J. [5] V. 1981... 1990. D. Ullman. J.. 201 ..Bibliograf´ ıa [1] A. [10] H. J. 1993.Formal languages and automata theory. McGraw Hill. Kelley. Prentice Hall. Prentice Hall Hispanoamericana. 1993. C. Languages and Computation.Computation: Finite and Infinite Machines. BSTJ n.Introduction to Automata Theory. en “Automata Studies” (C.A method for synthesizing sequential circuits. ı o 1995.An Introduction to Formal Languages and Automata.. Addison Wesley Iberoamericana. Languages and Computation. Chomsky.Introduction to Automata Theory. pp1045-1079.Mathematical Theory of Computation. Aho..Gedanken-experiments on sequential machines.).34. McCarthy eds. Ch. Stanford. 1967. J. Princeton Univ.R. Linz. 1974. O’Reilly & Associates. 1978. [8] D. Etchemendy. 1965.. Brown. Hopcroft.Turing’s World 3.Aspects of the Theory of Syntax.. 2001. Peterson. Mason. 1992. Shannon. Heath and Company. Motwani.. [13] G. Prentice Hall. Drobot. ı o [4] N..Teor´a de Aut´matas y Lenguajes Formales. Ullman. 1981. [12] Z. CA.

2.. Espa˜a. [24] A. Madrid..I. 1989. Editorial AC.Scheme and the Art of Programming.. Morata. 1985.. D..LANGUAGES AND MACHINES. Petri. [20] M. Proc... Sipser. [23] T. a a [21] M. 2da Ed. Soc. Silva. Turing. The MIT Press. Camelot Publishing Co.An Introduction to the Theory of Computer Science. Universidad de Bonn. 1962. Pozo. pp230-265. Sahni.Concepts in Discrete Mathematics. 1993.. Addison Wesley.Introduction to the Theory of Computation. Springer. Friedman. [22] G. . v. ı n [19] S.. Co.. 1997..Las Redes de Petri en la Autom´tica y la Inform´tica. PWS Pub.Kommunication mit Automaten.202 BIBLIOGRAF´ IA [17] C. 1985..On computable numbers with an application to the Entscheidungs-problem..Teor´as cognitivas del aprendizaje.P. n. 1994. London Math. [18] J. Sudkamp.42.

50 203 codominio. 32 de variables. 6 producto cartesiano. 122 o AFD. 14 decidible. 123 analizador l´xico. 174 o configuraci´n colgada. 6 en extensi´n. 25 no deterministas.. 156 a arboles de derivaci´n. 9 e transitiva. N. de Kleene. 17 de constantes. 116 derivaci´n o . 125 concatenaci´n. 125 o correcta. 160 compiladores. 123 u ambigua. 13 o configuraci´n. 146 finitos. 116 De Morgan. 3 o en intenci´n. 9 sim´trica. 13 o conjunto contable. 120 o condiciones comprensivas. 58 aut´matas equivalentes. 35. 58 alfabeto. 40 conectivos l´gicos. 18 reflexiva. 178 o conjunci´n. 155 e analizador sint´ctico. 10 compilador LL. 9 Chomsky. 19 Church. 97. 44 o de compilaci´n. 96. 4 o intersecci´n. 115 algoritmos de decisi´n. 32 o aut´matas o de Mealy. 14 constantes. 4 conjuntos. 122 o de derivaci´n. 115 o aut´mata finito determinista.´ Indice alfab´tico e a ´rbol de comparaci´n. 6 o potencia. 32 AFN. 11 elemento. 89 cerradura al vac´ 69 ıo. 191 derivable. 53 de Moore. 157 LR. 111 correcci´n. 183 clases de equivalencia. 5 o conmutatividad. 139 o ambig¨edad. 53 de pila. 17 o concatenaci´n de lenguajes. 151. 132 Chomsky. 3 complemento. 6 diferencia. 155 completa. 43 o Cantor. 6 uni´n. 116 completez. 40 excluyentes. 115 de entrada. 113. 96.

32 estado inicial. 32 a m´quinas a de Mealy. 113 ´ ´ INDICE ALFABETICO de tipo 3. 111 lookahead. 117 incorrecta. 12 o incompleta. 160 m´quina a de Turing. 53 de Post. 26 . 125 o jerarqu´ de Chomsky. 15. 124 izquierda. 90 a o gram´tica a ambigua. 156 LR. 56 inyectivas. 90 halt. 44 estados distinguibles. 96. 53 mezcla de gram´ticas. 124 determinismo. 123 completa. 14 equivalencias de expresiones regulares. 117 incorrecta. 37. 128 GT. 34 generado. 19. 79 lenguajes recursivos. 9. 44 incompatibles. 55 de Moore. 146 LL.204 derecha. 113 de tipo 1. 113 regulares. 32 inicial. 116 lenguajes decidibles. teorema. 19. 19. 113 sensitivas al contexto. 132 forma normal de Chomsky. 30. 14 disyunci´n. 117 inducci´n. 96 a gram´ticas a de tipo 0. 171 implicaci´n. 113. 32 diagramas de Venn. 81 estado. 97. 113 LIFO. 113 no restringidas. 194 libres de contexto. 11 Kleene. 26 final. 10 equivalencias de proposiciones. 169 m´quina de estados finitos. 116 incompleta. 194 regulares. 10 totales. 4 distributividad. 17 aceptado. 10 generador de c´digo. 156 o gr´ficas de transici´n. 132 funci´n de transici´n. 79. 10 sobrelyectivas. 113. 8. 26 expresiones regulares. 113 libres de contexto. 194 ıa Kantor. 37. 32 o o funciones. 86 ER. 79 FNCH. 117 gram´tica formal. 113. 46 o modelado. 113 de tipo 2. 111 recursivamente enumerables. 119 a minimizaci´n. 185 Mealy. 13 o dominio. 89 lenguaje. 191 libres de contexto. 48 evento. 116 correcta. 157 LLC. 27 estados compatibles. 19. 26 eventos discretos.

113 tipo 3. 156 tablas de verdad. 113. 113 tipo 1. 96 notaci´n formal. 118 o variables. 46 o subcadena. 182 uni´n de lenguajes. 169 Turing. 136 terminales. 8 reverso. paro de la m´quina de Turing. 148 s´ ımbolo. 17 aceptada. Alan. 191 a pila. 156 o problemas irresolubles. 32 o nubes. 8 sim´trica. 148 palabra. 178 generada. 113 no terminales. 34. 9 e transitiva. 194 regla. 185 MT. 96 tesis de Church. 113 tipo 2. 128 simplificaci´n. 183 tipo 0. 17 subconjunto. 96. 14 teorema de bombeo. 40 pal´ ındromos. 89 de Kleene. 89 teorema de bombeo. 169 no restringidas. 96. 12 recursivamente enumerables. 96 sensitivas al contexto. 169 Turing-aceptable. 96 palabra vac´ 17 ıa. 113 relaci´n o de derivaci´n. 17 s´ ımbolo inicial. 179 Turing-decidible. 27 Turing. 191 proposiciones. 132 regulares. 184 principio de previsi´n. 9 relaciones. 4 tabla de s´ ımbolos.´ ´ INDICE ALFABETICO Moore. 116 o inverso. 96 inaccesibles. 113. 113 tokens. 111 205 . 101 de Cantor. 53 MP. 155 transiciones. 111 reglas gramaticales. 146 Post.

Sign up to vote on this title
UsefulNot useful