Mostrando entradas con la etiqueta Turing. Mostrar todas las entradas
Mostrando entradas con la etiqueta Turing. Mostrar todas las entradas

Adenda a "¿La mente humana?"

Con respecto a la entrada ¿La mente humana?, hace unos días recibí un mensaje privado de Hernán Echegoyemberry en el que, y se lo agradezco, me menciona que había allí un error de tipeo que cambiaba completamente el sentido de una frase; error que, merced a esa observación, ya fue corregido.

La frase en cuestión dice: "el teorema de Gödel implica que hay problemas que no son resolubles algorítmicamente". Ahora bien, en referencia a ella, en su mensaje privado Hernán agrega: eso aplica más para el teorema de Turing pero se entiende el punto. Quiero aprovechar este comentario de Hernán para hacer un agregado a la entrada original, un agregado que en aquel momento preferí omitir para no desviarme del tema central.

Es verdad que se le atribuye a Alan Turing (con justicia hay que decir) el descubrimiento de que existen problemas matemáticos que no son resolubles algorítmicamente; concretamente Turing probó que el Halting Problem es irresoluble. Pero no es menos cierto que la existencia de problemas matemáticos que no son resolubles algorítmicamente también se deduce (como dije en la entrada original) del teorema de incompletitud de Gödel. Veamos...

El teorema de Gödel dice que no es posible dar un sistema de axiomas para la Aritmética que sea al mismo tiempo consistente, recursivo y completo. "Consistente" significa que no existe un enunciado P tal que tanto P como su negación sean demostrables. "Recursivo" significa que existe un algoritmo que reconoce si un enunciado es, o no, un axioma. "Completo" es que para todo enunciado P, o bien él, o bien su negación, es demostrable.

Supongamos ahora que propongo como sistema de axiomas a todos los enunciados aritméticos verdaderos. No es difícil probar que este sistema es consistente y completo (ambas características se deducen del hecho de que todos los enunciados verdaderos, y sólo los verdaderos, resultan ser demostrables). Por el teorema de Gödel, entonces, el sistema no puede ser recursivo. En otras palabras, no existe un algoritmo que permita decidir si un enunciado es, o no, un axioma; es decir: no existe un algoritmo que permita decidir si un enunciado aritmético es, o no, verdadero. El problema de determinar la verdad de un enunciado aritmético no es resoluble algorítmicamente.

Ahora bien, si Gödel demostró su teorema en 1931 y el trabajo de Turing es de 1937 ¿por qué se le atribuye a Turing el descubrimiento? Porque en su artículo Gödel propone una definición posible de la idea de algoritmo "aritmético", pero reconoce que no está claro que su definición abarque todos los algoritmos posibles (de hecho, según se vio después, no los abarca). El gran mérito de Turing fue el haber dado una definición (una "modelización matemática", según la idea de la entrada anterior) de la idea de algoritmo lo suficientemente amplia como para abarcar (hasta donde se sabe) a todos los algoritmos posible. Es por eso que, recién después del trabajo de Turing pudo darse por demostrado la existencia de problemas no resolubles algorítmicamente; y fue asimismo después del trabajo de Turing (según Gödel reconoció en una posdata a su artículo) que pudo establecerse el alcance real del teorema de Gödel.

Un último comentario: así como la definición que dio Gödel para la idea de algoritmo resultó ser insuficiente, en el sentido de que hay algoritmos que la definición de Gödel no abarca, del mismo modo nada asegura que no haya algoritmos que queden "fuera" de la definición de Turing, aunque hasta el día de hoy nadie ha sido capaz de dar ni siquiera la insinuación de un ejemplo concreto.

¿La mente humana?

El año pasado Miguel Ángel, administrador del excelente y bien conocido blog Gaussianos, tuvo la gentileza de invitarme a escribir allí una entrada sobre el teorema de Gödel, la que puede leerse haciendo clic aquí. En los comentarios a esa entrada (y también en los comentarios a esta otra) surgió la cuestión de si el teorema de Gödel permite, o no, demostrar que existe una diferencia esencial entre la mente humana y una computadora. En otras palabras ¿la mente humana es "computable", o no?

En esos comentarios sostuve la postura de que el teorema de Gödel no permite demostrar que la mente humana no es computable (a pesar de que lo contrario ha sido afirmado muchas veces por pensadores muy respetables). Algunos de mis interlocutores en aquel intercambio entendieron que yo estaba afirmando que no hay una diferencia esencial entre mente y computadora, cuando en realidad simplemente estaba afirmado que el teorema de Gödel no permite demostrar que esa diferencia existe. (En el mismo sentido, afirmar que el teorema de Gödel no permite demostrar la conjetura de Goldbach no es lo mismo que afirmar que la conjetura de Goldbach sea falsa).

Ahora bien... ¿por qué el teorema de Gödel no permite demostrar que la mente humana no es computable?

El teorema de Gódel es un teorema matemático que habla de entes matemáticos (ciertos conjuntos de enunciados) y que dice que si esos objetos cumplen ciertas hipótesis específicas entonces esos entes verifican ciertas propiedades claramente enunciadas. El punto a destacar aquí es que el teorema de Gödel es un teorema matemático que habla de ciertos objetos matemáticos. Por lo tanto, para que el teorema sea aplicable a una situación cualquiera, ésta debe haber sido, previamente, modelizada matemáticamente.

El teorema de Gódel, por ejemplo, permite demostrar que existen problemas matemáticos bien definidos que no puede ser resueltos algorítmicamente. ¿Por qué? Porque existe una definición matemática del concepto de algoritmo: matemáticamente, un "algoritmo" es una "máquina de Turing". En otras palabras, las máquinas de Turing modelizan matemáticamente el concepto de algoritmo. Si se acepta que este modelo es correcto (es decir, si se acepta que verdaderamente el concepto intuitivo de algoritmo está bien representado por la idea de máquina de Turing) entonces debe aceptarse que el teorema de Gödel implica que hay problemas que no son resolubles algorítmicamente  Si hubiera algoritmos no representables por máquinas de Turing entonces esa conclusión no estaría justificada.

Creo que ahora puede verse hacia dónde voy... Para que el teorema de Gödel pueda decir algo acerca de la mente humana debería existir, previamente, una definición matemática (un modelo matemático) de la mente. Debería haber una definición que nos diga (o nos permita demostrar) qué puede hacer, o qué no puede hacer la menta humana. Todas las supuestas demostraciones de que mente humana no es computable suelen caer en la falacia de atribuirle a la mente, sin ninguna justificación, aquellas propiedades que el razonamiento necesita que verifique. (El razonamiento típico dice: un algoritmo no puede hacer H, pero la mente sí, luego mente y computadora son diferente. Pero.. ¿por qué la mente puede hacer H? Respuesta: porque sí.)

¿Cómo podría definirse matemáticamente la mente? Por ejemplo, podríamos decir que la mente es una máquina de Turing con un oráculo que resuelve el halting problem. Desde luego, si aceptáramos esta definición entonces podríamos deducir inmediatamente que existe una diferencia esencial entre mente y computadora, pero... ¿esa que hemos dado es una definición aceptable de la mente? La respuesta, creo, es "claramente no". Y mientras no haya una definición matemática, aceptable, del concepto de "mente humana" el teorema de Gödel no podrá (legítimamente, al menos) decir nada al respecto.

"Dénme un punto de apoyo y moveré el mundo", dicen que dijo Arquímedes. Parafraseando a Arquímedes, Gödel podría haber dicho; "Dénme una definición matemática de la mente y les diré si es computable o no".