Vida artificial, ¿qué es?

Thomas S. Ray
Como dije en un artículo anterior, la vida artificial es la rama de la ingeniería informática que construye programas que emulan el comportamiento de los seres vivos, ya sean seres vivos artificiales, o bien colonias de seres vivos, como hormigueros o colmenas. Puesto que yo he trabajado en este campo, voy a contar aquí algún trabajo sobre vida artificial.
En 1991, Thomas S. Ray construyó una aplicación a la que dio el nombre de Tierra (así, en español), en el que una serie de organismos artificiales evolucionaban y competían por los recursos disponibles dentro del ordenador. Dichos recursos se reducían, esencialmente, a la memoria del ordenador, que era limitada, y al tiempo de ejecución. El objetivo de cada individuo era copiarse a sí mismo en un trozo de memoria disponible. Al copiarse, sin embargo, podían introducirse errores (mutaciones), por lo que los organismos en cuestión eran capaces de evolucionar.
La ejecución tenía lugar en una máquina virtual provista de un lenguaje de máquina sencillo, con 32 instrucciones diferentes. Los individuos eran programas formados por instrucciones escritas en dicho lenguaje de máquina. Algunas instrucciones básicas eran relativamente complejas, como pedir al sistema operativo que asignara cierto espacio. Aunque muy simple, el programa original era capaz de copiarse a sí mismo (con mutaciones) en el espacio asignado. La ejecución de los individuos se realiza en paralelo, o sea, todos se ejecutan a la vez.
Puesto que la memoria es limitada y todos los individuos tratan de conseguirla, fue necesario incluir una rutina de muerte, que decide que algunos individuos sean eliminados, dejando libre el espacio que ocupaban. Es evidente que los individuos con menos instrucciones (que ocupan menos espacio) tienen ventaja sobre los más voluminosos, pues necesitan menos espacio para reproducirse. El experimento empezaba a funcionar partiendo de un individuo, programado a mano. Después de muchas generaciones ocurrieron cosas sorprendentes como estas:

  • Aparición de individuos más pequeños (y por tanto más eficientes) que los individuos originales programados directamente por Ray.
  • Aparición de parásitos, que utilizan el programa de otro individuo para copiarse a sí mismos en el espacio disponible.
  • Aparición de super-parásitos, que parasitan a los parásitos.
  • Aparición de especies comensales o simbiontes, que colaboran para reproducirse, compartiendo sus instrucciones.
Algunos años después, decidí construir una versión simplificada de Tierra para estudiar personalmente su funcionamiento. Mi máquina virtual, en vez de 32 instrucciones, tenía sólo 13. El resultado fue espectacular y sorprendente. No sólo aparecieron parásitos: también surgió, poco después, un tipo nuevo de individuo normal protegido contra los parásitos, pues cuando uno de estos intentaba reproducirse utilizando las instrucciones del hospedador, sólo conseguía copiar las instrucciones de este. Esto proporcionaba ventaja al hospedador, que en vez de reproducirse una vez, lo hacía dos o más veces en cada generación. Por ello, después de cierto número de generaciones, esta especie llegó a convertirse en dominante, hasta el punto de que los parásitos desaparecieron, pero entonces la especie dominante dejó de serlo, al perder su ventaja, y creció el número de individuos normales sensibles a los parásitos, con lo que estos volvieron a aparecer.
Otro detalle interesante es que uno de los tipos de individuos normales que surgió emulaba en cierto modo la reproducción sexual, pues era capaz de realizar recombinación genética al reproducirse, ya que el individuo hijo heredaba parte de sus instrucciones de su padre, y el resto procedía de otro individuo.
La relación entre las poblaciones de los parásitos y los individuos normales dio lugar a curvas parecidas a la solución de las ecuaciones de Volterra, que se aplican a los sistemas ecológicos predador-presa. En la figura adjunta, el eje horizontal es el tiempo, y se presenta el número de individuos de cada tipo en generaciones sucesivas; la curva negra es la población de individuos normales, susceptibles a los parásitos; la curva azul representa la población de parásitos; la curva roja corresponde a los individuos protegidos contra la acción de los parásitos. Obsérvese cómo estos individuos llegan a hacerse dominantes, pero cuando los parásitos desaparecen, los individuos normales se reponen y los parásitos vuelven a aparecer.
¿Para qué sirve todo esto? Para experimentar con la evolución biológica de una forma mucho más sencilla y rápida que utilizando seres vivos reales. La evolución biológica es muy lenta. Una especie nueva de un ser pluricelular tarda, por regla general, del orden de un millón de años en aparecer. Es evidente que no podemos esperar tanto tiempo para realizar un experimento. En los de vida artificial, en cambio, el tiempo no es problema, porque los ordenadores actuales son muy rápidos y el tiempo transcurrido entre generaciones sucesivas puede ser muy pequeño. Es posible realizar experimentos que en la vida real están fuera de nuestro alcance.
¿Son extrapolables los resultados obtenidos en los experimentos de vida artificial a la evolución biológica? Puede dudarse. En el caso de Tierra, la evolución acaba por detenerse, o se limita a repetir situaciones anteriores, sin aumentos de complejidad. Pero cuando se observan fenómenos como los explicados en los párrafos anteriores, resulta difícil no pensar que quizá todo esto signifique algo...
Otro día os contaré mis experimentos con colonias de hormigas virtuales.

Hilo Vida Sintética y Vida ArtificialAnterior Siguiente
Manuel Alfonseca

3 comentarios:

  1. Ya sabía yo de tus experimentos en este área, pero nunca habías descrito en qué consisten con esta claridad. Gracias, muchas gracias.
    Y no puedo explicar si todo esto significa algo, pero me trae a la mente algo que leí recientemente sobre la creación, obra de Dios, pero que no ha acabado, que continua y nosotros somos co-creadores, quizá sin darnos cuenta plenamente., al estilo de los organismos artificiales de Thomas Ray o de los que tú programabas en APL.

    ResponderEliminar
  2. En la vida real se han encontrado virus parasitando otros virus.

    ResponderEliminar
  3. Oscar Carceles escribió:
    "Me encantaría hacer mi propio experimento de esto"

    ResponderEliminar