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 |
IV.2.2. Agent administrateur
1. Architecture interne
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.
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>
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 :
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 Recevoir demande Exécuter procédure Arrêter procédure Solution directe trouvée Non solution trouvée Non solution directe trouvée Envoyer solution directe au médiat Envoyer liste Envoyer message (non solution)au médiat Figure 4.14 : Diagramme d'activités pour le fonctionnement de l'agent service |
|