• Aucun résultat trouvé

Un processus de développement en spirale pour la simulation multi-agents

N/A
N/A
Protected

Academic year: 2022

Partager "Un processus de développement en spirale pour la simulation multi-agents"

Copied!
14
0
0

Texte intégral

(1)

Un processus de développement en spirale pour la simulation multi-agents

Rémy Courdier(1), Pierre Marcenac(1), Sylvain Giroux(2)

(1) IREMIA - Institut de Recherches en Mathématiques et Informatique Appliquées - Université de La Réunion - Équipe SMA - BP 7151, 15 Avenue René Cassin - 97715 St Denis Messag. Cedex 9 - La Réunion - France

(2) CIRANO -Centre Interuniversitaire de Recherche pour l’ANalyse des Organisations, 2020 rue university, Montréal, H3A 2A5, Canada email : courdier@univ-reunion.fr, marcenac@univ-reunion.fr, girouxs@cirano.umontreal.ca

RÉSUMÉ. Le cadre général de notre projet est celui du développement d’environnements de simulation de systèmes complexes par une approche agent, où l’objectif poursuivi est la définition et la mise en œuvre d’une plate-forme générique et évolutive. Cet article décrit une application de nos recherches dans ce domaine, en présentant un processus de développement adapté à ce type de problèmes. L’objectif de l’article est double, il présente à la fois le processus de développement du projet et son implémentation. De par la nature peu déterministe des applications envisagées et l’approche par agents encore à ses balbutiements, une méthode basée sur des spirales récursives semble tout à fait adaptée.

Dans un deuxième temps, l’implémentation de ce type d’architecture nécessite un environnement « tout objet » à la Smalltalk, pour implanter à la fois les couches logicielles supérieures comme la couche agent, et les outils pour la simulation.

ABSTRACT. The general framework of our project is the development of a simulation environment for complex systems with an agent-based approach. The main goal is to define and implement an evolutionary and generic platform. This paper describes an application of our research in this area, by presenting a development process adapted to this kind of issue.

Because of the non-determinist part of the tackled domain, and the agent-approach which is yet in its infancy, a spiral-based methodology seems the appropriate solution to successfully tackle this issue. On the other way, implementing such applications needs a well-suited environment. In such a frame, Smalltalk and uppers levels which have been developed on the top was a very interesting candidate to investigate, as it offers a wide variety of common mechanisms to build both agents and simulation tools.

MOTS-CLÉS : méthodologie en spirale, modélisation de systèmes, simulation, Smalltalk.

KEY WORDS : spiral method, system modelling, simulation, Smalltalk.

1. Introduction

(2)

Le travail proposé dans cet article s’apparente à celui du développement d’un environnement de simulation orienté-agent pour la modélisation de systèmes complexes. Par systèmes complexes, nous entendons systèmes ayant des comportements par nature non-linéaires et mal compris [LOR 92], d’où l’intérêt de proposer des environnements pour en permettre la modélisation et la simulation. Les comportements non déterministes des composants du monde réel favorisent une méthodologie de développement basée sur une démarche expérimentale. Dans l’environnement de prototypage évolutif qui en découle, l’ensemble des mécanismes internes à mettre en œuvre ne sont pas connus au départ du projet et, par conséquent, la possibilité d’ajustement de concepts sous-jacents de l’architecture logicielle du système y est fondamentale.

Cette « philosophie » est basée sur celle de Grady Booch, qui considère qu’une application complexe qui donne de bons résultats est invariablement fondée sur une application simple qui donnait de bons résultats [BOO 91]. Cette suggestion est à la base de la méthodologie de développement en spirale [BOE 86], introduite pour minimiser les risques financiers à haut risque technologique, et mise en œuvre par notre équipe dans le contexte des systèmes multi-agents. En effet, la méthode proposée <Objectifs, Expériences, Abstraction, Application> a pu conduire au développement d’une plate-forme générique pour des applications de simulation multi-agents, nommée GEAMAS (GEneric Architecture for MultiAgent Simulation).

Dans un premier temps, l’article se propose de décrire la méthode de développement en spirales récursives utilisée dans le projet. Ce type d’approche permet d’abstraire un ensemble de concepts génériques à partir des étapes précédentes de la spirale, et de définir ainsi les bases d’une plate-forme de développement par agents. Le choix d’une telle méthode est également renforcé, en s’appuyant d’une part sur le contexte des systèmes abordés nécessitant une expérience qu’il n’est pas possible de maîtriser au début du projet, et d’autre part sur la non-maturité des systèmes multi-agents, nécessitant de pouvoir ajuster le modèle au fur et à mesure des besoins. Notre contexte de développement de systèmes multi- agents dédiés à la simulation de phénomènes complexes conjugue les caractéristiques structurelles (architecture objet) et fonctionnelles (réalisation d’opérations complexes sur une expertise) de ces deux contraintes ; ainsi, les principes fondamentaux sur lesquels nous avons établi notre approche de conception sont issus de ce modèle en spirale. Il est habituellement reconnu que la conception occupe les deux-tiers d’un projet de développement. En effet, le souci de stabilité, de cohérence et de réutilisabilité impose aux concepteurs un travail d’analyse conceptuelle soigné avant l’implémentation. L’article reflète cette proportion, tant il nous a semblé important de respecter cette démarche dans une optique de qualité.

Dans un deuxième temps, nous abordons également les choix d’implémentation retenus pour satisfaire de telles contraintes et respecter les objectifs conceptuels.

L’article montre comment, à partir de Smalltalk, il a été envisagé de construire des couches logicielles supérieures, pour définir notamment la notion d’agent. L’accent est ici mis sur les caractéristiques essentielles construites autour du langage, en mettant en avant la nécessité d’un langage dynamique et « tout objet ». Cette partie sera donc abordée dans l’optique de présenter les aspects conceptuels difficiles à mettre en œuvre, notamment les caractéristiques fondamentales de l’approche agent.

L’architecture est ainsi décrite en couches logicielles qui s’articulent autour de Smalltalk-80 : Actalk [BRI 89] et ReActalk [GIR 96a] qui permettent d’en dériver

(3)

des applications de simulation. Smalltalk-80 offre la réflexivité structurelle et l’environnement objet minimal, Actalk un système minimal d’acteurs, ReActalk rajoute la réflexivité « opératoire » aux acteurs pour implémenter les agents.

2. Méthodologie en spirale et simulation par agents

L’un des problèmes majeurs soulevés par le développement d’applications un tant soit peu de complexes est celui de l’adaptation des méthodes de conception pour tirer au mieux profit des caractéristiques de mise en oeuvre. C’est pourquoi, en préalable à tout autre travail, nous nous sommes attachés à définir un support méthodologique à notre problématique.

La méthodologie la plus couramment utilisée en matière de génie logiciel est basée sur le cycle de « spécification, conception, codage et maintenance ». Cette approche, dite en cascade, nécessite que chaque phase soit entièrement achevée avant de commencer la phase suivante, un retour à une phase précédente étant induit seulement en cas de modification des spécifications initiales. D’autres méthodologies [ING 81], [SEI 87] très utilisées dans les environnements objets, et notamment dans le cadre du développement de prototypes, autorisent l’itération sur certaines phases du cycle de conception du logiciel.

Plus récemment, des méthodologies de conception orientée objet telles que [BOO 91] ou [COA 91], ainsi que des méthodologies de conception de systèmes à bases de connaissances [GOL 86] ont introduit le modèle en spirale, dont les principales bases ont été établies par Barry Boehm [BOE 86], [BOE 89]. L’une des caractéristiques essentielles de ce modèle réside dans le fait que l’intégralité de la démarche de conception peut entièrement être appliquée de nouveau sur le résultat obtenu par un précédent cycle de spirale.

Nos multiples expériences de développement [GRA 95], [LAH 96], [LEM 96], [CAL 97], depuis maintenant plus de quatre années dans le domaine des systèmes multi-agents, nous ont conduit par ailleurs à affiner le modèle initial afin de l’adapter aux contraintes spécifiques de développement d’une plate-forme générique de conception de systèmes de simulation par agents.

L’une des difficultés premières en matière de développement de systèmes de simulation multi-agents consiste à organiser une expertise donnée en une société d’agents autonomes, afin de modéliser le plus fidèlement possible toute la complexité du monde réel. Un agent est en effet perçu comme « une entité physique ou abstraite qui est capable d'agir sur elle-même et son environnement, qui dispose d'une représentation partielle de son environnement, et qui, dans un système multi- agents, peut communiquer avec d'autres agents, et dont le comportement est la conséquence de ses observations, de sa connaissance et des interactions avec les autres agents » [FER 89].

Dans notre contexte, un agent représente donc une entité du monde réel, dotée d’indépendance et d’autonomie. L’indépendance assure à l’agent la possibilité de développer son propre cycle, sans recevoir forcément de sollicitations extérieures, et l’autonomie lui ajoute le contrôle de son comportement. L’autonomie assure ainsi à l’agent la capacité de concevoir et d’exécuter ses propres comportements en fonction des événements externes, lui permettant d’interpréter les messages extérieurs pour contrôler son activité (sorte de conscience). Cette vision de la modélisation du monde réel autorise alors de pouvoir masquer la complexité en la

(4)

distribuant en entités plus simples. Mais surtout, elle développe une approche différente de la notion de système, dans le sens où le résultat du système n’est alors plus vu comme celui d’un programme unique, mais plutôt comme le résultat des interactions entre agents.

Une seconde difficulté est alors liée aux limitations des capacités fonctionnelles des moteurs de simulation de tels systèmes. Ces limitations sont essentiellement dues au manque de maturité de tels environnements.

Certaines approches [COL 96] proposent une base méthodologique adaptée pour la modélisation d’une expertise en un système multi-agents. De telles approches permettent d’implanter un système en considérant un moteur de simulation s’appuyant sur des mécanismes opératoires bien déterminés. L’originalité de notre démarche tient à l’intégration, mais surtout à la formalisation, de ce cycle de développement de systèmes de simulation spécifiques dans un cycle plus large de développement logiciel.

Ainsi notre modèle repose sur deux niveaux en spirale, une « macro-spirale projet » et une « micro-spirale d’expériences ». Le modèle énonce alors un ensemble de phases de conception bien délimitées par des Points de Contrôles (CP) précis. Le but est d’enrichir, par nos différentes expériences, d’une part les possibilités d’abstraction de l’architecture objet sous-jacente à GEAMAS, et d’autre part la puissance d’abstraction des mécanismes utiles pour la modélisation des connaissances des phénomènes à simuler.

L’intérêt de l’utilisation du modèle en spirale dans notre contexte peut encore être souligné par les deux points suivants :

— L’ensemble des spécifications à considérer pour réaliser la simulation de phénomènes complexes est rarement connu et clairement énoncé en début de projet.

En effet, il s’agit en règle générale de phénomènes en cours d’étude dans des laboratoires de recherche.

— Les systèmes de simulation multi-agents qui nous intéressent reposent sur des mécanismes de faible maturité. Il s’agit d’un domaine de recherche où toute nouvelle application de simulation abordée oblige à affiner les mécanismes opératoires des moteurs de simulation.

Ainsi, la « macro-spirale projet » fait référence au cycle de développement de génie logiciel. Elle est utilisée comme un modèle de développement incrémental pour la plate-forme GEAMAS. La « micro-spirale d ’expériences » quant à elle, fait référence aux méthodologies de développement utilisées en ingénierie des connaissances. Elle sert au contrôle du processus de développement de l’application à simuler.

3. La macro-spirale projet 3.1. Les phases de la spirale

Le cycle <Objectifs, Expériences, Abstraction, Application> de la macro-spirale projet prend naissance lorsque la connaissance de certains mécanismes d’évolution d’un système complexe peut être enrichie par simulation, avec le support de la plate- forme GEAMAS. Notre modèle en spirale définit alors quatre phases principales :

(5)

1. La phase « Objectifs » définit les objectifs généraux à atteindre en terme de caractéristiques fonctionnelles à supporter par la plate-forme GEAMAS et en terme de résultats attendus par le système de simulation considéré. Pour cela, cette phase intègre la définition d’un ensemble de plans d’expériences permettant de valider les prototypes probatoires et le système final.

2. La phase « Expériences » est une phase d’acquisition par raffinements successifs des connaissances relatives au système complexe étudié. Cette phase conduit au développement de prototypes probatoires très avancés du système complexe. La phase se termine lorsque les plans d’expériences peuvent être déroulés avec succès.

3. La phase « Abstraction » permet à l’équipe en charge de la plate-forme générique GEAMAS de généraliser, d’optimiser ou de mettre en évidence certains mécanismes informatiques internes à GEAMAS, par l’analyse des prototypes de simulation réalisés lors de la phase « Expériences ». Seuls les éléments complètement génériques au problème de la simulation par agents sont retenus dans cette phase. Les mécanismes génériques au domaine d’application considéré sont identifiés mais feront l’objet quant à eux d’un composant logiciel défini dans la phase « Application ». La phase « Abstraction » conduit à la fourniture d’une nouvelle version logicielle de GEAMAS.

4. Enfin, la phase « Application » correspond à l’instanciation du système complexe considéré avec la nouvelle plate-forme GEAMAS. Cette phase inclut une procédure de validation des résultats des séquences de simulation réalisées, ainsi que d’analyse des performances de la plate-forme de simulation.

Ce cycle peut être entièrement reproduit pour aider à la compréhension de nouveaux mécanismes d’évolution du système complexe considéré, ou pour développer une nouvelle application de simulation. La spirale est représentée graphiquement par la figure 1. Elle est divisée en quartiers, chacun d’entre eux représentant une phase du cycle. Chaque quartier ou phase de la spirale s’achève par un Point de Contrôle (CP), représenté par un losange en figure 1. Un Point de Contrôle doit être validé pour passer d’une phase à une autre.

3.2. Illustration du cycle de la macro-spirale

Notre approche est donc basée sur une démarche récursive avec une première spirale commençant au centre d’un cercle et suivie par une série de cycles qui s’enchaînent en spirales de même centre, comme l’illustre la figure 2.

Nous avons appliqué ce processus de développement au sein de notre équipe de recherche pour le développement de deux types d’applications. Tout d’abord, les systèmes tutoriels intelligents (application TREMMA), avec comme objectifs concrets la modélisation des mécanismes de résolution de problèmes de géométrie

(6)

Objectifs généraux Procédures d’évaluation Phase 0 Objectifs

Phase 1 expériences Phase 2

Abstraction Phase 3 Application

Raffinements par ajustements successifs des connaissances d’applications spécifiques Généralisation et

optimisation des mécanismes opératoires et de l’architecture sous- jacente de GEAMAS Re-instanciation des applications et nouvelle validation des résultats de simulation

CP1 CP3

CP4

CP2

Point d’acceptance des résultats de simulations Point

d’acceptance de GEAMAS

Point d’acceptance de l’évaluation générale

Point de non-retour ou d‘engagement

Figure 1. Le cycle <Objectifs, Expériences, Abstraction, Application>

GEOMAS : application de simulation d’éruptions volcaniques du "Piton de la Fournaise"

TREMMA: Application d’aide à la résolution de problèmes de géométrie

Architecture de modélisation en trois niveaux d’abstraction

Etude de mécanismes de raisonnement parallèle pour la résolution multi points de vue dans les systèmes complexes en contexte multi-agents

Expériences sur le domaine de la Géophysique : éruptions et séismes Récursivité et

réutilisation de modèles partiels

Etude des phénomènes émergents dans les systèmes complexes en contexte multi-agents Gestion de phénomènes

émergents : mécanismes de Recomposition et de

Décomposition Expériences relatives

au domaine des Systèmes Tutoriels Intelligents

Figure 2. Exemple de spirales réalisées dans notre projet.

mis en œuvre par des apprenants ; ensuite, un projet plus ambitieux d’aide à la prédiction de phénomènes géophysiques, plus précisément des séismes et des éruptions volcaniques du « Piton de la Fournaise », le volcan le plus actif de la zone

(7)

Océan Indien. Cette dernière application est présentée dans le paragraphe suivant, pour illustrer le processus de développement en spirales récursives.

3.3. Un exemple d’application

Cette application d’aide à la compréhension des phénomènes volcaniques est représentée par la dernière spirale de la figure précédente, et a été appelée GEOMAS (acronyme pour GEOphysics and MultiAgent Systems). Le point crucial était de déterminer si la complexité des mécanismes volcaniques émerge de l’hétérogénéité géométrique et matérielle, ou plutôt des comportements chaotiques associés aux équations non-linéaires gouvernant les transferts de magma.

Elle a commencé par l’étude du domaine d’application en collaboration avec nos partenaires géophysiciens, particulièrement axée sur les phénomènes émergents dans les systèmes complexes. Le premier point de contrôle a ensuite validé la faisabilité du travail, en nous offrant une première vision conceptuelle de la future application. A ce stade, deux types agents et leur comportement interne, ont été identifiés comme jouant un rôle fondamental dans le système : les lentilles de magma et les éléments de roche. Les agents évoluent dans un univers dont la structure est définie par les réseaux de communication individuels. Leur comportement est défini localement et ils ne peuvent intervenir qu’avec leurs voisins immédiats. Les lentilles échangent entre elles du magma par l’intermédiaire des agents roche.

Dans la deuxième étape (phase Expériences), les lois physiques des agents roche et lentille ont été définies, permettant de représenter avec réalité et précision le système. Ainsi des règles locales ont été mises en place pour contrôler les transferts de flux de magma, par exemple le seuil critique de chaque lentille ou le degré d’échange entre agents voisins. Les attributs des agents-roche dirigent les échanges de magma, tandis que les lentilles contrôlent les volumes échangés. Les comportements et les états des agents sont influencés par les voisins qui les entourent. Lorsqu’un agent entreprend une action ou qu’il change d’état, certains de ces voisins peuvent réagir, et déclencher à leur tour les comportements des autres agents, produisant ainsi des avalanches. Par exemple, lorsqu’un agent lentille reçoit du fluide, sa pression interne augmente. Si son seuil critique est atteint, le magma en excès est transféré à d’autres agents, générant parfois des éruptions, comptabilisées à des fins d’analyse. Le prototype ainsi implémenté a été testé par nos collaborateurs pendant plus de 4 mois intensivement, et le deuxième point de contrôle a ensuite validé les résultats. Néanmoins, cette phase est plus complexe, car elle est elle- même vue comme une (ou plusieurs) spirale(s), appelée micro-spirales (voir le paragraphe 4 à ce sujet).

La troisième phase a été sans doute la plus importante dans GEOMAS. Elle nous a permis de capitaliser notre savoir-faire, et de l’exprimer au sein d’une plate-forme générique, autorisant la réutilisabilité des mécanismes et des modèles d’agent. Au cours de cette phase, il est alors essentiel de savoir prendre le recul nécessaire sur l’application, afin d’en abstraire l’ensemble des concepts qui peuvent apparaître généraux. Ceci explique grandement pourquoi il est essentiel de la dissocier (dans le temps) de la phase précédente. Dans ce cas précis, le travail a conduit :

— à extraire des agents lentille et roche leur mécanisme d’interaction,

(8)

— à comprendre que des niveaux de granularité d’agents étaient essentiels dans le cadre de la simulation de systèmes complexes,

— et enfin à construire un modèle générique, intégré dans une architecture, permettant de faciliter ensuite très grandement le processus de conception d’applications.

Le point de contrôle a validé ici l’architecture générique par des tests ad-hoc, et vérifié que des applications nouvelles pouvaient être construites sur cette base.

Enfin, dans la dernière phase, le prototype de l’étape 2 a été re-développé, sur la base de la plate-forme générique obtenue dans l’étape 3. Dans notre exemple, les agents lentille et roche ont été développés en partant des classes génériques implantant le modèle d’agent. Il est clair alors que des connaissances et des comportements spécifiques à la volcanologie ont du être rajoutés à cette étape, afin d’instancier convenablement le modèle. Les résultats obtenus lors des simulations ont alors permis de démontrer qu’un volcan de type de celui étudié pouvait être vu comme un réseau de plusieurs lentilles de magma interconnectées. Le dernier point de contrôle a validé l’application finale GEOMAS, par la vérification des résultats des simulations qui ont reproduit de façon globale la complexité du comportement du volcan, comportement jusqu’alors inaccessible par des approches plus classiques.

4. La micro-spirale d’expériences

Cette phase conduit le processus de développement de l’expérimentation, avant la phase d’abstraction. Elle peut elle-même être composée de quatre étapes, suivies d’une procédure de validation respectant les plans d’expériences définis dans la phase « Objectifs » :

— Analyse du monde réel : définition du niveau d’abstraction du modèle de connaissances à produire et du niveau de granularité des connaissances nécessaire au système de simulation considéré.

— Identification des « micro-agents » : identification de composants autonomes du monde réel, que nous modélisons ensuite par des agents réactifs (au sens de J. Ferber [FER 95]). Cette étape est proche de la phase d’identification des comportements élémentaires suggérée par A. Collinot et al [COL 96].

— Définition du « macro-agent » : cette étape correspond à la description de la société d’agents. Elle décrit l’espace structurel dans lequel évoluent les micro- agents, et identifie, dans cet espace, des objets non-réactifs appelés « objets situés » à considérer lors des simulations.

— Définition des « médium-agents » : d’un niveau de granularité intermédiaire, ils représentent des groupes d’agents réactifs. Les médium-agents permettent d’organiser et de distribuer la complexité des relations comportementales existantes entre les micro-agents.

Plusieurs expériences peuvent être menées dans cette phase, comme l’illustre la figure 3.

(9)

Abstraction Application

Objectifs

expériences

Expérience 1 : Simulation d’éruptions volcaniques pour l’aide à la compréhension des facteurs géophysiques du “Piton de la Fournaise”

Expérience 2 : simulation de séismes pour l’étude des facteurs jouant un rôle dans les phénomènes sismiques Premier tour de spirale Second tour de spirale

systèmes complexes de géophysiques

GEOMAS V 0.1

GEOMAS V 0.2

Figure 3. La micro-spirale d’expériences.

5. Le support de développement du projet 5.1. Implémenter des agents pour la simulation

Nous rappelons brièvement ici les principes et exigences de l’implémentation d’un environnement de simulation par agents, qui nous ont conduit à mener nos implémentations sur la base de Smalltalk.

La représentation explicite des composants et des états du système, avant et après perturbation, constitue une difficulté majeure de la modélisation.

L’environnement de développement doit alors favoriser la description naturelle des composants du monde réel et leur manipulation. Smalltalk, dans la lignée des langages de simulation de type Simula [BIR 73] qui a servi de modèle pour formaliser les concepts d’objet et de classe, facilite cette description, en proposant le même formalisme « tout objet » aux concepteurs et aux développeurs du système.

Par ailleurs, Dans notre projet, l’analyse des univers réels complexes est abordée suivant une approche de modélisation par agents communiquants, dont une définition simpliste pourrait être formulée autour de la triade indépendance- interactions-autonomie. En effet, chaque entité du monde réel est représentée suivant ses capacités d’indépendance (au sens objet actif mettant en œuvre un processus parallèle), d’interactions avec les autres agents (comme moyen de communication de résultats intermédiaires) et d’autonomie (permettant de s’adapter dynamiquement en agissant sur son comportement).

Ainsi un agent peut être vu de façon grossière comme un composant logiciel isolé (un objet), doté d’indépendance (capacité d’envoi de messages asynchrones) et d’autonomie (nécessitant l’implantation d’une procédure de contrôle des

(10)

comportements de l’agent). Nous allons maintenant mettre l’accent sur la façon dont l’environnement de développement agent a été construit, nous permettant ensuite d’y greffer nos applications, dans les différentes étapes de notre cycle de développement qui le nécessitent.

5.2. Une base pour construire : Actalk et ReActalk

Notre environnement de simulation procède par extensions successives de Smalltalk-80 par héritage. Tout d’abord, Actalk [BRI 89], un système minimal d’acteurs conçu pour l’étude et l’exploration des modèles d’acteurs, introduit principalement le parallélisme dans le monde séquentiel des objets Smalltalk. Actalk permet ainsi de gérer aisément les capacités d’indépendance et d’interactions des agents. En Actalk, un acteur est implémenté grâce à deux composants : un comportement, responsable de l’interprétation des messages et l’acteur proprement dit responsable du traitement des messages. Ainsi, deux classes principales sont ajoutés au noyau Smalltalk : Actor et ActorBehavior. L’acteur est composé d’une boîte aux lettres, organisée comme une liste qui reçoit les messages envoyés à l’acteur, et d’un script qui en décrit son comportement après réception d’un message.

Ensuite, ReActalk [GIR 93], [GIR 96a] constitue la couche agent, où l’agent est le composant logiciel atomique visible par le concepteur du système. ReActalk définit tout d’abord l’organisation des agents dans une société, en proposant une structure de représentation adéquate. Mais surtout, il permet d’exprimer aisément les capacités d’autonomie de l’agent. celles-ci sont basées sur la réflexivité mise en œuvre dans ReActalk, matérialisées sous la forme de méta-agents. Un méta-agent permet à un agent de s’adapter dynamiquement en agissant sur son comportement. Il tend à faciliter l’implantation des mécanismes d’adaptation de l’agent, car il autorise un contrôle de la modification dynamique des entités qui composent le système.

Ainsi, un agent est vu comme un acteur réflexif, où la réflexivité est « opératoire », dans le sens où elle permet d’isoler l’acteur de sa classe [GIR 96b], et lui donner ainsi les capacités d’autonomie et d’évolution recherchées.

Cette vision en couches libère le concepteur d’un effort important de programmation en leur permettant de construire rapidement des applications pratiques de simulation avec une très grande flexibilité. La figure 4 suivante, inspirée de [GIR 93], permet de visualiser les extensions successives de Smalltalk conduisant à l’implantation du concept d’agent dans l’univers Smalltalk.

6. Conclusion

De part les nombreuses expérimentations ainsi que les tâtonnements inhérents aux mondes réels que nous avons abordés, deux éléments indispensables devaient nous conduire dans notre démarche : tout d’abord définir et s’astreindre à un processus de développement de qualité, et ensuite disposer d’un environnement de développement souple et évolutif. L’un de nos constats majeurs, quant aux résultats obtenus par notre équipe en matière de simulation de systèmes, tient selon nous au processus de développement défini dans le cadre de nos projets.

(11)

ReActalk Actalk

Object

Model (dependents)

DefaultActorBehavior (aself)

ReflectiveActorBehavior ()

AgentBehavior Smalltalk-80

MinimalObject

Actor (mailBox, behavior, threadOfLife)

ReflectiveActor (meta)

Figure 4. L’architecture de ReActalk (les flèches symbolisent l’héritage).

La phase d’expérimentation permet de développer des prototypes, sans se soucier de contraintes majeures de réutilisabilité. Elle libère ainsi le concepteur de tels aspects, ce qui est clairement un avantage lorsque l’on aborde des mondes réels caractérisés par l’imprédictibilité et la complexité intrinsèques. Les expériences sont alors menées elles-mêmes suivant un cycle en spirale, jusqu’à satisfaction du client.

La phase abstraction est sans doute la phase qui demande le plus de travail soigné. Elle permet d’abstraire les concepts génériques d’après les expérimentations précédentes. Cette phase s’est avérée fondamentale dans notre contexte : de part notre acquis logiciel, elle nous autorise en effet aujourd’hui à aborder des domaines d’application de plus en plus variés et complexes.

L’un de nos objectifs primordiaux consistait également à tirer au mieux parti des caractéristiques de l’environnement de développement utilisé, en l’occurrence Smalltalk. Les couches logicielles existantes, Actalk et ReActalk, nous ont aidé à respecter ces objectifs. Ainsi, les problèmes intrinsèques à la plate-forme générique GEAMAS et ceux spécifiques aux applications à simuler, ont été considérés conjointement dans les étapes du processus de développement de projet dans le cadre d’une macro spirale <Objectifs-Expériences-Abstraction-Application>.

Actuellement nous travaillons à l’extension de la plate-forme GEAMAS pour l’introduction de mécanismes génériques de génération automatique d’applications de simulation. Les premiers éléments d’analyse relatifs à ce travail d’abstraction nous autorisent à penser que notre processus de développement sera un atout important pour la réalisation de nos objectifs futurs dans ce domaine.

7. Bibliographie

[BIR 73] BIRTWISTLE G.,DAHL O.,MYHRAUG B.,NYGAARD K., SIMULA begin, Petrocelli Charter, New York, 1973.

(12)

[BOE 86] BOEHM B.W., « A Spiral Model of Development and Enhancement », Software Engineering Notes, 11-4, August 1986.

[BOE 89] BOEHM B.W.,BELZ F.C., « Applying Programming to the Spiral Model. », Special Issue of the ACM SIGSoft Software Engineering Notes, 14-4, June 1989, pp. 46-56.

[BOO 91] BOOCH G., Object-Oriented Design with Application — Redwood City, CA:

Benjamin/Cummings, 1991.

[BRI 89] BRIOT J.P., « Actalk: a testbed for classifying and designing actor languages in the smalltalk-80 environment », Proceedings of ECCOP’89, Cambridge, England, 1989.

[CAL 95] CALDERONI S., « GEOMAS, manuel de programmation », Rapport interne de l’IREMIA, Juin 1995.

[CAL 97] CALDERONI S., MARCENAC P., « Emergence of Earthquakes by MultiAgent Simulation », 11th European Simulation Conference, Istambul, Turquie, 1-4 June 1997, SCS Int. Publishers, p. 289-291.

[COA 91] COAD P.,YOURDON E., Object-Oriented Design. Yourdon press computing series, 1991.

[COL 96] COLLINOT A.,DROGOUL A.,BENHAMOU P., « Agent-oriented design of a robotic soccer team », In Proceedings of ICMAS’96, Kyoto, Japan, December 1996.

[ERA 96] ERARD P.J., DEGUENON P., Simulation par événements discrets — Presses Polytechniques et Universitaires Romandes, 1996.

[FER 89] FERBER J., Objets et agents : une étude des structures de représentation et de communication en Intelligence Artificielle, Thèse d'État, Université de Paris VI, France, Juin 1989.

[FER 95] FERBER J., Les Systèmes Multi-Agents, vers une intelligence collective, — collection iia, Inter-éditions, 1995.

[GIR 93] GIROUX S., Agents et Systèmes : une nécessaire unité, Thèse de l’Université de Montréal, Canada, Août 1993.

[GIR 96a] GIROUX S., « Open Reflective Agents », in Intelligent Agents, Volume II, M.

Wooldridge, J.P. Müller and M. Tambe eds, LNAI, Springer-Verlag, 1996.

[GIR 96b] GIROUX S., MARCENAC P., CALDERONI S., GROSSER D., GRASSO J.R., « A report of a case-study with agents in simulation », PAAM’96, London, UK, 22-24 April 1996, pp.

295-310.

[GOL 86] GOLDBERG A.T., « Knowledge-based programming: a survey of program design and construction techniques ». IEEE-Transactions on Software Engineering, 12-7, July 1986, pp. 752-768.

(13)

[GRA 95] GRASSO J.R., GIROUX S., MARCENAC P., « A MultiAgent Approach for Volcano Behavior Simulation ». In Proceedings of Application of Artificial Intelligence Computing in Geophysics, Boulder, CO, July 1995.

[ING 81] INGALLS D., « Design principles behind Smalltalk », Byte, August 1981.

[LAH 96] LAHAIE F., GRASSO J.R., MARCENAC P., GIROUX S., « Modelling auto-organized dynamics of volcano ». Comptes-Rendus de l’Académie des Sciences de Paris (CRAS), France, Tome 323, Serie II.a, pp. 569-574, 1996.

[LEM 96] LEMAN S.,MARCENAC P., GIROUX S., « A Generic Architecture for ITS based on a MultiAgent Model ». In Proceedings of ITS-96, Springer-Verlag, 1060, 1996, pp. 75-83.

[LOR 92] LORIGNY J., Les systèmes autonomes : Relation aléatoire et sciences de l’esprit, AFCET systèmes, Dunod eds, 1992.

[MAR 97] MARCENAC P., « Modélisation de systèmes complexes par agents », Technique et Science Informatiques, 16-8, Octobre 1997, pp. 1013-1037.

[SEI 87] SEIDEWITZ E., « Object-Oriented Programming in Smalltalk and Ada », In ACM OOPSLA’87 Proceedings, October 1987.

8. Biographie

Rémy Courdier est actuellement Maître de Conférences à l’Université de La Réunion et chercheur à l’IREMIA. Ses domaines d'intérêts portent sur les aspects de méthodologie pour la modélisation par agents de systèmes complexes en vue de leur simulation. Il a auparavant travaillé sur des problèmes de diagnostic dans les systèmes d'automatisme répartis, au sein du centre de Recherche et Développement du groupe Schneider de Sophia-Antipolis.

Pierre Marcenac est actuellement responsable de l’équipe Systèmes Multi- Agents de l'IREMIA à l’Université de la Réunion, dédiée depuis sa création en 1992 à l'élaboration de plates-formes à base d'agents. Ses travaux se sont concentrés autour de la modélisation par agents de systèmes complexes en vue de leur simulation, et la définition d’architectures conceptuelles associées. Aujourd’hui, les travaux en cours visent à utiliser la plate-forme construite pour l’appliquer sur des domaines d’application aussi différents que la circulation d’effluents d’élevage en Agriculture ou les organisations humaines.

Sylvain Giroux est actuellement consultant en Informatique. Il a travaillé entre autres pour Bell Solutions Globales, la Télé-université de l’Université du Québec et le Centre interuniversitaire de recherche pour l’analyse des organisations (CIRANO). Ses intérêts de recherche englobent les systèmes multi-agents, les systèmes adaptatifs, les environnements d’apprentissage et le commerce électronique. Il a obtenu un Ph. D. de l’Université de Montréal en 1993. Il a complété des études postdoctorales à l’Université de La Réunion, France, où il a

(14)

travaillé sur la simulation de systèmes complexes et d’édifices volcaniques. Il est membre du comité de rédaction du Bulletin de l’Association Française pour l’Intelligence Artificielle (AFIA) et du comité de rédaction du Journal of Emerging Mechanical Engineering Technology, édité par l’International Society for Productivity Enhancements (ISPE).

Références

Documents relatifs

The next chapter will deal with the results of the main study , mainly the students and teachers questionnaire outcomes, and the linguistic achievement analyzes

ةياور يف نامزلا ثلاثلا لصفلا &#34; ءاملا لسغ يذلا دامرلا &#34; 46 وجيسن فم أزجتي لا اءزج حبصتف يدرسلا رضاحلا يف وفظويو ومحارم عيمجب يضاملا ـتي

JÉRÉMIE BENNEQUIN UN COUP DE DÉS JAMAIS N’ABOLIRA LE HASARD OMAGE DÉ-COMPOSITION

Et pour terminer, nous pouvons constater qu’il y a une différence de dépense énergétique entre les filles et les garçons et nous pouvons même préciser que le lien

Unité de recherche INRIA Lorraine, Technopôle de Nancy-Brabois, Campus scientifique, 615 rue du Jardin Botanique, BP 101, 54600 VILLERS LÈS NANCY Unité de recherche INRIA Rennes,

La réaction de l'aniline avec les composés 1,3 carbonylés conduit à un composé intermédiaire (4), qui se cyclise dans un milieu acide pour aboutir au composé (5) suivant le

Par ailleurs, la figure du chef peut se confondre avec celle du Père comme on le voit dans Mission terminée (Mongo Beti, 1985 : 202-204 et 213) : dans cette perspective,

Dans la suite de ce document, après une présentation de l’état de l’art des approches d’ingénierie orientées agent, nous allons expliquer comment nous pouvons utiliser