3
El descubrimiento humano del software
Turing y Von Neumann como biólogos
En este capítulo presentamos una historia revisionista del descubrimiento del software y de los primeros días de la biología molecular, contemplados desde la ventajosa perspectiva de la metabiología; el presente no para de reescribir el pasado para justificarse a sí mismo. Tal como señala Jorge Luis Borges, ¡cada cual crea a sus precursores!
Como ejemplo de este proceso de reinterpretación de la historia, consideremos la imagen que creó Voltaire de Newton como científico moderno y ateo con una visión mecanicista del mundo. En el ensayo titulado «Newton, the Man» (Newton, el hombre), John Maynard Keynes describe a Newton como «el último mago, el último de los babilonios y sumerios», en absoluto como el primer científico moderno, y más próximo al doctor Fausto que a Copérnico. Newton dedicó buena parte de su tiempo a la alquimia y la teología en lugar de a las matemáticas y la física, y reunió una colección notable de libros de alquimia medievales. Mi amigo Stephen Wolfram tiene libros de teología de Newton y Leibniz (originales, no copias) de trescientos años de antigüedad, colocados unos junto a otros en un estante; los Principia de Newton son inasequibles, pero no hay tanta gente interesada por la teología.
De hecho, el pasado no sólo se reescribe en ocasiones, sino que debe reescribirse para que continúe siendo comprensible para el presente. Con respecto al tema de cómo debería escribirse la historia de la ciencia, véase la brillante Introducción a la historia de la ciencia, de Helge Kragh.
Reexaminemos ahora los inicios de la historia de la teoría de la computación y de la biología molecular a la luz de la metabiología, y veamos qué hilos conducen a la metabiología, o deberían habernos llevado hasta ella si el progreso científico fuera completamente racional.
Esta historia está llena de sorpresas, comienza con cuestiones relacionadas con la filosofía y los fundamentos de las matemáticas, e incluye la creación de una tecnología de un billón de dólares que ya está a nuestra disposición, y bien podría ocurrir que esto se viera seguido pronto por la creación de una segunda tecnología igualmente revolucionaria. Hasta existen conexiones con la magia medieval.
¿Le gustaría saber más? ¡Siga leyendo!
Poca gente recuerda el trabajo de Turing sobre formación de patrones en biología (morfogénesis), pero su célebre artículo de 1936 titulado «On Computable Numbers» (Sobre números computables) ejerció una influencia indirecta enorme en el nacimiento de la biología molecular a través del trabajo de John von Neumann sobre autómatas autorreplicantes, el cual repercutió en Sydney Brenner, quien a su vez incidió en Francis Crick, el Crick de Watson y Crick, los descubridores de la estructura molecular del ADN. Es más, la aplicación que efectuó Von Neumann de las ideas de Turing a la biología está bellamente respaldada por el trabajo reciente en biología evolutiva del desarrollo (evo-devo). La idea crucial consiste en que el ADN es un software de varios miles de millones de años de antigüedad, pero no reparamos en ello hasta la aparición del artículo de Turing en 1936, el cual, según Von Neumann, establece las nociones del hardware y el software informáticos.
Ya hablamos sobre esta idea crucial en el capítulo anterior, pero tal vez antes de continuar deberíamos resumir lo que vimos en él:
Hardware | Física | Inerte | Rígido | Cerrado | Mecánico |
Software | Biología | Vivo | Plástico | Abierto | Creativo |
Software natural | ADN |
3-4 × 109 años de antigüedad |
Software artificial |
Programas informáticos |
50 años de antigüedad |
Matemáticas newtonianas |
Matemáticas continuas, ecuaciones diferenciales |
Para la física |
Matemáticas posmodernas |
Discretas, combinatorias, algorítmicas |
Para la biología |
Definición de vida (John Maynard Smith, Los problemas de la biología, 1986) |
Demostración matemática de la existencia de algo que cumple la definición (2010) |
¿Recuerda el bourgeois gentilhomme de Molière, que descubrió, asombrado, que durante toda su vida había estado hablando en prosa? Nosotros somos ese gentilhombre. Nuestro cuerpo rebosa software, siempre lo ha hecho, pero antes de que pudiéramos reconocer el software natural del ADN como tal, tuvimos que inventar el software artificial, los lenguajes humanos de programación informática.
El software nos rodeaba por todas partes, pero no pudimos verlo ¡hasta que inventamos un software nosotros mismos! Es más, tal como revela la evo-devo, los organismos portan su propia historia de acuerdo con Your Inner Fish, de Shubin, tu esponja interior, tu anfibio interior… La biología no es más que una clase rara de arqueología, arqueología de software.
Y la finalidad de que los humanos hagan el amor consiste en integrar el software del macho (en el esperma) con el software de la hembra (en el óvulo). Por eso se enamora la gente, por el afán de combinar sus subrutinas. Así que, en cierto sentido, Von Neumann descubrió por qué se enamora la gente.
Es más, el origen de la vida, que sigue constituyendo un profundo misterio, es el origen del software, del software natural, no del artificial. Pero la ayuda está en camino. La obra A New Kind of Science (Una nueva clase de ciencia) de Stephen Wolfram se puede reinterpretar como un libro sobre el origen de la vida. Una de las ideas clave de Stephen sostiene que es muy fácil conseguir que un sistema simbólico combinatorio se convierta en una máquina universal de Turing o en una computadora de propósito general. Es muy sencillo construir una computadora a partir de casi cualesquiera componentes matemáticos discretos. A eso se refiere él, creo yo, con la ubicuidad de la universalidad. Por tanto, desde un punto de vista filosófico esto significa que el origen de la vida no es tan asombroso en general, sino tal vez en la implementación particular que se manifiesta aquí en la Tierra. En cualquier caso, ¡gracias, Stephen!
¡Pero basta de generalidades! Permítame que le cuente ahora con más detalle cómo inventó la computadora Alan Turing (y simultáneamente también Emil Post) para facilitar el esclarecimiento de una cuestión relacionada con los fundamentos de las matemáticas: a la naturaleza, que fue la primera en inventar la computadora y el hardware/software, le importan un comino los fundamentos de las matemáticas, pero sí le importa la plasticidad.
Hablemos en primer lugar de un viejo sueño: el conocimiento fehaciente. O, tal como lo expresó el asombroso polímata Leibniz, el conocimiento mecánico, el razonamiento tan fehaciente como la aritmética, verdades tan obvias como 2 + 2 = 4. Se acabaron las disputas, decía Leibniz: ¡Caballeros, pongámonos a calcular y determinemos quién tiene la razón! ¡Qué sueño tan hermoso!
Leibniz no trabajó mucho en el desarrollo de lo que hoy se denomina lógica simbólica o lógica matemática, pero estableció el objetivo con una claridad y un convencimiento extremos, y por esta razón se lo considera el padre o el abuelo de la lógica moderna. Leibniz no pudo dedicar mucho tiempo a ningún tema concreto; era omnívoro, le interesaba todo. Por ejemplo, también inventó la aritmética binaria, y máquinas calculadoras capaces de multiplicar (la máquina calculadora original de Pascal, la Pascalina, sólo podía sumar y restar).
A lo largo de los años, muchos lógicos trabajaron en el sueño de Leibniz para conseguir un conocimiento fehaciente, un razonamiento mecánico: De Morgan, Boole, Peano, Frege, Russell, Hilbert, Gödel, Turing, Post… Pero no funcionó, resultó que no podía funcionar. En lugar del conocimiento fehaciente, mecánico, Gödel descubrió la incompletitud, y Turing descubrió la incomputabilidad. Pero, durante el proceso, Turing halló además los lenguajes de programación completos/universales, el hardware, el software y las máquinas universales.
La versión perfeccionada del sueño de Leibniz que desarrolló el matemático alemán David Hilbert fue todo un hito. Hilbert anhelaba una teoría axiomática formal para todas las matemáticas, una versión mecanizada de los Elementos de Euclides que abarcara la totalidad de las matemáticas, y no sólo la geometría. El punto clave era que sería posible comprobar mecánicamente si una demostración es o no correcta, si el razonamiento cumple o no todas las reglas. Para lograrlo había que inventar un meticuloso lenguaje artificial lo bastante poderoso para expresar todos los razonamientos matemáticos posibles, todas las demostraciones matemáticas posibles.
En 1931 Gödel evidenció que eso es un imposible: semejante lenguaje mecánico universal para razonar jamás podrá descubrirse, jamás nos permitirá probar todas las verdades matemáticas. Esto es lo que se llama incompletitud. Pero entonces, en 1936, Turing demostró que en realidad sí que hay lenguajes mecánicos completos o universales para realizar cálculos matemáticos en lugar de expresar demostraciones matemáticas. Y todo lo demás es historia: ¡había nacido la computadora moderna!
¿Cómo refutó Gödel a Hilbert y Leibniz? Construyendo un aserto matemático aritmético que afirma la imposibilidad de demostrarse a sí mismo: «Yo no soy demostrable», lo cual únicamente es demostrable si y sólo si es falso.
Turing siguió una técnica distinta, menos taimada, más profunda. Estudió lo que las máquinas podrían computar, y observó que la mayoría de los números reales son incomputables y, por tanto, poseen valores numéricos que no se pueden determinar mediante una demostración formal porque, si así fuera, podríamos repasar mecánicamente todas las demostraciones posibles para calcular de manera sistemática el valor de esos números reales incomputables.
Ésta es en realidad mi versión favorita del resultado básico de Turing. La manera habitual de explicarlo es en términos del famoso «problema de la parada». Turing demuestra que no existe ninguna manera sistemática, ningún procedimiento mecánico, ninguna teoría axiomática formal para decidir si un programa de computación autocontenido acabará deteniéndose o no. Podemos ponerlo en marcha y efectuar cálculos paso a paso, pero decidir si continúa funcionando por siempre o no es bastante imposible en el caso general.
Así obtenemos lenguajes de programación informática, lenguajes universales, lo bastante eficaces para escribir cualquier algoritmo. Pero perdemos la certidumbre, perdemos el razonamiento mecánico. Ese sueño se desvanece para siempre.
¡Sin embargo, no hay que preocuparse! Según Emil Post (menos conocido que Gödel y Turing pero a su mismo nivel, puesto que también descubrió las máquinas de Turing y también con un teorema de incompletitud que permaneció años sin publicarse), el método axiomático y, en especial, la axiomática formal de Hilbert, no era más que un terrible error, un confuso malentendido.
De acuerdo con Post, las matemáticas no pueden brindar certidumbre porque no son cerradas, mecánicas, ¡sino que son creativas, plásticas, abiertas! ¿Le suena de algo? ¡Hemos estado hablando de creatividad biológica a lo largo de todo el capítulo anterior y ahora nos encontramos con algo similar también en el ámbito de las matemáticas puras! ¡Así que las matemáticas son creativas, no mecánicas, las matemáticas son biológicas, no una máquina! Ya he comentado que la creatividad matemática y la biológica no son tan distintas, y lo veremos con un grado mayor de detalle aún mayor en el siguiente capítulo. El tema aparece especialmente bien expresado en el título de dos libros del filósofo Paul Feyerabend: Tratado contra el método y Adiós a la razón. Feyerabend aboga por la creatividad y la imaginación (en una palabra, la anarquía) en la ciencia basadas en su lectura de la historia de la ciencia y sin mencionar en ningún momento a Gödel o Turing. Pero, en mi opinión, «Tratado contra el método» sería el mejor título para un libro dedicado a la irresolubilidad del problema de la parada de Turing, y «Adiós a la razón» sería el título perfecto para un libro que versara sobre el teorema de incompletitud de Gödel. Lo que Feyerabend considera que se da en el mundo de la ciencia por razones puramente filosóficas, en el mundo de las matemáticas se corresponde en realidad con teoremas matemáticos: cabe demostrar que no hay métodos generales para resolver todos los problemas matemáticos.
No obstante, tal como señaló el matemático Gian-Carlo Rota en su ensayo titulado «The Pernicious Influence of Mathematics upon Philosophy» (La perniciosa influencia de las matemáticas en la filosofía), la filosofía es en realidad el arte de encontrar malas razones para lo que uno cree de manera instintiva, en lo más hondo de sus entrañas. En realidad, debido a antojos emocionales subconscientes de la infancia. Rota se granjeó pocos amigos en el ámbito de la filosofía con esta suerte de comentarios inteligentes, pero yo adoro la filosofía y también creo que Rota tiene algo de razón: la filosofía no debe aspirar a emular demasiado a las matemáticas, al menos no el método axiomático formal que defendió Hilbert. Porque, tal como observa Rota, si pudiéramos definir nuestros vocablos con precisión, sería el fin de la filosofía. La axiomática formal no es creativa…
De hecho, existen distintas clases de creatividad matemática. Algunas personas (la mayoría) se interesan por la creatividad dentro de una teoría matemática axiomático-formal = encontrar una demostración pero manteniéndose dentro del paradigma vigente = la ciencia normal (Kuhn). A mí me interesa más la «creatividad salvaje» (Deleuze) = alteración de la teoría formal = nuevos axiomas, nuevos conceptos = cambio de paradigma (Kuhn) = ¡contra el método (Feyerabend)!
Y ahora pasemos a los autómatas autorreplicantes de Von Neumann. En 1951 Von Neumann toma de Gödel la idea de contar con una descripción del organismo que se halle dentro del propio organismo las instrucciones para construir el organismo = la información hereditaria = el software digital = ADN. Primero se siguen las instrucciones que porta el ADN para obtener una copia nueva del organismo, después se copia el ADN y se inserta en el nuevo organismo, después se pone en marcha el nuevo organismo, ¡sin ninguna regresión infinita, sin ningún homúnculo en el esperma!
Para ahondar en los detalles consúltese la parte principal del artículo de Von Neumann dedicada a la autorreplicación de autómatas que figura en el primer anexo al final de este libro. La lectura de este artículo animó a Sydney Brenner a acudir a Cambridge para trabajar con Francis Crick. Éste necesitaba trabajar con alguien porque Watson había regresado a Estados Unidos tras la publicación en Nature de su célebre artículo conjunto.
Crick compartió un despacho primero con Watson y después con Brenner; no podía trabajar solo, necesitaba rumiar las ideas, necesitaba tener a alguien con quien hablar durante todo el día. Francis Crick era el sumo teórico, el estratega, la persona que planeó la creación de la biología molecular. Y la mitad de Crick era Brenner. Después de que Watson y Crick descubrieran la estructura molecular del ADN, el alfabeto de cuatro bases A, C, G, T, aún no estaba claro qué estaba escrito en aquel alfabeto de cuatro símbolos, no estaba claro cómo funcionaba el ADN. Pero Crick, siguiendo a Brenner y Von Neumann, albergaba en algún rincón de su mente la noción del ADN como portador de instrucciones, como software. Y sabía que lo que contaba, lo importante, era cómo fluía aquella información por la célula, y cómo se transformaba en proteína…
¿Cómo conoció Brenner el artículo que presentó Von Neumann en el simposio de Hixon? En Sudáfrica, antes de acudir a Oxford y después a Cambridge, Brenner fue compañero de clase del científico experto en computación Seymour Papert, quien más tarde trabajaría con Marvin Minsky en el Instituto Tecnológico de Massachusetts. Y fue Papert quien llamó la atención de Brenner acerca del artículo de Von Neumann (yo jamás coincidí con Papert, pero sí conozco a Marvin).
El trabajo de Von Neumann sobre la autorreplicación no finalizó en 1951 con su denominado «modelo cinemático», que era en esencia un proyecto de dispositivo físico. Siguiendo una sugerencia de Stanisław Ulam (a quien tuve el privilegio de conocer en Los Álamos), aquel modelo autorreplicante de Von Neumann se apartó entonces del mundo físico y se convirtió en un plano bidimensional en forma de papel dividido en cuadrados idénticos, cada uno de los cuales era una máquina de estados finitos, lo que se denomina un autómata celular (AC). El nuevo trabajo se publicó póstumamente.
El mundo de los autómatas celulares que utilizó Von Neumann es un mundo homogéneo, uniforme, completamente plástico, un mundo donde todo es software, información, sin hardware, un mundo donde funciona la magia: el conjuro mágico adecuado lo creará todo. En él hay un constructor universal y un computador universal. Suena bien, pero este mundo de AC también presenta algunos problemas: a los organismos les resulta más fácil reproducirse a sí mismos que moverse (traducirse a sí mismos).
El trabajo de Von Neumann sobre autorreplicación y constructores universales ha tardado más que el trabajo de Turing sobre la máquina universal en tener aplicaciones tecnológicas, pero ahora empieza a haberlas: como impresoras de objetos, impresoras tridimensionales, nueva tecnología de manufactura flexible, impresoras 3D capaces de imprimirse a sí mismas (http://reprap.org) y a la larga, tal vez, ¡la fábrica universal capaz de crearlo todo!
Así que, como puede verse, el artículo de Turing ha tenido un impacto inmenso, y podría ser aún mayor. Las computadoras no sólo son una tecnología enormemente útil, también implican una nueva clase revolucionaria de matemáticas con profundas consecuencias filosóficas. Nos desvelan un mundo nuevo.
He dedicado la mayor parte de la vida a explorar un pequeño aspecto de ese mundo nuevo: usando el tamaño de los programas informáticos como una medida de la complejidad, definiendo la aleatoriedad como una complejidad irreducible, como incompresibilidad algorítmica, y estudiando un número que yo llamo la probabilidad de detención Ω. Ω muestra de manera concisa casos concretos del problema de la parada de Turing. Si pudiéramos conocer el valor numérico de Ω con N bits de precisión, eso nos permitiría resolver el problema de la detención para todos los programas de hasta N bits de tamaño. Ω está repleto de información matemática irreducible tanto lógica como computacional.
La probabilidad de detención de un programa creado lanzando una moneda al aire es un número real paradójico: a pesar de la simplicidad de la definición de Ω, su valor numérico es absolutamente imposible de calcular, absolutamente imposible de conocer, y revela que las matemáticas puras contienen una complejidad infinitamente irreducible. Ω se puede interpretar de forma pesimista como un indicador de los límites del conocimiento humano. La interpretación optimista, mi preferida, sostiene que Ω revela que no se pueden realizar matemáticas de manera mecánica, y que la intuición y la creatividad son esenciales. De hecho, en cierto sentido, Ω es la esencia cristalizada, concentrada, de la creatividad matemática (de nuevo Emil Post).
Es más, tal como planteé por primera vez en un artículo del Bulletin of the European Association for Theoretical Computer Science (EATCS) en febrero de 2007, la infinita complejidad irreducible de la probabilidad de detención Ω muestra que las matemáticas puras son más biológicas incluso que la biología, que es muy compleja, pero se trata tan sólo de una complejidad finita. Las matemáticas puras poseen una complejidad infinita. Esta clave fue lo que me animó a intentar crear la metabiología, la cual anuncié en el Bulletin EATCS de febrero de 2009, tan sólo dos años más tarde.
De modo que Gödel, Turing, Post y Von Neumann abrieron una puerta para ir de las matemáticas a la biología; nos dotaron de las herramientas conceptuales necesarias. Necesitamos matemáticas algorítmicas discretas posmodernas para comprender la biología, no ecuaciones diferenciales, no las viejas matemáticas, no el análisis.
En las páginas 59 a 61 figura un esquema cronológico y algunas referencias a los trabajos mencionados en este capítulo. En el siguiente entraremos en detalle y veremos cómo crear una teoría matemática sobre software con mutaciones aleatorias. Siguiendo la recomendación de John Maynard Smith y Sydney Brenner, prescindiremos del cuerpo, el metabolismo y la energía, y nos centraremos en organismos consistentes en puro software. Le contaré cómo emprender la creación de una teoría matemática, algo que ya conseguí en una ocasión anterior (la teoría algorítmica de la información) y que confío en volver a lograr esta vez (la metabiología). Y, como verá, los criterios para lograrlo son mayoritariamente estéticos; las matemáticas son un arte.
Conseguiremos demostrar que la evolución de Darwin funciona en nuestro modelo simplificado y, aunque parezca sorprendente, que los organismos que evolucionan mediante selección natural van estableciendo cotas inferiores cada vez mejores de la probabilidad de detención Ω, lo cual no llegué a prever del todo y, de hecho, fue una agradable sorpresa. Aunque, en retrospectiva, no resulta nada sorprendente, tal como veremos en el capítulo 5.
Kurt Gödel, 1931[3] | Autorreferencia: «¡Esta afirmación es indemostrable!» | Incompletitud de sistemas formales para el razonamiento matemático | |
Alan Turing, 1936 | Sobre números computables con una aplicación para el Entscheidungsproblem | Completitud de sistemas formales para cálculos matemáticos = Lenguajes de programación universal, máquinas universales de Turing = computadoras de propósito general | La filosofía teórica del artículo matemático crea la idea del software, ¡la industria informática de un billón de dólares (Von Neumann)! |
Trabajo tardío de Turing sobre biología | Morfogénesis = Matemáticas newtonianas = Ecuaciones diferenciales en derivadas parciales = ¡Obsoleto! | ¡Fue Von Neumann quien vio la manera de aplicar el trabajo de Turing a la biología, no el propio Turing! | ¡Von Neumann inaugura la biología matemática! Y con ello inicia la metabiología |
John von Neumann, finales de la década de 1940 comienzos de la década de 1950 | Teoría de los autómatas autorreplicantes (¡la autorreferencia se convierte en autorreproducción!)[4] | ¡Constructores universales, impresoras de objetos, impresoras 3D, manufactura flexible, impresoras autorreplicantes! | Fábrica universal ¿¡Futuro negocio de un billón de dólares!? |
Von Neumann murió joven (a los 53 años) | Falleció en 1957; el artículo de Watson y Crick sobre el ADN apareció en 1953 | ||
Sydney Brenner, finales de la década de 1950 y década de 1960[5] | Biólogo inspirado en Von Neumann, no en ¿Qué es la vida?, de Schrödinger | Influyó en Crick, compartió despacho con él; lo único que importa es la información = instrucciones para crear cosas, fabricar cosas = software algorítmico discreto | Galardonado con el Premio Nobel |
Von Neumann murió joven (a los 53 años) | Falleció en 1957; el artículo de Watson y Crick sobre el ADN apareció en 1953 | ||
Stanisław Ulam[6] | Mundo de autómatas celulares, 29 estados, 4 vecinos | Un mundo completamente plástico; ¡todo es software, encantamientos mágicos, información! | ¡El mundo como idea! ¡Abajo el materialismo! |