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

 > 

Stratégie de rendez-vous dans les systèmes multi-agents

( Télécharger le fichier original )
par Imane Méziane Tani
Université Abou bekr Belkaid - Ingénieur en informatique 2007
  

Disponible en mode multipage

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

Table des matières

Introduction générale

1 Le problème de la stratégie de Rendez-vous

1

3

 

1.1

Introduction

3

 

1.2

Agents et Systèmes multi-agents

3

 
 

1.2.1 Définitions

3

 
 

1.2.2 Architectures des SMA

5

 
 

1.2.3 Classification des agents

7

 
 

1.2.4 Domaines d'application des SMA

9

 
 

1.2.5 Quelques exemples de SMA

9

 

1.3

SMA et robots mobiles

11

 
 

1.3.1 Définitions

11

 
 

1.3.2 Application des SMA aux robots mobiles

12

 
 

1.3.3 Exemples de SMA réalisés en robotique

12

 

1.4

Stratégie de Rendez-vous des SMA

13

 
 

1.4.1 Situation du problème

13

 
 

1.4.2 Définition de la stratégie

13

 
 

1.4.3 Exemples d'application de la stratégie

14

 
 

1.4.4 Les différentes approches adoptées

14

 

1.5

Conclusion

14

2

Différentes approches de la stratégie de rendez-vous

15

 

2.1

Introduction

15

 

2.2

La poursuite cyclique

15

 
 

2.2.1 Préalables mathématiques

16

 
 

2.2.2 Poursuite cyclique traditionnelle

19

2.2.3 Poursuite cyclique hiérarchique 20

2.2.4 Poursuite cyclique à L liens 24

2.2.5 Comparaison et taux de convergence 25

2.3 Le rapetissement de polygone 29

2.3.1 Préalables mathématiques 30

2.3.2 Rapetissement par la courbure de Menger-Melnikov 33

2.3.3 Le schéma linéaire 35

2.3.4 Remarques 35

2.4 Conclusion 35

3 Mise en oeuvre de la simulation 37

3.1 Introduction 37

3.2 Vérification et implémentation des algorithmes sous Matlab 38

3.2.1 Résolution de la dynamique du système 38

3.2.2 Implémentation des algorithmes et tracé des trajectoires sous Matlab 39

3.3 Mise en oeuvre de la simulation 45

3.3.1 Cahier de charge du simulateur 47

3.3.2 Conception du simulateur 47

3.3.3 Réalisation de l'interface graphique 53

3.4 Conclusion 56

4 Résultats et discussions 57

4.1 Résultats obtenus sous Matlab 57

4.1.1 Comparaison entre les méthodes 57

4.1.2 Mise à l'échelle du nombre de couches dans un schéma hiérarchique 59

4.1.3 Mise à l'échelle du nombre de liens dans un schéma à L liens 59

4.2 Résultats de la simulation 59

4.2.1 Poursuite cyclique 61

4.2.2 Rapetissement de polygone 62

4.2.3 Remarques 63

4.3 Conclusion 63

Table des figures

1-1

Interaction d'un agent avec son environnement

4

1-2

Architecture d'un SMA à contrôle centralisé

6

1-3

Architecture d'un SMA à contrôle distribué

6

1-4

Structure d'un agent réactif dans un environnement multi-agents

7

1-5

Structure d'un agent cognitif dans un environnement multi-agents

8

2-1

la structure d'une poursuite cyclique traditionnelle à 4 agents

19

2-2

Structure d'un schéma hiérarchique à 2 couches (9 agents, 3 groupes)

22

2-3

Trois couches d'hiérarchie dans une poursuite cyclique

23

2-4

Structure d'une poursuite cyclique de 5 agents à 2 liens

25

2-5

La dynamique du rapetissement de courbe

32

2-6

Rapetissement de polygone

33

2-7

Le cercle circonscrit de 3 points de la courbe

34

3-1

4 agents dans une poursuite cyclique traditionnelle

41

3-2

16 agents dans une poursuite cyclique hiérarchique à 4 couches

43

3-3

8 agents dans une poursuite cyclique à 4 liens

44

3-4

Rapetissement par Menger-Melnikov d'un polygone formé par 16 agents

46

3-5

Rapetissement par le Schéma linéaire d'un groupe de 16 agents

46

3-6

Diagramme de classes

49

3-7

Diagramme de séquences

54

3-8

Interface principale de la simulation

55

3-9

Rapport des résultats

56

4-1

Les 3 méthodes de la poursuite cyclique d'un groupe de 16 agents

58

4-2

Trajectoires des deux méthodes du rapetissement de polygone

59

4-3

La poursuite cyclique hiérarchique de 16 agents en fonction du nombre de couches. . .

60

4-4 La poursuite cyclique à 4, 8 ou 12 liens 60

4-5 Le comportement observé des agents avec la méthode de Menger-Melnikov 62

Introduction générale

Parmi les domaines d'application de la robotique, nous trouvons les missions de sauvetage où la présence de l'homme est menacée et telles que des robots sauveteurs doivent se réunir à un lieu donné pour effectuer cette mission au même moment. Plusieurs stratégies sont nécessaires pour effectuer une navigation fiable de robots mobiles dans un environnement contraint, l'une d'elles est la convergence à un point de rendez-vous.

Dans une telle situation, on cherche à concevoir une stratégie de rendez-vous d'un groupe de robots mobiles autonomes et homogènes, formant un système multi-agents. Dans ce mémoire, ce problème a été étudié et les solutions proposées dans la littérature notamment par Stephen L. Smith[1], ont été testées. Les travaux de Smith s'intéressent au développement d'algorithmes pour l'allocation de tâches dans des groupes de robots mobiles.

Inspirés par ses travaux et par sa thèse de master sur les stratégies de rendez-vous et de stabilisation de formations, nous allons implémenter deux approches de la stratégie de rendez-vous dont la poursuite cyclique et le rapetissement de courbe.

Notre travail se compose de quatre chapitres. Le premier représente une synthèse bibliographique sur les systèmes multi-agents appliqués dans le domaine de la robotique et à la stratégie de rendez- vous.

Au second chapitre, une description analytique approfondie de notre système et des différentes solutions proposées sera établie. Le système est composé de n agents se situant dans un plan complexe, chaque agent peut détecter les positions de certains des autres agents, selon la méthode employée. Un agent considéré comme leader doit initialiser tous les agents avec les informations nécessaires à l'accomplissement de la stratégie. Un rapport entre les taux de convergence des différentes méthodes est calculé pour comparer entre elles.

Au troisième chapitre, une mise en oeuvre des solutions proposées au chapitre 2 sera réalisée. Dans un premier temps, nous allons vérifier la validité et la convergence des algorithmes sous matlab, et tracer les trajectoires effectuées par les agents. Ensuite, une interface graphique sera réalisée, permettant de simuler les différentes approches de cette stratégie, visualiser le comportement des

agents et calculer certaines valeurs d'évaluation.

Finalement, nous discuterons les résultats obtenus par la simulation et présenterons les avantages et les inconvénients de chaque méthode, ainsi que les éventuelles difficultés rencontrées dans l'implémentation des algorithmes.

Chapitre 1

Le problème de la stratégie de

Rendez-vous

1.1 Introduction

Dans ce chapitre, le problème de rendez-vous est présenté où un ensemble d'agents mobiles réalise une convergence à un point commun. Pour cela, nous commencerons par présenter un aperçu sur les systèmes multi-agents, leur application aux robots mobiles et plus précisément à la stratégie de rendez-vous. Les différentes approches présentées dans la thèse de Stephen L. Smith [1] seront étudiées dans le chapitre 2.

1.2 Agents et Systèmes multi-agents

1.2.1 Définitions
· Agent

Un agent est une entité (physique ou abstraite) caractérisée par le fait qu'elle est autonome dans la prise de décision, par ses connaissances sur elle même et sur les autres, et par sa capacité d'agir.

Ce peut-être un processus (en gestion des processus dans les systèmes d'exploitation), un robot (dans un environnement industriel), un être humain (en sociologie), etc.

Pour Weiss (1999), un agent est une "entité computationnelle", comme un programme informatique ou un robot, qui peut être vue comme percevant et agissant de façon autonome sur son environnement. voir figure 1-1

FIG. 1-1 - Interaction d'un agent avec son environnement

Caractéristiques d'un agent:

- un agent est une entité autonome mais fortement dépendante des autres.

- un agent communique à l'aide de messages, ou par partage d'informations. - un agent est autonome, il peut refuser de faire ce qu'on lui dit de faire.

- les agents peuvent être spécialisés: un agent ne sait pas faire beaucoup de choses mais

ce qu'il sait faire, il le fait vite et bien et le met en commun avec les autres agents.


· Système multi-agents

Un système multi-agents (SMA) est constitué d'un ensemble de processus informatiques se déroulant en parallèle, donc de plusieurs agents vivant au même moment, partageant des ressources communes et communicant entre eux.

Le point clé des SMA réside dans la formalisation de la coordination entre les agents.

Partant de la définition que donne Ferber(1995) [2] d'un agent logiciel, on peut définir cette entité comme un système informatique situé dans un environnement, capable de mener de manière autonome des actions sur cet environnement en vue d'accomplir ses objectifs, possédant en plus les propriétés de :

Réactivité : il perçoit des stimuli provenant de son environnement et réagit en fonction de ceux-ci. Proactivité : il est mû par un certain nombre d'objectifs qui guident ses actions.

Sociabilité : il communique avec d'autres agents ou des humains et, peut se trouver engagé dans des transactions sociales (négocier ou coopérer pour résoudre un problème) afin de remplir ses objectifs.

On parle ainsi d'intelligence artificielle distribuée.

L'une des grandes sources d'inspiration pour les systèmes multi-agents a été l'étude des comportements sociaux de certaines familles d'insectes. Dans ce domaine, on se référera utilement aux articles Intelligence collective et Intelligence distribuée.

Les SMA peuvent être vus comme la rencontre de divers domaines :

· l'intelligence artificielle pour les aspects prise de décision de l'agent.

· l'intelligence artificielle distribuée pour la distribution de l'exécution.

· les systèmes distribués pour les interactions entre agents.

· le génie logiciel pour l'approche agents et l'évolution vers des composants logiciels de plus en plus autonomes.

Les SMA peuvent être partagés en deux types d'architectures [3], en fonction du type de contrôle adopté :

SMA à contrôle centralisé ou a base de tableau noir

Composé de trois éléments :

- Les connaissances représentées par les agents.

- Le tableau noir: qui est une zone de travail commune, dévolue à la transition d'informations entre les différents agents. Chacun peut venir le consulter à sa guise, y prélever et y déposer des objets qu'il peut également modifier. Le tableau structure la modélisation du domaine d'application comme l'espace des hypothèses et des solutions.

- Le mécanisme de contrôle : concerne les contraintes sur les relations entre les conversations des protocoles qui régissent le système, et au quels l'agent peut participer simultanément ou successivement.

Le SMA à contrôle centralisé possède en outre les propriétés suivantes :

- Pas de communication directe entre les agents.

- Interaction via le partage d'un même espace de travail qui est le blackboard. - Mal adapté aux SMA large échelle.

SMA a contrôle distribué

- Une distribution totale des connaissances et du contrôle.

- Caractéristiques :

· Traitement local.

· Communication entre agents par envoi de messages.

- Le langage d'Acteur est la technique la plus utilisée pour la mise en oeuvre de ce type

FIG. 1-2 - Architecture d'un SMA à contrôle centralisé

FIG. 1-4 - Structure d'un agent réactif dans un environnement multi-agents

d'architecture. Un Acteur regroupe au sein d'une même entité un ensemble de connaissances : les accointances, un script.

1.2.3 Classification des agents

Les experts des systèmes multi-agents ont classifié ces derniers (agents) en deux grandes catégories selon un critère essentiel qui est la représentation de son environnement, et sont donc les agents réactifs et les agents cognitifs, et les systèmes dits hybrides.

Agents réactifs

On parle ici de système intelligent d'agents. Les agents sont simples et ne possèdent pas une représentation de leur environnement, ni de mémoire, ce qui les prive d'apprentissage et de toutes anticipations aux évènements. Ils sont caractérisés par l'absence de structures organisationnelles initiales prédéfinies, d'où les agents agissent naturellement au moment où l'action est nécessaire. Leur comportement est de type «stimuli - réponses».Voir figure 1-4

Les SMA dotés d'agents réactifs possèdent généralement un grand nombre d'agents. Le comportement de groupe est impressionnant lorsqu'il s'agit de coordonner certaines actions, telles que leur déplacement.

FIG. 1-5 - Structure d'un agent cognitif dans un environnement multi-agents

Agents cognitifs

On parle ici de système d'agents intelligents. Les agents cognitifs sont plus évolués, résultats des recherches menées dans le domaine de l'intelligence artificielle. Ils possèdent une représentation globale de leur environnement et des agents avec lesquels ils communiquent, ils tiennent aussi compte de leurs actions antécédentes. Chaque agent possède une base de connaissances comprenant l'ensemble des informations nécessaires à l'accomplissement de sa tâche, ainsi qu'à l'interaction avec l'environnement et les autres agents. Voir figure 1-5

Les SMA constitués d'agents cognitifs compte un petit nombre d'agents «intelligents», exigent des ressources plus importantes que les agents réactifs, et permettent de résoudre des problèmes plus complexes.

Agents hybrides

Ce type d'architecture combine les agents réactifs et cognitifs, qui sont généralement distribués sur plusieurs niveaux ou couches. La couche de haut niveau, délibérative, rassemble des agents purement cognitifs, s'occupe du raisonnement et de la prise de décision du système. La couche de bas niveau ne rassemble que des agents réactifs qui exécutent généralement des tâches élémentaires sous les ordres de la couche supérieure ou par leurs propre initiative. La (les) couches intermédiaires, peuvent regrouper les deux types d'agent (réactifs et cognitifs), le nombre de couches intermédiaires dépend du modèle du système à concevoir.

1.2.4 Domaines d'application des SMA

On distingue généralement 3 types d'utilisation des systèmes multi-agents :

La simulation ou la modélisation de phénomènes complexes

Où on utilise les SMA pour simuler des interactions existantes entre agents autonomes. Le but est de déterminer l'évolution de ce système afin de prévoir l'organisation finale. Ce qui importe c'est le comportement d'ensemble et non pas le comportement individuel. L'autonomie permet ici de simuler le comportement exact d'une entité.

La première simulation utilisant les SMA, et qui d'ailleurs fut la source d'inspiration de ceux-ci est le système MANTA (simulation d'une fourmilière) [4].

La résolution de problèmes et prise de décision

L'intelligence artificielle distribuée est née pour résoudre les problèmes de complexité des gros programmes de l'intelligence artificielle : l'exécution est alors distribuée, mais le contrôle reste centralisé. Contrairement aux SMA, où chaque agent possède un contrôle total sur son comportement. Pour résoudre un problème complexe, il est plus simple de concevoir des programmes relativement petits (les agents) en interaction, qu'un seul gros programme monolithique. L'autonomie permet au système de s'adapter dynamiquement aux changements imprévus qui interviennent dans l'environnement.

Exemple : minimisation d'impact pour des aménagements

La conception de programmes

Intégrer un système d'information constitué d'un ensemble d'agents organisés pour faciliter la compréhension et la décision, soit individuelle, soit collective. Contrairement à un objet, un agent peut prendre des initiatives, refuser d'obéir à une requête, se déplacer . . .

Exemple : systèmes d'aide à la négociation de projets

1.2.5 Quelques exemples de SMA

Les systèmes multi-agents associés à l'intelligence artificielle représentent actuellement un grand domaine d'application et de recherche. Plusieurs systèmes ont été développés, nous présenterons ici quelques uns tels que :


· Le système MANTA [4] : ce système illustre parfaitement l'intérêt de la modélisation multiagents de type réactif. Il modélise la constitution d'une fourmilière mature à partir d'une ou

plusieurs reines, étudie la capacité d'adaptation d'une telle colonie, le mécanisme de polyéthisme(division du travail), et la spécialisation des ouvrières.

Cette simulation avait vérifié le fait qu'une société d'agents peut bien survivre et s'organiser en
se passant de tout système de contrôle centralisé et d'une quelconque organisation hiérarchique.

· Le comportement de meute : les agents réactifs se montrent capables d'évoluer parfaitement en groupe tout en s'évitant mutuellement, constituant par là une meute aux comportements très souples. Le premier à s'être intéressé à ce comportement est Craig Reynolds (1987) [5], il a créé des créatures appelées "Boïds", des agents réactifs capables d'interagir pour réaliser un comportement semblable à un vol d'oiseaux migrateurs, chacun des Boïds se contentant d'appliquer un ensemble de règles comportementales :

- Maintenir une distance minimale par rapport aux objets de l'environnement y compris les autres Boïds.

- Adapter sa vitesse à la moyenne de celle de ses voisins.

- Aller vers le centre de gravité de l'ensemble des Boïds voisins.

Contrairement aux oiseaux, les Boïds évoluent sans leader et sans contrôle global. Ils contournent tous ensemble un obstacle tout en restant naturellement groupés.

· les systèmes industriels distribués : où les concepteurs partent de problèmes réels existants et ils cherchent à les résoudre en se basant sur les techniques d'interaction et de coopération des systèmes multi agents.

Plusieurs systèmes ont été développés dans les domaines de la télécommunication, et de contrôle du trafic aérien.

· Applications temps réel: Les agents ont été bien évidemment appliqués au domaine des systèmes temps réel; ce dernier maintient des systèmes à contrainte souple. On voit de plus en plus des systèmes temps réel dit Hard utilisant des agents.

· Applications agents pour le commerce électronique : Le e-commerce signifie des échanges de produits qui se passent via Internet. Les sites pour les ventes aux enchères, pour les négociations entre les utilisateurs (producteurs/consommateurs), etc.

· Applications agents pour la Recherche d'Information: Une grande partie des applications de système multi-agents est dans le domaine de recherche d'information. Parmi ces nombreuses applications dans ce domaine, on peut trouver "NetSA" [6] : une architecture de système multi-agents pour la recherche d'information dans des sources hétérogènes et réparties.

Nous avons aussi les projets suivants : Phoenix (simulation de contrôle de feux de forêts); Archon (gestion de réseaux électriques); SimDelta (simulation de gestion de ressources halieutiques); Smaala (aide à la localisation d'infrastructures linéaires); Simpop (dynamiques urbaines); Swarm (simulation d'écosystèmes); Gestion de trafic aérien ...

1.3 SMA et robots mobiles

Dans ce mémoire, nous étudierons une stratégie de navigation d'un groupe d'agents (robots) autonomes, constituant ainsi un système multi-agents.

La mise au point d'un système de navigation pour un robot mobile représente un champ d'application privilégié pour valider les notions d'agents autonomes et SMA. La robotique constitue également un champ d'application fécond pour aborder l'intelligence collective.

Après quelques définitions de termes employés, nous aborderons les SMA et leur application dans le domaine de la robotique.

1.3.1 Définitions

· Robot

Il existe plusieurs définitions d'un robot, satisfaisant plusieurs domaines. La norme internationale ISO 8373 [7] a définie un robot comme étant un manipulateur universel programmable, automatiquement contrôlé, reprogrammable, ayant 3 axes ou plus, qui peut être soit fixé dans une place ou mobile dans le cas des applications industrielles automatisées.

· Robot mobile

Un robot mobile est une machine automatique qui est capable de naviguer dans un environnement, généralement non fixé à un endroit physique.

Les robots mobiles sont le centre de beaucoup de recherches courantes et presque chaque université principale possède un ou plusieurs laboratoires de recherche des robots mobiles.

· Robot autonome

Les robots autonomes sont des robots qui peuvent accomplir des tâches désirées dans des environnements contraints sans assistance humaine continue. Ils peuvent également apprendre ou gagner de nouvelles possibilités, comme ajuster les stratégies d'accomplir leurs tâche(s) ou à s'adapter aux environnements changeants.

Un degré d'autonomie élevé est souhaitable dans les domaines tels que l'exploration de l'espace, où l'acquisition de l'information est retardée et les interruptions sont inévitables.

1.3.2 Application des SMA aux robots mobiles

Ces dernières années, plusieurs équipes de recherche de robots mobiles intègrent les architectures de systèmes multi-agents dans la navigation, les stratégies de positionnement et les tâches que peut accomplir un groupe d'agents.

L'utilisation d'agents robotiques est bénéfique dans le sens où, cela permet de limiter la perte de vies humaines dans les milieux hostiles.

L'exemple d'application le plus courant est : la collaboration d'un groupe de robots mobiles et l'exploration d'un environnement contraint d'obstacles, en vue d'accomplir certaines tâches. Ce type de problèmes peut facilement être modélisé en appliquant un SMA. Vu sa complexité, le comportement global sera distribué sur les agents, et chaque robot se doit d'être autonome pour pouvoir réaliser sa tâche, s'adapter à l'environnement et réagir aux évènements inattendus.

1.3.3 Exemples de SMA réalisés en robotique

Plusieurs systèmes multi-agents ont été développés dans le domaine de la robotique, nous citerons seulement quelques uns dont le succès a attiré notre attention :

· La reprise des travaux de Reynolds (comportement de meute) par Mataric (1992 -94) [8] appliqués à des agents réactifs robotiques. Un comportement de meute est obtenu par pondération des comportements d'évitement d'obstacles, de filature de robots, d'agrégation et de dispersion. Les résultats ont été moins brillants que ceux de Reynolds, car il a remarqué que les robots s'éloignent les uns des autres, ou au contraire sont très compactés. Mais il a affecté ces problèmes à la dynamique imparfaite de la mécanique des robots ainsi qu'à la limitation de leurs capteurs.

· Le projet Mars Explorer [9] : Un projet développé par l'équipe SMAC de l'université des Sciences et Technologies de Lille, concernant le positionnement de robots mobiles. Le but est d'avoir des robots qui explorent leur environnement et le cartographient, pour qu'ils puissent se repérer et s'orienter dans un environnement inconnu préalablement.

· Robots sauveteurs: Le projet AROUND (Autonomous Robots for Observation of Urban Networks after Disasters) en partenariat avec le Vietnam, est un système d'aide à la décision et qui vise à développer des systèmes automatiques d'observation et de surveillance. Il consiste à déployer et coordonner des robots autonomes d'observations dans les zones urbaines victimes

de catastrophes.


· Et on conclue avec les recherches de Stephen L. Smith (2005) [1] dans les stratégies de robots mobiles autonomes dont la stabilisation à une formation, ou encore la stratégie de Rendez-vous qui fait l'objet de notre projet.

1.4 Stratégie de Rendez-vous des SMA

La plupart des travaux actuels en système multi-agents entraînent l'utilisation de stratégies simples de contrôle local dans le but de réaliser un ou un groupe de comportements global désiré. L'un des comportements étudiés dans ce mémoire est « la convergence d'un groupe d'agents mobiles à un point commun ».

C'est un type de problèmes de Rendez-vous appelé aussi agrément ou problème de consensus. Nous étudierons et comparerons ainsi les différentes approches et méthodes initiées par S. L. Smith pour réaliser cette stratégie.

1.4.1 Situation du problème

Notre système multi-agents est tout simplement un groupe d'agents. On impose une tâche désirée au SMA, un agent superviseur doit initialiser les agents avec les informations nécessaires à l'accomplissement de la tâche. A partir de ce moment, et jusqu'à la fin, les agents agissent sans l'intervention du superviseur. Ainsi les agents sont autonomes, et tentent d'accomplir la tâche utilisant seulement leurs informations locales.

1.4.2 Définition de la stratégie

Considérons un groupe de « n » agents réactifs numérotés de 1 jusqu'à n et situés dans un plan supposé sans obstacles. La stratégie de rendez-vous consiste à partir de positions initiales quelconques et à se réunir à un point commun au même instant, ici c'est le point centre de gravité.

Les agents ne sont pas tous dirigés dans la même direction. Chaque agent, équipé d'un senseur omnidirectionnel, de détection de positions relatives, avec une capacité de capture supérieure à la dimension de son environnement, peut sentir la position de tout autre agent.

Comme la communication est coûteuse, nous admettons que moins il existe de liens entre les agents, mieux est la solution.

1.4.3 Exemples d'application de la stratégie

La stratégie de rendez-vous des SMA, associée à d'autres stratégies et techniques de groupes de robots mobiles, peut être utilisée, par exemple, dans les cas suivants :

Les missions de sauvetages, dans des milieux hostiles comme le cas d'un incendie, où un nombre de robots mobiles sauveteurs doivent arriver au même moment, pour pouvoir effectuer cette tâche.

- La recherche d'un objet dans une zone fermée, le périmètre de cette zone est déterminé par les agents qui sont équipés par des capteurs pour détecter la pièce recherchée.

- Un groupe de robots se réunissant à un minerai, pour extraire et/ou transporter la matière extraite.

- La commande automatique de véhicules ...

1.4.4 Les différentes approches adoptées

Il y eu deux approches dans l'étude des SMA. La première fut l'utilisation de l'intelligence artificielle, et la deuxième l'utilisation de l'analyse numérique pour l'étude du comportement qui résulte de stratégies locales de contrôle. Nous utiliserons la deuxième pour résoudre le problème de rendez-vous.

Smith a introduit à son tour deux approches pour la réalisation de cette stratégie, dont : la poursuite cyclique et le rapetissement de courbe.

Dans chacune de ces approches, il a présenté des méthodes possédant chacune des avantages et des inconvénients. Dans le chapitre qui suit, une étude détaillée de ces méthodes et une comparaison théorique entre elles, seront données.

1.5 Conclusion

Dans ce chapitre, nous avons présenté une brève introduction à la stratégie de rendez-vous, aux systèmes multi-agents et leur application dans le domaine de la robotique mobile pour mieux appréhender la suite du projet.

Chapitre 2

Différentes approches de la stratégie

de rendez-vous

2.1 Introduction

Dans ce chapitre, nous étudierons plus en détail le problème de rendez-vous, les différentes approches adoptées par Smith [1] ainsi que les méthodes associées.

Un schéma analytique du problème sera présenté pour chaque méthode, vu qu'on utilise l'approche de calcul numérique, par référence aux travaux de Smith.

Dans le but de concevoir une stratégie de rendez-vous, plusieurs méthodes suivant différentes approches ont été étudiées dans la thèse de Smith, et ce dans le but de trouver la méthode la plus efficace, la plus rapide et aussi la moins coûteuse. Dans la première partie de ce chapitre, nous expliquerons la première approche, qui est la poursuite cyclique et dans la deuxième, le rapetissement de courbe appliqué au SMA.

2.2 La poursuite cyclique

Il a été montré dans la littérature que le point de convergence d'un groupe d'agents et les mouvements des agents mobiles autonomes peuvent être commandés en employant des lois de poursuite cyclique (généralement utilisée dans la commande de véhicules).

Smith et autres ont mis en place un modèle mathématique décrivant cette stratégie comme suit : un groupe d'agents représentés par des points de masses, numérotés de 1 à n, la position de chaque agent peut être décrite dans un plan complexe par le point z = x + jy , i = 1, ..., n, avec j = J--1

z = x + jy

CHAPITRE 2. DIFFÉRENTES APPROCHES DE LA STRATÉGIE DE RENDEZ-VOUS 16

La stratégie est telle que l'agent « i » chasse l'agent « i+1 ». La vitesse de l'agent « i » en direction de l'agent « i+1 » est donnée par le modèle suivant :

_zi =zi+1-zj, i=1,...,n-1

(2.1)

_zri = z1 - zri.

Suivant ce schéma, les agents vont converger à leur centre stationnaire. Plusieurs stratégies peuvent être inspirées de ce modèle de base, c'est ce que nous verrons dans cette section. Mais avant, nous allons définir quelques concepts mathématiques utiles à la suite du chapitre.

2.2.1 Préalables mathématiques

Pour continuer, nous avons besoin de définir quelques concepts mathématiques utiles à la conception de notre système, tels que les matrices circulantes, et circulantes par blocs, la diagonalisation de matrices circulantes...

Matrices circulantes

Considérons un n-uplets (c1, C2, C3, ..., cri) de nombres réels. La matrice circulante, est une matrice carrée (n x n) dont les lignes sont composées du n-uplet décalé à droite cycliquement modulo n. La forme générale d'une telle matrice est la suivante :

6 6

6 Cri C1 C2 ~ ~ ~ Cri_1

6 6

C = 6 Cri_1 Cri C1 ~ ~ ~ Cri_2

(2.2)

...

2 C1 C2 C3 ~ ~ ~ Cri

...

...

..

.. ..

C2 C3 C4 ~ ~ ~ C1

D'une façon plus explicite, nous écrirons :

C =: circ(c1, C2, C3, ..., cri)

Définition 2.1 En algèbre linéaire, une matrice carrée M d'ordre n (nEN*) à coefficients dans un corps commutatif K, est dite diagonalisable si elle est semblable à une matrice diagonale, c'est-à-dire s 'il existe une matrice inversible F telle que F _1MF soit une matrice diagonale.

CHAPITRE 2. DIFFÉRENTES APPROCHES DE LA STRATÉGIE DE RENDEZ-VOUS 17

C =cnP n1 + cn_1P n2 + ... + c2P + c1I (2.3)

avec:

010---0

001---0

P= =circ(0,1,0,...,0) (2.4)

... ... ... ... ...

100---0

Remarque 2.1 Ceci découle du fait que:

P2 =circ(0,0,1,0,..0,0), P3=circ(0,0,0,1,0,..,0), ...

Après certaines transformations sur la matrice C, nous obtenons la formule . 3. Définition 2.2 posons :

qc(s) = cnsn_1 + cn_1sn~2 + ... + c2s + c1s°

d'où:

C = qc(P)

Pour le calcul des valeurs propres de C, que nous noterons VP(C), nous devons d'abord calculer les valeurs propres de la matrice P. Davis [10] a montré que :

VP(C) = {qc(.X) : 2 VP(P)}

Par définition de la matrice P dans [10] :

VP(P) = {1,e2~jIn,e4~jIn,...,e2(n_1)~jIn} (2.5)

Posons w = e2~iIn d'où:

VP(P) = {1,w,w2,...,wn_1}

= VP(C) = fqc(1); qc(w); qc(w2); :::; qc(wn~1)g

Après quelques calculs [1], nous obtenons la matrice diagonale:

CHAPITRE 2. DIFFÉRENTES APPROCHES DE LA STRATÉGIE DE RENDEZ-VOUS 18

qc(1) 0
·
·
· 0

A= 0 qc(w)
·
·
· 0

...

...

. . .

. . .

0
·
·
· 0 qc(wn-1)

C = FAF* avec F la matrice inversible de passage de la forme :

1

F=

,Vn

1 1
·
·
· 1

1 w
·
·
· wn-1

. .

. .

. .

... ...

1 wn-1
·
·
·w(n-1)(n-1)

De cette manière, nous aurons montré que la matrice circulante est diagonalisable.

Matrices circulantes par blocs

La matrice circulante par bloc est une matrice circulante où chaque réel dans la matrice 2.2 est remplacé par une matrice carrée Di (m x m), elle a la forme suivante :

2 D1 D2 D3
·
·
· Dn

6 6 6Dn D1 D2
·
·
· Dn-1

6

D =6 6Dn-1 Dn D1
·
·
· Dn-2

...

...

...

. . .

. . .

D2 D3 D4
·
·
· D1

C'est une matrice de dimension (nm x nm), et elle peu aussi être écrite en fonction de la matrice P(n x n) :

D= P n-1 0Dn+Pn-20Dn-1+
·
·
·+P0D2+I0D1

Définition 2.3 0 représente le produit de kronecker.

Le produit de kronecker entre deux matrices A(n x m) et B est définie comme suit :

a11B
·
·
· a1mB

A 0 B =

...

. .

. .

. .

an1B
·
·
· anmB

FIG. -1 - la structure d'une poursuite cyclique traditionnelle à 4 agents

Les valeurs propres de A ® B sont données par tous les produits possibles entre les valeurs propres de A et B.

2.2.2 Poursuite cyclique traditionnelle

C'est le cas le plus simple de la poursuite cyclique, où chaque agent poursuit l'agent qui le suit dans l'ordre de numérotation, tel qu'il est décrit dans le système 2.1. Ce système peut aussi s'écrire dans la forme vectorielle suivante :

z_ = A1z (2.6)

où A1 = circ(--1, 1,0, ..., 0). La matrice A1 = P -- I où P est donnée par 2.4. Smith a démontré le théorème suivant dans sa thèse [1] :

Théorème 2.1 Considérons la poursuite cyclique dans le schéma . 6, pour toute configuration initiale, le centre des agents z1(t), z2(t), ..., z,(t) est stationnaire et tous les zi(t), (i = 1,..., n) convergent à ce centre.

Le centre des agents est donc stationnaire, et est donné à chaque instant "t" par l'expression

1
n

z~ =

X,
i=1

suivante :

zi(t) (2.7)

Exemple 2.1 Prenons le cas de 4 agents, la poursuite cyclique est représentée par le schéma -1, et la matrice de transformation est :

--1 1 0 0

0 --1 1 0

A1=

0 0 --1 1

1 0 0 --1

2.2.3 Poursuite cyclique hiérarchique

Dans cette partie, le concept d'hiérarchie est introduit et appliqué à la poursuite cyclique. La hiérarchie veut dire une organisation des agents selon une hiérarchie de groupes en plusieurs couches. Le cas le plus simple est le schéma hiérarchique à deux couches, en suite nous étudierons un schéma plus général avec un nombre de couches quelconque.

Schéma hiérarchique à deux couches

Dans ce cas, les n agents de la poursuite cyclique traditionnelle sont répartis en n2 groupes de tailles identiques, chaque groupe contenant n1 agents (n1 x n2 = n). La stratégie est donc que, les agents d'un groupe sont en poursuite cyclique (traditionnelle), et leurs centres respectifs le sont aussi. Ceci veut dire que le centre de chaque groupe d'agents poursuit le centre du groupe suivant dans l'ordre de numérotation des groupes.

Chaque agent est caractérisé par sa position, dans un plan complexe, notée zi,j où i (i = 1, :::, n2) représente l'indice du groupe, et j (j = 1, ..., n1) l'indice de l'agent dans le groupe "i". Le schéma décrivant cette stratégie, et ainsi les vitesses de déplacement des agents est le suivant :

 

8

_z1,1 = z1,2 -- z1,1 + d1,1

 
 
 
 
 
 
 
 

<>>>>>>

_z1,2

= z1,3 -- z1,2 + d1,2

 
 

groupe 1

>>>>>>:

}

 

(2.8)

 
 

...

 
 
 
 
 
 
 
 
 

_z1,n1

= z1,1 -- z1,n1 + d1,n1

 
 

...

 
 
 
 
 

8

_zn2,1 = zn2,2 -- zn2,1 + dn2,1

 
 

groupe 2

<>>>>> >

_zn2,2 = zn2 ,3 -- zn2 ,2 + dn2,2

}

 
 
 

...

 
 
 

>>>>>>:

 
 
 
 
 

_zn2,n1

= zn2,1 -- zn2,n1 + dn2,n1

 
 

Où les di,j sont les déplacements des agents, la question est donc, : comment choisir ces déplacements pour réaliser la stratégie décrite par 2.8

L'équation de déplacement des centres, sachant qu'ils réalisent une poursuite cyclique, est :

:

zi = ~zi+1 -- zi, i = 1, ..., n2 -- 1 (2.9)

:

~zn2 = ~z1 -- ~zn2

CHAPITRE 2. DIFFÉRENTES APPROCHES DE LA STRATÉGIE DE RENDEZ-VOUS 21

1

n1

~zi =

Xn 1
j=1

où le centre du groupe "i" est donné par:

zi;j (j = 1, ..., n1) (2.10)

1

n1

:

~zi =

Xn 1
j=1

en dérivant ce système, nous obtenons la vitesse de déplacement du centre du groupe "i" :

di;j (j=1,...,n1) (2.11)

car, d'après 2.8 :

Xn 1 _zi,j = Xn 1 di;j Vi= 1,...,n2

j=1 j=1

d'après 2.11 et en remplaçant dans 2.9, nous obtenons :

Xn 1
j=1

:

di;j = n1 ~zi= n1(~zi+1 - ~zi) (2.12)

Pn2

=

i=1

Pn1
j=1

di;j = n1

n2
P

i=1

:

~zi = 0

= le centre des n agents est stationnaire.

Plusieurs di;j peuvent être choisis satisfaisant 2.12, l'un des choix : di;j = zi+1,j - zi,j.

Ceci veut dire que l'agent "j" dans le groupe "i" poursuit l'agent "j" dans le groupe "i+1". Si on remplace les di;j par leurs expressions dans 2.8, nous obtenons la dynamique de l'agent "j" du groupe "i" :

_zi;j = zi,j+1 - zi;j + zi+1,j - zi;j (2.13)

nous remarquons que l'agent "j" du groupe "i" a un lien avec l'agent "j+1" du même groupe, et un lien avec l'agent "j" du groupe "i+ 1". D'où chaque agent aura besoin de deux liens de communication (capteurs). Avec cette stratégie, le système comporte 2n senseurs.

L'équation 2.13 s'écrit dans une forme vectorielle :

z_=Bz+Dz

où B est la matrice diagonale par blocs représentant la poursuite cyclique à l'intérieur d'un groupe.

FIG. 2-2 - Structure d'un schéma hiérarchique à 2 couches (9 agents, 3 groupes)

avec A1 = (P - I)(n 1Xn1) telle qu'elle est définie dans la poursuite cyclique traditionnelle. La matrice D représente les di;j et est donc de la forme :

D = circ(-1,1,0,...,0)(n2Xn2)®In1

= (P - I)(n2xn2) ® In1 = circ(-I, I,0,... , 0)

où In1 = S représente les connexions de chaque agent dans un groupe aux agents du groupe suivant.

Un "1" dans la fg~emeposition de la matrice S (f,g = 1, ...,n1) indique que le f~eme agent dans un groupe détecte le g~eme agent du groupe suivant (modulo n2).

posons A2 = B+D = circ(A1 -I, I,0, ..., 0), où A2 est une matrice circulante à blocs de dimension (n x n) où chaque bloc est de dimension (n1 x n1).

le système devient alors :

z_ =A2z

Exemple 2.2 Considérons un groupe de 9(n) agents, et un schéma hiérarchique à deux couches, avec 3(n2) groupes de 3(n1) agents (voir figure 2-2). La matrice de transformation est donc :

2

-1 1 0

6

6

A2 = circ(A1 - I,I,0,...,0) avec A1 = 6 0 -1 1

4

1 0 -1

A2 = circ(-2, 1,0, 1,0,0,0,0,0).

= circ(-1, 1,0). et I =

100
010
001

FIG. 2-3 - Trois couches d'hiérarchie dans une poursuite cyclique

Schéma général

Dans un schéma plus général, nous avons L couches d'hiérarchie. La première couche contient n1 agents, la deuxième contient n2 sous-groupes de n1 agents, la troisième n3 groupes de n2 sous- groupes de n1 agents, ... (voir Figure 2-3)au total, nous avons r'L nm = NL.

m=1

Le système est le suivant :

z_=ALz (2.14)

où z est un vecteur colonne de taille NL (le nombre d'agents global), et AL est une matrice de dimension (NL x NL). Pour L = 1, la matrice A1 = (P - I)n1~n1:

A chaque fois que nous ajoutons une couche, nous devons nous assurer que le comportement de la couche inférieure reste stable. Ceci veut dire que les agents / les groupes de la couche inférieure restent en poursuite cyclique. Des senseurs sont ajoutés entre les centres des groupes d'une même hiérarchie, pour qu'ils réalisent une poursuite cyclique au niveau supérieur. Comme pour le schéma hiérarchique :

- Les A1 au long de la diagonale représentent la poursuite cyclique dans chaque groupe.

- Les "-I" au long de la diagonale, associés aux "I" au long des blocs qui suivent, représentent les connexions entre les groupes pour créer la nouvelle couche d'hiérarchie.

Chaque agent dans un groupe prend la position de l'agent dans le groupe suivant moins sa propre

position, pour créer la nouvelle hiérarchie. Une hiérarchie à L couches est décrite par le système 2.14 où, la matrice AL est obtenue de façon récursive à partir de A1, de la façon suivante:

A1 = circ(-1,1,0,...,0) (2.15)

Am = circ(Am_1 - I,I,0, ..., 0) m = 2, ..., L

où Am est une matrice composée de nm blocs de dimension Nm_1 X Nm_1.

Le nombre de liens de communication:

Nous remarquons que, pour mettre en place chaque nouvelle couche, tout agent doit avoir un lien avec un agent d'un autre groupe, ceci est décrit par la deuxième diagonale "I" dans 2.15. D'où chaque agent aura L liens de communication avec les autres agents. Ainsi, le système compte un total de LNL liens.

La question qui se pose naturellement est comment choisir la distribution d'agents qui donne le meilleur taux de convergence (que nous calculerons dans la dernière partie de cette section)? Smith [1] a introduit et démontré le théorème suivant :

Théorème 2.2 Dans le cas où /NL est un entier, la distribution uniforme des nm :

pn1 = n2 = ~ ~ ~ = nL = NL (2.16)

est une distribution optimale. De plus elle est la seule à l'être. Sachant que la distribution optimale, qui satisfait r'L nm = NL, est celle qui donne le taux de convergence le plus important.

m=1

Remarque 2.2 Cette solution donne une augmentation dans le taux de convergence équivalente à

RL = N2(n_1)' L

L que nous verrons ensuite comment calculer.

Remarque 2.3 Quand pNL n'est pas un entier, il peut exister plusieurs distributions optimales.
Par exemple, pour NL = 12, L = 2, deux solutions optimales : {n1, n2} = {3, 4} et {n1, n2} = {4, 3}.

2.2.4 Poursuite cyclique à L liens

En comparant, dans la partie qui va suivre, les deux techniques étudiées précédemment, la pour-
suite cyclique hiérarchique donne un taux de convergence plus élevé que le schéma traditionnel.
Cependant, elle demande plus de liens de communication entre les agents, chaque agent perçoit plus
d'un agent contrairement au traditionnel où chaque agent ne capte que l'agent qui le suit dans l'ordre.
Pour cette raison, un schéma intermédiaire a été introduit où le nombre de connexions entre
agents est inférieur au schéma traditionnel, ou plus ou moins contrôlé, et où chaque agent chasse le

FIG. 2-4 - Structure d'une poursuite cyclique de 5 agents à 2 liens.

centre d'un groupe d'agents.

Dans une poursuite cyclique à L liens, chaque agent possède un lien de communication avec "L" agents. S'il y a NL agents, alors il y aura un total de LNL connexions dans le système. La stratégie que nous adopterons est la suivante :

Dans un système de NL agents, l'agent "i" poursuit le centre des agents de "i+1" jusqu'à "i+L" (modulo NL). Formellement ceci s'écrit :

1
L

_zi=

XL
m=1

zi+m(modNL) ~ zi i=1, . . . ,NL.

ou sous une forme vectorielle : _zi = Az avec ANLXNL une matrice circulante de la forme :

,0,...0) (2.17)

| {z }

L uns

circ(--L,1,... 1

1

A= L

Exemple 2.3 Prenons le cas de NL = 5 agents, avec L = 2 (voirFigure e-4). la matrice de transformation A est la suivante :

A = 1 2circ(-2, 1,1,0,0) = circ(-1,1 2, 1 2,0,0).

2.2.5 Comparaison et taux de convergence

Dans cette partie, nous comparerons entre les trois différentes méthodes de la poursuite cyclique. Cette comparaison servira à faire une sélection entre les méthodes selon différents facteurs, elle sera ensuite appuyée par les résultats de notre simulation au dernier chapitre.

En plus du temps de convergence et de la vitesse moyenne des agents calculés à la fin de la simulation, un rapport est calculé pour exprimer l'augmentattion dans le taux de convergence entre

chaque couple de méthodes : Schéma traditionnel / l'hiérarchique, hiérarchique / Poursuite cyclique à L liens et ce dernier / schéma traditionnel.

Définition 2.4 Le taux de convergence des agents à leur centre est déterminée à partir de la valeur propre non nulle de A2 avec la partie réelle absolue la plus petite, nous appellerons cette dernière "valeur 'y".

Définition 2.5 L'augmentation dans le taux de convergence (R) calculé représente la rapidité de convergence du groupe d'agents au centre, avec une méthode comparé à l'autre méthode, c'est un rapport entre les parties réelles des valeurs 'y des deux différentes méthodes :

Ï(valeur 'y(m~ethode 1))

R = Ï(valeur 'y(m~ethode 2)) Ï: La partie réelle du nombre complexe.

Poursuite cyclique traditionnelle / hiérarchique

Soit : NL le nombre d'agents total.

Le taux de convergence correspondant à cette comparaison est:

Ï(valeur 'yhier)(2.18) Ï(valeur 'ytrad)

RL = traditionnel

hierarchique

Pour trouver la valeur 'y, nous devons d'abord calculer les valeurs propres de la matrice de transformation correspondant à la méthode utilisé AL (A1).

D'après 2.15, la matrice Am est une matrice circulante à blocs, ses valeurs propres sont donc :

VP(Am) = nm[ VP(Am_1 + (e2~j(r_1)Inm - 1)I)

r=1

donc, les VP(Am) sont les nm ensembles de VP(Am_1) décalées à gauche par am(r) = e2~i(r_1)Inm1. Nous remarquons que :

-2< Ï(am(r))<0 Vr=1,...,nm.

car : Ï(om(r)) = cos(2r(r - 1)/nm) - 1. et -1 < cos(2r(r - 1)/nm) < +1.

Pour trouver la valeur 'y, nous devons d'abord déterminer toutes les valeurs 'y possibles de VP(Am). Ces valeurs 'y appartiennent aux ensembles des VP avec le décalage à gauche le plus petit.

- Le premier ensemble des VP(Am), elles sont simplement les VP(Am_1) décalées par am(1) = 0, donc les valeurs 'y possibles de cet ensemble sont les valeurs 'y des VP(Am_1).

- L'ensemble des VP avec le décalage suivant le plus petit est donné par Am_1 + am(2)I (ou également am(nm))[1]. Pour cet ensemble, la VP nulle de Am_1(la VP la plus à droite) est décalée à gauche de am(2). Elle est donc la valeur 'y de cet ensemble, et est donnée par:

'ym := e2~jInm - 1

De cette façon, on constitue l'ensemble des valeurs 'y possibles. Ensuite, la 'y-value des VP(Am) doit être, ou la valeur 'y des VP(Am_1), ou bien 'ym. Ceci est un schéma récursif, pour chaque couche ajoutée, une autre VP est ajoutée à l'ensemble des 'y - values possibles. Plus concrètement :

Pour la première couche, la valeur 'y des VP(A1) est : 'y1 := e2~u/n1 - 1.

La deuxième couche, la valeur 'ye des VP(A2) est la valeur 'y des VP(A1) qui n'est autre que 'y1 ou bien : 'y2 := e2~3/n2 - 1.

De même pour la troisième couche, la valeur 'y des VP(A3) est 'y1, 'y2 ou : 'y3 := e2~3In3 - 1.

...

Pour les VP(Am) la valeur 'y du schéma hiérarchique à L couches est donnée par:

'y := e2~j' - 1 w = max

m

{nm}, m=1,...,L.

Pour la poursuite cyclique traditionnelle, il n'existe qu'une seule couche donc, la valeur 'y est donnée par : 'y := e2~j'NL - 1.

Ainsi, à partir de 2.18 l'augmentation du taux de convergence utilisant le schéma hiérarchique en comparaison avec la poursuite cyclique traditionnelle est :

Hi~erarchique R = Traditionnel

<(e2~iI - 1)
<(e2~iINL - 1)

cos(2r/w) - 1
cos(2r/NL) - 1

Pour simplifier cette expression, nous remplaçons le cos par son développement limité de l'ordre

1 avec :

cos(x) = Pn

i=0 (_1)i

(2i)! x2n + o(x2n) à l'ordre 2n avec o(x2n) -! 0 cos(x) à l'ordre 1 : cos(x) = 1 - 1 2x2. d'où :

1_1 2 (2ir/$)2_1 R 1_ 2 1 (21r/NL)2_1

~ 2=$ ) 2 ~NL 2 ~ NL 2

= = =

21r/NL $ maxm{nm}

Remarque 2.4 Dans le schéma hiérarchique à deux couches, le taux de convergence est directement:

max{n1, n2}

NL = min{n1,n2}2

(R2 =

2

Cas particulier: Lorsque n1 = n2 = /N2 les N2 agents convergent approximativement N2 fois

plus rapidement utilisant le schéma hiérarchique qu'utilisant la P.C traditionnelle.

.

Remarque 2.5 Pour la distribution optimale des nm, trouvée précédemment concernant le schéma hiérarchique général. Et d'après 2.16 Le taux de convergence est :

~ (

( NL J 2 ~ 2 ~ J 2 ~ 2

L1

NL L

R L = NL ~ N_1IL = N2(L_1)=L

L pNL = = = N

N1/L L L L

L

Dans tous les cas, RL ~ 1 et donc, la convergence au centre utilisant une hiérarchie se fait plus rapidement que le schéma traditionnel.

Cependant, le schéma hiérarchique nécessite plus de liens de communications que le traditionnel, d'où plus de senseurs => il est donc plus coûteux.

Poursuite cyclique hiérarchique / à liens

De la même manière, nous retrouvons la valeur 'y de la poursuite cyclique à L liens, pour la comparer à celle du schéma hiérarchique, et calculer le taux de convergence.

D'après la formule 2.17 et utilisant la forme polynomiale de la matrice A qui est : A = qc(P) avec : qc(s) = 1 LsL + 1 LsL_1 + ... + 1 Ls - s0,

VP(A) = ~qc(1), qc(w), qc(w2), ..., qc(wNL_1)~

avec : w = e2~j=NL

La matrice A est circulante, elle possède donc une seule VP nulle qc(1) et toutes les autres se situent dans la partie gauche du plan. S.L. Smith [1] a montré qu'il faut que NL » L pour que la valeur 'y des VP(A) soit donnée par qc(w) = 'y.

XL

1

'y = qc(w) = L(w + w2 + ~ ~ ~ + wL) - 1 = 1

L

m=1

e2~jm=NL - 1

et la partie réelle de est :

XL

1

<('y) = L

m=1

(cos(2mr/NL)) - 1

CHAPITRE 2. DIFFÉRENTES APPROCHES DE LA STRATÉGIE DE RENDEZ-VOUS 29

Ainsi, le taux de convergence est :

Hi~erarchique R = L-lien

cos(2r/w) - 1

(cos(2mr/NL)) - 1

=

avec w = max{n1, n2, ..., nL}

1
L

PL
m=1

Toujours en utilisant le développement limité du cosinus, simplifions cette expression :

1_1 2 (2ir/$)2_1

R = PL

m=1

(27r $ )2

=

( 27r )2 1 PL

m2

NL L m=1

(NL )2

L ~ :

$

(1_1 2 ( 27rm

NL )2)_1

PL
m=1

1
L

m2

1
L

PL
m=1

De même, nous avons: R ~ 1 et donc, le schéma hiérarchique à L couches converge plus rapidement que celui à L liens, même s'ils demandent tous les deux le même nombre de capteurs.

Poursuite cyclique à L liens / Traditionnelle

Dans les comparaisons précédentes, nous avons calculé les valeurs 'y correspondant aux deux méthodes respectives (traditionnelle, L-liens). D'où l'augmentation dans le taux de convergence de la P.C à liens comparée à la traditionnelle est la suivante :

L - liens

R = Traditionnelle

(cos(2mr/NL)) - 1

=

cos(2r/NL) - 1

Après simplification du cos par son développement limité de l'ordre 1 :

(1_1 2 ( 27rm

NL )2)_1

1_ 1 2 (21r/NL)2_1

PL

Pm=1 2 ( 27r

1 NL )2 =m=

m2 ~ 1 = Les agents avec le schéma à L liens

R=

1

1_1 2 ( NL 27r )2

m2_1 L

1
L

PL
m=1

convergent plus rapidement qu'avec le traditionnel, mais demandent plus de liens de communications et donc plus de senseurs.

2.3 Le rapetissement de polygone

Dans cette section, nous appliquerons la théorie du rapetissement de courbe aux SMA. Si on considère que les agents représentent les sommets d'un polygone, en utilisant les résultats du rapetissement de courbe euclidien, nous prouvons que ce polygone va se rétrécir jusqu'à devenir un point qui n'est autre que le centre des agents, et par ce fait réaliser la stratégie de rendez-vous.

Nous commencerons par un aperçu mathématique sur la géométrie euclidienne, le rapetissement de courbe, les différentes propriétés des polygones, ensuite nous étudierons deux méthodes mise en oeuvre par S. L. Smith [1] qui appliquent le rapetissement de polygone au problème de rendez-vous, dont Menger-Melnikov, et un autre schéma linéaire.

Considérons toujours le système représenté ci-dessous, où les z sont les positions des agents et

_zi leur vitesses respectives :

p

zi = xi + jyi i = 1, . . . , n j = -1

_zi = ui

où ui est calculé en fonction de la méthode utilisée.

2.3.1 Préalables mathématiques

Dans ce qui suit, et pour pouvoir poursuivre, un aperçu sur la géométrie euclidienne, la dynamique du rapetissement de courbe qui en dérive, ainsi que quelques propriétés des polygones.

Géométrie euclidienne

Définition 2.6 Une transformation euclidienne de R2 est une fonction L : R2 . R2, L(x) = Ux+a. Où U est une matrice orthogonale (2 x 2), a 2 R.

U est une matrice orthogonale == U~1 = UT

L'ensemble des transformations euclidiennes est l'ensemble de toutes les rotations, translations, réflexions d'une figure dans R2. Autrement dit, la géométrie euclidienne est l'étude des propriétés des figures qui restent inchangeables par des transformations euclidiennes. Ces propriétés euclidiennes comprennent la distance, la courbure et la colinéarité des points.

Rapetissement de courbe euclidien

Soit une famille de courbes lisses et fermées, x(p, t) : [0, 1] x [0, r] - R2, situées dans un plan complexe où p désigne les points le long de chaque courbe et t la famille de courbe. La courbe initiale x(p, 0) évolue en fonction du temps à x(p, r). Nous allons considérer dans un premier temps seulement la première courbe noté x(p) = (x1(p), x2(p)).. Le vecteur tangent à la courbe est donné pardx

dp = _x, son vecteur unité est T(p) = x_

k _xk = ( _x1(p); _x2(p))

k _xk .

et le vecteur unité de la normal qui est perpendiculaire à la tangente (N(p) T(p) = 0) est : N(p) = (~ _x2(p)j _x1(p))

k _xk .

Un nouveau paramètre de la courbe sera introduit pour les prochains calculs "s" qui représente la longueur d'un arc, et ce afin de décrire la distance autour de la courbe au lieu de p. Avec ds = k _xk dp.

F 3 F 3

LT T L x' 1 x' 2

Soit la matrice de rotation A(s) = ] = ] où 0 décrit la différentielle par rapport

NT -x ' 2 x' 1

à "s". Pour calculer la dynamique du système, nous allons d'abord calculer la dynamique des deux

vecteurs N et T pour obtenir l'équation de Frenet [12]. C'est à dire A'.

CHAPITRE 2. DIFFÉRENTES APPROCHES DE LA STRATÉGIE DE RENDEZ-VOUS 31

A' = AGA~1A = C(s)A Trouvons C(s)?

A-1 = AT = X0 --X2

001

(matrice orthogonale)

[ 0

X2X1

2

A' = 4

» »

X1 X2

--X »2 X » 1

3
5

2 3 2 3 2 3

» » 0 0 0 » 0 »C(s) = 1 = X1 X2 X1 --X2 = X1X1 + X2X2 X;X'2' -- X;i2 4 5

0 0 » 0 0

--X2 X1 X2 X1 --X1X2 -- X1X2 X1X1 + X2X2

2 3

0

j 0 X1

posons : k(s) = X1X2 -- X1X2 = det 5= det(X, ,X, ). Où k(s) est la courbure de la courbe

X2 X2

X(s) et le rayon de courbure est : 1

1i(s)1-

Nous avons aussi :

(AAT)/ = A/AT + A(AT)/ = A/A-1 + (A-1)T(A/)T = A/A-1 + (A/A-1)T

Avec : --(AAT )/ = 0, puisque : AAT = I. --A/A-1 = C(s)

et donc : C(s) = --C(s).

[ 0 "

--X1X1 -- X2X2 --X1X2 + X1X2

» 0 0 » 0 » 0 »

X1X2

+

X1X2--X1X1

--

X2X2

--C(s) =

C(s) = --C(s) )

0 » 0 »

X1X1 + X2X2 = 0 D'où :

8

<

:

0 » 0 » 0 » 0 »

X1X1 + X2X2 = --X1X1 -- X2X2

0 » » 0 0 » » 0

X1X2 -- X1X2 = --X1X2 + X1X2

}

0 » 0 j ), i i ,

X1X1 + X2X2 = --(X1X1 + X2X2) )

C(s) =

[ 0 k(s)1

--k(s) 0 (2.19)

Retrouvons la dynamique du système :

dT

A(s) =[1 A/ (s) = [dd ds Ns1 A-1(s) = hT-1 N-1i

NT

d'après 2.19 :

2 AGA-1 = 4

dT

dT
ds

dN
ds

3hT-1 N-1i --k(s =[ 0 k(s)1

) 0

)

8

<

:

dTds N-1 = k(s)
dNds T-1 = --k(s)

}

 

{

dTdsN-1N = k(s)N
ddNs T-1T = --k(s)T

}

)

8

<

:

dTds = k(s)N
ddNs = --k(s)T

}

)L'équa-

 
 
 

2

)4

ds T-1 ds T-1 N-1

T

dN T-1 dN N-1 ds ' ds

1= [ 0 k(s)1

--k(s) 0

FIG. 2-5 - La dynamique du rapetissement de courbe

Dans la dynamique du rapetissement de courbe Euclidien, la courbe x(p, t) est déformée le long de son vecteur normal N(p, t) avec un taux proportionnel à sa courbure k(p, t). Et donc:

Dx

3p (p,t) = k(p,t)N(p,t) (2.20)

La formule 2.20 décrit la dynamique du rapetissement de courbe Euclidien x(p, t) tel qu'il est montré dans la figure 2-5.

Rapetissement de polygone

Nous allons appliquer les résultats de Smith et autres concernant le rapetissement de courbe aux systèmes multi-agents. Considérons un groupe d'agents mobiles autonomes situés dans un plan et formant les sommets d'un polygone à "n" cotés (voir la figure 2-6). En créant un schéma de rapetissement de polygone semblable à celui du rapetissement de courbe, les sommets (les agents) convergeront à un point elliptique. Ainsi, la forme du polygone se rétrécissant à un point aura les mêmes propriétés que la théorie du rapetissement de courbe. Avant, nous donnerons une définition formelle d'un n - gons ainsi que quelques propriétés intéressantes.

Définition 2.7 Un n - gons est un circuit de "n" segments de ligne : z1z2, z2z3,. . . , znz1,joignant chaque paire de points consécutifs : z1, z2, . . . zn. Les segments sont appelés cotés, et les points sommets.

Définition 2.8 Un polygone simple est un n - gons avec les cotés non intersectés. Notons I3i les angles internes (dans le sens contraire des aiguilles d'une montre) entre les côtés consécutifs zizi+1 et zi_1zi d'un polygone. i = 1,.. . , n(modulo n). Ces angles satisfont :

FIG. 2-6 - Rapetissement de polygone

Définition 2.9 Un n - gons convexe est n - gons simple dont les angles internes satisfont : 0 ~ /3i ~ 7r,Vi=1,...,n.

Polygone convexe Polygone concave

Une ligne tracée entre n'importe quels deux points distincts du n-gons convexe appartient toujours à celui-ci.

2.3.2 Rapetissement par la courbure de Menger-Melnikov

Considérons le cas où nous connaissons seulement quelques points discrets x(pj), i = 1,... , n d'une courbe lisse x(p) (voir la figure 2-6). En connectant ces points, nous obtenons un n - gons. Quand n - oc le n - gons n'est rien d'autre que la courbe même.

Il existe un unique cercle circonscrit qui passe par n'importe quels trois points, non colinéaires, x(pj_1), x(pj), x(pj+1) pj_1 < pi <pj+1 sur la courbe x(p) comme sur la figure 2-7.

R(pi) est le rayon de ce cercle, et Ci(pi) le centre circonscrit. La quantité 1

R(pi) est appelé la

courbure de Menger-Melnikov et a la propriété suivante :

lim

pi-1 ,pi+1!pi

1
R(pi)

= Ik(pi)I

FIG. 2-7 - Le cercle circonscrit de 3 points de la courbe

Quand les deux points x(pi_1) et x(pi_1) sont proches de x(pi) :

C(pi) -- x(pi) R(pi) --*

8

<>>>

>>>:

N(pi) si k(pi) > 0
ou
--N(pi) si k(pi) <0

9

>>>=

;>> >

et donc : lim

pi1 ,pi+1!pi

C(pi)_x(pi)

R(pi)2 = k(pi)N(pi).

Utilisant cette méthode, un schéma discret analogue au rapetissement de courbe euclidien peut être mis en oeuvre. Considérons "n" agents z1, z2,.. . z, situés dans un plan complexe, et formant un n -- gons. pour chaque 3 sommets consécutifs : zi_1, zi,zi+1, la fonction suivante est définie:

(zi_1--zi-- zi+1 -- zi ~ 1

ci = c(zi_1, zi, zi+1) = (2.21)

zi_1 -- zi zi+1 -- zi zi_1 -- zi+1

où zi est le conjugué complexe. zi = xi + jyi = xi -- jyi.

Dans [1], il a été démontré que lcil est la courbure de Menger-Melnikov pour les 3 points zi_ 1, zi, zi+1. Le centre circonscrit est donné par: zi+Ci

jCij2 . Le vecteur normal pour zi est approximé à

jCij. Et donc, la dynamique de la courbure de Menger-Melnikov décrit précédemment peut être écrit

Ci

comme suit :

_zi = c(zi_1,zi,zi+1)

Le nombre de liens de communication nécessaires pour réaliser ce schéma est de 2n, puisque chaque agent zi doit percevoir les deux agents zi_1 et zi+1:

L'évolution du polygone décrite par ce système a été étudié dans [11]. Mais vu la complexité de ce système et du calcul de ci, les résultats sont limitées. Il a été montré que :

- Un n - gons simple s'écroule en un point dans un temps fini, et pour n = 4, la plupart des quadrilatérales tendent à des polygones réguliers en se rétrécissant.

- Quand n est petit, pour un n - gons convexe, il peut exister un _zi qui ne se dirige pas vers l'intérieur.

- Quand le polygone s'écroule, la vitesse des sommets _zi devient infiniment grande, car le dénominateur dans ci devient très petit quand les points se rapprochent. Ceci n'est pas compatible avec les SMA, où la vitesse doit rester raisonnable.

Vu que les résultats obtenus avec cette méthode n'étaient pas très satisfaisants (ce qui va être confirmé avec les résultats de notre simulation au dernier chapitre), Smith a introduit un nouveau schéma linéaire pour le rapetissement de polygone.

2.3.3 Le schéma linéaire

L'idée est simple, nous considérons la même configuration d'agents précédente, la stratégie consiste à ce que chaque agent "j" chasse le centre de ses deux agents voisins (j - 1) et (j + 1). La vitesse de l'agent j est la distance qui sépare ce dernier du centre de ses 2 voisins :

_zi=

1 1

2(zi+1 - zi) + 2(zi_1 - zi) (2.22)

Avec: _zi = 1 2(zi_1 + zi+1) - zi.

Le nombre de liens de communication nécessaire pour ce schéma est aussi égale à 2n, pour les même raison que le cas précédent.

2.3.4 Remarques

- Smith [1] a montré qu'un groupe d'agents, disposés et formant une étoile autour de leur centre de gravité, restent dans cette forme pour le reste du temps jusqu'à arriver au centre.

- Il a aussi démontré qu'un n -gons convexe évoluant selon la formule 2.22 reste toujours convexe.

2.4 Conclusion

Dans ce chapitre nous avons étudié théoriquement les différentes approches utilisées pour effectuer une stratégie de rendez-vous de SMA, leurs caractéristiques ainsi que les limitations rencontrées lors de la conception. Un schéma hiérarchique a été introduit pour la poursuite cyclique. Nous avons aussi étudié la théorie mathématique du rapetissement de courbe appliquée aux SMA, des résultats

ont été explicitement déduits. Ils seront vérifiés dans le chapitre suivant où nous mettrons en oeuvre une simulation de ces différentes approches et méthodes relatives.

Chapitre 3

Mise en oeuvre de la simulation

3.1 Introduction

La simulation consiste à effectuer des expériences sur un modèle d'un système réel, dans notre cas, il s'agit d'une stratégie de collectivité de robots autonomes dans un environnement spécifique. Pour ce faire, nous décomposons cette activité en quatre étapes :

Analyse du système réel, et des informations que l'on désire obtenir sur son comportement.

- Représentation d'un modèle, dans lequel nous ne retenons que les caractéristiques qui semblent pertinentes par rapport aux résultats recherchés, sous forme d'un programme de simulation. L'expérimentation, dans laquelle nous faisons évoluer le modèle, c'est à dire interpréter le

programme de simulation à l'aide d'un schéma d'exécution adapté qui est le simulateur.

- Analyse des résultats produits, et en déduire des informations sur le comportement du système réel.

La première étape a été traitée dans le chapitre précédent. Dans celui-ci, il s'agit de prendre en charge les deux étapes qui suivent en développant une interface graphique sous forme d'une applet Java, pour simuler les différentes approches de la stratégie de rendez-vous et en déceler quelques caractéristiques. Dans le dernier chapitre, nous réaliserons la dernière étape.

Avant de procéder à la conception de l'interface de simulation, et compte tenu de la complexité des méthodes présentées au chapitre précédent, nous avons jugé nécessaire de passer par une étape intermédiaire, qui consiste à vérifier et à étudier la faisabilité des algorithmes. Ceci a été fait en utilisant Matlab, qui est un langage de calcul mathématique, car notre système implémente des algorithmes employant plusieurs d'outils mathématiques.

3.2 Vérification et implémentation des algorithmes sous Matlab

Avant de réaliser notre simulation sous Java, nous avons pensé à mettre en oeuvre des algorithmes implémentant les différentes stratégies et méthodes présentées au chapitre précédent. Cette implémentation permettra de vérifier la réalisabilité des algorithmes, de tracer les trajectoires des robots mobiles réalisant la stratégie de Rendez-vous, et de comparer entre les différentes approches. Cette étape fut très simple et très rapide, car Matlab offre une boite à outils mathématiques très riche contenant toutes les fonctions nécessaires à notre étude.

3.2.1 Résolution de la dynamique du système

Dans les deux approches adoptées pour réaliser la stratégie de Rendez-vous (Poursuite cyclique, Rapetissement de polygone), il s'agit de résoudre des systèmes dynamiques décrivant l'évolution d'agents mobiles autonomes dans un environnement spécifique. Ces systèmes sont régis par des équations différentielles d'ordre 1 qui sont sous la forme suivante :

x_ = f(t,x)

Pour résoudre ce type d'équation, nous utilisons la méthode de Runge Kutta d'ordre 4 [10] afin de calculer les positions des agents aux instants "t".

Définition 3.1 Les méthodes de Runge-Kutta sont des méthodes d'analyse numérique d'approximation de solutions d'équations différentielles. Elles portent le nom des mathématiciens Carl Runge et Martin Wilhelm Kutta. Ces méthodes reposent sur le principe de l'itération, c'est-à-dire qu'une première estimation de la solution est utilisée pour calculer une seconde estimation, plus précise, et ainsi de suite.

Algorithme 3.1 Algorithme de Runge Kutta d'ordre 4 Considérons le problème suivant :

x_ = f(t,x) x(t0) = x0 connu

La méthode de RK4 est donnée par l'équation:

xi+1 = xi +

h 6 (w1 +2w2 +2w3+w4)

w1 = f(t ,x )

w2 = f(t +h 2 ;x +h 2 k1)

w3 = f(t +h 2 ;x +h 2 k2)

w4 = f(t +h,x +hk3)

L'idée est que la valeur suivante x +1 est approchée par la somme de la valeur actuelle x et du produit de la taille de l'intervalle h par la pente estimée. La pente est obtenue par une moyenne pondérée de pentes :

w1 est la pente au début de l'intervalle.

w2 est la pente au milieu de l'intervalle, en utilisant la pente w1 pour calculer la valeur de x au point t + h 2 par le biais de la méthode d'Euler.

w3 est de nouveau la pente au milieu de l'intervalle, mais obtenue cette fois en utilisant la pente w2 pour calculer x.

w4 est la pente à la fin de l'intervalle, avec la valeur de x calculée en utilisant w3.

Dans la moyenne des quatre pentes, un poids plus grand est donné aux pentes au point milieu.

pente =

w1 + 2w2 + 2w3 + w4

6

L'ordre 4 signifie que l'erreur commise à chaque étape est de l'ordre de h5, alors que l'erreur totale accumulée est de l'ordre de h4.

3.2.2 Implémentation des algorithmes et tracé des trajectoires sous Matlab

Nous avons implémenté avec Matlab [13] les fonctions des différentes méthodes correspondant aux deux approches dont la poursuite cyclique et le rapetissement de courbe. Dans chacune d'elles, nous avons tracé des graphes affichant les trajectoires, effectuées par un groupe d'agents, pour vérifier leur convergence au point centre de gravité.

Poursuite cyclique

Pour effectuer cette stratégie, les agents évoluent selon le système ci-dessous avec la matrice A qui change suivant la méthode.

z_ =Az (3.1)

Remarque 3.1 Il existe une deuxième méthode pour la résolution du système 3.1, qui consiste à trouver itérativement les positions z telles que :

z = expm(At ).z0

Où expm(A) est la matrice exponentielle de A, et est calculée en utilisant la formule suivante :

expm(A) = V diag(exp(diag(D))) V ~1

Avec D : un vecteur constitué de l'ensemble des valeurs propres, et V: la matrice des vecteurs propres correspondant.

Ceci revient à calculer les valeurs et les vecteurs propres d'une matrice de dimension n, et donc de résoudre une équation et un système d'équation de l'ordre n. Ce dernier pouvant être très grand, il devient très difficile de résoudre le système. En utilisant matlab, ceci fut simple à implémenter car la fonction expm est prédéfinie. Mais pour programmer la classe Java qui le résout, l'exécution de la fonction aura une très forte complexité dans l'utilisation des ressources (temps et espace mémoire). C'est pour cela que nous avons employé une méthode plus simple qui est celle de Runge Kutta d'ordre 4.

Poursuite cyclique traditionnelle Dans cette méthode, la matrice A de la formule 3.1 est une matrice circulante de la forme : A1 = circ(-1 , 1,0,.. . , 0), et l'algorithme est le suivant :

Algorithme 3.2

Début

% n est le nombre d'agents

% z est un tableau contenant les positions des agents % zn est le centre des agents

A1 = zero (n); % une matrice nulle de dimension n

Pour i = 0 à n - 1 % Construire la matrice circulante
j = (i+1) mod n;

A1(i,i) = -1;

A1(i,j) = 1;

fin pour

zn = mean(z) % la moyenne du tableau z

h = 0.1;

FIG. 3-1 - 4 agents dans une poursuite cyclique traditionnelle

Tant que (z =6 zn) % les agents ne sont pas au centre

wi = Al * z;

w2=A1 *(z+ (h/6) *wl); w3=Ai *(z+ (h/6) *w2); w4=Al *(z+h*w3);

z = z +((h/6) * (w1+2*w2+2*w3+w4));

fin tant que

fin.

Implémentant plus formellement cet algorithme sous matlab, et traçant un plot des positions "z", nous obtenons la courbe dans la figure 3-1 pour n = 4:

Poursuite cyclique hiérarchique Dans ce schéma, la matrice AL (L étant le nombre de couches) est circulante à blocs et est obtenue d'une manière récursive à partir de la formule 2.15.

L'algorithme de la poursuite cyclique hiérarchique est le même que celui de la traditionnelle avec une différence dans le calcul de la matrice A.

Algorithme 3.3 Début ...

% L est le nombre de couches.

% ni est le nombre d'agents de la première couche.

nm = L pn;

Am = circulante(L,n,n1,nm); zn = mean(z);

...

fin.

Et voici un pseudo code de la fonction circulante(L,n,n1,nm) :

Code 3.1 Fonction circulante(m,n,n1,nm)

début

si (m = 1) % la matrice A1

A = zero(n1); %la matrice nulle

pour i=0 à n1-1

j = (i+1) mod n;

A1(i,i) = -1;

A1(i,j) = 1;

fin pour

sinon

size = nmm~1 ;

Id = eye(size); % La matrice identité de dimension size mat=circulante(m-1,n,n1,nm) - Id % La récursivité pour calculer Am-1
size = nmm;

A =zeros(size2, size2);

pour cpt=0 à ((size2/size)-1)

pour i=0 à size-1

pour j=0 à size-1

k = i+size*cpt;

l =j+size*cpt;

r = (l + size) mod size2 ;

A(k,l)=mat(i,j); % Am-1 - I

A(k,r)=Id(i,j); % I

fin pour

fin pour

fin pour

FIG. 3-2 - 16 agents dans une poursuite cyclique hiérarchique à 4 couches

fin.

Sous Matlab, nous avons obtenu la courbe dans la figure 3-2 traçant les trajectoires des agents dans une poursuite hiérarchique à L = 4 couches, et n = 16 agents.

Poursuite cyclique à L liens Ce schéma est aussi résolu avec l'équation 3.1, et la matrice correspondante AL est calculée à partir de la formule 2.17. L'algorithme qui implémentera cette méthode sera le même que la méthode précédente, et un pseudo code sous matlab décrivant la fonction de calcul de la matrice AL est la suivant :

Code 3.2

Début

A=zeros(n,n); % Initialisation de la matrice

pour k=0 à n-1

r = (k+1) mod n;

A (k, k) =-L ;

pour cpt=0 à L-1

r = (r+cpt) mod n;

A(k,r2)=1;

fin pour

fin pour

FIG. 3-3 - 8 agents dans une poursuite cyclique à 4 liens

A=(1/L) *A Fin.

Le graphe traçant les trajectoires d'un groupe de 8 agents effectuant une poursuite cyclique à 4 liens est dans la figure 3-3.

Rapetissement de polygone

Dans cette approche, à chaque instant "t", la position d'un agent est calculée à partir des positions précédentes de ses deux agents voisins. L'algorithme suivant trace les trajectoires des agents utilisant la technique de la courbure de Menger-Melnikov ou celle du schéma linéaire. Il est le même pour les deux méthodes, la différence réside dans le calcul de la fonction C de la formule 3.2. La résolution se fait toujours en utilisant la méthode de Runge Kutta.

z_ = C(zi_1,zi,zi+1) (3.2)

Algorithme 3.4

De but

% n est le nombre d'agents

% z est un tableau contenant les positions des agents à l'instant t % zprec est le tableau qui contient les positions à l'instant t-1

% zn est le centre des agents

zn = mean(z) % la moyenne du tableau z

h = 0.1;

Tant que (toutes les positions =6 centre)

pour chaque agent

zprec(i) = z(i);

w1 = Ci( zprec(j), zprec(i), zprec(k));

w = Ci( zprec(j)+(h/ )*w1, zprec(i)+(h/ )*w1, zprec(k)+(h/ )*w1);

w3 = Ci(zprec(j) + (h/ ) *w , zprec(i) + (h/ ) *w ,zprec(k) +(h/ ) *w );

w4 = Ci(zprec(j)+h*w3, zprec(i)+h *w3,zprec(k)+h*w3);

z(i) = zprec(i) + ((h/6) * (w1 + *w + *w3+w4));

finPour

fin tant que

fin.

Rapetissement par Menger-melnikov Pour cette méthode, comme nous avons vu au chapitre précédent la fonction C est calculée comme suit :

(zi_1 - zi - zi+1 - zi ) 1

ci(zi_1, zi, zi+1) = zi_1 - zi zi+1 - zi zi_1 - zi+1

Nous traçons alors le graphe qui décrit le rapetissement du polygone formé par les agents, ainsi que les trajectoires accomplies par les agents lors de leur convergence au centre. Voir la figure 3-4

Schéma linéaire Dans ce cas, la fonction C est définie comme suit, et les trajectoires, tracées par 16 agents mobiles effectuant un rapetissement de polygone, sont dessinées dans la figure 3-5:

1 1

ci(zi_1,zi,zi+1) = 2(zi+1 -zi)+ 2(zi_1 -zi)

Remarque 3.2 Les graphes seront commentés au chapitre suivant, où nous donnerons tous les résultats déduits sous Matlab, en parallèle avec ceux obtenus par la simulation.

3.3 Mise en oeuvre de la simulation

Dans cette perspective, nous réalisons notre simulation sous forme d'une applet java, une interface graphique qui permet de contrôler les entrées nécessaires au lancement de la simulation, de visualiser le comportement des agents dans un écran de simulation, ainsi que d'afficher les résultats déduits.

MengerMelnikov

50

Centre

Rapétissement de polygone Trajectoires

30

20

10

40

0

10

20

30

40

50

50 40 30 20 10 0 10 20 30 40 50

Partie réelle

FIG. 3-4 - Rapetissement par Menger-Melnikov d'un polygone formé par 16 agents

Schéma linéaire

20

Centre

Rapétissement de polygone Trajectoires

10

5

15

0

-5

-10

-15

-20

-20 -15 -10 -5 0 5 10 15 20

Partie réelle

Nos robots autonomes et homogènes sont modélisés via des agents réactifs. L'espace dans lequel ces agents errent est sous forme d'un plan à deux dimensions considéré sans obstacles.

3.3.1 Cahier de charge du simulateur

la simulation va nous permettre de tester la validité des solutions proposées dans le chapitre 3, de suivre et de vérifier le comportement des agents dynamiquement et de mesurer certains facteurs d'évaluation qui permettent de comparer entre les différentes méthodes étudiées au chapitre précédent.

L'utilisateur doit avoir la possibilité de :

- Choisir la stratégie ainsi que la méthode qu'il désire tester,

- Introduire le nombre d'agents qui constitue le système, ainsi que les différentes entrées nécessaires à chaque méthode,

- Spécifier une précision qui représente à quelle distance les agents doivent se réunir. Si cette précision est nulle, les agents effectuent un rendez-vous au centre,

- Lancer la simulation, avec la possibilité d'arrêter et de reprendre l'exécution ainsi que de l'annuler,

- Visualiser les résultats de chaque simulation après son achèvement, stocker ces résultats qui représentent le temps de convergence et la vitesse moyenne des agents, ainsi que le nombre de senseurs nécessaires à la méthode,

La possibilité d'afficher un rapport final regroupant les résultats obtenus utilisant les différentes méthodes, et de calculer les rapports de taux vus au chapitre précédent.

3.3.2 Conception du simulateur

Avant de réaliser la simulation, et indépendamment du langage utilisé, nous allons d'abord passer par une étape de conception de notre système multi-agents en réalisant des modèles UML [14], pour décrire l'aspect statique et dynamique de l'application.

Définition 3.2 La conception consiste à apporter des solutions techniques aux descriptions définies lors de l'analyse, on y définit les structures et les algorithmes sans tenir compte du langage de programmation utilisé. Aujourd'hui, le standard industriel de modélisation objet est UML (Unified Modeling Language). UML unifie à la fois les notions et les concepts orientés objet, et aussi les notations nécessaires aux différentes activités d'un processus de développement et offre, par ce biais, le moyen d'établir le suivi des décisions prises depuis l'expression des besoins jusqu'au codage.

Dans ce qui suit, nous donnerons les diagrammes de conception de la simulation.

Remarque 3.3 Dans notre projet, il s'agit de modéliser un système multi-agents, or UML utilise une approche orientée objets. Nous définissons un agent comme étant un objet intelligent capable de prendre des décisions sans intervention externe, ainsi les vocabulaires d'agent, de composant ou d'objet peuvent être employés dans les divers contextes et domaines du coté de l'utilisateur. Alors que du coté du développeur, il y a un lien évident entre ces entités et il est même souhaitable d'uniformiser les descriptions pour ne pas avoir à employer des méthodes ou des formalismes différents.

Il n'existe pas moins de 12 diagrammes UML, partagés en deux vues, une statique et l'autre dynamique. Nous utiliserons seulement deux, chacun décrivant une vue pour modéliser notre système. Ces diagrammes ont été conçus avec l'outil UMLEclipse de l'éditeur Java Eclipse.

Modélisation structurelle

Pour donner une vue statique du système c'est-à-dire représentant le système physiquement, nous donnons le diagramme de classes (voir la figure 3-6), qui est le point central dans le développement orienté objet, il représente la structure du code orienté objet, et par la suite les modules qui constituent l'application. Une classe est décrite par son nom, ses attributs (propriétés) et ses méthodes (fonctions). Mentionnons que notre interface hérite de la classe Applet et implémente la classe Runnable (Thread). Ceci pour permettre à l'utilisateur d'interrompre son exécution à n'importe quel instant, modifier la vitesse de simulation, et ceci se traduit par un pseudo-parallélisme dans l'exécution.

Légende du diagramme de classes

Définition 3.3 En Java:

Fonction (variable) publique : c'est une fonction (variable) qui peut être appelée à partir d'autres classes du même package.

Fonction (variable) privée : ne peut être que par la classe mère, et les classes parentes.

Fonction synchronisée : désigne une fonction partagée par plusieurs threads, rendre une fonction de type "synchronized" fait qu'elle ne puisse être appelée que par un seul thread à la fois.

FIG. 3-6 - Diagramme de classes

1

V= n

Xn
i=1

( di

temps) (3.3)

Description des classes

La classe Simulation Représente l'interface principale de notre simulation, elle héritera dans la phase de réalisation de la classe Java Applet de la bibliothèque Swing. Cette classe regroupe les différents attributs et méthodes nécessaires à la réalisation des simulations, dont :

Les attributs :

- Le nombre d'agents dans le système,

- Le nombre de couches dans le cas d'une poursuite cyclique hiérarchique,

- Le nombre de liens dans le cas d'une poursuite cyclique à liens,

- Le nombre de groupes dans le cas d'une poursuite cyclique hiérarchique à deux couches, - Les positions des agents tout au long de la simulation,

- La précision telle que nous l'avons définie précédemment.

Les méthodes :

- Ci(zi_1, zi, zi+1) : la fonction utilisée dans le rapetissement de courbe, décrivant l'évolution des agents du système.

- RungeKuttaPC() : pour la résolution de l'équation qui décrit le système dans le cas d'une poursuite cyclique.

- RungeKuttaRC() : La résolution de Runge kutta dans le cas du rapetissement de courbe.

- FinSimulation() : Une fonction booléenne qui scrute la fin de la simulation, autrement dit la réunion au centre.

- CalculNcouches() : Une fonction permettant le calcul des nombres de couches (L) admissibles en fonction du nombre d'agents saisi. La simulation permet d'effectuer les poursuites cycliques hiérarchiques :

- à 2 couches, avec possibilité de contrôler le nombre d'agents dans chaque groupe.

- Le cas optimal du schéma général, tel que nous l'avons vu auparavant, c'est à dire lorsque

pNL

2 N. Dans cette fonction, il s'agit de retrouver tous les L valides tels que cette condition L
soit vérifiée.

- CalculPositions() : Calcule les positions des agents dans le temps jusqu'à l'arrivée au centre et qui fait appel aux fonctions RungeKutta().

- CentreAgents() : Retourne les coordonnées du centre des agents.

- VitesseMoyenne() : Retourne la vitesse moyenne des agents, un facteur d'évaluation entre les différentes méthodes.

di : la distance parcouru par l'agent i.

temps : Le temps de convergence. C'est à dire, le temps nécessaire à l'accomplissement du rendez- vous.

- SauvegarderResult() : Une fonction qui permet de stocker les résultats obtenus (temps de convergence, vitesse moyenne, nombre de senseurs) des différentes méthodes, pour un nombre d'agents donné, afin de pouvoir les comparer. Les résultats ne sont sauvegardés que si cette simulation n'a jamais été lancée.

- CalculTaux() : Calcule l'augmentation dans les taux de convergence entre les différentes méthodes de la poursuite cyclique, ceux que nous avions approximé au chapitre 2. Le taux est calculé dans les cas que nous avons déjà vus.

La classe EcranSimulation Regroupe les propriétés de l'écran d'affichage des simulations, ainsi que des fonctions graphiques permettant son affichage, sa mise à jour ...

Les attributs :

- hight et width : décrivent les dimensions de l'écran.

- bordure : l'épaisseur de la bordure.

Les méthodes :

- paint() : la méthodes qui permet d'initialiser et d'afficher l'écran de simulation.

- Update() : met à jour l'écran, en affichant les nouvelles positions des agents ainsi que le centre. Elle est appelée par la classe Simulation.

- putPoint() : dessine un point (représentant un agent) su l'écran.

- Move() : la fonction qui gère le curseur, pour récupérer sa position d'où celle de l'agent à placer.

La classe Agent Comme chaque agent est représenté par sa position sous forme d'un nombre complexe, cette classe regroupera les propriétés et les fonctions qui gèrent les nombres complexes, telles que :

Les attributs :

x, y : la partie réelle et imaginaire du nombre complexe, représente aussi les coordonnées d'un agent selon l'axe des abscisses et des ordonnées.

Les méthodes :

- real() et imag() : retournent la partie réelle et imaginaire d'un nombre complexe. - mod() : retourne le module d'un nombre complexe, représente la vitesse d'un agent. - conj (): retourne le conjugué complexe d'un nombre complexe.

- plus(), minus(), times(), div (), scal() : les opérations effectuées sur les nombres complexes telles que : l'addition, la soustraction, le produit, la division ainsi que la multiplication par un réel.

La classe Matrice Une classe regroupant un ensemble de fonctions pouvant être effectuées sur des matrices carrées telles que : l'addition, la soustraction, le produit vectoriel, ... mais aussi des fonctions complexes telles que la construction d'une matrice circulante de dimension donnée.

Les attributs : Sont la matrice elle même (mat) et sa dimension (n).

Les méthodes :

- Identite() : Retourne la matrice identité de dimension n.

- Sub(), Plus (), ProduitVectorielCarre() : retournent les résultats de l'addition, la différence, et le produit vectoriel de 2 matrices carrées.

- ProduitMatScal() : retourne une matrice qui résulte produit d'un nombre réel par la matrice mat.

- SommeV() : somme de deux vecteurs.

- Modulo(i, pas, n) : retourne le résultats de (i + pas) mod n.

- Circulante(m, n1, nm) : une fonction récursive qui calcule la matrice circulante décrite dans la formule 2.15. avec m est le nombre de couches, n1 le nombre d'agents de la première couche, et nm le cardinal de chaque couche.

Circulante(n, n1) : un cas particulier de la matrice circulante qui est celle de la poursuite cyclique hiérarchique à deux couches, deux attributs sont nécessaires dont le nombre d'agents total et le nombre d'agents de chaque groupe, calculé à partir du nombre de groupes.$ Lliens(L, n) : retourne la matrice circulante de la poursuite cyclique à L liens, telle qu'elle est décrite dans la formule 2.17.

La classe Taux Cette classe représente les rapports de taux entre les différentes méthodes de la poursuite cyclique.

Les attributs : meth1 et meth2 pour décrire les deux méthodes comparées, et val la valeur du rapport approximé précédemment.

Les méthodes : Taux(meth1, meth2) : le constructeur de la classe.

La classe Rapport Cette classe représente une fenêtre (Frame) indépendante qui affiche le rapport regroupant les différents résultats obtenus lors des simulations lancées pour un groupe d'agents donné.

Les attributs : seulement un champs de texte qui affiche le rapport.

Les méthodes :

- Initialize() : réinitialisation du champs de texte, par exemple après changement du groupe d'agents.

- Ecrire() : Ecrit un rapport dans le champs de texte qui contient : le temps de convergence, le vitesse moyenne et le nombre de senseurs de toutes les simulations, ainsi que les rapports calculés entre les différentes méthodes de la poursuite cyclique.

Modélisation comportementale

Nous avons choisi le diagramme de séquences (voir figure 3-7), pour modéliser la vue dynamique de la simulation, montrer son fonctionnement et l'interaction entre l'utilisateur et l'interface de simulation.

3.3.3 Réalisation de l'interface graphique

Nous avons réalisé notre simulation sous forme d'Applet héritant de la classe JApplet de la bibliothèque Swing. L'interface graphique a été implémentée avec le plugin Visual Editor de l'EDI (Environnement de développement intégré) Java [15, 16, 17] Eclipse 3.2.

Définition 3.4 Les Swing sont des composants (boutons, fenêtres, label, menus ...) utilisés pour faire des interfaces graphiques. Ces composants sont regroupés dans le package Swing. Eclipse 3.2 comporte par défaut ce package.

Remarque 3.4 Les nombres manipulés dans la simulation sont tous des réels de format double, le type de codage est : IEEE 754.

L'interface de simulation est présentée dans la figure 3-8.

1 : Un bouton permettant l'affichage du rapport des résultats de la simulation.

2 : Onglets des entrées de la simulation, des deux stratégies et selon la méthode sélectionnée. Les champs doivent contenir des nombres positifs.

3 : L'écran de simulation, les robots mobiles sont représentés par des points de masses.

4 : Permet de contrôler la vitesse de simulation.

5 : Les résultats de la simulation, contient un chronomètre qui calcule le temps de convergence, et affiche à la fin de simulation la vitesse moyenne des agents donnée par l'équation 3.3. Ainsi que le nombre de liens de communication (senseurs) dans le système nécessaires à l'accomplissement de la stratégie.

Utilsateur

setPrecision()

Donner uneprécision deconvergence

Si méthode = PC hiérarchique

Si le nombredecouches est2

Si méthode = PC à liens

Choisir la s tratégieetla méthode

setNgroupes()
Sais ir le nombredegroupes

Choisir Nombre decouches

Sasir le nombre d'agents

Sais ir lenombre de liens

Lanc er la s imulation

LancerSimulation()

setN couches ()

Selectionner()

setNagents()

setNliens()

Positionner les agents

Interface:Interface

putPoint()

Ec ranSimulation()

Initialier Ec ran

Calculer les nombres de couches possibles

CalculNcouches()

Calc ulerla positionducentre

CalculCentre()

Afficher le temps de simulation Calc ulTemps ()

Sauv egarder les résultats Sauv egarderResult

Afficher le centre

putPoint()

La position des agents atteintle centre

Si méthode = Pours uite cy clique

Affichervitessede c onvergence

Calc uler lesnouvelles positions

Créer les agents

Si méthode = pours uite cy clique

Afficher le rapportdes résultats des s imulations

Vites seDeConvergence()

Agent()

Calc uler la matricede transformation

CalculPositions()

Ec ran: EcranSimulation

FinSimulation()

Circ ulante()

Afficher les nouvelles pos itions

Calc uler les rapports de taux

Ec rire()

Calc ulTaux()

Update()

PosAgent:Agent

A:Matrice

Taux :Taux

Rap port: Rappo

FIG. 3-8Interface principale de la simulation

6 : Boutons de contrôle, permettant de lancer la simulation, l'arrêter puis la reprendre, l'annuler ou de tout réinitialiser.

Remarque 3.5 Le temps de convergence:

Représente le nombre d'unités de temps nécessaires à l'accomplissement du rendez-vous. L'unité est le pas de la méthode de Runge Kutta, que nous avons vu au chapitre 3, et qui est égale à h = 0.1.

L'applet permet de tester les différentes stratégies étudiées dans le chapitre 2, et de percevoir le comportement des agents réalisant une stratégie de rendez-vous sans l'intervention de l'utilisateur entre le lancement et l'accomplissement de la simulation. Un rapport (voir la figure 3-9), sous forme d'une Jframe avec un bouton fermer, peut être visualisé à la fin de chaque simulation, regroupant tous les résultats obtenus, pour un groupe d'agents donné, et aussi les rapports de taux calculés entre les méthodes de la poursuite cyclique et qui permettent de comparer entre elles. Dans l'exemple de la figure, le résultat du rapport de taux entre la poursuite cyclique hiérarchique à 4 couches et la traditionnelle signifie que la première converge 64 fois plus rapidement que la seconde.

FIG. 3-9 - Rapport des résultats

3.4 Conclusion

Dans ce chapitre, une implémentation des approches de la stratégie de Rendez-vous, présentées dans le chapitre précédent, a été réalisée. Une première étape fut la vérification et la validation des algorithmes de base sous matlab, la seconde fut la mise en oeuvre d'une simulation Java implémentant toutes les méthodes, simulant la coopération et le déplacement des robots autonomes et affichant les résultats que nous allons discuter au chapitre qui suit, et qui va résumer l'ensemble des conclusions, des remarques et des théories fondées.

Le passage par Matlab fut très bénéfique dans le sens où ceci nous a permis une facilité dans la conception des algorithmes sans devoir programmer les outils mathématiques nécessaires à notre étude. La deuxième partie nous a permis de nous familiariser avec le langage de programmation orienté objet Java et plus spécialement avec l'environnement Eclipse, qui nous a aussi facilité l'étape de conception avec son plugin UMLEclipse.

Chapitre 4

Résultats et discussions

Dans ce chapitre, nous présenterons un résumé des résultats, des remarques et des conclusions obtenues lors de notre travail pratique qui a été abordé au chapitre 3. Nous discuterons des différents problèmes rencontrés lors de l'implémentation de la stratégie de rendez-vous et comparerons entre les méthodes étudiées pour réaliser cette stratégie.

Le chapitre se compose de deux parties, la première concerne le tracé de graphes sous Matlab en vue de comparer les trajectoires dessinées par les agents utilisant les trois méthodes de la poursuite cyclique, et celles du rapetissement de polygone et l'influence des nombres (de couches ou de liens) sur les vitesses de convergence.

Dans la seconde, nous allons commenter le comportement des agents qui a été observé lors des tests de simulations sous différentes approches, dans le but de déceler les avantages et les inconvénients des unes et des autres.

4.1 Résultats obtenus sous Matlab

4.1.1 Comparaison entre les méthodes

Hormis les trajectoires des agents tracées aux chapitre 3 (voir figures 3-1, 3-2, 3-3, 3-4, 3-5) pour vérifier leur convergence au centre, nous allons tracer dans cette partie d'autres graphes, les premiers affichent une comparaison entre les différentes méthodes, et les autres consistent à augmenter les nombres de (couches/liens) et à percevoir l'impact de ceci sur la rapidité de convergence.

Comparaison entre les méthodes de la poursuite cyclique

Nous avons tracé dans le même graphe (sur la figure 4-1) les 3 courbes décrivant les trajectoires des agents utilisant les méthodes de la poursuite cyclique, afin de pouvoir comparer entre elles.

Les 3 méthodes de la poursuite cyclique

20

Traditionnelle Hiérarchique 4-couches Hiérarchique 4-liens

10

5

15

0

-5

-10

-15

-20

-20 -15 -10 -5 0 5 10 15 20

Partie réelle

FIG. 4-1Les 3 méthodes de la poursuite cyclique d'un groupe de 16 agents

Nous remarquons que, les agents avec la méthode hiérarchique à 4 couches convergent au centre en premier, suivi de la poursuite cyclique à 4 liens, puis de la traditionnelle qui est la plus lente, ce qui confirme les résultats obtenues théoriquement au chapitre 2 en référence à ceux de Smith [1]. Sachant que les deux premiers schémas utilisent le même nombre de senseurs.

Comparaison entre les méthodes du rapetissement de polygone

Les trajectoires des agents qui s'affichent en bleu sur la figure 4-2 sont celles tracées en employant le schéma linéaire, les agents convergent effectivement et rapidement au centre en effectuant un rapetissement du polygone formé par les 16 agents. Par contre, dans le cas du rapetissement de Menger-Melnikov, nous remarquons que les agents se rapprochent, donnant l'illusion qu'ils convergent au centre, puis d'un seul coup s'éloignent comme il est montré sur les figures 4-2 et 3-4 ce qui va être mieux visualisé sur la simulation. Ceci est dû particulièrement au fait que lorsque les agents se rapprochent, la formule 4.1 va tendre vers l'infini, puisque les dénominateurs tendent vers 0. Ainsi, les positions des agents se dirigent dans le sens contraire et s'éloignent de leur lieu de rendez-vous, que nous allons voir dans la simulation qu'il ne se situe pas toujours au centre!

(zi_1-zi- zi+1 - zi ~ 1

ci = c(zi_1; zi; zi+1) = (4.1)

zi_1 - zi zi+1 - zi zi_1 - zi+1

trajectoires des méthodes du rapetissement de polygones

Centre MengerMelnikov Schéma linéaire

40

30

20

10

0

10

20

30

40

50

50 40 30 20 10 0 10 20 30 40 50

50

Partie réelle

FIG. 4-2Trajectoires des deux méthodes du rapetissement de polygone

Le problème de Menger-Melnikov sera étudié plus en détail dans les résultats de la simulation.

4.1.2 Mise à l'échelle du nombre de couches dans un schéma hiérarchique

Dans la figure 4-3, nous avons voulu tester l'influence de l'augmentation du nombre de couches sur la vitesse de n = 16 agents et leur convergence au centre. Il s'est avéré que lorsque le nombre de couches augmente, la stratégie de rendez-vous s'effectue plus rapidement. Car la PC hiérarchique à 4 couches (n1 = n2 = n3 = n4 = 2) est plus rapide que celle à 2 couches (n1 = 2, 8 groupes), ainsi que celle à une couche.

4.1.3 Mise à l'échelle du nombre de liens dans un schéma à L liens

De la même manière, nous montrons que lorsque le nombre de liens dans une poursuite cyclique à L-liens augmente, la convergence au centre des agents se fait plus rapidement. Ceci est affiché sur la figure 4-4.

4.2 Résultats de la simulation

La poursuite cyclique hiérarchique

20

1 couche (traditionnelle)

2 couches
4 couches

10

5

15

0

-5

-10

-15

-20

-20 -15 -10 -5 0 5 10 15 20

Partie réelle

FIG. 4-3 - La poursuite cyclique hiérarchique de 16 agents en fonction du nombre de couches.

Poursuite cyclique à Liens

4 liens 8 liens 12 liens

10

5

0

-5

-10

-15

-20

-20 -15 -10 -5 0 5 10 15 20

20

15

Partie réelle

par la simulation (temps de convergence, vitesse moyenne des agents, nombre de senseurs et les rapports entres les taux de convergence).

4.2.1 Poursuite cyclique

Notre simulation permet de visualiser les agents autonomes, dotés de senseurs omnidirectionnels représenté par des points de masses et effectuant une poursuite cyclique, pour se réunir en vain au centre de rendez-vous. La poursuite cyclique a été réalisée par les trois méthodes étudiées dans les chapitres 2 et 3. Nous avons pu déceler quelques règles via les simulations de ces trois méthodes pour quelques configurations d'agents dont :

Les agents convergent, dans tous les cas, au centre de consensus sans jamais se heurter. Ceci confirme la validité des résultats obtenus par la synthèse théorique et les graphes tracés sous matlab.

Le temps de convergence des agents augmente, et la vitesse moyenne diminue quand le nombre d'agents est grand dans une poursuite cyclique.

- Le temps de convergence dans un schéma hiérarchique est toujours plus petit, suivi de celui à L liens, et finalement par la poursuite cyclique traditionnelle. Contrairement à la vitesse de convergence qui augmente.

- Dans une poursuite hiérarchique, le temps de convergence est proportionnel, et la vitesse est inversement proportionnelle au nombre de couches. Cependant, quand ce dernier est grand, le nombre de liens de communication concrétisés par des capteurs, augmente. Mais ceci se traduit aussi par une augmentation dans la complexité de calcul, et de traitement.

- De même pour le schéma à L liens, la convergence est d'autant plus rapide que le nombre de liens augmente, c'est même la solution qui converge le mieux sous la condition 4.2 :

Nombre de liens = Nombre d'agents - 1 (4.2)

- Les rapports entre les taux de convergence, approximé dans le chapitre 2, signifient combien de fois une méthode est plus rapide que l'autre. Dans les résultats obtenus, La PC hiérarchique à L couches est N1 fois plus rapide que la PC à L liens qui est elle même N2 fois plus rapide que la PC traditionnelle. Avec N1 > N2.

Ceci dit, nous avons pu aussi déduire quelques inconvénients de cette stratégie notamment en ce qui concerne le comportement des agents. Ces derniers empruntent un chemin très long pour atteindre le centre au même moment.

FIG. 4-5 - Le comportement observé des agents avec la méthode de Menger-Melnikov

En ce qui concerne la PC hiérarchique, la configuration n'est possible que dans certains cas, notamment lorsque LpNL est un entier ou lorsque le nombre de groupes est valide quand c'est un schéma à deux couches.

4.2.2 Rapetissement de polygone

Cette approche possède l'avantage d'exiger un nombre fixe de capteurs et le même pour les deux méthodes et qui équivaut à 2n. Ce qui facilite la possibilité de les départager. Durant notre étude, certaines remarques et déductions ont été faites :

- Dans le schéma linéaire, la dynamique du rapetissement s'effectue normalement et les agents convergent dans une durée raisonnable.

- Dans la méthode de la courbure de Menger-Melnikov, nous avons observé une dynamique étrange du rapetissement de polygone et donc de la convergence des agents. Ceux-ci se rapprochent au début très lentement. Ensuite les vitesses s'amplifient infiniment jusqu'à ce qu'ils se réunissent à un point qui ne se situe pas forcément au centre de gravité. Les agents aussi se heurtent quand ils sont trop proches, ce comportement inconvenable, vu risqué, est exposé sur la figure 4-5 :

Solution:

En tentant de faire converger les agents au centre, nous ne pouvons ignorer le fait que les agents se rentrent dedans, ce qui est dangereux. La seule solution que nous avons pu apporter à notre simulation est d'arrêter celle-ci dès que les agents sont trop proches les uns des autres, en remplaçant le test d'arrêt qui est l'arrivée des agents au centre par la nullité des dénominateurs

de la formule 4.1. La vitesse de convergence n'est pas calculée dans ce cas, puisque les agents n'atteignent pas le centre.

Et comme l'un des objectifs majeurs de la simulation est de tester la validité des solutions proposées théoriquement, cette stratégie a été classée instable et donc inappropriée.

- Nous avons aussi remarqué que dans les deux méthodes du rapetissement de polygone, les agents disposés n'importe comment forment d'abord une sorte de polygone convexe dont les sommets sont ces agents, puis effectuent le rapetissement au centre en forme d'ellipse.

4.2.3 Remarques

Nous avons pu faire d'éventuelles observations et proposé des solutions lors de notre étude, et qui sont:

- En comparant entre les deux approches, nous avons remarqué que le schéma linéaire effectue une convergence directe au centre, sans faire de détour, par contre les déplacements des agents sont relativement petits comparés à ceux de la poursuite cyclique. Donc, le schéma linéaire converge plus rapidement que la PC traditionnelle mais moins que le schéma hiérarchique et celui à L liens.

- L'un des inconvénients de notre implémentation est que les agents agissent dans l'ordre d'entrée, plus précisément dans la poursuite cyclique. La solution à apporter serait de renuméroter ces agents selon leurs positions et d'économiser ainsi des déplacements inutiles des agents.

- Les agents ne perçoivent pas le lieu de rendez-vous, ce qui fait que dans certaines situations, nous avons remarqué que les agents passent prés du centre sans s'arrêter, poursuivent leur stratégie puis retournent au même point. Une solution serait d'ajouter des senseurs pour dédecter l'approche du point de rendez-vous et s'arrêter dès que celui-là est atteint, dans le cas où l'arrivée au même moment de tous les agents n'est indispensable.

4.3 Conclusion

Au cours de ce chapitre, nous avons réussi à résumer les différentes remarques et observations établies durant les nombreuses simulations que nous avons testées et les graphes de trajectoires que nous avons tracés sous Matlab, afin de détecter le comportement des agents et pouvoir comparer entre les méthodes de la stratégie de rendez-vous.

Une conclusion a été déduite concernant le rapetissement par la courbure de Menger-Melnikov qui a engendré des résultats inattendus et peu satisfaisants qui ne correspondent pas à la stratégie voulue. Cette méthode a été classée inutilisable vu les inconvénients qu'elle présente.

Conclusion générale

L'objectif principal du travail décrit dans ce mémoire était d'appliquer les théories de la poursuite cyclique et du rapetissement de courbe au problème de la stratégie de rendez-vous dans les systèmes multi-agents.

Une première partie fut l'initiation et la compréhension de ce domaine des SMA, et plus particulièrement à son application aux groupes de robots mobiles et à la stratégie de rendez-vous.

A titre préparatoire, nous avons mis en oeuvre les algorithmes des solutions proposées sous Matlab; une étape qui fut à la fois simple et importante à la compréhension du comportement d'agents et l'optimisation des algorithmes. Nous avons également réalisé une interface graphique sous Java pour la simulation du comportement des agents utilisant les différentes approches pour effectuer la stratégie précitée et qui nous a permis d'évaluer certaines valeurs de convergence, afin de comparer entre ces méthodes.

Au cours des tests de simulation, nous avons éliminé la méthode de la courbure de MengerMelnikov qui a révélé un comportement inadapté à la stratégie du rapetissement de courbe et au problème de rendez-vous.

Ce travail accompli pourrait servir à implémenter l'autre stratégie de Smith qui est la stabilisation à une formation où un groupe d'agents mobiles doit être stabilisé pour former les sommets d'un polygone équilatéral et où le centre de gravité du polygone reste statique pendant l'évolution. On pourrait aussi déplacer le centre des agents et créer ainsi une stratégie de navigation du groupe mené par un agent leader positionné au centre qui sera dynamique.

Bibliographie

[1] Stephen L. Smith. «Strategies for RendezVous and Formation stabilization of Multi-Agents Systems », University of Toronto, 2005

[2] J. ferber « Les systèmes multiagents vers une intelligence collective » Lien : http : // jbenech.free.fr/old_site/agents/html/P-definition.html

[3] Lemlouma Tayeb, Boudina Abdelmadjid. «L'intelligence Artificielle Distribuée et les systèmes multi-agents »

[4] Drogoul, A.; Corbara, B.; Lalande, S. 1995. "MANTA : New Experi-
mental Results on the Emergence of (Artificial) Ant Societies", Lien : http : // www.limsi.fr/'jps/enseignement/examsma/2003/ISRAEL _GAUCHOU/SMA.html

[5] C.W.Raynolds, «Flock, heard and scools : A distributed behavioral mode.», http :// www.red3d.com/cwr/boids/

[6] Marc Côté et Nader Troudi, NetSA : "Une architecture multiagent pour la recherche sur Inter- net" Département d'Informatique, Université Laval

[7] La norme ISO 8373(1994)

[8] M.Mataric, « Designing emergent behavior : From local interaction to collective intelligence », Lien : http :// www.complexity.org.au/ci/draft/draft/schaef0 1/schaef01s.ps

[9] Projet mars explorer de l'équipe SMAC, l'IUT d'Informatique de Lille I, Lien : http :// www2.lifl.fr/~secq/projects/mars/site/

[10] P.R Lascaux. Théodor, «Analyse numérique matricielle appliquée à l'art de l'ingénieur.», Dunod, 1994

[11] A.M. Bruckstein, N. Cohen, and J.J. Gray. Geometry. Cambridge University Press, 1999.

[12] Jean Frédéric Frenet, Lien : http :// fr.wikipedia.org/wiki/Rep%C3%A8re_de_Frenet

[13] M.Mokhtari, Matlab 5.2 & 5.3 et Simulink 2 & 3 pour étudiants et ingénieurs, Edition Springer_Verlag Berlin Heidelberg, 2000.

[14] Grady Booch , James Runbough, Ivar Jacobson, «UML, Le guide de l'utilisateur», Paris Eyrolles, 2001

[15] Bruce Eckel, «Thinking in Java », Prentice Hall PTR ISBN 0-13-659723-8, 1998

[16] Robert Michel Di Scala, «L'essenteil de l'informatique et de la programmation», Algerie Edition BERTI, 2004

[17] David J. Eck, Introduction to Programming Using Java, Edition 5.0, 2006. Lien : http : // math.hws.edu/javanotes/






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








"Un démenti, si pauvre qu'il soit, rassure les sots et déroute les incrédules"   Talleyrand