Clement Hege : Étude par expérimentation numérique de la diversité et de la survie de formes de vie artificielles dans un environnement stratifié par sédimentation différentielle

De Ensiwiki
Aller à : navigation, rechercher

Introduction

Ce projet a été réalisé dans le cadre du projet d’introduction à la recherche en laboratoire IRL au laboratoire TIMC-IMAG encadré par Nicolas Glade et Sergiu Ivanov.

L’objectif à long terme de ce travail est d’étudier l’influence de la stratification sur la biodiversité et la survie des espèces à travers des expérimentations numériques. Les travaux dans ce domaine sont assez limités ; on citera cependant quelques études en milieu marin s’y référant (Mason 2010, Smith 2003, Janson 2007). Ce type d’étude a également déjà été proposé au laboratoire TIMC-IMAG à travers la simulation d’un écosystème artificiel de créatures généré par un automate cellulaire (Glade 2017).

Ici nous avons pour objectif de créer un écosystème artificiel pour, à terme, étudier l’effet sur la biodiversité et la survie des espèces, de cette stratification du milieu. Il contiendra un grand nombre de créatures dotées d’un génome simple permettant une classification efficace. Chaque créature possèdera un génotype différent qui lui permettra de se déplacer, de se nourrir et d’évoluer dans un environnement fermé (conditions aux limites imperméables) et adiabatique (préservation de la masse et de l’énergie au cours du temps). L’implémentation d’une gravité et d’une agitation thermique ainsi que l’étude de leur influence a une place importante dans la spécificité de ce projet.

Modèle de développement de vies artificielles

Nous rappelons que l’objectif est de simuler un écosystème artificiel fait d’un très grand nombre de créatures de forme cubique, capables de se déplacer et de s’entredévorer dans un milieu où règne gravitation et agitation thermique.

Simulation de créatures générées aléatoirement

On fixe une échelle de grosseur du point dans la simulation selon sa masse et une coloration du vert au bleu pour une créature ayant de 0 à tailleMaxGenome gènes dans son génome.

Le développement du simulateur a été réalisé en C++ en utilisant un framework (une API) adapté à ce type de simulation et développé au laboratoire TIMC-IMAG.

La simulation se déroule dans une grille carrée contenant des curseurs. Il s’agit d’une classe de l’API, un registre de curseurs, optimisée pour les simulations multi-agent. Chaque curseur est défini par sa position en coordonnées réelles, projection en coordonnées entières et sa charge utile, le contenant du curseur, ici une créature. Dans ce framework (registre), tout ce qui a un lien avec les coordonnées de la créature est contrôlé par la classe registre. Un ensemble de classes annexes, les moteurs, toutes dérivées d’une classe générique de moteur capable d’agir sur un registre de curseurs, sont utilisées pour modifier, par l’intermédiaire du registre, les positions des curseurs. Les moteurs permettent d’appliquer des actions sur les créatures telles que la gravité, l’agitation thermique ou de multiples interactions inter-créatures.

Les Gènes

Chaque gène d'une créature définira l'un de ses organes sur 1 octet.

Les trois premiers bits coderont la position et les deux suivants le type de l'organe de la créature. Un organe peut être une nageoire, une bouche ou être un organe vide.

Les gènes pourront subir des mutations par une simple addition, soustraction d'un bit ou décalage de l'octet. A ces mutations nous rajouterons également la mutation par délétion qui supprime un gène du génome de la créature. Ces mutations auront lieu uniquement durant la division de la créature.

Les Créatures

Les créatures quant à elles seront définies avec une masse et une liste de gènes. On leur attribuera également un repère afin de gérer leur rotation.

Leurs nageoires leur permettront de se déplacer et leurs bouches de manger les autres créatures. A chaque itération, chaque organe à une probabilité fixée pour toutes les créatures de s'activer et d'appliquer son effet si possible. Sans processus de division, l'utilisation des bouches amènera l'apparition de créatures de masse considérable.

Évolution d’une simulation avec utilisation des bouches sans division de 500 créatures aléatoires

Ce phénomène ne sera plus présent avec les divisions des créatures. En effet, à partir d'une masse fixée, une créature pourra se diviser en deux créature de même masse. La première aura un génome identique et celui de l'originale et le deuxième subira éventuellement des mutations.

masque
Influence de la gravité sur le déplacement des créatures à l’itération 150 de 1000 super créatures

L'environnement sera dans un cube fermé dans lequel règnera une force de gravité ainsi qu'une agitation thermique

La Gravité

Tout d’abords, nous définissons une constante probaGravite. Cette constante doit être considérée comme une probabilité divisée par une masse. Ainsi sur chaque créature, on aura une certaine probabilité qu’elle se déplace d’une unité vers le bas. Cette probabilité est égale à la constante citée précédemment multipliée par la masse de la créature.

La gravité est un élément qui aura sont importance dans la formation de zones plus ou moins dense de créatures. On remarquera que l’exclusivité spatiale implique l’apparition d’un phénomène d’empilement des créatures au niveau du sol.

L'agitation thermique

L’agitation thermique va impliquer deux phénomènes sur les créatures : la translation et la rotation thermique.

La rotation thermique implique une rotation de 45° selon un axe de de la figure de la créature. La translation thermique déplacera simplement la créature sur l'une de ses cases avoisinantes. La probabilité de translation thermique sera toujours 10 fois plus élevée que celle de rotation thermique.

Bilan technique

Au terme de ce projet, la simulation permet d’observer l’évolution de créatures nées avec une masse et un génome aléatoire dans un environnement fermé. Ces créatures sont dotées de nageoires pour se déplacer et de bouches pour se nourrir. Leur déplacement se fait dans un environnement contenant de l’agitation thermique et de la gravité. L’agitation thermique implique des rotations et translations aléatoires d’autant plus fréquentes que la créature est légère. La gravité pousse chaque créature, proportionnellement à sa masse, vers le fond de l’espace fermé. Les bouches quant à elles leur permettent de manger d’autres créatures et d’absorber leur masse. A partir d’une certaine masse la créature se divise en deux créatures de masse identique. La première est semblable à la créature originale et la deuxième subit d’éventuelles mutations de différents types.

Cette simulation a été réalisé à l’aide de deux classes principale : la classe créature et la classe gène. Chaque créature est placée dans une grille de coordonnées entières. A chaque itération, des moteurs sont exécutés appliquant leur effet (gravité, déplacement, agitation thermique, ...) sur chaque créature. Enfin, on peut préciser que les données de cette simulation sont sauvegardées dans un fichier csv dans lequel on peut observer, pour chaque créature, ses déplacements, l’évolution de sa masse et de la longueur de son génome.


Ouverture sur les questions sous-jacentes

Questionnement sur le vivant

Comme nous l’avons indiqué dans l’introduction, notre objectif est de créer un écosystème naturel. Or pour juger de la qualité de notre modèle, il est important de soulever la question de la perception du vivant. En effet, l’évolution du projet a été constamment rythmé par des choix de simulation. Ces choix ont été justifiés par une certaine perception qui doit être analysée afin d’éviter une estimation trop personnelle du vivant.

C’est pourquoi après avoir décrit notre simulation, nous allons discuter d’une question centrale à la manipulation de vies artificielles :

Comment caractériser le vivant ?

Malgré des caractéristiques que l'on pense pouvoir lier au vivant telles que l'organisation ou l'imprévisibilité, une définition exacte n'est pas envisageable. Il nous faudra alors donner notre propre définition en adoptant un point de vue objectif et subjectif du vivant.

Test du caractère vivant d'un élément photographié

Afin d’observer cette perception du vivant à laquelle nous ne pouvons pas échapper, nous avons réalisé des tests à l’aide d’un échantillon d’une trentaine de personnes sur des photos en noir et blanc d’éléments vivants et non vivants.

On présente ci-dessous quelques résultats :

Photo et résultats équilibrés du sondage sur 35 personnes pour du corail
Photo et résultats du sondage sur 35 personnes pour une moquette observée au microscope

La première image représente du corail et on remarque moins de 33% de bonnes réponses. Certes, le filtre noir et blanc et le floutage du contour de la photo joue mais le corail est encore bien visible. Cependant, sans information, les sujets n’ont pas identifié du corail ; seulement évalué d’après sa complexité apparente sa probabilité de ressembler à du corail.

Le deuxième résultat représente une photo de l’inerte interprété comme du vivant. On peut imaginer que l’aspect organisé mais hétérogène au niveau des longueurs pousse à décrire cette photo comme du vivant. Il est difficile de commenter ces résultats sans y apporter de la subjectivité mais on essaye tout de même de repérer quelques similitudes avec un système vivant sans présupposer qu’il puisse s’agir de matière inerte créé par un processus physico-chimique en laboratoire.

Les choix d'implémentation de la simulation

De ces questionnements doit résulter une prise de recul quant aux différents choix de notre implémentation. On peut évidemment douter de beaucoup d’éléments mais nous nous limiterons ici aux choix les plus simples réalisés pour rendre la simulation plus naturelle. Nous nous intéresserons à l’aspect objectif et subjectif du choix. C’est à dire, nous verrons si les choix sont fondés sur un "bon sens" dont l’objectivité reste à définir ou sur un jugement subjectif comme celui donné sur les précédentes photos

La quasi totalité des choix ont un aspect objectif et subjectif. Cependant on peut remarquer que décrire la masse sous forme d'entier pour s'assurer de sa conservation globale est un choix centré sur un "bon sens", une vision objective du vivante. D'un autre côté, l'intensité de la gravité pourra être fixée selon l'appréciation de la simulation, ce choix a un aspect plus subjectif

On peut prendre d'autres exemples comme le choix du positionnement d’une créature après sa division ou le principe de l’exclusivité spatiale. Toute l’implémentation est faite de ces choix que l’on doit repérer afin de prendre conscience des limites du caractère vivant de notre simulation.

Bilan de la discussion

Travailler sur le vivant amène de nombreux problèmes qui touchent à la subjectivité. Ces problèmes sont présents car le vivant ne peut être défini par une définition objective et doit être interprété par celui qui l’étudie. Cet aspect ne doit pas être négligé car il est à l’origine de beaucoup de choix dans un simulation de formes de vie artificielle. De plus, il influencera sans aucun doute les résultats recherchés de l’influence de la stratification de l’environnement sur la biodiversité.

On pensera donc à prendre du recul sur les choix déterminants de la simulation afin de tester le caractère vivant de la simulation. Ces tests devront être réalisés avec l’aide de questions bien choisies qu’il nous reste à déterminer. Cela étant dit, l’une de questions qui pourrait relever la qualité de la simulation serait celle qui sonderait la curiosité du spectateur et lui donnerait envie de regarder l’évolution de notre écosystème.

Documents

Rapport

Fichier:RapportHege.pdf

Présentation slides

Fichier:SoutenanceIRLhegeClement.pdf