Les fourmis de Langton, Un monde plus complexe


I°) Et si le monde était plus complexe … ?

Dans la partie n°1, nous avons vu que que le monde dans lequel évolue la fourmi de Langton est composé de deux états (blanc et rouge dans ma vidéo).
Il est tout à fait possible d’implémenter de nouvelles règles, c’est à dire de nouveaux états où la fourmi devra choisir entre sa gauche et sa droite.

Pour cela, il faut changer deux choses par rapport au code précédemment établit : le nombre d’état, et les couleurs correspondant à chaque état. Commençons par un monde possédant 3 états : « 0 », « 1 » et « 2 ».

Dans la méthode draw() :

void draw() {
  background(255);
  displayGridAndColor();

  for (int i = 0; i < nbrCycle; i++) {
    int state = grid[x][y];
    if (state == 0) {
      turnRight();
      grid[x][y] = 1;
    } else if (state == 1) {
      turnLeft();
      grid[x][y] = 2;
    } else if (state == 2) {
      turnLeft();
      grid[x][y] = 0;
    }
    moveForward();
  }
}

Et dans la méthode displayGridAndColor() :

void displayGridAndColor() {
  stroke(0);
  strokeWeight(1);
  beginShape(QUAD);
  for (int i =0; i < w; i++) {
    for (int j =0; j < h; j++) {
      if (grid[i][j] == 0) {
        fill(255);
      }
      if (grid[i][j] == 1) { // RED
        fill(255, 0, 0);
      }
      if (grid[i][j] == 2) { // GREEN
        fill(0, 255, 0);
      }

      vertex(i*rows, j*cols);
      vertex(i*rows, (j+1)*cols);
      vertex((i+1)*rows, (j+1)*cols);
      vertex((i+1)*rows, j*cols);
    }
  }
  endShape();
}


Nous venons d’indiquer à la fourmi qu’elle doit suivre les règles suivantes :
– Tourner à droite si l’état de la cellule est « 0 », case blanche.
– Tourner à gauche si l’état de la cellule est « 1 », case rouge.
– Tourner à gauche si l’état de la cellule est « 2 », case verte.


II°) Cas 3 états : Droite – Gauche – Gauche (DGG)

Nous obtenons le résultat suivant après quelques itérations :

Fourmi de Langton – 3 états – DGG

Étonnamment, ces règles montre une structure compacte qui tend à s’étendre.


III°) Cas 3 états : Droite – Gauche – Droite (DGD)

Nous obtenons le résultat suivant après quelques itérations :

Fourmi de Langton – 3 états – DGD

Ici, le résultat est chaotique.


IV°) Cas 7 états : (GDGDGDG)

Nous obtenons le résultat suivant après quelques itérations :

Fourmi de Langton – 7 états – GDGDGDG

V°) Cas 30 états :
GDGDGDGDGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG

Fourmi de Langton – 30 états – Monde torique

Dans ce cas là, il y a une converge très rapide (< 100 d’itérations) vers un mode ordonné avec un pattern final de type « voie d’autoroute ». La figure ci-dessus est possible puisque le monde de la fourmi n’est pas plat, il est torique. La gauche est reliée à la droite, de même pour le haut et le bas. Si celui-ci était plat, nous aurions obtenu :


Fourmi de Langton – 30 états – Monde Plat

Laisser un commentaire

Concevoir un site comme celui-ci avec WordPress.com
Commencer
search previous next tag category expand menu location phone mail time cart zoom edit close