Évolution interactive de formes sous la direction de Gil MATHIEU

Évolution interactive de formes
sous la direction de Gil MATHIEU
octobre 2007 à février 2008
Le travail se place dans le contexte du projet de vulgarisation
scientifique « Nature artificielle » consacré à la modélisation de formes et de
phénomènes naturels en image calculée.
Dans ce domaine, on peut repérer quelques paradigmes de modélisation
remarquables, comme la génétique, les grammaires formelles, les fractales ou
les systèmes. Pour certains d'entre eux, des séquences didactiques ont déjà été
produites : elles expliquent de façon essentiellement visuelle (images, formes,
animation, vidéo) et sans entrer dans les détails techniques (équations, structures
de données, algorithmes) les principes à l'œuvre.
À ce niveau, l'interactivité est tout à fait réduite : l'utilisateur déroule pas
à pas les séquences (scénarios Director). Au mieux, il lui faut choisir dans les
catalogues d'exemples qui lui sont proposés. Après un tel choix, une image ou
une forme est calculée en plein écran sous ses yeux en temps réel (scripts
Lingo). Si l'utilisateur déclenche le calcul d'une forme archivée dans le
catalogue, il ne peut en aucun cas enrichir celui-ci avec une forme qu'il aurait
lui-même découverte.
On souhaite développer un second niveau qui exploite les vertus
pédagogiques de l'interactivité. Il s'agit d'ateliers virtuels qui permettent à une
personne de bonne volonté (il n'y a aucun prérequis scientifique) d'appréhender
par l'interaction les principes à la base des différents paradigmes de
modélisation. L'attrait ludique de ces ateliers est de proposer l'exploration de
divers espaces de formes.
*
Les différents paradigmes sont nettement différents les uns des autres. Ils
ont néanmoins un point commun qui est de permettre une grande amplification.
Les formes naturelles sont en effet riches et complexes. Pour des raisons de
complexité algorithmique, donc d'espace mémoire et de temps de calcul, il est
important de ne pas devoir stocker cette complexité de forme dans ses moindres
détails, mais d'être capable de la générer (modèle procédural) à partir d'une
petite quantité de données. Ce sera, par exemple, les quelques règles d'une
grammaire formelle, les matrices des transformations affines d'une fractale IFS
ou encore les valeurs initiales et les règles d'évolution d'un système de
particules.
Cette amplification est à l'œuvre dans la nature lors de la croissance de
l'embryon. Toute l'information relative au futur individu (phénotype) est
contenue dans son ADN (génotype). L'expression du génotype en phénotype est
bien un phénomène d'amplification.
Nous allons donc manipuler des individus-formes, chacun étant doté
d'un « code génétique » propre. L'intérêt de la métaphore génétique ne se limite
pas à l'amplification. Les algorithmes génétiques permettent de faire évoluer
une population d'individus.
Dans l'approche néo-darwinienne, l'évolution comporte trois aspects :
variation : la population n'est pas uniforme, mais on constate des
variations entre les individus qui la composent ;
hérédité : l'existence d'un codage génétique permet la transmission de
certains des caractères des individus parents à leur descendance ;
sélection : dans la nouvelle population, seuls certains individus sont
sélectionnés pour la reproduction.
La boucle suivante donne l'esquisse d'un algorithme génétique :
initialiser la population P
répéter {
P' = population_vide()
répéter tant que (P' non complète) {
sélectionner deux individus p1 et p2
dans P
p = croisement( p1, p2)
ajouter mutation(p) à P’
}
P = P'
}
Les algorithmes génétiques sont généralement appliqués à des problèmes
d'optimisation. La sélection des individus-solutions y est automatisée via une
fonction qui quantifie l'adaptation (fitness function) de chaque individu de la
population. Dans notre application, la sélection est interactive : l'utilisateur
sélectionne subjectivement les individus-formes qui lui plaisent.
Le projet consiste à développer une application pour l'évolution
interactive de formes.
Son interface proposera entre autres fonctionnalités :
• tirage d'une population aléatoire
• sélection d'individu(s)
croisement de deux individus
mutation d'un individu
variation systématique à partir d'un individu
• écriture du code génétique d'un individu dans une bibliothèque
• relecture d'un code génétique en bibliothèque
Une première version mono-utilisateur de l'application a déjà été
développée dans l'environnement Director en Lingo. Elle traite quatre espèces
de formes :
• les formes vectorielles 2D biomorphs de Dawkins
• la réécriture de tracés vectoriels 2D
• les fractales IFS 2D
• la réécriture de tracés vectoriels 3D
Les objectifs du projet :
1) jusqu'à fin décembre : analyse-conception
• s'approprier l'application Director/Lingo existante d'abord en tant
qu'utilisateur (l'interface), puis en tant que développeur (scripts Lingo) pour
rédiger un cahier des charges. On réfléchira au perfectionnement du noyau de
l'application en améliorant les fonctionnalités existantes et en en proposant
d'autres. Par exemple, des outils de « nie génétique » seraient bienvenus pour
« geler » des sous-formes intéressantes que l’on souhaite conserver ou encore
pour assembler interactivement des sous-formes.
• produire une analyse-conception orientée objet du projet, laquelle
sera rédigée dans une première version du rapport et exposée à la soutenance de
mi-parcours. Le noyau de l'application doit être générique, au sens où l'on
souhaite pouvoir l'utiliser avec diverses espèces de formes : grammaires,
fractales IFS, systèmes de particules, etc. D'un point de vue de génie logiciel,
cela implique de nettement séparer dans la structure du code ce qui relève du
noyau de ce qui relève d'une espèce donnée. L’aspect générique du noyau est
très important pour le travail en équipe (pour que certains – y compris moi-
même – puissent travailler indépendamment sur une espèce de formes
particulière) et pour l’évolution du projet (extension à d’autres espèces de
formes).
• familiarisation avec l'environnement Flash et premiers essais de
programmation ActionScript 3.0
2) janvier et février : programmation
• réalisation en ActionScript 3.0 à partir des documents d'analyse-
conception produits dans la première phase. Il faut donc développer le noyau de
l'application d'évolution et l'appliquer à au moins deux espèce de formes au
choix pour en démontrer le caractère générique. Pour chaque espèce, il faudra
définir :
- le codage génétique d'une forme ;
- le ou les croisement(s) possible(s) de deux codes génétiques ;
- la ou les mutation(s) possible(s) d'un code génétique ;
- la fonction d'expression, qui génère l'individu-forme à partir de son
code génétique.
Des pistes possibles pour aller au-delà :
• étudier l'application à d'autres espèces de formes que celles déjà
traitées dans l'application Lingo. En particulier, appliquer l'approche à des
animations et non plus des images fixes : systèmes de particules 2D ; boids de
Reynolds (modèle pour l'animation des groupes : troupeaux, bancs de poissons,
vols d'oiseaux).
• envisager l’écriture des données dans une application XML (données
qui seraient susceptibles d’être transformées en SVG pour le rendu vectoriel).
• développer une extension multi-utilisateurs de l'application, au
moins pour sélectionner dans la population à partir des choix de plusieurs
utilisateurs en réseau, voire pour répartir le calcul des différents individus
(expression) de chaque population.
1 / 4 100%

Évolution interactive de formes sous la direction de Gil MATHIEU

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 !