• Aucun résultat trouvé

CHAPITRE 7 GESTION DES INTERACTIONS APPLIQUEE AUX MODELES DES RESSOURCES

7.1 Q UELLES INTERACTIONS ?

7.1.1 Actions simultanées

La gestion de la simultanéité des actions s'avère être un problème de gestion des interactions. Si les modes de gestion du temps, parallèles ou séquentielles importent peu pour des actions simultanées indépendantes, les actions simultanées dépendantes demandent, elles, des choix explicites du modélisateur.

A partir des travaux de [Allen & G. Ferguson, 1994], [Boutilier & Brafman, 2001] et [Griffiths et al., 2002], Weyns et Holvoet [2003b] proposent une classification des actions simultanées, présentée sur le graphe suivant :

Actions simultanées

Actions indépendantes Actions interférentes

Actions concurrentes Actions influentes Actions jumelées Actions simultanées

Actions indépendantes Actions interférentes

Actions concurrentes Actions influentes Actions jumelées Figure 7-1 : Classification des actions simultanées. Traduction d'après [Weyns & Holvoet, 2003].

Les auteurs classent les actions simultanées dépendantes ou interférentes (Interfering Actions) en trois sous types :

 Les actions concurrentes (Concurrent Actions) sont de nature conflictuelle. Le résultat s'avère non déterministe : un des agents impliqués exécute finalement son action au détriment des autres qui voient leurs actions annihilées.

 Les actions influentes (Influencing Actions) se combinent mutuellement de façon à composer des effets positifs ou négatifs selon les cas.

 Les actions jumelées (Joint Actions) ont lieu pour des groupes d'agents qui agissent ensemble de façon coordonnée pour résoudre des problèmes insolubles pour des agents pris seuls à seuls.

154

Pour illustrer des exemples de ces différentes actions, les auteurs utilisent une application abstraite appelée Packet-World (https://sourceforge.net/projects/packet-world/) dont j'ai présenté l'architecture de type ”influences-réaction” au chapitre précédent. Packet-World simule la coordination entre agents devant coopérer pour transporter des paquets encombrants. La figure suivante montre une vue de cette application :

Action concurrente Action indépendante Action influente Action jumelée Action concurrente Action indépendante Action influente Action jumelée Action concurrente Action indépendante Action influente Action jumelée Action concurrente Action indépendante Action influente Action jumelée

Figure 7-2 : Une réalisation du modèle Packet-World sur une grille de 10 sur 10 cases sur laquelle 10 agents tentent de rapporter des paquets plus ou moins encombrants (carrés et rectangles) aux bases (les cercles gris et blancs).

Percevant son voisinage proche, dans un rayon de deux cellules, un agent peut se déplacer sur une case libre, voisine de la sienne par "pas de temps". S'il n'est pas déjà chargé, il peut prendre un paquet qu'il rencontre ou bien le pousser. Dans le cas contraire, il peut poser son chargement de préférence sur une case destination. Outre ces actions dans l'environnement, il peut échanger des messages avec d'autres agents pour établir des collaborations. La figure précédente permet alors d'illustrer les différents types d'interactions présentées ci-dessus.

L'agent 4 qui porte seul un paquet vers une base (cercle blanc), exécute une action indépendante. Les agents 5 et 6 veulent prendre le même petit paquet simultanément. Ils sont en concurrence. Seul l'un des deux prendra finalement cet objet. Les agents 0 et 9 poussent le même paquet : soumis à deux actions influentes, celui-ci subit une force égale à la somme des deux poussées. Dans cet exemple, il glisse vers le Nord-Ouest, en direction de la base, mais si les deux agents avaient été en positions opposées, les deux forces se seraient annulées. Enfin, les agents 2 et 7 se coordonnent pour porter un paquet trop encombrant pour un seul agent. Leurs actions jumelées doivent se poursuivre jusqu'au dépôt de l'objet.

7.1.2 Interactions Co-X

En cherchant à expliciter "ce que les agents font ensemble", [Parunak et al. , 2003] proposent également une taxonomie des interactions parmi les SMA. Sur cette question, ils distinguent les comportements des agents en cohérents, collaboratifs, coopératifs, compétitifs ou coordonnés (tous ces comportements sont de type "Co-X" écrivent-ils). Ils étudient en particulier la notion de

corrélation entre agents qui exprime des informations mutuelles (behavioral joint information). Ils

calculent cette dépendance selon l'indice de Shannon. La différence I des entropies individuelles avec l'entropie globale du SMA mesure alors cette corrélation des comportements des agents. Plus

I est élevé et plus les comportements des agents sont statistiquement dépendants les uns des autres. Une application de cette mesure est présentée à la fin de ce chapitre. D'autre part, ils concluent aussi que la coordination implique une architecture particulière entre agents quel que soit le type de communication choisie (centralisée ou peer-to-peer et directe ou indirecte via un médium).

155

7.1.3 Actes de langages

Mais dans la majorité des cas, les articles qui traitent des interactions font référence à l’aspect qualitatif des communications utilisées par les agents pour se coordonner et atteindre leurs buts. Une littérature abondante sur la coordination des SMA traite ainsi des actes de langage.

Pour la linguistique classique (Ferdinand de Saussure), l'étude du langage consistait à essayer de comprendre le sens des phrases. Les théoriciens de la sémantique du langage cherchaient à expliquer comment à partir d'une combinaison de mots il est possible de former un énoncé qui ait du sens. Pour cela, ils s'intéressaient essentiellement à savoir quel était le degré de vérité d'une narration, c'est à dire d'un énoncé qui affirme quelque chose du monde. Ils ne s'intéressaient donc qu'au rôle de transfert d'informations véhiculé par le langage et négligeaient les autres aspects de la communication. En particulier la fonction du langage qui traite de l'action sur le destinataire du message. Nul ne se posait véritablement la question de savoir si l'on pouvait faire des choses avec des mots.

La parution du livre d'Austin en 1962, "How to do things with words" (quand dire, c'est faire) modifia profondément la linguistique. En effet, Austin et Searle ont élaboré une théorie générale de la parole comme action. Elle repose sur l'idée suivante : lorsque nous parlons, nous ne disons pas simplement quelque chose, un énoncé vrai ou faux d'ailleurs, mais par ce moyen, nous cherchons également à informer, inciter, demander ou convaincre notre interlocuteur. Un acte de langage est un moyen mis en œuvre par celui qui parle (le locuteur) pour agir sur son environnement par ses paroles. Un individu s'adresse à un autre dans l'idée plus ou moins consciente de transformer ses représentations et de modifier ses buts. La théorie des actes de langage cherche alors à saisir l’effet que l’acte produit sur les sentiments de l'autre. Par exemple, le fait de dire "maintenant vous allez rentrer chez vous" peut énerver, soulager, convaincre, etc. Si l’énoncé a de l’effet sur l’auditoire et que cet effet est prévu par le locuteur alors il aura accompli un acte. Au-delà de la compréhension de sa sémantique, l'identification de l'acte de langage conditionne largement l'interprétation du message délivré.

7.1.4 Protocoles d'interaction

Bien évidemment, les travaux sur les SMA n'en sont pas encore à ce stade d'interprétation (si toutefois ils pouvaient l'être un jour), mais nombreux sont ceux qui étudient la nature des messages qui doivent être échangés entre les agents pour que le système arrive dans un état désiré. Le problème est donc pris à l'envers. Les recherches sur ce sujet consistent en effet à intégrer les concepts issus de la théorie des actes de langages, non pas pour identifier et interpréter n'importe quel type de message a posteriori, mais pour caractériser a priori des protocoles d'échange et obtenir des communications minimales et efficaces. Le but est de produire des échanges finalisés pour que les agents négocient, coopèrent ou, au minimum, recherchent un accord. La caractéristique fondamentale pour assurer le succès de ces systèmes repose sur la définition d'un cadre normalisé d'interaction (ou plutôt d'échange). Car la gestion de conversations entre agents n'est techniquement pas facile à garantir. En effet, pour des agents autonomes, threadés ou distants68, l'enchaînement des messages nécessite des règles pour faire en sorte de produire une "discussion" cohérente et suivre son déroulement au cours du temps. Plusieurs tentatives de normalisation de la communication inter-agents ont ainsi été effectuées au sein de la communauté

68

Des techniques permettant à des programmes informatiques de s'échanger des informations existent déjà depuis quelques années comme RPC (Remote Procedure Call, le plus ancien protocole pour appeler des procédures à distance), RMI (Remote Method Invocation, mécanisme d'invocation de méthodes sur des objets Java distants) et CORBA (Common Object Resource Broker Architecture, proche de RMI et disponible pour de nombreux langages de programmation). Mais ces techniques permettent juste d'invoquer des méthodes distantes. Elles ne gèrent pas le suivi d'une discussion.

156

multi-agent ces dernières années. Les langages de communication entre agents (ACL, pour Agent Communication Languages) constituent donc un axe de recherche [Finin et al., 1994].

KQML (Knowledge Query and Manipulation Language), langage de communication de haut niveau, a été fondé dans le but de faciliter la coopération entre agents cognitifs. KQML repose sur un protocole pour l'échange d'information. Indépendant de la syntaxe de son contenu, un message KQML contient trois couches : contenu, communication et message69 et défini l'ontologie70 utilisée.

La FIPA (Foundation for Intelligent Physical Agents) a pour objectif le développement des SMA. Elle spécifie des standards pour favoriser l'interopérabilité des applications, des services et des équipements informatiques basés sur le paradigme agent (Physical rappelle que les agents peuvent éventuellement être humains). En 1999, la FIPA a défini un ACL pour répondre principalement à une critique contre KQML : les actes qu'il définit (ses performatifs) sont trop nombreux, redondants et ils ne couvrent pas tout le champ des actes envisageables. L'ACL de la FIPA ressemble beaucoup à KQML, mais il comporte moins de performatifs. De plus, il est défini de façon moins ambiguë grâce à un langage sémantique formel (SL pour Semantic Language).

Le plus connu des protocoles mis au point s'appelle le réseau contractuel (CNP, pour Contract Net Protocol). Un client contacte des agences de voyage pour leur demander un billet. Si une agence peut fournir une bonne proposition, elle informe le client. Après récupération des offres, le client peut alors se retrouver avec plusieurs agences volontaires et peut choisir entre elles. L’agence finalement retenue peut alors engager une communication plus directe pour la mise en place du contrat. Ce protocole se résume donc en trois phases :

 Un (ou plusieurs) client émet un appel d’offre;  Les fournisseurs envoient leurs propositions;

 Le client choisit une proposition. Un contrat est établi avec le fournisseur sélectionné. Il s’agit d’un des premiers protocoles de communication de haut niveau pour la résolution de problèmes distribués. Il a été repris et adapté à de nombreuses applications. Initialement ce protocole a été appliqué à l’allocation de ressources ainsi qu’à des systèmes de surveillance distribuée tel le contrôle du trafic aérien. Il a été étendu en introduisant la gestion de l’incertitude qui réside dans tout processus de négociation et a été appliqué au commerce électronique.

Autre exemple : étude du raisonnement d'agents argumentatifs. Un agent argumentatif est un agent qui peut défendre ses croyances et intentions (dans le cadre d'un agent BDI) à l'aide de raisons et de justifications appelées arguments. [Amgoud et al., 2002]

Pour conclure, les ACL définissent un cadre normalisé d'interactions. Ils fournissent des protocoles dits d'interaction pour favoriser des échanges finalisés et permettre la coordination d'agents. Mais le niveau Interaction qui décrit la structure d'une conversation reste problématique. Car en considérant des agents partageant la même ontologie, il reste difficile d'avoir des garanties sur le

69

La couche de contenu contient le contenu du message, c'est-à-dire la valeur de l'attribut content.

La couche de communication contient les informations de routage qui permettent l'acheminement du message,

par exemple les valeurs des attributs sender et receiver.

La couche de message est composée de la signature de l'acte de langage (l'intention, appelée performatif) et des

valeurs des attributs qui décrivent le message, comme language ou ontology. Sa fonction est d'identifier l'acte du langage que l'expéditeur attache au contenu. Cet acte de langage indique par exemple si le message est une affirmation, une question, une commande ou un autre élément d'un ensemble de performatives connus. Ces dispositifs permettent une analyse des messages sans avoir à accéder au contenu. Les messages KQML sont donc enrichis d'une attitude sur le contenu : affirmation, désengagement, requête, question, etc. En pratique, un message est donc identifié grâce à son performatif.

70

Une ontologie est une spécification qui définit le vocabulaire dans un domaine donné pour que les agents puissent se comprendre.

157

respect des protocoles d'échanges. C'est pourquoi des travaux ont été menés sur la formalisation de cet aspect interactionnel pour décrire l'enchaînement des messages, avoir certaines garanties sur le déroulement d'une conversation et faciliter l'interopérabilité entre plates-formes hétérogènes [Mathieu et al. 2003].

Toutefois les interactions présentées ici relèvent uniquement de l’aspect qualitatif des communications. Or les protocoles attachés à ces échanges sont encore peu utiliser pour la modélisation en biologie et des ressources renouvelables. Ce type d'interaction ne sera donc pas traité dans le cadre de cette thèse. Car les interactions qui ont été discutées dans les chapitres précédents concernent un tout autre niveau. Elles touchent à l'intégrité informatique des agents et, si elles sont insuffisamment formalisées leur mise en œuvre peut affecter les résultats des simulations.