Le but de cette thèse et d’étudier l’aspect normatif de l’interaction sociale entre agents et de proposer les outils (logiques) adéquats. Cet effort s’appuie sur les résultats obtenus au cours des deux dernières décénis par les recherches dans le domaine de systèmes multi-agents (SMA).
L’intérêt croissant manifesté pour l’étude des SMA est dû au développement des applications dans un contexte distribué et en particulier à l’Internet. L’architecture d’un tel système est inévitablement basée sur des composants logiciels distribués, conçus spécialement pour résoudre ensemble un problème. Ainsi l’objectif principal des travaux liés aux SMA est de concevoir des méthodes efficaces d’interaction (coordination) entre ces composants afin d’obtenir une certaine caractéristique fonctionnelle ou de faire émerger une certaine propriété du système entier. C’est un problème nouveau et difficile car, de plus, ces composants sont hétérogènes, c.à.d., ils sont conçus par des personnes différentes qui, pour les réaliser, font appel à des méthodes et technologies différentes (concepts, architectures, langages de programmation, etc.). Ce problème sort du cadre du modèle classique computationnel où il s’agissait de résoudre, de façon unitaire, un problème sur un système de calcul qui facilitait le contrôle de son exécution. En conséquence, les travaux sur les SMA proposent des théories et des outils qui permettent de comprendre et de faciliter la construction des structures d’interaction entre ces composants hétérogènes et distribués.
Systèmes multi-agents, préliminaires
Pour comprendre les caractéristiques et le comportement des agents normatifs, on doit d’abord étudier les propriétés et les problèmes liés aux agents ordinaires en général. Dans ce chapitre, nous présentons quelques aspects liés à la modélisation et à la conception des SMA. On commence par choisir une définition pour le concept d’agent qui nous convient le mieux. Ensuite, nous présentons certaines caractéristiques des agents qui permettent d’introduire les normes dans les SMA, comme l’autonomie, le contrôle, l’anthropomorphisme et la rationalité. Nous finissons par une présentation de quelques solutions proposées dans la littérature au problème central des SMA, la coopération.
Définitions du terme agent
Le terme agent reste encore très controversé à propos de sa signification. Même si les efforts de standardisation des aspects opérationnels de la conception SMA sont de plus en plus reconnus [FIPA, 2000], toute tentative d’unifier les différentes théories sur les agents ou de trouver un dénominateur commun semble se trouver, pour l’instant, sous le spectre de l’échec [Wooldridge et Jennings, 1995]. Le terme agent a été utilisé principalement dans le domaine de la philosophie de l’esprit bien avant qu’il soit utilisé par les théories liées aux SMA ou plus généralement par l’informatique. Certains philosophes l’ont employé pour éluder l’utilisation du mot humain dans les différents modèles philosophiques exprimant une image abstraite du monde réel. Comme la philosophie et l’intelligence artificielle ont souvent des objets d’étude communs, ce terme s’est imposée naturellement dans les modèles proposés par le domaine de SMA qui traitent de l’interaction calculatrice entre différents éléments physiques ou virtuels où l’humain cotoie des composantes logicielles.
Plus généralement, en informatique, l’origine de ce terme est souvent oubliée et suscite beaucoup de polémiques autour de son sens, notamment en raison d’une utilisation abusive et inappropriée. On peut utiliser ce mot pour désigner pratiquement tout élément ou produit logiciel. Par exemple, on appelle agents les processus à synchroniser dans certains algorithmes qui utilisent le calcul distribué ou parallèle, sans avoir en réalité besoin d’étudier leur interaction, coopération, etc. Un autre exemple est celui où la notion d’agent décrit une composante logicielle qui a comme fonction d’assister l’utilisateur humain dans l’utilisation d’un produit logiciel [Microsoft, 1999]. Plusieurs définitions [Wooldridge et Jennings, 1995; Shoham, 1993] ont été proposées dans le domaine des SMA, notamment par Ferber, pour qui un agent est une entité physique ou virtuelle [Ferber, 1995] :
1. capable d’agir sur elle-même et sur son environnement ;
2. capable de percevoir son environnement (avec une représentation partielle) ;
3. capable de communiquer avec d’autres agents ;
4. qui poursuit un objectif individuel ;
5. qui possède des compétences et peut éventuellement se reproduire ;
6. dont le comportement est la conséquence de toutes les propriétés énumérées ci-dessus.
Cette définition n’est ni la meilleure ni la plus mauvaise. On la préfère parce qu’elle délimite une classe d’agents à laquelle on s’intéresse dans la suite. Pourtant, on note ici que toute définition peut être limitative et risque de restreindre les domaines d’application des systèmes multi-agents proposés.
Caractéristiques d’un agent
Autonomie
L’autonomie est un concept central dans la définition du comportement des agents. Elle a été initialement utilisée dans la robotique pour décrire les capacités des robots à réagir de manière adéquate aux événements inattendus qui peuvent apparaître dans l’environnement physique réel. Par exemple, les robots doivent se déplacer physiquement entre deux points différents tout en évitant les éventuels obstacles. Ce n’est que plus tard, au moment de l’apparition du domaine des SMA, qui étudie l’interaction entre plusieurs composantes hétérogènes, qu’on parle d’agents autonomes. Par exemple, pour Demazeau et Müller [Demazeau et Müller, 1990], un agent autonome est un agent dont l’existence ne se justifie pas par l’existence des autres agents. Pour Castelfranchi [Castelfranchi, 1995], un agent autonome s’inscrit dans la définition proposée par Ferber, citée ci-dessus, mais ils y ajoutent la notion que l’agent agit sans l’intervention des humains ou des autres agents, ayant un contrôle sur ses actions et son état interne.
A notre avis, il y a deux raisons principales qui expliquent l’utilisation du concept d’autonomie dans la modélisation et la conception des SMA. La première concerne le besoin de flexibilité et d’adaptabilité du système face aux nouvelles situations. L’adaptabilité est une propriété fondamentale, nécessaire dans les domaines fortement dynamiques. Un agent doit se plier aux demandes ou contraintes externes afin de réaliser ses objectifs ou même de survivre dans le milieu où il se trouve. En effet, par l’introduction de la notion d’agent autonome et situé, on a généralisé le concept de robot et d’environnement physique. On parle d’un agent comme étant un robot qui n’a pas forcément un corps physique. Il est situé parce qu’il est capable de percevoir l’environnement (physique ou virtuel) dans lequel il vit par l’intermédiaire des capteurs et de modifier cet environnement par l’intermédiaire des effecteurs (actions).
La notion d’autonomie est définie donc, par rapport à la capacité de l’agent d’exécuter une action à sa propre initiative (pro-actif). On suppose que les agents logiciels peuvent contrôler leur comportement afin d’atteindre leurs buts et de décider s’ils aident ou empêchent les autres de réaliser eux-mêmes leurs objectifs. Avec ces hypothèses, l’autonomie s’exprime en termes de degrés de liberté, ce qui revient à dire qu’un agent est libre de décider de ce qu’il fait et libre de percevoir son monde.
Une deuxième motivation pour l’utilisation de l’autonomie concerne le point de vue du concepteur du système. Le concepteur dispose d’un ensemble d’agents et a comme objectif de résoudre un problème par l’intermédiaire de l’interaction des agents. Comme on l’a déjà vu, le terme agent a été proposé pour occulter les origines variées des différents participants à l’interaction, qui peuvent être des humains ou des logiciels. Dans le cas des agents logiciels, il s’agit des programmes conçus par différentes personnes qui utilisent des techniques variées de conception. Si le concepteur du système veut obtenir (modifier) un certain type de comportement de la part d’un agent, alors il lui est difficile de connaître les détails de construction de chaque agent logiciel, voire impossible dans le cas des agents humains. En bref, l’autonomie indique qu’un éventuel observateur n’a qu’un modèle incomplet du modèle interne de l’agent. Dans certaines situations, un agent doit être considéré comme étant une boîte noire dont on connaît seulement la description fonctionnelle. Cela protège aussi l’agent : en considérant ses capacités de contrôler l’accès à ses ressources, on réduit les possibilités de l’influencer.
Pour mettre en évidence l’aspect autonome des agents, on compare souvent les comportements des agents et les objets de la programmation orientée-objet. Par exemple, l’appel d’une méthode d’un objet renvoie toujours un résultat qui est décrit par un algorithme déterministe implémenté par la méthode en cause. Par contre, si on pose une question à un agent, on peut obtenir un comportement non déterministe caractérisé par une réponse ou une absence de réponse, un refus, ou une proposition de négociation pour obtenir une réponse. Le point de vue du concepteur peut ainsi être étendu aux agents en général. Chaque agent doit considérer les autres agents comme étant autonomes, c.à.d. qu’il connaît seulement la description fonctionnelle de leur comportement.
Intelligence et anthropomorphisme
Le fameux test de Turing [Turing, 1950] donne, d’une certaine manière, une définition de l’intelligence d’un artefact (ou l’intelligence artificielle). Un artefact est intelligent si, en observant les comportements d’un humain et de l’artefact, sans savoir qui est l’un et qui est l’autre, on ne peut pas dire (après l’observation) qui est l’humain et qui est l’artefact. Cette définition est donnée d’une façon subjective parce qu’elle est introduite par rapport à l’humain qui est considéré implicitement comme ayant un comportement intelligent. Dans les SMA on étudie principalement l’interaction entre plusieurs éléments d’un système tout en ignorant leurs origines diverses. On peut donc avoir, dans le même système, des artefacts et des humains qui interagissent les uns avec les autres sans faire de discrimination entre eux. De ce point de vue nous pensons que le but du domaine des SMA s’inscrit dans la perspective annoncée par le test de Turing et consiste à proposer des artefacts aussi intelligents que les humains, au moins en ce qui concerne l’interaction.
Réactivité
La réactivité d’un agent est définie comme la capacité de percevoir et de réagir aux modifications survenues dans son environnement. Le type de réactivité est traité de manière différente en fonction de la manière dont l’agent est construit (voir la section 2.4 sur les types d’agents). Si les agents sont capables de construire eux-mêmes des buts à atteindre sans l’aide de stimuli reconnaissables, on parle de pro-activité (en anglais pro-activeness).
|
Table des matières
INTRODUCTION
Chapitre 1 Introduction
Chapitre 2 Systèmes multi-agents, préliminaires
2.1 Introduction
2.2 Définitions du terme agent
2.3 Caractéristiques d’un agent
2.3.1 Autonomie
2.3.2 Intelligence et anthropomorphisme
2.3.3 Réactivité
2.3.4 Sociabilité
2.3.5 Hétérogénéité
2.4 Types d’agents
2.4.1 Agents cognitifs
2.4.2 Agents réactifs
2.4.3 Agents hybrides
2.5 Coopération et coordination
2.5.1 Planification
2.5.2 Organisation
2.5.3 Un exemple : le réseau contractuel (Contract Net Protocol)
2.6 Conclusions et discussions
Chapitre 3 Aspects sociaux
3.1 Introduction
3.2 Systèmes sociaux artificiels
3.3 Action rationnelle et action sociale
3.3.1 Rationalité et action
3.3.2 Action sociale
3.4 Comportement individuel vs. structures d’interaction
3.5 Structures sociales artificielles
3.5.1 Groupe
3.5.2 Équipe
3.5.3 Société
3.6 Rôles
3.6.1 Management des systèmes distribués à base de rôles
3.6.2 Contrôle d’accès à base de rôles – RBAC
3.6.3 Rôles dans les SMA – APRIL
3.6.4 Conclusions sur les rôles
3.7 Conclusions
Chapitre 4 Aspects normatifs
4.1 Introduction
4.2 Normes et actions
4.3 Normes dans les sciences sociales
4.4 Normes dans les sciences juridiques – positions normatives
4.5 Normes en informatique
4.5.1 Politiques de sécurité
4.5.2 Coordination réglementée dans les systèmes distribués
4.5.3 Coordination par obligations – Barbuceanu
4.5.4 BDI et normes
4.6 Discussions et conclusions
Chapitre 5 Systèmes d’agents normatifs
5.1 Introduction – systèmes d’informations ouverts
5.2 Scénario – protocole d’entrée dans un SAN
5.3 Structures de l’interaction
5.3.1 Niveau comportemental
5.3.2 Niveau organisationnel
5.3.3 Niveau communicationnel
5.4 Normes
5.4.1 Représentation
5.4.2 Raisonnement
5.4.3 Interprétation et exécution
5.4.4 Hypothèses sur l’exécution des normes
5.5 Conclusions
CONCLUSION