Академический Документы
Профессиональный Документы
Культура Документы
Computabilidad
Oscar Bedoya
oscarbed@eisc.univalle.edu.co
* Contexto histórico
* Principales actores
Introducción
David Hilbert
• Presentó en 1900 ante el ICM
(International Congress of
Mathematicians) un grupo de 23
problemas por resolver
(1862 - 1943)
Introducción
David Hilbert
• Una ecuación diofántica es una ecuación cuyas soluciones son
números enteros,
x+y-5=0 es diofántica y tiene como soluciones
(1,4) (2,3) (3,2) (4,1) (-1,6), …
David Hilbert
• Considere la siguiente ecuación diofántica
p(x,y,z)=6x3yz2+3xy2-x3-10
que tiene como raíz (5,3,0). Encuentre un procedimiento para
determinar las raíces en cualquier ecuación diofántica
Introducción
David Hilbert
En 1928 el problema de la resolubilidad de las ecuaciones diofánticas
se generalizó al problema de encontrar un método de decisión que
permitiera encontrar las operaciones para solucionar cualquier fórmula
matemática
• Se popularizó como el problema de la decisión o Entscheidungsproblem
Introducción
Kurt Gödel
• Mostró que existen sentencias o
proposiciones indecidibles
(1906 - 1978)
Introducción
1931 1934
Kurt Gödel Kurt Gödel
Funciones recursivas primitivas Tesis de Gödel
Introducción
Kurt Gödel
• En la demostración del teorema de la incompletez utilizó una
definición, las funciones recursivas primitivas. Éstas son funciones
matemáticas en las que se utilizan los operadores:
- S(x), sucesor de x
- Pi(x1,x2,…,xn) dada una n-tupla, proyectar el i-ésimo elemento
- Composición, composición de funciones
Introducción
Kurt Gödel
• La función suma(x,y) que se puede definir de forma recursiva así:
suma(0,x)=x
suma(n,x)=suma(n-1,x)+1
se puede convertir a la siguiente función recursiva primitiva:
suma(0,x)=P1(x)
suma(S(n),x)=S( P1(suma(n,x)) )
Introducción
Kurt Gödel
• La función suma(x,y) que se puede definir de forma recursiva así:
suma(0,x)=x suma(0,x)=x
suma(n,x)=suma(n-1,x)+1 suma(n+1,x)=suma(n,x)+1
se puede convertir a la siguiente función recursiva primitiva:
suma(0,x)=P1(x)
suma(S(n),x)=S( P1(suma(n,x)) )
Introducción
Tesis de Gödel
“Las funciones recursivas primitivas tienen una propiedad
importante, dado un conjunto de valores como argumento, el valor
de la salida puede ser calculado por un procedimiento finito”
Introducción
Tesis de Gödel
“Las funciones recursivas primitivas tienen una propiedad
importante, dado un conjunto de valores como argumento, el valor
de la salida puede ser calculado por un procedimiento finito”
Kurt Gödel
• Hay funciones recursivas que no son recursivas primitivas, por
ejemplo, la función de Ackerman:
n+1, m=0
A(m,n)= A(m-1,1), m>0 y n=0
A(m-1, A(m,n-1)), m>0 y n>0
Introducción
Kurt Gödel
• Hay funciones recursivas que no son recursivas primitivas, por
ejemplo, la función de Ackerman:
n+1, m=0
A(m,n)= A(m-1,1), m>0 y n=0
A(m-1, A(m,n-1)), m>0 y n>0
• ¿Qué se quería?
Dada una función recursiva, tener un procedimiento por medio del
cual se pudiesen calcular sus valores
Introducción
¿Qué faltaba?
Alguien que tuviera una idea para demostrar que las funciones
recursivas pueden ser calculadas por medio de un procedimiento
finito
Introducción
1936 1936
Alonzo Church Alan Turing
Tesis de Church Máquinas de Turing
Introducción
Alonzo Church
• Creador del cálculo Lambda en 1936
junto a Stephen Kleene
• Tesis de Church
Existe un procedimiento que permite
calcular los valores para cualquier función
recursiva
Las funciones computables son aquellas
cuyos valores son calculados por una
función recursiva
(1903 - 1995)
Introducción
1936 1936
Alonzo Church Alan Turing
Tesis de Church Máquina de Turing
Tesis de Turing
Introducción
Alan Turing
• Matemático, científico de la
informática, criptógrafo y filósofo
inglés
• Planteó el test de Turing
• Creador de la máquina de Turing
• Durante la Segunda Guerra Mundial,
trabajó en romper los códigos nazis,
particularmente los de la máquina
Enigma
(1912 - 1954)
Introducción
Introducción
Alan Turing
• La idea de la máquina surgió cuando
terminó de correr una maratón
(1912 - 1954)
Introducción
Introducción
http://www.turing.org.uk/turing/scrapbook/tmjava.html
Introducción
Introducción
Introducción
Máquina de Turing
Cinta
infinita
- -
Introducción
Máquina de Turing
Máquina de Turing
Máquina de Turing
Tesis de Turing
• Una función es computable, si y solo si, es computable por una
máquina de Turing, es decir, por un procedimiento mecánico finito
Introducción
Máquina de Turing
Máquina de Turing
- -
Máquina de Turing
Máquina de Turing
La máquina debería aceptar
• abbaba
• aaa
• ababbba
y debería rechazar
• aabb
• abbab
• aaab
Introducción
Máquina de Turing
Máquina de Turing
La máquina debería aceptar
• abbabb
• bab
• ababbb
y debería rechazar
• aabb
• abbab
• aaab
Introducción
Máquina de Turing
Máquina de Turing
La máquina debería aceptar
• aabbcc
• cababc
y debería rechazar
• aabbccc
• babcabc
Introducción
Modelos propuestos
• Autómata finito
• Autómata de pila
• Autómata acotado
• Máquina de Turing
Introducción
Modelos propuestos
• Autómata finito
• Autómata de pila
• Autómata acotado
• Máquina de Turing
Tipo de
máquina
Máquina de
Turing
Autómata
lineal acotado
Autómata de
pila
Autómata
finito
Introducción
Lenguajes Tipo de
máquina
Recursivamente Máquina de
enumerables Turing
Sensibles al Autómata
contexto lineal acotado
Independientes Autómata de
del contexto pila
Regulares Autómata
finito
Introducción
Tesis de Church-Turing
• Si dado un problema, no se puede construir una
máquina de Turing, entonces no es computable, decidible
o resoluble
Introducción
Tesis de Church-Turing
• Si dado un problema, no se puede construir una
máquina de Turing, entonces no es computable, decidible
o resoluble
• ¿Qué pasa con los cómputos que no se pueden llevar a
cabo en una máquina de Turing?
Introducción
Problema de la parada
• Saber si cuando se ejecute un programa para una
entrada x, el programa terminará o no
Introducción
Problema de la parada
• Saber si cuando se ejecute un programa para una
entrada x, el programa terminará o no
• No se puede construir una máquina de Turing que
resuelva el problema, por lo tanto, no es resoluble
Introducción
Clasificación de problemas