La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

1 TEORÍA DE LENGUAJES (ISE) TEORÍA DE LA COMPUTACIÓN (ISC) PROFESOR Dr. Juan Fco. Corona Burgueño.

Presentaciones similares


Presentación del tema: "1 TEORÍA DE LENGUAJES (ISE) TEORÍA DE LA COMPUTACIÓN (ISC) PROFESOR Dr. Juan Fco. Corona Burgueño."— Transcripción de la presentación:

1 1 TEORÍA DE LENGUAJES (ISE) TEORÍA DE LA COMPUTACIÓN (ISC) PROFESOR Dr. Juan Fco. Corona Burgueño

2 2 Información general Materia: Teoría de Lenguajes (ISE)/Teoría de la Computación (ISC) Clave: CB Semestre: Enero-Mayo 2004 Grupo 2 Sesiones: Lunes y Jueves de 17:30 a 19:00 hrs Salón: 3302 Profesor: Dr. Juan Fco. Corona Burgueño Teléfono: (01-3) ext 3113 Fax: (01-3) Asesoría: Lunes y Jueves 11:30 – 13:00 y con previa cita.

3 3 Bibliografía Texto John Martin, Introduction to Languages and the Theory of Computation, 3rd edition, McGraw-Hill Consulta Thomas A. Sudkamp, Languages and Machines, 2nd edition, Addison Wesley Ramón Brena Pinero, Lenguajes Formales y Autómatas, ITESM. John E. Hopcroft, Rajeev Motwani & Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, 2nd edition, Addison Wesley Material del curso:

4 4 Evaluación Tareas y Controles de Lectura15% Exámenes parciales (tres)45% (15% c/u) Primero: Jueves 12/Febrero/2004 Segundo: Jueves 04/Marzo/2004 Tercero: Jueves 15/Abril/2004 Examen final25% (Abarca todo el curso. 66% tercer y cuarto parcial, 34% primer y segundo parcial) Fecha pendiente. Proyecto curso15%

5 5 Sobre las tareas y proyectos Las tareas y proyectos se evaluarán considerando el contenido, metodología, análisis, conclusiones y presentación. En todos los trabajos que se presenten (tareas, proyectos, exámenes), se deberá incluir el nombre completo del estudiante y su matrícula. Las tareas y proyectos tendrán una fecha de entrega. Cualquier retraso atribuible al estudiante será penalizado con 10 puntos por día, en una escala de 1 a 100. Los controles de lectura deberán ser contestados a más tardar en la fecha límite indicada por el profesor. No se aceptarán después de esta fecha. Revisar con frecuencia el archivo Tareas.doc que se encuentra en la dirección ftp del curso.

6 6 ¿Por qué estudiar Teoría de Lenguajes/laComputación? Teoría es relevante en la práctica Gramáticas. Diseño de nuevos lenguajes de programación para nuevas aplicaciones. Autómatas finitos y Expresiones regulares. Búsqueda de cadenas o reconocimiento de patrones. NP-Completo. Complejidad computacional, tiempo requerido para llevar a cabo un algoritmo. Teoría muestra el lado elegante de las computadoras. Un curso teórico nos permite construir y diseñar sistemas teniendo en mente la elegancia y belleza. Teoría expande la mente. La tecnología cambia rápidamente, el conocimiento técnico específico es obsoleto en pocos años. No así la habilidad de pensar, de expresarse con precisión y claridad, la de resolver problemas.

7 7 ¿Por qué Teoría de la Computación? Máquina de estados finita y expresiones regulares Diseño y verificación de circuitos digitales Análisis léxico de un compilador Editores de texto Madurez matemática Desarrollar habilidades para razonamiento formal y preciso. ¿Para qué me sirve esto? Diseño, análisis y verificación de sistemas complejos de software y hardware.

8 8 Nociones preliminares Conjunto: es una colección de objetos Producto cartesiano: A B = {(x, y) | x A y y B} Generalización a n conjuntos: X 1 X 2... X n = {(x 1, x 2,..., x n ) | x 1 X 1, x 2 X 2,..., x n X n } Relación: es un subconjunto de un producto cartesiano. Relación n-aria: participan n conjuntos en el producto cartesiano. Relación 2-aria: relación binaria. Relación 3-aria: relación ternaria. Función: es una relación binaria en la que no existen dos parejas distintas que tengan el mismo primer elemento. Es usual denotar una función entre A y B como f : A B Decimos que A es el dominio y B el codominio de la función. Si (a, b) f, entonces escribimos f(a) = b.

9 9 Funciones Función uno-a-uno o inyectiva: no existen dos parejas distintas que tengan el mismo segundo elemento, es decir, a cada elemento del codominio le corresponde a lo más un elemento del dominio. Función sobre o sobreyectiva: para cualquier elemento y en el codominio de la función existe un elemento x en el dominio tal que f(x) = y, es decir, la función recorre todos los elementos del codominio. Función biyectiva o biunívoca: es uno-a-uno y sobre.

10 10 Conjuntos ¿Qué significa que dos conjuntos tengan la misma cardinalidad? Principio del palomar: dos conjuntos A y B, finitos o infinitos, tienen la misma cardinalidad (mismo número de elementos) si existe una función biyectiva entre A y B. Cardinalidad de un conjunto A: es el número de elementos en el conjunto. Se denota por |A|. La cardinalidad del conjunto {1, 2, 3,..., n} es n. Conjunto finito: la cardinalidad es 0 ó un número natural. Conjunto infinito: conjunto que no es finito. Conjunto contable o enumerable: es un conjunto para el cual podemos encontrar al menos un procedimiento que permite poner sus elementos en sucesión con la certeza de que a cualquier elemento del conjunto le corresponderá un lugar en la sucesión. En otras palabras, un conjunto es contable si es finito o, en caso que sea infinito, que tiene la misma cardinalidad que el conjunto de los números naturales. Resumiendo: un conjunto infinito A es contable si se puede poner en correspondencia uno-a-uno y sobre con el conjunto de los números naturales, es decir, existe una función biyectiva entre el conjunto A y el conjunto de los números naturales.

11 11 Cardinalidad Jerarquía de cardinalidades Conjuntos finitos: el orden de los naturales nos dice cuando un conjunto tiene mayor cardinalidad o más elementos que otro. Conjuntos infinitos: ¿? Un conjunto A tiene mayor cardinalidad que un conjunto B, |A| > |B|, si se cumplen A y B no tienen la misma cardinalidad B tiene la misma cardinalidad que un subconjunto propio de A. Conjunto potencia de un conjunto A 2 A = conjunto cuyos elementos son todos los subconjuntos de A. |2 A | > |A| Para conjuntos finitos: |2 A | = 2 |A|

12 12 Definiciones Definición por extensión o enumerativamente: se listan los elementos del conjunto. {1, 2, 3, a, b, c} Definición por intención o descriptivamente: se especifica la propiedad que deben cumplir los elementos del conjunto. {x N | x es par} = {x = 2n | n N }; N es el conjunto de los números naturales. Definición recursiva: el concepto se define en términos de si mismo. Regla base: define el concepto para casos sencillos. Regla recursiva: define el concepto para casos más complejos a partir de los casos ya definidos.

13 13 Ejemplos de recursividad Definición recursiva de factorial Regla base: 0! = 1 Regla recursiva: n! = n(n-1)! Definición recursiva de expresión aritmética Regla base: Una constante es una expresión aritmética. Una variable es una expresión aritmética. Regla recursiva: si E 1 y E 2 son expresiones aritméticas, entonces también lo son: E 1 +E 2, E 1 -E 2, E 1 *E 2, E 1 /E 2, -E 1.

14 14 Demostraciones Deductivas. Consiste de una sucesión de enunciados obtenidos uno tras otro utilizando algún principio lógico aceptado, que nos lleva de una hipótesis a una conclusión. Si n es un entero impar entonces n 2 también es impar. Si n es un entero par entonces n 2 también es par. Contradicción o reducción al absurdo. La proposición Si P entonces Q se puede probar probando que P y Q implican algo falso (contradicción o absurdo). Si n 2 es impar entonces n también es impar. Si n 2 es par entonces n también es par. Resumiendo: n 2 es impar si y solo si n es impar. Equivalentemente n 2 es par si y solo si n es par. Recíproco Si P entonces Q es equivalente a Si Q entonces P Decir Si tengo dinero entonces voy al cine es equivalente a decir Si no voy al cine entonces no tengo dinero

15 15 Inducción matemática Ejemplo: n = 2 n+1 1 Inducción matemática: sea P(n) una proposición que depende de un número natural n. La prueba por inducción matemática nos permite demostrar que esta proposición es válida para cualquier número natural a partir de cierto número inicial n 0 que por lo general es n 0 = 1. Consta de dos pasos: Paso Base: demostrar la proposición para el número inicial n 0. Paso inductivo: suponiendo que la proposición es verdad para n = k, demostrar que también es verdad para n = k + 1 Ejemplos Demostrar n = n(n+1)/2 Demostrar n! > 2 n para n 4.

16 16 Se requieren los dos pasos Si sólo se cumple el paso 1: 2 n = 2 para cualquier natural n. Este enunciado es verdad para n =1, pero no se puede demostrar el paso 2, es decir, no se puede obtener 2 k = 2 a partir de 2 k+1 = 2. Por lo tanto no se puede concluir la veracidad del enunciado. Si sólo se cumple el paso 2: n > n + 1 para cualquier natural n. Partiendo k > k + 1 se puede demostrar (k + 1) > (k + 1) + 1 Sin embargo, no se puede concluir la veracidad del enunciado porque no se puede demostrar el paso base, es decir, que el enunciado es verdad para el primer natural.

17 17 Número de funciones sobre Sean A y B dos conjuntos finitos con cardinalidades m y n, respectivamente. Entonces el número de funciones sobre de A a B es:


Descargar ppt "1 TEORÍA DE LENGUAJES (ISE) TEORÍA DE LA COMPUTACIÓN (ISC) PROFESOR Dr. Juan Fco. Corona Burgueño."

Presentaciones similares


Anuncios Google