28/3/11

El latir de las luciérnagas

Retomamos la vertiente puramente científica, con este tema el cual podría ser la continuación de "el arte del hormigueo" en cuanto a soluciones para redes, inspiradas en la biología. En esa ocasión, hablamos de cómo los oportunos investigadores en protocolos de redes se fijaron en el comportamiento social de las hormigas, para idear una manera de descubrir el camino más indicado para ir de A a B en redes móviles.

Las características de esta manera de actuar eran básicamente que se llegaba a una solución en términos globales sólo teniendo información local. La solución también se antoja tolerante a fallos, flexible. En ningún caso da la sensación que la solución sea cerrada, si no que es esta adaptabilidad, aleatoriedad o propiedad estocástica inherente la que le da ese toque especial y que tanto atrae, en un mundo que parece que las soluciones tienen que ser deterministas, únicas, concretas.

El tema que os traigo hoy también tiene que ver con insectos. Cuando investigaba sobre Quorum Sensing, acordamos con mi advisor que intentaríamos aplicar sus propiedades para sincronizar nodos de una red convencional de una manera decentralizada, y que quizás fuera acertado buscar si eso se había hecho ya. O al menos si había una solución también inspirada en la biología que se pareciese.

Y la hubo. Tiene que ver con las luciérnagas: cómo hace un grupo de luciérnagas para que todas emitan luz a la vez? Obviamente, no hay un director de orquesta que se dedique a coordinar todo el tinglado. Así pues, la naturaleza nos ofrece una manera de sincronizar la acción de varios individuos separados en el tiempo, sin que haya ningún agente que controle globalmente la situación.


Obviamente, esto me pareció bastante relevante para mis intereses, así que decidí buscar más sobre el tema. ¿Cómo consiguen coordinarse las luciérnagas? ¿Cómo se aplica esto a las redes? Seguid leyendo, seguid...

La gracia de Quorum Sensing, el tema de las hormigas u otras soluciones similares es que se consigue pasar a un estado global concreto y deseado a partir de información local en cada uno de los individuos. Local porque el alcance de cada uno de ellos es limitado, obviamente.

En concreto, las luciérnagas por una parte emiten pulsos de luz a una frecuencia determinada (tantas repeticiones por segundo), y por otra son capaces de ver o detectar esos pulsos de luz que ocurren en un rango determinado. Estas luciérnagas instintivamente analizan la intensidad de la luz que reciben de otros individuos, de manera que son capaces de saber si sus compañeras están más lejos o más cerca. Dependiendo de este dato, nuestra protagonista avanza más o menos el siguiente pulso de luz respecto el momento en el que tenía pensado emitirlo.


De esta manera, poco a poco, todas las luciérnagas van acercando los instantes en que emiten luz, según estén lejos o cerca, y todas con todas. Así, al cabo de un tiempo, y visto desde fuera, todas acaban emitiendo a la vez. Si lo piensas, dos luciérnagas bastante lejanas se sincronizan ya que ambas se ponen de acuerdo con sus vecinos, y esos vecinos con otros, y así sucesivamente hasta ponerse, sin saberlo, de acuerdo entre ellas.

Cuentan que esta manera de sincronizarse no es exclusiva de las luciérnagas y que esto pasa en otros sitios. De hecho, y en relación al título, he leído que las células que forman el tejido de los músculos del corazón utilizan un sistema parecido. Lo que pasa, es que los músculos del corazón, en vez de emitir luz, se contraen con cierta frecuencia. Sí, es una manera técnica y poco sutil de decir que este método podría ser una clave del latido rítmico de nuestro corazón.

No creo que sea necesario poner mucho énfasis en el hecho de que se ha imitado este efecto para que redes móviles puedan sincronizar sus nodos de una forma nada centralizada. Simplemente, puedes hacer que los nodos tengan una variable interna que va de 0 a 1, emitiendo un pulso al llegar a 1 y devolviendo la variable a 0. Esta variable se llena a un ritmo fijo, de manera que si no hay factores externos, un nodo emitirá a una frecuencia y momentos determinado.

Pequeño kit de luciérnagas eléctrónicas.

Si no se hace nada, tendrás un montón de nodos enviando pulsos de manera bastante cacofónica. Pero si haces que, al recibir un pulso, la variable interna de un nodo reciba un "extra", harás que esta variable llegue a 1 más pronto. Es como cuando las luciérnagas avanzan sus emisiones de luz. Al final, conseguirás que todos los nodos emitan un pulso a la vez, por lo tanto estarás seguro que todos los nodos están sincronizados.

(a) Carga normal de 0 a 1 (sin recibir luz) y 
(b) carga con salto debido a recepción de pulso externo.

Hacedme caso, conseguir sincronizar cosas es algo muy valioso. Quizás me dedique otro día a enumerar casos en que nos iría bien estar sincronizados. Por ahora dejad que os muestre un vídeo donde todo se pone en funcionamiento: fijaros como en un principio van todos a su ritmo, hasta que, cerca del final todos emiten a la vez. Fascinante.


Fuente


Sergi

3 comentarios:

  1. Y cómo haces para recibir el nodo extra cuando esas "luciérnagas" reciben el pulso?? pregunto sense tenir ni idea eh!!! no sé si mhe explicat bé amb la pregunta.

    ResponderEliminar
  2. No sé si ho he entès, però t'explico...
    Cada una de esas "luciérnagas" tiene un sensor de intensidad lumínica. Si le llega luz de una luciérnaga cercana, automáticamente la variable que va de 0 a 1 da un pequeño salto acercándose a 1. Así emitirá el siguiente pulso de luz más pronto, cada vez más próximo al momento en que la otra luciérnaga emite.

    ResponderEliminar
  3. es sensacional, creo que en base a la información que socialisate ahora ya soy fiel admiradora de la luciernagas sobre todo por su caracter de labor colectiva (iluminar ante la cercaia de sus compañeras). son hermosas además. excelente ttrabajo felicidades!!!

    Lupita :)

    ResponderEliminar