Projet Programmation L2 Les automates cellulaires Année 2012-2013 1 Introduction Selon Wikipedia (http://fr.wikipedia.org/wiki/Automate cellulaire) “un automate cellulaire consiste en une grille régulière de cellules contenant chacune un état choisi parmi un ensemble fini et qui peut évoluer au cours du temps. L’état d’une cellule au temps t + 1 est fonction de l’état au temps t d’un nombre fini de cellules appelé son voisinage.” La grille régulière est généralement composée de cellules carrées, comme un échiquier, et elle peut être finie ou infinie. Le voisinage d’une cellule est généralement constitué des 8 cellules qui entourent la cellule en question. L’exemple le plus connu d’un automate cellulaire est le Jeu de la vie de John Conway. Dans le jeu de la vie, chaque cellule peut avoir deux états : morte ou vivante. Les règles pour l’évolution sont les suivantes. – si au temps t la cellule est vivante, alors au temps t + 1 – elle reste vivante si elle a exactement deux ou trois cellules vivantes dans son voisinage – elle meure de solitude ou de surpeuplement sinon – si au temps t la cellule est morte, alors au temps t + 1 – elle devient vivante si dans son voisinage il y a exactement trois cellules vivantes (ses trois ”parents”) – elle reste morte sinon Si la grille est finie, il faut également trouver des règles spéciales pour les cellules du bord. Une façon d’éviter cela est de considérer un grille finie sans bord, par exemple une grille torique ou une bouteille de Klein. Les figures ci dessous montrent trois générations successives dans une grille infinie du jeu de la vie. 1 2 Fonctionnalités requises Le but de ce projet est d’écrire un programme qui permette de réaliser l’activité d’un automate cellulaire. Il devra à une première instance permettre de réaliser le jeu de la vie : – choisir le type de la grille : infinie, finie avec bord, finie torique, et éventuellement finie en bouteille de Klein – choisir la configuration initiale – visualiser l’évolution des générations - dans le cas d’une grille infinie, il faudra en visualiser seulement une partie finie Le programme devra ensuite permettre la réalisation d’autres automates cellulaires : – des automates avec dès règles différentes de celles du jeu de la vie - idéalement l’utilisateur du programme devrait pouvoir entrer ses propres règles à l’aide d’un menu – des automates avec trois ou quatre états par cellule – des automates avec une notion différente de voisinage – des automates avec la grille composée de cellules hexagonales – d’autres extensions que vous pouvez inventer. 2