En matemáticas y ciencias de la computación, ¿cuál es / hay una diferencia entre las funciones calculables y computables?

A principios del siglo XX, los matemáticos comenzaron a preguntarse qué funciones podían calcularse. Las funciones bajo consideración fueron las funciones [math] \ mathbf N \ a \ mathbf N [/ math] de los números naturales a los números naturales, y más generalmente funciones de varias variables [math] \ mathbf N ^ k \ to \ mathbf N . [/ math] Esta pregunta fue inspirada por dos cosas. Primero, el programa de Hilbert de reducir las pruebas al cálculo dependía de ello. En segundo lugar, la teoría de conjuntos de Cantor sugirió que había más funciones que cálculos. El problema era que nadie sabía qué significaba el cálculo.

La primera sugerencia fue la de las funciones recursivas primitivas. Estos se basaron en una interpretación de los axiomas Dedekind / Peano. Naturalmente, lo que debía hacer a continuación era buscar una función que pareciera computable pero que no fuera una función recursiva primitiva. Ackermann logró hacer eso con lo que ahora llamamos la función Ackermann. Eso llevó a Gödel a proponer las funciones recursivas μ (también llamadas funciones recursivas o funciones recursivas generales) como respuesta. Eso dejó abierta la pregunta de si hay otros. Post, Church y Turing propusieron otros conceptos de computabilidad, y aunque sus conceptos se veían muy diferentes entre sí y de las funciones recursivas generales, resultó que todos describían la misma clase de función.

Ahí es donde se encuentra hoy. Parece que una función [math] \ mathbf N \ to \ mathbf N [/ math] puede calcularse si y solo si es una de las descritas por Gödel, Post, Church o Turing. La tesis de Church-Turing es que son lo mismo.

El artículo de Wikipedia que menciona usa el término “calculable” para indicar funciones que podrían ser computables en algún sentido y el término “computable” en el sentido de Gödel, Post, Church o Turing. Eso es lamentable porque no es consistente con la literatura del siglo pasado.

Para una mejor explicación del tema, vea la entrada de Stanford Encyclopedia of Philosophy en The Church-Turing Thesis.

“Calculable” es un término vago no riguroso. Se define informalmente diciendo que algo es calculable si hay un método efectivo para calcularlo. Pero la palabra efectiva aquí tampoco está matemáticamente bien definida, es una de esas cosas donde la sabes cuando la ves.

Podemos intentar darle significado al proponer una definición formal, y esa definición formal es lo que queremos decir con computable. “Computable” es una noción matemática rigurosa, tiene una definición formal, que se da en el artículo al que se vincula.

La equivalencia de estas dos nociones se llama tesis de Iglesia-Turing. Tenga en cuenta que esto no es un teorema, no tiene una prueba y no puede tener una prueba porque un lado de la equivalencia no tiene una definición matemática formal. Es esencialmente un axioma que dice que nuestra noción rigurosamente definida de computabilidad captura exactamente lo que queremos decir cuando llamamos vagamente a algo efectivamente calculable.

Es simplemente una cuestión de experiencia y conocimiento. Todo el artículo se basa en la teoría de las funciones computables, que es un tema que probablemente se introduciría en un curso de matemática discreta de segundo año, y luego probablemente se estudió más en un curso de Teoría de la Computación. Definitivamente no es algo que un principiante entendería de inmediato.

Para que entiendas el artículo, deberías estar más familiarizado con temas como funciones y relaciones, conteo, autómatas de estado finito, etc. Estos requisitos previos en sí mismos exigen un trasfondo en cosas como lógica, teoría de conjuntos, funciones booleanas. , inducción, secuencias y series, etc.

Como puede ver, está bien que alguien no entienda todo el artículo de inmediato, pero el hecho de que esté interesado es algo muy bueno.