Presentacion Teoria de la computabilidad

23
Introducción a la teoría de la computabilidad Lógica y Computabilidad 2009/10 Joaquín Borrego Díaz Joaquín Borrego Díaz Coordinador del programa de doctorado Departamento de Ciencias de la Computación e IA Universidad de Sevilla sábado 21 de noviembre de 2009

Transcript of Presentacion Teoria de la computabilidad

Page 1: Presentacion Teoria de la computabilidad

Introducción a la teoría de la computabilidad

Lógica y Computabilidad 2009/10Joaquín Borrego Díaz

Joaquín Borrego DíazCoordinador del programa de doctoradoDepartamento de Ciencias de la Computación e IAUniversidad de Sevilla

sábado 21 de noviembre de 2009

Page 2: Presentacion Teoria de la computabilidad

Contenido

• Un problema

• Modelos de Computación

• Tesis de Church-Turing

• ¿Cómo resolvemos el problema?

• Guía de viaje por la T. Computabilidad

sábado 21 de noviembre de 2009

Page 3: Presentacion Teoria de la computabilidad

Un problema en el trabajo

• Sr. Pérez, deseo que me programe un verificador automático de programas

sábado 21 de noviembre de 2009

Page 4: Presentacion Teoria de la computabilidad

Escenario 1: El sr. Pérez no ha estudiado computabilidad

• ...(Dos meses de sufrimiento después)

• Jefe, a mí no me sale

• Bueno, Sr. Pérez, no se preocupe

sábado 21 de noviembre de 2009

Page 5: Presentacion Teoria de la computabilidad

Escenario 2: El sr. Pérez ha estudiado computabilidad

• (Unas horas después):

• Jefe, he estudiado el problema y NO se puede resolver con un programa de ningún tipo

• Excelente análisis, Sr. Pérez

sábado 21 de noviembre de 2009

Page 6: Presentacion Teoria de la computabilidad

Cuestiones

• ¿Existen problemas que no se pueden resolver mediante programas?

• ¿Qué tipo de análisis ha realizado en Sr. Pérez?

• ¿Cómo puede afirmar que no se puede resolver en ningún tipo de lenguaje de programación, modelo de computación etc.?

sábado 21 de noviembre de 2009

Page 7: Presentacion Teoria de la computabilidad

Primera cuestión• Existen problemas que NO

se pueden resolver algorítmicamente

• Demostrado por A. Turing en 1936

• Matemático

• Rompió el código enigma

• Máquinas de Turing

• Test de Turing

sábado 21 de noviembre de 2009

Page 8: Presentacion Teoria de la computabilidad

La máquina enigma

sábado 21 de noviembre de 2009

Page 9: Presentacion Teoria de la computabilidad

Apuntes de Turing

sábado 21 de noviembre de 2009

Page 10: Presentacion Teoria de la computabilidad

La máquina diseñada por Turing (Bletchley Park)

sábado 21 de noviembre de 2009

Page 11: Presentacion Teoria de la computabilidad

Modelo formal de computación: la máquina de Turing

sábado 21 de noviembre de 2009

Page 12: Presentacion Teoria de la computabilidad

Segunda Cuestión

• El análisis que ha realizado el Sr. Pérez está basado en el argumento diagonal

• Diseñado por Georg Cantor en 1834

• para demostrar que el cardinal de los reales es mayor que el de los naturales

sábado 21 de noviembre de 2009

Page 13: Presentacion Teoria de la computabilidad

Tercera Cuestión• Tesis de Church-Turing

(versión informal):

• Cualesquiera dos modelos de computación resuelven los mismos problemas

• Se puede considerar un “axioma” en Informática

• Es cierto en todos los modelos creados

• Otra versión:

• Todo algoritmo o procedimiento efectivo es Turing-computable

sábado 21 de noviembre de 2009

Page 14: Presentacion Teoria de la computabilidad

¿Cómo demostrar que un problema es indecidible?

• Demostramos, en primer lugar, que el problema no se puede resolver en un modelo de computación concreto

• Entonces, por la tesis de Church-Turing, no es resoluble en ningún modelo

sábado 21 de noviembre de 2009

Page 15: Presentacion Teoria de la computabilidad

Guía de viaje por la computabilidad

El lenguaje GOTO

Definiciones por recursión

Codificación de programas

Programa Universal

El problema de la parada

El Teorema de Rice

Matemáticas

Computabilidad

sábado 21 de noviembre de 2009

Page 16: Presentacion Teoria de la computabilidad

El lenguaje elegido: GOTO

Lenguaje de programación muy simple

Usa variables como registros

Es computacionalmente completo

Modelo de computación basado en lenguaje

sábado 21 de noviembre de 2009

Page 17: Presentacion Teoria de la computabilidad

Sintaxis de GOTO

sábado 21 de noviembre de 2009

Page 18: Presentacion Teoria de la computabilidad

Programa Universal en GOTO

• Entrada: datos +Programa

• Salida: Resultado de aplicar el programa al dato

• ¡ES UN ORDENADOR!

sábado 21 de noviembre de 2009

Page 19: Presentacion Teoria de la computabilidad

Definiciones por recursión

• Necesitamos utilizar mecanismos de definición por recursión

• Potente herramienta de programación

sábado 21 de noviembre de 2009

Page 20: Presentacion Teoria de la computabilidad

El problema de la parada• Entrada: Un programa y

un dato de entrada

• Salida:

• 1 (sí) si el programa para sobre ese dato

• 0 (no) si no para

• Se prueba usando el método diagonal (usando el programa universal)

sábado 21 de noviembre de 2009

Page 21: Presentacion Teoria de la computabilidad

Teorema de Rice

• Método para detectar la no computabilidad de ciertos problemas. Por ejemplo lo aplicaremos para demostrar la indecidibilidad de:

• Equivalencia entre programas

• Reconocer los programas que siempre paran

• Clases de complejidad algorítmica

sábado 21 de noviembre de 2009

Page 22: Presentacion Teoria de la computabilidad

Aplicaciones (I): imposibilidad de la corrección parcial

sábado 21 de noviembre de 2009

Page 23: Presentacion Teoria de la computabilidad

Aplicaciones (II):imposibilidad de la verificación

automatizada de la equivalencia

sábado 21 de noviembre de 2009