7.3 Sincronización. La habilidad para sincronizar comportamientos es una propiedad común de muchos sistemas autoorganizados en la naturaleza. Algunos ejemplos son las luciérnagas, que en algunas especies son capaces de sincronizar sus destellos. O los grillos, que en algunas especies son capaces de sincronizar sus chirridos. Las cigarras, un tipo de insecto, tiene un desarrollo sincronizado y emergente de su estado larval en ciertos periodos que son números primos de años. Las neuronas en el cerebro son capaces de sincronizar sus descargas. Las células del corazón sincronizan sus latidos. Todos estos comportamientos parecen tener algún significado adaptativo y han sido alcanzados a través de la selección natural. En esta subunidad vamos a mirar a un ejemplo: el ejemplo de las luciérnagas destellando. Si has tenido suerte habrás visto alguna vez este fenómeno de luciérnagas destellando en sincronía. Voy a enseñarte este pequeño vídeo Los puntos de luz azules son luciérnagas individuales. Y puedes ver que muy rápidamente muchas de ellas comienzan a destellar al unísono. Y este destello sincrónico es incluso más fuerte a medida que más luciérnagas son reclutadas para destellar al unísono. Parece ser alrededor de un destello por segundo. Es muy muy sorprendente. Al igual que en nuestra discusión de la formación de bandadas o bancos podemos preguntarnos "por qué" se sincronizan este tipo de sistemas. Al menos en el caso de las luciérnagas parece haber una explicación en términos de apareamiento. De nuevo hay muchas hipótesis: Una hipótesis es que el destello sincronizado hace la localización de los machos más llamativa para las hembras, así que las hembras pueden venir y encontrar a los machos. También hace que pequeños grupos de machos parezcan más grandes y quizá esto signifique que son más atractivos para las hembras. Se reduce el ruído. Esto es: los machos pueden detectar a las hembras más fácilmente en la oscuridad entre destellos, lo que es mejor que tener que encontrarlas en el medio de los destellos cuando todo es caótico. Estas son todas hipótesis. Quizá todas ellas sean correctas. Quizá sólo algunas de ellas. Nadie lo sabe seguro todavía. Pero esto parece ser un rasgo adaptativo. Después está la pregunta de cómo sincronizarse. La hipótesis es que no hay ningún líder orquestando la sincronización. Cada luciérnaga individual sólo ve los destellos de sus vecinas. Y lo que ha sido descubierto es que cada liciérnaga es un "oscilador" natural por si misma, esto es: tiene una frecuencia de destello natural de alrededor de un segundo. Esto ocurre por cierta actividad neuronal: la excitación se va a cumulando en sus neuronas hasta que alcanzan un umbral y un destello se desencadena. Así que hay un periodo de tiempo natural para esto. De cualquier manera, si una luciérnaga ve a su vecina destellar entones o bien resetea su ciclo (esto es: su excitación se pone a cero), o acelera su ciclo. Quizá dependiendo de la especie. Pero el resultado que la gente se ha encontrado cuando semejante grupo de osciladores interacciona es una sincronía del tipo que acabamos de observar. Y esto se denomina: sincronía de osciladores acoplados. De forma similar al ejemplo de la formación de bandadas aquí tenemos un mecanismo muy sencillo que produce sincronización descentralizada y podemos modelarla muy fácilmente utilizando NetLogo. Echemos un vistazo al modelo. Vamos a coger el modelo de luciérnagas de NetLogo que está en la sección de biología de la librería de modelos. Y lo que sucede en ese modelo, lo veremos en un segundo, tendremos un número de luciérnagas cada una de ellas será un oscilador natural, tiene su propio reloj que tras un número de ticks va a destellar. Digamos que el tamaño del ciclo es 10. Cada vez que el reloj marca cero la luciérnaga destella. Y luego, tras destellar, cuenta hasta nueve y entonces marca cero de nuevo y destella. Cada vez que llega al máximo resetea el reloj a cero y después detella. Todas las luciérnagas del modelo tiene un cilo con el mismo periodo pero cada una de ellas al hacer SETUP empieza en un punto arbitrario del ciclo. No van a comenzar en cero sino que van a comenzar en algún punto arbitrario. Echemos un vistazo a esto. Abrimos NetLogo y vamos a la librería de modelos. Vamos a biología. Vamos a luciérnagas (fireflies). Y lo abrimos. Para ilustrar como funciona comencemos con una sola luciérnaga. Lo que debemos mirar ahora es cuántas luciérnagas tenemos y el período de su cliclo que está fijado en 10 ticks. Así que le damos a SETUP, aquí está nuestra luciérnaga, justo aquí, este pequeño triángulo gris. Y hagamos... ralenticemos un poquillo y démosle a GO. Lo que vas a ver es a la luciérnaga moviéndose por ahí. Puedes ver que el mundo se cierra sobre si mismo en los bordes. Y cada 10 ticks, la luciérnaga destella. No hay nadie más para que interactúe así que sólo va a ir dando vueltas, destellando en el mismo ciclo. OK, lo paramos. Ahora comencemos con dos luciérnagas. Hay una por aquí que no puedes ver demasiado bien y esta otra fíjate en que han comenzado en diferentes puntos de su ciclo. Esta por casualidad ha comenzado justo en el momento del destello del ciclo. Esta comenzó en un punto diferente. Ahora le doy a GO. Puedes verlas destellando pero a diferentes tiempos. Y de forma similar si comienzo con digamos... 45 Vas a ver diferentes luciérnagas destellando en diferentes momentos. OK echemos un vistazo a cómo interaccionan. Cuando una luciérnaga percibe a otra, a una o más luciérnagas destellando cerca de ella y miran en un radio de una casilla, así que siempre pueden ver una casilla a su alrededor, van a utilizar esta información para resetear sus propios relojes. Así es como esto funciona: Cada luciérnaga tiene un parámetro llamado FLASH-LENGTH (duración del destello) que es durante cuántos ticks destella. En la versión que hemos estado mirando hace un segundo es un tick por destello. Podemos pensar en ello como un tick por ahora, o podemos cambiarlo luego. También tienen un parámetro llamado FLASHES-TO-RESET (destellos para resetear) que nos da el número de otras luciérnagas que necesitan ver destellando para que cambien su propio reloj. Tienen que mirar una casilla a su alrededor y contar en cada intervalo de tiempo cuentan el número de otras luciérnagas que ven destellando. Y pueden utilizar una de dos reglas. La primera se llama retraso de fase (PHASE-DELAY). Así es como funciona: Si soy una luciérnaga, si he visto suficientes destellos en mi radio de visión (esto quiere decir: si vamos hacia atrás FLASES-TO-RESET nos da este número), cuántos destellos tengo que ver en mi radio de visión para cambiar mi reloj? Si veo suficientes voy a resetear mi reloj a FLASH-LENGH, y FLASH-LENGTH es un tick. Voy a resetear mi reloj a 1. Todo el mundo destella en 0 en su reloj. Cuando mi reloj es 0 destello. Así que si reseteo mi reloj a 1 eso quiere decir que he ido hacia atrás de algún modo desde donde yo estaba. De vuelta a donde justo habría destellado. Lo que esto hace es sincronizarme con los destellos que justo acabo de ver. Porque todas las demás luciérnagas que justo acabo de ver destellar justo acaban de destellar, así que sus relojes estarán a 1 o 2 si FLASH-LENGTH es 2, ect. Así que esto me sincroniza con las otras luciérnagas que he visto en mi vecindad. Esto es llamado un "retraso" porque verdaderamente hace retroceder mi reloj para estar en sincronía con las que acabo de ver. Hay otra posible regla llamada avance de fase (PHASE ADVANCE) que es que si veo suficientes destellos en mi radio visual entonces pongo mi reloj a 0. Es decir: avanzo mi reloj y destello inmediatamente. Podemos experimentar con estas dos reglas. Pero echémosle un vistazo a qué pinta tiene el comportamiento. Fijáte en que la estrategia aquí está fijada como DELAY. Los FLASHES-TO-RESET (esto es: el número de destellos que necesito ver en mi vecindad para que yo resetee mi reloj) es 1, así que sólo necesito ver un destello. El periodo de destello es un tick, el periodo del ciclo es 10 ticks. OK, SHOW-DARK-FIREFLIES nos muestra las luciérnagas grises, las que no están destellando. Si apago esto, esas luciérnagas desparecen. No voy a hacer eso por ahora. Voy a poner un número... digamos... ehhhmmm... ssssiete, alrededor de siete, un poco por encima de setecientas. OK, SETUP. Ahora hay muchas luciérnagas. Y GO, y acelerémoslo un pouquiño. En esta gráfica podéis ver en cada paso de tiempo cuántas de ellas están destellando. Esto es lo que nos da. Están todas interaccionando las unas con las otras. Y se comienza a ver este número creciendo aquí. Esto significa que más y más están entrando en sincronía. Está creciendo rápidamente. Ralentizemos la simulación un poco. La aleatoriedad viene del hecho de que se están moviendo por ahí al azar, así que interaccionan de forma aleatoria. Están definitivamente entrando en una sincronía mayor y mayor con sus destellos. Quizá puedas verlo mejor si ralentizo esto un poco así ahora puedes ver un destello realmente sincronizado. Así que esta estrategia de retraso (de fase) parece funcionar. OK, parémoslo. Ahora has podido ver que hay unas reglas relativamente simples que cada luciérnaga sigue. Cada luciérnaga sólo interacciona con sus vecinas más próximas, a una casilla de distancia, y aún así podemos poner a todo el grupo en casi perfecta sincronía. Si siguieramos un rato más sería mejor, llegaríamos a una sincronía perfecta. Sin que ninguna de las luciérnagas individuales tuviera ningún conocimiento global sobre lo que está pasando. Hagamos un pequeño quiz en el que jugarás con este modelo por ti mism@.