En el libro “2001: Una Odisea Espacial”, de Arthur C. Clark, se encuentra un monolito en la Luna. Mientras es inspeccionado envía una señal a Júpiter, donde hay en órbita otro monolito enorme. Se envía una misión hacia ese planeta que termina con la nave vacía de vida y con el ordenador Hal 9000 apagado. Para saber lo que ha ocurrido, en “2010: Odisea Dos”, se envía una nueva misión. Cuando los astronautas están en Júpiter observan que el monolito se divide en 2, 4, 8, … pronto son millones, algo va a pasar. De pronto alguien exclama: “¡Son máquinas von Neumann!”.
John von Neumann (fon noiman) fue uno de los más grandes matemáticos del siglo 20. De origen húngaro participó de manera fundamental en el diseño de los primeros ordenadores, en el diseño de las primeras bombas atómicas y de hidrógeno y en el nacimiento de la Teoría de Juegos como disciplina. Compartió con Einstein y Gödel el famoso Instituto de Estudios Avanzados de Princeton.
Naturalmente, hizo muchas más cosas, entre ellas, idear máquinas que se pudieran autorreplicar (además de hacer algún trabajo). Lo hizo en teoría, describiendo qué partes debería tener, cómo se comunicarían entre sí y algún detalle más. Estas máquinas son muy interesantes. ¿Que tenemos que convertir a Júpiter en una estrella? No hay problema, mandamos una máquina que altere las condiciones de presión y densidad del planeta para que se inicie la fusión nuclear. Pero una máquina es poco y mandar muchas es costoso. Mejor enviamos una máquina von Neumann, que primero hace millones de réplicas de sí misma (con material que encuentre en Júpiter o sus lunas) y luego se ponen todas a la tarea.
Hay ya intentos rudimentarios en robótica de robots que ensamblan partes para hacer otros iguales a sí mismos, pero todavía estamos muy lejos de hacer estas máquinas. Esto no quiere decir que no existan, resulta que los seres vivos somos este tipo de máquinas y que respondemos al diseño de von Neumann. Todo gracias a las maravillas del ADN. Un mecanismo como el del ADN fue prefigurado por Darwin y, ahora vemos, también por von Neumann.
¿Cómo es una estructura autorreplicante?
En el corto espacio de esta entrada podemos usar un ejemplo semántico, que es muy ilustrativo, a la par que sencillo. Considérese la siguiente frase que traduzco y adapto del libro "Metamagical Themas" de Douglas Hofstadter:
alfabetiza, copia, después entrecomilladas escribe estas palabras “entrecomilladas palabras alfabetiza, después estas copia, escribe”
Sigamos las instrucciones de la frase (consideramos los signos de puntuación como parte de la palabra precedente). Toda la frase se refiere a las palabras entrecomilladas al final. Primero dice “alfabetiza”, es decir, ponerlas en orden alfabético. Una vez alfabetizadas, hay que copiarlas. Hagámoslo:
alfabetiza, copia, después entrecomilladas escribe estas palabras
A continuación las órdenes dicen que hay que escribir otra vez las palabras, esta vez entrecomilladas. Procedamos sin olvidarnos de lo ya hecho. Nos queda:
alfabetiza, copia, después entrecomilladas escribe estas palabras “entrecomilladas palabras alfabetiza, después estas copia, escribe”
Es decir, una copia exacta del original. Tenemos una estructura que se autorreplica. Bueno, no exactamente. Ha necesitado de nosotros para leerla y seguir las instrucciones, pero son instrucciones sencillas, cualquier ordenador las podría seguir. De hecho, los ordenadores hacen estas cosas con los virus que les llegan.
Para ser una estructura autorreplicante de verdad, debería contener su propia manera de leerse a sí misma y de llevar a cabo las instrucciones. Los virus (informáticos y biológicos) necesitan de un huésped a quien obligarles a hacer el trabajo. Por eso los virus se consideran más objetos inertes que seres vivos. Las células, con su ADN, sí son máquinas von Neumann auténticas.