En la década de 1950, un visionario llamado Nils Aall Barricelli comenzó a explorar un territorio aún inexplorado: la vida artificial. Barricelli, un matemático y astrofísico italo-noruego, fue uno de los primeros en utilizar computadoras para simular procesos evolutivos. Su trabajo sentó las bases para el campo de la vida artificial y la evolución digital, inspirando a generaciones de científicos y programadores. Hoy, rindo homenaje a este pionero con mi propio proyecto de simulación de vida orgánica.
Motivación
Desde que leí sobre Barricelli (en el libro Maniac, de Benjamín Labatut), he estado profundamente fascinado por su capacidad para prever un futuro donde la vida y la evolución no se limitaban a los seres biológicos. Algunos lo tildaban de «científico loco», ya que estaba obsesionado con demostrar que la base de las matemáticas lleva de forma intrínseca algo más que simples números y que era posible «crear» vida dentro de una computadora de la época.
Aunque desde hace tiempo me fascina esta idea (la primera vez que conocí este «pensamiento» fue cuando estudié en la universidad «El juego de la vida» de Conway, creado en 1970, al que también rendí un tributo creándolo y dejándolo accesible en https://lifegame.theblackboxlab.com/), en este caso, la idea de crear un entorno digital donde organismos virtuales pueden interactuar, reproducirse y evolucionar me parece fascinante.
A mi parecer, Conway creó (usando principios matemáticos básicos y teoría de autómatas celulares) una simulación que demostraba cómo reglas simples y deterministas pueden llevar a la formación de patrones complejos. Pero Barricelli tenía una visión diferente, orientada a la biología, a la evolución y al no determinismo (partiendo de bases deterministas). Su objetivo era simular procesos biológicos y evolutivos a nivel genético, para intentar entender los procesos evolutivos naturales.
Contexto Histórico
Nils Aall Barricelli llegó al Instituto de Estudios Avanzados de Princeton en 1953, donde comenzó a desarrollar modelos de organismos virtuales. Estos organismos podían reproducirse, mutar y competir por recursos en un entorno digital. Barricelli utilizó las primeras computadoras, como el IAS machine y el MANIAC de John von Neumann, para ejecutar sus simulaciones, que hoy consideraríamos primitivas pero que fueron revolucionarias en su época.
El MANIAC (Mathematical Analyzer, Numerical Integrator and Computer) fue una de las primeras computadoras construidas en los Estados Unidos y se basó en la arquitectura de von Neumann, que es la base de casi todas las computadoras modernas. Este tipo de arquitectura permitió a Barricelli implementar sus modelos de manera más eficiente y precisa.
La visión de Barricelli era crear un mundo digital en el que los organismos pudieran evolucionar de forma similar a como lo hacen en la naturaleza. Su trabajo no solo fue pionero en la vida artificial, sino que también influyó en la biología evolutiva y en el desarrollo de algoritmos genéticos. Barricelli demostró que las computadoras podían usarse para estudiar procesos evolutivos de manera que sería imposible en un laboratorio biológico tradicional.
Además de Barricelli, otros pioneros como Alan Turing y John von Neumann también exploraron la idea de la vida artificial y la automoción celular. Turing, en particular, estaba interesado en los patrones que surgen en los sistemas biológicos, mientras que von Neumann desarrolló la teoría de autómatas celulares, que describe cómo los sistemas complejos pueden surgir de reglas simples aplicadas a una red de células.
Estos primeros trabajos sentaron las bases para el campo moderno de la vida artificial, que continúa explorando cómo los sistemas vivos pueden ser modelados, simulados y comprendidos mediante el uso de computadoras. La simulación de vida artificial permite a los científicos y programadores investigar hipótesis sobre la evolución, la adaptación y la dinámica de poblaciones en un entorno controlado y replicable.
Descripción del proyecto
Disponible en https://github.com/ahontoria/SimuladorVidaOrganica
Organismos
En mi simulador, cada organismo tiene atributos iniciales como salud (100 unidades), edad (0 ciclos), energía (300 uds.) y tamaño (5 uds.). Nacen siendo consumidores y a la edad adulta (50 ciclos) pueden o no cambiar de rol:
- Consumidor: Buscan comida o recursos y se reproducen cuando tienen suficiente energía.
- Productor: Generan comida a partir de recursos.
- Transportador: Recogen y entregan recursos a los productores.
- Sanador: Curan organismos infectados.
Los organismos también pueden ser de género masculino o femenino, y pueden infectarse, lo que afecta su salud y energía.
Además, a la edad de 200 ciclos, entran en la etapa de «retiro», volviendo a ser consumidores hasta su muerte.
Movimiento y comportamiento
Los organismos se mueven de forma aleatoria pero con un patrón de búsqueda activa de objetivos según su rol:
- Consumidores: Buscan comida o recursos si tienen poca energía, o pareja si tienen suficiente energía.
- Productores: Buscan transportadores que les traigan recursos para convertirlos en comida.
- Transportadores: Buscan recursos si no llevan uno y buscan productores para entregar los recursos.
- Sanadores: Buscan organismos infectados para curar.
Reproducción y herencia genética
Los organismos se reproducen si tienen suficiente energía (al menos 150 uds.) y encuentran una pareja adecuada. Cada reproducción consume energía (75 uds.) y los hijos heredan roles y géneros de manera aleatoria, respetando ciertos límites de proporción:
- Productores: Hasta un 5% de la población total.
- Transportadores: Hasta un 2% de la población total.
- Sanadores: Hasta un 2% de la población total.
Además, los organismos heredan genes de sus padres, que afectan su velocidad, resistencia a enfermedades y capacidad de reproducción. Estos genes pueden mutar ligeramente, introduciendo variabilidad en la población y permitiendo observar procesos evolutivos a lo largo del tiempo.
Consumo de recursos y producción de comida
- Consumidores: Pueden convertir 1 recurso en 2 unidades de comida.
- Productores: Generan 50 unidades de comida a partir de 1 recurso.
Los productores generan comida a partir de los recursos que se encuentran o a partir de los recursos que les entregan los transportadores. Los consumidores convierten únicamente los recursos que se encuentran en su exploración.
Infección y curación
Los organismos pueden infectarse aleatoriamente, lo que reduce su salud y energía con el tiempo. Los sanadores y los mismos organismos pueden curarse con una probabilidad establecida, en función de sus capacidades.
Muerte y estadísticas
Los organismos mueren si su energía o salud llega a cero, o si superan su esperanza de vida máxima (300 ciclos). La simulación registra estadísticas detalladas sobre la población, incluyendo roles, géneros, infecciones, curaciones y esperanza de vida promedio.
Interacción del usuario
El usuario puede ajustar la velocidad de los ciclos de la simulación y añadir recursos aleatorios al campo de juego. Una gráfica en tiempo real muestra la evolución del total de organismos a lo largo del tiempo, proporcionando una visualización clara del progreso de la simulación.
Casos curiosos y observaciones
Durante las pruebas de la simulación, he observado varios comportamientos interesantes:
- Evolución de la resistencia: En algunas simulaciones, los organismos desarrollaron una mayor resistencia a las enfermedades debido a mutaciones beneficiosas en sus genes.
- Dinámica de población: Las poblaciones de transportadores y productores fluctúan significativamente dependiendo de la disponibilidad de recursos, lo que afecta la producción de comida y la supervivencia de los consumidores.
- Crisis de recursos: En ciertas simulaciones, la escasez de recursos llevó a una rápida disminución de la población, seguida de una lenta recuperación a medida que los productores comenzaron a generar más comida.
- Tendencia a formar grupos: Los organismos tienden a agruparse, creando pequeñas comunidades dentro del entorno simulado. Esta formación de grupos parece ser una estrategia de supervivencia, ya que los individuos pueden beneficiarse mutuamente al estar cerca unos de otros, especialmente en la búsqueda de recursos, protección contra infecciones y reproducción.
- Migraciones: De manera esporádica, los organismos se desplazan en grupo hacia nuevas áreas cuando los recursos en su ubicación actual se vuelven escasos. Estas migraciones en masa son fascinantes de observar y reflejan comportamientos que se ven en muchas especies animales en la naturaleza.
- Explosiones demográficas: En algunas simulaciones, se producen «baby booms» cuando las condiciones son óptimas, con abundancia de recursos y baja tasa de infecciones. Durante estos períodos, la población de organismos aumenta rápidamente, lo que puede llevar a una sobreexplotación de los recursos y posteriores crisis de población.
Estos comportamientos emergentes resaltan la complejidad y la belleza de los sistemas evolutivos, incluso en un entorno digital simplificado.
Conclusión
Este proyecto ha sido una emocionante exploración de los principios evolutivos y la dinámica de los sistemas vivos. Al rendir homenaje a Nils Aall Barricelli, espero inspirar a otros a explorar el fascinante campo de la vida artificial y continuar desarrollando herramientas educativas y de investigación.
Te recuerdo que el proyecto es de código abierto y está disponible en: https://github.com/ahontoria/SimuladorVidaOrganica