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 Artificial: Anterior Siguiente
Manuel Alfonseca
Ya sabía yo de tus experimentos en este área, pero nunca habías descrito en qué consisten con esta claridad. Gracias, muchas gracias.
ResponderEliminarY 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.
En la vida real se han encontrado virus parasitando otros virus.
ResponderEliminarOscar Carceles escribió:
ResponderEliminar"Me encantaría hacer mi propio experimento de esto"