La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle



Documents pareils
Conception et contrôle des SMA tolérants aux fautes

Construction modulaire d'agents et de systèmes multi-agents adaptatifs en DIMA

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Stratégie de sécurité grâce au logiciel libre. Frédéric Raynal Cédric Blancher

Évaluation et implémentation des langages

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Projet de Veille Technologique

Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006

Brève introduction à la recherche d!information sur le Web à base d!agents logiciels

Annexe : La Programmation Informatique

TP1 : Initiation à Java et Eclipse

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Bases Java - Eclipse / Netbeans

Initiation à JAVA et à la programmation objet.

Mercredi 15 Janvier 2014

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Héritage presque multiple en Java (1/2)

Architecture d'entreprise : Guide Pratique de l'architecture Logique

OMGL6 Dossier de Spécifications

Généralités sur le Langage Java et éléments syntaxiques.

Export et Import de modèles ICAR sous Trnsys 17

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Brique BDL Gestion de Projet Logiciel

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Introduction à LDAP et à Active Directory Étude de cas... 37

Tâches planifiées. Chapitre Introduction

Segmentation d'images à l'aide d'agents sociaux : applications GPU

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

MEGA Application Portfolio Management. Guide d utilisation

Préparer la synchronisation d'annuaires

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Université de Bangui. Modélisons en UML

v7.1 SP2 Guide des Nouveautés

//////////////////////////////////////////////////////////////////// Administration bases de données

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Chapitre I : le langage UML et le processus unifié

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Programmer en JAVA. par Tama

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

Projet Active Object

Traduction des Langages : Le Compilateur Micro Java

Compte Rendu d intégration d application

Objets et Programmation. origine des langages orientés-objet

SQL Server 2012 Administration d une base de données transactionnelle

Offre Référentiel d échange

Modélisation multi-agents - Agents réactifs

ProSimPlus HNO3 Résumé des nouvelles fonctionnalités, décembre 2008

Personnalisation Fiche Annuaire

IFT2255 : Génie logiciel

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version septembre 2006

Générer du code à partir d une description de haut niveau

Business Process Modeling (BPM)

Qu'est-ce que le BPM?

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

JF SMA'14. A3 - Agent Anytime Anywhere. une plateforme à agents distribués Oct l'expertise middleware.

WEA Un Gérant d'objets Persistants pour des environnements distribués

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Chapitre VI- La validation de la composition.

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

4. SERVICES WEB REST 46

Intégration d'un moteur de workflow dans le SI : Dématérialisation des Ordres de misson

Point sur les solutions de développement d apps pour les périphériques mobiles

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Java 7 Les fondamentaux du langage Java

Windows Server Chapitre 3 : Le service d annuaire Active Directory: Concepts de base

Rapport de certification

Cours en ligne Développement Java pour le web

Gestion de configuration

Outils, langage et approche Android Une introduction. Nicolas Stouls lyon.fr

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Groupe Eyrolles, 2004 ISBN :

Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2.

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Ingénierie des Modèles. Méta-modélisation

Cahier des charges (CDC)

SECTION 5 BANQUE DE PROJETS

INITIATION AU LANGAGE JAVA

Environnements de développement (intégrés)

Introduction à Eclipse

IFT785 Approches Orientées Objets. FINAL Été Remise : Jeudi 19 août 2002 à 9h00 am

Génie Logiciel avec Ada. 4 février 2013

Chapitre 2. Classes et objets

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

Architecture Orientée Service, JSON et API REST

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Master IAC Philippe Caillou DÉVELOPPEMENT DE SMA. Cours 1b

CORBA. (Common Request Broker Architecture)

La boite à outils du dirigeant, Dispositif packagé ou modularisable en fonction des besoins

Programmation de services en téléphonie sur IP

Web Tier : déploiement de servlets

Patrons de Conception (Design Patterns)

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Rapport de certification

Transcription:

La plate-forme DIMA Master 1 IMA COLI23 - Université de La Rochelle

DIMA Bref aperçu

Qu'est-ce? Acronyme de «Développement et Implémentation de Systèmes Multi-Agents» Initié par Zahia Guessoum et Jean-Pierre Briot OASIS (Objets et Agents pour Systèmes d'information et de Simulation) LIP6 (Laboratoire d'informatique de Paris 6 - Université de Paris 6)

Qu'est-ce? (2) Environnement de développement de systèmes multi-agents Développement : débuté en 1993, dans le cadre de la thèse de Z. Guessoum : première version en SmallTalk-80 Porté à présent vers Java. poursuivi dans le cadre d'autres thèses (H. Ramdani, T. Jaraya...) Utilisé dans des travaux de recherche (L3I...)

A quoi çà sert? Applications diverses : Simulation (économique, éco-systèmes...) Résolution de problèmes Systèmes de contrôle temps-réel. Cf exemples développés Décrits dans le document «examples.pdf» Implémentés dans le package Examples de l'api DIMA.

DIMA Version actuelle

Environnement de développement Ensemble de librairies : API Java Briques de base pour construire des modèles d'agents divers Grande variété de paradigmes (par exemple automate, règle, etc...) Implémentation des différentes propositions conceptuelles introduites par la communauté multi-agents (BDI, KQML, ACL, etc.). «FIPA-compliant»

L'agent dans DIMA Agent = entité autonome, pro-active, sociable, adaptative Plusieurs approches pour la conception d'agent Choix dans DIMA = proposer une architecture d'agent modulaire : Un modèle d'agent minimal : noyau minimal Définition d'un ensemble de libraries pour enrichir/raffiner le noyau hérite Noyau Librairies Agent utilise

Schéma d'utilisation de DIMA SMA à réaliser = Code JAVA utilise DIMA = Bibliothèque JAVA Noyau Librairies Est exécuté Machine virtuelle JAVA

Schéma d'utilisation Définit les modèles d'agent SMA à réaliser = Code JAVA utilise DIMA = Bibliothèque JAVA Noyau Librairies Est exécuté Machine virtuelle JAVA

Schéma d'utilisation Définit les modèles d'agent SMA à réaliser = utilise Code JAVA Définit les notions nécessaires pour le fonctionnement des modèles d'agent DIMA = Bibliothèque JAVA Noyau Librairies Est exécuté Machine virtuelle JAVA

Exemple 2 agents A et B qui conversent A dit «bonjour, comment çà va?» B lui répond «salut, bien et toi?»

Exemple Création d'une classe java EntiteExemple public EntiteExemple { public EntiteExemple(){...} } A et B seront des instances de cette classe

Exemple Noyau hérite Librairies Agent utilise A et B doivent communiquer => la classe EntiteExemple = sous-classe de la classe BasicCommunicatingAgent (définie dans le noyau de DIMA) public EntiteExemple extends Gdima.kernel.communicatingAgent.BasicCommunicatingAgent { } public EntiteExemple(){super();...}...

Exemple Noyau hérite Librairies Agent utilise Il faut définir ce que A et B ont à faire : => définition de la notion de boucle de proactivité Définition des processus de perception, décision et action Boucle de pro-activité implémentée dans la méthode step() de chaque classe d'agent

Noyau Exemple hérite Librairies Agent utilise Définition du step() : A et B doivent envoyer et recevoir des messages Pour envoyer : il faut créer un message et le transmettre : utilisation par exemple de la classe pré-définie Gdima.basiccommunicationcomponents.Message Il faut utiliser la méthode BasicCommunicatingAgent.sendMessage(AgentIdentifier agentid, Message am); Pour recevoir : Tester si l'on a un message : utiliser la méthode BasicCommunicatingAgent.hasMail() Récupérer le message à l'aide de par exemple BasicCommunicatingAgent.getFirstMessage()

DIMA Présentation détaillée

Noyau DIMA Noyau hérite Librairies Agent utilise Définition d'un noyau minimal : Ensemble de classes (Gdima.kernel.*) Composant de base = ProactiveComponent Gdima.kernel.ProactiveComponents Une instance de cette classe représente une entité autonome et proactive

Noyau ProactiveComponent hérite Librairies Agent utilise Une instance de cette classe décrit : Le but de l'entité décrit implicitement ou décrit explicitement dans le corps de la méthode isalive() Les comportements de base de l'entité : Séquence d'actions Définies par des méthodes java Le méta-comportement de l'entité : permet à l'agent de contrôler ses comportements et son état interne précisé dans la méthode step()

Noyau DIMA propose... hérite Librairies Agent utilise Différents modèles d'agents : Agents réactifs : décrits par des comportements réactifs Ex : package Gdima.kernel.BasicAgents.* Agents cognitifs : décrits par des comportements cognitifs, Ex : package Gdima.kernel.communicatingAgent.* Agents hybrides : Réactifs et cognitifs Facilite l'adaptation de leur comportement en temps réel à l'évolution de leur univers.

Noyau Librairies hérite Librairies Agent utilise Différentes librairies disponibles : Implémentation de différents paradigmes agent Implémentation d'outils nécessaires pour les différents modèles d'agents Utilisées pour étendre les fonctionnalités d'une entité ProactiveComponent Exemple de la communication Classe BasicCommunicatingAgent (du noyau) Les classes de messages (de base, KQML based ou FIPA-ACL based)

Classes définies pour implémenter l'atn framework DIMA propose... Différents frameworks : Agent hérite utilise Noyau Librairies Correspondent à différents paradigmes pour définir des comportements (ATN-Based, Rule- Based, Case-Based, Classifier-Based) Exemple de l'atn-based framework (illustré sur l'exemple examples.lg.lonedomain.java et examples.lg.loneatnagent.java)

DIMA propose... Noyau hérite Librairies Agent utilise La gestion de la communication : Package basiccommunicationcomponents Package basicfipaaclmessages Package basickqmlmessages La gestion des interactions :... Package INAF2

Méthodologie d'utilisation Dans DIMA, un SMA = {agents} U {objets} Implémentation du SMA = 1)Implémentation du domaine (i.e. {objets}) 2)Implémentation des agents Détaillée en page suivante 3)Initialisation des accointances des agents Accointance = agent connu par un agent 4)Déploiement et activation des agents

Méthodologie Implémentation des agents = pour chaque agent : 1.Définition des comportements de l'agent 2.Implémentation de la classe de l'agent = Utilisation d'une classe pré-existante Définition d'une sous-classe d'une classe existante (héritage) 3.Définition du méta-comportement de l'agent (par exemple utilisation d'atn...) 4.Instantiation de l'agent

DIMA Bilan

DIMA, c'est... API Java : bibliothèque de classes pour concevoir des SMAs Ces classes permettent de définir : Les comportements d'agents Les méta-comportements Les composants de communication Les agents FIPA Les messages FIPA Les messages KQML...

Renseignements pratiques Où trouver DIMA : Installé sur les machines de la fac : Autres : DIMA.jar dans c:\program Files\java (! ce jar ne contient que les fichiers compilés!) Classapth modifié en conséquence http://perso.univ-lr.fr/fcolle/prive/dima/ Documentation, Exemples, Sources.

Références http://www-poleia.lip6.fr/~guessoum/dima.html Z. Guessoum. «Environnement de développement et de conception de systèmes multi-agents». Thèse, Université Paris 6, 1996. Z. Guessoum. DIMA: Une plate-forme multi-agents en Smalltalk. Revue Objet, Volume 3 No 4, pp. 393-410, 1998. Z. Guessoum. «Modèles et architecturs d'agents et de systèmes multi-agents adaptatifs». HDR, Université Pierre et Marie Curie, Paris 6, Décembre 200? Dossier contenant les infos sur DIMA.

Compléments MétaGen (http://www-poleia.lip6.fr/~fortame) Outil pour décrire un système Description ensuite transformée en un système multi-agents implémentée avec DIMA. Version répartie de DIMA : DARX (Dima Agent Replication Extension)