• Aucun résultat trouvé

6.4

|

Formalisation des agents embarqués

Figure 6.7 – Application de la première étape : répartition des étapes d’un programme séquentiel en plusieurs familles d’agents.

Pour réaliser notre SMA, nous suivons la méthodologie de conception présentée en section4.3. Tout d’abord, nous établissons la distribution des étapes de notre tâche de zoom sur une image entre différentes familles d’agents, selon la formalisation présentée en sous-section4.3.1. Nous considérons les sous-tâches selon la forme de service rendu, la base de connaissances requise et la possibilité de paralléliser certains traitements [Figure 6.7].

En reprenant notre diagramme du programme séquentiel, nous repérons ainsi les services suivants :

- Agent n◦1 : une gestion de l’affichage visuel et la perception des choix de l’utilisateur. Nous considérons ces

actions comme relatives à l’image, et les regroupons sous la gestion d’un premier type d’agent. Nous l’appelons agent Image (IM).

- Agent n◦2 : une gestion des bordures du zoom pour éviter un dépassement du cadre de l’image. Calcul mathé-

matique spécifique, cette partie est attribuée à un autre type d’agent que nous nommons agent Bordure (BO). - Agent n◦3 : une gestion de la matrice correspondant à la zone de l’image sélectionnée et précédant les calculs

d’interpolation. Nous considérons cette partie comme relative au zoom dans sa globalité et l’attribuons à un troisième type d’agent. Nous le qualifions d’agent Zoom (ZO).

CHAPITRE 6.Expérimentation de la flexibilité Z Y6.4. Formalisation des agents embarqués

- Agent n◦4 : enfin, le calcul d’interpolation des pixels de la matrice est attribué à un quatrième et dernier

type d’agent que nous désignons par le terme d’agent Pixel (PI).

L’étape suivante, telle que décrite en sous-section4.3.2, nous permet de constituer une table des besoins. Cette dernière liste les besoins en termes d’information ou de données de nos familles d’agents. Nous établissons quelle entité moyen (agent, processus, matériel, utilisateur, etc.) peut combler les besoins ainsi répertoriés. La Figure 6.8

représente la table des besoins construite pour ce cas d’étude.

Image Familles d'agents Bordure Zoom Besoins Moyens Agent indépendant Pixel

Calcul des bordures du zoom Remplissage de la matrice zoomée

Bordure Zoom

Remplissage de la sous-matrice zoomée Pixel

Niveau de disponibilité du CPU

Obtention de la valeur d'un pixel voisin

Contexte matériel Pixel

Figure 6.8 – Deuxième étape : Établissement d’une table des besoins pour nos familles d’agents.

Pour la famille d’agents Image nous listons deux besoins : le calcul de la zone de l’image à considérer avec la prise en compte des bords et le remplissage de la nouvelle matrice zoomée. Le premier besoin correspond au service rendu par les agents de la famille Bordure. Le deuxième besoin correspond au service rendu par les agents Zoom. Un agent Bordure ne requiert que les paramètres d’entrée de son service pour connaître les dimensions de l’image considérée et sa propre base de connaissances pour les calculs à appliquer. Cette famille est donc composée d’agents indépendants, c’est à dire qu’aucune interaction supplémentaire n’est nécessaire pour achever leur service. La famille d’agents Zoom n’a pas la connaissance requise pour effectuer les calculs d’interpolation. Elle a besoin d’interagir avec un ou plusieurs agents de la famille Pixel pour compléter la matrice zoomée. Enfin, un agent Pixel a besoin de connaître son contexte matériel pour déterminer quelle méthode de calcul est la plus pertinente. Pour éviter au maximum les effets de bords de sa sous-matrice, il doit également pouvoir récupérer les valeurs des pixels en bordure des autres agents Pixel.

A partir de la table des besoins nous relevons les interactions nécessaires inter-agents afin de réaliser une matrice des interactions selon les spécifications apportées en sous-section4.3.3. Cette dernière résume ainsi les communications inter-agents qui auront cours dans notre SMA, ainsi que le type de communication : requête ou réponse. Cette partie nécessite également de préciser les services qu’une famille d’agents peut proposer aux autres agents du système.

De plus nous déterminons les besoins en termes de nombre d’instanciation d’agents pour chaque famille déter- minée. Afin de mener à bien la tâche étudiée, une seule instance de chaque type est tout-à-fait suffisante. Le point considéré pour notre flexibilité de choix étant l’interpolation des pixels, nous choisissons d’avoir plusieurs instances du type d’agent Pixel (au moins 2). Pour nos protocoles d’évaluation, nous faisons varier ce nombre d’instances. Ici, nous indiquons une variable n pour représenter cette valeur. La Figure 6.9affiche cette matrice.

Nous retrouvons les communications repérées à partir de la table des besoins au niveau applicatif ainsi que les différents services rattachés à chaque famille. Ainsi, l’agent Image propose le service "Zoom Image" retranscrivant sa capacité à présenter une image et le résultat d’un agrandissement effectué sur cette dernière. L’agent Bordure propose le service "Calcul bordure" pour établir les paramètres de la zone de matrice à considérer pour le zoom. L’agent Zoom met le service "Zoom matrice" à disposition. Ce dernier indique que la notion d’agrandissement concerne uniquement la matrice de pixels à gérer en tant que tableau de variables entières. Cet agent sépare sa matrice en plusieurs sous-matrices pour répartir le travail d’interpolation entre les n agents Pixel. Ces derniers proposent cha- cun un service "Remplir matrice" permettant d’effectuer les calculs d’interpolation nécessaires à la complétion des

6.4. Formalisation des agents embarqués Z Y CHAPITRE 6. Expérimentation de la flexibilité

Cible

Application Liste des services

des agents

Source

Agent

Image

+ Zoom Image

(1)

Agent

Bordure

+ Calcul bordure

(1)

Agent

Zoom

Agent

Pixel

+Zoom matrice + Remplir matrice + Pixel (1) (n)

Agent

Image

+ Answer Calcul bordure + Answer Zoom matrice

Agent

Bordure

+ Ask Calcul bordure

Agent

Zoom

+ Answer Remplir matrice + Ask Zoom matrice

Agent

Pixel

+ Ask Pixel + Answer Pixel + Ask Remplir matrice

Figure 6.9 – Réalisation d’une matrice des interactions (partie applicative du SMA uniquement).

sous-matrices. Ils proposent également un service "Pixel" permettant de partager des valeurs de variable pixel entre agents de la même famille afin de compléter le service "Remplir matrice" en limitant les effets de bords. Les agents Pixel retournent leur sous-matrice complétée à l’agent Zoom lors de leur réponse. Celui-ci reforme alors une matrice zoomée complète et la renvoie en réponse à l’agent Image qui peut finalement afficher le résultat final.

L’agent Image envoie des requêtes aux agents Bordure et Zoom pour activer leur service. Une fois ces services achevés, les deux agents contactent l’agent Image avec des réponses pour lui envoyer les résultats obtenus. Entre temps, l’agent Zoom contacte lui-même les agents Pixel et reçoit des réponses de leur part. Les agents Pixel interagissent entre eux pour s’échanger des valeurs de variable si nécessaire.