• Aucun résultat trouvé

3.1 Tour d’horizon du domaine des agents logiciels et des systèmes multi-agents

3.1.1 Définitions et typologies d’agents logiciels et de systèmes multi-agents

Comme tout concept central d’un paradigme, il existe de nombreuses définitions pour caractériser la notion d’agent logiciel. De manière générale, l’agent est défini comme « ce qui agit, opère, force, corps, substance intervenant dans la production de certains phénomènes » (dictionnaire Petit Robert). Les différentes définitions produites dans le domaine des agents logiciels recouvrent des programmes informatiques dotés de fonctionnalités spécifiques.

De l’apport des Systèmes Multi-Agents pour la mise en œuvre d’une organisation virtuelle de prévention des risques

Le tableau suivant (cf. tableau 3.1) propose un ensemble de définitions de la notion d’agent logiciel énoncées de manière chronologique.

Références Définition du concept d’agent logiciel

[FERBER89] « On appelle agent 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 cet environnement, qui, dans un univers multi-agents, peut communiquer avec d’autres agents, et dont le comportement est la conséquence de ses observations, de sa connaissance et de ses interactions avec les autres agents. »

[DEMAZEAU90] « Un agent est une entité intelligente, agissant rationnellement et intentionnellement, en fonction de ses buts propres et l’état actuel de sa connaissance »

[FERBER95] « une entité physique ou virtuelle :

qui est capable d’agir dans un environnement,

qui peut communiquer directement avec d’autres agents,

qui est mue par un ensemble de tendances (objectifs, fonction de satisfaction ou de survie, …) qu’elle cherche à optimiser,

qui possède des ressources propres,

qui est capable de percevoir (mais de manière limitée) son environnement,

qui ne dispose que d’une représentation partielle de cet environnement,qui possède des compétences et offre des services,

qui peut éventuellement se reproduire,

dont le comportement tend à satisfaire ses objectifs, en tenant compte des ressources et des compétences dont elle dispose, et en fonction de sa perception, de ses représentations et des communications qu’elle reçoit. » [LESPERANCE95] « Un agent est une entité active dont le comportement est utilement décrit à

l’aide de notions mentales telles que les connaissances, les buts, les intentions, … »

[EDWARDS97] « un agent logiciel intelligent est une application informatique dotée de la faculté d’apprentissage. »

[LIEBERMAN97] « un agent logiciel intelligent est un programme qui peut être considéré par son utilisateur comme un assistant ou une aide, et pas seulement comme un outil du type d’une interface conventionnelle. »

[JENNINGS98] « Un agent logiciel est une application informatique, située dans un environnement, qui est capable d’agir de manière autonome et flexible dans le but de résoudre les problèmes pour lesquels il a été conçu . »

Tableau 3.1 Quelques définitions du concept d’agent logiciel.

Pour pouvoir être qualifié d’agent logiciel, un programme informatique doit recouvrir un ensemble de propriétés. Pour les présenter, la synthèse de [GANDON02] est reprise (cf. tableau 3.2), celle-ci étant construite à partir de [ETZIONI95] [WOOLDRIDGE95] [FRANKLIN96] [NWANA96] [SYCARA98] et [JENNINGS00].

Chapitre 3

Propriétés Sous- Propriétés

Description

Réactif L’agent doit réagir rapidement à une modification de son environnement. Etat mental complexe L’agent possède des connaissances, des croyances, des intentions et des

obligations. Passage en mode dégradé

propre

Le passage en mode dégradé et la fin de vie de l’agent s’effectue de manière propre.

Continuité temporelle Dès qu’il est créé l’agent est actif.

Situé L’agent perçoit et peut modifier l’environnement dans lequel il évolue. Autonomie L’agent prend des initiatives et exerce un contrôle sur ses propres actions.

Identifiable L’agent, ses frontières et ses interfaces avec l’environnement peuvent être facilement identifiables.

Auto-contrôle L’agent n’obéit pas aveuglément à des commandes, il peut modifier une requête, demander des précisions, négocier ou refuser.

Flexible Les actions ne sont pas figées, l’agent peut choisir quels traitements effectuer et leurs séquences d’exécution.

Guidé par ses objectifs

L’agent peut accepter une requête de la part d’un autre agent du système (logiciel ou humain ) tout en décidant quand et où exécuter la requête. Proactif L’agent a la possibilité de prendre des initiatives grâce à des mécanismes de

raisonnement sur ses actions.

Personnalité L’agent possède une personnalité crédible et des état émotionnels qui améliorent ses interactions avec les utilisateurs humains.

Communicant L’agent est capable d’engager des conversations avec des acteurs humains ou artificiels afin d’obtenir de l’information ou de l’aide dans l’accomplissement de ses tâches.

Adaptable L’agent s’adapte lui même aux préférences de ses utilisateurs et aux changements de son environnement.

Paramétrable L’agent est capable d’être configuré par un autre agent (généralement humain) pour être plus performant.

Apprenant L’agent peut automatiquement se configurer et s’adapter en fonction des changements survenant dans son environnement et modifier son comportement fondé sur ses précédentes expériences.

Migrant L’agent peut se déplacer d’un environnement vers un autre, probablement à travers différentes architectures et plates-formes.

Mobile L’agent peut évoluer dans une représentation du monde réel.

Représentation visuelle L’agent peut posséder une représentation physique qui peut être une simple interface graphique ou bien une interface de réalité virtuelle.

Confiance L’agent ne transmet aucune information qu’il considère incorrecte.

Bénévole L’agent n’a pas d’objectif de conflit et tente de remplir au mieux les fonctions qui lui sont demandées.

Rationnel L’agent agit pour remplir ses objectifs et n’effectuera aucune action qui pourrait aller à l’encontre de la satisfaction de ses plans.

Tableau 3.2 Propriétés des agents logiciels d’après [GANDON02].

Dans la majorité des cas il est inutile pour un agent logiciel de satisfaire à l’ensemble de ces propriétés. On constate, toutefois, que plusieurs catégories d’agents ont émergé. A l’aide du tableau suivant un ensemble d’exemples de typologies d’agents est présenté (cf. Tableau 3.2).

De l’apport des Systèmes Multi-Agents pour la mise en œuvre d’une organisation virtuelle de prévention des risques

Type d’agent Caractéristiques de l’agent

Agents coopératifs

Les principales qualités de cette classe d’agents sont les capacités d’autonomie, de coopération et de négociation avec d’autres agents et leur faculté de planification dans le but de résoudre les tâches qui leur sont associées [NWANA96].

Agents d’interface Un agent d’interface est caractérisé par son autonomie et ses facultés d’apprentissage dans l’optique d’aider l’utilisateur. L’agent œuvre comme un assistant personnel qui collabore avec l’utilisateur [LASHKARI94].

Agents mobiles Un agent mobile est une application logicielle capable de se déplacer au sein d’un réseau de communication pour aller effectuer un traitement auprès d’un fournisseur de service puis de revenir à son point de départ avec le résultat [NWANA96]. Agents

d’information

L’agent d’information a pour objectif de rechercher, manipuler, gérer de l’information issue de différentes sources distribuées [NWANA96].

Agents réactifs Le comportement des agents réactifs consiste à réagir aux messages reçus d’autres agents ou à des changements dans leur environnement sans aucune faculté de réflexion sur leurs actions [FERBER95].

Agents cognitifs Les agents cognitifs ont la possibilité de raisonner sur leurs intentions et leurs croyances, de générer et de contrôler l’exécution de plans d’actions [FERBER95].

Tableau 3.3 Différentes typologies d’agents.

La compréhension des propriétés et des mécanismes sous-jacents au fonctionnement d’un agent logiciel permet d’aborder l’étude des phénomènes issus de la mise en relation de ces agents afin de constituer un système multi-agents. La suite de cet état de l’art est consacrée aux mécanismes sociaux induits par la mise en relation de différents agents logiciels.

La notion de Système Multi-Agents est décrite dans [DURFEE89] comme « un réseau

de systèmes de résolution de problèmes qui interagissent pour résoudre des problèmes qui nécessitent des ressources supérieures à celles fournies par chaque système ».

Ferber définit un système multi-agents comme un système constitué d’un environnement E, c’est-à-dire un espace disposant généralement d’une métrique, d’un ensemble d’objets O situés dans E, d’un groupe d’agents A, sous-ensemble de O, (pouvant percevoir, créer, détruire, modifier les objets du système), de relations unissant les objets de O, d’opérations permettant aux agents d’agir dans E et d’un ensemble de règles régissant ces opérations [FERBER95].

L’intérêt de la réalisation d’un système multi-agents réside dans le fait de résoudre un problème par la mise en relation d’agents qui, ne possédant chacun qu’une vision restreinte, des ressources et de connaissances insuffisantes, ne pourraient y parvenir individuellement [SYCARA98].

Les conséquences de la mise en œuvre d’un système multi-agents peuvent s’appréhender avec le concept de situation d’interaction défini dans [FERBER95] comme « un ensemble de comportements résultant du regroupement d’agents qui

doivent agir pour satisfaire leurs objectifs en tenant compte des contraintes provenant des ressources plus ou moins limitées dont ils disposent et de leurs compétences individuelles ». Ainsi, les relations et les actions des agents dépendent de leurs objectifs

et des ressources disponibles dans l’environnement. Elles peuvent être réparties en trois catégories : l’indépendance, la coopération et les conflits [FERBER95].

 Les situations d’indépendance correspondent aux cas où les différents agents possèdent des objectifs compatibles les uns avec les autres et que l’ensemble des ressources nécessaires à l’accomplissement de leurs activités est disponible.

 Les situations de coopération correspondent aux situations dans lesquelles les agents doivent mettre en commun leurs compétences et partager les ressources de

Chapitre 3

l’environnement. Les relations d’interactions correspondantes doivent permettre de gérer l’ordonnancement des différents traitements pour satisfaire les agents mais également de gérer l’allocation des ressources aux agents selon leurs besoins.  Les situations de conflits surviennent quand des agents ont des objectifs

antagonistes. Des processus de négociation, de création de coalition ou bien de lutte sont mis en œuvre entre les agents afin d’aboutir à une solution.

L’optique suivie est d’aborder la programmation d’un système d’intermédiation et d’un logiciel d’analyse des risques à l’aide d’une approche reposant sur les concepts d’agents et de systèmes multi-agents. Cela engendre des besoins dans le domaine de la représentation et du traitement de l’information, de l’interopérabilité de systèmes d’information, de la modélisation et la supervision de systèmes technologiques. Par la suite, un ensemble d’exemples illustre l’utilisation des systèmes multi-agents dans ces différents domaines.

3.1.2 Domaines d’application des agents logiciels et des systèmes multi-