Description du travail :
Un automate cellulaire de dimension 2 est une description, mathématiquement précise,
d'un univers de dimension 2, dont les lois d'évolution au cours du temps sont
déterministes et locales.
L'espace est vu comme un assemblage de cellules carrés; chaque cellule ne peut se
trouver que dans un nombre fini d'états; l'état d'une cellule à l'instant t+1 ne
dépend que de l'état de ses voisines à l'instant t.
Le projet consiste à écrire un programme Python,
qui permette de voir, sur un écran d'ordinateur,
l'évolution d'un monde défini par de telles lois (i.e. un "automate cellulaire").
Il faudra, dans un premier temps, concevoir des objets
informatiques capables de représenter:
- une grille bi-dimensionnelle avec un état dans chaque cellule
- une liste finie de règles de changement d'états
On développera des méthodes permettant d'afficher sur un écran:
- une grille donnée (avec ses états)
- l'évolution dans le temps de la grille
On testera ces fonctionnalités sur des automates cellulaires connus comme le
jeu de la vie et ses variantes.
On développera des fonctions qui cherchent à construire, pour un automate cellulaire donné:
- des configurations stables
- des formes auto-reproduisantes
- ...
On pourra ensuite créer de nouveaux automates cellulaires
qui s'inspirent de modèles physiques simples (on traduit des comportements de particules par des regles de changements d'états) ou de modèles issus d'autres domaines (démographie, biologie, etc ...)