Académique Documents
Professionnel Documents
Culture Documents
RAPPORT DE STAGE
Prsent par
Nicolas DUMOULIN
Sujet : Modlisation dune colonie de chauve-souris vampires en vue de raliser une application ludo-ducative.
Lieu du stage : Cemagref, groupement de Clermont-Ferrand Unit de Recherche LISC 24, Avenue des Landais BP 50085 63172 Aubire Cedex Dure du stage : 5 mois
Remerciements
Je tiens tout dabord remercier Frdric Amblard, mon matre de stage, pour ses conseils pertinents et sa confiance, et pour mavoir motiv (sans le vouloir ;-) poursuivre mes tudes vers un DEA.
Merci de manire gnrale toute lquipe du LISC pour sa bonne humeur permanente, et pour leur chaleureux accueil. Je tiens galement remercier les membres de la javalist de lUniversit de Strasbourg (www.sogid.com/javalist/) et ceux du Forum Hardware.fr (forum.hardware.fr), pour leur prcieuse aide en langage Java.
I.
Sommaire
I. II.
III. ABSTRACT :..................................................................................................................................................... 4 IV. V. 1. INTRODUCTION ............................................................................................................................................. 5 PRESENTATION DE L'ENTREPRISE......................................................................................................... 6 LE CEMAGREF ............................................................................................................................................. 6 1.1. Le budget ................................................................................................................................................... 7 1.2. Les ressources humaines............................................................................................................................ 8 2. LE CEMAGREF EN REGION AUVERGNE-LIMOUSIN ....................................................................................... 9 2.1. Trois Units de Recherche et d'Expertise .................................................................................................. 9 3. LE LABORATOIRE D'INGENIERIE DES SYSTEMES COMPLEXES (LISC)............................................................... 9 PRESENTATION DE L'ETUDE................................................................................................................... 11 LE SUJET ........................................................................................................................................................ 11 PLANNING DU STAGE ..................................................................................................................................... 12 DESCRIPTIF DES OUTILS ACQUIS..................................................................................................... 13 LE LANGAGE JAVA ........................................................................................................................................ 13 LES LOGICIELS UTILISES ................................................................................................................................ 14 LES SYSTEMES MULTI-AGENTS ...................................................................................................................... 14 3.1. Dfinitions................................................................................................................................................ 14 3.2. Modlisation par systmes multi-agents .................................................................................................. 15 L'ETUDE..................................................................................................................................................... 16
VI. 1. 2. VII. 1. 2. 3.
VIII. 1.
LE VAMPIRE DESMODUS ROTUNDUS .............................................................................................................. 16 1.1. Prsentation gnrale de lespce ........................................................................................................... 16 1.2. Renouvellement de lespce ..................................................................................................................... 16 1.3. Vie sociale................................................................................................................................................ 17 2. MODELISATION ............................................................................................................................................. 18 2.1. Cadre thorique : le dilemme du prisonnier itr.................................................................................... 18 2.2. Caractristiques retenues pour notre modle .......................................................................................... 19 2.3. Lapproche multi-agents.......................................................................................................................... 20 2.4. Le modle de simulation .......................................................................................................................... 21 2.5. Reprsentation graphique des relations .................................................................................................. 27 3. LAPPLICATION ............................................................................................................................................. 33 3.1. Prsentation gnrale .............................................................................................................................. 33 3.2. Durant la simulation................................................................................................................................ 36 IX. 1. 2. CONCLUSION................................................................................................................................................ 40 BILAN ............................................................................................................................................................ 40 PERSPECTIVES ............................................................................................................................................... 40 2.1. Exploration du modle............................................................................................................................. 40 2.2. Ralisation du jeu .................................................................................................................................... 40 REFERENCES BIBLIOGRAPHIQUES ...................................................................................................... 41
X.
II. Rsum :
Le but de cette tude est de modliser une colonie de chauve-souris vampires dans le but de dterminer par la simulation les caractristiques idales pour raliser un jeu, ce jeu tant destination d'une exposition au Musum National dHistoire Naturelle et devant mettre en vidence les enjeux de la coopration chez les vampires. Le but de ce calibrage est de mettre le joueur dans des situations proches de la ralit, mais de faire apparatre rgulirement les vnements exceptionnels qui gnrent un besoin de coopration.
III. Abstract :
This study aims at modelling a vampire bats colony, in order to find by simulations the ideal characteristics of the corresponding game. This game is dedicated to an exposition at the Musum National dHistoire Naturelles in France, and must highlight the cooperations stakes by vampire bats. This calibration must on the one hand put the player in situations near of the real cases, and on the other hand, it must also force the appearance of exceptional events, which generate a need for cooperation.
IV. Introduction
Ce rapport a pour objectif de rendre tat de la premire partie de mon stage de Matrise d'Informatique, qui s'est droul sur le site clermontois du CEMAGREF (Centre national d'Etudes sur le Machinisme Agricole, le Gnie Rural, les Eaux et Forts), au sein du Laboratoire d'Ingnierie pour les Systmes Complexes (LISC). Ce stage est exceptionnellement prolong, et durera 5 mois au lieu de 3 mois. Le but de ce stage est de concevoir une application ludo-ducative permettant dillustrer laspect primordial de la coopration dans les socits de vampires (chauves-souris). Cette application sera ensuite utilise par le Musum dHistoire Naturelle de Paris en vue dune exposition sur la coopration chez les animaux. La stratgie utilise ici, est de dvelopper dans un premier temps une plate-forme de simulation qui permettra de caler le jeu, afin de faire apparatre des cas intressants.
V. Prsentation de l'entreprise
1.
Le CEMAGREF
Institut de recherche pour l'ingnierie de l'agriculture et de l'environnement, le Centre national d'Etudes sur le Machinisme Agricole, le Gnie Rural, les Eaux et Forts, le Cemagref, est un tablissement public caractre scientifique et technologique (EPST). Il a t cr en 1981 et est plac sous la double tutelle du ministre de l'Education nationale, de l'Enseignement Suprieur, de la Recherche et de la Technologie et du ministre de l'Agriculture, de la Pche et de l'Alimentation. Outre la contribution au progrs des connaissances, le CEMAGREF diffuse des mthodes de diagnostic et de contrle, il dveloppe des outils de gestion et de ngociation, il conoit des technologies innovantes (exemple : la conduite automatique de tracteurs, dtection du potentiel dinondation dun cours deau) et apporte son expertise aux services publics et aux entreprises. Les mthodologies scientifiques constituent un apport essentiel la recherche en ingnierie. Modlisation, information gographique et informatique scientifique sont privilgies. Ces recherches contribuent au dveloppement durable des territoires. Elles aident protger et grer les hydrosystmes et les milieux terrestres, dynamiser les activits qui les valorisent et prvenir les risques qui leur sont associs. Ses objets d'tude sont donc le plus souvent des systmes complexes, en relation avec des questions de socit et sa dmarche est presque toujours interdisciplinaire.
Les activits du CEMAGREF Ses orientations scientifiques sont regroupes en 4 dpartements et concernent : le fonctionnement des hydrosystmes, le gnie des quipements et services pour l'eau et les dchets, la gestion des territoires dominante rurale, le gnie des quipements dans le secteur agricole et alimentaire.
Les hydrosystmes et leurs relations avec l'agriculture d'une part, la gestion des risques naturels d'autre part, sont deux thmatiques scientifiques prioritaires pour les annes venir. Les mthodologies scientifiques constituent un apport essentiel la recherche en ingnierie.
1.1.
Le budget
Le budget consolid s'lve 56,5 M (370 MF) dont plus de 15 M (100MF) de recettes de rsultats. L'activit scientifique est donc ngocie avec les nombreux partenaires qui assurent l'essentiel des moyens de fonctionnement des units de recherche. Chaque anne, plus de 150 7
Le budget
1.2.
Le CEMAGREF emploie un peu moins de mille personnes titre permanent. Deux tiers des emplois sont financs par le budget civil de la recherche et du dveloppement. Le dernier tiers est mis disposition principalement par le ministre de l'agriculture, de la pche et de l'alimentation.
Les effectifs
2.
Le CEMAGREF de Clermont-Ferrand est une des 9 dlgations rgionales de l'Institut, celle de la Rgion Auvergne-Limousin. Au mme titre que le CNRS, l'INRA ou l'INSERM, il fait partie, en tant qu'EPST, du paysage de la recherche publique en Auvergne et s'applique dvelopper ses partenariats scientifiques, d'enseignement suprieur et formation ou de transfert dans cette rgion.
2.1.
Les activits de recherche du CEMAGREF en rgion Auvergne sont conduites sur 2 sites : Aubire et Montoldre. Le CEMAGREF de Clermont-Ferrand (Aubire) accueille 4 Units de Recherche et d'Expertise (URE) : DFCF : Dynamiques et Fonctions des espaces ruraux TSCF : Technologies, Systmes d'information et procds pour l'agriculture et l'agroalimentaire LISC : Laboratoire d'Ingnierie des Systmes Complexes
3.
Lunit de recherche participe des projets scientifiques en collaboration avec les quatre dpartements scientifiques du Cemagref. Elle a pour mission dvaluer et de dvelopper des mthodes de modlisation de systmes complexes. Ce travail est men en collaboration troite avec les quipes thmatiques de ltablissement et des partenaires extrieurs au travers de projets communs, souvent interdisciplinaires. Le thme de recherche de lunit, MAGESTYC (Modles pour l'Aide la GESTion des sYstmes Complexes), vise laborer, tester, valider des mthodes de modlisation gnriques utilisables dans les domaines dactivit du Cemagref : cosystmes, dynamiques sociales et interactions avec le milieu, interactions entre quipements et milieux naturels. Le travail de recherche se concentre particulirement sur lutilisation de modles gomtriques dynamiques, qui permettent de dfinir lvolution locale de formes, diverses chelles. Ces modles sont labors dans une dmarche incrmentale, en troite liaison avec des experts du terrain et des domaines abords. Leur confrontation aux historiques de donnes disponibles et lapprciation des acteurs est une question particulirement sensible. Les applications principalement vises sont des outils de gestion de la connaissance, gnralement destins aux experts dun domaine, ou directement des outils daide la dcision ou la ngociation pour les acteurs de terrain. Dans ce cadre, le LISC s'efforce de rpondre aux questions suivantes lorsqu'elles se rapportent aux domaines thmatiques des quipements agro-alimentaires, des aspects "qualit alimentaire", de l'eau, de la fort et de la gestion de l'espace rural : 9
Recueillir l'information pertinente pour un problme partir de bases de donnes (statistiques, data mining) Mettre en place et valider des simulations de systmes constitus d'agents en interaction, et rechercher des mthodes de rsolution de problmes distribus (systmes multi-agents) Intgrer des connaissances expertes aprs leur recueil et leur formalisation (systmes base de connaissances) Intgrer des systmes d'information cohrents, utilisables, et ouverts, raisonns par rapport une perspective d'aide la dcision ou de ngociation
10
Le Musum d'Histoire Naturelle de Paris prpare une exposition pour 2003 portant sur la coopration dans le domaine animal. Une partie de l'exposition est consacre l'altruisme rciproque, et particulirement au cas observ dans les socits de vampires (chauve-souris). En effet, les vampires se nourrissent de sang chaque soir, mais il arrive qu'ils rentrent bredouilles de leur chasse. Or, sils restent deux soirs sans russir se nourrir de sang, ils meurent d'inanition. Cest pour cela, que les vampires sentraident en rgurgitant du sang ceux qui en ont besoin. Ce phnomne de coopration est dcrit thoriquement par le dilemme du prisonnier itr en thorie des jeux (Von Newman et Morgenstern, 1947). Le Musum dsire pour cette partie, disposer d'une application ludo-ducative installe sur des bornes interactives, afin que les visiteurs puissent apprcier les enjeux de la coopration chez les animaux. Le LISC, laboratoire situ au Cemagref Clermont-Ferrand, a donc dcid de rpondre cette demande en en proposant la ralisation un stagiaire. Le but du stage est donc de raliser l'application demande sur une priode de 5 mois (de Avril fin Aot). Cette application comportera deux objectifs. Tout d'abord, elle devra permettre de simuler l'volution d'une colonie de vampires en fonction de paramtres spcifiques. Cette simulation permettra alors dterminer les paramtres saillants pour la ralisation du jeu. La seconde partie sera de raliser le jeu lui-mme, permettant d'illustrer aux joueurs l'importance de la coopration. La plate-forme de simulation devra tre conviviale. Elle proposera diffrentes botes de dialogue, pour ajuster les paramtres de la simulation, et diter les proprits des vampires et de la colonie. Elle proposera galement un graphe permettant de reprsenter les changes faits entre les vampires en temps rel. La plate-forme de simulation et le jeu devront tre ralis en Java, afin que lapplication soit entirement portable notamment sur les bornes et quelle laisse la possibilit de proposer le jeu sur une page web. Lapplication raliser comportera un habillage graphique sommaire et permettra aux commanditaires de modifier l'interface graphique de manire simplifie. Jusqu maintenant, rien navait t encore dvelopp dans ce cadre. Il ny a donc pas dexistant. Rien ntait impos quant aux logiciels utiliser pour la conception et le dveloppement.
11
2.
Planning du stage
Premier mois
Bibliographie sur l'espce tudie (le vampire desmodus rotundus) Recherche d'outils technologiques de modlisation et de dveloppement Documentation sur les systmes multi-agents. Analyse et spcification du modle exploiter. Implmentation du modle. Poursuite de l'implmentation du modle. Dveloppement de l'interface graphique. Dveloppement d'un mode de visualisation des relations entre les vampires. Exploration des simulations, pour trouver les espaces de paramtres intressants pour le jeu. Poursuite du dveloppement de l'interface graphique. Rdaction du rapport de stage. Poursuite de lexploration des simulations. Spcification du scnario du jeu avec le Musum dHistoire Naturelle. Conception du jeu. Dveloppement du jeu. Dveloppement doutils ddis la modification du contenu du jeu (graphisme et textes).
Deuxime mois
Troisime mois
Quatrime mois
Cinquime mois
12
Durant ce stage, j'ai surtout approfondi mes connaissances en modlisation UML, et en Java. J'ai manipuler des logiciels permettant de construire des modles UML (Poseidon), et de dvelopper en Java (JEdit). J'ai galement dcouvert le domaine des systmes multi-agents.
1.
Le langage Java
Java est un langage orient objet qui a t cr par la socit Sun en 1995. Malgr des difficults lies surtout au manque de performances (qui ont tendance s'effacer), ce langage est aujourd'hui largement utilis travers le monde. Ses points forts sont : sa portabilit, qui est son principal atout. En effet, les programmes dvelopps en Java sont ensuite excuts par une machine virtuelle, qui sert d'interface entre l'application et le systme d'exploitation. Ainsi, ces programmes peuvent tre excuts sur n'importe quelle plate-forme et sous n'importe quel systme d'exploitation, pourvu qu'une machine virtuelle Java y soit installe. sa fiabilit. Le langage Java est fortement typ (plus que le C++), et n'offre pas la possibilit de manipuler des pointeurs, ce qui supprime bon nombre d'erreurs gnres invitablement dans d'autres langages. le grand nombre de classes fournies par le JDK (Java Development Kit). Parmi celles-ci, on trouve celles qui permettent de manipuler des flux (fichiers, socket, donnes provenant d'internet...), des bases de donnes, des structures de donnes, etc. Un ensemble de classes permet galement de dvelopper rapidement des interfaces graphiques trs compltes. sa proximit syntaxique du langage C++. Celle-ci permet de passer de l'un l'autre sans trop de mal.
Ses points faibles sont : La prsence obligatoire de la machine virtuelle sur la machine utilisatrice. Labsence de gestion de la mmoire pour le programmeur, ce qui empche toute optimisation, celle-ci tant compltement gre par la machine virtuelle. Limpossibilit dimplmenter les hritages multiples, ceci en vue dviter des erreurs de programmation. Nanmoins Java offre une autre possibilit pour contourner ce problme qui est lutilisation dinterfaces. 13
Dans le cadre de mon tude, le modle ne prsentant pas des proportions leves, lutilisation de la machine virtuelle na pos aucun problme. Jai surtout apprci ce langage pour sa facilit dutilisation et la documentation exhaustive des classes fournies. La version du JDK que jai utilise est la 1.4, la 1.3 est encore largement utilise, mais la 1.4 apportait de nouvelles fonctionnalits fortes intressantes comme lamlioration de la gestion des composants Swing (interface graphique), une classe ddie aux entres sorties dimages (imageio), la prise en charge de la molette des souris, et bon nombre de nouvelles mthodes dans diverses classes.
2.
Nayant pas de logiciels imposs pour la conception et le dveloppement, jai donc choisi de faire mes propres recherches et trouver les outils qui seraient les mieux adapts pour mon contexte. Poseidon (www.gentleware.com) est un logiciel en shareware qui permet de construire des modles UML, et de gnrer le code Java correspondant au modle (classes, attributs, mthodes, accesseurs/modificateurs d'attributs, commentaires JavaDoc). Il possde galement la capacit de faire du "reverse engineering", c'est--dire qu' partir d'un ensemble de fichiers Java existants, il reconstruit un diagramme de classes UML correspondant. JEdit (www.jedit.org) est un Environnement de Dveloppement Intgr (EDI) en freeware. Il permet de faciliter le dveloppement de gros projets en offrant une saisie semi-automatique du code, et des scripts de compilation gnrs automatiquement. Ce logiciel permet galement lintgration de modules supplmentaires qui existent en trs grand nombre. Parmi ceux-ci, on pourra trouver un explorateur de classe qui permet de naviguer plus aisment dans le code, ou encore un enjoliveur de code, qui automatise lindentation selon les prfrences dfinies par lutilisateur.
3.
Un agent est une entit qui peut tre vue comme percevant et agissant de faon autonome sur son environnement. En voici une dfinition (Ferber, 1995) : On appelle agent une entit physique ou virtuelle a. qui peut tre capable dagir dans un environnement, b. qui peut communiquer directement avec dautres agents, c. qui est mue par un ensemble de tendances (sous la forme dobjectifs individuels ou dune fonction de satisfaction, voire de survie, quelle cherche optimiser), 14
d. qui possde des ressources propres, e. qui est capable de percevoir (mais de manire limite) son environnement, f. qui ne dispose que dune reprsentation partielle de cet environnement (et ventuellement aucune), g. qui possde des comptences et offre des services, h. qui peut ventuellement se reproduire, i. dont le comportement tend satisfaire ses objectifs, en tenant compte des ressources et des comptences dont elle dispose, et en fonction de sa perception, de ses reprsentations et des communications quelle reoit. Un systme multi-agents est donc un systme compos dagents, de ressources et doprateurs qui ont pour rle de grer la coordination des tches de chaque agent et linfluence que chacun des agents peut avoir sur lenvironnement. Les agents interagissant galement entre eux, ils vont crer un rseau de relations. Ces relations peuvent tre des relations daccointances (reconnaissances dagent) ou des relations de communicabilit. La dualit agent/environnement est au cur des systmes multi-agents, puisque lenvironnement va structurer le comportement des agents (contraintes), et les agents vont galement modifier leur environnement.
3.2.
Le besoin dutiliser les systmes multi-agents comme support de simulation vient des limites des techniques de simulation traditionnelles (modles dterministes et stochastiques). Les mthodes de simulation classiques reprsentent les individus de manire agrge, tandis que la simulation par systme multi-agents considre chaque individu, ce qui apporte plus de cohrence dans le modle et une plus grande souplesse et modularit des individus. Pour (Bousquet, 1994), laborer un systme multi-agents revient reproduire un monde artificiel ressemblant au monde observ, en ce sens quil est compos de diffrents acteurs, de faon y mener des expriences diverses et varies. A travers cette approche, il est possible de reprsenter directement les individus dun systme, leurs comportements et leurs interactions. Cest--dire, quau lieu de modliser les systmes en sappuyant sur des quations diffrentielles, sur des matrices de transitions ou toute autre reprsentation formelle, une structure de donne est propose pour chaque entit existante dans le systme (Campos, 2000).
15
V III.
1.
L'tude
Gerald Wilkinson de lUniversit de Maryland (USA), accompagn de Robin Weiss, Michael Jones et Terri Lamp a pass 26 mois (entre 1978 et 1983) au Costa Rica pour tudier le comportement des vampires desmodus rotundus (Wilkinson, 1990).
1.1.
Pour rester en vie, le vampire doit consommer 2 30 millilitres de sang toutes les 60 heures, sinon il meure dinanition. Il chasse une fois par jour (la nuit) en groupe. Ses chasses ne sont pas toujours fructueuses, et son taux de russite varie en fonction de lge. Un adulte ( partir de 2 ans) a un taux de russite la chasse de 97%, tandis quun jeune vampire de 3 mois rentrera bredouille 3 fois sur 10. Ce taux de russite crot donc de 70% 97% entre 3 mois et 2 ans, qui correspond lapprentissage du jeune vampire.
1.2.
Renouvellement de lespce
Les femelles sont en ge de procrer partir de 10 mois. Leur priode de gestation dure entre 6 et 8 mois. Les femelles ont une porte de un vampire par an. A la naissance les petits psent entre 5 et 7 grammes, et durant le premier mois de leur vie, ils seront nourris par le lait maternel. Au bout dun mois, leur poids a doubl, il est pass 12 grammes. De 1 mois 3 mois, la mre 16
nourrit son petit de sang quelle rgurgite. A partir de 3 mois, le petit commence tre autonome, il part lui-mme la chasse en qute de sang, mais conserve un lien privilgi avec sa mre. Ses chasses ntant pas encore efficaces, il doit pouvoir demander du sang sa mre. A 5 mois, il a termin sa croissance, il a donc atteint un poids adulte. Il sera compltement sevr 10 mois, lorsquil aura atteint sa maturit sexuelle.
1.3.
Vie sociale
Les vampires vivent en colonies de 100 individus, et se rpartissent en sous-groupes dune quinzaine dindividus. Chaque sousgroupe loge dans une niche, leurs niches prfres tant les troncs darbres creux. Les femelles changent rgulirement de sousgroupe. Les mles eux, dfendent leur place dans la niche, et restent donc tout le temps dans la mme. En gnral, les femelles sont regroupes avec leurs petits tout en haut de la niche, et les mles eux se placent sur les parois un peu plus bas, et se battent pour tre le plus haut possible. Ce comportement fait quune femelle voit plusieurs mles. Figure 1.2 Rpartition des vampires dans la niche. (extrait de Pour la science n150 Avril 1990 p.62)
Les vampires communiquent en mettant des sons trs aigus. Lquipe de Gerald Wilkinson a montr que ces signaux taient semblables dun vampire ses descendants, ce qui leur permet didentifier un membre de leur ligne, et que les vampires taient capables den identifier un autre grce ces sons, mme aprs plusieurs annes. Lorsquil est rassasi, un vampire a une rserve de 60 heures de survie. Le lendemain dune chasse infructueuse, il doit absolument se procurer du sang sinon il mourra avant la prochaine chasse. Au bout de deux jours sans russite la chasse, le vampire va demander une femelle de lui rgurgiter une partie du sang quelle possde dans son estomac, car seules les femelles acceptent de le faire. Celle-ci se rserve tout de mme le pouvoir de refuser ou accepter selon plusieurs critres qui concerne les liens de parents et les affinits qui se crent au fil du temps. Les rgurgitations nont lieu que lorsque le vampire demandeur est rellement en danger de mort. Cela signifie galement que les vampires sont capables de dtecter si un autre individu est affam ou pas. 17
Lors dune rgurgitation, le vampire perd moins que lautre ne gagne. Pour mieux comprendre ce phnomne, observons la courbe de la figure 1.2. La courbe reprsente le nombre dheures gagnes au cours de la digestion. On remarque que la courbe nest pas linaire, et que de ce fait, durant la premire journe qui suit une chasse fructueuse le fait de cder un peu de sang ne fait perdre que trois heures de survie, tandis quau bout de deux jours sans approvisionnement une petite quantit de sang va alimenter beaucoup plus lorganisme du receveur.
Figure 1.3 Le vampire receveur est plus avantag que le donneur nest gn. (extrait de Pour la science n150 Avril 1990 p.63)
2.
Modlisation
2.1. Cadre thorique : le dilemme du prisonnier itr
Le propos de la thorie des jeux est ltude de toute situation prsentant des caractristiques semblables celles des jeux de socit, cest--dire de situations o des individus font des choix en interaction, dans un cadre stipul lavance. Le dilemme du prisonnier est un type de jeu o des individus ont intrt sentendre, plutt qu ne pas sentendre, mais o chacun peut gagner ne pas respecter un ventuel accord, si les autres sy tiennent. Tel est le cas lorsque deux suspects sont incits se dnoncer lun lautre. Voici lnonc de ce jeu qui est expos par (Axelrod, 1984) : P1 et P2 sont deux prisonniers qui 18
ont le choix entre cooprer et trahir, chacun dentre eux ne connaissant pas la dcision de lautre. Le tableau 2.1 prsente les gains raliss par les deux prisonniers en fonctions de leurs dcisions. En observant les gains, on observe que, a priori, il est prfrable de trahir car on gagne plus quen cooprant (5 ans de remise de peine ou 1 contre 3 ans ou 0), et ce quelque soit le choix de lautre prisonnier. Hors si les deux prisonniers suivent ce raisonnement, il ralise un gain moins lev que sils avaient coopr tous les deux, do le dilemme. P2 Coopre P1 Coopre Trahit (3,3) (5,0) Trahit (0,5) (1,1)
Tableau 2.1 Le dilemme du prisonnier On appellera stratgie lensemble des rgles qui dterminent les choix faits par lindividus. Lorsque ce type jeu est itr, le nombre de stratgie devient vite extrmement grand (il crot exponentiellement avec le nombre de coups). Parmi ces stratgies, (Delahaye, 1992) en retient 12, dont : La stratgie mchante (toujours trahir). La stratgie gentille (toujours cooprer). La stratgie du donnant-donnant, consistant riposter par un trahison toute trahison de lautre. La stratgie lunatique consistant faire son choix au hasard.
Dans le cas du dilemme du prisonnier itr, o le nombre ditration nest pas connu lavance, la meilleure stratgie adopter est le donnant-donnant . Le contexte de la coopration chez les vampires illustre parfaitement le dilemme du prisonnier itr. La stratgie adopte par les vampires est le donnant-donnant , qui leur permet dliminer des profiteurs, car les vampires favorisent ceux qui font partie de leurs bonnes relations.
2.2.
Modliser un cosystme est une tche complexe dune part, et dautre part tous les aspects de la ralit ne nous intresse pas dans le cadre de la ralisation du jeu. Pour commencer, nous ne considrerons pas laspect spatial dans notre modle, car ce sont ltat des relations de coopration entre les vampires dans un sous-groupe et lvolution de la population qui nous intressent. La rpartition des vampires se fera donc juste au niveau de lagrgat sous-groupe . Dun point de vue dmographique, on introduit dans le modle une dynamique de population par un taux de natalit et un processus de mortalit, qui se compose de la mort naturelle et de la mort 19
par manque de nourriture (on ne prend pas en compte les accidents qui pourraient survenir lors des sorties nocturnes). Les mles adultes ne sont pas considrs, car ils ne participent pas aux changes de sang. De cette manire, nous les prenons en compte pendant leur phase de sevrage, car ce moment, ils participent aux rgurgitations mre - petit. Notre modle ne comportera donc les mles quentre le moment de leur naissance et 10 mois. Etant donn que durant les deux premiers mois, le petit vampire est compltement dpendant de sa mre et quil ne chasse pas encore, les petits seront inclus dans le modle partir de 2 mois. De plus, comme la gestation ninfluence a priori pas le comportement de la mre, elle ne sera pas prise en compte. Donc tous les ans, une mre fera natre un petit de 2 mois.
2.3.
Lapproche multi-agents
Dans notre cas, il apparat assez clairement que lindividu vampire est un agent de notre systme. Il nous reste dfinir son comportement, et galement un ordonnanceur qui va dclencher les vnements au niveau de la colonie et des sous-groupes. Lordonnancement se fera plusieurs niveaux. Au niveau de la colonie seront dclenches successivement les diffrentes phases dune journe pour chaque sous-groupe. Et chaque sousgroupe dclenchera les tapes pour chaque vampire quil contient. Chaque journe de la simulation se dcoupera effectivement en plusieurs phases : Cration Cration : durant cette phase, les femelles vampires sont sollicites pour crer de nouveaux vampires. Chaque femelle ayant ses propres caractristiques, les naissances seront disperses sur la dure de la simulation. Chasse : les vampires reoivent leur ration de sang, en fonction dun tirage alatoire, qui dpend videmment de leur taux de russite. Migration : les femelles ont la possibilit de changer de sous-groupe, si elles nont pas de petits, et en fonction dun facteur alatoire. Requtes : cest ce moment que les vampires affams peuvent demander du secours auprs dautres vampires. Croissance : tous les vampires vieillissent dun jour, changent de classe dge si ncessaire ou meurent sils ont trop vieux, ou sils nont plus assez de rserves.
Chasse
Migration
Requtes
20
2.4.
Le modle de simulation
2.4.1.
Modlisation du systme
Notre systme comportant une agrgation au niveau des formations de sous-groupes, nous allons retrouver galement cette structure dans notre modle. Nous allons avoir besoin dune classe coordinatrice, qui contiendra tous les paramtres de la simulation et les mthodes qui permettront de les manipuler. Cette classe sera la classe Simulateur, que nous dcouvrons sur la figure suivante :
Figure 2.2 Diagramme de classe UML : les diffrents niveaux dagrgation Dans la classe Simulateur, nous retrouverons donc tous les paramtres pouvant initialiser une simulation et des indicateurs sur lvolution de la colonie, qui sont :
iDuree (le i signifie que la variable est un entier, selon la notation polonaise) : la dure
en jours de la simulation.
iNbJoursEcoules : le nombre de jours couls durant la (les) simulation(s). iNbNaissances : le nombre de naissances survenues. iNbMigrations : le nombre de migrations. iNbRegurgitations : le nombre de rgurgitations faites entre vampires. iNextIdentifiant : identifiant pouvant tre attribu un nouveau vampire en respectant
lunicit. Ce nombre est incrment automatiquement lors dune attribution dun identifiant 21
un vampire.
iTaille : taille initiale de la colonie. iTailleSsGroupe : taille initiale moyenne des sous-groupes. fFecondite : proportion initiale de jeunes vampires par rapport lensemble de la
population.
fFreqRegurgiteParente : proportion initiale des rgurgitations mre - petit par rapport
lge correspondant. Entre deux paliers, ce taux de russite suit une volution linaire et est recalcul tous les jours.
iNbHeuresPerdues et iNbHeuresGagnes : nombres dheures de survie perdues et gagnes
va tout simplement initialiser une colonie de vampire en respectant les paramtres fournis. Le paramtre de retour sert signaler si linitialisation sest droule correctement, ou si une incohrence dans les paramtres a t rencontre (nombre de groupes nul, etc.).
open(String) : permet dinitialiser une simulation partir dun fichier contenant ltat
fichier.
run() : dclenche la simulation pendant autant de jours que prcis dans les conditions
initiales.
run(int nb) : dclenche la simulation sur nb jours. Cette fonction va notamment permettre
de faire du pas--pas.
isAlive() : renseigne si une simulation est en cours.
Le simulateur possde une colonie, qui elle-mme possde plusieurs groupes qui sont composs de plusieurs vampires. La mthode run() de la classe Simulateur va appeler successivement les cinq mthodes de la classe Colonie, qui vont elles-mmes appeler les mthodes correspondantes pour chacune des instances de la classe SousGroupe. Ces cinq mthodes correspondent aux cinq phases dcrites plus haut (figure 2.1). 22
Lorsquun vampire meurt ou quun mle est retir de la simulation 10 mois, on veut nanmoins pouvoir les garder en mmoire pour consulter leur tat plus tard. Cest pour cela que deux associations ont t ajoutes entre la classe Simulateur et la classe Vampire comme on peut le voir sur la figure ci-dessous.
Figure 2.3 Diagramme de classe UML : conservation des individus sortis du modle 2.4.2. Modlisation de lagent vampire
Pour commencer, nous pouvons dgager quatre catgories dge pour nos vampires : Entre 3 et 5 mois, nous parlerons de chasseur enfant . Le vampire est alors en pleine croissance, et commence chasser. Entre 5 et 10 mois, nous parlerons de chasseur dbutant . Le vampire a termin sa croissance, et amliore ses capacits de chasseur. Entre 10 mois et 2 ans, nous parlerons de jeune femelle . A cet ge, les mles ne sont plus pris en compte, le vampire est sevr, mais il na pas encore les comptences dun chasseur adulte. Plus de 2 ans, nous parlerons de femelle .
Vampire et VampireJeune sont des classes abstraites, qui permettent de spcifier des proprits
et mthodes communes. Nous retrouvons bien nos quatre catgories de vampires : ChasseurEnfant, ChasseurDebutant, JeuneFemelle et VampireFemelle. 23
Approchons maintenant de plus prs de la classe Vampire pour observer leurs proprits et mthodes.
meure dinanition.
fTauxReussite : est son taux de russite la chasse.
Pour le nombre dheures restantes, nous avions galement la possibilit dutiliser le contenu stomacal du vampire (qui sexprimait alors en millilitres), mais dans ce cas, les quantits auraient diffr dun vampire lautre selon son ge. Tandis que cet indicateur a la mme smantique quelque soit lge du vampire. Intressons-nous ensuite ses mthodes :
getAgeMin() et getAgeMax() renseignent les bornes de la priode dexistence du vampire, et serviront surtout dterminer si un vampire change de catgorie dge. creer() va servir au renouvellement de lespce. Bien sr, cette fonction ne sera effective
que pour les vampires adultes. nest pas implmente pour linstant, elle vise reproduire graphiquement une chasse.
partirChasser() resultatChasse() correspond au tirage alatoire pondr par le taux de russite de chaque
isMovable() va dterminer si le vampire est apte migrer vers une autre niche. On peut
noter que les vampires qui ne sont pas des femelles de plus de 10 mois rpondront toujours quils ne sont pas aptes. La dcision des femelles dpendra de la prsence dun petit duquer, et dun facteur alatoire qui est pass en paramtre de la fonction et dpend dun paramtre initial propre la simulation.
migrer() fait migrer le vampire dans un nouveau groupe dtermin alatoirement. chercherRegurgitateur() permet de trouver un vampire qui demander du sang. Cette
recherche se fait dans lordre qui suit : Le vampire cherche dabord les vampires envers qui il a une dette, ensuite ceux avec qui il a dj eu une relation, et enfin les autres femelles de sa niche. Le choix dun vampire dans lune de ces catgories se fait alatoirement.
connaitre() renseigne si on a dj eu affaire un vampire dans le cadre de rgurgitations. demanderSang()
potentiel.
traiterRequete() correspond au traitement dune requte provenant dun demandeur de
bas).
recalculeTauxReussite() recalcule le taux de russite en fonction des paramtres du
modle et de son ge. La classe VampireFemelle possdera lattribut supplmentaire iNbJoursSansCreation qui renseignera sil est temps pour la femelle davoir une nouvelle progniture, ou sil est trop tt. Une femelle va galement possder une stratgie qui dfinira son comportement et sa prise de dcision lors des demandes de rgurgitation. Voici le diagramme :
Figure 2.6 Diagramme de classe UML : gestion des stratgies Les stratgies font partie des paramtres initiaux, on peut initialiser une simulation avec plusieurs stratgies et la mthode init() les attribuera alatoirement aux femelles, ou bien on 25
peut initialiser une simulation avec une stratgie unique, et par la suite ajouter une stratgie uniquement pour un ou plusieurs individus. Un objet Simulateur a donc au moins une stratgie de dfinie et chaque femelle en possde une. Une stratgie comporte la limite de dons faits sans que lautre vampire ne nous aide en retour, et une probabilit daccepter finalement lorsque toutes les conditions sont runies. 2.4.3. Gestion des relations
Nous allons maintenant nous intresser la manire dont sont entretenues les relations entre les vampires. Chaque relation contient une trace des vnements survenue entre les deux vampires. Il existe 4 vnements que lon reprsentera par des entiers, en voici les correspondances : 1. Le vampire a accept de donner. 2. Le vampire a refus de donner. 3. Lautre vampire de la relation a accept de donner du sang au vampire. 4. Le vampire a subit un chec lors de sa requte. Lvnement 0 sera la reprsentation dun non-vnement. Pour stocker cette trace, javais opt dans un premier temps pour un tableau ayant pour dimension la dure de la simulation, ainsi au i-me lment du tableau correspondait lvnement du i-me jour. Cette structure ntait pas du tout adapte, et jai pu le vrifier en me heurtant de multiples dpassements de capacit mmoire lors de simulation sur plusieurs annes. En effet, le nombre dvnements entre deux vampires reste assez rduit. Je me suis donc ensuite tourn vers une table de hachage, pour quil y ait autant dlments que dvnements. Lvnement du jour i reoit tout simplement la cl de hachage i, on a ainsi une association jour/vnement. Voici le diagramme qui illustre tout ceci :
On retrouve ici les caractristiques nonces plus haut. Un vampire peut accder lhistorique de ses relations. Depuis une relation, on peut atteindre son propritaire et lautre vampire concern. Les attributs bAppartientSsGroupe et bVivant renseignent si lautre vampire de la relation est dans le mme sous-groupe, et sil est toujours vivant. Voici ensuite quelques explications sur les mthodes :
majBAppartientSsGroupe() et majBVivant() permettent de mettre jour les attributs
nous renseigne sur le rsultat de la dernire requte fructueuse, cest--dire, quel est le dernier vampire a avoir aid lautre.
ResultatDernierRequete()
2.4.4.
Synthse
Au final on obtient le diagramme suivant pour ce qui est du modle de simulation dune colonie de vampire :
2.5.
Une des tches durant ce dbut de stage fut de concevoir une structure permettant de visualiser les relations entre les vampires, afin dobserver directement lensemble des changes ayant lieu 27
au sein de la colonie. Lide est de reprsenter les vampires dun mme sous-groupe sur un cercle, et de disposer ces mmes cercles nouveau sur un cercle. Lobjectif que je me suis ensuite fix tait que cette structure puisse sadapter dautres systmes de manire gnrique. Jai alors tabli les spcifications suivantes : Le graphe pourra contenir plusieurs niveaux dagrgation. Il pourra ainsi reprsenter une quelconque classification arborescente. Par la suite on notera A(CG) larbre associ au graphe circulaire CG. Par exemple : Soit trois groupes de vampires, avec deux groupes qui en contiennent 3 et le troisime qui en contient 4, on obtient le graphe CG suivant :
10
Chaque nud du graphe pourra tre soit un nouveau graphe, soit une feuille, cest--dire un des objets issus de la classification. Un lien pourra ventuellement tre ajout entre deux objets. Mais ce lien ne pourra tre tabli 28
quentre deux nuds qui ont la mme profondeur dans larbre On disposera dune fonction qui permettra de rapprocher les objets qui sont le plus lis dans un mme graphe de manire clarifier la reprsentation graphique. Par exemple :
Avant
Aprs
Figure 2.10 Diagramme de classe UML : reprsentation graphique des relations La classe principale est CircularGraph, elle possde une liste de nuds qui ont comme contenu soit une nouvelle instance de CircularGraph, soit un objet qui implmente linterface GraphicNode, dans notre cas il sagit dun objet Vampire. Ce polymorphisme permet davoir 29
plusieurs niveaux dagrgation, comme souhait lors de nos spcifications. Un nud peut comporter plusieurs liens vers dautres nuds qui ont la mme profondeur dans larbre correspondant au graphe. Linterface GraphicNode contient les mthodes devant tre implmentes par les objets ajouter dans le graphe. Parmi ces mthodes, les plus importantes sont :
isLeaf() renseigne si lobjet est une feuille (le cas chant, il sagit dune instance de la classe CircularGraph). paintGraphicNode() permet de dessiner les objets contenus dans le graphe, ainsi lorsquun objet CircularGraph veut safficher, il appelle cette mthode pour tous les objets quil
contient.
containsPoint() nous indique si lobjet contient le point pass en paramtre. Cela servira
notamment pour savoir quel objet du graphe correspond un vnement souris. Notre classe Vampire implmente donc linterface GraphicNode et hrite galement de la classe Ellipse2D qui fait partie des classes fournies par le JDK, ce qui permettra de dessiner les vampires comme des cercles rouges (voir figure 2.9). Deux attributs lui ont galement t ajouts, taille dfinit le diamtre du cercle dessiner et drawIdentiant dfinit si lidentifiant du vampire doit tre affich ou non (les afficher surcharge parfois laffichage). Revenons maintenant sur la classe CircularGraph, dont voici le dtail de ses attributs et mthodes :
x, y, displayWidth, displayHeight dterminent le rectangle dans lequel doit tre dessin le
graphe lcran.
marge est lespace laiss sur le bord de la surface de dessin pour amliorer la lisibilit. Celle-
nont pas le mme pre (par exemple les nuds 1 et 4 dans la figure 2.9). sert activer/dsactiver loption antialias dans le dessin des composants graphiques qui est gr par la machine virtuelle (fourni par le JDK). Cette option amliore sensiblement laffichage en liminant le crnelage qui peut apparatre mais peut parfois ralentir les performances.
antialias addLink(gn1,gn2) permet dajouter un lien entre deux nuds. Cependant les deux nuds
doivent avoir la mme hauteur dans larbre correspondant au graphe. Et cette mthode doit tre appele sur le graphe racine, car la mthode va galement ajouter des liens (invisibles) entre les sous-graphes de mme niveau quelle aura du parcourir, cela servira lors de loptimisation du placement des nuds (voir mthode optimize() plus bas).
swap(index1,index2) permet tout simplement dchanger le placement de deux nuds,
bien sr ils doivent garder le mme pre donc cet change ne peut se faire quentre deux nuds qui ont le mme pre. 30
optimize() est la fonction qui va permettre de repositionner au mieux les nuds comme
voulu dans les spcifications. La mthode utilise est un algorithme que jai labor de manire empirique dont voici lnonc :
entre : cg une instance de la classe Circulargraph sortie : cg une instance de la classe Circulargraph optimise dbut pour chaque nud node du graphe faire si node nest pas une feuille alors node.optimize() fin pour pour chaque couple (nodei,nodej), nodeinodej, de cg.nodesList en prenant dabord les nuds qui ont le plus grand ordre (nombre de liens) faire // on calcule la somme des distances avec les nuds auxquels un // sommet est li, et on soustrait la somme des distances en //cas dchange des deux nuds. gain_i = 0 ; gain_j = 0 ; pour chaque liens de nodei avec linked_nodei faire
gain_i = gain_i + distance(node,linked_nodei) ; gain_j = gainj distance(node,linked_nodei) ; fin pour pour chaque liens de nodej avec linked_nodej faire
gain_j = gain_j + distance(node,linked_nodej) ; gain_i = gaini distance(node,linked_nodej) ; fin pour // analyse des rsultats si gain_i + gain_j > 0 alors si (gain_i>0 OU nodei nest pas marqu) ET (gain_j>0 OU nodej nest pas marqu) alors changer les deux sommets marquer les sommets qui ont un gain strictement positif fin si fin si
31
getNodePath(GraphicNode gn) retourne un vecteur contenant le chemin complet de la racine jusquau nud gn. clear() permet de vider entirement le contenu du graphe. getDistance(index1,index2) retourne le nombre de pas quil y a entre deux nuds qui
sont sur un mme graphe. Deux nuds voisins auront une distance de 1, tandis que les nuds 4 et 6 de la figure 2.9 auront une distance de 2.
calculateCoordinates() recalcule toutes les coordonnes de tous les nuds en fonction
mthode est destine pouvoir modifier les angles de vue du graphe afin de le rendre plus clair.
32
3.
Lapplication
3.1. Prsentation gnrale
3.1.1. La fentre principale
Une fois le modle implment, il fallut concevoir linterface qui allait permettre de tester puis dexplorer le modle. Lapplication se prsente comme une fentre avec une barre de menu, un volet de visualisation avec deux onglets et des boutons pour un accs rapide aux fonctions importantes. Voici un aperu lors du lancement de lapplication :
Figure 3.1 Lapplication au dmarrage On remarque la barre de menu qui permettra de charger/sauvegarder ltat dune simulation, dactiver/dsactiver laffichage de la trace des actions effectues (correction de bugs), et de paramtrer les options daffichage du graphe circulaire. Nous retrouvons les deux onglets, le premier permettant de voir les principales caractristiques de la colonie et daccder aux informations de chaque vampire en utilisant larbre qui est situ sur la gauche (qui est vide pour 33
linstant), le second lui contient le graphe circulaire permettant de voir les changes faits entre vampires. En dessous se trouve une range de boutons qui permettra de dclencher les tapes dune journe une une. Et encore en dessous, deux groupes de boutons, le premier permet de dclencher la simulation sur plusieurs jours, et le second permet de modifier/sauvegarder ltat de la simulation. Pour linstant, aucune initialisation na t faite, donc aucune information nest encore affiche. Les seules actions possibles sont douvrir un fichier, ou dditer les paramtres de la simulation afin dinitialiser une colonie de vampires.
3.1.2.
Il existe deux moyens pour initialiser les paramtres de la simulation : A partir dun fichier, que nous choisissons laide dune bote de dialogue (figure 3.2), laquelle nous accdons par le menu FileOpen ou en cliquant sur le bouton Open . La bote de dialogue permet de visualiser un rsum du contenu du fichier slectionn, car il nest pas forcment vident de nommer un fichier de manire loquente.
Figure 3.2 Chargement dun fichier Cette visualisation permet aussi de voir si un fichier nest pas compatible (conflits de version, extension partage par une autre application) comme illustr sur la figure 3.3.
34
Figure 3.3 gestion des fichiers non compatibles En ajustant tous les paramtres laide de la bote de dialogue de la figure 3.4 qui est accessible par le bouton Editer .
Figure 3.4 Edition des paramtres de la simulation La case Stratgies va permettre dajouter/diter/supprimer la liste des stratgies. Il est bien sr possible dinitialiser une premire fois le modle, et ensuite de retoucher quelques 35
Figure 3.5 Le stepper Le stepper (pas pas) permet de dclencher une une les tapes dune journe afin dobserver avec prcision les effets de ces diffrents vnements.
Figure 3.6 Les dclencheurs Ces trois boutons vont permettre de simuler une colonie sur 1 jour, 10 jours ou la dure prdfinie lors de lajustage des paramtres.
3.2.
Durant la simulation
Une fois la simulation initialise, il existe de nombreux indicateurs de ltat du modle qui permettent dobserver son volution.
3.2.1.
Indicateurs globaux
Ils sont regroups dans la case Infos sur ltat de la colonie de vampires (figure 3.7) du premier volet (figure 3.1) et renseignent sur ltat global de la colonie et sur le nombre dvnements survenus.
3.2.2.
Toujours sur le premier volet, larbre situ gauche permet de voir la rpartition des vampires par catgories dge et par groupe (figure 3.8), dajouter/supprimer un vampire ou den diter les proprits. Les vampires sont reprsents par leur identifiant. Chaque groupe est affich avec sa taille entre parenthse, ce qui permet de voir rapidement la rpartition des vampires dans la colonie. Les boutons situs juste au-dessous permettent donc de manipuler les vampires. Grce au premier nous allons pouvoir ajouter un nouveau vampire en spcifiant son ge et ses caractristiques (voir figure 3.9), ces mme caractristiques vont pouvoir tre modifier laide du deuxime bouton (voir figure 3.10). Quant au troisime, il permet tout simplement de supprimer le vampire slectionn. Le fait de pouvoir diter les proprits dun vampire est important, car, de cette manire, nous allons pouvoir introduire facilement des cas limites dans le modle pour susciter des phnomnes plutt difficiles obtenir. Nous pourrons ainsi affiner la population de vampires qui a t gnre de manire uniforme lors de linitialisation. Dans les proprits dun vampire, nous allons retrouver la liste de ses relations (figure 3.10), et de la mme manire, que nous avons pu modifier les vampires, nous allons pouvoir modifier ces relations (figure 3.11). Une relation est reprsente par lidentifiant de lautre vampire, et ses vnements par le couple [jour de lvnement] [type de lvnement], la smantique des types tant indique dans la bote de dialogue correspondante (figure 3.11).
37
38
3.2.3.
Visualisation graphique
A laide de la structure dveloppe au chapitre VIII.2.4, il est possible de visualiser directement la prsence de dialogues entre les diffrents vampires. Ces derniers peuvent rapidement apparatre en grand nombre, lalgorithme prcdemment expos permet alors damliorer la lisibilit du graphe. Il est galement possible dappliquer une rotation sur chacun de graphes laide de la souris, sur la figure 3.12 une rotation est applique sur le niveau du graphe reprsentant la colonie (la racine), et sur les figures 3.13 une rotation est effectue uniquement sur un sous-groupe. Loption Enable mouse zoom permet dactiver/dsactiver la fonction de zoom qui consiste pouvoir largir ou rtrcir le graphe laide de la souris. Ces possibilits de pouvoir dformer le graphe ont pour but daugmenter encore la lisibilit, en y ajoutant cette foisci une interactivit, en effet il est plus facile de percevoir un objet si lon peut le manipuler.
39
IX. Conclusion
1. Bilan
Le stage nest pas termin, compte tenu quil reste deux mois pour le raliser. Lensemble des objectifs prvus dans le planning a t atteint. Les principales difficults rencontres durant ce stage ont t : Lapprentissage de techniques de simulation multi-agents que je ne connaissais pas jusqualors. Le fait de mener ce projet seul. Nanmoins, le fait dtre seul a t particulirement enrichissant, car cela ma permis de couvrir tous les problmes pouvant apparatre durant un projet de cette envergure. La gestion dun aussi grand nombre de classes (la version actuelle de lapplication comptabilise 42 classes et un peu plus de 6000 lignes de code).
La dcouverte de la technique de simulation par systmes multi-agents qui est une technique largement utilise dans la modlisation de systmes complexes, a t un point fort de mon stage.
2.
Perspectives
2.1. Exploration du modle
Le modle tant exploitable, il reste maintenant lexplorer la recherche de paramtres adquats pour la colonie. Ces paramtres devront permettre des conditions de jeux idales pour lexposition, savoir que les demandes de rgurgitation doivent apparatre rgulirement et que la stratgie donnant-donnant reste la meilleure stratgie pour la survie de la colonie.
2.2.
Ralisation du jeu
Un rendez-vous est prvu le 8 Juillet avec nos correspondants au Musum dHistoire Naturelle, afin de se mettre daccord sur le scnario et le droulement du jeu. Durant ce rendez-vous, nous laborerons galement les spcifications du contenu, et plus prcisment des graphismes qui ne seront pas totalement livrs cette date. De cette manire, je pourrais dvelopper le jeu sur la base de ces spcifications, et prvoir des outils permettant de modifier tous les lments graphiques du jeu, ainsi que les textes.
40
X. Rfrences bibliographiques
Axelrod R. (1984) The Evolution of Cooperation. Basic Books, New York. Bousquet F. (1994) Des milieux, des poissons, des hommes : tude par simulations multi-agents. Editions de lORSTOM, Paris. Campos A. (2000) Une architecture logicielle pour le dveloppement de simulations visuelles et interactives individu-centres : application la simulation dcosystmes et la simulation sur le Web. Thse de doctorat, Universit Blaise Pascal Clermont-Ferrand II, 8 Septembre 2000. Delahaye J.P. (1992) Laltruisme recompos ?. Pour la science, n 181. Ferber J. (1995) Les systmes multi-agents. Vers une intelligence collective. InterEditions, Paris. Von Newman J. et O. Morgenstern (1947) Theory of games and economic behavior. Princeton University Press, Princeton. Wilkinson G. (1990) Food Sharing in Vampire Bats. Univ. Press, Baltimore and London.
41