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

Documentos relacionados