Cuadernillo de apuntes Teoría de la computación. Magaly González Mota

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

Download "Cuadernillo de apuntes Teoría de la computación. Magaly González Mota"

Transcripción

1 Cuadernillo de apuntes Teoría de la computación Magaly González Mota 30 de junio de 2010

2 2

3 Índice general 1. INTRODUCCION Autómatas computabilidad y complejidad Representaciones estructurales Autómatas y la complejidad Nociones Matemáticas Conjuntos Funciones y relaciones Inducción matemática Cadenas y lenguajes Lenguajes regulares Autómatas finitos Autómatas finitos deterministicos AFD Autómatas finitos no deterministicos AFND Expresiones regulares Lenguajes Regulares Lenguajes libres de contexto Gramáticas libres de contexto Árboles de derivación Formas normales de Comsky Forma normal de Greibach Ambigüedad Autómatas de Pila Lenguajes no regulales Máquinas de Turing Definición de una Máquina de Turing

4 4 ÍNDICE GENERAL 4.2. Construcción modular de una MT El lenguaje de una Máquina de Turing Variantes de una Máquina de Turing Máquina de Turing con varias cintas Máquinas con pilas multiples Máquinas contadoras Decibilidad Lenguajes Decidibles El problema de Halting Decibilidad de teorías lógicas Reducibilidad Problemas insolubles para la teoría de lenguajes Un problema simple insoluble Algoritmo de Kruskal Funciones computables

5 Capítulo 1 INTRODUCCION Objetivo de la Unidad Situar la importancia del estudio de los autómatas dentro del proceso de desarrollo de software, y algunas aplicaciones. Presentar las nociones básicas de matemáticas necesarias para comenzar a estudiar la materia Autómatas computabilidad y complejidad Se conoce como teoría de autómatas el estudio de las máquinas o dispositivos abstractos con capacidad de computación. En la decada de 1930 el matemático ingles Alan Mathison Turing estudió una máquina con el objetivo de determinar con presición cuál era la frontera entre lo que podia o no podía hacer una máquina computadora. En las decadas de 1940 y 1950 se estudiarón otro tipo de máquinas sencillas conocidas con el nombre de autómatas finitos, los cuales inicialmente pretendian modelar las funciones cerebrales. A finales de la decada de 1950 el lingüista estadounidense Noam Chomsky comenzó el estudio de las gramáticas formales, las cuales no son máquinas, pero son componentes de software importantes por su relación con los autómatas abstractos. En 1969 el matemático estadounidense Stephen Arthur Cook separo los problemas que se pueden resolver de manera eficiente en una computadora de aquellos que en la practica necesitarian tanto tiempo que no tendría utilidad emplear una computadora, salvo en casos particulares, a los cuales llamo problemas 5

6 6 CAPÍTULO 1. INTRODUCCION NP-dificiles. Algunos de los conceptos de autómatas y gramáticas se emplean en el diseño y construcción de aplicaciones de software, o decidir sin un problemas es factible de ser resuelto mediante el uso de un algoritmo computable. Entre las razones por las cuales es conveniente estudiar la teoria de autómatas, están: 1. El diseño y verificación del comportamiento de circuitos digitales (software) 2. El analizador léxico de un compilador (la parte del compilador que descompone el texto inicial en unidades lógicas tales como identificadores, palabras reservadas y signos de puntuación). 3. Software para encontrar apariciones de ciertas palabras, frases u otros patrones en textos grandes dentro de paginas web. 4. Software para comprobar la corrección de cualquier tipo de sistemas que tengan un número finito de estados diferentes, como los protocolos de comunicación o los protocolos para el intercambio seguro de información. Existen muchos sistemas o componenetes de los cuales se puede decir en todo momento que estan en cierto estado entre un número finito de ellos. El objetivo de un estado es recordar la parte significativa de la historia de un sistema. Dado que solo disponemos de un número finito de estados, normalmente no es posible recordar la historia completa, por lo cual el sistema deberá ser diseñado de tal forma que recuerde las cosas que son importantes y omita las que no lo son. Ejemplo 1 Un interruptor de encendido y apagado, el cual es capaz de recordar si está en el estado de encendiddo o apagado, y permite que el usuario pulse el boton consiguiendo efectos diferentes que dependen de cual era el estado del interruptor. Algunas veces, un estado recuerda cosas más complejas. Por ejemplo el autómata finito cuyo trabajo sea reconocer la palabra reservada while, para lo cual necesitará 6 estados, cada uno de los cuales representa una posición dentro de la palabra, desde la palabra vacía (estado inicial), y donde cada uno

7 1.2. NOCIONES MATEMÁTICAS 7 produce una transición desde el prefijo existente hasta la siguiente letra de la palabra (cada estado está etiquetado con el prefijo de la palabra while que ya se analizo), el estado denominado while, es alcanzado cuando el autómata ha deletreado la palabra while, y el estado while es el único aceptado por el automata Representaciones estructurales Existen otros dos tipos de notaciones que desempeñan un papel importante en el estudio de los autómatas y sus aplicaciones 1. Las gramáticas que se emplean para el desarrollo de software destinado a procesar datos con estructura recursiva, por ejemplo el analizador sintáctico que se ocupa de las caracteristicas recursivas de los lenguajes de programación, como las expresiones aritméticas, condicionales etc. 2. Las expresiones regulares que nos indican la estructura de los datos, principalmente cadenas de texto Autómatas y la complejidad Los autómatas nos sirven para resolver dos pregntas muy importantes en la computación que son: Qué puede hacer una computadora? Qué puede hacer una computadora eficientemente? El como nos permite determinar la respuesta a éstas preguntas será parte del estudio de nuestro curso y se abordara principalmente en la unidad 5 y Nociones Matemáticas Conjuntos Para el estudio de los autómatas es necesario recordar algunos de los conceptos vistos en Matemáticas para computadora, debido a que muchas de las definiciones relacionados con los autómatas estan dados en terminos de

8 8 CAPÍTULO 1. INTRODUCCION conjuntos, a continuación se presenta un breve recordatorio. Definición 1 Conjunto es una colección de objetos que puede ser finito o infinito. Totalidad de los elementos o cosas poseedores de una propiedad común, que los distingue de otros. En el caso de ser finito y si el conjunto no es muy extenso se puede representar mediante todos sus elementos. A = {lunes, martes, miércoles, jueves, viernes} Si es finito o tiene muchos elementos se representa de la siguiente forma B = {x\x es un número entero positivo} Para que exista un conjunto debe basarse en lo siguiente: La colección de elementos debe estar bien definida. Ningún elemento del conjunto se debe contar más de una vez, generalmente, estos elementos deben ser diferentes, si uno de ellos se repite se contará sólo una vez. El orden en que se enumeran los elementos que carecen de importancia. Notación 1 A los conjuntos se les representa con letras mayúsculas A, B, C,... y a los elementos con letras minúsculas a, b, c,... Tipos de conjuntos Conjunto vacío o nulo: Es aquel que no tiene elementos y se simboliza por o { }, por ejemplo: A = { x = 0\x R } El conjunto A, es un conjunto vacío por que no hay ningún número real que satisfaga x = 0. Una propiedad imortante del conjunto vacío es que está contenido en cualquier conjunto. Conjunto universal: Es el conjunto de todos los elementos considerados en una población o universo, en un problema en especial. No es único, depende de la situación, y se representa por U o Ω.

9 1.2. NOCIONES MATEMÁTICAS 9 Relaciones u operaciones entre conjuntos Pertenencia: Si un elemento esta en la descripción de un conjunto, se dice que pertenece al conjunto, y se denota por el símbolo x A Para denotar que un elemento no pertence a un conjunto escribimos x / A Cardinalidad:Es el número de elementos de un conjunto y se denota por A por ejemplo si A es el conjunto de los días de la semana entonces A = 7 Igualdad de conjuntos: Dos conjuntos A y B son iguales si tienen los mismos elementos es decir, si cada elemento que pertenece a A también pertenece a B y viceversa si cada elemento que pertenece a B pertenece también a A. A = B Subconjunto: Si todo elemento de un conjunto A es también elemento de un conjunto B, entonces se dice que A es un subconjunto de B, y se denota por el símbolo. A B o B A Subconjunto propio: Se dice que B es un subconjunto propio de A sí todos los elementos de un conjunto B se encuentran incluidos en él A, y se denota por el símbolo. A B o B A Conjunto potencia: La familia de todos los subconjuntos de un conjunto se llama conjunto potencia. Si un conjunto es finito con n elementos, entonces el conjunto potencia tendrá 2 n subconjuntos. Un conjunto es subconjunto de el mismo,y el vacio es subconjunto de cualquier conjunto. A = {0, 1} El total de subconjuntos es: 2 2 = 4 los cuales son: P(A) = {{1, 2}, {1}, {2}, }

10 10 CAPÍTULO 1. INTRODUCCION Unión: Es una operación entre dos conjuntos A y B y está formada por todos los elementos que pertencen a el conjunto A o al conjunto B o ambos y se representa de la siguiente manera: A B = {x\x A o x B} Intersección: Es una operación entre dos conjuntos A y B y está formada por todos los elementos que pertenecen a el conjunto A y también al conjunto B y se representa de la siguiente forma A B = {x\x A y x B} Conjuntos disjuntos: Son aquellos que no tienen elementos en común, es decir, cuando no existen elementos que pertenezcan a ambos, y se representa de la siguiente forma: A B = Por ejemplo F = {1, 2, 3, 4, 5, 6} y G = {a, b, c, d, e, f} son disjuntos. Partición: Cuando un conjunto X es dividido en subconjuntos que no se intersectan entre si y que además al unirlos forman todo el conjunto X, se le denomina partición. Diferencia de dos conjuntos A B: Consta de todos los elementos de A que no están en B y se representa de la siguiente forma: A B = {x\x A y x / B} Complemento: Dado el conjunto universo y un subconjunto A del universo el complemento de A es el conjunto de todos los elementos del universo que no pertenecen a A y se denota por: A c = U A Ejemplo 2 Sea U = {0, 1, 2, 3, 4, 5, 6, 7, 9} el conjunto universo y A = {0, 2, 4, 6}, B = {1, 3, 5, 7, 9}, C = {1, 2, 3, 4, 5} y D = {6, 7, 8, 9} subconjuntos de U A C = {0, 1, 2, 3, 4, 5, 6}

11 1.2. NOCIONES MATEMÁTICAS 11 B C = {1, 3, 5} D B = {6, 8, 0} A c = {1, 3, 5, 7, 8, 9} A B = de donde podemos concluir que A y B son disjuntos. Ejemplo 3 Sea A = {a, b, c, d} A = 4 entonces la cardinalidad del conjunto potencia es P(A) = 2 4 = 16 P(A) = {, {a}, {b}, {c}, {d}, {a, b}, {a, c}, {a, d}, {b, c}, {b, d}, {c, d}, {a, b, c}, {c, d}, {a, b, c}, {a, b, d}, {b, c, d}, {a, c, d}, {a, b, c, d}} Los siguientes son ejemplos de algunas particiones del conjunto A Actividad 1 Realice lo siguiente: P 1 = {{a, b}, {c, d}, } P 2 = {{a, b, }, {c, d}} P 1 = {{a}, {b, d, c}, } 1. Los conjuntos también se pueden representar de manera gráfica mediante los diagramas de Veen, investigar que son y como se representan las diferentes operaciones entre conjuntos por medio de diagramas de Veen. 2. Investigar la biografia de Georg Cantor y mencionar cuales fuerón sus aportaciones a la teoría de conjuntos. 3. Investigar las leyes de D Morgan para conjuntos. 4. Sea U = {a, b, c, d, e, f, g, h, i, j } el conjunto universo y A = {a, b, e, i, j}, B = {f, b, c, g, j}, C = {a, c, d, h, j} y D = {h, i, j, c} Calcular

12 12 CAPÍTULO 1. INTRODUCCION a) A B b) B D c) A C d) C B e) A c f) (A B) c g) (A c B) C h) (A B) (C D) i) ((A B) (C D)) c j) (D (B A) c ) (A c B) Funciones y relaciones Definición 2 Una pareja ordenada es un par de números los cuales se pueden encontrar en el plano cartesiano, donde el orden de los terminos que la conforman si es importante y se denota por (a, b) Actividad 2 Investigar como se da la igualdad de las parejas ordenadas, cual es su inverso aditivo y cual es su neutro multiplicativo La razón por la cual son de nuestro interes las aprejas ordenadas es porque nos ayudan a definir una operación entre conjuntos llamada producto cartesiano. Definición 3 El producto cartesiano de dos conjuntos X y Y se define como: X Y = {(x, y)\x X y y Y } Ejemplo 4 Si X = {1, 2, 3}, Y = {a, b} entonces: X Y = {(1, a), (1, b), (2, a), (2, b), (3, b), (3, a)} Y X = {(b, 1), (a, 1), (b, 2), (a, 2), (b, 3), (a, 3)} Y Y = {(a, a), (a, b), (b, a), (b, b)} X X = {(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)} En este ejemplo se obsreva que X Y Y X

13 1.2. NOCIONES MATEMÁTICAS 13 Actividad 3 Dados C = {a, c, d, h, j}, A = {α, β, γ} y D = {h, i, j, c} hallar 1. C D 2. A C 3. D D 4. Si X Y Z = {(x, y, z)\x X, y Y, z Z} hallar a) C D A b) A D C Teorema 1 Para cualquier par de conjuntos finitos no vacíos A y B A B = A B Una Relación es un conjunto de pares ordenados, donde el primer elemento está relacionado con el segundo elemento del par ordenado, mas formalmente Definición 4 Una Relación (binaria) R de un conjunto X en un conjunto Y es un subconjunto del producto cartesiano X Y. Si (x, y) R, escribimos xry y decimos que x está relacionado con y; además si X = Y entonces decimos que R es una relación binaria sobre X Ejemplo 5 Sean X = {1, 2, 3, 4}, Y = {2, 4, 5} dos conjuntos, definimos la relación R como R = {(x, y) \ x + y sea par} entonces Definición 5 Al conjunto R = {(1, 5), (3, 5), (2, 2), (2, 4), (4, 2), (4, 4)} {x X\(x, y) R para algun y Y } se le conocee con el nombre de Dominio de la relación (D R ) y al conjunto {y y\(x, y) R para algun x X}

14 14 CAPÍTULO 1. INTRODUCCION se le conoce con el nombre de Rango o imagen de la relación (Im R ) Para el ejemplo anterior tenemos que: D R = {1, 2, 3, 4} Im R = {2, 4, 5} Propiedades de las relaciones Definición 6 Una relación binaria sobre X tiene las siguientes propiedades: Una relación R sobre un conjunto X es reflexiva si (x, x) R para cada x X Una relación R sobre un conjunto X es irreflexiva si (x, x) / R para cada x X Una relación R sobre un conjunto X es simétrica si para todo x, y X y si (x, y) R, entonces (y, x) R Una relación R sobre un conjunto X es antisimétrica si para todo x, y X, si (x, y) R y si x y, entonces (y, x) / R Una relación R sobre un conjunto X es transitiva si para toda x, y, z X, si (x, y) y (y, z) R, entonces (x, z) R Una relación R sobre un conjunto X es un orden parcial si R es reflexiva, transitiva y antisimétrica Una relación R sobre un conjunto X es una relación de equivalencia si R es reflexiva, transitiva y simétrica Sea R una relación de X en Y. La inversa de R que se denota por R 1, es la relación de Y a X definida como: R 1 = {(y, x)\(x, y) R} Sea R 1 una relación de X a Y y R 2 una relación de Y a Z, la composición de R 1 y R 2 que se denota por R 2 R 1 es una relación de X a Z definida como R 2 R 1 = {(x, z)\(x, y) R 1 y (y, z) R 2 para alguna y Y }

15 1.2. NOCIONES MATEMÁTICAS 15 No hay que olvidar que las relaciones son conjuntos, por lo cual se pueden aplicarles las operaciones entre conjuntos. Ejemplo 6 Consideremos la siguiente relación sobre X = {1, 2, 3, 4, 5} R = {(x, y)\x + y es par} R = {(1, 1), (1, 3) (1, 5), (2, 2), (2, 4), (3, 1), (3, 3), (3, 5), (4, 2), (4, 4), (5, 1), (5, 3), (5, 5)} De la relación se tiene lo siguiente D R = {1, 2, 3, 4, 5} Im R = {1, 2, 3, 4, 5} Además: la relación es reflexiva pues las parejas (1, 1), (2, 2), (3, 3), (4, 4), (5, 5) pertenecen a la relación. La relación es simetrica pues (1, 3) R y también (3, 1) R (1, 5) R y también (5, 1) R (3, 1) R y también (1, 3) R (3, 5) R y también (5, 3) R (5, 1) R y también (1, 5) R (2, 4) R y también (4, 2) R (4, 2) R y también (2, 4) R. La relación es transitiva pues (1, 1) R y (1, 3) R (x = 1, y = 1 y z = 3) entonces (1, 3) R (1, 1) R y (1, 5) R (x = 1, y = 1 y z = 5) entonces (1, 5) R (1, 3) R y (3, 1) R (x = 1, y = 3 y z = 1) entonces (1, 1) R (1, 3) R y (3, 3) R (x = 1, y = 3 y z = 3) entonces (1, 3) R (1, 3) R y (3, 5) R (x = 1, y = 3 y z = 5) entonces (1, 5) R (1, 5) R y (5, 3) R (x = 1, y = 5 y z = 3) entonces (1, 3) R (1, 5) R y (5, 5) R (x = 1, y = 5 y z = 5) entonces (1, 5) R (1, 5) R y (5, 1) R (x = 1, y = 5 y z = 1) entonces (1, 1) R (2, 4) R y (4, 2) R (x = 2, y = 4 y z = 2) entonces (2, 2) R (2, 4) R y (4, 4) R (x = 2, y = 4 y z = 4) entonces (2, 4) R (2, 2) R y (2, 2) R (x = 2, y = 2 y z = 2) entonces (2, 2) R

16 16 CAPÍTULO 1. INTRODUCCION (2, 2) R y (2, 4) R (x = 2, y = 2 y z = 4) entonces (2, 4) R (3, 1) R y (1, 3) R (x = 3, y = 1 y z = 3) entonces (3, 3) R (3, 1) R y (1, 5) R (x = 3, y = 1 y z = 5) entonces (3, 5) R (3, 1) R y (1, 1) R (x = 3, y = 1 y z = 1) entonces (3, 1) R (3, 3) R y (3, 3) R (x = 3, y = 3 y z = 3) entonces (3, 3) R (3, 3) R y (3, 1) R (x = 3, y = 3 y z = 1) entonces (3, 1) R (3, 3) R y (3, 5) R (x = 3, y = 3 y z = 5) entonces (3, 5) R (3, 5) R y (5, 1) R (x = 3, y = 5 y z = 1) entonces (3, 1) R (3, 5) R y (5, 3) R (x = 3, y = 5 y z = 3) entonces (3, 3) R (3, 5) R y (5, 5) R (x = 3, y = 5 y z = 5) entonces (3, 5) R (4, 2) R y (2, 2) R (x = 4, y = 2 y z = 2) entonces (4, 2) R (4, 4) R y (4, 2) R (x = 4, y = 4 y z = 2) entonces (4, 2) R (4, 2) R y (2, 4) R (x = 4, y = 2 y z = 4) entonces (4, 4) R (4, 4) R y (4, 4) R (x = 2, y = 4 y z = 4) entonces (4, 4) R (5, 1) R y (1, 3) R (x = 5, y = 1 y z = 3) entonces (5, 3) R (5, 1) R y (1, 1) R (x = 5, y = 1 y z = 1) entonces (5, 1) R (5, 1) R y (1, 5) R (x = 5, y = 1 y z = 5) entonces (5, 5) R (5, 3) R y (3, 1) R (x = 5, y = 3 y z = 1) entonces (5, 1) R (5, 3) R y (3, 5) R (x = 5, y = 3 y z = 5) entonces (5, 5) R (5, 3) R y (3, 3) R (x = 5, y = 3 y z = 3) entonces (5, 3) R (5, 5) R y (5, 1) R (x = 5, y = 5 y z = 1) entonces (5, 1) R (5, 5) R y (5, 3) R (x = 5, y = 5 y z = 3) entonces (5, 3) R (5, 5) R y (5, 5) R (x = 5, y = 5 y z = 5) entonces (5, 5) R Como nuestra relación es simétrica entonces no puede ser antisimétrica, es importante observar que si la relación no es simetrica no necesariamente sera antisimetrica. en otros casos tampoco es necesario probar si todos los elementos de la relación cumplen con encontrar uno que no cumpla ser transitivo, reflexivo, simétrico o antisimétrico (dependiendo de que estemos buscando) la relación ya no tendra la propiedad buscada. Por último y como conclusión de nuestro ejemplo la relación por ser transitiva, reflexiva y simetrica es una relacvión de equivalencia. Actividad 4 en los siguientes ejercicios determine: los elementos de la relación, la inversa de la relación, el dominio e imagen de la relación, si es reflexiva, simétrica, antisimétrica, transitiva, relación de equivalencia o es una relación de orden parcial.

17 1.2. NOCIONES MATEMÁTICAS 17 Sea X = {1, 2, 3, 4, 5} 1. R = {(x, y)\ 3 divide a x y} 2. R = {(x, y)\ ; x + y 6} 3. R = {(x, y)\ x y < 3} 4. R = {(x, y)\ x 2 y} 5. R = {(x, y)\ x divide a 2y} Funciones Definición 7 Una función de X a Y es una relación que posee las siguientes propiedades El dominio de f es X Si (x, y) y (x, y ) f, entonces y = y Actividad 5 1. Buscar 5 ejemplos de relaciones binarias que son funciones y 5 ejemplos de relaciones binarias que no lo sean y explicar cual de las dos condiciones de la definición no se cumplen y porque. 2. Investigar que es una función inyectiva (o uno a uno), suprayectiva (o sobre) y biyectiva. La razón por la cual no nos adentramos mucho mas en el estudio de las funciones es porque las hemos empleado en los cursos de matemáticas que se imparten a lo largo del tronco común en el tecnológico Inducción matemática En computación, a veces es necesario que los programas se prueben de manera formal, y sin perder de vista su objetivo. La materia de teoría de la computación se caracteriza por ser una materia con un enfoque conceptual, donde todos los resultados que se presentan se fundamentan en demostraciones formales, empleando principalmente el método inductivo, esto debido

18 18 CAPÍTULO 1. INTRODUCCION a que tanto las cadenas como los autómatas son elementos de conjuntos finitos. Existen varios métodos para realizar demostraciones en matemáticas entre los cuales destacan: Demostraciones deductivas: Las cuales consisten en una secuencia de afirmaciones o proposiciones, cuya validez nos conduce a una conclusión, a partir de las proposiciones iniciales llamadas hipótesis o postulados. Las hipótesis se suponen falsas o verdaderas al inicio de la demostración y con la ayuda de proposiciones, postulados o deducciones anteriores se verifica la veracidad de la mismas. La hipótesis estan formadas por varias afirmaciones independientes que se relacionan entre si mediante un operador lógico.(los teoremas demostrados mediante este método normalmente tienen la forma si H entonces C y se dice que C se deduce de H ) Demostración de equivalencias entre conjuntos. En ocaciones se debe probar que dos o más conjuntos son iguales o representan lo mismo, para este tipo de demostraciones se deberan pobrar las siguientes proposiciones A B y B A, y una vez que se demostrarón podermos concluir la igualdad. Demostración por contradicción: Está es similar a el método deductivo, solo que en lugar de probar si H entonces C, probamos si no C entonces H, que es su proposición contradictoria (no confundirla con la inversa de la proposici ón). Demostración por reducción al absurdo: Está demostración comienza suponiendo que son ciertas tanto la hipótesis H como la negación de la conclusión C y la demostración se completa probando algo que se sabe falso y que se deriva de la proposición H y no C (la cual implica falsedad). Contraejemplos: En programación (sobre todo para estructuras recursivas) no siempre es posible demostrar todos los casoso que se nos presenten, sin embargo con probar que uno o más casos no se cumplen podemos demostrar que una afirmación es falsa. Por ejemplo la afirmación de que todos los números primos son impares es falsa pues el número 2 es par y es un número primo.

19 1.3. CADENAS Y LENGUAJES 19 Otra forma de demostración importante para nuestra materia es la demostración por inducción; este método ayuda principalmente cuando tenemos definiciones recursivas árboles, expresiones regulares, cadenas etc. Primero que nada es necesario explicar que este método se emplea para proposiciones que ocurren una, dos, tres,..., n veces y que tiene un patron que se repite en cada una de las veces a dicha proposición la denotamos mediante S(n), donde n nos dira en que número de repetición nos encontramos. El procedimiento que se emplea en este método es el siguiente: Supongase que se tiene una proposición S(n) para cada entero positivo n, la cual es verdadera o falsa, necesitamos probar dos cosas: 1. Base: debemos probar que la proposición es cierta (o falsa) para n = 0 y n = 1, o para los valores a partir de los cuales se marque que esta es verdadera ( en el caso de que existen afirmaciones que no son ciertas para números pequeños), en terminos matemáticos S(i) es cierta cuando i = 0 o i = 1 2. Paso de inducción: en este paso suponemos que para algun valor n arbitrario la proposición S(n) es cierta, y posteriormente procedemos a probar que esta proposición también se cumple para su consecutivo S(n + 1) Por ejemplo las filas de fichas de dominó cuando caen: hemos demostrado que la primera ficha cae (primer paso), y que si cae una ficha también debe caer la siguiente (si es cierta para n, debe serlo para n+1, segundo paso). La idea de la inducción es muy clara: si un número cumple algo, y si cuando un número lo cumple el siguiente tiene que cumplirlo, entonces todos los números lo cumplen. Actividad 6 Investigar 5 ejemplos en los que se empleen demostraciones por el método inductivo 1.3. Cadenas y lenguajes Si nosotros observamos las siguientes líneas podemos observar algunas cosas en común: Programas escritos en lenguajes de alto nivel.

20 20 CAPÍTULO 1. INTRODUCCION Palabras o frases en español. Los números usados por una calculadora Lo primero que podemos observar es que cada una de ellas está compuesta por una secuencia de símbolos que pertenecen a algún conjunto finito; para el caso de la segunda línea el conjunto {a, b, c,..., x, y, z} junto con todos los símbolos de puntuación correspondientes, de manera análoga para la tercera línea, donde el conjunto son los dígitos {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}. Los programas escritos en lenguajes de alto nivel también están compuestos por un conjunto finito de palabras reservadas, identificadores y símbolos especiales (como fin de archivo, abrir archivo, retorno de carro etc.) En general cada una de ellas está formada por una secuencia de elementos de un conjunto finito no vacío llamado alfabeto que denotaremos por Σ; a los elementos de dicho alfabeto los llamaremos letras y los denotaremos por σ, además supondremos que las letras se escriben con un solo carácter. Ejemplo 7 Entre los alfabetos más comunes en computación se encuentran Σ = {0, 1} el alfabeto binario. El conjunto de todos los caracteres ASCII, o el conjunto de todos los caracteres ASCII imprimibles. Definición 8 Sea Σ un alfabeto, una palabra o cadena sobre el alfabeto es una secuencia finita de símbolos del alfabeto Σ. En caso de que no se tenga ningun caracter la cadena será llamada cadena vacía y la denotaremos mediante la letra λ. Ejemplo , , 1, 00, son cadenas del alfabeto binario Entre las cadenas es posible hacer operaciones, a continuación describimos algunas de ellas: Sea Σ un alfabeto, se define la concatenación de palabras como una operación: : Σ Σ Σ para todo ω, ϕ Σ : ω ϕ = (ω 1, ω 2,..., ω n ϕ 1, ϕ 2,..., ϕ n )

21 1.3. CADENAS Y LENGUAJES 21 En la palabra resultante, a la palabra ω la llamaremos prefijo y a la palabra ϕ, la llamaremos sufijo Si ω = hola y ϕ = peluza entonces ω ϕ = holapeluza aqui el prefijo es hola mientras que el sufijo es peluza, y de este mismo ejemplo podemos observar que ϕ ω = peluzahola de donde podemos concluir que la concatenación de cadenas no es conmutativa ϕ ω ϕ ω a menos que una de las palabras sea la palabra vacía λ ω = ω λ = ω En ocaciones es útil clasificar las cadenas por su longitud, es decir el número de caracteres que conforman la cadena, por ejemplo la cadena for(i = 1; i <= 40; i + +) tiene 18 caracteres, de manera más formal: Definición 9 Sea Σ un alfabeto y ω = (ω 1, ω 2,..., ω n ) una palabra sobre Σ. La longitud de una palabra de Σ es una función: : Σ N definida así: ω = n Derivado de la definición tenemos lo siguiente 1. La longitud de la cadena vacía es cero λ = 0 2. La longitud de la concatenación de dos cadenas es la suma de las longitudes de cada cadena,si ϕ, ω Σ: ω ϕ = ω + ϕ A continuación se muestra un ejemplo de como se usa el método inductivo en la teoria de autómatas, para desmostrar la última afirmación Demostración:

22 22 CAPÍTULO 1. INTRODUCCION Procederemos por inducción sobre ϕ Base: Si ϕ = λ entonces ω ϕ = ω λ = ω + 0 = ω + λ = ω + ϕ Hipótesis de inducción: Supongamos que para cualquier palabra α, α n se tiene que: ω α = ω + α Ahora sea ψ = α β una palabra de longitud n + 1 con α Σ y β Σ ϕ ψ = ϕ α β = ϕ α + 1 = ϕ + n + 1 = ϕ + α β = ϕ + ψ Actividad 7 Investigar las propiedades de asociatividad e identico entre concatenación de cadenas Definición 10 Si Σ es un alfabeto podemos expresar el conjunto de todas las cadenas del alfabeto empleando la siguiente notación Σ k que es el conjunto de todas las cadenas de longitud k, tales que todos los símbolos que las conforman pertenecen a el alfabeto Σ Ejemplo 9 si Σ = {0, 1} entonces: Σ 0 = λ Σ 1 = {0, 1} Σ 2 = {00, 01, 10, 11} Σ 3 = {000, 001, 010, 011, 100, , 111} y así sucesivamente. Es importante hacer enfásis en el hecho de que Σ y Σ 1 no son lo mismo, el primero representa el conjunto formado por los símbolos 0 y 1 y del segundo sus miembros son las cadenas 0 y 1, cada una de las cuales tiene longitud uno. Definición 11 Al conjunto de todas las cadenas tomadas de un alfabeto lo llamaremos lenguaje. El lenguaje compuesto por todas las palabras sobre el alfabeto, se le conoce como diccionario y se denota por Σ, donde: Σ = Σ 0 Σ 1 Σ 2 Σ 3...

23 1.3. CADENAS Y LENGUAJES 23 En el caso de que el diccionario no incluya la cadena vacía se escribira como Σ + y tenemos que Σ = Σ + {λ} Algunos ejemplos de lenguajes son: El conjunto de los números binarios que representan un número primo El lenguaje de programación C el conjunto de todas las cadenas con igual cantidad de ceros y unos. Una aplicación de los lenguajes es un analizador léxico de un compilador de algun lenguaje de programación particular, en el cual se proporciona una cadena ASCII y deseamos saber si dicha cadena pertenece o no al conjunto de todos los programas validos para el lenguaje de programación.

24 24 CAPÍTULO 1. INTRODUCCION

25 Capítulo 2 Lenguajes regulares Objetivo de la unidad: Conocer el concepto de expresón regular, su representación mediante autómatas finitos y sus aplicaciones en procesos de computo y el entorno donde se desenvuelve el alumno 2.1. Autómatas finitos Para iniciar esta unidad se presentará un ejemplo práctico, tomado del libro Introducción a la teoría de autómatas, lenguajes y computación, de John E.Hopcroft Ejemplo 10 Los protocolos que ayudan a manejar el dinero electrónico (son archivos que se utilizan para pagar compras en Internet y que el vendedor recibe con la garantía de que el dinero es real) La parte de asegurar el dinero le corresponde al banco el cual debera encriptar sus archivos para garantizar que la falsificación no sea un problema, además de mantener una base de datos con todo el dinero valido que ha emitido, para asegurar que el dinero que va a dar a la tienda sea real (es decir que en la cuenta del cliente existan fondos), este proceso de compra, venta e intercambio de dinero puede ser modelado mediante autómatas finitos Otro ejemplo de un proceso que podemos modelar empleando autómatas finitos es el siguiente Ejemplo 11 Las máquinas expendedoras de refrescos, dulces o café requieren 25

26 26 CAPÍTULO 2. LENGUAJES REGULARES que se introduzca cierto importe para poder despachar algún producto, primero requieren de selecciónar el producto posteriormente se necesita insertar la cantidad de dinero necesario dependendiendo de la selección realizada, la maquina debera contabilizarlo para guardar en un estado la cantidad de dinero que fue introducido y en caso de que sea necesario dar cambio y que éste sea devuelto correctamente, en este caso la entrada de nuestro autómata es no tener dinero acumulado ni opción seleccionada, después se siguen una secuencia de movimientos que nos llevan a obtener nuestro producto finaluna vez que se ha completado la cantidad que cuesta el producto (este ejemplo se analizará con más detalle en el transcurso del cápitulo) En muchas otras máquinas se emplean los autómatas, así que necesitamos estudiar?qué es? y todas sus características. Actividad 8 Investigue dos ejemplos donde sea posible modelar un comportamiento mediante autómatas Autómatas finitos deterministicos AFD Para comenzar mencionares que el autómata finito deterministico es aquel que siempre está en un sólo estado después de leer cualquier secuencia de entradas; la palabra determinista nos dice que para cada entrada existe un único estado al que el autómata puede llegar partiendo del estado actual; comencemos dando la definición formal Definición 12 Un Autómata Finito Determinístico (AFD) es una quintupla: M = (Q, Σ, q 0, f, F ), donde Q Es un conjunto finito no vacío (los elementos de Q son llamados estados) Σ es un conjunto de símbolos de entrada al que llamaremos alfabeto. q I Q, es un estado al que llamaremos estado inicial. f Es una función Q Σ Q que se llama función de transición; ésta recibe como argumentos un estado y una entrada y devuelve un estado. q F Q es un conjunto de estados a los cuales llamaremos estados finales o de aceptación.

27 2.1. AUTÓMATAS FINITOS 27 Un autómata puede ser representado mediante un grafo dirigido (digrafo) el cual se conoce como diagrama de transiciones, donde los vértices del mismo corresponden a los estados del autómata, en el caso del estado inicial éste tendrá una flecha que apunta hacia él, y los estados finales se representarán mediante un círculo con línea doble; si existe una transición del estado q al p sobre la entrada a entonces existe un arco con etiqueta a que va del estado q al estado p en el diagrama de transición. El autómata acepta una cadena ω si la secuencia de transiciones correspondientes a los símbolos de ω conducen del estado inicial a un estado final. Ejemplo 12 Sea Q = {q 0, q 1, q 2, q 3 } el conjunto de estados, q I = {q 0 } el estado inicial, q F = {q 0 } el conjunto de estados finales, Σ = {0, 1} el alfabeto de entrada y la función f q 0 q 1 q 2 q 3 q q q q El digrafo asociado al automata anterior es: Figura 2.1: Grafo asociado a un autómata la función de transición también se puede escribir de la siguiente forma f(q 0, 1) q 1 f(q 0, 0) q 2 f(q 1, 1) q 0 f(q 1, 0) q 3 f(q 2, 1) q 3 f(q 2, 0) q 0 f(q 3, 1) q 2 o mediante la siguiente f(q 3, 0) q 2

28 28 CAPÍTULO 2. LENGUAJES REGULARES Definición 13 Sea M = (Q, Σ, q 0, f, F ) un AFD definimos la iteración de f sobre Σ así: f : Q Σ Q q Q : f (q, λ) := q q Q, σ Σ y ϕ Σ : f (q, σϕ) := f (f (q, σ), ϕ) Algo que es importante en la teoría de autómatas, es como decide si acepta o no una secuencia de símbolos de entrada (cadena). El lenguaje de un AFD es el conjunto de todas las cadenas que acepta el autómata, formalmente: Definición 14 Sea M = (Q, Σ, q 0, f, F ) un AFD, el lenguaje de M se define como: L(M) := {w Σ f (q 0, w) F } Observación 1 Sean L(A) y L(B) dos lenguajes sobre el alfabeto Σ, entonces L(A) = L(B) si y sólo si L(A) L(B) y L(B) L(A). Observación 2 Sean L(A) y L(B) dos lenguajes sobre el alfabeto Σ, entonces (L(A) L(B)) R = L(B) R L(A) R. Definición 15 Dos autómatas finitos se dicen equivalentes si reconocen el mismo lenguaje, es decir: Dados M p = (Q, Σ, p 0, f, F ), M q = (Q, Σ, q 0, f, F ) AFD M P M q L(M p ) = L(M q ) Autómatas finitos no deterministicos AFND Ahora, si se modifica el modelo del autómata finito, para permitirle ninguna, una o más transiciones de un estado sobre el mismo símbolo de entrada, al nuevo modelo lo conoceremos como autómata finito no determinístico. Definición 16 Un Autómata Finito No Determinístico (AFND) es una quintupla M = (Q, Σ, I, R, F ), donde

29 2.1. AUTÓMATAS FINITOS 29 Q es un conjunto de estados Σ es un alfabeto. I Q es un conjunto de estados a los cuales llamaremos estados iniciales. R es una relación sobre Q Σ Q que se llama relación de transición. F Q es un conjunto de estados a los cuales llamaremos estados finales. Observación 3 Si I se reduce a un solo estado y R es tal que sus elementos pueden escribirse mediante una función entonces el autómata será determinístico. Definición 17 Sea M un AFND y sea ω Σ un camino que empieza en q 0, inducido por ω = σ 1 σ 2,, σ n en un autómata es una n + 1-ada de estados (q 0, q 1,, q n ) tales que k [1, 2,, n], (q k 1, σ k, q k ) R. También diremos que el camino empieza en q 0 e induce λ es (q 0 ). Definición 18 Una palabra ω se dice reconocida por un AFND M, si ω induce un camino que empieza en un estado inicial y termina en algún estado final. Definición 19 El lenguaje del AFND M, es el conjunto de todas las palabras en Σ que son reconocidas por M L(M) = {ω Σ ω induce un camino (q 0,, q n ) tal que q 0 I y q n F } Observación 4 Dado un AFND M = (Q, Σ, I, R, F ) entonces existe un AFD M tal que L(M) = L(M ). Ejemplo 13 Sea M = ({q 0, q 1 }, {0, 1}, δ, q 0, {q 1 }) un AFND en el que : δ (q 0, 0) = {q 0, q 1 } δ (q 0, 1) = {q 1 } δ (q 1, 0) = δ (q 1, 1) = {q 0, q 1 }

30 30 CAPÍTULO 2. LENGUAJES REGULARES Podemos construir un AFD M = (Q, {0, 1}, δ, [q 0 ], F ) que acepte a L (M) de la siguiente forma: Q esta dado por todos los subconjuntos de {q 0, q 1 }, a los cuales denotaremos así: [q 0 ], [q 1 ], [q 0, q 1 ], como δ (q 0, o) = {q o, q 1 } tenemos: δ ([q 0 ], 0) = [q 0, q 1 ] de la misma forma: δ ([q 0 ], 1) = [q 1 ] δ ([q 1 ], 0) = δ ([q 1 ], 1) = [q 0, q 1 ] δ (, 0) = δ (, 1) = Por lo tanto el conjunto de estados finales es {[q 1 ], [q 0, q 1 ]} 2.2. Expresiones regulares Las expresiones regulares son importantes porque también pueden ser consideradas como un lenguaje de programación, que nos permite realizar acciones importante como las de busqueda de elementos en los compiladores (errores como la falta de signos de puntuación o palabras reservadas mal escritas). Las expresiones regulares estan directamente relacionadas con los autómatas finitos deterministicos y no deterministicos, y en muchas ocaciones son empleadas para describir componentes de software debido a que son más faciles de entender que los autómatas finitos. Otras caracteristicas importantes de las expresiones regulares es que estas nos permiten definir a los lenguajes descritos por las distintas familias de autómatas, los lenguajes regulares, con la ventaja de que las expresiones regulares ofrecen una forma declarativa de expresar las cadenas que pretendemos aceptar, lo que permite que se utilicen como lenguaje de entrada en muchos sistemas de proceso de cadenas. Definición 20 Las Expresiones regulares sobre un alfabeto, se definen así : 1. es una expresión regular.

31 2.2. EXPRESIONES REGULARES {λ} es una expresión regular y se escribe: λ 3. σ Σ : σ es expresión regular y se escribe: σ. Ahora, si α y β son expresiones regulares, entonces también lo serán: 4. α β que escribiremos: α + β 5. α β 6. α Sólo las expresiones que se obtienen por composición finita de las reglas anteriores son expresiones regulares. Proposión 1 Sea α una expresión regular. Entonces α R también es una expresión regular Demostración: Se procederá por inducción sobre la construcción de expresiones regulares 1. R = 2. λ R = {λ} R = { λ R} = {λ} = λ 3. Sea σ Σ entonces por la definición de inversa) σ R = (σλ) R = λ R σ = λσ = σ por lo tanto σ R = {σ} R = {σ R } = {σ} = σ (1), (2) y (3) son expresiones regulares. 4. Supongamos que α, β, son expresiones regulares y que α R, β R también lo son, entonces (α + β) R = {ω R ω α + β} = {ω R ω α} {ω R ω β} = α R β R por lo tanto (α + β) R es expresión regular.

32 32 CAPÍTULO 2. LENGUAJES REGULARES 5. Si ϕ, ψ son palabras queremos probar que ψ R ϕ R = (ϕψ) R Base: si ϕ = λ (ϕψ) R = (λψ) R = ψ R = ψ R λ = ψ R λ R = ψ R ϕ R Hipótesis de inducción: Sea α Σ con α = n, n 1 entonces (ϕψ) R = {β R β ϕψ} = {β R β = a b, a ϕ, b ψ} = ψ R ϕ R Ahora para α, σ Σ por la hipótesis de inducción que es una expresión regular. 6. (α ) R = ( α R) base (α 0 ) R = λ n = λ = ( α R) 0 ((ασ) ψ) R = (σ (αψ)) R = (αψ) R σ (αψ) R σ = ψ R α R σ = ψ R (σα) R hipótesis de inducción (α ) R = ( α R) Para n + 1 ( α n+1 ) R = (α n α) R = α R (α n ) R = α R ( α R) n = ( α R ) n+1 ahora ( ) R (α ) R = α n = (α n ) R ( = ) α R n = (α n ) que es una expresión regular. n=0 n=0 n=0 Por lo tanto, la inversión de una expresión regular es una expresión regular.

33 2.2. EXPRESIONES REGULARES 33 Probablemente la definición anterior nos haga pensar que las expresiones regualres no son tan comprensibles, pero quiza el siguiente ejemplo permita que se pueda cambiar de opinión Ejemplo denota el lenguaje de todas las cadenas que comienzan con cero y estan seguidas por cualquier cantidad de unos o comienzan con uno y estan seguidas de cualquier cantidad de ceros. Cerradura de Kleene La Cerradura o clausura o estrella de Kleene de un lenguaje se denota por L y representa el conjunto de las cadenas que se pueden formar tomando cualquier número de cadenas de L, por ejemplo si L = {0, 11}, L consta de aquellas cadenas de ceros y unos en las que los unos se encuentran en pares, como 001, 11110; sin embargo cadenas como 101 y no estan dentro de la cerradura. Ejemplo 15 Si L = {a, bb} entonces L 0 = {λ} L 1 = {a, bb} L 2 = {aa, abb, bba, bbbb} L 3 = {aaa, aabb, abba, abbbb, bbbbbb, bbbba bbaabb, bbaa} observe que aqui a corresponde a un caracter y bb corresponde a otro caracter. Para calcular L debemos calcular L i para todo i y hacer la unión de estos lenguajes. Construcción de expresiones regulares Se mostrará un ejemplo de como se construyen las expresiones regulares utilizando la definición de las mismas

34 34 CAPÍTULO 2. LENGUAJES REGULARES Ejemplo 16 Sea E el conjunto formado por todas las cadenas que tienen cero o más repeticiones de la cadena 01 alternados. Primero se desarrolla una expresión regular para el lenguaje formado por la cadena única 01, posteriormente con ayuda del operador, podermos obtener una expresión para todas las cadenas de la forma Lo primero que se debe contemplar es que por la definición de expresión regular 0 y 1 son expresiones regulares, y representan los lenguajes {0} y {1}, por el inciso 5 de la definición la concatenación de expresiones regulares es una expresión regular, por lo cual 01 es una expresión regular que generael lenguaje {01}. Para obtener todas las cadenas que constan de ceros y unos usamos 6 de la definición y obtenemos la expresión regular (01). Sin embargo el lenguaje asociado a (01) sólo reconoce cadenas que empiecen con cero y terminan en uno, pero que pasa con las cadenas que comienzan en uno y terminen con cero o con uno, para contemplar todas las posiblilidades será necesario construir tres expresiones regulares más y la expresión regular completa será (10) 0(10) 1(01) (01) + (10) + 0(10) + 1(01) aqui el operador + nos ayuda a unir los cuatro lenguajes formados por cada una de las expresiones regulares. Es importante denotar que los operadores en las expresiones regulares y en las expresiones regulares conservan cierta precedencia dada de la siguiente forma El operador tiene la mayor precedencia, se aplica sólo a la secuencia más pequeña de símbolos a su izquierda que constituyen una expresión regular bien formada. El siguiente en precedencia es el operador concatenación; una vez aplicados todos los aplicamos la concatenación. Por último se aplican los operadores de unión.

35 2.3. LENGUAJES REGULARES Lenguajes Regulares Los Lenguajes regulares son elementos de la teoría de la computación que estan directamente vinculados con las expresiones regulares y los autómatas finitos deterministicos. Aunque las expresiones regulares describen los lenguajes de manera diferente a como lo hacen los autómatas finitos, ambas notaciones representan exactamente el mismo conjunto de lenguajes (lenguajes regulares), además también se vio que es posible construir autómatas finitos deterministicos asociados a autómatas finitos no deterministicos, con lo cual los lenguajes regulares también se encongraran vinculados con ésta clase de autómatas. Todo lenguaje definido mediante un autómata finito deterministico, también puede definirse mediante una expresión regular. Todo lenguaje definido por una expresión regular también puede definirse mediante un autómata finito deterministico. Definición 21 Un conjunto A Σ se dice regular si existe un AFD M tal que L(M) = A Observación 5 Sea M un autómata finito, entonces existe una expresión regular r para la cual L(r) = L(M) Observación 6 Un lenguaje es regular si y sólo si es aceptado por un autómata finito Es importante recordar que los lenguajes son conjuntos, con lo cual se les pueden aplicar las operaciones asociadas a los conjuntos y describir mediante las mismas algunas propiedades que nos ayuden a construirlos y entenderlos de manera mas sencilla; a continuación mencionamos algunas de las propiedades de los lenguajes regulares 1. La unión de dos lenguajes regulares es regular. 2. La intersección de dos lenguajes regulares es regular. 3. El complemento de un lenguaje regular es regular. 4. La diferencia de dos lenguajes regulares es regular. 5. La reflexión de un lenguaje regular es regular.

36 36 CAPÍTULO 2. LENGUAJES REGULARES 6. La cerradura de Kleen de un lenguaje regular es regular. 7. La concatenación de dos lenguajes regulares es regular.

37 Capítulo 3 Lenguajes libres de contexto Objetivo de la unidad: Conocer el concepto de lenguaje independiente del contexto, cuales son las caracteristicas que posee y sus aplicaciones Las Gramáticas independientes del contexto o libres de contexto juegan un papel muy importante en la tecnologia de las computadoras desde la decada de 1960, ya que optimizaron e hicieron más barata la tarea de implementar el analizador sintáctico de los compiladores; posteriormente nos permitieron describir formatos de documentos mediante la definición del tipo de documentos en la red Gramáticas libres de contexto El lenguaje es el medio de comunicación entre los seres humanos a través de signos orales y escritos que poseen un significado. Para que exista el lenguaje se requieren ciertos factores como la sintaxis, que da estructura al lenguaje y la semántica, que le da significado al lenguaje. Además de manera conjunta con los lenguajes tenemos la gramática que estudia los elementos de un lenguaje y sus combinaciones. Así como es importante podernos comunicar con otras personas, actualmente también es importante podernos comunicar con las computadoras; es decir establecer un lenguaje y una gramática para facilitar el uso de las mismas. Introduciremos de manera natural el concepto de gramática mediante una analogía con el lenguaje español y su gramática. 37

38 38 CAPÍTULO 3. LENGUAJES LIBRES DE CONTEXTO Ejemplo 17 Suponga que tenemos la siguiente frase: La gata gris duerme en la cama diariamente Observamos que la frase se divide en dos partes esenciales sujeto y predicado; el sujeto a su vez se divide en artículo, sustantivo y adjetivo; y el predicado se divide en verbo, preposición, artículo y advervio. Nosotros podemos decir que existe una variable llamada < frase > que genera 2 variables < sujeto > y < predicado > es decir: < frase > < sujeto >< predicado > (sustituimos la palabra produce por la flecha) a su vez las variables < sujeto > < articulo >< sustantivo >< adjetivo > < predicado > < verbo >< preposicion >< articulo >< advervio > por último las variables < articulo > la el < sustantivo > gata cama < adjetivo > gris < verbo > duerme < preposicion > en < advervio > diariamente a las variables la, el, gata, cama, gris, duerme, en, diariamente las llamamos símbolos terminales, mientras que a las variables escritas entre < > las conocemos como símbolos no terminales; el proceso que sustituye unas variables por otras se le conoce como producción y a la variables < frase > se le conoce como símbolo inicial. De manera formal tenemos Definición 22 Una Gramática es una cuadrupla G = (N, T, P, S) donde N es un alfabeto a cuyos símbolos llamamos no terminales. T es un alfabeto a cuyos símbolos llamamos terminales.

39 3.1. GRAMÁTICAS LIBRES DE CONTEXTO 39 P es un subconjunto finito de (N \T ) N N y a los elementos (u, v)de P los conocemos como producciones de G. S es el símbolo inicial. En el párrafo previo a la definición se describe cuales son los conjuntos N, y T así como cual es el elemento S y las producciones correspondientes al ejemplo (2). Notación 2 A los símbolos no terminales se les representa mediante letras mayúsculas, mientras que los símbolos terminales serán representados mediante letras minúsculas. Definición 23 Para ω, ω N escribimos ω = ω si existen x, y N y una producción u v en P tal que y ω = xuy ω = xvy Decimos que ω deriva ω Escribimos ω = z si ω = z o existen ω 1, ω 2,, ω n con n 2 en N tales que ω = ω 1, z = ω n y ω i = ω i+1 sin pérdida de generalidad a esta transformación la llamaremos derivación en G y decimos que ω deriva a z. Definición 24 El lenguaje L(G) generado por G es el conjunto de palabras en T, que puede ser derivado a partir de S { } L(G) = ω T S = ω Ahora, regresando al ejemplo anterior observamos que las producciones pueden generar frases como la siguiente El cama gris duerme en la gata diariamente La cual no es semánticamente aceptable, pues carece de significado, pero es aceptada por la sintaxis de la gramática; debido a este comportamiento será necesario hacer modificaciones para que el lenguaje sólo reconozca oraciones que posean significado (es decir analizar el contexto de la oración).

40 40 CAPÍTULO 3. LENGUAJES LIBRES DE CONTEXTO Definición 25 Una gramática es regular si cada producción P es de la forma o de la forma α xβ con (x T, α, β N \ T ) α y con (α N \ T, y T ) Decimos que una gramática G es independiente del contexto si todas las producciones son de la forma α z con z (T N) Ejemplo 18 Sea G = (N, T, P, S) donde T = {a, b} N \ T = {S, B} y P consiste de las producciones S asb λ entonces L(G) = {a n b n n 1} que es un lenguaje independiente del contexto. Ejemplo 19 Sea G = (N, T, P, S) con T = {a, b}, N \ T = {S} y P tenga las producciones S asa bsb a b λ Tenemos que L(G) = { ω T ω = ω R} que es el lenguaje de los palíndromos, en el alfabeto T. Definición 26 Sea G una gramática independiente del contexto, una producción A α en la gramática se llama regla de G. El símbolo no terminal A es la parte izquierda de la regla, y la cadena α es la parte derecha de la regla. En una producción de la forma A xβ, la letra x N T se llama manipuladora de la producción. Una producción de la forma A B con A y B símbolos no terminales, se llama producción no generativa. Si G permite la derivación A = Aϕ entonces la letra no terminal A se dice recursiva izquierda. Si G permite la derivación A = ϕa entonces A se dice recursiva derecha. Si G permite la derivación A = A en uno o más pasos entonces se dice que A es un no terminal cíclico.

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

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

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

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

Conjuntos, relaciones y funciones Susana Puddu

Conjuntos, relaciones y funciones Susana Puddu Susana Puddu 1. Repaso sobre la teoría de conjuntos. Denotaremos por IN al conjunto de los números naturales y por ZZ al de los enteros. Dados dos conjuntos A y B decimos que A está contenido en B o también

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

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

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

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

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

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

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

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 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

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

SESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES

SESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES SESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES RELACIONES BINARIAS PAR ORDENADO Es un arreglo de dos elementos que tienen un orden determinado donde a es llamada al primera componente y b es llamada la

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

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

Semana05[1/14] Relaciones. 28 de marzo de Relaciones

Semana05[1/14] Relaciones. 28 de marzo de Relaciones Semana05[1/14] 28 de marzo de 2007 Introducción Semana05[2/14] Ya en los capítulos anteriores nos acercamos al concepto de relación. Relación Dados un par de conjuntos no vacíos A y B, llamaremos relación

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

Objetivos formativos de Matemática Discreta. Tema 1: Conjuntos, aplicaciones y relaciones

Objetivos formativos de Matemática Discreta. Tema 1: Conjuntos, aplicaciones y relaciones Objetivos formativos de Matemática Discreta Para cada uno de los temas el alumno debe ser capaz de hacer lo que se indica en cada bloque. Además de los objetivos que se señalan en cada tema, se considera

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

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

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

Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación.

Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación. NÚMEROS REALES Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación. Un conjunto es una colección bien definida

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

Índice Proposiciones y Conectores Lógicos Tablas de Verdad Lógica de Predicados Inducción

Índice Proposiciones y Conectores Lógicos Tablas de Verdad Lógica de Predicados Inducción Curso 0: Matemáticas y sus Aplicaciones Tema 5. Lógica y Formalismo Matemático Leandro Marín Dpto. de Matemática Aplicada Universidad de Murcia 2012 1 Proposiciones y Conectores Lógicos 2 Tablas de Verdad

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

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

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

En general, un conjunto A se define seleccionando los elementos de un cierto conjunto U de referencia que cumplen una determinada propiedad.

En general, un conjunto A se define seleccionando los elementos de un cierto conjunto U de referencia que cumplen una determinada propiedad. nidad 3: Conjuntos 3.1 Introducción Georg Cantor [1845-1918] formuló de manera individual la teoría de conjuntos a finales del siglo XIX y principios del XX. Su objetivo era el de formalizar las matemáticas

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

Capítulo 6. Relaciones. Continuar

Capítulo 6. Relaciones. Continuar Capítulo 6. Relaciones Continuar Introducción Una relación es una correspondencia entre dos elementos de dos conjuntos con ciertas propiedades. En computación las relaciones se utilizan en base de datos,

Más detalles

TEMA 3 Elementos de la teoría de los conjuntos. *

TEMA 3 Elementos de la teoría de los conjuntos. * TEM 3 Elementos de la teoría de los conjuntos. * Conjuntos. Un conjunto es cualquier colección, bien definida, de objetos llamadas elementos o miembros del conjunto. Una manera de describir un conjunto

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

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

Recordemos que utilizaremos, como es habitual, la siguiente notación para algunos conjuntos de números que son básicos.

Recordemos que utilizaremos, como es habitual, la siguiente notación para algunos conjuntos de números que son básicos. Capítulo 1 Preliminares Vamos a ver en este primer capítulo de preliminares algunos conceptos, ideas y propiedades que serán muy útiles para el desarrollo de la asignatura. Se trata de resultados sobre

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

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

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

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

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

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

TEMA 1. MATRICES, DETERMINANTES Y APLICACIÓN DE LOS DETERMINANTES. CONCEPTO DE MATRIZ. LA MATRIZ COMO EXPRESIÓN DE TABLAS Y GRAFOS.

TEMA 1. MATRICES, DETERMINANTES Y APLICACIÓN DE LOS DETERMINANTES. CONCEPTO DE MATRIZ. LA MATRIZ COMO EXPRESIÓN DE TABLAS Y GRAFOS. TEMA 1. MATRICES, DETERMINANTES Y APLICACIÓN DE LOS DETERMINANTES. 1. MATRICES. CONCEPTO DE MATRIZ. LA MATRIZ COMO EXPRESIÓN DE TABLAS Y GRAFOS. DEFINICIÓN: Las matrices son tablas numéricas rectangulares

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

Tema 1. Espacios Vectoriales Definición de Espacio Vectorial

Tema 1. Espacios Vectoriales Definición de Espacio Vectorial Tema 1 Espacios Vectoriales. 1.1. Definición de Espacio Vectorial Notas 1.1.1. Denotaremos por N, Z, Q, R, C, a los conjuntos de los números Naturales, Enteros, Racionales, Reales y Complejos, respectivamente.

Más detalles

Tema 2: El grupo de las permutaciones

Tema 2: El grupo de las permutaciones Tema 2: El grupo de las permutaciones Miguel Ángel Olalla Acosta miguelolalla@us.es Departamento de Álgebra Universidad de Sevilla Octubre de 2014 Olalla (Universidad de Sevilla) Tema 2: El grupo de las

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

Lic. Manuel de Jesús Campos Boc

Lic. Manuel de Jesús Campos Boc UNIVERSIDAD MARIANO GÁLVEZ DE GUATEMALA FACULTAD DE CIENCIAS DE LA ADMINISTRACIÓN DIRECCIÓN GENERAL DE CENTRO UNIVERSITARIOS CENTRO UNIVERSITARIO DE VILLA NUEVA CURSO MATEMÁTICAS APLICADA I 2015 Lic. Manuel

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

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

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

Conjuntos. () April 4, / 32

Conjuntos. () April 4, / 32 Conjuntos En general, un conjunto A se de ne seleccionando los elementos de un cierto conjunto U de referencia (o universal) que cumplen una determinada propiedad. () April 4, 2014 1 / 32 Conjuntos En

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

CAPÍTULO 2 NOCIONES BÁSICAS DE TEORÍA DE CONJUNTOS

CAPÍTULO 2 NOCIONES BÁSICAS DE TEORÍA DE CONJUNTOS CAPÍTULO 2 NOCIONES BÁSICAS DE TEORÍA DE CONJUNTOS 2.1. NOCIONES PRIMITIVAS Consideraremos tres nociones primitivas: Conjunto, Elemento y Pertenencia. Conjunto Podemos entender al conjunto como, colección,

Más detalles

Pregunta 1 Es correcta esta definición? Por qué?

Pregunta 1 Es correcta esta definición? Por qué? TEORÍA DE CONJUNTOS. En un libro de COU de 1975 puede leerse la siguiente definición de conjunto: Un conjunto es una colección de objetos, cualquiera que sea su naturaleza. Pregunta 1 Es correcta esta

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

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

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

un conjunto cuyos elementos denominaremos vectores y denotaremos por es un espacio vectorial si verifica las siguientes propiedades:

un conjunto cuyos elementos denominaremos vectores y denotaremos por es un espacio vectorial si verifica las siguientes propiedades: CAPÍTULO 2: ESPACIOS VECTORIALES 2.1- Definición y propiedades. 2.1.1-Definición: espacio vectorial. Sea un cuerpo conmutativo a cuyos elementos denominaremos escalares o números. No es necesario preocuparse

Más detalles

Conjuntos finitos y conjuntos numerables

Conjuntos finitos y conjuntos numerables Tema 3 Conjuntos finitos y conjuntos numerables En este tema vamos a usar los números naturales para contar los elementos de un conjunto, o dicho con mayor precisión, para definir los conjuntos finitos

Más detalles

ESCUELA TÉCNICA SUPERIOR DE NÁUTICA Y MÁQUINAS NAVALES / NAUTIKAKO ETA ITSASONTZI MAKINETAKO GOI ESKOLA TEKNIKOA NOCIONES PRELIMINARES DE MATEMÁTICAS

ESCUELA TÉCNICA SUPERIOR DE NÁUTICA Y MÁQUINAS NAVALES / NAUTIKAKO ETA ITSASONTZI MAKINETAKO GOI ESKOLA TEKNIKOA NOCIONES PRELIMINARES DE MATEMÁTICAS ESCUELA TÉCNICA SUPERIOR DE NÁUTICA Y MÁQUINAS NAVALES / NAUTIKAKO ETA ITSASONTZI MAKINETAKO GOI ESKOLA TEKNIKOA NOCIONES PRELIMINARES DE MATEMÁTICAS A. 1 Conjuntos. A. TEORÍA DE CONJUNTOS. Un conjunto

Más detalles

Es claro que es una relación de equivalencia. Para ver que tener la misma cardinalidad y la cardinalidad están bien definidas queremos ver que

Es claro que es una relación de equivalencia. Para ver que tener la misma cardinalidad y la cardinalidad están bien definidas queremos ver que Capítulo II Cardinalidad Finita II.1. Cardinalidad Definimos I n para n N como I n = {k N : 1 k n}. En particular I 0 =, puesto que 0 < 1. Esto es equivalente a la definición recursiva { si n = 0 I n =

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

Semana03[1/17] Funciones. 16 de marzo de Funciones

Semana03[1/17] Funciones. 16 de marzo de Funciones Semana03[1/17] 16 de marzo de 2007 Introducción Semana03[2/17] Ya que conocemos el producto cartesiano A B entre dos conjuntos A y B, podemos definir entre ellos algún tipo de correspondencia. Es decir,

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

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

Conjuntos Infinitos. Ramón Espinoza Armenta AVC APOYO VIRTUAL PARA EL CONOCIMIENTO

Conjuntos Infinitos. Ramón Espinoza Armenta AVC APOYO VIRTUAL PARA EL CONOCIMIENTO Ramón Espinoza Armenta AVC APOYO VIRTUAL PARA EL CONOCIMIENTO El estudio de los conjuntos infinitos se inicia con Las Paradojas del Infinito, la última obra del matemático checo Bernard Bolzano, publicada

Más detalles

CONJUNTO: Colección o agregado de ideas u objetos de cualquier especie.

CONJUNTO: Colección o agregado de ideas u objetos de cualquier especie. RESUMEN DE MATEMATICAS I PARTE I CONJUNTOS CONJUNTO: Colección o agregado de ideas u objetos de cualquier especie. A= {números pares} B= { banda de rock} ELEMENTO: Son las ideas u objetos cualesquiera

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 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

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus

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

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 (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

Funciones y Cardinalidad

Funciones y Cardinalidad Funciones y Cardinalidad Definición 1 Llamaremos función f entre dos conjuntos A y B a una relación que verifica las siguientes propiedades: i) Dom(f) = A ii) Si (a, b), (a, c) f entonces b = c Dicho de

Más detalles

LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.

LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas. LEX Estructura de un programa en LEX { definiciones { reglas { subrutinas del usuario Las definiciones y subrutinas son opcionales. El segundo es opcional pero el primer indica el comienzo de las reglas.

Más detalles

Espacios Vectoriales

Espacios Vectoriales Espacios Vectoriales Espacios Vectoriales Verónica Briceño V. noviembre 2013 Verónica Briceño V. () Espacios Vectoriales noviembre 2013 1 / 47 En esta Presentación... En esta Presentación veremos: Espacios

Más detalles

Sobre funciones reales de variable real. Composición de funciones. Función inversa

Sobre funciones reales de variable real. Composición de funciones. Función inversa Sobre funciones reales de variable real. Composición de funciones. Función inversa Cuando en matemáticas hablamos de funciones pocas veces nos paramos a pensar en la definición rigurosa de función real

Más detalles

Introducción a la Lógica

Introducción a la Lógica Tema 0 Introducción a la Lógica En cualquier disciplina científica se necesita distinguir entre argumentos válidos y no válidos. Para ello, se utilizan, a menudo sin saberlo, las reglas de la lógica. Aquí

Más detalles

Sobre la Construcción Axiomática de los Números Naturales

Sobre la Construcción Axiomática de los Números Naturales Sobre la Construcción Axiomática de los Números Naturales Dr. Rafael Labarca Briones Profesor de Matemáticas. Universidad de Santiago de Chile. Charla dictadas en las EMALCAS de Arequipa, La Paz y Quito.

Más detalles

Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 3: Relaciones, Funciones, y Notación Asintótica

Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 3: Relaciones, Funciones, y Notación Asintótica Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 3: Relaciones, Funciones, y Notación Asintótica Matemática Discreta - CC3101 Profesor: Pablo Barceló P. Barceló Matemática Discreta - Cap. 1: Fundamentos:

Más detalles

Espacios Vectoriales Asturias: Red de Universidades Virtuales Iberoamericanas 1

Espacios Vectoriales Asturias: Red de Universidades Virtuales Iberoamericanas 1 Espacios Vectoriales 201 6Asturias: Red de Universidades Virtuales Iberoamericanas 1 Índice 1 Espacios Vectoriales... 4 1.1 Definición de espacio vectorial... 4 1.2 Definición de subespacio vectorial...

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

El Autómata con Pila: Transiciones

El Autómata con Pila: Transiciones El Autómata con Pila: Transiciones El Espacio de Configuraciones Universidad de Cantabria Esquema Introducción 1 Introducción 2 3 Transiciones Necesitamos ahora definir, paso por paso, como se comporta

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

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

LEYES DE COMPOSICIÓN INTERNA Y ELEMENTOS DISTINGUIDOS

LEYES DE COMPOSICIÓN INTERNA Y ELEMENTOS DISTINGUIDOS LEYES DE COMPOSICIÓN INTERNA Y ELEMENTOS DISTINGUIDOS Sea una estructura formada por un conjunto A, sobre cuyos elementos se ha definido una operación o ley interna, comúnmente denotada por " * ", que

Más detalles

Profesor: Rubén Alva Cabrera

Profesor: Rubén Alva Cabrera Profesor: Rubén lva Cabrera INDICE INTRODUCCIÓN RELCION DE PERTENENCI DETERMINCION DE CONJUNTOS DIGRMS DE VENN CONJUNTOS ESPECILES RELCIONES ENTRE CONJUNTOS CONJUNTOS NUMÉRICOS UNION DE CONJUNTOS INTERSECCIÓN

Más detalles

CONJUNTOS NUMÉRICOS. La noción de número es tan antigua como el hombre mismo ya que son necesarios para resolver situaciones de la vida diaria.

CONJUNTOS NUMÉRICOS. La noción de número es tan antigua como el hombre mismo ya que son necesarios para resolver situaciones de la vida diaria. CONJUNTOS NUMÉRICOS La noción de número es tan antigua como el hombre mismo ya que son necesarios para resolver situaciones de la vida diaria. Por ejemplo, usamos números para contar una determinada cantidad

Más detalles

Ejercicios de Lógica Proposicional *

Ejercicios de Lógica Proposicional * Ejercicios de Lógica Proposicional * FernandoRVelazquezQ@gmail.com Notación. El lenguaje proposicional que hemos definido, aquel que utiliza los cinco conectivos,,, y, se denota como L {,,,, }. Los términos

Más detalles

mi la sol fa si Un conjunto está bien definido si se puede establecer sin dudar si un elemento pertenece o no al conjunto.

mi la sol fa si Un conjunto está bien definido si se puede establecer sin dudar si un elemento pertenece o no al conjunto. CONJUNTOS LENGUJE SIMÓLICO Cada día, en nuestra conversación, por la televisión, en la lectura de por ejemplo un diario, o en el trabajo está presente la idea de conjunto. En matemática utilizaremos la

Más detalles

Estructuras algebraicas

Estructuras algebraicas Estructuras algebraicas Natalia Boal María Luisa Sein-Echaluce Universidad de Zaragoza 1 Relaciones binarias 11 Recordatorio Definición Dados dos conjuntos A y B se llama producto cartesiano de A por B

Más detalles

Espacios topológicos. 3.1 Espacio topológico

Espacios topológicos. 3.1 Espacio topológico Capítulo 3 Espacios topológicos 3.1 Espacio topológico Definición 3.1.1. Un espacio topológico es un par (X, τ), donde X es un conjunto, y τ es una familia de subconjuntos de X que verifica las siguientes

Más detalles

TEORÍA DE CONJUNTOS A ={ 1, 2, 3, 4, 5, 6 }

TEORÍA DE CONJUNTOS A ={ 1, 2, 3, 4, 5, 6 } TEORÍA DE CONJUNTOS CONJUNTOS Y TÉCNICAS DE CONTEO DEFINICIÓN Y NOTACIÓN DE CONJUNTOS El término conjunto juega un papel fundamental en el desarrollo de las matemáticas modernas; Además de proporcionar

Más detalles

Descomposición en forma canónica de Jordan (Segunda versión)

Descomposición en forma canónica de Jordan (Segunda versión) Descomposición en forma canónica de Jordan (Segunda versión) Francisco J. Bravo S. 1 de septiembre de 211 En esta guía se presentan los resultados necesarios para poder construir la forma de Jordan sin

Más detalles

Teoría de Conjuntos y Conjuntos Numéricos

Teoría de Conjuntos y Conjuntos Numéricos Teoría de Conjuntos y Conjuntos Numéricos U N I V E R S I D A D D E P U E R T O R I C O E N A R E C I B O D E P A R T A M E N T O DE M A T E M Á T I C A S P R O F A. Y U I T Z A T. H U M A R Á N M A R

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