Computabilidad - Cinvestav
Transcripción
Computabilidad - Cinvestav
Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Lenguajes de Programación - Clase 2 Computabilidad Dr. Gregorio Toscano Pulido Laboratorio de Tecnologı́as de Información Centro de Investigación y de Estudios Avanzados del IPN Cinvestav-Tamaulipas logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Plan de la presentación 1 Funciones parciales Funciones Parciales Los programas definen funciones parciales 2 Computabilidad Funciones computables Funciones No Computables 3 Demostración de indecidibilidad del problema de la parada logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Funciones Parciales Programas y funciones Desde un punto de vista matemático, un programa define una función. La salida de un programa es computado como una función de las entradas del programa y el estado de la máquina antes de que el programa inicie. En la práctica, hay mucho más en un programa que en la función que éste computa. logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Funciones Parciales Expresiones, errores y no-terminación En computación, existen dos diferentes razones para qué una expresión pueda no tener un valor Terminación por error: La evaluación de la expresión puede no proceder debido a algún conflicto entre operadores y operandos. No-termino: La evaluación de la expresión se prolonga indefinidamente (problema de la parada) . logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Funciones Parciales Ejemplos Un ejemplo del primer tipo es la división por cero. El segundo caso es diferente: Hay una computación especifica que realizar, pero ésta puede no terminar y por lo tanto no producir valor alguno. Por ejemplo, considerar la función recursiva definida por: f(x:int) = if x = 0 then 0 else x + f(x-2) logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Funciones Parciales Outline 1 Funciones parciales Funciones Parciales Los programas definen funciones parciales 2 Computabilidad Funciones computables Funciones No Computables 3 Demostración de indecidibilidad del problema de la parada logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Funciones Parciales Funciones parciales Una función parcial es una función que está definida en algunos argumentos e indefinida en otros. logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Funciones Parciales Definición de Función Una función f : A → B es un conjunto de pares ordenados f ⊆ A × B que satisface las condiciones siguientes: 1 Si hx, y i ∈ f y hx, zi ∈ f , entonces y = z 2 Para cada x ∈ A existe un y ∈ B con hx, yi ∈ f logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Funciones Parciales Definición de Función parcial Una función parcial f : A → B es un conjunto de pares ordenados f ⊆ A × B y satisface la siguiente condición: 1 Si hx, y i ∈ f y hx, zi ∈ f , entonces y = z logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Funciones Parciales Funciones parciales Una función parcial es una función que está definida en algunos argumentos e indefinida en otros. logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Funciones Parciales Funciones parciales f(x:int) = if x=0 then 0 else x + f(x-2); logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Funciones Parciales El algoritmo para f define la función matemática f expresada aquı́ como un conjunto de pares ordenados: f = {hx, y i | x es positivo y par, y = 0 + 2 + 4 + · · · + x}. Porque una llamada a esta función puede no terminar, este programa define una función parcial. logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Funciones computables Funciones No Computables Teorı́a de la computabilidad Nos da una caracterización precisa de las funciones que son computables en principio. La clase de funciones en los números naturales que son computables en principio son usualmente llamadas la clase de funciones parcialmente recursivas, como la recursividad es una parte esencial de la computación y las funciones computables, en general, son parciales en vez de totales. logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Funciones computables Funciones No Computables Outline 1 Funciones parciales Funciones Parciales Los programas definen funciones parciales 2 Computabilidad Funciones computables Funciones No Computables 3 Demostración de indecidibilidad del problema de la parada logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Funciones computables Funciones No Computables Función computable Una función f : A → B es computable si existe un algoritmo que dado cualquier x ∈ A como entrada, termine con y = f (x) como salida. logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Funciones computables Funciones No Computables Outline 1 Funciones parciales Funciones Parciales Los programas definen funciones parciales 2 Computabilidad Funciones computables Funciones No Computables 3 Demostración de indecidibilidad del problema de la parada logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Funciones computables Funciones No Computables Problema de la parada Dado un programa P y una entrada x a P, Si Si P(x) termina Q(P, x) = No otra manera Asumimos: Que el programa P requiere una cadena de entrada. P(x) es la salida de P cuando se ejecuta usando x como entrada. El programa P es la cadena de entrada de Q logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Prueba de indecidibilidad del problema de la parada Paso 1: Suponga que exite un programa Q, tal que, es capaz de determinar si un otro programa para con una entrada determinada. termina Si P(x) termina Q(P, x) = notermina si P(x) no termina Una parte importante de esta especificación para Q es que Q(P, x) siempre termina para cada P y x. logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Paso 2: De acuerdo al paso anterior. Entonces podemos modificar Q, y crear una máquina equivalente D. Dicha máquina, no parará, en dado caso que el programa que recibe como entrada pare, y parará si el program que recibe como parámetro se ejecuta por siempre. termina Si P(P) seejecuta por siempre D(P) = se ejecuta por siempre si P(P) termina logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Paso 3 Se deriva una contradicción por considerar el comportamiento D(D) del programa D en la entrada D. Sin pensar acerca como trabaja D o sobre qué se supone que haga D, es claro que cualquier D(D) termina o D(D) no termina. Si D(D) termina, entonces, de acuerdo a la propiedad de D dada en el paso 2, es debido a que D(D) se ejecuta por siempre. Esto no tiene sentido ya que entonces D(D) se ejecuta por siempre. En caso contrario también se llega a una contradicción. logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Paso 4 Puesto que la suposición en el paso 1 sobre que hay un programa Q resuelve el problema de la parada produce una contradicción en el paso 3, entonces dicha suposición es falsa. Por lo tanto no hay programa que resuelva el problema de la parada. logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada Más información Pueden encontrar más información acerca del problema de la parada en “Concepts in Programmin languages de Mitchell” o bien haciéndo una simple búsqueda en Internet (p.e. http: //es.wikipedia.org/wiki/Problema_de_la_parada). logo Dr. Gregorio Toscano Pulido PL - Clase 2 Funciones parciales Computabilidad Demostración de indecidibilidad del problema de la parada FIN logo Dr. Gregorio Toscano Pulido PL - Clase 2