Projet Programmation L2 Les automates cellulaires 1 Introduction

publicité
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
Téléchargement