• Aucun résultat trouvé

5 Modèle de décision et d’apprentissage d’OCE

5.2 Le modèle de décision et d’apprentissage

5.2.1 Phase de construction d’assemblages

5.2.1.3 Marquage de la situation courante

La sous-phase de marquage est réalisée par l’agent service Ai dans la phase de décision des cycles agent de la phase de construction d’assemblages du cycle moteur courant. Elle a pour objectif d’enrichir la situation courante Sit de l’agent service Ai avec le résultat de la sous-phase précédente (cf. section5.2.1.2) : elle permet d’attribuer unscoreà chaque agent service deSit à l’aide des situations de référence qui ont été renvoyées par la fonction Re-cherche_Situations_Similaires. Ainsi, la situation courante Sit devient une situation courante marquéenotéeSMit.

Plus précisément, SMit est formée d’un ensemble de triplets de la forme (Aj,Type_Message,Scoreij)où :

- Aj est l’identifiant de l’agent serviceémetteur du message reçu parAi;

- Type_Message est le type de message envoyé dans le cadre du protocole ARSA, à sa-voir : annonce (Advertize), réponse (Reply), sélection (Select) ou acceptation de connexion (Agree) ;

- Scoreij représente l’intérêt pour Ai d’une connexion avec le service administré par Aj dans cette situation.

A l’issue de ce marquage,Ai pourra établir un classement préférentiel desagents service AjdeSitet en sélectionner un auquel répondre. Nous reviendrons sur ce dernier point dans la section suivante (cf. section5.2.1.4).

Le marquage est réalisé par la fonctionMarquer_Situation qui prend en paramètres en entrée la situation couranteSit et l’ensembleSim_Re fi des situations de référence renvoyé par la fonction Recherche_Situations_Similaires. Elle renvoie une situation courante marquée SMti : elle attribue une valeur numérique (notée Scoreij) à chaque agent service Aj deSit en fonction du contenu de l’ensembleSim_Re fi. Nous distinguons les cas suivants :

- cas 1 :Ai trouve dans sa base de connaissancesRe fiune situation de référence iden-tique à Sti. Dans ce cas, l’ensemble Sim_Re fi = (Re fni,dn = 1) contient une et une seule situation de référence Re fni identique àSit. La fonctionMarquer_Situationrecopie les valeurs deScoreij deRe fni à l’identique ;

- cas 2 : Sitn’est pas reconnue à l’identique parAi. Nous distinguons trois sous-cas :

cas 2.1 : Ai ne trouve pas dans Re fi une situation de référence identique à Sit. Dans ce cas Sim_Re fi = {(Re fki,dk)}Re fi

kRe fi,dkξ,kN. La fonction Mar-quer_Situationcalcule les valeurs deScoreijavec la moyenne des scores de Aj dans les situations de référence sélectionnées (Re fki), pondérée par les degrés de simila-rité (dk) selon la formule (5.3) ;

Scoreij(SMit) = Re f

kiSim_Re fiScoreij(Re fki)∗dk

(Re fki,dk)∈Sim_Re fidk (5.3)

cas 2.2 : Ai ne trouve pas dansRe fi des situations de référence similaires àSti. Dans ce cas Sim_Re fi = ∅. La fonction Marquer_Situation attribue au score de chaqueagent service Scoreij la valeur de N1, où N est le nombre d’agents servicede Sit;

cas 2.3 : la base de connaissances de Ai est vide. Comme pour le cas précédent Sim_Re fi = ; la fonction Marquer_Situation attribue au score de chaque agent service Scoreij la valeur de N1, oùNest le nombre d’agents servicedeSit.

Dans le cas 2.1, le marquage de la situation courante Sit est incomplet quand unagent service AldeSitn’apparaît pas dans les situations de référence deSim_Re fi. C’est le cas lors de l’apparition d’un service nouveau dans l’environnement ambiant avec lequel Ai n’a pas encore coopéré. La valeur du scoreScoreil qui est attribué à l’agent correspondant dépend de la manière dontAi prend en compte la nouveauté.

Pour prendre en compte la nouveauté et répondre par ailleurs à l’exigence[DA4], nous avons défini un “coefficient de sensibilité à la nouveauté” que nous notonsν(avec 0 ≤ ν≤ 1). Il reflète le degré d’acceptabilité de la nouveauté de l’utilisateur, c’est-à-dire à quel point l’utilisateur est favorable à l’utilisation d’un nouveau service. Le coefficient de sensibilité à la nouveauté νest un paramètre global d’OCE. Il est fixé avant le lancement d’OCE, il est ainsi le même pour tous lesagents service. Dans ce qui suit, nous appellerons “nouvel agent service” l’agent servicegérant un nouveau service.

Ce coefficient est utilisé par la fonction Marquer_Situation : pour chaque nouvel agent service Al,Aia le choix entre les deux alternatives suivantes :

- favoriser la nouveauté : avec une probabilité égale à ν, Ai maximise l’intérêt de la connexion potentielle avecAl. Ainsi, Ai attribue àAl via la fonctionMarquer_Situation une valeur de score supérieure à la valeur de score maximale dansSMit;

- ne pas favoriser la nouveauté : avec une probabilité égale à 1−ν,Aiattribue àAlvia la fonctionMarquer_Situationune valeur de score moyenne. L’objectif de Aiest de mettre ainsiAl sur un même pied d’égalité que les autresagents servicedeSMitdont la valeur de score n’est maximale. En fonction du nombre d’agents servicedeSti(notéN), le calcul de cette valeur moyenne (dite “neutre”) diffère :

• Si N est égal 2 (l’un est le nouvel agent service Al, notons Aj le deuxième agent service), la valeur de score deAl est égale à la valeur de score deAjdivisée surN;

• Si N est supérieur à 2, la valeur de score de Al est égale à la somme des valeurs de scores des autresagents servicedeSMità laquelle nous soustrayons la valeur de score maximale dansSMit et nous divisons le tout par(N−2). La valeur(N−2) fait référence au nombre d’agents service de Sit (N) moins l’agent service Al et l’agent servicedont la valeur de score est maximale dansSMit.

L’Algorithme5.2 synthétise le comportement de Ailors du traitement de la nouveauté.

Algorithme 5.2 :Traitement de la nouveauté parAi paramètre d’entrée :

SMti: la situation courante marquée partiellement N: le nombre d’agents servicedeSit

ν: le coefficient de sensibilité à la nouveauté,

1: Générer aléatoirement une valeur pnouveautetel quepnouveaute∈ [0, 1]

2: sipnouveauteνalors

3: //Favoriser la nouveauté

4: Générer aléatoirement une valeurδtel queδ ∈]0, 0.5]

5: Scoreil ←maxAjSMitScoreij+δ

6: sinon

7: //Ne pas favoriser la nouveauté

8: siN=2alors