L’Institut de la Francophonie pour L’unité de recherche Geodes, l’Informatique Institut de Recherche pour le Développement (UR079, IRD) Master INTELLIGENCE ARTIFICIELLE ET MULTIMEDIA, 2ème année, Spécialité RECHERCHE Année universitaire 2006 – 2008 Implantation des protocoles de communication FIPA dans la plate-forme GAMA Mémoire présenté par VO Duc An Stage effectué à l’UR079, IRD Bondy et au laboratoire MSI, IFI. Directeur : Alexis DROGOUL – Directeur de Recherche, UR079, IRD. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com L’Institut de la Francophonie pour L’unité de recherche Geodes, l’Informatique Institut de Recherche pour le Développement (UR079, IRD) Master INTELLIGENCE ARTIFICIELLE ET MULTIMEDIA, 2ème année, Spécialité RECHERCHE Année universitaire 2006 – 2008 Implantation des protocoles de communication FIPA dans la plate-forme GAMA Mémoire présenté par VO Duc An Stage effectué à l’UR079, IRD Bondy et au laboratoire MSI, IFI. Directeur : Alexis DROGOUL – Directeur de Recherche, UR079, IRD.
LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Remerciements Je tiens à remercier tout particulièrement Alexis DROGOUL pour m’avoir encadré ces six mois. En fait, j’ai de la chance de travailler sous la direction de Alexis DROGOUL dans le projet GAMA depuis plus d’un an. Il est un professeur extraordinaire. Je le remercie pour son amitié, sa patience avec mes questions souvent stupides, son encouragement, son soutien, et la liberté de recherche qu’il a bien voulu me laisser.
Les moments où il m’a aidé à faire le debug sur Eclipse sont des moments inoubliables pour moi. Je remercie Quang de son amitié, son encouragement et son soutien tout au long de ce travail. Je le remercie pour son aide à Bondy ainsi qu’à MSI. Je lui souhaite tout le succès pour sa thèse.
Je remercie François Sempé d’avoir accepté de rapporter sur ce travail. Je remercie Minh Thu, Khanh, Edouard et Doanh pour leur amitié, leur aide pour le temps à MSI. Je remercie chaleureusement mes camarades de la promotion XII pour leur amitié sans faille et leur souhaite bonne chance pour la soutenance. Je remercie les professeurs de l’IFI pour leurs aides pendant ces derniers trois ans à IFI.
Enfin, je remercie mes parents pour leur soutien et leur encouragement à tout instant. Je leurs dédie ce travail. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tableaux des matières I. Problème actuel et les protocoles d’interaction de FIPA.
Problème actuel de la communication dans GAMA. Les protocoles d’interaction de FIPA. Message FIPA ACL. Protocole d’interaction « FIPA Request ».
L’implémentation des protocoles d’interaction de FIPA dans GAMA. Diagramme de classe. Structure d’un « Message ». Abstraction des protocoles d’interaction.
Mécanisme d’envoi et de réception d’un message. Vérification d’un message avec le protocole d’interaction employé. Les primitifs, les variables, les objets d’un agent communicant. Exemple de GAML.
Validation dans le modèle « fourmis ». Le modèle « fourmis » original. Le modèle « fourmis » avec la communication. Fonctionnement du modèle.
La communication entre les agents. Le fonctionnement du nouveau modèle dans GAMA. Commentaire sur le fonctionnement de deux versions de « fourmis ». Validation dans le modèle « AROUND ».
Modèle AROUND original. Modèle AROUND avec la communication. Commentaire sur le fonctionnement de deux versions de « AROUND ». Conclusion et perspectives.
51 Annexe A – Code source du modèle « fourmis » avec la communication. 51 Annexe B – Code source du modèle AROUND avec la communication. 59 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tableau des figures Figure 1 - L’architecture d’une plate-forme d’agent proposée par FIPA. 8 Figure 2 - Protocole d’interaction « FIPA Request ».
10 Figure 3 - Les classes principales de l’implémentation. 11 Figure 4 - Structure d’un message. 12 Figure 5 - Les protocoles d’interaction de FIPA implémentés dans GAMA. 13 Figure 6 - Modélisation d’un protocole d’interaction.
13 Figure 7 - Protocole d’interaction FIPA Request. 15 Figure 8 - Itinéraire d’un message de l’envoyeur au récepteur. 16 Figure 9 - Un message respecte le protocole d’interaction employé. 17 Figure 10 - Un message ne respecte pas le protocole d’interaction employé.
18 Figure 11 - Protocole d’interaction FIPA Request. 22 Figure 12 - Le comportement d’une fourmi dans le modèle « fourmis » original. 25 Figure 13 - Le modèle « fourmis » original. 26 Figure 14 - Le comportement d’un « foodFinder ».
28 Figure 15 - Le comportement d’un « foodCarrier ». 28 Figure 16 - Protocole « FIPA Contract Net » dans le modèle « fourmis ». 29 Figure 17 - Protocole « No Protocol » entre foodCarrier et foodFinder. 30 Figure 18 - Modèle « fourmis » avec la communication dans GAMA.
31 Figure 19 - Deux ambulances vont prendre une même victime. 34 Figure 20 - Relation entre military et explorer. 36 Figure 21 - Procotole d’Interaction FIPA Request entre military et explorer. 36 Figure 22 - Protocole d’Interaction « No Protocol » entre explorer et military.
37 Figure 23 - Relation entre military et fireman. 37 Figure 24 - Protocole d’Interaction FIPA Request entre military et fireman. 38 Figure 25 - Protocole d’Interaction FIPA Request entre military et hospital. 39 Figure 26 - Protocole d’Interaction « No Protocol » entre military et hospital.
39 Figure 27 - Relation entre hospital et ambulance. 40 Figure 28 - Protocole d’Interaction FIPA Request entre ambulance et hospital. 40 Figure 29 - Protocole d’Interaction « No Protocol » entre les hôpitaux. 41 Figure 30 - Protocole d’Interaction « No Protocol » entre hospital et ambulance.
41 Figure 31 - Protocole d’Interaction FIPA Request entre hospital et ambulance. 42 Figure 32 - Protocole d’Interaction FIPA Request When entre hospital et ambulance. 43 Figure 33 – Repartition des ambulances dans la version originale. 44 Figure 34 – Repartition des ambulances dans la nouvelle version.
45 Figure 35 - Repartition des voitures des pompiers dans la version originale. 46 Figure 36 - Repartition des voitures des pompiers dans la nouvelle version. 47 LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Introduction GAMA (GIS & Agent-based Modelling Architecture) est une plateforme générique pour la modélisation et simulation orientée agent.
GAMA est actuellement développée au sein du laboratoire MSI et est financée principalement par l’IRD. Ce projet regroupe plusieurs partenaires : IFI, IRD, CIRAD, EDF. Le développement de cette plateforme est en parallèle avec l’implémentation de plusieurs modèles complexes qui appartiennent à différents domaines. La diversité des modèles développés nous aide à vérifier la généralité de la plateforme et l’assurer d’une part.
Elle sert également à découvrir les fonctionnalités manquantes de la plateforme d’autre part. En observant le déroulement de la simulation de quelques modèles, nous avons fait le constat qu’il n’existe pas encore actuellement de mécanisme de communication standardisé entre les agents dans GAMA. En raison de cette absence, le fonctionnement de ces modèles peut ne pas être réaliste, n’est pas efficace et parfois n’est pas correct. Sans un mécanisme de communication, il n’est par exemple pas possible ou difficile pour les modélisateurs d’implémenter de mécanismes de coordination entre les agents.
Ce stage de fin d’étude a donc pour but d’implémenter des protocoles de communication dans GAMA et de valider le fonctionnement de ces protocoles en les utilisant dans quelques modèles existants. Ce rapport présente le travail réalisé au cours du stage. Il se compose de six parties. Cette première partie donne une présentation générale du stage.
La deuxième partie introduit le problématique : la nécessité d’introduire des protocoles d’interaction dans GAMA. Dans la troisième partie, l’implémentation de ces protocoles dans GAMA est détaillée. Les quatrième et cinqième parties présentent la validation du travail réalisé. Dans la quatrième partie, une implémentation des protocoles d’interaction dans un modèle simple est présentée.
Puis une implémentation de ces protocoles d’interaction dans un modèle complexe est le contenu de la cinqième partie. Ce rapport se termine avec une partie de conclusion et perspectives. 6 LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Problème actuel et les protocoles d’interaction de FIPA II.
Problème actuel de la communication dans GAMA Comme nous l’avons souligné au-dessus, actuellement, GAMA ne fournit pas encore de capacité pour modéliser une « vraie » communication entre des agents. Les deux mécanismes existants, la communication par signal et la commande « ask », sont en effet très limités. Avec la communication par signal, un agent est capable de transférer des informations dans son environnement. Après quoi, d’autres agents peuvent les lire puis réagir de façon appropriée.
Comme un signal est transféré par l’environnement, tous les autres agents peuvent le percevoir. Dans le cas où un agent A veut communiquer seulement avec un agent B, cela peut poser un problème : si A veut que les informations transférées ne soient visibles que par B, il n’y a aucun moyen pour lui de le préciser. L’utilisation du signal n’est pas donc convenable dans ce cas. De plus, la communication par signal est couteuse en temps de calcul quand le rayon du signal est grand.
Dans GAMA, on peut également utiliser l’appel « ask » pour demander à un agent (ou à des agents) d’exécuter du code. Cette commande est équivalente à l’envoi de messages entre objets. On peut donc l’utiliser pour simuler le processus de l’envoi et de la réception de messages entre les agents. Mais il n’est pas possible de modéliser un processus de négociation avec la commande « ask ».
Plus précisément, l’agent A peut utiliser un « ask » pour demander à l’agent B à faire quelque chose, mais il n’y a aucune possibilité pour l’agent B de refuser de le faire, et, de plus, aucune possibilité pour B d’informer A de ce refus. Et si B exécute la demande de A, rien n’est prévu dans le langage GAML (langage de modélisation de GAMA) pour que B informe A du résultat. Enfin, si B exécute l’action demandée par A, mais que l’exécution de cette action n’est pas réussie, aucun mécanisme n’est disponible pour prévenir A. Une autre nécessité est la capacité de coordination et de négociation entre des agents.
Considérons un exemple inspiré par le protocole Contract Net. Supposons que l’on a deux types d’agent. Un agent qui joue le rôle d’un gestionnaire. Plusieurs autres agents qui jouent le rôle des participants.
Le gestionnaire souhaite faire effectuer une certaine tâche par un des participants. Le gestionnaire sollicite des propositions de m autres participants en publiant un appel d’offres (call for proposals, ou cfp en anglais). Cet appel spécifie la tâche, ainsi que toutes les condition que le gestionnaire souhaite placer sur l’exécution de cette tâche (temps minimum d’exécution, qualité de la réalisation, etc. Les participants recevant cet appel d’offres sont considérés comme des « entrepreneurs ».
Parmi les m participants, j participants (j <= m) acceptent la sollicitation du gestionnaire en envoyant des offres au gestionnaire. Et i participants (i = m – j) la refusent. En recevant j appels d’offre de j participants, le gestionnaire choisit le participant le plus convenable pour exécuter la tâche. Actuellement, il n’est pas possible de modéliser un scénario comme celui-ci dans GAMA, alors qu’il est pourtant très utile dans un environnement multi-agent (où les 7 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com agents ne sont pas forcément tous égaux en terme de capacité, et pas forcément tous disponibles pour réaliser une tâche).
En implémentant différents modèles classiques des SMA, nous percevons qu’il existe bien des cas dans lesquels la coordination entre les agents joue un rôle vital. Sans une bonne coordination et la capacité de négociation, le fonctionnement de tels modèles n’est pas efficace et parfois n’est pas correct. Donc il est nécessaire d’avoir un vrai mécanisme de communication dans GAMA. Ce mécanisme devra nous aider à modéliser la communication, la négociation et la coordination entre les agents.