Este barbero, entonces, estaría a cargo de afeitar exactamente a todos los barberos que no
se afeitaran a sí mismos. El barbero designado quedó muy contento con su nombramiento,
hasta que a la mañana siguiente se preguntó quién lo afeitaría a él.
La paradoja muestra que no es posible tener un barbero que afeite exactamente a los
barberos que no se afeitan a sí mismos.
Si cambiamos “barbero” por “MT” y “afeitar” por “aceptar” habremos comprendido la
esencia.
Funciones calculables
Definición (Función parcialmente calculable)
Se dice que una función f : D ⊂ 𝑁r → 𝑁 es parcialmente calculable si
existe una Máquina de Turing tal que para cada tupla t∈D, la máquina
calcula f(t).
n1-n2 si n1≥n2
3. f3(n1,n2) = es calculable
0 si n1<n2
Complejidad y Máquinas de Turing
Hasta este momento hemos analizado si los problemas son
solubles o insolubles, es decir, si pueden o no ser resueltos
mediante una máquina de Turing (un algoritmo).
Sin embargo, en la vida real los recursos de computo disponibles
son limitados y por tanto podemos encontrarnos con problemas
que son solubles, pero que podemos considerer intratables debido
a la gran cantidad de tiempo y memoria que son necesarios para
resolverlos.
En esta sección introduciremos una terminología que nos
permitirá analizar preguntas como ¿cuánto tiempo tardaremos en
resolver un problema?
Apriori, establecer un criterio universal para poder saber cuán
eficiente es un algoritmo no es sencillo por que un mismo
problema puede resolverse sobre diferentes tipos de máquinas,
con diferentes grados de eficiencia.
La eficiencia de un algoritmo está en función del tiempo y de la
cantidad de memoria que se necesite para ejecutar el programa, y
esto a su vez depende del hardware utilizado.
Medidas de complejidad algorítmica
La complejidad de una computación se mide por la cantidad
de espacio y de tiempo que consume. Las computacion es
eficientes tienen unas exigencies de recursos pequeñas (este
calificativo debe ser considerado de una manera relativa).
Los recursos que necesita una computación que acepta
cadenas de algún lenguaje, suelen depender del tamaño
(longitud) de la cadena de entrada.
Definición (Complejidad espacial)