Home
oRis : un environnement de simulation interactive multi-agents
Contents
1. avec eux en provoquant avec un dispositif de pointage ou le clavier des v nements perceptibles par les agents Le temps est aussi une variable de l environnement qui conditionne le comportement des agents et qui permet de situer leurs actions et leurs interactions Os offre ce sujet des fonctionnalit s de base 3 1 Environnements bidimensionnel et tridimensionnel La figure 3 illustre le rep rage des objets dans le plan et la notion de champ de perception Les m thodes de perception fond es sur ce principe assimilent les objets situ s des points origine de leur rep re local Le champ de perception est constitu d un angle d ouverture et d une port e Dans cette zone les objets rep r s sont localis s en coordonn es polaires dans le rep re local de l entit qui per oit afin d exprimer facilement une r action aux perceptions locales sur ma gauche aller tout droit Ces m thodes de perception permettent de choisir le type des objets percevoir et admettent deux variantes d tection de l objet le plus proche ou de l ensemble des objets visibles Une m thode de lancer de rayons permet de d tecter finement les contours de ces objets dont la forme est choisie parmi un ensemble de primitives Pour r aliser des attachements les objets peuvent tre connect s entre eux de mani re hi rarchique de telle sorte que le d placement d un objet entra ne le d placement de tout ceux qui lui sont connect s
2. show Example main is an Example is an Example Example 1 is an Example Example 1 is an Example 1 Example 3 is an Example Example 2 is an Example Example 1 is an Example Example 2 is an Example 2 Example 3 is an Example Example Example HN Figure 6 Modification d une instance Les fonctionnalit s dynamiques expos es ici ne demandent aucune technique ou astuce de programmation particuli re dans le sens o il n y a aucune diff rence entre la forme du code que l on r dige par avance et celle du code que l on introduit dynamiquement Les r gles de r criture sont les m mes dans tous les cas Cela permet notamment d effectuer la mise au point d un comportement sur une instance particuli re afin de g n raliser par la suite ce comportement toute une classe en changeant simplement la port e du code introduit La mise disposition de constantes de type r f rence sur un objet permet de facilement agir sur une instance quelconque En effet si cette forme lexicale n existait pas il faudrait imp rativement m moriser une r f rence sur chaque instance afin de pouvoir s y adresser au moment jug opportun En oHis l utilisateur n a pas se soucier de ce genre de d tail si par un moyen quelconque inspecteur graphique pointage dans une fen tre nous faisons apparaitre le nom d un objet nous pouvons le r utiliser pour lui faire ex cuter des traitements ou pour le modifi
3. utilis dans de nombreux projets et constitue le c ur de la plate forme de r alit virtuelle AR Vi ABSTRACT oRis is a toolkit for interactive simulation it is both an object based concurrent programming language and an execution environment Its features make oRis a generic plat form for multiagent systems MAS implementation It is a dynamically interpreted language instance grained which allows the user during the execution to observe the MAS to interact with the agents or the environment et to modify them in line With oRis a MAS is compouned of agents basically active objects in an environment containing objets eventually situated in space 2D or 3D and time oRis offers an homogenous solution for interactions implemented as method invocation or callback or message passing point to point or broadcast synchronous or asynchronous processing oRis offers different ways to manage the execution flows and the scheduler guarantees the equity of the time sharing oRis is stable and efficient It has been used in many projects and is integrated in the AR Vi virtual reality platform MOTS CL S langage de programmation programmation par objets concurrents plate forme r alit virtuelle syst mes multi agents simulation interactive KEY WORDS programming language object based concurrent programming toolkit virtual reality multiagent systems interactive simulation RSTI TSI 21 2002 Syst mes multi agents page
4. Les modifications peuvent aussi ne concerner que des instances isol es Toutes ces modifications en ligne permettent l utilisateur de consid rer les mod les qu il utilise comme tant eux m mes des param tres de l application Pour que ces mancuvres soient ais es la grammaire du langage doit permettre de pr ciser tr s facilement si une intervention concerne le contexte global de l applica tion une classe ou une instance Ces informations contextuelles permettent d utiliser un interpr teur ayant un point d entr e unique pouvant tre aliment par une trame dont l origine importe peu r seau zone de saisie fichier g n ration automatique Ainsi l expression de ces interventions n impose pas l utilisateur l usage d un outil particulier un inspecteur graphique par exemple m me si de tels outils sont dispo nibles Au contraire cela autorise l application r alis e fournir un acc s aux fonc 512 RSTI TSI 21 2002 Syst mes multi agents tionnalit s dynamiques sous la forme qui semble la mieux adapt e au contexte appli catif abord Notre objectif consistant permettre d apporter des modifications en ligne est motiv par le fait que dans une r alit virtuelle nous estimons que la vie doit continuer malgr tout Par l nous entendons que quoi qu il puisse se produire et quoi qu un utilisateur ait pu provoquer le mod le doit continuer s ex cuter m me si des erreurs se produisent Il est d
5. N D 00 l utilisation des cartes cognitives flous PAR 01 la d claration de plans d actions collectifs en utilisant une extension ex cutable de la logique temporelle de Allen DEL 00 la d finition de com portements d agents sous forme de tendances FAV 01 Il a aussi servi en traitement d images BAL 97b en simulation m dicale BAL 97a en simulation de syst mes manufacturier CHE 99b et pour le d veloppement d une plate forme de formation pour la s curit civile QUE 01 D autres quipes de recherche ont aussi utilis oRis pour leurs travaux le CREC pour la simulation de champs de bataille de conflits de guerre lectronique le GREYC pour la simulation de r seaux informatiques les quipes SMAC et GRIC de PIRIT l UMR CNRS 6553 d co biologie 8 2 La plate forme AR Vi OHis a t utilis pour le d veloppement de la plate forme AR Vi Atelier de R alit Virtuelle REI 98 Son noyau n est autre qu oHis et donc toutes les poten tialit s d crites dans cet article sont disponibles il est tendu par du code G offrant des fonctionnalit s propres la r alit virtuelle Cette plate forme offre un rendu gra phique compl tement ind pendant de celui qui est propos par oBis Les objets gra phiques sont charg s directement partir de fichiers au format VRML2 il est possible de d finir des animations et de g rer les niveaux de d tails Des l ments graphiques tels que des textures transp
6. cantoris chanteur celui qui chante 504 RSTI TSI 21 2002 Syst mes multi agents quelques traitements blocs start Nous pouvons remarquer que la classe d crit des objets actifs dont les comportements s ex cutent en parall le d autres traitements initi s dans d autres contextes locaux oRis dispose d un ramasse miettes Il est possible de choisir quelles instances sont sujettes une destruction automatique cette d cision est r vocable dynamiquement la destruction explicite d une instance par l op rateur delete tant toujours possible Il existe bien entendu un m canisme permettant de savoir si une r f rence est toujours valide class MyClass definir la classe MyClass string _txt un attribut void new string txt _txt txt constructeur void delete void destructeur void main void println I say txt comportement start initier un traitement dans l application printin block start MyClass i new MyClass Hello creer des objets actifs MyClass j new MyClass World println block end start initier un autre traitement for int i 0 i lt 100 i println doing something else yield O0 doing something else block start block end I say World doing something else I say Hello I say Hello I say World doing something else I say Hello I say World doing somethin
7. champ de perception ordonn e _ x n orientation abscisse v rep re global Figure 3 Localisation et perception en 2D 508 RSTI TSI 21 2002 Syst mes multi agents Pour aller au del des probl mes plans oRis propose un environnement g om trique tridimensionnel Il reprend les m mes principes que ceux de l environnement bidimensionnel en y ajoutant cependant les param tres g om triques suppl mentaire six degr s de libert La repr sentation g om trique en OpenGL d une entit est d crite sous la forme d un ensemble de points d finissant des faces pouvant tre colo r es ou textur es Des volumes l mentaires et des primitives de transformation sont galement disponibles la construction d une forme complexe se fait alors par accu mulation d autres formes 32 Le temps Les diff rents modes de gestion du temps classiquement utilis s en simulation FUJ 98 reposent au plus bas niveau soit sur un temps logique v nementiel soit sur un temps physique oHis fournit ce titre deux moyens de mesurer le temps La fonction get Time permet de mesurer des dur es physiques en millisecondes pour fournir par exemple une impression de temps r el l utilisateur La fonction getClock quant elle indique le nombre de cycles d ex cution coul s ce qui peut tre assimil un temps logique Notons que le sens que l on peut donner cette valeur d pend du
8. mentation qui permet d crire des programmes base d objets et d Agents section 2 situ s dans un Environnement spatio temporel sec tion 3 en Interaction section 4 soumis aux actions de l Utilisateur section 5 C est galement un environnement de simulation qui permet le contr le de l ordon nancement des agents section 6 et la mod lisation interactive gr ce la dynamicit du langage section 7 oHis est stable et op rationnel et a d j donn lieu nombre d applications section 8 2 oHis un langage d impl mentation 2 1 Positionnement Le d veloppement du g nie logiciel a conduit la d finition de mod les de m thodes et de m thodologies qui sont rendus op rationnels par les nombreux outils 1o giciel r f rentiels documentaires qui les mettent en ceuvre Parler d environnement de d veloppement de logiciel serait par trop vague aucun r f rentiel et a fortiori 502 RSTI TSI 21 2002 Syst mes multi agents aucun outil ne couvre l ensemble des besoins Dans le domaine plus restreint du d veloppement de syst mes multi agents SMA on retrouve cette m me diversit avec des m thodes voir IGL 98 pour une revue sur ce th me des mod les par exemple un mod le de coordination d actions comme les r seaux de contrats des langages ci tons par exemple MetateM FIS 94 ConGolog DEG 00 des g n rateurs d appli cations comme ZEUS NWA 99 des biblioth ques de composa
9. E DoRIGO M et THERAULAZ G L intelligence en essaim GLEIZES M P et MARCENAC P diteurs Actes des 7 Journ es Francophones d In telligence Artificielle et Syst mes Multi Agents JFIADSMA 99 p 25 38 Saint Gilles Ile de la R union 8 10 novembre 1999 Hermes Science BOU 96 BOUSSINOT F La programmation r active Application aux syst mes communi cants Masson 1996 CHE 99a CHEVAILLIER P HARROUET F et DE LOOR P Application des r seaux de Petri la mod lisation des syst mes multi agents de contr le Journal Europ en des Syst mes Automatis s APII JESA vol 33 n 4 p 413 437 mai 1999 CHE 99b CHEVAILLIER P HARROUET F REIGNIER P et TISSEAU J oRis un envi ronnement pour la simulation multi agents des syst mes manufacturiers de production 2 me conf rence francophone de Mod lisation des Flux Physiques et Informationnels MO SIM 99 Annecy p 225 230 octobre 1990 oRis 523 DEG 00 DE GIACOMO G L SPERANCE Y et LEVESQUE H J ConGolog A Concurrent Programming Language based on Situation Calculus Artificial Intelligence vol 121 n 1 2 p 109 169 2000 DEL 00 DE LOOR P et CHEVAILLIER P Generation of Agent Interactions from Temporal Logic Specifications DEVILLE M et OWENS R diteurs 16th IMACS World Congress 2000 Lausanne Suisse 21 25 ao t 2000 DEM 95 DEMAZEAU Y From Interactions to Collective Behaviour in Agent Ba
10. appliquer diff rents domaines on peut tout faire en assembleur et qu il existe plusieurs solutions un m me probl me Elle n a de pr tention que d clairer le lecteur sur le positionnement d ORis en tant que plate forme multi agents oRis a t concu pour r pondre la fois au besoin d un langage d impl menta tion de syst mes multi agents et aux exigences de la simulation interactive Pour dif f rentes raisons expliqu es dans cet article il nous est apparu que le paradigme objet offrait le meilleur compromis dans ce cadre mais que l utilisation directe des langages objets classiques tels que C ou Java n offrait pas une solution op rationnelle correspondant nos besoins 2 2 Principales caract ristiques oRis est un langage orient objets typage fort et interpr t Il a d ailleurs de nom breuses similitudes avec les langages C et Java ce qui facilite son apprentissage Tout comme ces langages g n ralistes ORIS permet d aborder des th mes applicatifs vari s si l on int gre des composants d velopp s avec ces langages l architecture lo gique des applications reste homog ne ce qui facilite la r utilisabilit de composants tiers et l extensibilit de la plate forme oHis La figure 1 propose titre d illustration un programme minimal mais n anmoins complet d finissant une classe et langant 4 Le suffixe latin oris signifie celui qui agit Exemple cantatio chant
11. chez l instance concern e mais d tourne sim plement l activit de l objet appelant vers un traitement qui manipule les donn es de l objet d sign Ceci revient consid rer que c est l objet appelant qui effectue tous les calculs l objet concern ne fournit que les donn es et leur mode d emploi mais ne participe pas activement au traitement La programmation imp rative par appel synchrone pr sente l avantage d tre efficace l ex cution et d assurer la s quentialit des actions le code qui suit l invocation peut compter sur le fait que le traitement demand a bien eu lieu puisque c est le m me flot d ex cution qui l a effectu Certains comportements d agent tel que la perception des autres peuvent tre programm s efficacement par ce moyen Notons aussi que l invocation d une m thode peut se faire dans un bloc start cf 6 1 et donc tre ex cut e par un flot d activit diff rent du flot appelant Comme cela est sp cifi en UML les langages C ou Java offrent un moyen de pr ciser le contr le d acc s publique prot g ou priv aux attributs et aux m thodes des classes d objets Pour des raisons d efficacit ce contr le est r alis la compilation Cette s mantique n est pas la plus pertinente dans le cas d agents En effet deux instances d une m me classe peuvent intervenir directement sur leurs parties priv es mutuelles ce qui viole le principe d autonomie si la cible est une m thod
12. des agents ce qui conduit la typologie non ex haustive suivante qui s inspire de celle donn e par NWA 96 R solution de probl mes agents embarqu s e g agents physiques contr le de processus agents d interface il y a de fortes contraintes d efficacit d ex cution des programmes et de d pendance vis vis de la technologie du syst me cible nombre d applications sont crites en C ou en agents mobiles il est pr f rable de disposer d un langage interpr table sur une large communaut de syst mes d exploitation l utilisation de langages de script tels que Perl peut tre envisag e agents rationnels la programmation en logique avec un langage comme Prolog peut parfaitement r pondre ce type de besoin Simulation Il est n cessaire de disposer d un environnement permettant d ex cuter en parall le le comportement des diff rents agents et offrant une large gamme de composants pour l interface avec les utilisateurs Comme le montre la lecture de BOI dans de nombreux cas le choix s est port sur des langages s ex cutant sur une machine virtuelle autorisant la programmation parall le historiquement Small talk 80 et de plus en plus Java l volution de la plate forme DIMA est r v latrice de cette tendance GUE 99 Nous avons bien conscience que cette classification comme beaucoup d autres d ailleurs a quelque chose d arbitraire et que tel ou tel langage peut s
13. du mode pr emptif Concernant les acc s concurrents des ressources communes ORIS propose de tr s classiques s maphores d exclusion mutuelle Il permettent en particulier de choisir si l op ration de d v rouillage doit avoir lieu selon l usuelle file d attente ou bien selon un ordre al atoire afin d viter de nouvelles relations de pr c dence locale Une 5 Le li vre vit il plus souvent que la tortue ou court il simplement plus vite oRis 517 autre solution nous est offerte pour assurer ce type de service Il s agit de cr er des sections critiques de bas niveau blocs execute semblable st art qui interdisent toute commutation de l ordonnanceur au sein de la portion de code encadr e Une derni re pr cision propos du parall lisme concerne l utilisation de thread syst me pour encapsuler l invocation d appels syst me bloquants En effet l ordon nanceur OH S est vu comme un processus unique du point de vue du syst me et est donc susceptible d tre suspendu dans sa globalit Lorsqu un traitement potentielle ment bloquant doit tre effectu il est lanc dans un threads dont l ordonnanceur oHis v rifie r guli rement la terminaison 7 La dynamicit du syst me multi agents 7 1 L introduction de code Il existe en apparence de nombreux moyens d introduire du code oBis en cours d ex cutions composition d une chaine fen tre de saisie lecture d un fichier d une tr me r seau mais tous co
14. ex cution La figure 5 pr sente tr s sommairement les structures de donn es utilis es pour la gestion de ces traitements parall les Chaque flot d ex cution est repr sent par une structure de donn es qui en plus de l identifiant de l activit contient une pile de contextes et une pile de valeurs temporaires La pile de contextes sert mat rialiser les appels de fonctions et de m thodes imbriqu s Les modules ex cutables sont repr sent s par une s quence de micro instructions Celles ci tant atomiques les commutations d activit entre les diff rents flots ne peuvent avoir lieu qu entre l ex cution de deux micro instructions La pile de donn es temporaires est commune tous les contextes du flot d ex cution et permet notamment d empiler les param tres d un module ex cutable avant son appel et de r cup rer le r sultat empil lors de la terminaison du module appel 6 2 2 Trois modes de multi t ches Nous savons maintenant que les diff rents flots d ex cution peuvent tre interrom pus entre deux de leurs micro instructions Nous abordons alors la description du fac teur provoquant l interruption d un flot au profit d un autre Ce point peut tre contr l librement par l utilisateur dans son programme Une premi re possibilit consiste placer l ordonnanceur en mode coop ratif Dans ces conditions le changement d activit n a pas lieu spontan ment mais repose exclusivement sur des consignes
15. multiples d finitions et d clarations des fonctions s appliquent aux m thodes La situation est cependant un peu plus d licate car les effets des nouvelles d finitions se combinent avec les effets des surd finitions Une modification qui concerne une m thode d une classe particuli re n influe sur les classes d riv es que si ces derni res ne surd finissent pas la m thode en question En revanche lorsqu il n y a pas de surd finition la modification met jour instantan ment toute la hi rarchie de classes d riv es ainsi que les instances De la m me facon l ajout d un attribut est r percut sur les classes d riv es et les instances 7 5 Les interventions sur les instances Une op ration encore plus fine consiste sp cialiser dynamiquement le compor tement d une instance la classe repr sente alors le comportement par d faut de l ins tance Nous r utilisons dans ce cas exactement les m mes principes que pour les fonc tions et les classes savoir ce qui n existe pas d j est ajout et ce qui existe est remplac La particularit de ces interventions vient du fait qu elles s appliquent des entit s d j cr es Il s agit d une distinction tr s marquante avec les classes anonymes de Java qui sont cr es et compil es bien avant que les instances n existent Nous ap portons ici un moyen d ajuster le comportement d une instance alors qu elle est en situation pour lui permettre d avoir une meilleure condu
16. pendant alors de l ex cution de mod les et non de la r solution d quations leur validit est tributaire de la justesse du simulateur et bien s r de la pertinence du mod le Or le contr le de l ordonnancement est un point tr s sensible et difficile ma triser par un utilisateur certes expert du domaine sur lequel porte la simulation mais pas n cessairement expert en programmation par objets concurrents Il nous est donc apparu indispensable que ce m canisme soit au c ur de la machine virtuelle oRis et ne soit en aucune fa on laiss la charge de l utilisateur comme c est le cas avec Madkit in BOI oRis ayant une vocation g n raliste aucun mod le d agent n est impos Pour la m me raison la facette organisationnelle que l on ne trouve pas dans tous les SMA 522 RSTI TSI 21 2002 Syst mes multi agents par exemple dans les SMA auto adaptatifs agents r actifs avec communications m diatis es par l environnement typiquement les ant systems BON 99 est tr s d pendante du mod le et n entre donc pas dans le champs couvert par un langage d impl mentation Parmi les volutions possibles de notre plate forme nous envisageons de compl ter la couche bas niveau que constitue notre ordonnanceur par des m canismes de na ture plus v nementielle et plus orient e sur la notion de temps physique L approche r active BOU 96 et les travaux de l quipe SIAMES de V IRISA ARN 97 pro posent
17. ARD P et TARAVE B diteurs Proceedings of Virtual Reality Internatial Conference VRIC 2001 p 57 64 Laval 16 18 mai 2001 REI 98 REIGNIER P HARROUET F MORVAN S TISSEAU J et DUVAL T AR Vi a virtual reality multiagent platform Virtual Worlds 98 Paris p 229 240 juillet 1998 ROD 99 RODIN V et N D LEC A oRis an agent communication language for distribu ted virtual environment IEEE ROMAN 96 Pisa Italy p 41 46 septembre 1999 RUM 99 RUMBAUGH J JACOBSON I et BoocH G The Unified Modelling Language Reference Manual Object Technology series Addison Wesley 1999 SDG SDG Swarm Development Group http www swarm org SHO 93 SHOHAM Y Agent oriented programming Artificial Intelligence vol 60 n 1 p 51 92 1993 TIS 01 TISSEAU J R alit virtuelle autonomie in virtuo Habilitation Diriger des Recherches Universit de Rennes I d cembre 2001 Article recu le 8 f vrier 2001 Version r vis e le 12 septembre 2001 R dacteur responsable Zahia Guessoum Fabrice Harrouet est ing nieur et docteur en informatique Il est actuellement ma tre de conf rences l cole Nationale d Ing nieurs de Brest Ses travaux de th se ont consist en grande partie en la conception et la r alisation de l environnement oRis Jacques Tisseau est responsable du Laboratoire d Informatique Industrielle de l ENIB Agr g de physique docteur en g ophysiqu
18. P Y primitive start code 1 c de sax ac date amm e js code 2 y code 3 d Figure 4 D doublement du flot d ex cution Les deux types d activit s pr c dentes sont clairement destin es l criture des comportements des agents La troisi me forme que nous pr sentons ici est plus directement destin e aux interventions de l utilisateur mais est toutefois applicable en de nombreuses circonstances Nous r utilisons le mot clef start mais cette fois il prend place l ext rieur de tout bloc de code Il permet de d crire un bloc de code dont l ex cution d marre juste apr s son analyse par l interpr teur Un exemple d utilisation d un tel bloc de code d j t donn sur la figure 1 Il permet notamment de faire apparaitre de nouvelles instances ou d initier des traitements qui s ex cutent en parall le de toutes les activit s de l application Un tel bloc start peut tre consid r comme une fonction anonyme c est dire qu il h berge des variables locales et que le code qu il contient ne concerne pas une instance en particulier Il est toutefois possible de le consid rer comme une m thode anonyme en le faisant pr c der du nom d une instance le code ex cut dans le bloc start concerne cet 514 RSTI TSI 21 2002 Syst mes multi agents objet particulier comme s il s agissait d une de ses m thodes Une telle possibilit lorsqu elle est alli e aux propri t
19. RECHERCHE oRis un environnement de simulation interactive multi agents Fabrice Harrouet Jacques Tisseau Patrick Reignier Pierre Chevaillier Laboratoire d Informatique Industrielle cole Nationale d Ing nieurs de Brest BP 30815 29606 Brest Cedex harrouet tisseau reignier chevaillier enib fr www enib fr LI2 R SUM oRis est un environnement de simulation interactive c est un langage de program mation par objets concurrents et un environnement d ex cution Ces caract ristiques en font une plate forme g n raliste pour l impl mentation de syst mes multi agents SMA plus par ticuli rement d di e la simulation C est un langage dynamiquement interpr t granula rit instance qui permet d intervenir en cours de simulation pour observer le SMA interagir avec les agents ou sur l environnement et les modifier en ligne En oRis un SMA est compos d agents la base des objets actifs dont l environnement est constitu d objets ventuellement situ s dans l espace 2D ou 3D et le temps oRis offre une solution homog ne pour les inter actions qu elles soient impl ment es par appel de m thode lien r flexes ou envoi de message en point point ou par diffusion avec traitement synchrone ou asynchrone oRis impl mente diff rents modes de gestion de flots d activit et l ordonnanceur garantit un partage quitable du temps entre ces flots oRis est stable et op rationnel Il a t
20. Survey of Agent Oriented Methodologies Proceedings of th 5th International Workshop ATAL 98 Intelligent Agents V Agent Theories Architectures and languages p 317 330 Paris juillet 1998 N D 00 N D LEC A REIGNIER P et RODIN V Collaborative Prototyping in Distributed Virtual Reality Using an Agent Communication Language IEEE SMC 2000 Nashville USA octobre 2000 NWA 96 NWANA H S Software Agents An Overview Knowledge Engineering Review vol 11 n 3 p 205 244 septembre 1996 NWA 99 NWANA H S NDUMU D T LEE L C et COLLIS J C ZEUS a toolkit for buiding distributed mutliagent systems Applied Artificial Intelligence vol 13 n 1 2 p 129 185 1999 PAR 99 PARUNAK H V D Industrial and Practical Applications of DAI WEISS G diteur Multiagent Systems a modern approach to distributed artificial intelligence Chapitre 9 p 377 421 MIT Press 1999 PAR 01 PARENTHO N M TISSEAU J REIGNIER P et DORY F Agent s perception and Charactors in virtual worlds put Fuzzy Cognitive Maps to work RICHIR S RICHARD P et TARAVE B diteurs Proceedings of Virtual Reality Internatial Conference VIRC 2001 p 11 18 Laval 16 18 mai 2001 524 RSTI TSI 21 2002 Syst mes multi agents QUE 01 QUERREC R REIGNIER P et CHEVAILLIER P Humans and autonomous agents interactions in a virtual environment for fire fighting training RICHIR S RICH
21. arentes ou anim s des sources lumineuses des lens flares reflets du soleil sur une lentille et des syst mes de particules jets d eau sont dis ponibles AR Vi introduit aussi des notions de cin matique vitesses et acc l rations lin naires et angulaires ce qui enrichit les possibilit s d expression de comporte ments des agents dans un environnement tridimensionnel Pour ce qui est du domaine oRis 521 sonore AR Vi propose une sonorisation tridimensionnelle et des fonctionnalit s de synth se et de reconnaissance vocale Cette plate forme g re des p riph riques vari s tels un gant de donn e une manette de commande un volant des capteurs de locali sation et un casque de vision qui tendent les possibilit s d immersion des utilisateurs dans le SMA 9 Conclusion Notre travail a abouti la r alisation d une plate forme op rationnelle reposant sur la programmation par objets actifs concurrents Elle fournit les services fondamen taux pour la simulation multi agents interactive c est dire lorsque l utilisateur est dans la boucle du processus de simulation En r f rence l approche voyelles DEM 95 la lettre U est une facette peu prise en compte dans les plates formes de simulation Le principe de substitution entre agents et utilisateurs est nos yeux fon damental il pourrait tre valuer par une sorte de test de Turing l utilisateur per oit les actions d autrui sans savoir s il s ag
22. des solutions int ressantes en ce sens Une autre volution de nos travaux tend vers la r alisation d un environnement de r alit virtuelle distribu ayant les propri t s dynamiques d oHis Un tel outil permettra la mod lisation interactive et coop rative qui n cessite une ininterruptibilit de l ex cution pour respecter les contraintes d ordre temporel la vie continue malgr tout et les contraintes d ordre social on n est pas seul subir les cons quences de ses actes Des r flexions tant conceptuelles que techniques dans le domaine de la simulation multi agents interactive distribu e dont les exigences diff rent de celles de la r solution distribu e de probl me sont ce titre n cessaires 10 Bibliographie ARN 97 ARNALDI B DONIKIAN S CHAUFFAUT A COZOT R et THOMAS G Real time simulation platform for dynamic systems IROS 97 Grenoble p 32 41 1997 BAL 97a BALLET P HARROUET F et TISSEAU J A multi agent system to model an human secondary immune response SMC 97 Orlando USA vol 1 p 357 362 octobre 1997 BAL 97b BALLET P RODIN V et TISSEAU J A multiagent system for detecting concen tric strias SPIE 97 Application of digital image processing San Diego USA vol 3164 p 659 666 ao t 1997 BOI BOISSIER O GUESSOUM Z et OCCELLO M Plates formes de d veloppement de syst mes multi agents Bulletin de l AFIA num ro 39 BON 99 BONABEAU
23. e habilit diriger les recherches en informatique il s int resse depuis dix ans l autonomisation des mod les num riques afin de peupler les univers virtuels pour les rendre plus cr dibles Patrick Reignier est ing nieur et docteur en informatique Il est actuellement ma tre de conf rences de l universit Joseph Fourier Grenoble et est rattach au laboratoire GRAVIR o il s interresse la reconnaissance de sc narios pour la conception d assistants virtuels dans les b timents intelligents Il a travaill durant cinq ans au sein du LI2 ENIB sur la probl matique des plateformes multi agents pour la r alit virtuelle Pierre Chevaillier est ma tre de conf rences en informatique Au sein du Laboratoire d Infor matique Industrielle de l ENIB ses travaux portent sur les mod les de syst mes multi agents pour la r alit virtuelle
24. e qu une date remarquable Cette relation de priorit n existe qu entre les activit s qui sont relativement proches dans l ordre du proc d de d signation La simulation du parall lisme impose une ex cution s quentielle des portions de code des diff rents flots cette relation de priorit locale ne peut tre compl tement limin e Cependant en introduisant un ordre al atoire dans la d signation nous vitons qu elle se reproduise de mani re syst matique de cycle en cycle puisque l avantage donn une activit sur une autre lors d un cycle est remise en cause lors d un autre cycle Nous conservons ainsi la notion de cycle d ex cution qui nous fournit un temps logique cf section 3 2 commun emp chant toute d rive du temps au profit d une activit tout en liminant le biais introduit par les relations de pr c dence locales En plus des trois modes d ordonnancement disponibles coop ratif pr emptif profond ment parall le l utilisateur peut donc choisir entre une d signation ordre fixe fortement d conseill e et une autre al atoire permettant d liminer toute relation de pr c dence locale qui pourrait conduire un biais Notons que le proc d que nous avons utilis ne repose que sur des algorithmes et des structures de donn es dont nous avons l enti re ma trise et qui sont d taill es dans HAR 00 Il ne d pendant notamment d aucune fonctionnalit du syst me sous jacent mis part l horloge
25. e m canisme r flexe convient bien aux messages que l on consid re comme des v nements et qui n cessitent une r action imm diate de la part des objets qui l interceptent Cependant si ce n est pas le cas les messages re us par diffusion peuvent aussi tre plac s dans la boite aux lettres du destinataire et donc tre trait s comme s ils avaient t envoy s en point point ce qui homog n ise le mode de r action de l agent destinataire Un m me objet peut tre sensible plusieurs types de messages et il existe un m canisme rappelant le suivi des liens polymorphes concernant le choix des m thodes r flexes d clencher La sensibilit aux diff rents types de messages peut voluer dans le temps afin de changer de r action ou de devenir insensible certains types de messages 5 L utilisateur spectateur acteur et cr ateur Pour que l utilisateur soit plus qu un simple spectateur de l volution du SMA il faut qu il dispose d un langage ayant des propri t s dynamiques afin que de nouvelles portions de code puissent tre prises en compte tout instant et dans des circonstances vari es Les interventions les plus simples consistent d clencher de nouveaux traitements pour changer le d roulement naturel de l volution du SMA La construction incr mentale du syst me n cessite de pouvoir compl ter l application en cours de fonctionnement en y ajoutant de nouvelles notions et notamment de nouvelles classes
26. e qui ne devrait tre ex cut e que sous le contr le de l agent auquel on s adresse Pour apporter un l ment de r ponse cette situation ORIS propose un moyen de restreindre l acc s aux m thodes voire m me aux fonctions Alors que this d signe l objet sur lequel est invoqu e la pr sente m thode le mot clef that indique l objet qui a invoqu cette m thode sur l objet d sign par this En v rifiant l identit de that au d but d une m thode il est possible de contr ler l acc s au service correspondant Nous pouvons ainsi de mani re tr s simple v rifier que certains services ne sont directement accessibles que par les entit s concern es Les v rifications peuvent bien entendu porter sur le sch ma classique base de classes mais peuvent reposer sur des modalit s propres l application et sur des conditions variables dans le temps Remarquons que ce moyen est quivalent au champ metteur d un message asynchrone voir les sections 4 3 1 et 4 3 2 ce qui permet un agent destinataire de maintenir les m mes raisonnements quel que soit le support de la communication appel synchrone de m thode ou envoi de message asynchrone L acc s that repose en interne sur le fait qu il est possible en oRis d inspecter la pile d ex cution du traitement en cours Nous pouvons par exemple n autoriser l invocation d une m thode que depuis quelques autres Bien qu ils aient certainement un co t en terme de vitesse d ex cu
27. e sa m thode after juste apr s Il est possible d associer un nombre quelconque de iens r flexes sur un m me attribut d une m me instance Nous assimilons ce m canisme un moyen de communication dans un contexte r actif puisque le d clenchement des traitements signalant la modification d un attribut peut tre vu comme un moyen d tre tenu inform d un v nement 4 3 Communication par messages Conform ment au mod le objet qui repose conceptuellement sur ce type d interac tion entre instances ce m canisme est d fini en ois dans la classe de base Object Il utilise aussi les services de la classe de base Message 4 3 1 Les envois de messages en point point Pour envoyer un message un agent instancie un objet d une classe d riv e de Message dont le seul attribut est la r f rence de l metteur qui est d termin gr ce au mot clef that pr sent en section 4 1 L invocation de sa m thode sendTo le place dans la boite aux lettres FIFO du destinataire dont la r f rence est pr cis e en argument Pour que ce dernier puisse traiter le message re u il doit consulter sa boite aux lettres Le destinataire peut tre inform qu un message y a t d pos par le d clenchement automatique d une m thode r flexe On peut par exemple relancer l ex cution de l activit de lecture des messages qui aurait pu tre suspendue afin d viter toute attente active Le type de communication d crit ici est qualif
28. ent g r es de la m me fa on en interne le langage ORIS propose trois mani res d exprimer ces t ches que nous d signons par le terme flot d ex cution Un objet actif est caract ris dans ORis par le fait qu il dispose d une m thode main repr sentant le point d entr e du comportement de l instance concern e puisque nous estimons que le r le principal d une telle instance consiste ex cuter cette m thode particuli re Lorsqu une instance dot e d une m thode main est cr e cette m thode est imm diatement pr te s ex cuter Quand la fin de la m thode est atteinte elle est automatiquement relanc e son d but C est donc un moyen simple d impl menter le comportement autonome d un agent Une simulation multi agents en ORIS consiste instancier de tels agents et les laisser vivre Un autre moyen permettant d initier un nouveau traitement en parall le des objets actifs consiste d doubler le flot d ex cution gr ce la primitive start comme illustr sur la figure 4 Ce proc d consistant g n rer plusieurs flots d ex cution partir d un seul sert principalement attribuer plusieurs activit s un m me agent Il est effectivement envisageable que le comportement principal d un agent sa m thode main g n re d autres activit s annexes Il semble raisonnable qu un agent puisse par exemple se d placer tout en communiquant avec d autres Code d une fonction ou d une m thode
29. er 8 Applications L ensemble de l environnement et du langage oHis repr sente plus de cent mille lignes de code source principalement crites en G mais aussi en Flex amp Bi Son et en ORis lui m me Celui ci est tout fait op rationnel et stable et est d ailleurs utilis s dans de nombreux projets Il peut tre utilis librement en le t l 520 RSTI TSI 21 2002 Syst mes multi agents chargeant depuis www enib fr harrouet oris html Une documentation des exemples des supports de cours et le m moire de th se de Fabrice Harrouet sont galement disponibles depuis cette page 8 1 Champs d application oRis est utilis comme outil p dagogique dans certains enseignements dispens s l cole Nationale d Ing nieurs de Brest ENIB programmation par objets concur rents syst mes multi agents r alit virtuelle distribu e commande adaptative Il est aussi utilis s par d autres quipes p dagogiques coles militaires de Saint Cyr Co t quidan ENSI Bourges ENST Bretagne IFSIC IRIT IUT de Bordeaux Universit de Caen ORiS est la plate forme sur laquelle les travaux de recherche du Laboratoire d In formatique Industrielle LI2 sont men s ce qui se traduit par le d veloppement de paquetages de classes Parmi ceux ci citons des paquetages permettant la coordi nation d actions selon le Contract Net Protocol la distribution des agents ROD 99 la communication entre agents en utilisant KQML
30. eraction dans un Environnement ici num rique suivant une Organisation sociale explicite ou mergente Cette derni re facette n tant pas toujours explicite dans les mod les de Syst mes Multi Agents SMA elles ne font pas partie des concepts de base de notre outil Une des originalit s de notre travail tient dans le r le pr pond rant jou par l utilisateur via son avatar Pour jouer librement ses trois r les spectateur acteur cr ateur tout en respec tant l autonomie des agents avec lesquels il cohabite l op rateur doit disposer d un langage pour agir sur les autres mod les les modifier et ventuellement cr er de nou oRis 501 velles classes de mod les et les instancier Il doit donc disposer en cours d ex cution de la simulation du m me pouvoir d expression que le cr ateur du mod le initial Le langage doit donc tre dynamiquement interpr t du nouveau code doit pouvoir tre introduit et donc interpr t en cours d ex cution L utilisateur peut tre amen n in teragir ou ne modifier qu une instance d un mod le Le langage doit donc avoir une granularit instance ce qui suppose de disposer d un service de nommage et surtout de la possibilit au niveau syntaxique de distinguer le code du contexte global des classes et des instances La simulation multi agents impose d ex cuter en parall le plusieurs mod les Il faut donc s assurer que le proc d d activation de ces entit s autonomes n
31. explicites inscrites dans le code ex cuter fonction oRis 515 Machine virtuelle oRis Ensemble de flots d ex cution Pile de contextes uie ex cutable fonction m thode per S quence de micro instructions y Q Variables locales Compteur d instructions Q Pile de valeurs temporaires Figure 5 Structure de la machine virtuelle oRis yield fin de main attente de ressource L ordonnanceur peut alors inter rompre le traitement courant pour en faire progresser un autre Une activit ayant laiss les autres s ex cuter reprend ses traitements lorsque toutes les autres en ont fait de m me Ce type de multi t ches suppose que toutes les activit s de l application jouent le jeu c est dire qu elles prennent r guli rement le soin de passer la main aux autres Si l une d elles monopolise l activit de l ordonnanceur elle fige tout le reste de l application Il est galement possible de choisir un ordonnancement pr emptif en pr cisant la p riode en millisecondes laquelle une commutation doit avoir lieu Dans ces conditions l criture de comportements longs se fait sans se soucier du minimum d entrelacement que chaque activit doit assurer Le programmeur n a plus besoin d ins rer des commutations explicites yield puisqu elles sont spontan ment assur es par l ordonnanceur Un contr le plus fin des commutations est envisageable en pr cisant cette
32. fois un nombre de micro instructions comme intervalle de pr emption Les notions de paral l lisme et d entrem lement sont alors pouss es leur paroxysme lorsque ce nombre vaut 1 ce qui justifie le choix de l appellation profond ment parall le L int r t de ce proc d consiste proposer un parall lisme qui va bien au del de ce que les deux pr c dents modes proposent Bien que ces derniers proposent un d coupage du temps ils reposent n anmoins sur des portions de code qui sont ex cut es en s quences plus ou moins longues Avec ce nouveau mode d ordonnancement nous pouvons r duire l extr me la longueur de ces s quences dans l application ce qui tend rapprocher son ex cution d un parall lisme r el m me si ce n est pas le cas La contrepartie de cette possibilit r side dans le fait que l ordonnanceur puisse passer plus de temps effectuer des commutations qu ex cuter le code utile de l application Notons que ce type de multi t ches tout comme le mode coop ratif ne d pend d aucune hor loge syst me et n est que l expression d un algorithme interne oRis il est donc de ce fait parfaitement ma tris 6 2 3 D signation des traitements activer Le dernier point discuter propos du proc d d activation concerne le choix du flot activer apr s une commutation L introduction de priorit s ne ferait que 516 RSTI TSI 21 2002 Syst mes multi agents repousser le probl
33. g else Figure 1 Ex cution d un programme simpliste en oRis Nous disposons d une interface avec le langage C C selon un proc d de biblioth ques chargeables la demande Non seulement oRis permet d associer des fonctions ou des m thodes une impl mentation en C C mais il permet une utilisation plus en avant de l approche objets en mat rialisant directement une instance du langage interpr t s par une instance d crite en C Bien qu oHiS soit impl ment en C il est possible d int grer des travaux r alis s dans d autres langages Un paquetage assure l interfa age du code oRis avec du code SWI Prolog une fonction permet d invoquer l interpr teur Prolog et en Prolog il est possible d invoquer une m thode oRis oRis a galement t interfac avec Java de telle sorte que n importe quelle classe Java qu elle fasse partie des classes standards ou qu elle soit l objet d un travail personnel peut tre directement utilis e depuis oRis Aucun travail de oRis 505 mise en forme pour le respect des conventions d appel du langage de script n est n cessaire comme c est souvent le cas pour embarquer du C C De nombreux paquetages sont propos s en standard dans oHis Ceux ci concernent dans l ensemble des services tout fait classiques mais n anmoins indispensable pour que l outil soit r ellement utilisable dans des conditions vari es Les th mes abord s par ceux ci sont les suivants les conver
34. i de point point dans le sens o l exp diteur envoie son message un destinataire qu il connait et qu il d signe explicitement Ce proc d est asynchrone puisque l metteur poursuit ses activit s sans savoir exactement quand son message est trait par le destinataire 4 3 2 La diffusion de messages En prolongement du mod le objet un agent peut envoyer simultan ment un message des objets agents qu il ne connait pas et qui d clencheront r cep tion du message telle ou telle action inconnue de l metteur Les messages utili oRis 511 s s sont en tout point identiques ceux voqu s pr c demment La diff rence re pose sur la mani re de les exp dier et de les recevoir L metteur invoque cette fois la m thode broadcast du message afin qu il soit diffus l ensemble des instances qui peuvent tre concern es Leur d termination se fait l aide de la m thode setSensitivity de la classe Object L invocation de cette m thode requiert deux arguments qui d signent respectivement le type de mes sage diffus auquel l instance devient sensible le nom de la classe et le nom de la m thode qui doit tre d clench e lors de la r ception d un tel message e g setSensitivity WhoAreYou presentMySelf Lorsqu un mes sage est diffus cela provoque instantan ment sur chaque objet sensible ce type de message classe WhoAreYou linvocation de la m thode qu il a sp cifi e presentMySelf C
35. ient un ACL respectant les sp cifications de la FIPA Dans le cas d un SED il conviendrait de d finir la s mantique de la machine tats e g une interpr tation du r seau de Petri 3 Un agentifieur qui permet de convertir un composant neutre en un agent programmable Shoham avoue avoir peu d id es sur ce point Reformulons cette exigence en disant qu il est n cessaire de disposer d un langage permettant de rendre les agents op rationnels i e en faire des composants impl mentables et ex cutables Nous pr f rons consid rer ce troisi me l ment comme un angage d impl mentation Les deux premiers l ments qui sont intimement li s constituent des domaines de recherche ouverts et reposent sur des choix forts quant aux types de SMA que l on souhaite d velopper Int grer ces l ments dans une plate forme vocation g n raliste conduit in vitablement deux cueils l instabilit de la plate forme tant le domaine est encore ouvert et le diktat d un mod le n cessairement pas adapt toutes les situations Concernant ce troisi me l ment plusieurs choix sont possibles ils sont condi tionn s par le type d application envisag et par les caract ristiques technologiques 1 Java Agent Template Lite java stanford edu java agent html 2 www hds utc fr barthes SMAS 3 Foundation for Intelligent Physical Agents www fipa org oRis 503 des environnements d ex cution
36. induit pas un biais qui risquerait d amener le syst me dans un tat global dont la plate forme d ex cution serait responsable il est imp ratif que seuls les proc d s algorithmiques d crits dans les comportements des agents expliquent l tat global du mod le Il apparait donc que la simulation multi agents interactive impose de disposer d un langage d impl mentation qui int gre bien s r le paradigme de la programmation par objets actifs concurrents l int r t de ce paradigme pour les SMA n est pas une id e nouvelle GAS 92 mais qui offre aussi des propri t s suppl mentaires un langage dynamiquement interpr t une granularit instance et un m canisme neutre de simulation du parall lisme Aucun environnement de simulation n offrant l ensemble de ces propri t s ceci nous donc a conduit apr s les avoir clairement d finies d velopper la plate forme de simulation interactive multi agents oRis En effet toutes les plates formes n offrant que des impl mentation d objets actifs ou d agents reposant sur les threads syst me ou Java ne garantissent pas l quit de l ordonnancement des agents Les caract ristiques des langages objets tels que C et Java ne permettent de modifier en ligne une application qu partir de points d entr e pr d finis la compilation et ce tant au niveau classe qu au niveau instance Quant Smalltalk 80 il r pond au premier point mais pas au second oR is est un langage d impl
37. it d un agent ou d un autre utilisateur et les agents r agissent ses actions comme s il s agissait d un autre agent tout moment l utilisateur peut se substituer un agent en d l guant ventuellement une partie de son comportement son avatar par exemple il prend en charge la percep tion et la d lib ration et d l gue la r alisation des actions la gestion des connaissances et la communication tant partag es Cette substitution doit videmment pouvoir tre r versible Du fait de cette exp rience l utilisateur peut avoir besoin de modifier le code de l agent auquel il s est temporairement substitu Pour cela les propri t s de dynamicit du langage d impl mentation la granularit instance l introspection et la r flexion du code la ma trise du contexte d ex cution sont des propri t s indispen sables La notion de temps r el de simulation FUJ 98 est galement fondamentale en simulation interactive Bien que la plate forme Swarm SDG offre des services int ressants concernant la gestion du temps il n est pas possible d int grer le fait que le temps de r action de l utilisateur est impr visible et que pendant ce temps l son environnement continue voluer Le deuxi me point de notre contribution concerne le soin qui a t apport l quit du proc d d activation des objets actifs donc des agents L int r t de l approche individu centr n est plus d montrer mais les r sultats d
38. ite dans le cas rencontr La figure 6 donne un exemple d utilisation de la fonction parse pour modifier le comportement d une instance La composition d une chaine qui concerne une des trois instances cr es permet d exprimer l ajout d un attribut et d une m thode ainsi que la surd finition d une m thode existante La distinction entre la classe et l instance se fait naturellement par l usage de l op rateur de r solution de port e De telles modifications peuvent bien entendu avoir lieu plusieurs reprises en cours d ex cution oRis 519 class Example Definition de la classe Example void new void void delete void void main void Methode main initiale printlin this is an Example execute Code a executer Example ex println program parse program Afficher la chaine composee Interpreter la chaine composee for int i 0 i lt 3 i ex new Example Instancier trois Example string program format int ex i Ajouter un attribut a ex void ex show void Ajouter une methode a ex print EREN ESS NTA void ex main void Surdefinir le main de ex show Example main pour utiliser ce qui a ete ajoute int Example 3 i Ajouter un attribut a ex void Example 3 show void Ajouter une methode a ex t print API e M ee 0 void Example 3 main void Surdefinir le main de ex
39. lasse MyClass 5 par exemple Ce nom n est pas qu une simple fonctionnalit utilitaire mais fait partie int grante des conventions lexicales du langage il s agit d une constante de type r f rence Un ensemble de services permettent de connaitre l ensemble des classes existantes ou des instances d une classe particuli re Il est aussi possible de demander sa classe un objet ou encore de v rifier s il est instance d une classe particuli re ou d une classe d riv e 6 Lecontr le de l ordonnancement des agents Le contr le du proc d d ordonnancement des comportements des agents impl ment s en ORis sous la forme d objets actifs est un point tr s important de notre r alisation L exp rience montre qu en r gle g n rale peu de choses sont annonc es et garanties par les services multi t ches propos s dans les divers environnements de pro grammation Ce manque d information laisse toujours planer un certain doute quant l quit de ces proc d s et aux risques de biais qu ils pourraient induire Nous pr sentons ici le proc d d ordonnancement retenu dans oHis afin que l utilisateur sache exactement quoi il peut s attendre lorsqu il d cide de faire voluer des agents en parall le oRis 513 6 1 Les flots d ex cution Le premier sujet aborder lorsqu on parle de multi t ches concerne la d termi nation de la nature des t ches que l on souhaite faire s ex cuter en parall le Bien qu elles soi
40. lation scientifique l utilisateur intervient avant pour fixer les param tres du mod le et apr s pour interpr ter les r sultats du calcul Il peut observer l volution des calculs mais il reste cependant esclave du mod le Les syst mes de simulation scientifique sont des syst mes centr s mod le l inverse les simulateurs d entrainement sont essentiellement centr s utilisateur pour donner celui ci tous les moyens n cessaires au contr le et au pilotage du mod le le mod le doit demeurer esclave de l utilisateur En introduisant la notion d avatar la r alit virtuelle place l utilisateur au m me niveau conceptuel que le mod le La relation ma tre esclave est ainsi supprim e au profit d une plus grande autonomie des mod les et par voie de cons quence d une plus grande autonomie de l utilisateur Cette approche de la r alit virtuelle rend op rationnelle la simulation multi agents lorsque celle ci n cessite que l op rateur humain fasse partie int grante du mod le ce que nous appelons ici la simulation interactive Dans TIS 01 Tisseau d veloppe une r flexion pist mologique sur ce sujet qu il serait hors de propos d exposer ici L uni vers multi mod les est un syst me multi agents dans lequel des op rateurs humains sont immerg s au sein d instances de mod les des agents s ex cutant de mani re autonome et concurrente Conform ment l approche voyelles DEM 95 ces Agents sont bien s r en Int
41. me pour les flots de m me priorit et nous semble difficile interpr ter propos d entit s autonomes Il nous parait en effet pr f rable d admettre que les diff rentes entit s n exploitent pas le temps de la m me facon plut t que de dire que certaines vivent plus que d autres Afin d assurer un partage quitable du temps entre les diff rentes activit s nous introduisons la notion de cycle d ex cution qui apporte au syst me la propri t suivante chaque flot d ex cution progresse une fois et une seule par cycle Si au cours d un cycle de nouvelles activit s apparaissent celles ci sont ex cut es au cycle suivant pour garantir la terminaison des cycles Nous proposons deux ordres d activation au sein d un cycle La solution la plus imm diate consiste d signer les activit s dans un ordre immuable qui introduit une relation de pr c dence ind sirable puisque l activit de rang n 1 est toujours d sign e avant celle de rang n Ainsi si deux agents sont r guli rement en comp tition pour une ressource celui ayant son comportement au rang n 1 prend syst matiquement la ressource au d triment de celui du rang n Notons que cette priorit parasite ne concerne pas les activit s d un point de vue global mais seulement d un point de vue local En effet au niveau microscopique la derni re activit d un cycle pr c de la premi re activit du cycle suivant le changement de cycle n est de ce point de vu
42. ns L introduction de code source nous permet tout moment d ajouter de nouvelles fonctions celles qui n existaient pas sont cr es et de modifier les fonctions existantes celles qui existaient sont remplac es La d claration d une fonction son prototype 518 RSTI TSI 21 2002 Syst mes multi agents peut m me remplacer sa d finition dans ce cas l appel la fonction est interdit jusqu ce qu une nouvelle d finition soit introduite Ces modifications concernent galement le code compil en autorisant le choix entre plusieurs impl mentations fournies en C ou en retournant une d finition en ORis 7 4 Les interventions sur les classes De la m me fagon qu il est possible d intervenir dynamiquement sur les fonctions oRis permet d ajouter de compl ter et de modifier des classes en cours d ex cution L ajout d une classe peut intervenir tout moment en la d finissant lors d un appel la fonction parse Lorsque l interpr teur rencontre une d finition de classe il peut s agir d une toute nouvelle classe auquel cas elle est cr e ou bien d une classe existante auquel cas elle est compl t e ou modifi e Il est ainsi possible d ajouter des attributs des m thodes et de r crire des m thodes existantes L ajout de m thode est alors tr s similaire l ajout de fonctions ce qui n existait pas existe d sormais et ce qui existait est remplac D une mani re g n rale les remarques concernant les
43. nts comme JATLite des simulateurs de SMA comme SMAS des bo tes outils qui sont g n ralement des paquetages de classes offrant des services fondamentaux cycle de vie des agents communication transport de messages et des classes impl mentant certaines com posantes d un SMA BOI d crit un ensemble de plates formes d velopp es par la communaut scientifique francophone PAR 99 r f rence d autres outils de ce type Pour Shoham un syst me de programmation orient agents est constitu des trois l ments fondamentaux suivants SHO 93 1 Un langage formel de description des tats mentaux des agents qui sont pour Shoham des modalit s telles que les croyances ou les engagements Ceci conduit d finir une logique modale tel que le fait l auteur dans son langage Agent 0 ou Fisher dans MetateM FIS 94 les tats internes d un agent r actif peuvent quant eux tre d crits comme un Syst me v nements Discrets SED tel qu un r seau de Petri comme cela a t fait dans CHE 99a 2 Unlangage de programmation des comportements des agents qui doit respecter la s mantique des tats mentaux ainsi Agent 0 d finit il une interpr tation de la mise jour des tats mentaux qui repose sur la th orie des actes de langage et de l ex cution des engagements Il serait envisageable dans ce cadre d utiliser KQML et si des contraintes d h t rog n it ou de standardisation l imposa
44. nvergent vers un point d entr e unique la fonction parse Cette fonction transmet l interpr teur la chaine pass e en argument ainsi l int gralit du langage est disponible en ligne En effet le m me proc d est utilis pour le chargement initial et pour les interventions en ligne Il est donc possible de r aliser des agents qui disposant d un m canisme d apprentissage pourraient acqu rir de nouveaux attributs et faire voluer leur comportement de mani re autonome 7 2 Le d clenchement de traitements Le premier type d intervention dans un programme en cours d ex cution consiste d clencher de nouveaux traitements Ceux ci permettent notamment de cr er de nou veaux agents d inspecter le mod le d interagir avec les agents ou de les d truire De telles lignes de code trouvent leur place dans un bloc anonyme start ou execute voir la section 6 Comme nous l avons vu pr c demment ces blocs de code sont pris en charge par l ordonnanceur d s qu ils sont analys s par l interpr teur Le bloc start initie un traitement qui continue s ex cuter en parall le des autres activi t s alors que le bloc execute est ex cut de mani re instantan e et ininterrompue L utilisateur peut d clencher des traitements en se faisant passer pour un objet de l ap plication en pr cisant le nom de cet objet devant le bloc start ou execute L objet devient alors un avatar de l utilisateur 7 3 Les interventions sur les fonctio
45. onc n cessaire de r duire au maximum le nombre d erreurs potentielles dans l application Ce point justifie pleinement le choix d un typage fort En effet si les contr les de type ont lieu d s que le code est introduit des incoh rences peuvent tre d tect es ce qui permet de rejeter le code incrimin avant qu il ne provoque des erreurs effectives dans l application De nombreuses autres erreurs peuvent survenir l ex cution et elles ne doivent en aucun cas provoquer l arr t de l application Pour viter d tre oblig d interrompre l application afin de proc der son d verminage nous pr f rons n interrompre que l activit dans laquelle s est produite l erreur Ainsi les autres traitements continuent s ex cuter en parall le pendant qu un utilisateur intervient sur le traitement incrimin Pour faciliter l interaction de l utilisateur avec l application et ses constituants oRis propose quelques m canismes simples et directement utilisables qui sont appa rent s de l introspection D autres services de r flexion plus classiques font l objet d un paquetage particulier Une premi re facilit concerne le nommage des objets et l expression des r f rences Chaque instance cr e re oit automatiquement un nom lisible par l utilisateur qui le d signe de mani re unique Il est constitu du nom de la classe de l objet cr suivi d un point et d un entier servant de discriminant entre les instances d une m me c
46. s 499 524 500 RSTI TSI 21 2002 Syst mes multi agents 1 Introduction L environnement de simulation multi agents que nous proposons dans cet article s int gre dans nos travaux sur la r alit virtuelle Un univers virtuel est un ensemble de mod les num riques autonomes en interaction auquel les humains participent en tant qu avatars La cr ation de ces univers repose sur un principe d autonomie selon lequel les mod les num riques sont dot s de capteurs virtuels pour percevoir les autres mod les poss dent des actionneurs pour agir sur les autres disposent de moyens pour communiquer entre eux et maitrisent leurs coordinations perceptions actions travers un module de d cision Un avatar est alors un mod le num rique dont les capacit s de d cision sont d l gu es l op rateur qu il repr sente Les mod les num riques situ s dans l espace et dans le temps voluent ainsi de mani re autonome au sein de l univers virtuel dont l volution d ensemble est le r sultat de leur volution conjointe L op rateur est la fois spectateur acteur et cr ateur de l univers virtuel auquel il appartient Il est en relation avec son avatar par l interm diaire de p riph riques sensori moteurs vari s et est immerg dans un environnement multisensoriel Le statut de l utilisateur en r alit virtuelle est donc diff rent de celui qu il peut avoir en simulation scientifique ou avec des simulateurs d entrainement En simu
47. s dynamiques du langage permet l utilisateur de d clencher un traitement en cours d application en se faisant passer pour une instance particuli re cela revient consid rer cet objet comme un avatar de l utilisateur Quelle que soit la mani re utilis e parmi les trois pr sent es ici pour cr er des flots d ex cution ceux ci sont g r s de la m me fa on par l ordonnanceur Il sont tous d sign s par un identifiant entier et peuvent tre suspendus relanc s ou d truits Un soin particulier a t apport au traitement des erreurs pouvant survenir en cours d ex cution Puisqu il s agit par essence m me de circonstances impr vues tels une division par z ro ou l acc s une instance ayant t d truite nous n avons pas cherch proposer un m canisme de rattrapage d erreurs pr vues de type t ry catch qui n a effectivement pas vocation corriger les erreurs mais qui permet d en signaler clairement l occurrence Dans oHis une erreur lors de l ex cution d une activit provoque la destruction de ce flot et de lui seul ainsi que l affichage du message d erreur et de la pile d ex cution Cette solution consistant n arr ter que l activit incrimin e dans la g n ration d une erreur permet d envisager un univers qui continue s ex cuter m me quand des erreurs se produisent localement 6 2 Le proc d d activation 6 2 1 L architecture retenue L ordonnanceur ORis maintient un ensemble de flots d
48. sed Sys tems European Conference on Cognitive Science Saint Malo p 117 132 1995 FAV 01 FAVIER P A DE LOOR P et TISSEAU J Programming agent with purposes application to autonomous shooting in virtual environments International Conference on Virtual Storytelling Avignon 27 28 septembre 2001 FIS 94 FISHER M A survey of Concurrent METATEM The language and its applica tions Temporal Logic Proceedings of the First International Conference vol 827 de Lecture Notes in Artificial Intelligence p 480 505 Heidelberg Germany 1994 FUJ 98 FUJIMOTO R M Time Management in the High Level Architecture Simulation vol 71 n 6 p 388 400 d cembre 1998 GAS 92 GASSER L et BRIOT J P Object Based Concurrent Programming and Distri buted Artificial Intelligence p 81 107 Kluwer 1992 GUE 99 GUESSOUM Z et BRIOT J P P From Active Objects to Autonomous Agents IEEE Concurrency vol 7 n 3 p 68 76 1999 HAR 00 HARROUET F oRis s immerger par le langage pour le prototypage d univers virtuels base d entit s autonomes Th se de Doctorat en Informatique Universit de Bretagne Occidentale d cembre 2000 HEW 73 HEWITT C BISHOP P et STEIGER R A Universal Modular Actor Formalism for Artificial Intelligence Third International Joint Conference on Artificial Intelligence 1973 IGL 98 IGLESIAS C A GARIJO M et GONZ LEZ J C A
49. sions de donn es les math matiques les s maphores d exclusion mutuelle voir la section 6 les liens r flexes voir la section 4 2 les conteneurs g n riques les composants d interface graphique le trac de courbes les objets situ s dans un plan ou dans l espace voir la section 3 1 les outils de r flexion les inspecteurs graphiques la communication par fichiers socket IPC le contr le de session distance l interfa age avec Java et Prolog les contr leurs flous Figure 2 L environnement graphique d oRis Un autre aspect d OHiS concerne l environnement graphique qu il propose l utilisateur Par d faut le lancement d oHis fait appara tre une console graphique permettant le chargement des applications leur lancement leur suspension Comme le montre la figure 2 la console en haut gauche propose un diteur de texte repr sentant un des nombreux moyens d effectuer des interventions en ligne Les autres fen tres repr sent es ici sont de simples objets de l application une vue sur le monde tridimensionnel un traceur de courbes et des inspecteurs Ces objets et bien d autres sont directement accessibles depuis la console mais peuvent bien entendu tre cr s et contr l s par programme 2 3 Des objets et des agents Un SMA n est bien s r pas uniquement compos d agents Ainsi l environnement des agents est compos d objets passifs qui ne font rien tant que l on interagit pas avec e
50. situ s localisables et d tectables dans un environnement g om trique g n ralement de dimension deux ou trois L introduction de dimensions physiques l environnement enrichit la s mantique de notions fondamentales des SMA telles que a localit elle n est plus seulement logique i e conditionn e par l organi sation du SMA mais elle correspond une proximit spatiale distance entre deux objets ou topologique un objet est dans un autre ce dernier tant convexe ou est attach un autre la perception elle ne repose plus uniquement sur l identification d une instance et de ces attributs s mantique applicative mais aussi sur la localit spatiale ou la oRis 507 d tection des contours et les agents doivent donc disposer de capteurs appropri s ayant un certain champ de perception les interactions on peut alors parler de notions telles que les collisions l attachement d objets oRis offre des environnements bidimensionnels et tridimensionnels dans lequel les objets sont d finis par leur position leur orientation et leur forme g om trique Les fonctionnalit s de tels objets sont tr s similaires Qu ils s agisse d Object2d ou d Object3d oRis offre bien videmment des outils permettant l utilisateur de s immerger dans le SMA l utilisateur comme tout agent a une vision locale de l environnement peut tre per u par les autres agents peut interagir physiquement
51. tion ces contr les d acc s dynamiques ouvrent quelques perspectives concernant la program mation de syst mes multi agents Ceci permet d dicter des r gles d interaction au sein de structures organisationnelles et de les rendre dynamiques Ainsi est il envisa geable de donner un agent le moyen de refuser d ex cuter un service parce que le demandeur n a pas d autorit sur lui dans la structure organisationnelle ou parce que le service pourrait avoir t demand m me indirectement par un agent qui se serait montr non coop ratif dans une pr c dente demande 510 RSTI TSI 21 2002 Syst mes multi agents 4 2 Les liens r flexes oRis fournit un m canisme de programmation v nementielle appel liens r flexes qui permet un agent de r agir la modification d un attribut d un objet qu il s agisse d un de ses attributs tat interne de l agent boite aux lettres ou l attribut d un autre objet cas d un agent qui surveille un objet de l environnement o une caract ristique perceptible d un autre agent Un lien r flexe est un objet assign un attribut et qui voit certaines de ses m thodes se d clencher automatiquement chaque fois que l attribut en question est modifi Ainsi lors de la modification d un attribut auquel un lien r flexe est associ celui ci est activ ce qui d clenche automatiquement l ex cution de sa m thode before juste avant que la modification ait lieu et d
52. tit s de diff rentes natures des objets et des objets actifs s mantique d finie dans UML RUM 99 des acteurs tel que le propose HEW 73 un acteur est une entit active qui joue un r le en donnant la r plique conform ment un script son comportement s exprime par des envois de messages ou des agents que l on peut d finir comme des entit s autonomes il n y a pas de script a contrario du mod le d acteur et dont le comportement repose sur la perception de l environnement et la r alisation d actions cette derni re tant ventuellement guid e par des buts propri t de pro activit Fondamentalement l impl mentation de ces diff rents types d entit repose sur la notion d objet instance d une classe la concurrence et l autonomie tant fond e ce niveau sur la notion d objet actif i e un objet ayant ses propres flots d ex cution La pro activit des agents repose sur les notions de buts de connaissances de plans d actions et sur un m canisme d inf rence La programmation logico d ductive correspond ce besoin avec OBis ces l ments peuvent tre impl ment s en Prolog avec lequel il est interfac 3 Des agents situ s dans un environnement Que ce soit parce que le syst me simul poss de lui m me une composante g om trique ou que ce soit une m taphore qui am liore l intelligibilit du mod le la simulation multi agents peut n cessiter de recourir des agents
53. type de multi t ches utilis et d une mani re plus g n rale du contexte applicatif de la simulation 4 Les interactions entre agents Les interactions entre un agent et son environnement se font par la manipulation des caract ristiques structurelles des objets qui le composent Cela se traduit par la lecture ou la modification des attributs des objets cibles cette derni re pouvant se faire par invocation d une m thode e g appel de la m thode move d un objet avec lequel un agent situ entre en collision Ces interactions peuvent aussi se traduire par l instantiation d objets ou leur destruction on fait appel aux op rateurs new et delete Dans tous les cas la r action des objets de l environnement est imp rative et synchrone Comme cela a t soulign dans la section 2 3 les interactions entre agents peuvent tre de diff rentes natures Elles peuvent tre r actives exemple de la collision ou par changes de messages cet effet le langage os offre quatre solutions qui peuvent tre utilis es simultan ment dans l impl mentation d un agent Ces services sont assur s par la classe Object 4 1 Les appels synchrones Bien que le mod le objet utilise le concept d envoi de messages pour d crire la communication entre objets dans la pratique les langages impl mentent un m ca nisme d appel synchrone de m thodes L invocation d une m thode sur un objet ne oRis 509 cr e pas un nouveau flot d ex cution
54. ux et d objets actifs qui agissent sans tre sollicit s et qui g n rent des v nements Les agents cr ent modifient d truisent aussi des objets tels que des messages et des connaissances qui bien que pouvant un certain niveau tre con us comme des agents sont bien impl ment s au niveau terminal de la r cursion comme des objets De m me les interactions entre entit s ne se font pas toutes ni sous formes d actes de langage interpr t s de mani re asynchrone par leur destinataire ni sous 506 RSTI TSI 21 2002 Syst mes multi agents forme de trace dans l environnement Les agents per oivent les caract ristiques des objets ou des autres agents e g la position g ographique d un agent le contenu d un message ce qui se traduit par la lecture d un attribut de l objet consid r Sym triquement la modification de l environnement revient modifier un attribut De plus le comportement d un agent peut r sulter d une action non intentionnelle Imaginons deux personnages qui discutent dans la rue et qui se font bousculer par des passants ils d cident chacun de leur propre interpr tation des messages qu ils s changent mais ils subissent les collisions des passants sans que leurs intentions ou une quelconque d cision de leur part ne soient impliqu es lorsqu on se fait bousculer on n a pas le choix Par cons quent dans une m me application il doit tre possible d utiliser des en
Download Pdf Manuals
Related Search
Related Contents
取扱説明書 - ソニー製品情報 PDFファイル - 製品評価技術基盤機構 Technical Manual and Replacement Parts List Freezer Steam Humidifier SK300 series User manual - Chinavasion Sweex SA500 BDレコーダーSTB:BD-V8000RJ 携帯電話持出し機能動作確認機種一覧 Copyright © All rights reserved.
Failed to retrieve file