La Colonie de Langton

La Colonie de Langton est une application web conçue pour le Palais de la découverte, qui permet d'expérimenter avec diverses variantes de la fourmi de Langton.

L'application permet de simuler le comportement d'une fourmi virtuelle, d'observer les motifs qu'elle trace, de modifier ses instructions et les couleurs associées, et d'ajouter ou supprimer d'autres fourmis au fil de la simulation. Enfin, elle offre un ensemble de scénarios pré-conçus illustrant des comportements remarquables.

Brève description de l'application

L'application se compose d'un ensemble de contrôles placés autour d'un cadre central, qui dépeint le terrain sur lequel évoluent les fourmis virtuelles : on peut y faire défiler le terrain par glisser-déplacer et zoomer avec la molette de la souris. Les autres éléments de l'interface peuvent être survolés avec le pointeur pour afficher une courte description de leur utilité.

La barre de contrôle en haut de l'écran permet de contrôler l'avancée de la simulation (manuelle ou automatique), de choisir une situation initiale toute faite (programme et placement des fourmis), et d'afficher des fonctionnalités plus avancées dans les panneaux latéraux.

Les volets latéraux peuvent être affichés ou masqués depuis la barre de contrôle. Le volet de gauche ("Voir le programme") permet de modifier le comportement des fourmis ainsi que les couleurs correspondantes. Le volet de droite ("Multiples fourmis") permet d'ajouter ou supprimer des fourmis supplémentaires, et de surveiller leurs déplacements.

Détail de l'interface

Capture d'écran de l'interface.

Vue du terrain (Centre)

Le cadre central dépeint le terrain où évoluent les fourmis virtuelles ; initialement, toutes les cases non visitées ont la couleur associée à l'instruction #0. La taille d'une case à l'écran varie en fonction du niveau de zoom ; aux niveaux inférieurs, chaque pixel représente une région de plusieurs cases.

Le zoom peut être ajusté directement grâce à la molette de la souris ; lors d'un zoom avant, la région affichée se centre sur la position actuelle du pointeur. Il est également possible de faire défiler le terrain par glisser-déplacer (en déplaçant le pointeur tout en maintenant le clic enfoncé).

Les fourmis virtuelles présentes sur le terrain sont représentées chacune par un triangle, dont l'orientation correspond à celle de la fourmi.

Barre de contrôle (Haut)

La barre du haut contrôle le déroulement de la simulation, et donne accès à des options supplémentaires. Normalement de haut en bas puis de gauche à droite, elle se compose des éléments suivants :

Volet instructions (Gauche)

Le volet Instructions à gauche de l'écran permet de modifier le programme que suivent les fourmis virtuelles ainsi que sa représentation à l'écran. Les changements de couleurs sont immédiatement visibles à l'écran, mais les modifications du programme restent en attente d'une confirmation grâce au bouton Reprogrammer (désactivé tant qu'aucune modification n'est en attente).

Le champ Nombre d'instructions ajuste la longueur du programme, sa valeur étant fixée entre 1 et 32. Les instructions sont affichées dans l'ordre, de haut en bas. La flèche à droite de chaque instruction détermine comment s'oriente la fourmi lorsqu'elle arrive sur une case portant cette instruction ; selon le cas : continuer tout droit, tourner à gauche de 90°, faire demi-tour, ou tourner à droite de 90°. Cliquer sur la flèche permet de modifier le comportement associé en passant en revue les quatre possibilités.

Les couleurs à gauche de chaque instruction sont une simple convention visuelle, librement modifiables pour des raisons esthétiques ou d'accessibilité. Cliquer sur une couleur ouvre une boîte de dialogue modale permettant de modifier la couleur associée à cette instruction. Remarque : comme les couleurs sélectionnées ne sont qu'une représentation de l'instruction associée à chaque case, les fourmis appliqueront toujours les instructions dans le même ordre, même si les couleurs choisies ne permettent pas de distinguer certaines des instructions.

Volet colonie (Droite)

Le volet Colonie à droite de l'écran permet de surveiller et gérer l'ensemble des fourmis virtuelles présentes sur le terrain, et d'en ajouter de nouvelles.

Les champs du cadre Placement permettent de déterminer la position, l'orientation et la couleur de la fourmi à ajouter. Sa position peut être saisie et modifée manuellement, ou bien déterminée automatiquement en cliquant sur la vue du terrain : les coordonnées sont automatiquement remplacées par celles de la case cliquée. Le bouton d'orientation cycle automatiquement entre haut, gauche, bas et droite. La couleur de la fourmi est, pour sa part, déterminée dans une boîte de dialogue modale, identique à celle permettant de choisir les couleurs des instructions.

Le bouton Ajouter fourmi permet de confirmer les valeurs du cadre Placement en ajoutant effectivement sur le terrain une fourmi avec les propriétés choisies, qui agira dès le prochain pas de la simulation.

Le reste du volet est formé d'un ensemble de cadres correspondant aux fourmis présentes sur le terrain. Chaque cadre affiche en haut les coordonnées de la fourmi (horizontal, vertical), et offre un bouton Centrer vue qui permet déplacer la vue du terrain pour placer la fourmi au centre du cadre, ainsi qu'un bouton Supprimer qui supprime immédiatement la fourmi de la simulation. Attention : la suppression est définitive, et ne nécessite pas de confirmation supplémentaire.

Palette de couleurs (Modal)

Capture d'écran du dialogue de sélection des couleurs.

La palette permet de modifier la couleur associée à une instruction ou celle de la fourmi à placer. L'ensemble des sélecteurs est automatiquement mis à jour à chaque modification. L'interface se divise en six parties, de gauche à droite et de haut en bas :

Explications sur la simulation

L'application simule le comportement d'un ensemble de fourmis virtuelles, similaires à celles décrites originellement par Christopher Langton. Chaque pas de la simulation est calculé de la manière décrite ci-dessous.

Pour chaque fourmi virtuelle présente dans la simulation :

  1. déterminer l'instruction inscrite sur la case qu'occupe la fourmi,
  2. effectuer la rotation associée à cette instruction (quart de tour gauche/droite, demi-tour, ou aucune),
  3. inscrire sur la case l'instruction suivante dans le programme (si la case portait la dernière instruction, on revient à la première),
  4. faire avancer la fourmi d'une case dans sa direction actuelle.

L'ordre dans lequel les fourmis avancent n'est pas spécifié, mais il est toujours le même en pratique (ce qui peut avoir une importance lorsque deux fourmis occupent la même case).

Le terrain sur lesquelles évoluent les fourmis n'a pas de bord, sa taille n'est donc limitée qu'en pratique (par les capacités de l'ordinateur qui exécute le programme).

Pour ne pas compliquer excessivement l'interface, toutes les fourmis virtuelles de la simulation exécutent le même programme à un instant donné, mais ce programme peut être modifié durant la simulation par l'utilisateur ; de même, des fourmis peuvent être ajoutées ou supprimées à tout instant par l'utilisateur.

Sauf intervention de l'utilisateur, la simulation est entièrement déterministe : les mêmes conditions initiales produiront toujours le même résultat après un nombre d'étapes donné.

Liste des scénarios

Voici la liste des scénarios disponibles dans le menu déroulant, ainsi qu'une explication de leur intérêt pour chacun. La notation entre parenthèses décrit le programme que suivent les fourmis dans ce scénario : G désigne une instruction qui fait tourner la fourmi à gauche, D à droite, et A pour avancer. Voici les scénarios disponibles :