Ce week end j’ai joué avec les arbres browniens (brownian trees).
Ce sont des agglomérats de cellules qui ressemblent vaguement à des arbres,
obtenus à partir d’un mouvement brownien. Et le mouvement brownien, c’est cool.
C’est Robert Brown, un
botaniste, qui le décrit en 1827 en observant des petites particules qui
semblaient bouger toutes seules. Il voit ses particules avoir la tremblote, mais
sans pouvoir expliquer pourquoi.
C’est d’autant plus cool qu’en 1905, en donnant l’explication du mouvement
brownien, Albert Enstein va fournir la preuve de l’existence des atomes.
Le mouvement brownien c’est simplement les atomes qui cognent dans tout les
sens sur des particules.
L’algorithme pour créer un arbre brownien est enfantin:
Positionner au hasard une première cellule gelée qui sert de graine.
Positionner au hasard une cellule libre.
Mouvoir au hasard la cellule libre, c’est le mouvement brownien.
Quand la cellule libre rencontre une cellule gelée, elle gèle elle-même
et on recommence au point 2.
Mettre les cellules libres une par une, c.à.d attendre qu’une rencontre avec une
cellule gelée se produise avant de passer à la cellule libre suivante est trop
long. Avec un dispositif d’affichage assez grand on pourrait y passer plusieurs
jours.
Donc je met toutes les cellules libres dès le départ, ainsi il se passe très
vite beaucoup de choses.
J’ai écrit un programme en JRuby pour faire un arbre brownien basique. Le code
n’est pas beau car il n’a pas été pensé pour durer plus que le temps d’un
week-end. Malgré tout, je pense qu’il est compréhensible et qu’il peut servir
de base pour des idées plus sophistiquées.
On se retrouve bientôt pour que je vous parle des quelques variations que j’ai
essayé autour du thème des arbres browniens.