El simulador Tierra

La Vida Artificial apenas cuenta oficialmente con 10 años de existencia, y sin embargo ha conseguido desarrollar un espectacular conjunto de resultados, no sólo en el área de las simulaciones sino también en las realizaciones. La Vida Artificial se plantea una ambiciosa meta, producir de forma artificial la vida. Pero en lugar de vida tal y como la conocemos, los creadores de vida artificial trabajan con un concepto de vida mucho más amplio: la vida tal y como podría ser, en otros planetas, con otros materiales, e incluso, en el universo abstracto de las computadoras.

Publicado originalmente en la revista @rroba a finales de los años 90:

La Vida Artificial apenas cuenta oficialmente con 10 años de existencia, y sin embargo ha conseguido desarrollar un espectacular conjunto de resultados, no sólo en el área de las simulaciones sino también en las realizaciones. La Vida Artificial se plantea una ambiciosa meta, producir de forma artificial la vida. Pero en lugar de vida tal y como la conocemos, los creadores de vida artificial trabajan con un concepto de vida mucho más amplio: la vida tal y como podría ser, en otros planetas, con otros materiales, e incluso, en el universo abstracto de las computadoras.

Este último caso es el que más numerosos (y entusiastas) adeptos tiene en el campo de la Vida Artificial; se comprende, porque gracias a los nuevos avances en computación se ha logrado desarrollar toda una pléyade de “ambientes” y “criaturas” artificiales que forman “ecosistemas evolutivos”, también artificiales, todo ello dentro de los circuitos de las computadoras. Gracias a estas técnicas, los nuevos “biologos artificiales” consiguen acortar millones de veces el tiempo de los procesos evolutivos y así experimentar con sus criaturas simuladas. Todos estos trabajos están suscitando apasionantes discusiones e interrogantes sobre el concepto de vida. Intentemos ver a que es debido todo este interés.

Cada imagen representa una sopa de 60.000 bytes divididos en 60 segmentos de 1000 bytes cada uno.Cada criatura está representada por una barra coloreada, los colores represntan el tamaño del genoma (ej. rojo = 80 (ancestro), amarillo=45 , azul=79).Los huespedes (rojo) son muy comunes. Los parásitos (amarillo) han aparecido pero todavía son muy raros.

A menudo se confunde la Vida Artificial con materias totalmente distintas como la Inteligencia Artificial o se limita a modelos simplistas como el famoso juego de la vida de Conway. Sin embargo, existen dentro de este campo sistemas sumamente complejos e interesantes a los que incluso la biología tradicional tiene que aceptar con más o menos reservas que albergan seres realmente vivos, como puede ser C-Zoo (utiliza un lenguaje similar a C pero con capacidades evolutivas), Venus o TIERRA. Nos centraremos especialmente en este último por ser fácil en su compresión así como extremadamente interesante.

 

Ahora los huespedes son raros porque los parásitos se han vuelto muy comunes. Los huespedes inmunes (azul) han aparecido pero todavía son pocos.

EL PROGRAMA TIERRA

Muchos han sido los cientificos que han propuesto desde hace décadas que la base de la vida no tiene necesariamente porque ser el carbono, muchos otros elementos de la tabla periódica pueden cumplir (y de hecho lo hacen) los requisitos para sustentar la base de una forma de vida, se ha especulado mucho con ello, generalmente dentro del campo de la ciencia-ficción para poder crear formas de vida totalmente ajenas a nosotros y radicalmente distintas a lo que conocemos. Como ya hemos mencionado, existen estudios serios plagados de pruebas tangibles de que esto es completamente posible. Un buen ejemplo es el modelo creado por Thomas S. Ray, llamado simulador TIERRA. Su autor lo describe en los siguientes términos: “Este trabajo […] tiene lugar en un computador virtual llamado simulador TIERRA. La CPU de este computador contiene dos registros de direcciones, dos registros numéricos, un registro para indicar condiciones de error, un indicador de pila, una pila de diez palabras y un indicador de instrucciones. […] LA memoria, la CPU y el sistema operativo del computador se ven como elementos de un entorno “abiótico”. La criatura consiste en un programa autorreplicativo en lenguaje ensamblador.”

Imagen izquierda: Los huespedes inmunes aumentan su frecuencia separando a los parásitos en la parte alta de la memoria.

Dicho simulador usa una porción de memoria de un ordenador personal para almacenar programas escritos en un ensamblador un tanto especial. TIERRA es realmente un ordenador virtual con sus propias reglas que en lugar de seguir las normas comunes al mundo de la computación, pretende simular un entorno basado en normas similares a nuestro propio mundo exterior con varias diferencias, dictadas evidentemente por el medio en el que se desarrolla. Básicamente la teoria de la evolución de las especies se basa en algo tan aleatorio como los cambios producidos mediantes mutaciones en nuestro ADN, debidas a agentes externos como pueden ser los rayos cósmicos o agentes internos como errores de copia que se producen al combinar el ADN del padre y la madre de un mamífero, por poner un ejemplo claro. Si estas mutaciones resultan favorables para la especie, serán aceptadas por la selección natural y en caso contrario serán irremisiblemente eliminadas, un método sencillo y limpio fácilmente implementable en TIERRA mediante la simulación de dichos sucesos, basándose en cambios aleatorios en el código de los programas que VIVEN en TIERRA. Pero el problema principal radica en que los lenguajes de programación existentes no están ni con mucho diseñados para soportar nada ni remotamente parecido, lo cual hizo que Tom Ray tuviese que diseñar un nuevo lenguaje ensamblador para su CPU virtual suscepcible de soportar las caracteristicas de un ser vivo en cuanto a evolución a través del tiempo.

Los huespedes inmunes ahora dominan la memoria, mientras que los parásitos y los huespedes parasitables tienden a desaparecer. Los parásitos pronto serán conducidos a la extinción.

Los opcodes de un lenguaje ensamblador suelen llevar operandos numéricos, lo cual hace que el conjunto completo de instrucciones posibles se extienda tanto que al introducir un cambio aleatorio en alguno de los bits de dichas instrucciones se produzca casi con total seguridad la inutilización del programa al que pertenece. La solución de Tom Ray nuevamente se basa en la observación de los mecanismos que gobiernan la naturaleza, nuestro propio ADN capaz de dar forma a millones y millones de formas de vida totalmente distintas se compone únicamente de 4 bases combinadas entre sí hasta la saciedad.

El programa ancestro consiste de tres genes (objetos verdes sólidos). La CPU (esfera verde) está ejecutando el código del primer gen que causa que el programa se mida a si mismo en la memoria, con el fin de poder copiarse correctamente a otro lugar.

Igualmente, para conseguir que una mutación en un programa del simulador mantuviese la instrucción mutada dentro de un rango operacional, Ray diseño un lenguaje ensamblador sin operandos numéricos amén de eliminar todo tipo de direccionamiento numérico tanto directo como indirecto de la memoria de TIERRA e introdujo el llamado direccionamiento por membrana basado, aunque parezca mentira, en el funcionamiento de las membranas celulares lo cual permite por añadidura a los programas de TIERRA saber donde empiezan y donde acaban, lo que hizo que el conjunto completo de instrucciones se redujese a 32 solamente.

LOS RESULTADOS

Los resultados más significativos aparecidos dentro de TIERRA se deben en mayor medida al mecanismo de secuencias de reconocimiento que permiten simular las membranas celulares citadas anteriormente.

Imagen izquierda: Un parásito (objeto azul de dos piezas) usa su CPU (esfera azul) para ejecutar el código en el tercer gen de un organismo huesped vecino (verde) para reproducirse a si mismo produciendo un parásito hijo (objeto wireframe de dos piezas).

Una instrucción se ejecuta sobre la zona de memoria que ocupa otra instrucción de otro programa sólo si el segundo contiene una secuencia complementaria de reconocimento que el primer programa contenga. Para ello TIERRA cuenta con dos instrucciones NOP (NO oPeration) común en cualquier lenguaje ensamblador y usada con el fin de rellenar ya que no realiza ningún tipo de operación mas que consumir tiempo del procesador. En TIERRA dichas instrucciones son NOP_0 y NOP_1 y aunque al igual que los ensambladores normales no realizan ninguna operación real, resultan de máxima utilidad ya que mediante combinaciones de estas operaciones se delimita el principio y el fin de un programa que se utilizará por el programa para identificarse a si mismo además de servir para que otros programas con secuencias de NOPs distintas no puedan penetrar dentro del espacio ocupado por el primero. Por ejemplo, se podría poner una “membrana” a un programa, del tipo “NOP_0 NOP_0 NOP_1 y que dicho programa sabría identificar ya que dentro de su propio código llevaría las instrucciones exactas para que mediante la secuencia complementaria “NOP_1 NOP_1 NOP_0” pudiese seleccionar donde empieza y donde acaba su propio código con el fin de copiarse a otra zona de memoria distinta (reproducirse). Cabe mencionar que Ray no contaba con obtener los resultados que obtuvo al poner en funcionamiento a TIERRA una vez implementado.

Un hiperparásito (objeto rojo de tres piezas) roba CPU de un parásito (esfera azul). Usando la CPU robada y su propia CPU (esfera roja) es capaz de producir dos objetos hijo simultaneamente (objetos wireframe de la izquiera y la derecha).

Simplemente se limitó a diseñar un programa que sólamente se copiaba a si mismo una y otra vez dentro de la memoria reservada para TIERRA, a este programa le llamó ancestro y cuenta con un genoma (número de instrucciones) de 80. Al dejar al ancestro ejecutarse una y otra vez, las mutaciones producidas aleatoriamente en dicho programa hicieron aparecer un programa de genoma 45 en el cual debido a dichas mutaciones, transformó una instrucción normal en un NOP lo que hizo que el ancestro comprobase mal donde acababa su propio código y se vio desprovisto del fragmento de código para replicarse a si mismo, al no poder copiarse lo lógico hubiese sido una extinción de dicho organismo 45, pero no fue así ya que si bien no tenía capacidad real para reproducirse, tenia la capacidad para engañar a un ancestro (80) normal para que en lugar de producir copias de si mismo, lo hiciese del organismo 45, perpetuandose éste dentro de TIERRA. Así nació el primer parásito del simulador, lo cual sorprendió gratamente a Ray ya que aunque era su objetivo comprobar si el sistema era capaz de crear diversidad, no contaba con que ello resultase tan fácil.

El entorno digital. Programas autorreplicantes (objetos geométricos coloreados) ocupan la memoria RAM del ordenador (fondo naranja). Las mutaciones (rayos) causan cambios aleatorios del código. La segadora o muerte (calavera) elimina los programas viejos o defectuosos.

También aparecieron hiperparásitos que utilizan las estructuras que les parasitan para su propia reproducción, doble engaño. La diversidad creó también programas complementarios (simbiontes) que necesitan uno del otro para reproducirse y sobrevivir así como programas asesinos que identifican a sus victimas a través del patrón de dicha membrana de NOPs para eliminarlos de la memoria de TIERRA (nuevos resultados de la utilización de este conjunto de modelos aparecen casi de día en día).

CODIGOS DE TIERRA

Tanto el codigo fuente de TIERRA como los ejecutables para sistemas operativos UNIX, Macintosh, Amiga, MSDOS y Windows junto con una extensa documentación sobre TIERRA, además de diversas utilidades para interactuar con el simulador se encuentran en el sitio web de Thomas S. Ray situada AQUI.


Referencias: Ray, T. S. 1991. An approach to the synthesis of life. In : Langton, C., C. Taylor, J. D. Farmer, & S. Rasmussen [eds], Artificial Life II, Santa Fe Institute Studies in the Sciences of Complexity, vol. XI, 371-408. Redwood City, CA: Addison-Wesley.

Este último caso es el que más numerosos (y entusiastas) adeptos tiene en el campo de la Vida Artificial; se comprende, porque gracias a los nuevos avances en computación se ha logrado desarrollar toda una pléyade de “ambientes” y “criaturas” artificiales que forman “ecosistemas evolutivos”, también artificiales, todo ello dentro de los circuitos de las computadoras. Gracias a estas técnicas, los nuevos “biologos artificiales” consiguen acortar millones de veces el tiempo de los procesos evolutivos y así experimentar con sus criaturas simuladas. Todos estos trabajos están suscitando apasionantes discusiones e interrogantes sobre el concepto de vida. Intentemos ver a que es debido todo este interés.

Cada imagen representa una sopa de 60.000 bytes divididos en 60 segmentos de 1000 bytes cada uno.Cada criatura está representada por una barra coloreada, los colores represntan el tamaño del genoma (ej. rojo = 80 (ancestro), amarillo=45 , azul=79).Los huespedes (rojo) son muy comunes. Los parásitos (amarillo) han aparecido pero todavía son muy raros.

A menudo se confunde la Vida Artificial con materias totalmente distintas como la Inteligencia Artificial o se limita a modelos simplistas como el famoso juego de la vida de Conway. Sin embargo, existen dentro de este campo sistemas sumamente complejos e interesantes a los que incluso la biología tradicional tiene que aceptar con más o menos reservas que albergan seres realmente vivos, como puede ser C-Zoo (utiliza un lenguaje similar a C pero con capacidades evolutivas), Venus o TIERRA. Nos centraremos especialmente en este último por ser fácil en su compresión así como extremadamente interesante.

 

Ahora los huespedes son raros porque los parásitos se han vuelto muy comunes. Los huespedes inmunes (azul) han aparecido pero todavía son pocos.

 

EL PROGRAMA TIERRA

Muchos han sido los cientificos que han propuesto desde hace décadas que la base de la vida no tiene necesariamente porque ser el carbono, muchos otros elementos de la tabla periódica pueden cumplir (y de hecho lo hacen) los requisitos para sustentar la base de una forma de vida, se ha especulado mucho con ello, generalmente dentro del campo de la ciencia-ficción para poder crear formas de vida totalmente ajenas a nosotros y radicalmente distintas a lo que conocemos. Como ya hemos mencionado, existen estudios serios plagados de pruebas tangibles de que esto es completamente posible. Un buen ejemplo es el modelo creado por Thomas S. Ray, llamado simulador TIERRA. Su autor lo describe en los siguientes términos: “Este trabajo […] tiene lugar en un computador virtual llamado simulador TIERRA. La CPU de este computador contiene dos registros de direcciones, dos registros numéricos, un registro para indicar condiciones de error, un indicador de pila, una pila de diez palabras y un indicador de instrucciones. […] LA memoria, la CPU y el sistema operativo del computador se ven como elementos de un entorno “abiótico”. La criatura consiste en un programa autorreplicativo en lenguaje ensamblador.”

Imagen izquierda: Los huespedes inmunes aumentan su frecuencia separando a los parásitos en la parte alta de la memoria.

Dicho simulador usa una porción de memoria de un ordenador personal para almacenar programas escritos en un ensamblador un tanto especial. TIERRA es realmente un ordenador virtual con sus propias reglas que en lugar de seguir las normas comunes al mundo de la computación, pretende simular un entorno basado en normas similares a nuestro propio mundo exterior con varias diferencias, dictadas evidentemente por el medio en el que se desarrolla. Básicamente la teoria de la evolución de las especies se basa en algo tan aleatorio como los cambios producidos mediantes mutaciones en nuestro ADN, debidas a agentes externos como pueden ser los rayos cósmicos o agentes internos como errores de copia que se producen al combinar el ADN del padre y la madre de un mamífero, por poner un ejemplo claro. Si estas mutaciones resultan favorables para la especie, serán aceptadas por la selección natural y en caso contrario serán irremisiblemente eliminadas, un método sencillo y limpio fácilmente implementable en TIERRA mediante la simulación de dichos sucesos, basándose en cambios aleatorios en el código de los programas que VIVEN en TIERRA. Pero el problema principal radica en que los lenguajes de programación existentes no están ni con mucho diseñados para soportar nada ni remotamente parecido, lo cual hizo que Tom Ray tuviese que diseñar un nuevo lenguaje ensamblador para su CPU virtual suscepcible de soportar las caracteristicas de un ser vivo en cuanto a evolución a través del tiempo.

Los huespedes inmunes ahora dominan la memoria, mientras que los parásitos y los huespedes parasitables tienden a desaparecer. Los parásitos pronto serán conducidos a la extinción.

Los opcodes de un lenguaje ensamblador suelen llevar operandos numéricos, lo cual hace que el conjunto completo de instrucciones posibles se extienda tanto que al introducir un cambio aleatorio en alguno de los bits de dichas instrucciones se produzca casi con total seguridad la inutilización del programa al que pertenece. La solución de Tom Ray nuevamente se basa en la observación de los mecanismos que gobiernan la naturaleza, nuestro propio ADN capaz de dar forma a millones y millones de formas de vida totalmente distintas se compone únicamente de 4 bases combinadas entre sí hasta la saciedad.

El programa ancestro consiste de tres genes (objetos verdes sólidos). La CPU (esfera verde) está ejecutando el código del primer gen que causa que el programa se mida a si mismo en la memoria, con el fin de poder copiarse correctamente a otro lugar.

Igualmente, para conseguir que una mutación en un programa del simulador mantuviese la instrucción mutada dentro de un rango operacional, Ray diseño un lenguaje ensamblador sin operandos numéricos amén de eliminar todo tipo de direccionamiento numérico tanto directo como indirecto de la memoria de TIERRA e introdujo el llamado direccionamiento por membrana basado, aunque parezca mentira, en el funcionamiento de las membranas celulares lo cual permite por añadidura a los programas de TIERRA saber donde empiezan y donde acaban, lo que hizo que el conjunto completo de instrucciones se redujese a 32 solamente.

LOS RESULTADOS

Los resultados más significativos aparecidos dentro de TIERRA se deben en mayor medida al mecanismo de secuencias de reconocimiento que permiten simular las membranas celulares citadas anteriormente.

Imagen izquierda: Un parásito (objeto azul de dos piezas) usa su CPU (esfera azul) para ejecutar el código en el tercer gen de un organismo huesped vecino (verde) para reproducirse a si mismo produciendo un parásito hijo (objeto wireframe de dos piezas).

Una instrucción se ejecuta sobre la zona de memoria que ocupa otra instrucción de otro programa sólo si el segundo contiene una secuencia complementaria de reconocimento que el primer programa contenga. Para ello TIERRA cuenta con dos instrucciones NOP (NO oPeration) común en cualquier lenguaje ensamblador y usada con el fin de rellenar ya que no realiza ningún tipo de operación mas que consumir tiempo del procesador. En TIERRA dichas instrucciones son NOP_0 y NOP_1 y aunque al igual que los ensambladores normales no realizan ninguna operación real, resultan de máxima utilidad ya que mediante combinaciones de estas operaciones se delimita el principio y el fin de un programa que se utilizará por el programa para identificarse a si mismo además de servir para que otros programas con secuencias de NOPs distintas no puedan penetrar dentro del espacio ocupado por el primero. Por ejemplo, se podría poner una “membrana” a un programa, del tipo “NOP_0 NOP_0 NOP_1 y que dicho programa sabría identificar ya que dentro de su propio código llevaría las instrucciones exactas para que mediante la secuencia complementaria “NOP_1 NOP_1 NOP_0” pudiese seleccionar donde empieza y donde acaba su propio código con el fin de copiarse a otra zona de memoria distinta (reproducirse). Cabe mencionar que Ray no contaba con obtener los resultados que obtuvo al poner en funcionamiento a TIERRA una vez implementado.

Un hiperparásito (objeto rojo de tres piezas) roba CPU de un parásito (esfera azul). Usando la CPU robada y su propia CPU (esfera roja) es capaz de producir dos objetos hijo simultaneamente (objetos wireframe de la izquiera y la derecha).

Simplemente se limitó a diseñar un programa que sólamente se copiaba a si mismo una y otra vez dentro de la memoria reservada para TIERRA, a este programa le llamó ancestro y cuenta con un genoma (número de instrucciones) de 80. Al dejar al ancestro ejecutarse una y otra vez, las mutaciones producidas aleatoriamente en dicho programa hicieron aparecer un programa de genoma 45 en el cual debido a dichas mutaciones, transformó una instrucción normal en un NOP lo que hizo que el ancestro comprobase mal donde acababa su propio código y se vio desprovisto del fragmento de código para replicarse a si mismo, al no poder copiarse lo lógico hubiese sido una extinción de dicho organismo 45, pero no fue así ya que si bien no tenía capacidad real para reproducirse, tenia la capacidad para engañar a un ancestro (80) normal para que en lugar de producir copias de si mismo, lo hiciese del organismo 45, perpetuandose éste dentro de TIERRA. Así nació el primer parásito del simulador, lo cual sorprendió gratamente a Ray ya que aunque era su objetivo comprobar si el sistema era capaz de crear diversidad, no contaba con que ello resultase tan fácil.

El entorno digital. Programas autorreplicantes (objetos geométricos coloreados) ocupan la memoria RAM del ordenador (fondo naranja). Las mutaciones (rayos) causan cambios aleatorios del código. La segadora o muerte (calavera) elimina los programas viejos o defectuosos.

También aparecieron hiperparásitos que utilizan las estructuras que les parasitan para su propia reproducción, doble engaño. La diversidad creó también programas complementarios (simbiontes) que necesitan uno del otro para reproducirse y sobrevivir así como programas asesinos que identifican a sus victimas a través del patrón de dicha membrana de NOPs para eliminarlos de la memoria de TIERRA (nuevos resultados de la utilización de este conjunto de modelos aparecen casi de día en día).

CODIGOS DE TIERRA

Tanto el codigo fuente de TIERRA como los ejecutables para sistemas operativos UNIX, Macintosh, Amiga, MSDOS y Windows junto con una extensa documentación sobre TIERRA, además de diversas utilidades para interactuar con el simulador se encuentran en el sitio web de Thomas S. Ray situada AQUI.

 

Referencias: Ray, T. S. 1991. An approach to the synthesis of life. In : Langton, C., C. Taylor, J. D. Farmer, & S. Rasmussen [eds], Artificial Life II, Santa Fe Institute Studies in the Sciences of Complexity, vol. XI, 371-408. Redwood City, CA: Addison-Wesley.

Publicado originalmente en la revista @rroba a finales de los años 90. Autor: Jorge Bouza

2 comentarios

Trackbacks y pingbacks

  1. […] de la revista @rroba. Año 1999 [Artículo sobre vida artificial] Tweet URL corta para esta entrada: http://bit.ly/rqahP1Código QR para esta entrada […]

  2. […] publicado en una revista hace varios años que trata sobre el simulador Tierra de Thomas S. Ray . AQUI se puede consultar dicha […]

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *