Evolution de bactéries
25 mars 2002
1Le problème
Les travaux de Darwin (Sur l'origine des espèces - 1859) ont posé les bases de la théorie de
l'évolution : les espèces se modifient en vertu d'un principe de "sélection naturelle". Selon ce principe,
les individus les plus aptes à survivre - autrement dit, les mieux adaptés à leur environnement - sont
aussi ceux qui ont le plus de chance de se reproduire et donc de transmettre à leurs descendants le
patrimoine naturel qui a favorisé leur survie; ainsi chaque nouvelle génération se trouve globalement
mieux adaptée. On peut voir ici un mécanisme d'adaptation des espèces à l'environnement (notons que
ce mécanisme permet logiquement de répondre à une modification de l'environnement).
Dans ce projet, on souhaite illustrer à partir d'un cas simple, l'évolution de colonies de
bactéries, ce processus général d'adaptation à l'environnement. Au départ chaque colonie comporte une
unique bactérie, dont le patrimoine génétique est fixé aléatoirement. Le patrimoine génétique d'une
bactérie détermine son comportement de déplacement (nos cyber-bactéries diffèrent des bactéries
réelles, qui elles ne peuvent pas se déplacer par elles-mêmes). A chaque déplacement la bactérie se
fatigue, mais peut en contrepartie accumuler de l'énergie si elle trouve de la nourriture. Si la bactérie
se fatigue trop, elle meurt. A partir d'un certain âge, et si elle n'est pas trop fatiguée, une bactérie se
reproduit par division cellulaire en deux : chaque bactérie fille a un nouveau code génétique, obtenu
par réplication du code génétique de la mère et mutation partielle de ce code génétique .
Ici la spécificité d'un environnement est donné par la répartition de la nourriture au sein de cet
environnement. Les deux mécanismes proposés (fatigue et mutation) induisent une pression sélective
qui doit normalement faire apparaître au bout de quelques générations des bactéries plus adaptées à
l'environnement proposé.
2Modélisation informatique
2.1L'environnement
L'environnement dans lequel évoluent les bactéries est représenté par un objet Environnement.
Il est constitué d'un tableau à deux dimensions. Il s'agit d'un univers torique : lorsqu'une bactérie
s'apprête à sortir d'un des bords du tableau, elle réapparaît sur le bord opposé (comme s'il s'agissait
d'une chambre à air). Pour chaque case du tableau, on dispose des informations suivantes :
- présence éventuelle de nourriture sur la case,
- présence éventuelle d'une bactérie sur la case.
L'environnement est donc représenté de fon discrète : quand une bactérie se déplace, elle passe d'une
case à l'autre sans étape intermédiaire.
Le temps est également représenté de manière discrète : périodiquement, on actualise l'état de ce
système, en intégrant l'évolution de chaque bactérie (déplacement, reproduction et mort selon l'âge et
la fatigue de chacune).
2.2La partition de la nourriture dans l'environnement
La répartition de la nourriture dans l'environnement suit une loi uniforme (chaque case a la même
probabilité de contenir de la nourriture). A intervalles réguliers, on procède à une redistribution de la
nourriture sur le territoire (la nourriture étant peu à peu absorbée au passage des bactéries, il est
nécessaire de réapprovisionner l'environnement régulièrement). La disposition de la nourriture peut
être atomique, ou en amas (groupes de cases adjacentes : rectangle, segment, ).
2.3 Les bactéries
Pour chaque bactérie, on connaît son âge (nombre de périodes écoulées depuis sa naissance),
son niveau de fatigue (ou d'énergie, selon le point de vue), et son comportement de déplacement. Au
cours d'une période, on actualise l'état de la bactérie (âge + fatigue). Ainsi, si de la nourriture se trouve
sur la case occupée en début de période par la bactérie, celle-ci l'absorbe et voit son niveau de fatigue
réduit en conséquence (la nourriture disparaît alors de cette case). En fonction du nouvel état atteint, la
bactérie meurt, se déplace ou encore se reproduit (la colonie à laquelle appartient la bactérie s'accroît
donc).
2.3.1 Déplacement
Au temps t, on connaît l'orientation courante
1
de la bactérie. Cette orientation correspond à la
direction prise par la bactérie lors de son dernier déplacement : lorsque du temps t-1 au temps t la
bactérie est passée de la case i à la case j on a mis à jour cette orientation (Cf. FIG.1 et 2).
7 0 1
6 2
5 4 3
FIG. 1 - les 8 directions possibles FIG. 2 - bactérie orientée dans la direction 3
A partir de là, le comportement de déplacement de la bactérie est donné par une distribution de
probabilités de changement de direction par rapport à son orientation courante O (Cf. FIG.3 et 4).
Cette distribution de probabilités correspond au code génétique de la bactérie.
directionO - 135°O - 90°O - 45°OO + 45°O + 90°O + 135°O + 180°
probabilité0 0 0 5/8 2/8 1/8 0 0
FIG. 3 - probabilités de changement de direction (cas d'une bactérie survireuse à droite)
0 0 5/8
0 2/8
0 0 1/8
FIG. 4 - probabilités d'atteindre une case voisine pour une bactérie orientée dans la direction 1
1
Lors de la création d'une bactérie on choisit aléatoirement son orientation initiale.
Quand une bactérie se déplace, elle ne peut occuper une case où se trouve une autre bactérie.
Autrement dit, parmi les cases adjacentes à celle occupée par la bactérie, on ne considérera que les
cases libres : la probabilité d'atteindre les cases occupées sera temporairement nulle (il faudra alors
prendre temporairement en compte la nouvelle distribution de probabilités de changement de direction
induite).
Remarque : une bactérie se trouvant "encerclée" par ses congénères (i.e. toutes les cases adjacentes à
la sienne sont occupées) ne peut ni se déplacer, ni se reproduire.
2.3.2 Reproduction
Lorsqu'une bactérie se reproduit, elle meurt et est remplacée par ses deux filles. Chacune des deux
filles a un code génétique correspondant à une réplication du code génétique de la mère, suivi d'une
mutation en partie aléatoire.
Cette mutation peut prendre différentes formes : par exemple, on peut choisir aléatoirement de
doubler, diviser par deux ou laisser telle quelle, la probabilité de changement de direction la plus
élevée chez la mère.
La première des deux filles restera pour l'étape en cours sur la case qu'occupait sa mère, tandis que sa
sœur occupera une des huit cases adjacentes (choisie aléatoirement parmi celles disponibles).
3Travail à réaliser
Sans une organisation stricte ce sujet peut devenir rapidement difficile à maîtriser. Il faut notamment
veiller à pouvoir modifier simplement tous les paramètres numériques importants du programme (par
exemple en les représentant comme des constantes de classe quand c'est possible).
3.1Première phase
On commencera par concevoir l'environnement et sa représentation graphique. Il faudra
pouvoir modifier aisément la taille de l'environnement, ainsi que la périodicité et le mode de
répartition de la nourriture dans l'environnement (atomique vs en amas). On prévoira dès cette
étape une représentation des bactéries dans l'environnement (aucune modélisation préalable
des bactéries n'est nécessaire pour cela). Il faut penser dès cette étape à offrir des méthodes
permettant une mise à jour simple de l'environnement (modification du contenu des cases et
actualisation de l'affichage).
3.2Deuxième phase
On passera ensuite à la modélisation des bactéries. Ici il faudra distinguer les paramètres
propres à toute l'espèce, de ceux propres à un individu. Les paramètres propres à l'espèce
(seuil de mortalité, seuil de reproduction, etc) doivent pouvoir être modifiés aisément pour
permettre un réglage adéquat. Il faudra distinguer le cas de la naissance d'une bactérie ouvrant
une nouvelle colonie, du cas de la naissance d'une bactérie par reproduction. On commencera
par mettre au point le comportement de déplacement (il faudra notamment utiliser les
informations présentes dans l'environnement sur la présence de nourriture ou de bactérie dans
telle ou telle case, et mettre à jour ces informations). On passera seulement ensuite au
comportement de reproduction des bactéries.
Les colonies seront créées en une seule fois au début du programme, et leur nombre sera
choisi par l'utilisateur.
3.3Extensions
Diverses extensions sont possibles pour ce projet mais ne sont à réaliser qu'après accord du
responsable de projet. Voici quatre exemples d'extensions possibles :
- introduction d'une perception de la présence de nourriture : au moment de se déplacer une cyber-
bactérie peut percevoir - pour une partie des cases adjacentes - si de la nourriture s'y trouve. Si c'est le
cas, cela modifie son comportement de déplacement, qui va être réorienté préférentiellement vers les
cases contenant de la nourriture.
- association d'une couleur à chaque colonie : les bactéries d'une colonie ont la même couleur.
- production de statistiques sur les caractéristiques de chaque colonie.
- introduction de plusieurs variétés de toxines réparties dans l'environnement de la même fon que la
nourriture : le code génétique d'une bactérie intègre alors un degré de résistance à chaque variété de
toxines. Quand une bactérie passe sur une case contenant de la toxine, sa fatigue s'accroît d'autant plus
qu'elle est peu résistante à la variété de toxine concernée. Les mutations génétiques touchent alors
également la résistance aux diverses variétés de toxines.
Vous pouvez bien sûr proposer au responsable de projet vos propres idées d'extensions.
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !