Quand des tortues
deviennent des
lucioles

Unité libre

D. Olivier



Damien.Olivier@gmail.com

La synchronisation revisitée

Phénomène physique

Les pendules de Huygens
À la fin de l'hiver 1665, Christiaan Huygens garda la chambre pendant quelques jours, car il était tombé malade. Sur un mur, il avait accroché côte à côte deux horloges à pendules et, pendant sa convalescence, il remarqua un fait étrange : le mouvement des pendules était synchrone, c'est-à-dire que l'un d'eux se balançait vers la gauche quand l'autre allait vers la droite. Quelles que soient leurs positions de départ, au bout d'une demi-heure, les pendules étaient à nouveau en opposition de phase. Huygens devina que cet effet, qu'il nomma sympathie, était dû à d'imperceptibles mouvements que les pendules transmettaient à leur support.


La synchronisation
des lucioles

Phénomène naturel

Comment les mâles s'allument pour les femelles




Imaginez un arbre haut de 10 à 12 mètres, au feuillage dense formé de petites feuilles ovales, portant chacune une luciole, toutes les lucioles émettant leurs lumière au rythme de trois éclairs toutes les deux secondes, dans un synchronisme parfait, l'obscurité étant totale entre les éclairs...
Imaginez, en bordure de rivière, une ligne ininterrompue d'arbres (de la mangrove), de 200 mètres de long, chaque arbre étant couvert de lucioles qui émettent leur lumière d'une manière synchrone d'un bout à l'autre de cette ligne.
C'est Noël !


La synchronisation

Un phénomène exceptionnel ?

Pas vraiment !

Quelques exemples :
  • Les phénomènes de résonance, bien connus des musiciens ;
  • Le monde naturel est plein d'oscillateurs couplés :
    • Les cellules excitables du cœur ;
    • Les cellules du pancréas qui sécrètent l'insuline ;
    • Les neurones du cerveau et de la moelle épinière ;
    • Ils peuvent appartenir à des organismes différents : les criquets, les lucioles, cycles menstruels ...
  • Mais aussi au niveau social :
    • Spectacle ;
    • Manifestation ;
    • ....


Syntonisation
Ce phénomène consiste en ce que la fréquence de l'oscillation « libre » du système est « entraînée » par la fréquence extérieure ; tout se passe comme si le système avait perdu son individualité et obéit maintenant à la force extérieure ; toutefois si l'écart entre les deux fréquences dépasse une certaine limite, la « fusion » des deux fréquences: propre (ou « autopériodique ») et forcée (ou « hétéropériodique ») disparaît et chacun de ces deux fréquences reprend son existence et l'on observe les battements de deux fréquences comme cela arrive dans le cas des systèmes linéaires.
(Minorski, 1967).

Quand les tortues deviennent des lucioles

Boutons et procédures

  1. Créer une procédure initialisation
    • On crée 100 tortues (les lucioles) ;
    • La position initiale est aléatoire et dépend de la taille du monde world-width et world_height, la forme est définie par butterfly
  2. Ajouter un bouton initialisation associé à la procédure initialisation ;
  3. Ajouter un bouton vole associé à une procédure vole qui déplace d'un pas dans une direction quelconque les lucioles.
  4. Ajouter un slider permettant de définir le nombre de luciole initial.

Quand les tortues deviennent des lucioles

Créons des tortues lucioles
qui clignotent

Principe

  • Chaque luciole à une horloge et se base dessus ;
  • Cette horloge est cyclique (10 p.e) ;
  • La valeur initiale est fixée aléatoirement ;
  • Les lucioles émettent un éclat lumineux au début de chaque cycle durant x pas de temps ;
  • Quand les lucioles perçoivent suffisamment d’autres éclats lumineux autour d’elles, elles réinitialisent leur horloge ;
  • Chaque luciole utilise le même ensemble de règles pour piloter sa propre horloge.

Quand les tortues deviennent des lucioles

Créons des tortues lucioles
qui clignotent

Comment ?

  • Une horloge interne variant de 0 à 9, qui déclenche le changement de couleur en fonction d'un seuil
    ifelse (horloge < seuil)
      [set color yellow][set color gray]
  • L'horloge est incrémentée à chaque pas de temps modulo (mod) 10
    set horloge (horloge + 1) mod 10
  • Les tortues choisissent une direction et se déplacent
    set heading heading + random-float 90 - random-float 90 
    fd 1
    
  1. Créer les variables nécessaires pour vos tortues ;
  2. Modifier votre procédure initialisation en conséquence ;
  3. Modifier également votre procédure vole de façon à avoir les changements de couleur.

Quand les tortues deviennent des lucioles

Et la synchronisation ?

  • Nos lucioles doivent compter leurs voisines allumées :
    • count turtles in-radius 1 with [color = yellow]
  • Si ce nombre est supérieur à une borne alors on fixe l'horloge de la tortue à une valeur donnée.
  • Cela fonctionne t-il toujours ?
  • Ajoutez de quoi paramétrer cette borne et cette valeur.
  • Tracez la courbe d'évolution du nombre de lucioles allumées.

Quand les tortues deviennent des lucioles

Pour aller plus loin

Paramétrage

  • DUREE-DU-CYCLE : spécifie la longueur de chaque cycle, autrement dit le maximum que peut atteindre l’horloge de chaque luciole avant d’être remise à zéro.
  • NOMBRE-D’ECLATS : spécifie le nombre d’éclats lumineux qu’une luciole doit percevoir pendant un cycle de simulation (tick) pour pouvoir réinitialiser son horloge en fonction de la stratégie spécifiée (voir après).
  • DUREE-DE-L’ECLAT : spécifie la durée, en cycles de simulation (tick) pendant laquelle la luciole émet de la lumière.

Quand les tortues deviennent des lucioles

Pour aller plus loin

Stratégies

  • RETARD de phase où, après avoir vu NOMBRE-D’ECLATS éclats de lumière, une luciole réinitialise son horloge à la valeur DUREE-DE-L’ECLAT (immédiatement après qu'un éclat se soit normalement produit). Ceci fait que la luciole se synchronise sur le prochain éclat de la luciole à laquelle elle se réfère.
  • AVANCE de phase où, après avoir vu NOMBRE-D’ECLATS éclats de lumière, une luciole réinitialise son horloge à zéro. Ce qui fait que cette luciole émet immédiatement son signal lumineux. Dans la stratégie avance de phase, les lucioles ne peuvent commencer à réinitialiser leurs horloges que pendant une fenêtre de temps qui commence deux cycles de simulation après qu'elles aient émis leur éclat lumineux. Pourquoi ?

Quand les tortues deviennent des lucioles

Pour aller plus loin

En utilisant les réglages suivants (NOMBRE: 1500, DUREE-DU-CYCLE: 10, DUREE-DE-L’ECLAT: 1, NOMBRE-D’ECLATS: 2, STRATEGIE: “RETARD”) :
  • Remarquez comment des agrégats locaux de lucioles synchronisées commencent à se former.
  • Voyez si vous arrivez à vous rendre compte où chaque agrégat est représenté sur le graphique.
  • En cours de simulation, essayez de déterminer quel agrégat local prendra finalement le dessus et donnera la mesure à toute la population.
  • Est-ce que cet agrégat est celui qui avait le plus haut pic sur le graphique ?

Quand les tortues deviennent des lucioles

Pour aller plus loin

Explorez le modèle ... en jouant sur les paramètres
  • Quels sont vos constats ?
Etendez le modèle
  • Comment accélérez la synchronisation ?
  • Autres stratégies ?
  • La synchronization est basée sur un mécanisme discret, imaginons que ce soit continu. Comment faire ?