Anexo 1
El artículo de Von Neumann que establece la igualdad «ADN = software»[12]

EL CONCEPTO DE COMPLICACIÓN; AUTORREPRODUCCIÓN

El concepto de complicación

Hasta ahora las exposiciones previas han evidenciado que la complejidad elevada tiene gran relevancia en cualquier esfuerzo teórico relacionado con autómatas y que, a pesar del carácter cuantitativo que parece tener a primera vista, este concepto puede consistir en realidad en algo cualitativo, en una cuestión de principio. En el resto de mi exposición abordaré una implicación más remota de este concepto, implicación que toma aún más explícito uno de los aspectos cualitativos de su naturaleza.

La naturaleza presenta una característica muy obvia, una especie de «círculo vicioso», cuya expresión más simple es que los organismos muy complejos son capaces de reproducirse a sí mismos.

Todos tendemos a sospechar vagamente la existencia de un concepto de complicación. Este concepto y sus propiedades potenciales nunca se han formulado con claridad. Sin embargo, siempre estamos tentados a aceptar que funciona del siguiente modo. Cuando un autómata realiza determinadas operaciones, contamos con que tienen un grado de complicación menor que el autómata en sí. En concreto, si un autómata posee la capacidad de construir otro, debe producirse un descenso de la complicación, puesto que vamos de la matriz hacia la construcción. Es decir, si A puede producir B, entonces A tendría que contener de alguna manera una descripción completa de B. Además, para que suceda con eficacia, debe haber varias disposiciones en A para comprobar que se interpreta esa descripción y que se realizan las operaciones de construcción que desencadena. Por tanto, en este sentido parece esperable alguna tendencia degenerativa, algún descenso en la complejidad a medida que un autómata construye otro autómata.

Aunque haya cierta verosimilitud indefinida en todo esto, está en clara contradicción con los hechos más obvios que acaecen en la naturaleza. Los organismos se reproducen a sí mismos, es decir, crean organismos nuevos sin ningún descenso de la complejidad. Es más, hay largos periodos evolutivos en los que la complejidad incluso aumenta. Los organismos derivan indirectamente de otros menos complejos.

De modo que, cuando menos, existe una contradicción aparente entre lo verosímil y lo manifiesto. En vista de esto, vale la pena considerar si en todo ello interviene algo que admita una formulación rigurosa.

Hasta aquí he sido más bien impreciso y difuso, y no por azar. Me parece imposible transmitir una idea clara de la situación que se da aquí de otro modo. Permítanme que ahora intente ser preciso.

La teoría de calculadoras automáticas de Turing

El lógico inglés Turing abordó el siguiente problema unos doce años atrás.

Quería dar una definición general de lo que significa una calculadora automática. La definición formal que desarrolló fue la siguiente:

Un autómata es una «caja negra» que no se describirá en detalle pero que se espera que tenga los siguientes atributos. Posee un número finito de estados, que deben caracterizarse a primera vista únicamente consignando su número, digamos n, y enumerándolos en concordancia: 1, 2…., n. La característica operativa esencial del autómata consiste en describir cómo se provoca que cambie de estado, es decir, que pase de un estado i a un estado j. Dicho cambio exige alguna interacción con el mundo exterior, el cual se especificará del siguiente modo. En lo que se refiere a la máquina, digamos que todo el mundo exterior consiste en una cinta larga de papel. Pongamos que la cinta mide 1 pulgada[13] de ancho, y que la subdividimos en campos (cuadrados) de 1 pulgada de largo. En cada campo de esta banda podemos poner o no una señal, por ejemplo, un punto, y contamos con que es posible tanto borrar como poner dicho punto. Cada campo marcado con un punto se llamará «1», los campos no marcados con un punto se llamarán «0». (Podrían admitirse otras maneras de marcar los campos, pero Turing demostró que esta cuestión es irrelevante y que no conduce a ninguna ganancia significativa en cuanto a generalidad). Para describir la posición de la cinta en relación con el autómata se da por supuesto que un campo particular de la cinta está bajo el control directo del autómata, y que el autómata tiene la capacidad de desplazar la cinta hacia delante y hacia atrás, pongamos, un campo cada vez. Para especificar esto, situaremos el autómata en el estado i (= 1…., n), y haremos que en la cinta se vea una e (= 0, 1). Entonces el autómata pasará al estado j (= 0, 1…., n), y moverá la cinta p campos (p = 0, +1, −1; +1 es un movimiento hacia delante, −1 es un movimiento hacia atrás), e inscribe el nuevo campo que ve f (= 0, 1; inscribir 0 significa borrar; inscribir 1 significa poner un punto). Entonces, la especificación de j, p, f, como funciones de i, e, constituye la definición completa del funcionamiento de dicho autómata.

Turing realizó un análisis cuidadoso de qué procesos matemáticos pueden efectuarse con autómatas de este tipo. En el curso de esta labor demostró varios teoremas relacionados con el clásico «problema de la decisión» en lógica, pero no entraré en esas cuestiones aquí. Sin embargo, también introdujo y analizó el concepto de un «autómata universal», y esto forma parte de lo relevante en el presente contexto.

Una serie infinita de dígitos e (= 0, 1) es una de las entidades básicas de las matemáticas. Contemplada como una sucesión binaria, equivale en esencia al concepto de número real. De modo que Turing basó su razonamiento en estas sucesiones.

Estudió la cuestión de qué autómatas serían capaces de construir determinadas sucesiones. Es decir, dada una ley definida para la formación de una sucesión específica, él se planteó qué autómatas pueden emplearse para formar la sucesión sobre la base de dicha ley. El proceso de «formación» de una sucesión se interpreta de este modo. Un autómata es capaz de «formar» una sucesión determinada si es posible especificar una longitud finita de cinta adecuadamente marcada de manera que, al introducir esa cinta en el autómata en cuestión, éste escribirá a continuación la sucesión en la porción vacía (infinita) que queda de la cinta. Este proceso de escritura de la sucesión infinita se prolonga, por supuesto, de manera indefinida. Es decir, el autómata seguirá operando indefinidamente y, si dispone de un tiempo lo bastante largo, grabará cualquier porción deseada (aunque, por supuesto, finita) de la sucesión (infinita). La porción finita, previamente marcada, de la cinta constituye la «instrucción» del autómata para este problema.

Un autómata es «universal» si es capaz de resolver cualquier sucesión producida por cualquier otro autómata. Desde luego, en general precisará una instrucción diferente para este propósito.

El resultado principal de la teoría de Turing

A priori cabría esperar que esto fuera imposible. ¿Cómo puede haber un autómata al menos tan efectivo como cualquier otro autómata imaginable, incluyendo, por ejemplo, uno con el doble de su tamaño y complejidad?

Turing, sin embargo, demostró que es posible. Aunque su construcción sea bastante compleja, el principio subyacente es de lo más simple. Turing observó que una descripción completamente general de cualquier autómata concebible puede expresarse (de acuerdo con la definición anterior) mediante una cantidad finita de palabras. Esta descripción contendrá ciertos pasajes vacíos (los referentes a las funciones mencionadas con anterioridad: j, p, f en términos de i, e), los que especifican el verdadero funcionamiento del autómata. Cuando esos pasajes vacíos se rellenan, nos encontramos ante un autómata específico. Mientras permanecen vacíos, este esquema representa la definición general del autómata general. Ahora se toma posible describir un autómata con la capacidad de interpretar tal definición o, en otras palabras, uno tal que, al introducirle las funciones que definen un autómata específico en el sentido descrito más arriba, pasará a funcionar como el objeto descrito. La capacidad de hacer esto no es más misteriosa que la capacidad de leer un diccionario y una gramática y seguir sus instrucciones en relación con los usos y principios para combinar palabras. Este autómata, construido para leer una descripción e imitar el objeto descrito, es pues el autómata universal en el sentido que le dio Turing. Para lograr que duplique cualquier operación que cualquier otro autómata sea capaz de efectuar, basta con proporcionarle una descripción del autómata en cuestión y, además, las instrucciones que necesitaría ese dispositivo para la operación contemplada.

Ampliación del programa para tratar con autómatas que producen autómatas

Para la cuestión que me concierne a mí aquí, la «autorreproducción» de autómatas, el procedimiento de Turing resulta excesivamente limitado en un solo aspecto. Sus autómatas son meras máquinas de computación. Su salida es un trozo de cinta provista de ceros y unos. Lo que se necesita para la construcción de lo que yo he comentado es un autómata cuya salida sea otro autómata. Pero no existe ninguna dificultad de principio para tratar con este concepto más amplio y para obtener a partir de él el equivalente del resultado de Turing.

Las definiciones básicas

Como en el ejemplo anterior, vuelve a ser crucial la aportación de una definición rigurosa de lo que constituye un autómata para el objeto de la investigación. En primer lugar, hay que confeccionar una lista completa de las partes elementales que se emplearán. Este listado debe contener no sólo una enumeración completa, sino también una definición operativa completa de cada parte elemental. Es bastante sencillo elaborar una lista así, es decir, escribir un catálogo de las «partes de la máquina» lo bastante amplio para permitir la construcción de la inmensa variedad de mecanismos aquí requeridos, y con el rigor axiomático necesario para esta clase de consideración. La lista tampoco precisa ser muy larga. Puede, por supuesto, hacerse arbitrariamente larga o corta. Puede ampliarse incluyendo en ella, como partes elementales, cosas que pudieran conseguirse mediante la combinación de otras. Se puede hacer corta (de hecho, puede hacerse de manera que consista en una sola unidad) dotando cada parte elemental de una multiplicidad de atributos y funciones. Cualquier afirmación sobre el número de partes elementales necesarias representará, por tanto, un compromiso de sentido común, en donde no se espera nada demasiado complicado de cualquier parte elemental, y ninguna parte elemental está concebida para realizar varias funciones claramente separadas. En este sentido, se puede demostrar que basta alrededor de una docena de partes elementales. Así que cabría plantear el problema de la autorreproducción del siguiente modo: ¿se puede construir un conjunto a partir de esos elementos de tal manera que si se pone en un almacén donde floten todos estos elementos en gran número, empiece a construir otros conjuntos, cada uno de los cuales resulte ser al final otro autómata exactamente igual al original? Esto es factible, y el principio en el que se basa está íntimamente relacionado con el principio de Turing explicado con anterioridad.

Esquema de la deducción del teorema acerca de la autorreproducción

En primer lugar, es posible dar una descripción completa de todo lo que es un autómata en el sentido contemplado aquí. Esta descripción debe concebirse de manera general, es decir, una que de nuevo contenga espacios vacíos. Estos espacios vacíos deben llenarse con las funciones que describan la estructura real de un autómata. Al igual que antes, la diferencia entre esos espacios llenos y vacíos es la diferencia entre la descripción de un autómata específico y la descripción general de un autómata general. No existe ninguna dificultad de principio para describir los siguientes autómatas.

(a) El autómata A, que al proporcionarle la descripción de cualquier otro autómata en términos de las funciones adecuadas, construirá ese ente. La descripción no se dará en este caso en forma de una cinta marcada, como en el caso de Turing, porque normalmente no elegiremos una cinta como elemento estructural. Sin embargo, es bastante sencillo describir combinaciones de elementos estructurales que posean todas las propiedades de registro de una cinta con campos que se puedan marcar. Una descripción de este tipo se denominará una instrucción y se designará mediante una letra I.

El término construir debe entenderse en el mismo sentido que antes. Se supone que el autómata constructor se encuentra en un almacén donde flotan todos los componentes elementales en gran número, y realizará su construcción en ese medio. No hay que preocuparse por el modo en que un autómata concreto de este tipo será capaz de crear otros más grandes y más complejos que él. En este caso, el mayor tamaño y complejidad del objeto que se quiera construir estarán reflejados en un tamaño supuestamente mayor de las instrucciones I que deberán proporcionarse. Tal como he comentado, estas instrucciones deberán consistir en conjuntos de partes elementales. Desde luego, en este sentido, un ente iniciará un proceso cuyo tamaño y complejidad estén determinados por el tamaño y la complejidad del objeto que haya que construir.

En adelante, todos los autómatas para cuya construcción se emplee el dispositivo A, compartirán con A esta propiedad. Todos ellos tendrán sitio para una instrucción I, es decir, un lugar donde se pueda insertar esa instrucción. Al describir un autómata tal (como, por ejemplo, mediante una instrucción adecuada), la especificación del lugar donde insertar una instrucción I en el sentido anterior se entiende como parte de la descripción. Por tanto, podemos hablar de «insertar una instrucción I dada en un autómata dado», sin ninguna otra explicación adicional.

(b) El autómata B, capacitado para hacer una copia de cualquier instrucción I que se le proporcione. I consiste en un conjunto de partes elementales en el sentido explicado en (a), y no en una cinta. Este dispositivo se empleará cuando I proporcione una descripción de otro autómata. En otras palabras, este autómata no es nada más sutil que un «reproductor» (la máquina capaz de leer una cinta perforada y crear una segunda cinta perforada idéntica a la primera). Nótese que este autómata también es capaz de producir objetos más grandes y más complejos que él mismo. Repárese, además, en que esto no tiene nada de sorprendente. Como sólo puede copiar, será necesario proporcionarle como entrada un objeto de tamaño y complejidad idénticos a los de la salida.

Después de este preámbulo, podemos proceder al paso decisivo.

(c) Combinemos los autómatas A y B entre sí y con un mecanismo de control C que haga lo siguiente. Dotemos a A con una instrucción I (nuevamente en el sentido de [a] y [b]). Entonces C provocará en primer lugar que A construya el autómata descrito mediante esa instrucción I. Después C hará que B copie la instrucción I a la que acabamos de aludir, e inserte la copia dentro del autómata mencionado más arriba, el recién construido por A. Por último, C separará esta construcción del sistema A + B + C, y la «dejará libre» como entidad independiente.

(d) Denominemos D al conjunto global A + B + C.

(e) Para funcionar, el conjunto D = A + B + C debe dotarse de una instrucción I, como la descrita más arriba. Tal como acabamos de señalar, esta instrucción debe insertarse en A. Formemos ahora una instrucción ID que describa este autómata D, e insertémosla en A dentro de D. Denominemos E al conjunto resultante.

E es claramente autorreplicante. Nótese que no interviene ningún círculo vicioso. El paso decisivo se produce en E, cuando se construye la instrucción ID, la que describe D, y se incorpora a D. Cuando se solicita la construcción (la copia) de ID, D ya existe, y no se ve modificada en modo alguno por la construcción de ID. ID se añade sencillamente para formar E. Por tanto, existe un orden definido cronológico y lógico para que se formen D e ID, y se sigue un proceso legítimo y correcto de acuerdo con las reglas de la lógica.

Interpretación de este resultado y de sus ampliaciones inmediatas

La descripción de este autómata E tiene algunos aspectos atractivos adicionales en los que no me extenderé demasiado en esta ocasión. Por ejemplo, es bastante evidente que la instrucción ID desempeña de manera aproximada las funciones de un gen. También está claro que el mecanismo de copiado B realiza el acto fundamental de la reproducción, la duplicación del material genético, que es claramente la operación fundamental en la multiplicación de las células vivas. También se ve con facilidad que las alteraciones arbitrarias del sistema E, y en particular de ID, pueden exhibir ciertos rasgos típicos que aparecen en conexión con la mutación, que son letales normalmente, pero con la posibilidad de proseguir con la reproducción con una modificación de los rasgos. Por supuesto, también está claro en qué punto deja de ser válida la analogía. Es probable que el gen natural no contenga una descripción completa del objeto cuya construcción estimula con su presencia. Probablemente sólo contenga indicaciones generales, señales generales. No intentamos incorporar esta simplificación dentro del marco tan general en el que se desarrolla nuestro discurso. No obstante, está claro que esta simplificación y otras similares son en sí mismas de una relevancia enorme y cualitativa. Estaremos muy lejos de una comprensión real de los procesos naturales si no intentamos ahondar en estos principios simplificadores.

Pequeñas variaciones del esquema anterior también permiten construir autómatas capaces de reproducirse a sí mismos y, además, de construir otros. (Tales autómatas realizan de forma más específica lo que probablemente sea una —cuando no la— función típica de los genes, la autorreproducción junto con la producción —o el estímulo para la producción— de ciertas enzimas específicas). De hecho, basta con sustituir la ID por una instrucción ID+F que describa el autómata D y otro autómata dado, F. Denominemos EF al autómata D dotado de ID+F insertado en el A que porta en su interior. Este EF posee claramente la propiedad recién descrita. Se reproducirá a sí mismo y, además, construirá F.

Nótese que una «mutación» de EF que se produzca dentro de la parte correspondiente a F en ID+F dentro de EF no será letal. Si sustituye F por F’ se pasa de EF, a EF’, es decir, el «mutante» sigue siendo autorreplicante, sólo que el subproducto ha cambiado a F’ en lugar de F. Se trata, por supuesto, del típico mutante no letal.

Todos éstos son pasos muy rudimentarios hacia una teoría sistemática de autómatas. Además, tan sólo representan una dirección concreta. Lo que acabo de exponer, tal como señalé con anterioridad, es la dirección hacia el desarrollo de un concepto riguroso de lo que constituye la «complicación». Son la ilustración de que, en sus niveles más bajos, la «complicación» es probablemente degenerativa, es decir, que todo autómata capaz de producir otro autómata sólo será capaz de generar otros menos complicados. Sin embargo, existe cierto umbral mínimo en el que esta característica degenerativa deja de ser universal. En ese punto se toman posibles los autómatas capaces de reproducirse a sí mismos, o incluso de construir entes superiores. Es evidente que este hecho (que la complicación, así como la organización, por debajo de cierto umbral mínimo sean degenerativas, y por encima de ese nivel se puedan volver autónomas y hasta crecientes) desempeñará un papel relevante en cualquier teoría futura sobre esta materia.