• Aucun résultat trouvé

Interaction sociale

Le module d’interaction sociale (Social Interaction Module, SIM) gère les communications et in- teractions en conformité avec les protocoles. Ces protocoles sont des structures de données concrètes qui sont stockées dans la bibliothèque de protocoles (Protocol Library, PL).

Dans le projet ArguGRID project, nous utilisons LCC (ROBERTSON, 2004) (Lightweight Coordina- tion Calculus) qui est un langage déclaratif de programmation logique à la Prolog pour le calcul des communications. LCC permet de gérer des interactions sociales via des protocoles. Ainsi, un proto- cole est un ensemble de clauses décrivant les actions communicatives que peut réaliser l’agent en fonction de son rôle. Une action consiste à émettre ou à réceptionner des messages, voire à adop- ter un rôle. Les actions peuvent être réalisées séquenciellement, simultanément ou faire l’objet d’une décision. Chaque action est réalisée si les pré-conditions sont valides et elle peut déclencher des post- conditions.

Les décisions nécessitent de mener des interactions mises en œuvre par le module SDMM. En pratique, le module SDMM, une fois réalisé le raisonnement à propos des exigences sur les services et les partenaires, utilise un mécanisme de boot strap qui initialise le protocole nécessaire, le rôle joué par l’agent dans ce protocole et le rôle joué par les autres participants. À partir de là, le moteur de pro- tocole du module SIM détermine les messages devant être envoyés étant donné les rôles. S’il n’existe pas d’ambiguïté sur le message devant être envoyé, le module SIM envoie automatique le message dans la file des messages sortants. Quand une décision doit être prise soit en ce qui concerne le choix d’une locution (e.g. accepter ou rejeter une offre) soit pour instancier le contenu d’une locution (e.g. établir une proposition), le module SIM utilise un mécanisme de pré-condition pour déclencher le module SDMM afin d’obtenir une solution. En fonction de la satisfaction des pré-conditions, le mo- dule SIM envoie la locution dans la file des messages sortants. S’il est nécessaire de mettre à jour le tableau d’engagement dialogique de l’agent, ceci est fait via le mécanisme de post-condition. Concrè- tement, MARGO s’interface avec LCC à travers les conditions d’énonciation des messages.

Les agents transmettent des messages pour échanger des buts, des décisions et des connais- sances. La syntaxe des messages se conforme à un langage de communication d’agent. Dans nos scénarios, la locution est l’une des suivantes :question,assert,accept,why,withdraw(voir ta- bleau 3.1 pour des exemples). Le contenu est un triplet qui consiste en : un but Gk, une décision Dk,

et une connaissance Kk. Nous noteronsθ le fait qu’aucun but n’est donné et ; pour noter qu’aucune

connaissance n’est fournie.

Dans notre scénario, nos agents utilisent deux protocoles pour deux types de dialogue : la de- mande d’information et la négociation. La figure 3.8 représente le protocole de négociation du point de vue du demandeur de service à l’aide d’un automate à états finis. Le module SDMM s’interface avec le protocole du SIM via les mécanismes d’énonciation des messages. Par exemple, lors d’un dia- logue, un demandeur peut émettreaccept,assertetwhy. Le choix de cette locution dépend du SDMM qui doit satisfaire les pré-conditions de l’une de ces locutions.

Le haut du tableau 3.1 montre les actes de langage échangés entreAletBobjouant un dialogue de demande d’information. Selon le protocole de ce type de dialogue, le premier coup dialogique consiste pourAlà poser une question àBob, M0. Cette locution recherche l’intervalle de prix pour les services Sb disponibles.Bob informeAl avec plusieurs locutions concernant les différents ser-

vices disponibles et leur prix (M1, . . ., M4). Une demande d’information similaire a lieu entreBobet Alpour informer ce dernier des garanties concernant les différents services Sb disponibles. Selon

cette connaissance, l’agentAlde type A est capable de considérer lesquels de ces services pourraient satisfaire ses buts.

3.3. ARCHITECTURE D’AGENT evaluate contract challenge evaluate send question send assert receive assert receive assert receive assert receive why receive accept send assert send accept send why receive withdraw send withdraw

FIGURE3.8 – Le protocole de négociation pour le demandeur

Le centre du tableau 3.1 représente les actes de langage échangés entreAletAlicejouant un dia- logue de demande d’information. Le premier coup dialogique consiste pourAlà poser une question àAlice, M0. Cette locution demande un témoignage deAliceà propos deBob. Ce témoignage est high(cf M1) et soutenu par le nombre d’expériences précédentes et leurs valeurs.

Le bas du tableau 3.1 représente les actes de langage échangés entreAletBobjouant un dialogue de négociation. Ils tentent d’atteindre un accord sur le contrat pour l’approvisionnement d’un service Sbpour atteindre le but commungood_deal. Uncontractest un tuple

〈cid,debtor,creditor,service,terms〉 oùcidest l’identifiant du contrat,debtorest l’agent four- nissant le service etcreditorest l’agent demandant le service. Un contrat concerne l’approvision- nement d’un service si la liste des termes et des conditions (denotedterms) sont satisfaits. Avec le message M1,BobinformeAlqu’il trouve que les termes et les conditions du contrat pour l’approvi- sionnement du service Sb(d ) sont justifiés par le but commun (good_deal). Toutefois,Alne trouve

pas que Sb(d) est justifié et il propose Sb(c). Comme aucune de ces propositions n’est mutuellement

acceptable, elles ne sont plus considérées dans la suite de la négociation.Bobessaye de déterminer les raisons du choix deAl(cf M3) qui est le coût (plutôt que la qualité de service). Étant donné la ré- ponse deAldans M4,Bobadopte le but fourni parAl. En conséquence, il trouve, parmi les solutions restantes (Sb(e) et Sb(f)), celle préférée parAl(Sb(e)) et la suggère (M5). Finalement,Alcommunique cet accord à l’aide deaccept(M6) qui termine le dialogue.

Afin de simplifier l’évaluation du processus et de l’accord atteint, nous avons considéré dans (MORGE& MANCARELLA, 2014) une version simplifiée du protocole sans échange d’argument. Alors

que l’un des agents débute en réalisant une première offre, son interlocuteur répond avec une contre- offre. Dans la suite du processus, chaque agent doit adopter l’une des attitudes suivantes : i) soit il campe sur ses positions, i.e. il répète la proposition précédente ; ii) soit il concède, i.e. il réduit ses pré- tentions en abandonnant sa précédente offre en en effectuant une nouvelle. Afin d’articuler ces deux attitudes, mener une négociation consiste à adopter une stratégie de concession minimale qui s’ap- puie sur le principe de réciprocité. Si l’interlocuteur campe sur ses positions, l’agent en fait de même. Dès que l’interlocuteur fait une concession, l’agent en fait de même. On peut noter que la troisième étape de la négociation a un statut particulier dans la mesure où l’agent qui a la parole doit concé- der. Si l’agent ne peut pas concéder (e.g. il n’y a pas d’autre service qui satisfait ces contraintes), alors l’agent campe sur ses positions. Si une offre acceptable a été émise, alors l’agent l’accepte. Quand un agent ne peut plus concéder, il met un terme à la négociation.

Mk Sk Hk Ak Rk

M0 Al Bob question(θ,Sb(x), [priceb(x, px)]) θ

M1 Bob Al assert(θ,Sb(c), [priceb(c, pc),low≤ pc ≤medium]) M0

M2 Bob Al assert(θ,Sb(e), [priceb(e, pe),low≤ pe ≤medium]) M0

M3 Bob Al assert(θ,Sb(d), [priceb(d, pd),medium≤ pd ≤high]) M0

M4 Bob Al assert(θ,Sb(f), [priceb(f, pf ),medium≤ pf ≤high]) M0

Mk Sk Hk Ak Rk

M0 Al Alice question(performance,proposal(Bob, y), [testimonials(Bob, z)]) θ

M1 Alice Al assert(performance,proposal(Bob, y), [testimonials(Bob,high)]) M0

M2 Al Alice why(θ,proposal(Bob, y), [testimonials(Bob,high)]) M1

M3 Alice Al assert(θ,proposal(Bob, y), [previous(Bob, 10),satisfaction(Bob,high)]) M2

Mk Sk Hk Ak Rk

M0 Al Bob question(good_deal, 〈cid,Bob,Al, Sb(x), [price(x, px),warranty(x, wx)]〉,;) θ

M1 Bob Al assert(good_deal, 〈c1,Bob,Al, Sb(d ), [price(d ,high),warranty(d,low)]〉,;) M0

M2 Al Bob assert(good_deal, 〈c2,Bob,Al, Sb(c), [price(c,low),warranty(c,high)]〉,;) M1

M3 Bob Al why(good_deal, 〈c2,Bob,Al, Sb(c), [price(c,low),warranty(c,high)]〉,;) M2

M4 Al Bob assert(costAl, 〈c2,Bob,Al, Sb(c), [price(c,low),warranty(c,high)]〉,;) M3

M5 Bob Al assert(good_deal, 〈c3,Bob,Al, Sb(e), [price(e,low),warranty(e,low)]〉,;) M1

M6 Al Bob accept(good_deal, 〈c3,Bob,Al, Sb(e), [price(e,low),warranty(e,low)]〉,;) M5

TABLE3.1 – Les dialogues de demande d’information (en haut et au centre) et le dialogue de négocia- tion (en bas).

tion est finie. Comme notre langage est fini et de par la stratégie de concession minimale, il n’est pas difficile de constater que les négociations sont courronnées de succès si un accord potentiel existe. Comme un agent concède nécessairement au cours du processus même si son interlocuteur campe sur ses positions, la négociation entre deux agents adoptant la stratégie de concession minimale par- cours la totalité de l’espace des accords potentiels. En d’autres termes, cette stratégie permet d’at- teindre systématiquement un accord. Toutefois, on peut remarquer que cette stratégie ne permet pas d’atteindre un équilibre de Nash en stratégie pure. Il n’est pas dans l’intérêt individuel d’un agent d’adopter cette stratégie.

L’accord obtenu par la négociation est Pareto-optimal s’il n’est pas possible d’améliorer stricte- ment la satisfaction d’un agent sans réduire celle de son interlocuteur. C’est le cas dans notre proces- sus de négociation. L’accord est Pareto-optimal car les concessions sont minimales.

Documents relatifs