Teoría de la Computación

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Teoría de la Computación"

Transcripción

1 Teoría de la Computación Lenguajes, autómatas, gramáticas Rodrigo De Castro Korgi Ph.D. en Matemáticas University of Illinois, U.S.A. Departamento de Matemáticas Universidad Nacional de Colombia, Bogotá

2 Teoría de la Computación Lenguajes, autómatas, gramáticas c Universidad Nacional de Colombia Facultad de Ciencias Juan Manuel Tejeiro, Decano Natalia Ruiz, Vicedecana Académica Gustavo Rubiano, Director de Publicaciones c Rodrigo De Castro Korgi Profesor Asociado Departamento de Matemáticas Primera edición, 2004 Diagramación en L A TEX realizadaporelautor Impresión: UNIBIBLOS Universidad Nacional de Colombia Bogotá D.C., 2004

3 Índice general Prólogo 1 Introducción. Qué es la Teoría de la Computación? 3 1. Alfabetos, cadenas y lenguajes Alfabetos y cadenas Concatenación de cadenas Potencias de una cadena Longitud de una cadena Reflexión o inversa de una cadena Subcadenas, prefijos y sufijos Lenguajes Operaciones entre lenguajes Concatenación de lenguajes Potencias de un lenguaje La clausura de Kleene de un lenguaje Reflexión o inverso de un lenguaje Lenguajes regulares Expresiones regulares Autómatas finitos Autómatas finitos deterministas (AFD) Diagrama de transiciones de un autómata Diseño de autómatas Autómatas finitos no-deterministas (AFN) Equivalencia computacional entre los AFD y los AFN Autómatas con transiciones λ (AFN-λ) iii

4 iv ÍNDICE GENERAL 2.7. Equivalencia computacional entre los AFN-λ y los AFN Teorema de Kleene. Parte I Ejemplos de la parte I del Teorema de Kleene Lema de Arden Teorema de Kleene. Parte II Ejemplos de la parte II del Teorema de Kleene Otras propiedades de los lenguajes regulares Lema de bombeo Propiedades de clausura Propiedades de clausura para autómatas Homomorfismos Imagen inversa de un homomorfismo Algoritmos de decisión Lenguajes y gramáticas independientes del contexto Gramáticas generativas Gramáticas independientes del contexto Árbol de una derivación Gramáticas ambiguas Gramáticas para lenguajes de programación Gramáticas para lenguajes naturales Gramáticas regulares Eliminación de las variables inútiles Eliminación de las producciones λ Eliminación de las producciones unitarias Forma Normal de Chomsky (FNC) Forma Normal de Greibach (FNG) Lema de bombeo para LIC Propiedades de clausura de los LIC Algoritmos de decisión para GIC Autómatas con pila Autómatas con Pila Deterministas (AFPD) Autómatas con pila no-deterministas (AFPN) Aceptación por pila vacía Autómatas con pila y LIC. Parte I Autómatas con pila y LIC. Parte II

5 ÍNDICE GENERAL v 6. Máquinas de Turing Máquinas de Turing como aceptadoras de lenguajes Subrutinas o macros Máquinas de Turing como calculadoras de funciones Máquinas de Turing como generadoras de lenguajes Variaciones del modelo estándar de MT Estado de aceptación único Máquina de Turing con cinta dividida en pistas Máquina de Turing con múltiples cintas Máquinas de Turing no-deterministas (MTN) Simulación de autómatas por medio de máquinas de Turing Simulación de autómatas Simulación de autómatas con pila Autómatas con dos pilas (AF2P) Propiedades de clausura MT, computadores, algoritmos y la tesis de Church-Turing Máquinas de Turing y algoritmos Máquinas de Turing y computadores Problemas indecidibles Codificación y enumeración de máquinas de Turing Máquina de Turing universal Algoritmos de aceptación para lenguajes RE Lenguajes que no son RE Lenguajes RE no recursivos Problemas indecidibles o irresolubles Bibliografía 221

6 vi ÍNDICE GENERAL

7 Prólogo Este libro contiene lo mínimo que los estudiantes de las carreras de ingeniería de sistemas y de matemáticas deberían saber sobre los fundamentos matemáticos de la teoría de la computación. Está basado en el material de clase utilizado por el autor durante los últimos años en la Universidad Nacional de Colombia, sede de Bogotá. Aestudiantesyprofesores El libro está escrito tanto para estudiantes de matemáticas quienes, es de suponer, tienen más experiencia con razonamientos abstractos y demostraciones como para estudiantes de ingeniería. Es el profesor quien debe establecer el tono del curso, enfatizando ya sea el rigor matemático o una presentación más intuitiva y práctica. Los resultados están presentados en forma de teoremas, corolarios y lemas, con sus respectivas demostraciones; éstas pueden omitirse, si así lo estima el profesor. En los cursos dirigidos a estudiantes de ingeniería de sistemas, el énfasis debe residir tanto por parte del profesor como por parte del estudiante en los ejemplos y ejercicios prácticos; hay que resaltar más el significado de los enunciados que sus demostraciones formales. El libro contiene gran cantidad de ejemplos y problemas resueltos, con aplicaciones o ilustraciones directas de la teoría. Como prerrequisito, es imprescindible que el estudiante haya tomado al menos un curso de matemáticas discretas en el que se haya familiarizado con las nociones básicas y la notación de la teoría intuitiva de conjuntos, grafos, inducción matemática y lógica elemental. La experiencia previa en programación es muy útil pero, de ninguna manera, necesaria. El material se presenta en secciones relativamente cortas, lo que permite alguna flexibilidad en la selección de los tópicos del curso. Así, si el tiempo 1

8 2 PRÓLOGO disponible no es holgado, o no es posible avanzar con la velocidad suficiente, podrían suprimirse las secciones demarcadas con el símbolo. Casi todas las secciones poseen ejercicios, de variada dificultad; los más difíciles están precedidos de un símbolo de admiración! y podrían ser considerados opcionales. Es responsabilidad del estudiante resolver los ejercicios que sean asignados por el profesor. La única manera de aprender y asimilar las ideas y técnicas presentadas en la clase es trabajar seria y completamente los ejercicios. Material de apoyo en la red Versiones preliminares de estas notas aparecieron, de forma incompleta, en el curso virtual de Teoría de la Computación perteneciente al programa Universidad Virtual de la la Universidad Nacional de Colombia. Es la intención del autor mantener y actualizar permanentemente la versión virtual interactiva de este curso, con material de apoyo como temas y ejercicios nuevos, corrección de errores, software, enlaces a otra páginas Web, etc. Se puede acceder libremente al curso virtual en el portal siguiendo los enlaces: Cursos Facultad de Ciencias Matemáticas Teoría de la Computación. Agradecimientos Durante la elaboración de estas notas he recibido por parte de estudiantes atentos muchas observaciones útiles que han ayudado a mejorar sustancialmente la presentación. Quiero expresarles mis agradecimientos a todos ellos, demasiado numerosos para mencionarlos individualmente. La primera versión del curso virtual fue realizada con la ayuda del estudiante de posgrado Adolfo Reyes, a quien expreso mi gratitud y reconocimiento. Para la preparación de la presente versión tuve la suerte de contar con la colaboración del estudiante de matemáticas Camilo Cubides, con quien estoy muy agradecido por la calidad y seriedad de su trabajo. Finalmente, quiero agradecer a Gustavo Rubiano, Director de las oficina de publicaciones de la Facultad de Ciencias, por su continuo apoyo y su cooperación desinteresada.

9 Introducción Qué es la Teoría de la Computación? La Teoría de la Computación estudia modelos abstractos de los dispositivos concretos que conocemos como computadores, y analiza lo que se puede y no se puede hacer con ellos. Este estudio teórico se inició varias décadas antes de la aparición de los primeros computadores reales y continúa creciendo, a medida que que la computación incrementa su sofisticación. Entre los muchos tópicos que conforman la teoría de la computación, sólo tendremos la oportunidad de tratar someramente los dos siguientes: Modelos de computación. Las investigaciones en este campo comenzaron en la década de los 30 del siglo XX con el trabajo del lógico norteamericano Alonzo Church ( ) y del matemático británico Alan Turing ( ). Church introdujo el formalismo conocido como cálculo-λ y enunció la tesis hoy conocida como tesis de Church de que las funciones efectivamente computables, es decir, computables por cualquier método computacional concebible, son exactamente las funciones λ-computables. En contraste con el enfoque más abstracto de Church, Turing (quien fue alumno doctoral de Church en la universidad de Princeton) propuso un modelo concreto de máquina computadora, hoy conocida como la máquina de Turing, capaz de simular las acciones de cualquier otro dispositivo físico de computación secuencial. Curiosamente, las propuestas de Church y Turing se publicaron exactamente en el mismo año: Los dos formalismos resultaron ser equivalentes y, desde entonces, se han propuesto muchos otros modelos de computación. Como todos han resultados ser equivalentes entre sí, ha ganado 3

10 4 INTRODUCCIÓN aceptación universal la tesis de Church-Turing: no hay modelo de computación más general ni poderoso que la máquina de Turing. En los años 40 y 50 del siglo XX se adelantaron investigaciones sobre máquinas de Turing con capacidad restringida, surgiendo así la noción de máquina de estado finito o autómata finito ( autómata es sinónimo de máquina de cómputo automático ). Los autómatas han resultado ser modelos muy útiles para el diseño de diversos tipos de software y hardware. Lenguajes y gramáticas formales. Una línea investigativa, aparentemente alejada de los modelos de computación, surgió con los estudios del lingüista norteamericano Noam Chomsky 1. Chomsky introdujo en 1956 la noción de gramática generativa con el propósito de describir los lenguajes naturales como el español, el inglés, el francés, etc. Chomsky clasificó las gramáticas en cuatro tipos, dependiendo de la forma de sus producciones, que son las reglas que utiliza una gramática para generar palabras o cadenas de símbolos. Pocos años después se estableció que hay una estrecha relación entre autómatas y gramáticas: los lenguajes de la llamada jerarquía de Chomsky corresponden a los lenguajes que pueden ser reconocidos por tipos especiales de autómatas. La interacción entre los autómatas (mecanismos para procesar cadenas de símbolos) y las gramáticas (mecanismos para generar cadenas de símbolos) es una fuente de resultados profundos y significativos. Desde la aparición de los influyentes textos de Hopcroft y Ullman ([HU1], 1969) y ([HU2], 1979), un curso semestral básico de teoría de la computación se ha centrado en el estudio de autómatas y gramáticas. Estas notas de clase reflejan esa tradición. 1 En el año 2002, la Universidad Nacional de Colombia otorgó el doctorado Honoris Causa a Noam Chomsky.

11 Capítulo 1 Alfabetos, cadenas y lenguajes De manera muy amplia podría decirse que la computación es la manipulación de secuencias de símbolos. Pero el número de símbolos disponibles en cualquier mecanismo de cómputo es finito y todos los objetos usados como entradas o salidas (inputs/outputs) deben ser identificados en un tiempo finito. Desde el punto de vista teórico esto impone dos restricciones básicas: el conjunto de símbolos (alfabeto) debe ser finito y se deben considerar únicamente cadenas (secuencias de símbolos) de longitud finita. Surgen así los ingredientes esenciales de una teoría abstracta de la computación: alfabetos y cadenas. Los conjuntos de cadenas (ya sean finitos o infinitos) se denominarán lenguajes Alfabetos y cadenas Un alfabeto es un conjunto finito no vacío cuyos elementos se llaman símbolos. Denotamos un alfabeto arbitrario con la letra Σ. Una cadena o palabra sobre un alfabeto Σ es cualquier sucesión (o secuencia) finita de elementos de Σ. Admitimos la existencia de una única cadena que no tiene símbolos, la cual se denomina cadena vacía yse denota con λ. La cadena vacía desempeña, en la teoría de la computación, un papel similar al del conjunto vacío en la teoría de conjuntos. Ejemplo Sea Σ = {a, b} el alfabeto que consta de los dos símbolos a y b. Las siguientes son cadenas sobre Σ: aba ababaaa aaaab. 5

12 6 CAPÍTULO 1. ALFABETOS, CADENAS Y LENGUAJES Obsérvese que aba aab. El orden de los símbolos en una cadena es significativo ya que las cadenas se definen como sucesiones, es decir, conjuntos secuencialmente ordenados. Ejemplo El alfabeto Σ = {0, 1} se conoce como alfabeto binario. Las cadenas sobre este alfabeto son secuencias finitas de ceros y unos, llamadas secuencias binarias, tales como Ejemplo Σ = {a, b, c,..., x, y, z, A, B, C,..., X, Y, Z}, el alfabeto del idioma castellano. Las palabras oficiales del castellano (las que aparecen en el diccionario DRA) son cadenas sobre Σ. Ejemplo El alfabeto utilizado por muchos de los llamados lenguajes de programación (como Pascal o C) es el conjunto de caracteres ASCII (o un subconjunto de él) que incluye, por lo general, las letras mayúsculas y minúsculas, los símbolos de puntuación y los símbolos matemáticos disponibles en los teclados estándares. El conjunto de todas las cadenas sobre un alfabeto Σ, incluyendo la cadena vacía, se denota por Σ. Ejemplo Sea Σ = {a, b, c}, entonces Σ = {λ, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, abc, baa,...}. En la siguiente tabla aparece la notación corrientemente utilizada en la teoría de la computación. De ser necesario, se emplean subíndices. Notación usada en la teoría de la computación Σ, Γ denotan alfabetos. Σ denota el conjunto de todas las cadenas que se pueden formar con los símbolos del alfabeto Σ. a, b, c, d, e,... denotan símbolos de un alfabeto. u, v, w, x, y, z,... α, β, γ,... λ denotan cadenas, es decir, sucesiones finitas de símbolos de un alfabeto. denota la cadena vacía, es decir, la única cadena que no tiene símbolos. A, B, C,..., L, M, N,... denotan lenguajes (definidos más adelante).

13 1.2. CONCATENACIÓN DE CADENAS 7 Algunos autores denotan la cadena vacía con la letra griega ε. Preferimos denotarla con λ porque ε tiende a confundirse con el símbolo usado para la relación de pertenencia. Si bien un alfabeto Σ es un conjunto finito, Σ es siempre un conjunto infinito (enumerable). En el caso más simple, Σ contiene solo un símbolo, Σ = {a}, yσ = {λ, a, aa, aaa, aaaa, aaaaa,...}. Hay que distinguir entre los siguientes cuatro objetos, que son todos diferentes entre sí:, λ, { } y {λ}. La mayor parte de la teoría de la computación se hace con referencia a un alfabeto Σ fijo (pero arbitrario) Concatenación de cadenas Dado un alfabeto Σ y dos cadenas u, v Σ,laconcatenación de u y v se denota como u v osimplementeuv y se define descriptivamente así: 1. Si v = λ, entonces u λ = λ u = u. Es decir, la concatenación de cualquier cadena u con la cadena vacía, a izquierda o a derecha, es igual a u. 2. Si u = a 1 a 2 a n, v = b 1 b 2 b m, entonces u v = a 1 a 2 a n b 1 b 2 b m. Es decir, u v es la cadena formada escribiendo los símbolos de u ya continuación los símbolos de v. La concatenación de cadenas se puede definir inductiva o recursivamente de la siguiente manera. Si u, v Σ, a Σ, entonces 1. u λ = λ u = u. 2. u (va) =(u v)a. Propiedad. La concatenación de cadenas es una operación asociativa. Es decir, si u, v, w Σ, entonces (uv)w = u(vw). Demostración. Se puede hacer escribiendo explícitamente las cadenas u, v, w y usando la definición descriptiva de concatenación. También se puede dar una demostración inductiva usando la definición recursiva de concatenación (ejercicio opcional).

14 8 CAPÍTULO 1. ALFABETOS, CADENAS Y LENGUAJES 1.3. Potencias de una cadena Dada u Σ y n N, se define (descriptivamente) u n en la siguiente forma u 0 = λ, u n = uu }{{ u}. n veces Como ejercicio, el estudiante puede dar una definición recursiva de u n Longitud de una cadena La longitud de una cadena u Σ se denota u y se define como el número de símbolos de u (contando los símbolos repetidos). Es decir, u = Ejemplo aba = 3, baaa = 4. { 0, si u = λ, n, si u = a 1 a 2 a n. Ejemplo Si w Σ, n, m N, demostrar que w n+m = w n + w m. Esta no es una propiedad realmente importante ( no la usaremos nunca en este libro!); la presentamos aquí para enfatizar los conceptos involucrados e ilustrar los razonamientos estrictos. Solución. lado, Caso n, m 1. w n+m = ww }{{ w} =(n + m) w. Por otro n+m veces w n + w m = ww }{{ w} + ww }{{ w} = n w + m w. n veces m veces Caso n =0,m 1. w n+m = w 0+m = w m. Por otro lado, w n + w m = w 0 + w m = λ + w m =0+ w m = w m. Caso m =0,n 1. Similar al caso anterior. Caso n =0,m= 0. w n+m = w 0+0 = λ = 0. Por otro lado, w n + w m = w 0 + w 0 = λ + λ =0+0=0.

15 1.5. REFLEXIÓN O INVERSA DE UNA CADENA Reflexión o inversa de una cadena La reflexión o inversa de una cadena u Σ se denota u R ysedefine descriptivamente así: u R = { λ, si u = λ, a n a 2 a 1, si u = a 1 a 2 a n. De la definición se observa claramente que la reflexión de la reflexión de una cadena es la misma cadena, es decir, (u R ) R = u, para u Σ. Algunos autores escriben u 1 en lugar de u R para denotar la reflexión de una cadena u. Ejercicios de la sección 1.5 ➀ Dar una definición recursiva de u R. ➁ Si u, v Σ, demostrar que (uv) R = v R u R. Generalizar esta propiedad a la concatenación de n cadenas Subcadenas, prefijos y sufijos Una cadena v es una subcadena ounasubpalabra de u si existen cadenas x, y tales que u = xvy. Nótese que x o y pueden ser λ y, por lo tanto, la cadena vacía es una subcadena de cualquier cadena y toda cadena es subcadena de sí misma. Un prefijo de u es una cadena v tal que u = vw para alguna cadena w Σ.Sedicequev es un prefijo propio si v u. Similarmente, un sufijo de u es una cadena v tal que u = wv para alguna cadena w Σ.Sedicequev es un sufijo propio si v u. Obsérvese que λ es un prefijo y un sufijo de toda cadena u ya que uλ = λu = u. Por la misma razón, toda cadena u es prefijo y sufijo de sí misma. Ejemplo Sean Σ = {a, b, c, d} y u = bcbaadb.

16 10 CAPÍTULO 1. ALFABETOS, CADENAS Y LENGUAJES Prefijos de u : λ b bc bcb bcba bcbaa bcbaad bcbaadb Sufijos de u : λ b db adb aadb baadb cbaadb bcbaadb 1.7. Lenguajes Un lenguaje L sobre un alfabeto Σ es un subconjunto de Σ,esdecir L Σ. Casos extremos: L =, lenguaje vacío. L =Σ, lenguaje de todas las cadenas sobre Σ. Todo lenguaje L satisface L Σ, y puede ser finito o infinito. Los lenguajes se denotan con letras mayúsculas A, B, C,..., L, M, N,.... Enla siguiente gráfica se visualizan dos lenguajes A y B sobre Σ. Σ A B Ejemplos Los siguientes son ejemplos de lenguajes sobre los alfabetos especificados. Σ={a, b, c}. L = {a, aba, aca}. Σ={a, b, c}. L = {a, aa, aaa,...} = {a n : n 1}.

17 1.8. OPERACIONES ENTRE LENGUAJES 11 Σ={a, b, c}. L = {λ, aa, aba, ab 2 a, ab 3 a,...} = {ab n a : n 0} {λ}. Σ={a, b, c,..., x, y, z, A, B, C,..., X, Y, Z}. L = {u Σ : u aparece en el diccionario español DRA}. L es un lenguaje finito. Σ={a, b, c}. L = {u Σ : u no contiene el símbolo c}. Por ejemplo, abbaab L pero abbcaa / L. Σ={0, 1}. L = conjunto de todas las secuencias binarias que contienen un número impar de unos. Σ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. El conjunto N de los números naturales se puede definir como un lenguaje sobre Σ, en la siguiente forma: N = {u Σ : u =0ó0noesunprefijodeu}. Como ejercicio, el estudiante puede definir el conjunto de los enteros Z = {..., 2, 1, 0, 1, 2,...} como un lenguaje sobre un alfabeto adecuado. El concepto abstracto de lenguaje, tal como se ha definido, no es exactamente la misma noción utilizada en la expresión lenguaje de programación. Para precisar la relación entre estos conceptos, consideremos el alfabeto Σ de los caracteres ASCII. Un programa en C o en Pascal, por ejemplo, es simplemente una cadena de símbolos de Σ y, por lo tanto, un conjunto de programas es un lenguaje (en el sentido formal definido en esta sección) Operaciones entre lenguajes Puesto que los lenguajes sobre Σ son subconjuntos de Σ, las operaciones usuales entre conjuntos son también operaciones válidas entre lenguajes. Así, si A y B son lenguajes sobre Σ (es decir A, B Σ ), entonces los siguientes también son lenguajes sobre Σ: A B A B A B A =Σ A Unión Intersección Diferencia Complemento Estas operaciones entre lenguajes se llaman operaciones conjuntistas o booleanas para distinguirlas de las operaciones lingüísticas (concatenación, potencia, inverso, clausura) que son extensiones a los lenguajes de las operaciones entre cadenas.

18 12 CAPÍTULO 1. ALFABETOS, CADENAS Y LENGUAJES 1.9. Concatenación de lenguajes La concatenación de dos lenguajes A y B sobre Σ, notada A B osimplemente AB se define como AB = {uv : u A, v B}. En general, AB BA. Ejemplo Si Σ = {a, b, c}, A = {a, ab, ac}, B = {b, b 2 }, entonces AB = {ab, ab 2,ab 2,ab 3, acb, acb 2 }. BA = {ba, bab, bac, b 2 a, b 2 ab, b 2 ac}. Ejemplo Si Σ = {a, b, c}, A = {ba, bc}, B = {b n : n 0}, entonces AB = {bab n : n 0} {bcb n : n 0}. BA = {b n ba : n 0} {b n bc : n 0} = {b n+1 a : n 0} {b n+1 c : n 0} = {b n a : n 1} {b n c : n 1}. Propiedades de la concatenación de lenguajes. Sean A, B, C lenguajes sobre Σ, esdecira, B, C Σ. Entonces 1. A = A =. 2. A {λ} = {λ} A = A. 3. Propiedad Asociativa, A (B C) =(A B) C. 4. Distributividad de la concatenación con respecto a la unión, A (B C) =A B A C. (B C) A = B A C A. 5. Propiedad distributiva generalizada. Si {B i } i I es una familia cualquiera de lenguajes sobre Σ, entonces A B i = (A B i ), i I i I ( ) B i A = (B i A). i I i I

19 1.9. CONCATENACIÓN DE LENGUAJES 13 Demostración. 1. A = {uv : u A, v } =. 2. A {λ} = {uv : u A, v {λ}} = {u : u A} = A. 3. Se sigue de la asociatividad de la concatenación de cadenas. 4. Caso particular de la propiedad general, demostrada a continuación. 5. Demostración de la igualdad A B i = (A B i ): x A i I B i x = u v, con u A & v i I B i x = u v, con u A & v B j, para algún j I x A B j, para algún j I x i I (A B i). ( ) La igualdad B i A = (B i A) se demuestra de forma similar. i I i I i I i I La propiedad asociativa permite escribir concatenaciones de tres o más lenguajes sin necesidad de usar paréntesis. En general, no se cumple que A (B C) =A B A C. Esdecir, la concatenación no es distributiva con respecto a la intersección. Contraejemplo: A = {a, λ}, B = {λ}, C = {a}. Setiene: A (B C) ={a, λ} =. Por otro lado, A B A C = {a, λ} {λ} {a, λ} {a} = {a, λ} {a 2,a} = {a}. Ejercicios de la sección 1.9 ➀ Dar un ejemplo de un alfabeto Σ y dos lenguajes diferentes A, B sobre Σ tales que AB = BA. ➁ Una de las dos contenencias siguientes es verdadera y la otra es falsa. Demostrar o refutar, según sea el caso: (i) A (B C) A B A C. (ii) A B A C A (B C).

20 14 CAPÍTULO 1. ALFABETOS, CADENAS Y LENGUAJES Potencias de un lenguaje Dado un lenguaje A sobre Σ, (A Σ ), y un número natural n N, se define A n en la siguiente forma A 0 = {λ}, A n = AA }{{ A} = {u 1 u n : u i A, para todo i, 1 i n}. n veces De esta forma, A 2 es el conjunto de las concatenaciones dobles de cadenas de A, A 3 está formado por las concatenaciones triples y, en general, A n es el conjunto de todas las concatenaciones de n cadenas de A, de todas las formas posibles. Como ejercicio, el estudiante puede dar una definición recursiva de A n La clausura de Kleene de un lenguaje La clausura de Kleene o estrella de Kleene osimplementelaestrella de un lenguaje A, A Σ, es la unión de todas las potencias de A yse denota por A. (Descripción 1) A = i 0 A i = A 0 A 1 A 2 A n Según la definición de las potencias de una lenguaje, A consta de todas las concatenaciones de cadenas de A consigo mismas, de todas las formas posibles. Tenemos así una útil descripción de A : (Descripción 2) A = conjunto de todas las concatenaciones de cadenas de A, incluyendoλ = {u 1 u n : u i A, n 0} De manera similar se define la clausura positiva de un lenguaje A, A Σ, denotada por A +. A + = i 1 A i = A 1 A 2 A n A + se puede describir de la siguiente manera A + = conjunto de todas las concatenaciones de cadenas de A = {u 1 u n : u i A, n 1}

21 1.11. LA CLAUSURA DE KLEENE DE UN LENGUAJE 15 Obsérvese que A = A + {λ} yquea = A + si y solamente si λ A. Propiedades de y+.seaaunlenguaje sobre Σ, es decir, A Σ. 1. A + = A A = A A. 2. A A = A. 3. ( A ) n = A, para todo n ( A ) = A. 5. A + A + A ( A ) + = A. 7. ( A +) = A. 8. ( A +) + = A Si A y B son lenguajes sobre Σ, entonces (A B) =(A B ). Demostración. 1. A A = A (A 0 A 1 A 2 ) = A 1 A 2 A 3 = A +. Similarmente se demuestra que A A = A Si x A A, entonces x = u v, con u A, v A.Demodoque, x = u v, con u = u 1 u 2 u n, u i A, n 0 y v = v 1 v 2 v m, v i A, m 0. De donde x = u v = u 1 u 2 u n v 1 v 2 v m. con u i A, v i A, n 0. Por lo tanto, x es una concatenación de n + m cadenas de A. Asíquex A. Recíprocamente, si x A, entonces x = x λ A A.Estopruebala igualdad de los conjuntos A A y A. 3. Se sigue de la propiedad anterior. ( A ) = ( A ) 0 ( A ) 1 ( A ) 2 4. = {λ} A A A = A.

22 16 CAPÍTULO 1. ALFABETOS, CADENAS Y LENGUAJES 5. La demostración de esta propiedad es similar a la de la propiedad 2, pero con la restricción m, n 1. En general, no se tiene la igualdad A + A + = A + ; más adelante se mostrará un contraejemplo. ( A ) + = ( A ) 1 (A ) 2 (A ) 3 6. = A A A = A. ( A + ) = ( A + ) 0 ( A + ) 1 ( A + ) 2 7. = {λ} A + A + A + = A (conjuntos contenidos en A + ) = A. ( A + ) + = ( A + ) 1 ( A + ) 2 ( A + ) 3, 8. = A + (conjuntos contenidos en A + ) = A Según la Descripción 2, el lenguaje (A B) está formado por las concatenaciones de cadenas de A consigo mismas, las concatenaciones de cadenas de B consigo mismas y las concatenaciones de cadenas de A con cadenas de B, de todas las formas posibles y en cualquier orden. Si se usa también la Descripción 2, se observa que eso mismo se obtiene al efectuar (A B ). Contraejemplo de A + A + = A +.SeaΣ={a, b},a = {a}. Se tiene A + = A 1 A 2 = {a} {aa} {aaa} = {a n : n 1}. Por otro lado, A + A + = {a, a 2,a 3,...} {a, a 2,a 3,...} = {a 2,a 3,a 4,...} = {a n : n 2}. Según las definiciones dadas, Σ tiene dos significados: Σ = conjunto de las cadenas sobre el alfabeto Σ. Σ = conjunto de todas las concatenaciones de cadenas de Σ. No hay conflicto de notaciones porque las dos definiciones anteriores de Σ dan lugar al mismo conjunto.

23 1.12. REFLEXIÓN O INVERSO DE UN LENGUAJE Reflexión o inverso de un lenguaje Dado A un lenguaje sobre Σ, se define A R de la siguiente forma: A R = {u R : u A}. A R se denomina la reflexión oelinverso de A. Propiedades. Sean A y B lenguajes sobre Σ (es decir, A, B Σ ). 1. (A B) R = B R A R. 2. (A B) R = A R B R. 3. (A B) R = A R B R. 4. ( A R) R = A. 5. (A ) R = ( A R). 6. (A + ) R = ( A R) +. Demostración. Demostraremos las propiedades 1 y 5; las demás se dejan como ejercicio para el estudiante. 1. x (A B) R x = u R, donde u A B x = u R, donde u = vw, v A, w B x =(vw) R, donde v A, w B x = w R v R, donde v A, w B x B R A R. 5. x (A ) R x = u R, donde u A x =(u 1 u 2 u n ) R, donde los u i A, n 0 x = u R n u R 2 u R 1, donde los u i A, n 0 x (A R ). Ejercicios de la sección 1.12 ➀ Demostrar las propiedades 2, 3, 4 y 6 de la reflexión de cadenas. ➁ Se pueden generalizar las propiedades 2 y 3 anteriores para uniones e intersecciones arbitrarias, respectivamente?

24 18 CAPÍTULO 1. ALFABETOS, CADENAS Y LENGUAJES Lenguajes regulares Los lenguajes regulares sobre un alfabeto dado Σ son todos los lenguajes que se pueden formar a partir de los lenguajes básicos, {λ}, {a}, a Σ, por medio de las operaciones de unión, concatenación y estrella de Kleene. A continuación presentamos una definición recursiva de los lenguajes regulares. Sea Σ un alfabeto. 1., {λ} y {a}, para cada a Σ, son lenguajes regulares sobre Σ. Estos son los denominados lenguajes regulares básicos. 2. Si A y B son lenguajes regulares sobre Σ, también lo son A B A B A (unión), (concatenación), (estrella de Kleene). Obsérvese que tanto Σ como Σ son lenguajes regulares sobre Σ. La unión, la concatenación y la estrella de Kleene se denominan operaciones regulares. Ejemplos Sea Σ = {a, b}. Los siguientes son lenguajes regulares sobre Σ: 1. El lenguaje A de todas las cadenas que tienen exactamente una a: A = {b} {a} {b}. 2. El lenguaje B de todas las cadenas que comienzan con b: B = {b} {a, b}. 3. El lenguaje C de todas las cadenas que contienen la cadena ba: 4. ({a} {b} ) {a}. 5. [( {a} {b} ) {b} ]. C = {a, b} {ba} {a, b}. Es importante observar que todo lenguaje finito L = {w 1,w 2,...,w n } es regular ya que L se puede obtener con uniones y concatenaciones: L = {w 1 } {w 2 } {w n }, y cada w i es la concatenación de un número finito de símbolos, w i = a 1 a 2 a k ; por lo tanto, {w i } = {a 1 } {a 2 } {a k }.

25 1.14. EXPRESIONES REGULARES Expresiones regulares Con el propósito de simplificar la descripción de los lenguajes regulares se definen las llamadas expresiones regulares. La siguiente es la definición recursiva de las expresiones regulares sobre un alfabeto Σ dado. 1. Expresiones regulares básicas: es una expresión regular que representa al lenguaje. λ es una expresión regular que representa al lenguaje {λ}. a es una expresión regular que representa al lenguaje {a}, a Σ. 2. Si R y S son expresiones regulares sobre Σ, también lo son: (R)(S) (R S) (R) (R)(S) representa la concatenación de los lenguajes representados por R y S; (R S) representa su unión, y (R) representa la clausura de Kleene del lenguaje representado por R. Los paréntesis ( y ) son símbolos de agrupación y se pueden omitir si no hay peligro de ambigüedad. Para una expresión regular R cualquiera se utiliza en ocasiones la siguiente notación: L(R) := lenguaje representado por R. Utilizando esta notación y la definición recursiva de expresión regular podemos escribir las siguientes igualdades en las que R y S son expresiones regulares arbitrarias: L( ) =. L(λ) ={λ}. L(a) ={a}, a Σ. L(RS) =L(R)L(S). L(R S) =L(R) L(S). L(R )=L(R). Ejemplo Dado el alfabeto Σ = {a, b, c}, (a b )a (bc)

26 20 CAPÍTULO 1. ALFABETOS, CADENAS Y LENGUAJES es una expresión regular que representa al lenguaje ({a} {b} ) {a} {bc}. Ejemplo Dado el alfabeto Σ = {a, b}, (λ a) (a b) (ba) es una expresión regular que representa al lenguaje ({λ} {a}) ({a} {b}) {ba}. Ejemplos Podemos representar los tres primeros lenguajes de la sec con expresiones regulares: ción 1. El lenguaje A de todas las cadenas que tienen exactamente una a: A = b ab. 2. El lenguaje B de todas las cadenas que comienzan con b: B = b(a b). 3. El lenguaje C de todas las cadenas que contienen la cadena ba: C =(a b) ba(a b). La representación de lenguajes regulares por medio de expresiones regulares no es única. Es posible que haya varias expresiones regulares diferentes para el mismo lenguaje. Por ejemplo, b(a b) y b(b a) representan el mismo lenguaje. Otro ejemplo: las dos expresiones regulares (a b) y(a b ) representan el mismo lenguaje por la propiedad 9 de la sección Ejemplos Encontrar expresiones regulares que representen los siguientes lenguajes, definidos sobre el alfabeto Σ = {a, b}: 1. Lenguaje de todas las cadenas que comienzan con el símbolo b y terminan con el símbolo a. Solución. b(a b) a.

27 1.14. EXPRESIONES REGULARES Lenguaje de todas las cadenas que tienen un número par de símbolos (cadenas de longitud par). Solución. (aa ab ba bb). Otra expresión regular para este lenguaje es [(a b)(a b)]. 3. Lenguaje de todas las cadenas que tienen un número par de aes. Soluciones: b (b ab ab ). (ab a b). (b ab ab ) b. Ejemplos Encontrar expresiones regulares que representen los siguientes lenguajes, definidos sobre el alfabeto Σ = {0, 1}: 1. Lenguaje de todas las cadenas que tienen exactamente dos ceros. Solución Lenguaje de todas las cadenas cuyo penúltimo símbolo, de izquierda a derecha, es un 0. Solución. (0 1) 0(0 1). Usando la propiedad distributiva obtenemos otra expresión regular para este lenguaje: (0 1) 00 (0 1) 01. Ejemplo Sea Σ = {0, 1}. Encontrar una expresión regular que represente el lenguaje de todas las cadenas que no contienen dos ceros consecutivos. Solución. La condición de que no haya dos ceros consecutivos implica que todo cero debe estar seguido necesariamente de un uno, excepto un cero al final de la cadena. Por lo tanto, las cadenas de este lenguaje se obtienen concatenado unos con bloques 01, de todas las formas posibles. Hay que tener en cuenta, además, que la cadena puede terminar ya sea en 1 o en 0. A partir de este análisis, llegamos a la expresión regular (1 01) (1 01) 0. Usando la propiedad distributiva, obtenemos otra expresión para este lenguaje: (1 01) (λ 0). Ejemplo Sea Σ = {a, b, c}. Encontrar una expresión regular que repre- el lenguaje de todas las cadenas que no contienen la ca- sente dena bc.

28 22 CAPÍTULO 1. ALFABETOS, CADENAS Y LENGUAJES Solución. Una b puede estar seguida solamente de otra b o de una a, mientras que las aes y las ces pueden estar seguidas de cualquier símbolo. Teniendo en cuenta todas las restricciones y posibilidades, arribamos a la siguiente expresión regular: (a c b + a) b. La condición de que no aparezca la cadena bc significa que una c puede estar precedida solamente de una a y de otra c. Siguiendo esta descripción, obtenemos otra expresión regular para el lenguaje en cuestión: Ejercicios de la sección 1.14 c (b ac ). ➀ Encontrar expresiones regulares para los lenguajes descritos a continuación: (i) Σ = {0, 1, 2}. Lenguaje de todas las cadenas que comienzan con 2 y terminan con 1. (ii) Σ = {a, b, c}. Lenguaje de todas las cadenas que tienen un número par de símbolos. (iii) Σ = {a, b}. Lenguaje de todas las cadenas que tienen un número impar de símbolos. (iv) Σ = {a, b, c}. Lenguaje de todas las cadenas que tienen un número impar de símbolos. (v) Σ = {a, b}. Lenguaje de todas las cadenas que tienen un número impar de aes. (vi) Σ = {a, b}. Lenguaje de todas las cadenas que tienen la cadena ab un número par de veces. (vii) Σ = {a, b}. Lenguaje de todas las cadenas que tienen un número par de aes o un número impar de bes. (viii) Σ = {0, 1, 2}. Lenguaje de todas las cadenas que no contienen dos unos consecutivos. ➁ Encontrar expresiones regulares para los siguientes lenguajes definidos sobre el alfabeto Σ = {0, 1}: (i) Lenguaje de todas las cadenas que tienen por lo menos un 0 y por lo menos un 1.

29 1.14. EXPRESIONES REGULARES 23 (ii) Lenguaje de todas las cadenas que tienen a lo sumo dos ceros consecutivos. (iii) Lenguaje de todas las cadenas cuyo quinto símbolo, de izquierda a derecha, es un 1. (iv) Lenguaje de todas las cadenas de longitud par 2 formadas por ceros y unos alternados. (v) Lenguaje de todas las cadenas cuya longitud es 4. (vi) Lenguaje de todas las cadenas de longitud impar que tienen unos únicamente en las posiciones impares. (vii) Lenguaje de todas las cadenas cuya longitud es un múltiplo de tres. (viii) Lenguaje de todas las cadenas que no contienen tres ceros consecutivos. (ix) Lenguaje de todas las cadenas que no contienen cuatro ceros consecutivos.!(x) Lenguaje de todas las cadenas que no contienen la subcadena 101. No todos los lenguajes sobre un alfabeto dado Σ son regulares. Más adelante se mostrará que el lenguaje L = {λ, ab, aabb, aaabbb,... } = {a n b n : n 0} sobre Σ = {a, b} no se puede representar por medio de una expresión regular, y por lo tanto, no es un lenguaje regular.

30

31 Capítulo 2 Autómatas finitos Los autómatas son máquinas abstractas con capacidad de computación. Históricamente, su estudio se originó con la llamada máquina de Turing, que fue propuesta en 1936 por el matemático británico Alan Turing ( ) con el propósito de precisar las características y las limitaciones de un dispositivo de computación mecánica. En los años 40 y 50 del siglo XX se adelantaron investigaciones sobre máquinas de Turing con capacidad restringida, lo que dio lugar a la noción de autómata finito Autómatas finitos deterministas (AFD) Los autómatas finitos son máquinas abstractas que procesan cadenas de entrada, las cuales son aceptadas o rechazadas: Autómata M si (u es aceptada) Cadena de entrada u no (u es rechazada) El autómata actúa leyendo los símbolos escritos sobre una cinta semiinfinita, dividida en celdas o casillas, sobre la cual se escribe una cadena de entrada u, un símbolo por casilla. El autómata posee una unidad de control (también llamada cabeza lectora, control finito o unidad de 25

32 26 CAPÍTULO 2. AUTÓMATAS FINITOS memoria) que tiene un número finito de configuraciones internas, llamadas estados del autómata. Entre los estados de un autómata se destacan el estado inicial y los estados finales o estados de aceptación. Formalmente, un autómata finito M está definido por cinco parámetros o componentes, M =(Σ,Q,q 0,F,δ), a saber: 1. Un alfabeto Σ, llamado alfabeto de cinta. Todas las cadenas que procesa M pertenecen a Σ. 2. Q = {q 0,q 1,...,q n }, conjunto de estados internos del autómata. 3. q 0 Q, estado inicial. 4. F Q, conjunto de estados finales o de aceptación. F. 5. La función de transición del autómata δ : Q Σ Q (q, s) δ(q, s) Una cadena de entrada u se coloca en la cinta de tal manera que el primer símbolo de u ocupa la primera casilla de la cinta. La unidad de control está inicialmente en el estado q 0 escaneando la primera casilla: u {}}{ a a b Unidad de control q La función de transición δ indica el estado al cual pasa el control finito, dependiendo del símbolo escaneado y de su estado actual. Así, δ(q, s) =q significa que, en presencia del símbolo s, la unidad de control pasa del estado q al estado q y se desplaza hacia la derecha. Esta acción constituye un paso computacional: δ(q, s) =q s s q q

33 2.1. AUTÓMATAS FINITOS DETERMINISTAS (AFD) 27 Puesto que la función δ está definida para toda combinación estadosímbolo, una cadena de entrada cualquiera es procesada completamente, hasta que la unidad de control encuentra la primera casilla vacía. La unidad de control de un autómata siempre se desplaza hacia laderecha; no puede retornar ni escribir símbolos sobre la cinta. Ejemplo Consideremos el autómata definido por los siguientes cinco componentes: Σ={a, b}. Q = {q 0,q 1,q 2 }. q 0 : estado inicial. F = {q 0,q 2 }, estados de aceptación. Función de transición δ: δ a b q 0 q 0 q 1 q 1 q 1 q 2 q 2 q 1 q 1 δ(q 0,a)=q 0 δ(q 0,b)=q 1 δ(q 1,a)=q 1 δ(q 1,b)=q 2 δ(q 2,a)=q 1 δ(q 2,b)=q 1. Vamos a ilustrar el procesamiento de dos cadenas de entrada. 1. u = aabab. u {}}{ a a b a b q 0 q 0 q 0 q 1 q 1 q 2 Como q 2 es un estado de aceptación, la cadena de entrada u es aceptada. 2. v = aababa. v {}}{ a a b a b a q 0 q 0 q 0 q 1 q 1 q 2 q 1 Puesto que q 1 no es un estado de aceptación, la entrada v es rechazada.

34 28 CAPÍTULO 2. AUTÓMATAS FINITOS Caso especial: la cadena λ es la cadena de entrada. q 0 Como q 0 es un estado de aceptación, la cadena λ es aceptada. En general se tiene lo siguiente: la cadena vacía λ es aceptada por un autómata M si y solamente si el estado inicial q 0 de M también es un estado de aceptación. Los autómatas finitos descritos anteriormente se denominan autómatas finitos deterministas (AFD) ya que para cada estado q y para cada símbolo a Σ, la función de transición δ(q, a) siempre está definida. Es decir, la función de transición δ determina completa y unívocamente la acción que el autómata realiza cuando la unidad de control se encuentra en un estado q leyendo un símbolo s sobre la cinta. Dado un autómata M, ellenguaje aceptado o reconocido por M se denota L(M) y se define por L(M) := {u Σ : M termina el procesamiento de la cadena de entrada u en un estado q F } Diagrama de transiciones de un autómata Un autómata finito se puede representar por medio de un grafo dirigido y etiquetado. Recuérdese que un grafo es un conjunto de vértices o nodos unidos por arcos o conectores; si los arcos tienen tanto dirección como etiquetas, el grafo se denomina grafo dirigido y etiquetado o digrafo etiquetado. El digrafo etiquetado de un autómata se obtiene siguiendo las siguientes convenciones: Los vértices o nodos son los estados del autómata. El estado q se representa por: q El estado inicial q 0 se representa por: >q 0 Un estado final q se representa por: q

35 2.3. DISEÑO DE AUTÓMATAS 29 La transición δ =(q, s) =p se representa en la forma s q p Dicho grafo se denomina diagrama de transiciones del autómata y es muy útil para hacer el seguimiento completo del procesamiento de una cadena de entrada. Una cadena u es aceptada si existe una trayectoria etiquetada con los símbolos de u, que comienza en el estado q 0 ytermina en un estado de aceptación. Ejemplo Diagrama de transiciones del autómata presentado en la sec- ción anterior. Σ={a, b}. Q = {q 0,q 1,q 2 }. q 0 : estado inicial. F = {q 0,q 2 }, estados de aceptación. Función de transición δ: δ a b q 0 q 0 q 1 q 1 q 1 q 2 q 2 q 1 q 1 δ(q 0,a)=q 0 δ(q 0,b)=q 1 δ(q 1,a)=q 1 δ(q 1,b)=q 2 δ(q 2,a)=q 1 δ(q 2,b)=q 1 a b a > q 0 q 1 a, b b q 2 Examinando el diagrama de transiciones podemos observar fácilmente que la entrada aaababbb es aceptada mientras que aabaaba es rechazada Diseño de autómatas Para autómatas deterministas se adopta la siguiente convención adicional con respecto a los diagramas de transiciones: se supone que los arcos no

36 30 CAPÍTULO 2. AUTÓMATAS FINITOS dibujadas explícitamente conducen a un estado limbo de no-aceptación. Es decir, en el diagrama de transiciones se indican únicamente los arcos que intervengan en trayectorias de aceptación. Esto permite simplificar considerablemente los diagramas. En este capítulo abordaremos dos tipos de problemas: 1. Dado un lenguaje regular L diseñar un autómata finito M que acepte o reconozca a L, es decir, tal que L(M) =L. 2. Dado un autómata M determinar el lenguaje aceptado por M. Más adelante se demostrará, en toda su generalidad, que estos problemas siempre tienen solución. Consideremos inicialmente problemas del primer tipo. Ejemplo L = a = {λ, a, a 2,a 3,...}. AFDM tal que L(M) =L: Versión simplificada: > q 0 a a > q 0 b q 1 a Ejemplo L = a + = {a, a 2,a 3,...}. AFDM tal que L(M) =L: a b a > q 0 q 1 b a b q 2 b a Versión simplificada: > q 0 a q 1 Ejemplo Σ={a, b}. L = lenguaje de las cadenas que contienen exacta- dos aes = b ab ab.afdm tal que L(M) mente =L:

37 2.3. DISEÑO DE AUTÓMATAS 31 b a b a b > q 0 q 1 q 2 Ejemplo Σ={0, 1}. L = lenguaje de las cadenas sobre Σ que tienen un número par de símbolos (cadenas de longitud par). AFD M tal que L(M) =L: 0, 1 > q 0 q 1 Ejemplo Σ={0, 1}. L = lenguaje de las cadenas sobre Σ que contienen un número par de ceros. AFD M tal que L(M) =L: 0, > q 0 q 1 Ejemplo Σ={a, b}. L = lenguaje de las cadenas sobre Σ que terminan en b. AFDM tal que L(M) =L: 0 a b b > q 0 q 1 a Ejercicios de la sección 2.3 ➀ Diseñar autómatas finitos deterministas que acepten los siguientes lenguajes: (i) Σ = {0, 1}. L = lenguaje de las cadenas sobre Σ de longitud impar. (ii) Σ = {0, 1}. L = lenguaje de las cadenas sobre Σ que contienen un número impar de unos.

38 32 CAPÍTULO 2. AUTÓMATAS FINITOS (iii) Σ = {a, b}. L = ab +. (iv) Σ = {a, b}. L = ab ab a. (v) Σ = {0, 1}. L =(0 10). (vi) Σ = {0, 1}. L = (01 10). (vii) Σ = {0, 1}. Lenguaje de todas las cadenas que no contienen dos unos consecutivos. (viii) Σ = {a, b}. L = {a 2i b 3j : i, j 0}. (ix) Σ = {a, b}. L = lenguaje de las cadenas sobre Σ que contienen un número par de aes y un número par de bes. Ayuda: utilizar 4estados. (x) Σ = {a, b}. Para cada combinación de las condiciones par e impar y de las conectivas o e y, diseñar un AFD que acepte el lenguaje L definido por L = lenguaje de las cadenas con un número par/impar de aes y/o un número par/impar de bes. Ayuda: utilizar el autómata de 4 estados diseñado en el ejercicio anterior, modificando adecuadamente el conjunto de estados finales. ➁ Determinar los lenguajes aceptados por los siguientes AFD. Describir los lenguajes ya sea por medio de una propiedad característica o de una expresión regular. (i) > q 0 q 1 q 2 q 3 q (ii) 1 0 > q 0 q 1 q 2 q 3 1 0

39 2.4. AUTÓMATAS FINITOS NO-DETERMINISTAS (AFN) 33 (iii) q > q q 2 1 q 3 1 (iv) a b a b > q 0 q 1 q 2 b 2.4. Autómatas finitos no-deterministas (AFN) Los autómatas finitos no-deterministas (AFN) se asemejan a los AFD, excepto por el hecho de que para cada estado q Q y cada a Σ, la transición δ(q, a) puede consistir en más de un estado o puede no estar definida. Concretamente, un AFN está definido por M =(Σ,Q,q 0,F, ) donde: 1. Σ es el alfabeto de cinta. 2. Q es un conjunto (finito) de estados internos. 3. q 0 Q es el estado inicial. 4. F Q es el conjunto de estados finales o estados de aceptación. 5. :Q Σ (Q) (q, s) (q, s) ={q i1,q i2,...,q ik } donde (Q) es el conjunto de subconjunto de Q.

40 34 CAPÍTULO 2. AUTÓMATAS FINITOS El significado de (q, s) ={q i1,q i2,...,q ik } es el siguiente: estando en el estado q, en presencia del símbolo s, la unidad de control puede pasar (aleatoriamente) a uno cualquiera de los estados q i1, q i2,..., q ik,despuésde lo cual se desplaza a la derecha. Puede suceder que (q, s) =, lo cual significa que, si durante el procesamiento de una cadena de entrada u, M ingresa al estado q leyendo sobre la cinta el símbolo s, el cómputo se aborta. Cómputo abortado: {}} u { s q La noción de diagrama de transiciones para un AFN se define de manera análoga al caso AFD, pero puede suceder que desde un mismo nodo (estado) salgan dos o más arcos con la misma etiqueta: s q s q s q q Un AFN M puede procesar una cadena de entrada u Σ de varias maneras. Sobre el diagrama de transiciones del autómata, esto significa que pueden existir varias trayectorias, desde el estado q 0, etiquetadas con los símbolos de u. La siguiente es la noción de aceptación para autómatas no-deterministas: L(M) = lenguaje aceptado o reconocido por M = {u Σ : existe por lo menos un cómputo completo de u que termina en un estado q F }

41 2.4. AUTÓMATAS FINITOS NO-DETERMINISTAS (AFN) 35 Es decir, para que una cadena u sea aceptada, debe existir algún cómputo en el que u sea procesada completamente y que finalice estando M en un estado de aceptación. Ejemplo Sea M el siguiente AFN: a a a b b > q 0 q 1 q 2 a b q 3 b a b q 0 {q 0,q 1,q 3 } q 1 {q 1 } {q 2 } q 2 {q 1,q 2 } q 3 {q 3 } Para la cadena de entrada u = abb, existen cómputos que conducen al rechazo, cómputos abortados y cómputos que terminan en estados de aceptación. Según la definición de lenguaje aceptado, u L(M). u {}}{ Cómputo de rechazo: a b b q 0 q 1 q 2 q 2 u {}}{ Cómputo de aceptación: a b b q 0 q 3 q 3 q 3 u {}}{ Otro cómputo de aceptación: a b b q 0 q 1 q 2 q 1

42 36 CAPÍTULO 2. AUTÓMATAS FINITOS u {}}{ Cómputo abortado: a b b q 0 q 0 Ejemplo En el último ejemplo de la sección 2.3 se diseñó el siguiente AFD que acepta el lenguaje de las cadenas sobre Σ = {a, b} que terminan en b: a b b > q 0 q 1 a Un AFN que acepta el mismo lenguaje y que es, tal vez, más fácil de concebir, es el siguiente: a > q 0 b q 1 Este autómata se asemeja a la expresión regular (a b) b. b Ejemplo Considérese el lenguaje L = ab a + sobre el alfabeto Σ = {a, b}. El siguiente AFN M satisface L(M) =L. a b > q 0 q 1 a a q 2 Ejemplo Σ={0, 1}, L = (01 010). El siguiente AFN acepta a L.

43 2.4. AUTÓMATAS FINITOS NO-DETERMINISTAS (AFN) 37 0 > q 0 1 q q 2 q 3 1 Otro AFN que acepta el mismo lenguaje y que tiene sólo tres estados es el siguiente: 0 1 > q 0 q 1 q 2 Ejercicios de la sección Diseñar autómatas AFD o AFN que acepten los siguientes lenguajes: ➀ Σ={a, b}. L = ab + a. ➁ Σ={a, b}. L = a(a ab). ➂ Σ={a, b, c}. L = a b c. 0 ➃ Σ={0, 1, 2}. L = lenguaje de las cadenas sobre Σ que comienzan con 0 y terminan con 2. ➄ Σ={0, 1}. Lenguaje de las cadenas de longitud par 2 formadas por ceros y unos alternados. ➅ Σ={0, 1}. Lenguaje de las cadenas que tienen a lo sumo dos ceros consecutivos. ➆ Σ={0, 1}. Lenguaje de las cadenas de longitud impar que tienen unos únicamente en las posiciones impares. ➇ Σ={a, b, c}. L = lenguaje de las cadenas sobre Σ que contienen la cadena bc. ➈ Σ={a, b, c}. L = lenguaje de las cadenas sobre Σ que no contienen la cadena bc. En el último ejemplo de la sección 1.14 se presentaron dos expresiones regulares para L. Nota: se puede construir un AFD con sólo dos estados para aceptar este lenguaje!

44 38 CAPÍTULO 2. AUTÓMATAS FINITOS 2.5. Equivalencia computacional entre los AFD y los AFN En esta sección se mostrará que los modelos AFD y AFN son computacionalmente equivalentes. En primer lugar, es fácil ver que un AFD M = (Σ,Q,q 0,F,δ) puede ser considerado como un AFN M =(Σ,Q,q 0,F, ) definiendo (q, a) ={δ(q, a)} para cada q Q y cada a Σ. Para la afirmación recíproca tenemos el siguiente teorema Teorema. Dado un AFN M =(Σ,Q,q 0,F, ) se puede construir un AFD M equivalente a M, esdecir,talquel(m) =L(M ). Este teorema, cuya demostración se dará en detalle más adelante, establece que el no-determinismo se puede eliminar. Dicho de otra manera, los autómatas deterministas y los no-deterministas aceptan los mismos lenguajes. La idea de la demostración consiste en considerar cada conjunto de estados {p 1,...,p j }, que aparezca en la tabla de la función del autómata no-determinista, como un único estado del nuevo autómata determinista. La tabla de se completa hasta que no aparezcan nuevas combinaciones de estados. Los estados de aceptación del nuevo autómata son los conjuntos de estados en los que aparece por lo menos un estado de aceptación del autómata original. El siguiente ejemplo ilustra el procedimiento. Ejemplo Consideremos el AFN M, presentado en la sección 2.4, que acepta el lenguaje L(M) =ab a + sobre Σ = {a, b}: b a > q 0 q 1 a a q 2 a b q 0 {q 1,q 2 } q 1 {q 1 } q 2 {q 2 } El nuevo AFD M construido a partir de M tiene un estado más, {q 1,q 2 }, y su función de transición δ tiene el siguiente aspecto:

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. MODELOS DE COMPUTACION I Preguntas Tipo Test Indicar si son verdaderas o falsas las siguientes afirmaciones: 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. 2.

Más detalles

Capítulo 1 Lenguajes formales 6

Capítulo 1 Lenguajes formales 6 Capítulo 1 Lenguajes formales 6 1.8. Operaciones entre lenguajes Puesto que los lenguajes sobre Σ son subconjuntos de Σ, las operaciones usuales entre conjuntos son también operaciones válidas entre lenguajes.

Más detalles

Autómatas Finitos Deterministicos (DFA)

Autómatas Finitos Deterministicos (DFA) Autómatas Finitos Deterministicos (DFA) Introducción a la Lógica y la Computación Fa.M.A.F., Universidad Nacional de Córdoba 26/0/6 Info útil Bibliografía: Introducción a la teoría de autómatas, lenguajes

Más detalles

Expresiones regulares, gramáticas regulares

Expresiones regulares, gramáticas regulares Expresiones regulares, gramáticas regulares Los LR en la jerarquía de Chomsky La clasificación de lenguajes en clases de lenguajes se debe a N. Chomsky, quien propuso una jerarquía de lenguajes, donde

Más detalles

13.3. MT para reconocer lenguajes

13.3. MT para reconocer lenguajes 13.3. MT para reconocer lenguajes Gramática equivalente a una MT Sea M=(Γ,Σ,,Q,q 0,f,F) una Máquina de Turing. L(M) es el lenguaje aceptado por la máquina M. A partir de M se puede crear una gramática

Más detalles

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo: 1 Clase 3 SSL EXPRESIONES REGULARES Para REPRESENTAR a los Lenguajes Regulares. Se construyen utilizando los caracteres del alfabeto sobre el cual se define el lenguaje, el símbolo y operadores especiales.

Más detalles

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002 Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto

Más detalles

Una cadena sobre Σ es cualquier secuencia de elementos de longitud finita sobre Σ.

Una cadena sobre Σ es cualquier secuencia de elementos de longitud finita sobre Σ. Alfabetos, Cadenas y Lenguajes Definición 1 Un Alfabeto es cualquier conjunto finito, no vacío. Ejemplo 1 Sea Σ = {0, 1, 2, 3,..., 9} donde 0 Σ Definición 2 Una cadena sobre Σ es cualquier secuencia de

Más detalles

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R.

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R. Conjuntos Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por se entiende que a pertenece a R. a R Normalmente, podremos definir a un conjunto de dos maneras: Por

Más detalles

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto EJERCICIOS del TEMA 3: Lenguajes independientes del contexto Sobre GICs (gramáticas independientes del contexto) 1. Sea G una gramática con las siguientes producciones: S ASB ε A aab ε B bba ba c ) d )

Más detalles

Autómatas de Pila y Lenguajes Incontextuales

Autómatas de Pila y Lenguajes Incontextuales Autómatas de Pila y Lenguajes Incontextuales Elvira Mayordomo Universidad de Zaragoza 5 de noviembre de 2012 Contenido de este tema 1. Introducción a los autómatas de pila 2. Definiciones 3. Equivalencia

Más detalles

Interrogación 2. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003

Interrogación 2. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003 Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación Interrogación 2 IIC 2222 Teoría de Autómatas y Lenguajes Formales Segundo Semestre, 2003 Esta interrogación

Más detalles

Autómatas Deterministas. Ivan Olmos Pineda

Autómatas Deterministas. Ivan Olmos Pineda Autómatas Deterministas Ivan Olmos Pineda Introducción Los autómatas son una representación formal muy útil, que permite modelar el comportamiento de diferentes dispositivos, máquinas, programas, etc.

Más detalles

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila.

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila. 0 Temas Definición de autómata de pila Autómata de pila determinístico y no determinístico Objetivo Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2)

Más detalles

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones 1 Curso Básico de Computación 5 Autómatas de pila 5.1 Descripción informal Un autómata de pila es esencialmente un autómata finito que controla una cinta de entrada provista de una cabeza de lectura y

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Repaso TALF Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2013 La Jerarquía de Chomsky Cuatro niveles de lenguajes formales

Más detalles

GRAMATICAS LIBRES DEL CONTEXTO

GRAMATICAS LIBRES DEL CONTEXTO GRMTICS LIBRES DEL CONTEXTO Estas gramáticas, conocidas también como gramáticas de tipo 2 o gramáticas independientes del contexto, son las que generan los lenguajes libres o independientes del contexto.

Más detalles

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45 Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 45 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales

Más detalles

Lenguajes, Gramáticas y Autómatas Conceptos

Lenguajes, Gramáticas y Autómatas Conceptos Lenguajes, Gramáticas y Autómatas Conceptos Departamento de Informática e Ingeniería de Sistemas C.P.S. Universidad de Zaragoza Última revisión: Febrero. 2004 11/02/2004 1 Índice Alfabetos, palabras y

Más detalles

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS Francisco Hernández Quiroz Departamento de Matemáticas Facultad de Ciencias, UNAM E-mail: fhq@ciencias.unam.mx

Más detalles

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES UNIVERSIDAD FERMIN TORO VICE RECTORADO ACADEMICO UNIVERSIDAD FACULTAD DE INGENIERIA ESCUELA DE MANTENIMIENTO MECÁNICO ESCUELA DE TELECOMUNICACIONES ESCUELA DE ELÉCTRICA ESCUELA DE COMPUTACIÓN PROGRAMA

Más detalles

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo. Contenidos

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo. Contenidos Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo Complementos Contenidos Clase 1: Elementos de lógica: Conectivos, tablas de verdad, tautologías y contingencias.

Más detalles

ESCUELA: UNIVERSIDAD DEL ISTMO

ESCUELA: UNIVERSIDAD DEL ISTMO 1.-IDENTIFICACIÓN ESCUELA: UNIVERSIDAD DEL ISTMO CLAVE: 3041 GRADO: ING. EN COMPUTACIÓN, CUARTO SEMESTRE TIPO DE TEÓRICA/PRÁCTICA ANTECEDENTE CURRICULAR: 3033.- OBJETIVO GENERAL Proporcionar al alumno

Más detalles

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 3.1: Autómatas Finitos Deterministas

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 3.1: Autómatas Finitos Deterministas Tema 3.1: Autómatas Finitos Deterministas Luis Peña luis.pena@urjc.es http://www.ia.urjc.es/cms/es/docencia/ic-msal Sumario Tema 3.1: Autómatas Finitos Deterministas. 1. Concepto de AFD 2. Equivalencia

Más detalles

Teoría de Lenguajes. Gramáticas incontextuales

Teoría de Lenguajes. Gramáticas incontextuales Teoría de Lenguajes Gramáticas incontextuales José M. Sempere Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia Gramáticas incontextuales 1. Definiciones básicas.

Más detalles

UNIDAD II: TEORÍA DE CONJUNTOS 2.1. INTRODUCCIÓN

UNIDAD II: TEORÍA DE CONJUNTOS 2.1. INTRODUCCIÓN UNDD : TEORÍ DE CONJUNTOS 2.1. NTRODUCCÓN Según Georg Cantor un conjunto es la reunión, agrupación o colección de elementos bien definidos que tienen una propiedad en común, concepto que ha penetrado y

Más detalles

Equivalencia Entre PDA y CFL

Equivalencia Entre PDA y CFL Equivalencia Entre PDA y CFL El Lenguaje aceptado por un Autómata con Pila Universidad de Cantabria Esquema 1 Introducción 2 3 Lenguaje Aceptado por un Autómata Como en los autómatas finitos, se puede

Más detalles

Teoría de Autómatas y Lenguajes Formales. Introducción a las Gramáticas. Gramáticas incontextuales

Teoría de Autómatas y Lenguajes Formales. Introducción a las Gramáticas. Gramáticas incontextuales Teoría de utómatas y Lenguajes Formales Introducción a las ramáticas. ramáticas incontextuales José M. Sempere Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia Introducción

Más detalles

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42 Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 42 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales

Más detalles

Tema 2. Fundamentos de la Teoría de Lenguajes Formales

Tema 2. Fundamentos de la Teoría de Lenguajes Formales Departamento de Tecnologías de la Información Tema 2. Fundamentos de la Teoría de Lenguajes Formales Ciencias de la Computación e Inteligencia Artificial Índice 2.1. Alfabeto 2.2. Palabra 2.3. Operaciones

Más detalles

Complejidad computacional (Análisis de Algoritmos)

Complejidad computacional (Análisis de Algoritmos) Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución

Más detalles

Lenguajes Regulares. Antonio Falcó. - p. 1

Lenguajes Regulares. Antonio Falcó. - p. 1 Lenguajes Regulares Antonio Falcó - p. 1 Cadenas o palabras I Una cadena o palabra es una sucesión finita de símbolos. cadena {c, a, d, e, n}. 10001 {0, 1} El conjunto de símbolos que empleamos para construir

Más detalles

Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad

Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad Estructuras Discretas Relaciones Definición: relación Relaciones Claudio Lobos, Jocelyn Simmonds clobos,jsimmond@inf.utfsm.cl Universidad Técnica Federico Santa María Estructuras Discretas INF 152 Sean

Más detalles

TEORÍA DE CONJUNTOS.

TEORÍA DE CONJUNTOS. TEORÍA DE CONJUNTOS. NOCIÓN DE CONJUNTO: Concepto no definido del cual se tiene una idea subjetiva y se le asocian ciertos sinónimos tales como colección, agrupación o reunión de objetos abstractos o concretos.

Más detalles

Lenguajes y Gramáticas

Lenguajes y Gramáticas Lenguajes y Gramáticas Teoría de Lenguajes Fernando Naranjo Introduccion Se desarrollan lenguajes de programación basados en el principio de gramática formal. Se crean maquinas cada vez mas sofisticadas

Más detalles

06 Análisis léxico II

06 Análisis léxico II 2 Contenido Alfabetos, símbolos y cadenas Operaciones con cadenas Concatenación de dos cadenas Prefijos y sufijos de una cadena Subcadena y subsecuencia Inversión de una cadena Potencia de una cadena Ejercicios

Más detalles

John Venn Matemático y filósofo británico creador de los diagramas de Venn

John Venn Matemático y filósofo británico creador de los diagramas de Venn Georg Cantor Matemático Alemán creador de la teoría de conjuntos John Venn Matemático y filósofo británico creador de los diagramas de Venn August De Morgan Matemático ingles creador de leyes que llevan

Más detalles

ARITMÉTICA MODULAR. Unidad 1

ARITMÉTICA MODULAR. Unidad 1 Unidad 1 ARITMÉTICA MODULAR 9 Capítulo 1 DE LA TEORÍA DE CONJUNTOS Objetivo general Presentar y afianzar algunos conceptos de la Teoría de Conjuntos relacionados con el estudio de la matemática discreta.

Más detalles

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Grado en Ingeniería Informática Online, Curso Universidad Rey Juan Carlos

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Grado en Ingeniería Informática Online, Curso Universidad Rey Juan Carlos TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Grado en Ingeniería Informática Online, Curso 202-203 Universidad Rey Juan Carlos GUÍA PARA LA REALIZACIÓN DE LA HOJA DE PROBLEMAS No 3 (Tema 3: Expresiones Regulares)

Más detalles

Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.

Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007. Universidad de Puerto Rico Recinto de Mayagüez Facultad de Artes y Ciencias DEPARTAMENTO DE CIENCIAS MATEMÁTICAS Programa de Autómata y Lenguajes Formales Curso: Autómata y Lenguajes Formales Codificación:

Más detalles

En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse

En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse lógicamente como un término no definido. Un conjunto se

Más detalles

Espacios vectoriales

Espacios vectoriales Espacios vectoriales [Versión preliminar] Prof. Isabel Arratia Z. Algebra Lineal 1 En el estudio de las matrices y, en particular, de los sistemas de ecuaciones lineales realizamos sumas y multiplicación

Más detalles

Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ).

Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ). ALGEBRA La primera parte del presente libro está dedicada a las estructuras algebraicas. En esta parte vamos a iniciar agregándole a los conjuntos operaciones. Cuando las operaciones tienen determinadas

Más detalles

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS. ALGEBRA y ALGEBRA LINEAL 520142 Primer Semestre CAPITULO I LOGICA Y CONJUNTOS. DEPARTAMENTO DE INGENIERIA MATEMATICA Facultad de Ciencias Físicas y Matemáticas Universidad de Concepción 1 La lógica es

Más detalles

Convertir un AFND a un AFD

Convertir un AFND a un AFD Convertir un AFND a un AFD Existe una equivalencia entre los AFD y AFN, de forma que un autómata M es equivalente a un autómata M' si L(M) ) L(M'). Ejemplo: Los autómatas de la siguiente figura son equivalentes.

Más detalles

Capítulo 4. Lógica matemática. Continuar

Capítulo 4. Lógica matemática. Continuar Capítulo 4. Lógica matemática Continuar Introducción La lógica estudia la forma del razonamiento, es una disciplina que por medio de reglas y técnicas determina si un teorema es falso o verdadero, además

Más detalles

Inducción Matemática Conjuntos Funciones. Matemática Discreta. Agustín G. Bonifacio UNSL. Repaso de Inducción, Conjuntos y Funciones

Inducción Matemática Conjuntos Funciones. Matemática Discreta. Agustín G. Bonifacio UNSL. Repaso de Inducción, Conjuntos y Funciones UNSL Repaso de Inducción, y Inducción Matemática (Sección 1.7 del libro) Supongamos que queremos demostrar enunciados del siguiente tipo: P(n) : La suma de los primeros n números naturales es n(n+1)

Más detalles

Lenguajes (gramáticas y autómatas)

Lenguajes (gramáticas y autómatas) Lenguajes (gramáticas y autómatas) Elvira Mayordomo Universidad de Zaragoza 19 de septiembre de 2013 Elvira Mayordomo (Universidad de Zaragoza) Lenguajes (gramáticas y autómatas) 19 de septiembre de 2013

Más detalles

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO Autómatas de pila y lenguajes independientes del contexto -1- AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO AUTÓMATAS DE PILA - Son autómatas finitos con una memoria en forma de pila. - Símbolos

Más detalles

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos Semana02[1/23] 9 de marzo de 2007 Introducción Semana02[2/23] La teoría de conjuntos gira en torno a la función proposicional x A. Los valores que hacen verdadera la función proposicional x A son aquellos

Más detalles

Sumario: Teoría de Autómatas y Lenguajes Formales. Capítulo 2: Lenguajes Formales. Capítulo 2: Lenguajes Formales

Sumario: Teoría de Autómatas y Lenguajes Formales. Capítulo 2: Lenguajes Formales. Capítulo 2: Lenguajes Formales Teoría de Autómatas y Lenguajes Formales Capítulo 2: Lenguajes Formales Holger Billhardt holger.billhardt@urjc.es Sumario: Capítulo 2: Lenguajes Formales 1. Concepto de Lenguaje Formal 2. Operaciones sobre

Más detalles

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50 INAOE (INAOE) 1 / 50 Contenido 1 2 3 4 (INAOE) 2 / 50 Pushdown Automata Las gramáticas libres de contexto tienen un tipo de autómata que las define llamado pushdown automata. Un pushdown automata (PDA)

Más detalles

PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA DE SISTEMAS

PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA DE SISTEMAS PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA DE SISTEMAS 1. DATOS INFORMATIVOS MATERIA: DISEÑO DE LENGUAJES Y AUTOMATAS: CARRERA: INGENIERÍA DE SISTEMAS NIVEL:

Más detalles

Computabilidad y Lenguajes Formales: Autómatas Finitos

Computabilidad y Lenguajes Formales: Autómatas Finitos 300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. No Determinismo Hasta ahora cada

Más detalles

Algebra lineal y conjuntos convexos

Algebra lineal y conjuntos convexos Apéndice A Algebra lineal y conjuntos convexos El método simplex que se describirá en el Tema 2 es de naturaleza algebraica y consiste en calcular soluciones de sistemas de ecuaciones lineales y determinar

Más detalles

Unidad 4. Autómatas de Pila

Unidad 4. Autómatas de Pila Unidad 4. Autómatas de Pila Una de las limitaciones de los AF es que no pueden reconocer el lenguaje {0 n 1 n } debido a que no se puede registrar para todo n con un número finito de estados. Otro lenguaje

Más detalles

Ingeniería en Computación. Autómatas y Lenguajes Formales. Unidad de competencia IV: Conocer, utilizar y diseñar gramáticas de libre contexto

Ingeniería en Computación. Autómatas y Lenguajes Formales. Unidad de competencia IV: Conocer, utilizar y diseñar gramáticas de libre contexto Universidad Autónoma del Estado de México Centro Universitario UAEM Texcoco Departamento de Ciencias Aplicadas. Ingeniería en Computación. Autómatas y Lenguajes Formales. Unidad de competencia IV: Conocer,

Más detalles

Gramáticas independientes del contexto AUTÓMATAS Y LENGUAJES FORMALES LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I

Gramáticas independientes del contexto AUTÓMATAS Y LENGUAJES FORMALES LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I Gramáticas independientes del contexto UTÓMTS Y LENGUJES FORMLES LENGUJES INDEPENDIENTES DEL CONTEXTO Y UTÓMTS DE PIL Francisco Hernández Quiroz Departamento de Matemáticas Facultad de Ciencias, UNM E-mail:

Más detalles

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal

Más detalles

Capítulo 2 Conjuntos. 2.1 Introducción. 2.2 Determinación de conjuntos. Definición:

Capítulo 2 Conjuntos. 2.1 Introducción. 2.2 Determinación de conjuntos. Definición: Capítulo 2 Conjuntos 2.1 Introducción El concepto de conjunto, de singular importancia en la ciencia matemática y objeto de estudio de una de sus disciplinas más recientes, está presente, aunque en forma

Más detalles

CONJUNTOS Y SISTEMAS NUMÉRICOS

CONJUNTOS Y SISTEMAS NUMÉRICOS 1. CONJUNTOS. 1.1 Conceptos básicos Medir y contar fueron las primeras actividades matemáticas del hombre y ambas nos conducen a los números. Haciendo marcas, medían el tiempo y el conteo de bienes que

Más detalles

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

Más detalles

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo.

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo. Capítulo 5 Campos finitos 5.1. Introducción Presentaremos algunos conceptos básicos de la teoría de los campos finitos. Para mayor información, consultar el texto de McEliece [61] o el de Lidl y Niederreiter

Más detalles

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Sintaxis Define la estructura del lenguaje Ejemplo: Jerarquía en

Más detalles

TEMA 1: NÚMEROS NATURALES. SISTEMA DE NUMERACIÓN

TEMA 1: NÚMEROS NATURALES. SISTEMA DE NUMERACIÓN 1 TEMA 1: NÚMEROS NATURALES. SISTEMA DE NUMERACIÓN 1. INTRODUCCIÓN Los números naturales aparecen debido a la necesidad que tiene el hombre para contar. Para poder construir este conjunto N, podemos seguir

Más detalles

Problemas indecidibles

Problemas indecidibles Capítulo 7 Problemas indecidibles 71 Codificación de máquinas de Turing Toda MT se puede codificar como una secuencia finita de ceros y unos En esta sección presentaremos una codificación válida para todas

Más detalles

Formulación del problema de la ruta más corta en programación lineal

Formulación del problema de la ruta más corta en programación lineal Formulación del problema de la ruta más corta en programación lineal En esta sección se describen dos formulaciones de programación lineal para el problema de la ruta más corta. Las formulaciones son generales,

Más detalles

2do. Parcial. Todos los ejercicios se entregarán en hojas separadas. El examen tipo test cuenta hasta 2 puntos sobre la nota total.

2do. Parcial. Todos los ejercicios se entregarán en hojas separadas. El examen tipo test cuenta hasta 2 puntos sobre la nota total. U.R.J.C. Ingeniera Técnica en Informática de Sistemas Teoría de Autómatas y Lenguajes Formales Junio 2009 2do. Parcial Normas : La duración del examen es de 2 horas. Todos los ejercicios se entregarán

Más detalles

UNIDAD 4. Álgebra Booleana

UNIDAD 4. Álgebra Booleana UNIDAD 4 Álgebra Booleana ÁLGEBRA BOOLEANA El Álgebra Booleana se define como una retícula: Complementada: existe un elemento mínimo 0 y un elemento máximo I de tal forma que si a esta en la retícula,

Más detalles

Derivadas Parciales (parte 2)

Derivadas Parciales (parte 2) 40 Derivadas Parciales (parte 2) Ejercicio: Si donde y. Determinar Solución: Consideraremos ahora la situación en la que, pero cada una de las variables e es función de dos variables y. En este caso tiene

Más detalles

1 Conjuntos y propiedades de los números naturales

1 Conjuntos y propiedades de los números naturales Programa Inmersión, Verano 2016 Notas escritas por Dr. M Notas del cursos. Basadas en los prontuarios de MATE 3001 y MATE 3023 Clase #1: martes, 31 de mayo de 2016. 1 Conjuntos y propiedades de los números

Más detalles

Autómatas Finitos y Lenguajes Regulares

Autómatas Finitos y Lenguajes Regulares Autómatas Finitos y Lenguajes Regulares Problema: Dado un lenguaje L definido sobre un alfabeto A y una cadena x arbitraria, determinar si x L o x L. Cadena x AUTOMATA FINITO SI NO Lenguaje Regular Autómatas

Más detalles

Apuntes de Teoría de Autómatas y Lenguajes Formales. Gloria Martínez

Apuntes de Teoría de Autómatas y Lenguajes Formales. Gloria Martínez Apuntes de Teoría de Autómatas y Lenguajes Formales Gloria Martínez Luis A. García 11 de octubre de 2005 Índice general 1. Introducción 1 1.1. Alfabetos y Cadenas.............................. 1 1.2.

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Analizadores sintácticos descendentes: LL(1) Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2013 Analizadores sintácticos

Más detalles

Introducción. El uso de los símbolos en matemáticas.

Introducción. El uso de los símbolos en matemáticas. Introducción El uso de los símbolos en matemáticas. En el estudio de las matemáticas lo primero que necesitamos es conocer su lenguaje y, en particular, sus símbolos. Algunos símbolos, que reciben el nombre

Más detalles

Capítulo 7: Expresiones Regulares

Capítulo 7: Expresiones Regulares Capítulo 7: Expresiones Regulares 7.1. Concepto de expresión regular 7.1.1. Definición 7.1.2. Lenguaje descrito 7.1.3. Propiedades 7.2. Teoremas de equivalencia 7.2.1. Obtener un AFND a partir de una expresión

Más detalles

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES (TALF) BLOQUE II: LENGUAJES REGULARES Tema 2: Autómatas Finitos Parte 2 (de 3). Autómatas Finitos No Deterministas (AFNDs) Grado en Ingeniería Informática URJC

Más detalles

Estructuras Algebraicas

Estructuras Algebraicas Tema 1 Estructuras Algebraicas Definición 1 Sea A un conjunto no vacío Una operación binaria (u operación interna) en A es una aplicación : A A A Es decir, tenemos una regla que a cada par de elementos

Más detalles

Grupos libres. Presentaciones.

Grupos libres. Presentaciones. S _ Tema 12.- Grupos libres. Presentaciones. 12.1 Grupos libres. En el grupo Z de los enteros vimos una propiedad (cf. ejemplos.5), que lo caracteriza como grupo libre. Lo enunciamos al modo de una Propiedad

Más detalles

Escribir la expresión regular de un número entero que no acepte que el primer dígito sea cero salvo el número 0. Solución: 0 [1-9][0-9]*

Escribir la expresión regular de un número entero que no acepte que el primer dígito sea cero salvo el número 0. Solución: 0 [1-9][0-9]* Procesadores de lenguaje Ejercicios del Tema 2 Ejercicio 2.1 Sean L = {a, aa, b} y M = {ab, b }. Describe LM y M 3 por enumercaión LM = { aab, ab, aaab, bab, bb } M 3 = { ababab, ababb, abbab, abbb, babab,

Más detalles

Tema: Autómata de Pila

Tema: Autómata de Pila Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores 1 Tema: Autómata de Pila Contenido La presente guía aborda los autómatas de pila, y se enfoca en la aplicación que se le puede dar a estas

Más detalles

Derivada de la función compuesta. Regla de la cadena

Derivada de la función compuesta. Regla de la cadena Derivada de la función compuesta. Regla de la cadena Cuando en las matemáticas de bachillerato se introduce el concepto de derivada, su significado y su interpretación geométrica, se pasa al cálculo de

Más detalles

TEMA 8. GEOMETRÍA ANALÍTICA.

TEMA 8. GEOMETRÍA ANALÍTICA. TEMA 8. GEOMETRÍA ANALÍTICA. 8..- El plano. Definimos el plano euclideo como el conjunto de puntos ( x, y) R. Así, cada punto del plano posee dos coordenadas. Para representar puntos del plano utilizaremos

Más detalles

Univ. Nacional de Colombia, Medellín Escuela de Matemáticas Matemáticas Discretas Abril 6, Soluciones Taller 7

Univ. Nacional de Colombia, Medellín Escuela de Matemáticas Matemáticas Discretas Abril 6, Soluciones Taller 7 Univ. Nacional de Colombia, Medellín Escuela de Matemáticas Matemáticas Discretas Abril 6, 2010 Soluciones Taller 7 1. Pruebe el principio de inclusión-exclusión para tres conjuntos A B C = A + B + C A

Más detalles

Máquinas Secuenciales, Autómatas y Lenguajes Formales. Tema 4: Autómatas finitos deterministas. Holger Billhardt holger.billhardt@urjc.

Máquinas Secuenciales, Autómatas y Lenguajes Formales. Tema 4: Autómatas finitos deterministas. Holger Billhardt holger.billhardt@urjc. Formales Tema 4: Autómatas finitos deterministas Holger Billhardt holger.billhardt@urjc.es Sumario: Bloque 2: Autómatas Finitos 4. Autómatas Finitos Deterministas 1. Concepto y Definición 2. Autómata finito

Más detalles

Guía de estudio Introducción a la teoría de conjuntos Unidad A: Clase 4

Guía de estudio Introducción a la teoría de conjuntos Unidad A: Clase 4 Guía de estudio Introducción a la teoría de conjuntos Unidad A: Clase 4 Camilo Ernesto Restrepo Estrada, Félix Ruiz de Villalba, Lina María Grajales Vanegas y Sergio Iván Restrepo Ochoa 1. 3. Teoría de

Más detalles

Autómatas Mínimos. Encontrar el autómata mínimo. Universidad de Cantabria. Introducción Minimización de Autómatas Deterministas Resultados Algoritmo

Autómatas Mínimos. Encontrar el autómata mínimo. Universidad de Cantabria. Introducción Minimización de Autómatas Deterministas Resultados Algoritmo Autómatas Mínimos Encontrar el autómata mínimo. Universidad de Cantabria Introducción Dado un lenguaje regular sabemos encontrar un autómata finito. Pero, hay autómatas más sencillos que aceptan el mismo

Más detalles

Lenguajes Formales. 27 de octubre de 2005

Lenguajes Formales. 27 de octubre de 2005 Apuntes de Teoría de Autómatas y Lenguajes Formales Gloria Martínez Luis A. García 27 de octubre de 2005 II Índice general 3.1. El Teorema de Myhill-Nerode. Minimización de Autómatas Finitos..... 41 3.2.

Más detalles

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Algoritmos y programas. Algoritmos y Estructuras de Datos I Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de

Más detalles

EXÁMENES DE REPASO Teoría de Autómatas y Lenguajes Formales UNIVERSIDAD FRANCISCO DE VITORIA

EXÁMENES DE REPASO Teoría de Autómatas y Lenguajes Formales UNIVERSIDAD FRANCISCO DE VITORIA EXÁMENES DE REPASO Teoría de Autómatas y Lenguajes Formales UNIVERSIDAD FRANCISCO DE VITORIA 1ER PARCIAL TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Examen parcial 12/02/2003 1.- Usa el lema de bombeo para

Más detalles

Tema 5 Lenguajes independientes del contexto. Sintaxis

Tema 5 Lenguajes independientes del contexto. Sintaxis Tema 5 Lenguajes independientes del contexto. Sintaxis 1 Gramáticas independientes del contexto Transformación de gramáticas independientes del contexto Autómatas de pila Obtención de un autómata de pila

Más detalles

Expresiones Regulares y Derivadas Formales

Expresiones Regulares y Derivadas Formales y Derivadas Formales Las Derivadas Sucesivas. Universidad de Cantabria Esquema 1 2 3 Derivadas Sucesivas Recordemos que los lenguajes de los prefijos dan información sobre los lenguajes. Derivadas Sucesivas

Más detalles

Teoría de Lenguajes y Autómatas Conceptos y teoremas fundamentales

Teoría de Lenguajes y Autómatas Conceptos y teoremas fundamentales Se prohíbe la reproducción total o parcial de este documento, excepto para uso privado de los alumnos de la asignatura Teoría de Autómatas I de la UNED y los alumnos de asignaturas equivalentes de otras

Más detalles

Terminaremos el capítulo con una breve referencia a la teoría de cardinales.

Terminaremos el capítulo con una breve referencia a la teoría de cardinales. TEMA 5. CARDINALES 241 Tema 5. Cardinales Terminaremos el capítulo con una breve referencia a la teoría de cardinales. Definición A.5.1. Diremos que el conjunto X tiene el mismo cardinal que el conjunto

Más detalles

CAPÍTULO II TEORÍA DE CONJUNTOS

CAPÍTULO II TEORÍA DE CONJUNTOS TEORÍ DE ONJUNTOS 25 PÍTULO II TEORÍ DE ONJUNTOS 2.2 INTRODUIÓN Denotaremos los conjuntos con letras mayúsculas y sus elementos con letras minúsculas, si un elemento p pertenece a un conjunto escribiremos

Más detalles

b) Sea una relación de equivalencia en A y una operación en A. Decimos que y son compatibles si a b a c b c y c a c b para todo a, b, c A

b) Sea una relación de equivalencia en A y una operación en A. Decimos que y son compatibles si a b a c b c y c a c b para todo a, b, c A APENDICE Relaciones y Operaciones Compatibles 1 Definición: a) Sea A un conjunto y una relación entre elementos de A. Decimos que es una relación de equivalencia si es: i Reflexiva: a A, a a. ii Simétrica:

Más detalles

Criterios de divisibilidad y Congruencias

Criterios de divisibilidad y Congruencias Criterios de divisibilidad y Congruencias Rafael F. Isaacs G. * Fecha: 9 de marzo de 2007 Cuando tenemos un número muy grande escrito en base 10 y deseamos saber si es múltiplo por ejemplo de 9 no necesitamos

Más detalles

1 NOCIONES BÁSICAS SOBRE CONJUNTOS. SÍMBOLOS.

1 NOCIONES BÁSICAS SOBRE CONJUNTOS. SÍMBOLOS. UNIDAD 1.- CONCEPTOS REQUERIDOS CONJUNTOS. AXIOMAS DE PERTENENCIA, PARALELISMO, ORDEN Y PARTICIÓN. 1 NOCIONES BÁSICAS SOBRE CONJUNTOS. SÍMBOLOS. 1.1 Determinaciones de un conjunto. Un conjunto queda determinado

Más detalles

Introducción a la Teoría de Grafos

Introducción a la Teoría de Grafos Introducción a la Teoría de Grafos Flavia Bonomo fbonomo@dc.uba.ar do. Cuatrimestre 009 Programa Introducción a la teoría de grafos Problemas de camino mínimo Problemas de flujo máximo Programación lineal

Más detalles

Capítulo 3. Conjuntos. Continuar

Capítulo 3. Conjuntos. Continuar Capítulo 3. Conjuntos Continuar Introducción Georg Cantor definió el concepto de conjunto como una colección de objetos reales o abstractos e introdujo el conjunto potencia y las operaciones entre conjuntos.

Más detalles