Comment des interactions simples entre des entités extrêmement simples peuvent-elles engendrer des comportements complexes, jusqu'à des mécanismes auto-reproducteurs ?
Les automates cellulaires sont des modèles abstraits simulant le fonctionnement des ordinateurs. Par là, ils sont à rapprocher des machines de Turing. Si cet aspect est important, ce n'est pas celui sur lequel nous allons nous concentrer dans le cadre de ce cours. C'est sur leurs capacités de modéliser des systèmes complexes que nous allons nous focaliser. Ces derniers sont constitués d’un grand nombre d’entités en interaction qui évoluent au cours du temps. Le comportement des entités dépend à la fois de l'environnement et des autres entités qu’elles peuvent observer localement autour d’elles. On peut citer différents exemples comme le trafic routier, les nuées d’oiseaux, occupation de nids d’abeille, tissus cellulaires ...
À partir de règles simples les automates cellulaires permettent de générer des évolutions extrêmement riches.
Les automates cellulaires ont été proposé dans les années 1950 par John von Neumann suite à une suggestion de son ami le mathématicien Stanislaw Ulam. Alors qu'il s'interrogeait sur comment concevoir une machine capable de s'auto-reproduire, Ulam l'orienta vers une question moins vaste : quelle organisation logique est suffisante pour un automate pour être capable de s'autoreproduire ?
Von Neumann fait alors le choix de considérer le problème dans un espace mathématique simple, métaphore du monde réel. L'espace est une grille régulière composée de cellules qui ont un état choisi dans un ensemble fini d'états possibles. L'évolution se fait à chaque pas de temps en fonction de règles locales.
Cette vision initiera tout un développement encore très actif autour des automates cellulaires, c'est ce que nous allons exposer partiellement dans la suite.
Description
Les automates cellulaires sont des machines à états finis évoluant sur une grille infinie, le plus souvent, et de dimension n
. Les dimensions habituelles sont généralement 1 ou 2. La grille définit un espace discret et un voisinage pour chacune des cases de la grille. Cette grille peut être régulière ou non et les cases peuvent prendre différentes formes (rectangulaire, hexagonale ....).
On associe à chaque case de la grille une cellule, cette dernière va alors avoir un état, ce dernier est déterminé par l'état de la cellule considérée, le voisinage et une règle de transition. L'automate cellulaire évolue en fonction de ces modifications qui peuvent se faire de façon synchrone ou asynchrone. Dans ce qui suit nous considérerons uniquement le premier cas.
Soit
-
L
un réseau régulier (ses éléments sont des cellules) ; -
S
un ensemble fini d’états ; -
N
un ensemble fini d’indices de voisinage (de taillen
) tels que
\forall c \in N, \forall r \in L, r + c \in L
- Une fonction de transition :
f : S^n \rightarrow S
; - Un automate cellulaire est défini par le 4-tuple :
(L, S, N, f)
; - Une configuration
C_1 : L \rightarrow S
est une fonction qui associe un état à chaque cellule du réseau ; - Le rôle de la fonction de transition
f
est de changerC_i
enC_{i+1}
selon la relation :C_{i+1}(r) = f(\{C_i(j) | j \in N(r)\})
, avecN(r)
qui désigne l'ensemble des voisins de le celluler
.
Automates de dimension 1
Considérons un ruban infini des deux cotés, subdivisé en cellules. Chaque cellule pouvant prendre une valeur dans un ensemble fini. Par commodité de représentation on va transcrire ces valeurs en une couleur. Ainsi on va utiliser deux couleurs blanc et bleu :
Chaque cellule va alors changer de couleur en fonction de la couleur de ses voisines. L’évolution d'un automate cellulaire de dimension 1 est alors représenté par un diagramme espace-temps.
Si on défini on a la fonction de transition suivante : une cellule est coloriée en bleu au temps t+1
si au temps t
, parmi les deux cellules voisines immédiates, à sa gauche et à sa droite, il y a exactement une cellule bleue. L'état initial est constitué d’un ruban blanc avec une seule cellule bleue. On obtient le diagramme espace-temps suivant :
Cela n'est pas sans rappeler les triangles de Sierpiński !
En effet certains automates exhibent des diagrammes espaces-temps fractaux.
Classes d'automate
Wolfram [^1] s'est penché sur le cas des automates de dimension 1 à deux états, en considérant le voisinage immédiat. Pour une case donnée il reste donc à définir l'évolution. On peut rapidement se convaincre qu'il n'y a que 8 états à considérer :
Il n’y a donc que 2^8=256
règles possibles. On attribue à chaque règle la représentation en binaire de sa définition par des cases noires et blanches.La régle présentée ici est donc 11111110_2 = 254_{10}
.
Dans son atlas, Wolfram énumère et étudie les différentes règles.
On peut déjà constater sur les exemples proposés la diversité de comportement de nos automates cellulaires. Le 126 nous produit une structure fractale alors que le 254 nous offre une pyramide noire.
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
Automates de dimension 2
Le jeu de la vie
Conception
Automates auto-reproducteurs
[1]: S. Wolfram. (2002) A new kind of science. Champaign, IL: Wolfram Media