• Publicidad

Reto: Simulación: Sopa biológica

Aprende Perl

Reto: Simulación: Sopa biológica

Notapor explorer » 2010-01-23 22:28 @977

Sopa primordial (o biológica)

Resumen: dado un cultivo de seres unicelulares, sometido a un medio agresivo, pero previsible, observar las distintas formas de adaptación de su código genético para reaccionar a los cambios del medio. Se utilizarán técnicas de simulación y algoritmos genéticos para obtener la mejor solución en el menor tiempo posible.

Descripción
Existe una especie de seres unicelulares sobre los que se observa un interesante proceso de adaptación al medio. Nos servirá para estudiar teorías de evolución en función de algunos parámetros en los ensayos.

Las características biológicas de la especie (que llamaremos "globitus") son las siguientes:
  • Como ya se ha dicho, son seres unicelulares, con una secuencia de ADN de 50 bases
  • Disponen de sistemas clásicos de adquisición de comida, secreción, reproducción y protección contra las agresiones del medio
  • Son muy sensibles a la luz ultravioleta
  • Al mismo tiempo, son dependientes de la luz visible para poder sobrevivir
  • El sistema de reproducción es sexual, entre dos seres
La más mínima exposición a una fuente pura de luz ultravioleta puede provocar su muerte. Para evitarlo, estos seres disponen, en su envoltura, de una zona opaca. Solo tienen que girar sobre sí mismos para quedar a salvo. Una vez pasado el peligro, vuelven a girar para seguir captando luz solar.

Están dotados de una secuencia de ADN que determina su comportamiento. En concreto, indica si el individuo debe girar o no para protegerse. Si la base es un '0', indica que debe colocarse de tal modo que reciba la luz normal, mientras que si es un '1', indica que debe girar y mostrar la parte opaca del caparazón, para protegerse.

Su supervivencia depende entonces de estos factores:
  • Deben adaptarse a la presencia o ausencia de fuentes de rayos ultravioleta
  • Deben permanecer el mayor tiempo posible de cara a la luz ambiental, para obtener la máxima cantidad de energía
  • Los individuos con mayor energía -que son además, los más adaptados al medio-, son los primeros candidatos a reproducirse

El sistema de reproducción, sexual, consiste en la combinación de las dos secuencias de ADN de los dos individuos, generando a su vez dos nuevos individuos. En detalle:
  1. Se toman las dos secuencias de ADN de los dos individuos. Por cada una de ellas se generará un nuevo ser "hijo"
  2. Se determinan un número de intercambios, entre 1 y 3 (configurable)
  3. Por cada intercambio, se determina, un rango de bases, comprendido entre la primera y la última base de la secuencia. Por ejemplo: si la secuencia consta de 50 bases, un posible rango sería entre la base 20ª y la 45ª
  4. El proceso de intercambio consiste en tomar el rango de bases seleccionado antes, de la primera secuencia de bases (del padre), e intercambiarlo con el mismo rango de bases igual, pero de la segunda secuencia (de la madre), en las mismas posiciones
  5. De resultas de todo esto, obtenemos dos secuencias de bases que se forman por copias de partes del ADN de los padres.

Toda esta actividad está regulada por la cantidad de energía que los seres sean capaces de acumular. De forma simplificada:
  • Los seres obtienen 5 puntos de energía por cada cuanto de tiempo que permanece de cara al sol
  • Obtienen 1 punto de energía si en ese cuanto de tiempo reciben radiación ultravioleta y al mismo tiempo permanecen ocultos detrás de su coraza
  • Pierden 1 punto si reciben luz ambiental mientras están ocultos
  • Si reciben un flujo de luz ultravioleta mientras están desprotegidos, pierden 10 puntos de energía por cada cuanto de tiempo
  • Solo pueden reproducirse aquellos individuos que cuenten con más de 100 puntos de energía. El proceso se realiza siempre que el individuo alcance ese valor
  • El proceso de reproducción consume 20 puntos de energía a cada progenitor, y los dos descendientes obtienen 15 puntos de energía cada uno
  • Si un individuo llega a cero o menos puntos de energía, muere.

Ensayo
Disponemos de un recipiente donde colocaremos una población inicial de globitus. El recipiente dispone de un hábitat acuoso donde los individuos pueden moverse libremente y cuenta con los medios alimenticios necesarios para mantenerles con vida.

El recipiente está expuesto a la luz ambiental, por lo que todos los seres disponen de todos los medios necesarios para vivir y reproducirse. Podemos establecer que todos los individuos parten con 50 puntos de energía.

Justamente encima del recipiente colocamos una lámpara que emite rayos ultravioleta. Esta lámpara se enciende y apaga siguiendo una precisa secuencia. La longitud de la secuencia, se representa con '0' y '1', indicando '0' si debe estar apagada o '1' si debe estar encendida. La secuencia la podemos elegir nosotros, pero también de forma aleatoria. En cualquier caso, debemos garantizar que el número de instantes en que la lámpara está encendida debe ser menos del 50% del total.

Proceso
Vamos a simular la evolución de la población a lo largo del tiempo según los parámetros iniciales del experimento.

Las parámetros que tenemos son los siguientes (valores por defecto, entre paréntesis):
  • Número máximo de individuos en el recipiente (200.000)
  • Número inicial de individuos (100)
  • Longitud de la secuencia de encendidos y apagados de la lámpara (50)

Suponemos además
  • La composición de las secuencias de ADN será aleatoria
  • No existe la noche, por lo que no hay límite de tiempo en la simulación en cuanto disposición de energía solar
  • El éxito de la población se mide como el momento en que el número de individuos iguala o supera al número máximo de individuos que el recipiente es capaz de alojar
  • De forma muy extraordinaria, supondremos que ocurre una mutación genética, de forma aleatoria, de media una vez cada 100 cuantos de tiempo, consistente en la inversión de una base de la secuencia de ADN de un individuo elegido al azar
  • La forma de elegir a los seres para su reproducción será aleatoria, entre los que obtengan suficiente energía. Si el número de seres que pueden reproducirse es impar, alguno de ellos no se reproducirá (se quedará soltero hasta la próxima vuelta de la simulación)

El proceso normal, por cada cuanto de tiempo, será:
  • Determinar si la lámpara debe encenderse o no
  • Por cada individuo, comprobar si la base de su secuencia de ADN ha predicho o no la situación de encendido de la lámpara. Según su valor, aumentar o reducir su nivel de energía
  • Aquellos individuos sin energía, son eliminados
  • Aquellos individuos con suficiente energía, se reproducen
  • Si el número de individuos supera los límites inferior o superior, se termina la simulación

La salida de la información se puede realizar de muchas maneras y se deja a la elección del programador.

Preguntas
  • Dadas las condiciones iniciales marcadas por defecto, es poco probable que una población de 100 individuos sobreviva a la influencia de los rayos ultravioleta, pues no les dará tiempo a comenzar a reproducirse y evolucionar antes de quedarse sin energía. Con el resto de condiciones iniciales por defecto, ¿cuál sería la población mínima de individuos que deberíamos colocar en el recipiente para garantizar su éxito?
  • ¿Es realmente significativa la influencia de las mutaciones extraordinarias? Si en vez de ser cada 100 cuantos de tiempo, ¿con qué valores serían beneficiosas -en el sentido de obtener una población más exitosa de forma más rápida- o perjudiciales -la población se mantiene igual o incluso llega a desaparecer-?
  • ¿Qué pasaría si la secuencia de ADN no fuera de la misma longitud que la secuencia de la lámpara ultravioleta? ¿Y si los seres, en el momento de la reproducción, cambiasen la longitud de las secuencias? En estos casos, sería necesario llevar un contador de cuanto de tiempo distinto para los individuos y para la lámpara. O incluso por cada individuo.
  • Supongamos que el medio cambia cuando la población llega a la mitad del máximo posible. Si hacemos un cambio en la secuencia de la lámpara, consistente en cambiar un encendido por un apagado -o viceversa-, ¿cómo de rápido se adapta la población? ¿Qué pasaría si se produjeran más cambios en la secuencia de encendidos: con cuántos cambios simultáneos la población no podría sobrevivir?
  • Otro enfoque de la simulación sería hacerlo desde el punto de vista de cada individuo, eliminando la magnitud tiempo:
    • Por cada individuo, aplicarle la secuencia de encendidos y apagados de la lámpara e ir actualizando su nivel de energía
    • Iniciar el proceso de reproducción, mutación o muerte en la población según el nivel de energía de cada individuo
    ¿Los resultados serían muy diferentes de los obtenidos de la primera manera?
  • Si el esquema de reproducción cambiase, es posible que se obtuviera una población más estable de forma más rápida. Es decir, en lugar de que un individuo elija a una pareja de forma aleatoria, ¿qué pasaría si los individuos se emparejasen por tener un nivel de energía similar? Es algo parecido a tener niveles o clases sociales. ¿Y si en vez de 100 fuese otro valor? ¿Se puede buscar un valor ideal según las condiciones iniciales?
  • Abstinencia/Riqueza. Si un individuo llegase a almacenar suficiente energía como para reproducirse, pero no lo hiciera, y solo se dedicase a almacenarla, ¿con qué porcentaje de individuos la población no prosperaría?
  • Altruismo. De la misma forma, si un individuo acumula mucha energía como para reproducirse, pero en lugar de hacerlo, reparte los 20 puntos de energía entre los 5 individuos más desfavorecidos, ¿en qué afecta al desarrollo de la colonia?

Ampliación
Existen variaciones muy interesantes a este problema. Uno clásico es aquel en que las bases de ADN codifican un autómata de estados, no solo si la lámpara estará encendida o apagada, sino además, detectar secuencias o patrones de repetición de los encendidos, con lo que los individuos pueden dotarse de secuencias de ADN más cortas.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Volver a Formación

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron