WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Planification multi-agents pour la composition dynamique

( Télécharger le fichier original )
par Brakni Ilhem
Université de Tébessa -algerie - Ingénieur d'état en informatique 2010
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

IV.2.2. Agent administrateur

· visualise l'interface principale du système aux utilisateurs ;

· lance les agents services pour les services déjà sélectionnés ;

· lance l'agent médiateur et lui envoie la liste des identificateurs des agents service ;

· lance un agent utilisateur lorsqu'un utilisateur s'identifie et se connecte pour
passer une demande de service et lui envoie l'identificateur de l'agent médiateur;

· vérifie identité administrateur lorsque celui-ci veut se connecter.

1. Architecture interne

C'est un agent réactif. Selon sa perception, il agit. Il contient les deux composantes suivantes lui facilitant son fonctionnement :

· Une base de connaissances : elle contient les identificateurs de l'agent médiateur et des agents services permettant leurs lancement et l'identificateur de l'administrateur du système permettant la vérification de l'identité entrée par l'administrateur (confidentialité).

· Une procédure de vérification : c'est une procédure permettant de vérifier l'identité de l'administrateur.

2. Fonctionnement

Perception :

- Réception d'une requête utilisateur ou administrateur de connexion (depuis l'interface).

- Réception de l'identificateur de l'administrateur.

Raisonnement : son raisonnement consiste à vérifier l'identificateur de l'administrateur et selon le résultat de la vérification, il agit.

Action : il agit selon le diagramme d'activités de la « figure 4.11 » suivante : IV.2.3. Agent service

· C'est une entité très importante pour l'élaboration du processus de planification ; il sert à enrichir le domaine de planification du planificateur se trouvant au niveau de l'agent médiateur ;

· Récupère la description OWL-S du service qu'il représente de son fournisseur ;

· Il le convertit vers un ensemble d'opérateurs PDDL ;

· Suite à la réception du problème de planification (requête utilisateur) de l'agent médiateur, il essaye à trouver une action permettant de le résoudre directement : s'il le trouve, il l'indique à l'agent médiateur ; sinon il cherche l'ensemble d'actions permettant de le résoudre partiellement et il les envoie à l'agent médiateur.

Attente

Valide

Non valide

Afficher erreur

Afficher interface
Principale système

Lui envoyer l'ident
de l'agent médiateur

Recevoir demande connexion utilisateur

Lancer

un agent utilisateur

Lui envoyer les idents des agents service

Lancer
Agent médiateur

Lancer
Agents service

Recevoir demande
connexion administrateur

Recevoir Identificateur
administrateur

Afficher menu

système

Figure 4.11 : Diagramme d'activités pour le fonctionnement de l'agent administrateur 1. Architecture interne

Comme déjà indiqué précédemment, cet agent est de type cognitif. En plus de son module de communication, il contient : une base de connaissances, une base de compétences, un traducteur des descriptions OWL-S vers des opérateurs STRIPS et une procédure de parcours des opérateurs dans le but de chercher un ensemble d'opérateurs résolvant tout ou une partie du problème soumis par l'agent médiateur. Une présentation de l'architecture interne de cet agent est donnée dans la « figure 4.12 » suivante :


· La base de connaissances : chaque agent service en plus de la description OWL-S est initialisé avec un ensemble de données (issue d'une base de données par exemple) permettant à l'agent de raisonner. Par exemple, un agent représentant un service de réservation de transport aérien dispose de la liste des trajets existants. Ces données forment la base de connaissances de l'agent.

Service

Problème

OWL-S

Agent service

Procédure parcours

des opérateurs

Traducteur

OWL-S vers STRIPS

Ensemble De données

Opérateurs STRIPS

Base de
compétences

Base de
connaissances

Figure 4.12 : Architecture interne de << l'agent service >>

· La base de compétences : À partir de la description sémantique, les agents service vont créer leur domaine de planification qui regroupe, sous la forme d'opérateurs STRIPS extraits des processus de la description OWL-S, les actions réalisables par les agents, i.e., leur base de compétences.

· Le traducteur OWL-S vers STRIPS : puisqu'un modèle de composition par planification est exploité l'une des phases les plus importantes dans le processus de composition de services est la traduction des descriptions OWL-S des services sélectionnés à des domaines de planification (opérateurs STRIPS). C'est ce module de l'agent service que la permet.

Les étapes de traduction seront détaillées dans ce paragraphe.

Ce traducteur prend en entrée une description OWL-S du << model de processus >> (process model en anglais) du service représenté par l'agent et produit en sortie un ensemble d'opérateurs STRIPS (domaine de planification).

OWL-S Process model du service

Traducteur
OWL-S vers PDDL

Ensemble d'opérateurs STRIPS

Dans ce qui suit, nous donnerons premièrement un ensemble de restriction que nous avons apportées aux descriptions OWL-S des services, puis nous détaillerons l'algorithme de traduction.

· Restriction sur la sémantique OWL-S

Le langage OWL-S qui permet d'annoter sémantiquement un service web est très riche et n'impose que très peu de contraintes sur la manière d'exprimer cette sémantique. Les chercheurs dans ce domaine et parmi << J.Guitton >> [1] font toujours donc un ensemble de restrictions et d'hypothèses. Vu du cadre et de la période de l'étude, nous avons adoptées de faire une restriction de la restriction de ce chercheur (l'objectif de notre travail n'est pas en effet de faire quelque chose qui n'existe pas,

mais de prouver juste l'efficacité de la planification pour la résolution du problème de composition de services web).

- Un model de processus d'un service en OWL-S peut contenir trois types de processus en savoir : les processus atomiques, composites ou simples, mais seuls les processus atomiques sont pris en compte actuellement dans notre modèle ;

- Plusieurs formalismes existent pour résoudre les problèmes de planification, dans notre modèle le formalisme STRIPS est celui qui a été utilisé, dont un problème de planification est défini par un ensemble d'opérateurs, d'un état initial et d'un but à atteindre.

- nous spécifions les préconditions et les effets des processus atomiques dans le formalisme STRIPS, comme représenté dans l'extrait ci-dessous, afin de permettre leur utilisation directement lors de la création du domaine ;

<process:hasPrecondition>

<expr:KIF-Condition rdf:ID="ExistTrain">

<expr:expressionBody rdf:

datatype=" http://www.w3.org/2001/XMLSchema#string">

(ExistTrain ?From ?To)

</expr:expressionBody> </expr:KIF-Condition>

</process:hasPrecondition>

? Algorithme de traduction

La traduction de la description sémantique d'un service vers un domaine de planification consiste à représenter les processus atomiques OWL-S sous forme d'opérateurs.

L'algorithme « algorithme 4.1 » parcourt le model de processus du service, chaque fois qu'il rencontre un processus atomique, il le transforme à un opérateur.

Algorithme 4.1 : traduire OWL-S vers STRIPS(P) Input : model de processus OWL-S « P » Output : ensemble d'opérateurs STRIPS « OS » OS = Ø ;

Pour chaque processus atomique p de P faire

Créer nouvel opérateur op ;

op.nom = p.nom ;

op. Paramètres = p.inputs + p.outputs ; op.préconditions = p.précoditions ; ajouter op à OS ;

Fin pour

Retourner OS ;

Fin

En effet, la correspondance ici est directe. Un opérateur de planification est créé, avec, comme identifiant, l'identifiant de ce processus, c'est-à-dire le nom de l'opération du service correspondant. Par exemple, le processus atomique suivant :

<process:AtomicProcess rdf:ID="AgentTrainReservation"> ...

</process:process>

Permet de définir l'opérateur :

(:operator (!AgentTrainReservation ...) ...

)

Puis les préconditions et les effets du processus atomique sont ajoutés à l'opérateur correspondant.

La « figure 4.13 » suivante présente la correspondance entre processus atomique OWL-S et un opérateur STRIPS :

Processus atomique OWL-S

Nom processus atomique

Précondition

Output

Effet

Input

Opérateur STRIPS/PDDL

Nom opérateur

Précondition

Paramètres

Effet

Figure 4.13 : Correspondance processus atomique OWL-S et opérateur STRIPS

Gestion des préconditions : Les préconditions d'un processus ont une correspondance directe avec les préconditions d'un opérateur, du fait de l'hypothèse formulée sur l'écriture des préconditions et effets dans la description OWL-S. Soit la précondition OWL-S suivante :

<process:hasPrecondition> <expr:KIF-Condition rdf:ID="ExistTrain">

<expr:expressionBody rdf: datatype=" http://www.w3.org/2001/XMLSchema#string">

(ExistTrain ?From ?To) </expr:expressionBody> </expr:KIF-Condition>

</process:hasPrecondition>

De cette précondition est extrait directement le prédicat suivant :

(ExistTrain ?From ?To)

Gestion des effets : Tout comme les préconditions, les effets d'un processus atomique sont traduits directement. Mais ils doivent être distingués en effets positifs et en effets négatifs au moment de la création de l'opérateur. Nous choisissons de représenter les effets négatifs, dans la description OWL-S par des prédicats commençant par not [1]. Par exemple, la réservation d'un billet de train a pour effet de déplacer l'utilisateur d'une ville à une autre :

<expr:KIF-Expression rdf:ID="NotVoyagerAtFrom">

<expr:expressionBody rdf:

datatype=" http://www.w3.org/2001/XMLSchema#string"> (not(at ?User ?From ?Date))

</expr:expressionBody>

</expr:KIF-Expression>


· Le module de parcours : c'est une procédure permettant de chercher soit une solution directe au problème de planification envoyé par l'agent médiateur, sinon de chercher l'ensemble d'opérateurs possibles pouvant servir à la résolution du problème.

Comme nous avons déjà vu, le problème à résoudre est représenté a travers un ensemble de prédicats formant l'état initial (entrés par l'utilisateur) et un ensemble d'autres prédicats formant le but à réaliser (entrés aussi par l'utilisateur), ainsi, les opérateurs STRIPS (extraits de la description OWL-S) sont aussi représentés par un ensemble de prédicats formant ses préconditions et un autre formant ses effets.

La recherche est donc faite par parcours des deux bases de connaissances et de compétences, afin de trouver des correspondances possibles entre les prédicats de l'état initial et du but avec ceux des préconditions et des effets des opérateurs STRIPS respectivement.

Trois cas sont possibles ici :

1. suite à la réception d'un problème de planification (état initial et but) de l'agent médiateur, si une correspondance entre l'état initial et l'ensemble des préconditions d'un opérateur et une correspondance entre l'état but et les effets de ce même opérateur sont trouvées ; alors cet opérateur constitue une solution directe du problème à retourner à l'agent médiateur.

2. Si ce n'est pas le cas, la procédure cherche alors tous les opérateurs dont leurs effets sont correspondants à l'état but du problème. La liste des opérateurs trouvés ainsi que pour chacun la liste de ses préconditions sont alors retournées à l'agent médiateur.

3. Si aucune des deux solutions précédentes n'est trouvées, l'agent service retourne alors un message à l'agent médiateur lui indiquant l'absence d'une solution.

2. Fonctionnement

Perception :

- Réception d'un message contenant le problème à résoudre d'après l'agent médiateur.

- Réception d'un message de l'agent médiateur pour arrêter le processus de recherche de la solution (dans le cas où la solution est déjà trouvée ou l'utilisateur demande d'annuler la résolution de son problème).

Raisonnement : suite à la réception du problème à résoudre de l'agent médiateur, cet agent exécute la procédure de parcours énoncée précédemment. Le résultat de la recherche : soit une solution directe, soit une liste d'actions est en suite envoyé à l'agent médiateur. S'il n'y a pas de résultats à retourner, l'agent envoie un message à l'agent médiateur lui indiquant ceci.

Action : il agit selon le diagramme d'activités suivant :

Attente

Recevoir problème
du médiateur

Recevoir demande
d'arrêt du médait

Exécuter procédure
de recherche

Arrêter procédure
de recherche

Solution directe trouvée

Non solution trouvée

Non solution directe trouvée

Envoyer solution directe au médiat

Envoyer liste
d'actions au médiat

Envoyer message (non solution)au médiat

Figure 4.14 : Diagramme d'activités pour le fonctionnement de l'agent service

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Là où il n'y a pas d'espoir, nous devons l'inventer"   Albert Camus