Blogia
Tio Petros

¿Quién puede nombrar el mayor número? (4/8)

Viene de aquí

Los números de Ackermann son bastante grandes, pero no son todavía lo suficientemente grandes. La búsqueda por todavía mayores números nos lleva de vuelta a los formalismos. Después de que Ackermann demostrase que `recursiva primitiva’ no es lo que queremos decir con `computable’, la pregunta todavía permanece: ¿Qué queremos decir con `computable’? En 1936, Alonzo Church y Alan Turing respondieron independientemente esta pregunta. Mientras Church respondió utilizando un formalismo lógico llamado el cálculo lambda, Turing respondió utilizando una máquina de cómputo idealizada (la máquina de Turing) que, en esencia, es equivalente a cada Compaq, Dell, Macintosh y Cray del mundo moderno. El artículo de Turing que describía su máquina, "Sobre los números computables", es debidamente celebrado como el documento fundador de la informática.

"Computar," dice Turing,

es hecho normalmente escribiendo ciertos símbolos en un papel. Podemos suponer este papel dividido en cuadrados como un libro infantil de aritmética. En la aritmética elemental el carácter bidimensional del papel es algunas veces útil. Pero tal uso es siempre evitable, y pienso que se estará de acuerdo en que el carácter bidimensional del papel no es indispensable en la computación. Asumo entonces que la computación se lleva a cabo en un papel unidimensional, en una cinta dividida en cuadrados."

Turing continúa explicando su máquina utilizando ingeniosos razonamientos desde los primeros principios. La cinta, dice Turing, se extiendo infinitamente en ambas direcciones, para que la máquina teórica no esté restringida por limitaciones físicas de recursos. Además, hay un símbolo escrito en cada cuadrado de la cinta, como el `1’ y el `0’ en la memoria de los ordenadores modernos. Pero ¿cómo son manipulados los símbolos? Bueno, hay un `cabezal’ moviéndose adelante y atrás a lo largo de la cinta, examinando un cuadrado de cada vez, escribiendo y borrando símbolos de acuerdo a reglas definidas. Las reglas están en el programa del cabezal: cámbialos, y cambiarás lo que hace el cabezal.

La augusta perspicacia de Turing fue que podemos programar el cabezal para llevar a cabo cualquier computación. Las máquinas de Turing pueden sumar, multiplicar, extraer raíces cúbicas, ordenar, buscar, comprobar la ortografía, analizar, jugar al tres en raya, listar la sucesión de Ackermann... Si representamos la entrada de datos por el teclado, la salida de datos por la pantalla, y demás como símbolos en la cinta, incluso podríamos ejecutar Windows en una máquina de Turing. Pero hay un problema. Dispón un cabezal sobre una secuencia de símbolos, y eventualmente podría parar, o podría ejecutarse para siempre... como el legendario programador que se queda atrancado en la ducha porque las instrucciones del bote de champú dicen "enjabonar, enjuagar, repetir". Si la máquina va a funcionar por siempre, estaría bien saberlo de antemano, para que no gastemos una eternidad esperando que acabe. Pero ¿cómo podemos determinar, en una cantidad de tiempo finita, si algo va a continuar indefinidamente? Si apuestas con un amigo que tu reloj nunca parará de hacer tic-tac, ¿cuándo declararás victoria? Pero quizá haya algún ingenioso programa que pueda examinar a otros programas y decirnos, infaliblemente, si pararán alguna vez de funcionar. No lo habíamos pensado todavía.

No hay. Turing probó que este problema, llamado el problema de la detención, es irresoluble por las máquinas de Turing. La demostración es un bello ejemplo de autoreferencia. Formaliza un viejo argumento sobre por qué nunca puedes tener una introspección perfecta: porque si pudieses, entonces podrías determinar qué estarías haciendo diez segundos después, y entonces hacer otra cosa distinta. Turing imaginó que hay una máquina especial que podría resolver el problema de la detención. Entonces mostró cómo podemos tener a esta máquina analizándose a sí misma, de tal forma que tiene que parar si se ejecutaría para siempre, y se ejecutaría para siempre si se para. Como un sabueso que finalmente se coge su cola y se devora a sí mismo, la mítica máquina se desvanece en una furia de contradicción. (Que es la clase de cosas que nunca dirías en un artículo de investigación.)

Continua aquí  

3 comentarios

Generic Cialis -

hola, me gusto mucho la forma en que explicas como encontrar un numero mayor, muchas gracias.

new balance -

Stars are less than the place of darkness! Smile more places are less trouble! There is a lonely place! Less lonely when the mood is good! When I'm in a good mood all good! Let us forget all the troubles! Every day happy!

jose -

La demostración de que no existe un programa que, dados un programa y una entrada sea capaz de decidir si el programa parará o no fue lo que me hizo matricularme en la asignatura \"teoría de autómatas y computación\".

Una pena que el profesor fuera un gilipollas. No he vuelto a coger el libro donde vi la demostración.