Contenido del Curso Teoría de la...

35
Presentación del Curso Teoría de la Computación Programa de Maestría en Ciencias de la Computación UAM – Azcapotzalco A cargo de: Dra. Maricela Claudia Bravo Contreras [email protected]

Transcript of Contenido del Curso Teoría de la...

Page 1: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Presentación del CursoTeoría de la Computación

Programa deMaestría en Ciencias de la ComputaciónUAM – Azcapotzalco

A cargo de:Dra. Maricela Claudia Bravo [email protected]

Page 2: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Contenido del curso

1. Introducción

2. Autómatas finitos y lenguajes regulares

3. Autómatas de pila y lenguajes libres de

contexto

4. Máquinas de Turing

5. Indecibilidad

6. Complejidad

Page 3: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Evaluación del curso

Instrumento de Evaluación PorcentajePrimer examen 30 %Segundo examen 30 %10 Ejercicios de tarea 40 %

Total 100 %

Page 4: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Calendario del curso

Semana Tema Ejercicios de tarea Fecha de entrega1 Introducción2 Nociones preliminares Tarea 1 6 de febrero3 Autómatas finitos deterministas Tarea 2 13 de febrero3 Autómatas finitos no deterministas Tarea 3 20 de febrero4 Expresiones regulares Tarea 4 27 de febrero5 Primer examen 27 de febrero6 Lenguajes libres de contexto Tarea 5 6 de marzo6 Autómatas de pila Tarea 6 13 de marzo7 Máquinas de Turing Tarea 7 13 de marzo7 Tesis de Church-Turing Tarea 8 20 de marzo8 Decidibilidad Tarea 9 20 de marzo9 Teoría de la Complejidad Tarea 10 27 de marzo10 Lenguajes NP-completos10 Segundo examen 27 de marzo

Page 5: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Recursos didácticos

Page 6: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Referencias Bibliográficas Sipser, Michael. Introduction to the Theory of Computation. 2nd ed. Boston, MA: Thomson

Course Technology, 2006.

John Martin, “Introduction to Languages and the Theory of Computation”, 3rd edition, McGraw-Hill

Thomas A. Sudkamp, “Languages and Machines”, 2nd edition, Addison Wesley

John E. Hopcroft, Rajeev Motwani & Jeffrey D. Ullman, “Introduction to Automata Theory, Languages, and Computation”, 2nd edition, Addison Wesley

Lewis and Papadimitriou, “Elements of the Theory of Computation”; Prentice Hall.

Bavel, Zanin, “Introduction to the Theory of Automata”; Reston Publishing Company Inc.; 1983.

Kelly, Dean, “Automata and Formal Languages: An Introduction”; Prentice-Hall, 1995.

Beck Fernández Héctor, “Teoría de Autómatas y Lenguajes Formales”, Apuntes de clases año 2000, UTA, 2001.

Automata, Computability and Complexity, Spring 2005, MIT, http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-045JSpring-2005/CourseHome/index.htm

Ramón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM.

Page 7: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Propósito

Durante este curso trataremos de responder las siguientes preguntas:1. ¿Cuáles son las propiedades matemáticas

del hardware y software de la computadora?

2. ¿Qué es computación y qué es un algoritmo?

3. ¿Cuáles son las limitaciones de las computadoras?

Page 8: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Propósito

El propósito de la Teoría de la Computación es desarrollar modelos

matemáticos de computación que reflejen computadoras del mundo real.

Page 9: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Teoría de la Computación

Este campo de estudio se inició en 1930 cuando matemáticos y logistas intentaban comprender el significado de computación.

Una pregunta central era saber si todos los problemas matemáticos podían ser resueltos de forma sistemática.

Page 10: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Historia de la Teoría de la Computación En 1930´s, A. Turing desarrolló una máquina abstracta

denominada Máquina de Turing para el estudio de la computabilidad.

En 1940´s y 1950´s, se desarrollan unas máquinas simples, en cuanto su funcionamiento, que fueron conocidas como autómatas finitos, para modelar el funcionamiento del cerebro.

También en los 1950´s, N. Chomsky comienza el estudio formal de las gramáticas (generadoras de lenguajes).

Page 11: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Historia de la Teoría de la Computación En 1969, S. Cook extiende el estudio de Turing. Cook

separa aquellos problemas que pueden ser solucionados de aquellos que en principio pueden ser solucionados pero que en la práctica toman demasiados recursos.

Autómatas finitos y ciertas clases de gramáticas formales son usadas en el diseño y construcción de software.

La Máquina de Turing ayuda a comprender que es lo que podemos esperar de nuestro software.

Page 12: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Conceptos Básicos La Teoría de la computación es un curso

sobre abstracciones acerca de lo que podemos computar.

Es el tema más puro de las Ciencias de la Computación que trata de eliminar cualquier detalle de las computadoras reales y reemplazarlos con abstracciones que proporcionan una jerarquía de capacidades que culminan con la Máquina de Turing, el modelo abstracto de nuestra computadora moderna, inventada por Alan Turing.

Page 13: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Conceptos Básicos Las abstracciones nos proporcionan una

manera de decir algo acerca de lo que estamos haciendo en una forma rigurosa.

El concepto de abstracción hace alusión al proceso mental de índole superior y estrictamente propio de la condición humana, que consiste en separar lo que en realidad no podría escindirse, considerando esas partes individualmente; ◦ por ejemplo, lo principal de lo accesorio, ◦ captando la esencia de los objetos.

Es la capacidad mental más elevada que permite la elaboración de conceptos y definiciones.

Page 14: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Aplicaciones de la Teoría de la Computación

Page 15: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Teoría de la Computación

La Teoría de la Computación se divide en las siguientes tres áreas:◦ Teoría de la Complejidad◦ Teoría de la Computabilidad◦ Teoría de Automátas

Page 16: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Conceptos Básicos

Teoría de la Computación

Teoría de Automatas y

lenguajes

Teoría de la Computabilidad

Teoría de la Complejidad

Page 17: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Teoría de la Complejidad

La principal pregunta que se trata de responder es:

¿Qué hace que algunos problemas sean computacionalmente duros y otros fáciles?

Page 18: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Teoría de la Complejidad

Informalmente, un problema se dice que es fácil, si se puede resolver eficientemente. Ejemplos de problemas fáciles son:

i. Ordenar una secuencia de 1,000,000 de números

ii. Buscar un nombre en un directorio telefónico

iii. Computar la forma más rápida de manejar desde Ottawa hasta Miami

Page 19: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Teoría de la Complejidad Por el contrario, un problema que es difícil

de resolver porque no pueden ser resueltos eficientemente

◦ Generación de horarios de todos los cursos en una universidad o escuela

En 1930, Gödel, Turing y Church descubrieron que algunos de los problemas fundamentales de las matemáticas no pueden ser resueltos por una computadora (esto es extraño porque las computadoras fueron inventadas en 1940).

Page 20: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Teoría de la Complejidad

Los modelos teóricos que fueron propuestos para entender si los problemas se podían resolver o no resolver llevaron al desarrollo y evolución de las computadoras reales.

La pregunta central era:◦ Clasificar problemas entre computables y no

computables

Page 21: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

ALGUNAS NOCIONES PRELIMINARES

Para empezar…

Page 22: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

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:X1 × X2 × ... Xn = {(x1, x2, ..., xn) | x1 ∈ X1, x2 ∈ X2, ..., xn ∈ Xn}

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 comof : 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.

22

Page 23: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

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.

Page 24: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

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

Page 25: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Funciones

Función biyectiva o biunívoca: es uno-a-uno y sobre.

25

Page 26: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

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.

26

Page 27: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

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

Page 28: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

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.

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 A2A = conjunto cuyos elementos son todos los subconjuntos de A.◦ |2A| > |A|

◦ Para conjuntos finitos: |2A| = 2|A|

28

Page 29: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

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

Page 30: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

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 E1 y E2 son expresiones

aritméticas, entonces también lo son:E1+E2, E1-E2, E1*E2, E1/E2, -E1.

30

Page 31: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

TÉCNICAS DE DEMOSTRACIÓN

Page 32: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

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 n2 también es impar.◦ Si n es un entero par entonces n2 también es par.

Contradicción o reducción al absurdo. La proposición “Si Pentonces Q” se puede probar probando que P y ¬Q implican algo falso (contradicción o absurdo).◦ Si n2 es impar entonces n también es impar.◦ Si n2 es par entonces n también es par.

Resumiendo:n2 es impar si y solo si n es impar.Equivalentementen2 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”

32

Page 33: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Inducción matemática Ejemplo: 20 + 21 + 22 + ... + 2n = 2n+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 n0 que por lo general es n0 = 1. Consta de dos pasos:◦ Paso Base: demostrar la proposición para el número inicial n0 .◦ Paso inductivo: suponiendo que la proposición es verdad para

n = k, demostrar que también es verdad para n = k + 1

Ejemplos◦ Demostrar 1 + 2 + 3 + ... + n = n(n+1)/2◦ Demostrar n! > 2n para n ≥ 4.

33

Page 34: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

Se requieren los dos pasos Si sólo se cumple el paso 1:◦ 2n = 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 2k = 2 a partir de 2k+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.

34

Page 35: Contenido del Curso Teoría de la Computaciónaisii.azc.uam.mx/mcbc/Diapositivas/Introduccion.pdfRamón Brena, “Lenguajes Formales y Autómatas”, Apuntes de clases ITESM. Propósito

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:

( ) ( ) ( ) ( )

( ) ( ) ( )

( ) ( )mn

mmmm

n

k

mkn

k

mk

nnnn

nn

nn

nn

n

knkn

knkn

n

−++

−−

+−

−=

=−

−=−

− ∑∑==

1

33

22

11

1100

35