• Aucun résultat trouvé

Deux agents contexte proposent deux actions différentes

3.2 Spécification et conception d’Amadeus

3.2.4 Conception : comportement coopératif des agents

3.2.4.3 Deux agents contexte proposent deux actions différentes

Problématique La résolution des SNC précédentes mène l’agent contrôleur à créer des agents contexte à partir des actions des utilisateurs. Ces agents contexte proposent alors leurs actions chaque fois que la situation courante est similaire à celle ayant menée à leur création.

Il est cependant possible que deux agents contexte C1et C2se retrouvent simultanément va-

lides alors qu’ils proposent deux actions A1et A2différentes. Ces deux agents contexte sont

alors face à une situation de conflit : tous les deux pensent contribuer à la même situation (satisfaire les utilisateurs) au travers d’actions différentes.

Détection Cette SNC est détectée par l’agent contrôleur associé aux agents contexte en conflit, lorsqu’il reçoit leurs propositions.

Résolution Cette SNC mène l’agent contrôleur à devoir choisir entre (au moins) deux pro-

positions d’actions A1et A2. Pour faire ce choix, il lui faut disposer d’une valeur accompa-

gnant les propositions d’actions, qui lui permettrait de les comparer entre elles et de choisir la meilleure.

Supposons que nous disposons d’un oracle qui, considérant une situation donnée, est capable de dire si les utilisateurs sont satisfaits ou pas, et d’attribuer une note explicite re- présentative de cette satisfaction. La présence de cet oracle faciliterait alors la capacité des agents contexte à attribuer une valeur de gain estimé pour évaluer la pertinence de leurs actions. Ainsi, observer la différence entre la satisfaction des utilisateurs avant et après la réalisation de l’action ayant mené à la création d’un agent contexte permettrait à cet agent d’initialiser le gain estimé, qu’il ajusterait alors en observant les effets successifs de la réali- sation de cette action au fur et à mesure de ses propositions. L’agent contrôleur n’aurait alors plus qu’à choisir, à tout moment, la proposition associée au gain estimé le plus élevé pour résoudre cette SNC.

Cependant, pour une mise en pratique dans un environnement réel, il faudrait deman- der régulièrement et explicitement aux utilisateurs leur niveau de satisfaction, ce qui est une solution inappropriée. Cependant, l’agent contrôleur n’a pas besoin de connaitre explici- tement les valeurs des gains estimés, mais uniquement de savoir laquelle de ces valeurs est la plus élevée. Nous avons donc mis en place une évaluation du gain estimé relative entre agents contexte, en concevant un mécanisme appelé “mécanisme d’auto-ordonnancement entre agents”, détaillé en section 4.2. Plus précisément, ce mécanisme repose sur la défini-

tion d’un type d’agent générique, appelé agent self-ordered. Chaque agent self-ordered pos- sède une liste d’agents supérieurs et une liste d’agents inférieurs. Son objectif est de fournir une valeur numérique, appelée son “niveau”, telle que la valeur de son niveau soit stric- tement inférieure à celles des niveaux de ses agents supérieurs, et strictement supérieure à celles des niveaux de ses agents inférieurs. De plus, nous avons rendu l’agent self-ordered ca- pable de mettre à jour son niveau en cas de modification (ajout ou suppression d’un agent) dans une de ses deux listes, de façon à toujours respecter la relation d’inégalité entre son ni- veau et ceux des agents supérieurs et inférieurs, tout en supprimant l’éventuelle apparition d’incohérence dans les relations d’ordre entre les agents self-ordered (la description des in- cohérences susceptibles d’apparaître, ainsi que le mécanisme pour les résoudre, étant aussi décrits en section 4.2).

Nous avons alors défini l’agent contexte comme une spécialisation de l’agent self-ordered. Dès lors, chaque agent contexte se retrouve doté d’une liste d’agents contexte supérieurs, d’une liste d’agents contexte inférieurs, et de l’aptitude à fournir et à mettre à jour son niveau. Pour évaluer son gain estimé relatif aux autres agents contexte, un agent contexte utilise alors la valeur de son niveau comme valeur du gain estimé. Ainsi, il est capable d’associer à sa proposition d’actions une valeur de gain estimé telle que tout agent contexte qui lui est supérieur propose un gain estimé supérieur, tandis que tout agent contexte inférieur propose un gain estimé inférieur.

Lorsqu’un agent contexte C est créé, cela signifie qu’un utilisateur a effectué une action. Par conséquent, tous les agents contexte valides à ce moment là sont apparemment moins bons que le nouvel agent contexte, puisqu’ils n’ont pas réussi à satisfaire les utilisateurs (ils n’ont pas été choisis par l’agent contrôleur). Par conséquent, l’agent C initialise sa liste

d’agents inférieurs LCin f avec ces agents. Ceux-ci ajoutent quand à eux ce nouvel agent C

dans leur liste d’agents contextes supérieurs LCsup. L’initialisation d’un agent contexte avec

sa liste d’agents inférieurs, et l’ajout éventuels d’agents supérieurs par la suite au fur et à mesure de l’apparition d’autres agents contexte, crée progressivement des hiérarchies entre les agents contexte. Ce mécanisme d’ordonnancement entre agents contexte permet donc à l’agent contrôleur d’évaluer, dans une situation donnée, l’action dont le système croit qu’elle satisfera au mieux les utilisateurs, et donc de résoudre cette SNC en choisissant l’agent contexte proposant le gain estimé le plus élevé.

Une précision importante est à apporter concernant le calcul du gain estimé. L’utilisa- tion du mécanisme d’auto-ordonnancement entre agents assure que si un agent contexte est supérieur à un autre, alors son gain estimé sera supérieur à celui de cet autre agent. Il est cependant possible que ces deux agents ne possèdent aucune relation d’ordre, la supériorité de la valeur du gain estimé du premier agent n’étant qu’un hasard. Dans ce cas, il n’y a au- cune raison de favoriser un agent plutôt qu’un autre. Par conséquent, si le gain estimé d’un agent contexte est supérieur à celui d’un autre agent contexte, c’est soit parce que le premier agent contexte est effectivement supérieur au second agent contexte, auquel cas il faut choisir le premier agent contexte, soit par pur hasard, auquel cas il revient au même de choisir le premier ou le second agent contexte. C’est pourquoi il est inutile de vérifier si la supério- rité en terme de gain estimé est un hasard ou pas ; dans tous les cas, c’est l’agent possédant le gain estimé le plus élevé qui est choisi. Si celui-ci est contredit par la suite, une relation d’ordre sera alors créée avec l’autre agent qui lui deviendra supérieur.