Agents Software Agents Software
Technologies
Technologies
Qu’est qu’un Agent Logiciel ?
« Entité informatique qui réalise de manière autonome des tâches
déléguées par l’utilisateur ».
Caractéristiques des ALI
Mobilité
Intelligence Interactions
Agent deRecherche Assistant
Personnel
Agent Complexe
Avec les autres agents
Avec l’utilisateur
Apprentissage Planification
Raisonnement Avec les
applications
Fixe
Mobile
Langages pour la Langages pour la construction des construction des
applications à base d’agent
applications à base d’agent s s
Langages
Langages
Outils
Outils
Agent 0 Agent 0
Agent 0 (Shoham, 1993) Agent 0 (Shoham, 1993)
– propose un nouveau style de programmation et propose un nouveau style de programmation et propose un vrai langage (AOP) intégrant un grand propose un vrai langage (AOP) intégrant un grand
nombre des concepts définissant la notion d'agent.
nombre des concepts définissant la notion d'agent.
Caractéristiques de Agent 0 Caractéristiques de Agent 0
– un langage de programmation interprété permettant un langage de programmation interprété permettant de programmer les agents.
de programmer les agents.
– fondé sur un langage formel réduit utilisant la logique fondé sur un langage formel réduit utilisant la logique modale pour décrire les états mentaux.
modale pour décrire les états mentaux.
– Les agents sont programmés en terme de règles Les agents sont programmés en terme de règles d'échanges mentaux
d'échanges mentaux
Agent 0 Agent 0
AGENT0 a trois composantes : AGENT0 a trois composantes :
– 1) un système logique pour définir les états mentaux de l'agent ; 1) un système logique pour définir les états mentaux de l'agent ; – 2) un langage de programmation pour programmer les agents 2) un langage de programmation pour programmer les agents
– 3) un processus "agentification", pour compiler les programmes d’agents en 3) un processus "agentification", pour compiler les programmes d’agents en un système exécutable (basniveau).
un système exécutable (basniveau).
Les concepts de base sont :Les concepts de base sont :
– Les Les Actions provoquant des faits déterminés (externes ou internes) par des Actions provoquant des faits déterminés (externes ou internes) par des Décisions
Décisions,,
– Les Les Capacités Capacités indiquant dans quelle mesure l'agent est capable d'effectuer indiquant dans quelle mesure l'agent est capable d'effectuer une action,
une action,
– Les Les CroyancesCroyances faisant référence à l'état du monde, aux état mentaux et aux faisant référence à l'état du monde, aux état mentaux et aux compétences des autres, et contraignant les décisions,
compétences des autres, et contraignant les décisions,
– Les Les Obligations Obligations traduisant des engagements et proposant des alternatives traduisant des engagements et proposant des alternatives pour les décisions.
pour les décisions.
Agent 0 Agent 0
• Le cycle de contrôle d'un agent AGENT0
Agent 0 Agent 0
Le cycle de contrôle est assez simple. Il Le cycle de contrôle est assez simple. Il consiste en la répétition de la boucle consiste en la répétition de la boucle
suivante : suivante :
– lire les messages, mettre à jour l'état mental, lire les messages, mettre à jour l'état mental,
– exécuter les actions prévues pour le cycle exécuter les actions prévues pour le cycle courant.
courant.
Agent 0
Agent 0
LALO LALO
Lalo est une extension de Agent 0. L'utilisateur peut choisir de Lalo est une extension de Agent 0. L'utilisateur peut choisir de spécifier le comportement à l'aide :
spécifier le comportement à l'aide : – de règles comme dans AGENT0, de règles comme dans AGENT0,
– d'un ensemble de plan ou plus simplement d'une façon d'un ensemble de plan ou plus simplement d'une façon procédurale.
procédurale.
L'intérêt de LALO par rapport à AGENT0 réside surtout dans L'intérêt de LALO par rapport à AGENT0 réside surtout dans son aspect compilé. Le compilateur LALO génère à partir du son aspect compilé. Le compilateur LALO génère à partir du programme de l'agent, un code source C++ pour l'agent, et le programme de l'agent, un code source C++ pour l'agent, et le code source d'un programme d'installation dans la base de code source d'un programme d'installation dans la base de
données (Orientée Objet) des agents qui contient au lancement données (Orientée Objet) des agents qui contient au lancement les croyances et engagements
les croyances et engagements
Le compilateur Lalo
Le compilateur Lalo
D’autres langages D’autres langages
Placa Placa
MétaTem MétaTem
… …
– Des langages expérimentaux Des langages expérimentaux
Les critères de choix (1) Les critères de choix (1)
Le type de l’agent développé Le type de l’agent développé
Le domaine d’application Le domaine d’application
Les compétences techniques disponibles Les compétences techniques disponibles
Le niveau de sécurité désiré Le niveau de sécurité désiré
Le niveau de performance Le niveau de performance
Les critères de choix (2)
Introduction
La fondation pour les agents physiques intelligents (FIPA) est une association internationale d'entreprises et d'organisations qui tentent de produire des spécifications sur la technologie utilisable par les agents intelligents. Ces spécifications doivent être actuelles, reconnues dans le monde entier, utilisables à travers un grand nombre d'applications et enfin permettre une interaction entre les applications.
FIPA (1)
(Fundation for Intelligent Physical Agents)
Le cycle de vie dans une plate-forme agent
• description des états
•Initié : l'agent est créé ou vient d’arriver à la plate-forme.
•Actif : l'agent opère sur AP.
•Suspendu : l'exécution de l’agent a été suspendue, soit par l'agent de gestion de système ou par l'agent lui-même. Si des messages sont adressés à un agent dans cet état, l'agent de gestion du système enverra un message d'échec à l'agent envoyant.
•En attente : l'agent attend un certain événement par exemple des décisions venant de AP.
• description des transitions
•Créer
•Démarrer : démarrer ou redémarrer l'opération d'un agent.
•Suspendre : suspendre l'opération d'un agent soit par AP, soit demandé par l'agent lui-même.
•Activer : activer un agent suspendu.
•Attendre : mettre l'agent dans un position d'attente de certains
événements. Différent de l'action de suspension, l'attente ne peut être décidée par AP.
•Réveiller : réveiller l'agent de l'état d’attente. Cela peut seulement être décidé par AP.
•Supprimer : arrêter l'agent et le supprimer de la plate-forme.
Le cycle de vie dans une plate-forme agent
Une système d ’Agents Logiciels Intelligents pour favoriser la coopération
entre des Système d ’Aide à la Décision dédiés à la gestion de crise
Application Réelle
« Ce travail présente un modèle d’Agent Logiciel Intelligent (ALI) destiné à favoriser la coopération entre les systèmes d’Aide à la décision dédiés à la gestion de crise (la lutte contre les incendies de forêts).
La coopération entre les ALI repose sur l’échange d’un ensemble de
service ».
Problématique
La demande des SAD (gestion de crise) ne cesse de croître.
De nombreux systèmes sont proposés aux gestionnaires (avec une extrême variété d ’information et de services (ex. surveillance, aide à l’analyse,…).
Considérés isolément, les SAD apportent satisfactions à l ’utilisateur.
Cependant …
Le besoin en terme d’échange d’informations et de services entre SAD ne cesse de croître .
La tâche consistant à permettre la coopération entre des SAD, préalablement conçu dans des contextes différents, n ’est pas aisée. (Difficultés liées : langages, versions, structure, formats d ’échange et de communication, données, ergonomie…)
Malgré les progrès au niveau des langages de programmation, les insuffisances demeurent (intégration, gestion des interactions et de coopération entre logiciels).
Problématique
le concept d’Agent Logiciel Intelligent
(ALI)Réponses effectives et performantes quant au problème de la coopération inter-logiciels
Une voie de recherche s’est entrouverte :
Pour rendre coopératif un ensemble de SAD Concevoir des modèles et des méthodes Informatiques
favorisant l’échange d’infos au sein d’un env. hétérogène (PC, MAC, Station de travail, C++, Lisp, Pascal,..)
Proposition de Solution
Concevoir et réaliser une couche de communication et de coopération entre les SAD (demande de services, échanges de points de vue, ..)
Pour rendre une coopération entre SAD effective, trois approches sont possibles : Réecrire les SAD, les transformer en ALI
(Av.: Améliore la qualité des SAD, Inc. : très coûteuse.
Entreprendre des changements à l ’intérieur des SAD
afin de les rendre coopératifs. Inc. : demande une compréhension profonde de chaque logiciel.
Créer une «couche» (ALI) au dessus de chaque SAD.
C’est à lui que revient la responsabilité d’établir et de gérer la coopération et la communication entre les autres SAD
Principe
Système d’ALI
Tous les ALI sont conçus de la même façon, même structure sur le même modèle.
Chaque ALI est responsable d ’un SAD particulier.
Il contient la description détaillée du SAD qui lui est associé.
Proposition d’un modèle d’ALI*
L’ALI est constituée de deux partie :
Une partie intelligente (ks sociales sur les autres ALI, capable de raisonnements autorisant une coopération effective
Une partie spécialisée dans un domaine donné, capable d’effectuer des tâches
Système Coopératif
Le modèle d’ALI proposé a été testé et validé dans le domaine de la prévention et de la lutte contre les incendies de forêts.Il permet à cinq SAD de communiquer et de coopérer.
Ces cinq SAD ont les caractéristiques suivantes :
Synthèse des services proposés par les différents SAD
Logiciels Services Langage
MachinesSystèmesBosque Criado,96 Florinus Schmidt,95
Système Météo
Chambina,98 Wilfrid Guarnieri,95
MCI Vauche,97
- détection précoce d’un feu - liste des feux actifs
- image visible ou infra-rouge d’un feu - positions des moyens de lutte (GPS) - information sur l ’état du réseau routier - état des ressources en eau
- direction et vitesse du vent - humidité, température, pluviométrie
- interpolation des données météo - calcul du niveau de risque
- ressources en eau (citernes)
- simulation de la propagation d’un feu - gestion de messages
- suivi de situations - statistiques
Delphi
Pascal PC
PC/Unix
PC
PC/Unix
PC C++ et
Pascal C et C++
C++
Access et C
PC
Principes de coopération entre les ALI
Le langage de communication utilisé est basé sur :
• ACL : Agent Communication Language [Mayfield et al.,95]
• ASN1 : Abstract Syntax Notation One (langage standardisé par ISO)
[Marshall, 90][Bustos, 92]
Tous les messages du langage ont une même structure :
• L ’entête du message (le but recherché par l ’expéditeur)
• Le corps de message (texte libre, demande d’un service, réponse à une demande, envoi d’une information).
Le protocole de communication a été développé suivant la norme OSI (Open System Interconnexion).
Le standard BER (Basic Enconding Rules) a été utilisé pour les codages des messages sous forme binaire pour être transmis sur le réseau.
Les actes de communication entre les ALI
Six actes de communication sont supportés par le protocole :
(1) En cours: En train d’effectuer la même tâche dans le cadre d’une autre activité.
(2) Engagement car demandé: La tâche est mise dans sa liste de tâche à faire.
(3) Engagement si demande: Intéressé, prêt à l’accomplir si un ALI..demande
(4) Intérêt: Intéressé, mais il est occupé
(5) Intérêt négatif: Intéressé, ne peut pas aider car pas les compétences nécessaires (6) Non Intérêt: Pas intéressé et il ne peut pas ou (ne veut pas) aider.
Exemple de coopération
(en situation de crise)
• Le départ d’un nouveau feu va générer une activité de coopération chez l’ALI de Wilfried
• Cette activité implique le système Météo pour informer les autres de la situation météorologique
• Bosque quand à lui, il doit continuer à suivre l’évolution du feu
• Florinus doit informer les groupes de pompiers
sur le terrain à partir des déductions de Wilfried
quand à l ’évolution potentielle du front de feu
Agents Mobiles
sur le net
Synonyme(s) : mobile software agent (agile applet)
Agent intelligent qui quitte l'ordinateur de l'utilisateur pour s'exécuter sur un ou plusieurs ordinateurs distants et ramener éventuellement les renseignements recueillis à l'ordinateur de l'utilisateur.
Note(s): Le terme « applet agile », calqué sur l'anglais, n'a pas été retenu à cause de son manque de précision.
Le terme anglais « aglet », mot issue de la contraction de « AGile
»
et de « appLET », désigne des agents autonomes de type objet dans
un environnement réseau.
Agent Mobile (1)
“L'utilisation d'un agent mobile permet, par exemple, de confier à un robot le repérage du produit désiré sur le Web et, éventuellement, d'effectuer une transaction d'achat sur Internet, sans que l'internaute soit en ligne, etc..”.
Agent Mobile (2)
Par exemple, un agent mobile pourrait déterminer le meilleur prix pour un produit proposé par les serveurs de plusieurs fournisseurs, en les consultant successivement, les uns après les autres, puis en
revenant sur l’ordinateur de l’utilisateur avec la meilleure offre.
Note(s): L'apparition d'un langage objet comme Java, combinée au développement d'Internet, ont ravivé l'intérêt pour les technologies d'agent mobile,
notamment dans les applications de recherche d'information et de commerce électronique.
Les compagnies IBM (avec Aglet), General Magic (avec Serengeti) et Encanto (avec Commerce
webstation) ont proposé chacune une technologie d'agent mobile.
Technologie d'agent mobile
Agent Mobile Client/Serveur
Evaluation de Performance
INRIA Rhône-Alpes
Mesure des bandes passantes sur les connexions entre les 3 sites (F GB Suisse)
Mobile Agents: Applications Mobile Agents: Applications
System Application Domain
Sony’s Magic Link PDA
assists in managing a user’s e-mail, fax, phone and pager links the user to Telescript-enabled messaging and communication services
France Telecom
prototype mobile Telescript agents integrate railway ticketing and
car renting services IBM Communication
System mobile agents provide a communications super-service
capable of routing and translating communications from one service and medium to another
BT Laboratories
prototype mobile C/C++ agents control a telecommunications
network
System Application Domain
Sony’s Magic Link PDA
assists in managing a user’s e-mail, fax, phone and pager links the user to Telescript-enabled messaging and communication services
France Telecom
prototype mobile Telescript agents integrate railway ticketing and
car renting services IBM Communication
System mobile agents provide a communications super-service
capable of routing and translating communications from one service and medium to another
BT Laboratories
prototype mobile C/C++ agents control a telecommunications
network
Amélioration de la qualité des Amélioration de la qualité des
images médicales images médicales
Travaux de Catherine Garbay sur la
segmentation des images du cerveau (2000)
Segmentation séquentielle
Segmentation avec
l’environnement SMA
Quelques caractéristiques Quelques caractéristiques
techniques techniques
2 types d’agents sont utilisés :
Region agents Region agents
Edge agents Edge agents
Tous ces agents sont des entités simples et autonomes qui communiquent dans un
environnement partagé
Le monitorage des patients Le monitorage des patients
GUARDIAN (Barabara Hayes-Roth, 2000)
= un prototype d’agents intelligents pour le
monitorage en soins intensifs.
Quelques caractéristiques Quelques caractéristiques
techniques techniques
3 types d’agents sont utilisés :
Des agents de perception et d’action Des agents de perception et d’action
Des agents de raisonnement Des agents de raisonnement
Des agents de contrôle Des agents de contrôle
Tous ces agents sont organisés en hiérarchies et coopèrent entre eux grâce à leurs
connaissances.
Patient Advocate (Miksch et al., Patient Advocate (Miksch et al.,
1997) 1997)
Diabète
Trois principales familles d’agents (diffèrent selon leur environnement d’existence) A. Caglayan, C. Harrison Agents bureautiques (desktop agents)
Agents Internet Agents intranet
Les agents bureautique sont des logiciels qui s’intègrent à un système d’exploitation ou à d’autres logiciels applicatifs.
Exemple : l’agent système de Windows 98 qui a pour but d’exécuter à
intervalles réguliers, définis par l’utilisateur, un certain nombre de tâches comme par exemple les outils de vérification et de défragmentation des disques durs, la vérification de l’intégrité de la base de registres du système ou encore l’outil d’avertissement du dépassement de la capacité d’un disque, etc..
Trois principales familles d’agents (1)
Les agents de type Internet interviennent afin de faciliter certaines opérations qui seraient trop fastidieuses pour un être humain.
Exemple : détecter automatiquement la modification d’une page contenue sur un site web, ou de filtrer certaines sources diinformations afin d’en extraire celles qui correspondent à certains critères définis par l’utilisateur.
Enfin,
Les agents rencontrés sur des intranets assurent des tâches d’automatisation pour certaines activités particulières ou de filtrage pour des bases de données internes à une entreprise.
Trois principales familles d’agents (2)
Trois principales familles d’agents (3)
Les Desktop Agents
Les agents systèmes : des agents d’interface qui fournissent une aide à l’utilisateur dans l’utilisation du système d ’exploitation.
Les agents d’application : des agents d’interface qui fournissent une aide à l’utilisateur pour se servir correctement d ’une application particulière.
Les agents de suite logicielle : des agents d’interface qui fournissent une aide à l’utilisateur pour faciliter son travail avec des applications corrélées.
Trois principales familles d’agents (4)
Les agents Internet
Les agents de recherche du web : agents Internet qui fournissent des services de recherche dans le web à un utilisateur.
Les agents serveur du web : agents Internet qui résident sur un site web spécifique pour fournir des services.
Les agents de filtrage d’information : agents Internet qui filtrent des informations selon des critères spécifiés par l’utilisateur.
Les agents de recherche documentaire : agents Internet qui retournent un ensemble personnalisé d ’info. Correspondant à la demande de l’utilisateur.
Les agents de notification : agents Internet qui indiquent à un utilisateur des événements qui pourraient l’intéresser.
Les agents de service : agents Internet qui fournissent des services spécialisés à des utilisateurs.
Les agents mobiles : se déplacent d’un lieu à un autre afin d’éxécuter des âches spéc.
Trois principales familles d’agents (5)
Les agents Intranet
Les agents de personnalisation coopérative : agents intranet qui permettent l’automatisation du Workflow à l ’intérieur d’une entreprise.
Les agents d ’automatisation : agents intranet qui automatisent les tâches d ’une entreprise.
Les agents de base de données : agents intranet qui fournessent des services agent à l’utilisateur de bases de données.
Les agents courtiers de ressources : agents intranet qui réalisent l’allocation de ressources dans les architectures clients/serveur.
WebSeeker
Un outil très puissant qui permet, par exemple, d'effectuer des recherches sur les moteurs francophones.
Web Ferret
A essayer, et en plus il est gratuit ! (cependant il n'est pas capable d'éliminer les doublons)
Retrieve It : Un outil pour Mac OS.
Copernic
Un agent de recherche gratuit. Plus de 30 sources d'information regroupées en trois domaines: le web, groupes de discussion et adresses de courrier : A essayer absolument !
Strategic Finder
La version gratuite permet d'interroger plus de 120 moteurs de recherches sur Internet. La version payante permet en plus d'ajouter de nombreuses sources professionnels sous forme de plugin. Le logiciel est réalisé par la société Digimind.
BullsEye 2
BullsEye propose un historique des recherches.
Liste des principaux agents
Strategic Finder Strategic Finder
• Strategic Finder exploite les sources professionnelles visibles et « cachées » dans votre secteur d’activité
•Strategic Finder optimise la gestion, la capitalisation et le
partage de votre information on line
Il élimine ensuite les pages doublons et supprime les pages non pertinentes.
Simplicité et rapidité de la recherche :
Strategic Finder interroge
simultanément toutes les sources
sélectionnées avec une seule requête.
Les fonctionnalités (2)
BULLSEYE PRO
http://www.intelliseek.com
Fig1
Nom: Copernic (Agent Technologies) Famille: Recherche d'information
Catégorie :Meta-moteurs " off-line "
Description:
Copernic est un agent de recherche simple mais efficace.
Les requêtes sont soumises à plusieurs moteurs de recherche et
les résultats sont présentés sous forme d'un tableau. On dispose
ainsi d'un historique des données facilement accessible.
Points positifs
:- Simple et intuitif. Il s'intègre parfaitement dans le browser.
- Prend en compte plusieurs moteurs de recherche francophones (si l'on choisi l'interface française).
- Les résultats, qui apparaissent dans un tableau, peuvent être triés selon plusieurs critères de recherche.
- Il est possible de mener des recherches plus précises directement au sein des documents rapatriés par l'agent.
- Nouvelles fonctions de veille (version pro).
Points négatifs
:- Il est impossible de rajouter de nouveaux moteurs de recherche à la liste existante (dans la version gratuite).
Adresse site : http://www.copernic.com Telechargez le : version Windows 95
Prix : Version gratuite, version plus à 40 $, version pro à 80 $
Configuration requise :
Windows 95 ou NT Pentium 133 min.
32Mo de RAM min. Espace Disque:10 Mo.
25, rue de Wattignies 75012 PARIS
Tél : 33-1 40 19 02 02 Fax : 33-1 40 19 08 08 Mél : info @ arisem.com
S.A.R.L au capital de 50000 FF- RCS Paris
B 404 090 177 00019 - Code APE 722Z
DIGOUT4U
Nom: DigOut4U (Arisem)
Famille: Recherche d'information Catégorie: Agents de recherche avancés
Description: DigOut 4U est un logiciel développé par une jeune société française qui adopte une démarche originale basée sur l'analyse du contenu, du sens et de la sémantique des textes.
L'application repose sur une technologie propriétaire (L4U) qui permet de récupérer les pages web dont le contenu sémantique correspond à la requête en langage naturel formulée par
l'utilisateur. A l'heure actuelle, c'est un des premiers agents à
permettre des recherches multilingues. Par ailleurs, la technologie L4U est à la base d'autres applications plus évoluées notamment au niveau de la veille.
DIGOUT4U
Points positifs
• Requêtes en langage naturel mais avec possibilité d'intervenir sur les mots-clefs.
• Traitements linguistiques des données (présence d'un dictionnaire de synonymes et d'équivalences).
• Pages sur Internet (site carrefour)
• Elargissement de la portée d'une requête après une analyse de son contenu.
• L'analyse sémantique des pages permet de trier les document réellement pertinents
•Requêtes automatiquement traduites en anglais.
•Elaboration de résumés automatiques dont on peut modifier la longueur.
Points négatifs
• Nécessite un ordinateur assez puissant et une bonne connexion.
• L'interface est encore en évolution.
• Le prix le réserve surtout à un marché professionnel.
Adresse site: http://www.arisem.com Telechargez le: version Windows 95
Prix: Inférieur à 800, DigOut4U Version 1.4 (Monoposte)4.700 FF
Des plates-formes en Freeware :
- JADE : http://sharon.cselt.it/projects/jade/
- Swarm : http://www.swarm.org/ Objective C - Madkit : http://www.madkit.org/
- Starlogo : http://el.www.media.mit.edu/groups/el/Projects/starlogo/
- ZEUS :http://innovate.bt.com/projects/agents/zeus/index.htm - ZEUS : http://www.labs.bt.com
- Evo : http://www.omicrongroup.org/evo/
- Ascape : http://www.brook.edu/es/dynamics/models/ascape/ en Java - Geamas : http://www.univ-reunion.fr/~mas2/geamas/geamas.html
- JAFMAS : http://www.ececs.uc.edu/~abaker/JAFMAS/JAFMAS.html - AgentTcl : http://agent.cs.dartmouth.edu/general/agenttcl.html
- MANTA : http://www-poleia.lip6.fr/~drogoul/projects/manta/index.html Une liste de liens sur les SMA, mise à jour quotidiennement :
- http://www.spiderland.org/breve/
Breve: a 3d Simulation Environment Designed for the Simulation of Decentralized Systems and Artificial Life
- http://www.agentland.fr/
- http://www-2.cs.cmu.edu/~softagents/
- http://wwwttp://www.agentbuilder.com/AgentTools/index.html
TD/TP : Etude Comparative de Plates-formes Multi-Agents
Comparaison avec d’autres plateformes
JAFMAS ZEUS dMars AgenTalk AgentTcl Telescript
Langage de développement
Java Java C++ Lisp Tcl Telescript
Supporté par les systèmes
d’exploitation :
Tous Unix, Solaris, Windows NT
UNIX UNIX UNIX UNIX
Agent implémenté comme :
Software Software Software Software Software Software
Orienté objet ? Oui Oui Oui Non Non Oui
Chaque agent a son propre chemin d’exécution ?
Oui Oui Oui Non Oui Oui
Protocole de communication ?
TCP/IP and UDP/IP
TCP/IP TCP/IP TCP/IP TCP/IP TCP/IP
Support d’agents mobiles
Oui Non Non Non Oui Oui
Fournit des constructeurs de coordination ?
Oui Oui Quelques-uns Oui Non Non
JAFMAS : http://www.ececs.uc.edu/~abaker/JAFMAS/JAFMAS.html ZEUS : http://www.labs.bt.com
AgentTcl : http://agent.cs.dartmouth.edu/general/agenttcl.html
ZEUS ZEUS
A collaborative Agents Tool-Kit
Outil de création de systèmes multi-agents BT Laboratories – England
Hyacinth@info.bt.co.uk
ZEUS
Philosophie (1) Philosophie (1)
Le but du projet Zeus est de facilité le développement Le but du projet Zeus est de facilité le développement de système multi-agents à partir d’une boite à outil. de système multi-agents à partir d’une boite à outil.
Leur philosophie s’est orienté selon 3 principes : Leur philosophie s’est orienté selon 3 principes :
utilisation de la boite à outils simple. utilisation de la boite à outils simple.
Possibilité d ’ajouter ses propres agents dans la Possibilité d ’ajouter ses propres agents dans la librairie.
librairie.
utilisation d’outils standards pour faciliter les utilisation d’outils standards pour faciliter les modifications ultérieurs.
modifications ultérieurs.
Plus précisément, l’utilisateur doit pouvoir : Plus précisément, l’utilisateur doit pouvoir :
configurer ses propres agents avec des configurer ses propres agents avec des fonctionnalités différentes.
fonctionnalités différentes.
établir des relations entre eux. établir des relations entre eux.
définir chaque agent avec différents protocoles définir chaque agent avec différents protocoles de communication et de coordination
de communication et de coordination
fournir à chaque agent le code spécifique pour fournir à chaque agent le code spécifique pour résoudre les problèmes
résoudre les problèmes
générer automatiquement le code exécutable générer automatiquement le code exécutable pour chaque agent.
pour chaque agent.
Philosophie (2)
Philosophie (2)
Architecture (1) Architecture (1)
La structure de l’agent ZEUS: La structure de l’agent ZEUS:
une entité composé de cinq couches une entité composé de cinq couches : :
Interface Layer Definition Layer Organisation Layer Co-ordination Layer Communication Layer
Messages to / from other agents
Sensors Effectors
Les composants de ZEUS : Les composants de ZEUS :
Agent Component Library
Communication
Social Interaction
Data Structures Planning and
Scheduling
User Interface
Agent Building Software
Visual Editors
Code Generator
Legacy Systems API
Utility Agents
Name
Server Facilitator Visualiser
Society Viewer
Reports Tool Statistics
Tool
Agent Viewer Control
Tool
Architecture (2)
Avantages de la technologie Agent
Avantages
Réaliser des tâches répétitives
Interagir avec des
informations personnalisées Prévenir l ’utilisateur des événements importants
Apprendre à reconnaître le comportement des utilisateurs Suivre et diriger l’utilisateur dans un contexte particulier Réaliser les tâches à distance
Bénéfice
Augmenter la productivité
Réduire la quantité d’informations présentée
Réduire la charge de travail
Assistance proactive
Réduire le temps de formation
Travail local en mode déconnecté
StarLogo
StarLogo
Plan Plan
Introduction Introduction
La plateforme La plateforme
Exemple d’un programme Exemple d’un programme
Démonstration Démonstration
Conclusion Conclusion
Introduction Introduction
Plusieurs plate-formes multi-agents existent :Plusieurs plate-formes multi-agents existent :
– les plate-formes de simulation,les plate-formes de simulation,
– les plate-formes de développementles plate-formes de développement – et les plate-formes d'exécution.et les plate-formes d'exécution.
Starlogo : plate-forme de simulationStarlogo : plate-forme de simulation
– créé par Mitchell Resnick au MIT dans les années 90.créé par Mitchell Resnick au MIT dans les années 90.
– conception de systèmes multi-agents auto-organisés. ( basé sur le Logo)conception de systèmes multi-agents auto-organisés. ( basé sur le Logo) – portage en Java a été effectué (disponibilité sur toutes les plateformes et portage en Java a été effectué (disponibilité sur toutes les plateformes et
non pas uniquement sur Macintosh , clarification de l'aspect orienté objets non pas uniquement sur Macintosh , clarification de l'aspect orienté objets du langage, construction rapide des applets qui peuvent être montrés sur du langage, construction rapide des applets qui peuvent être montrés sur le Web. )
le Web. )
– modélisation des comportements collectifs ou émergents, survenant tant modélisation des comportements collectifs ou émergents, survenant tant dans les domaines du vivant que dans les sciences sociales (une
dans les domaines du vivant que dans les sciences sociales (une agrégation de cellules, la propagation d'un feu de forêt, un traffic de agrégation de cellules, la propagation d'un feu de forêt, un traffic de voitures ou encore une recherche de nourriture par des termites. ) voitures ou encore une recherche de nourriture par des termites. )
La plateforme La plateforme
Notion de décentralisationNotion de décentralisation
– systèmes organisés sans organisateur et coordonnés sans coordonnateursystèmes organisés sans organisateur et coordonnés sans coordonnateur – Exemple : Le vol en formation des oiseaux, les embouteillages de voitures, Exemple : Le vol en formation des oiseaux, les embouteillages de voitures,
le marché économique ou le comportement d'une fourmilière,…
le marché économique ou le comportement d'une fourmilière,…
Système auto-organisésSystème auto-organisés
– Interaction locale ajoutée les unes aux autres -> ordre (impression Interaction locale ajoutée les unes aux autres -> ordre (impression d’actions centralisées)
d’actions centralisées)
– Capacité cognitive individuelle limitée mais en groupe le comportement Capacité cognitive individuelle limitée mais en groupe le comportement peut être complexe et parait organisé (exemple : les fourmis)
peut être complexe et parait organisé (exemple : les fourmis)
Stalogo offre au programmeur trois entités différentes :Stalogo offre au programmeur trois entités différentes :
– les tortues (les agents),les tortues (les agents),
– les patches (l'environnement) etles patches (l'environnement) et – l'observateur (le superviseur).l'observateur (le superviseur).
La plateforme La plateforme
Les tortuesLes tortues
– Éléments principauxÉléments principaux
– Entités colorées sur l’écran principalEntités colorées sur l’écran principal – Exemple : tortues, fourmis, termites, …Exemple : tortues, fourmis, termites, …
Les patchesLes patches
– Environnement des tortuesEnvironnement des tortues – Cases de l’écran principalCases de l’écran principal
– Interaction des tortues avec l’environnementInteraction des tortues avec l’environnement
– Exemple : mettre de le nourriture dans l’environnement ou laisser des phéromonesExemple : mettre de le nourriture dans l’environnement ou laisser des phéromones
L’observateurL’observateur
– superviseursuperviseur
– Extérieur au monde des tortuesExtérieur au monde des tortues
– Gestion des programmes dans StarLogoGestion des programmes dans StarLogo
– Intervention possible même lorsque le programme est lancéIntervention possible même lorsque le programme est lancé
La plateforme La plateforme
4 fenêtres de commandes visibles 2 à 2 dans le centre de commandes,
La plateforme La plateforme
La fenêtre «Turtle command center» :La fenêtre «Turtle command center» :
– Exécution immédiate des commandes simples et de procédures relatives aux Exécution immédiate des commandes simples et de procédures relatives aux tortues.
tortues.
– Exemple : taper forward 10 dans la fenêtre «Turtle command center», on verra Exemple : taper forward 10 dans la fenêtre «Turtle command center», on verra alors un joli cercle, indiquant que vos tortues ont toutes avancé de 10 pas.
alors un joli cercle, indiquant que vos tortues ont toutes avancé de 10 pas.
La fenêtre «Turtle procedures» :La fenêtre «Turtle procedures» :
– Écriture de toutes les procédures concernant les tortues.Écriture de toutes les procédures concernant les tortues.
– Exemple :Exemple :
To set up
To set up to demarrerto demarrer Setcolor red
Setcolor red setc redsetc red Forward 10
Forward 10 fd 10fd 10 End End endend
– Les procédures ne peuvent lancées immédiatement Les procédures ne peuvent lancées immédiatement
dans la fenêtredans la fenêtre
– Pour exécuter les procédures :Pour exécuter les procédures :
Taper le nom de la procédure dans la fenêtre Taper le nom de la procédure dans la fenêtre
«Turtle command center»«Turtle command center»
Créer un bouton de lancement de la procédureCréer un bouton de lancement de la procédure
La plateforme La plateforme
La fenêtre «observer command center» :La fenêtre «observer command center» :
– Exécution immédiate des commandes qui y sont tapées.Exécution immédiate des commandes qui y sont tapées.
– Exécution immédiate des procédures en tapant leurs noms.Exécution immédiate des procédures en tapant leurs noms.
– l'observateur peut agir sur le monde des tortues en créant de nouvelles l'observateur peut agir sur le monde des tortues en créant de nouvelles tortues, en nettoyant l'écran de visualisation, ou en monitorant les événements tortues, en nettoyant l'écran de visualisation, ou en monitorant les événements – Exemple :Exemple :
taper clear-turtles dans cette fenêtre, alors toutes les tortues seront effacées de l'écran.taper clear-turtles dans cette fenêtre, alors toutes les tortues seront effacées de l'écran.
taper create-turtles 10, alors va apparaître un point au centre de l'écran correspondant aux taper create-turtles 10, alors va apparaître un point au centre de l'écran correspondant aux nouvelles tortues.
nouvelles tortues.
La fenêtre «observer procedures» :La fenêtre «observer procedures» :
– Écriture les procédures relatives à l'observateur.Écriture les procédures relatives à l'observateur.
– Procédures qui permettent de gérer un programme dans StarlogoProcédures qui permettent de gérer un programme dans Starlogo – Les procédures ne peuvent lancées immédiatement dans la fenêtreLes procédures ne peuvent lancées immédiatement dans la fenêtre
– Commandes importantes : ask-turtles et ask-patches pour passer des ordresCommandes importantes : ask-turtles et ask-patches pour passer des ordres aux tortues et aux patches
aux tortues et aux patches – Exemple :Exemple :
To set up To set up clear-all clear-all
create-turtles 20 create-turtles 20
ask-patches [set-patchcolor red]
ask-patches [set-patchcolor red]
ask-turtles [setc blue fd 5]
ask-turtles [setc blue fd 5]
endend
La plateforme La plateforme
Les patchesLes patches
– Pas de commandes spécifiques aux patchsPas de commandes spécifiques aux patchs – Les commandes relatives aux patchs sont :Les commandes relatives aux patchs sont :
soit, des commandes qui peuvent être exécutées par les tortuessoit, des commandes qui peuvent être exécutées par les tortues
soit, des commandes utilisées par l'observateur (principalement).soit, des commandes utilisées par l'observateur (principalement).
– Utilisation des patchesUtilisation des patches
la commande ask-patches ou d'une de ses variantes.la commande ask-patches ou d'une de ses variantes.
Vérifier si la commande est associée aux tortues ou à l’observateur pour savoir où l’utiliser.Vérifier si la commande est associée aux tortues ou à l’observateur pour savoir où l’utiliser.
– Exemple :Exemple :
L'utilisation des patchs par l'observateur nécessite la commande ask-patches ou une L'utilisation des patchs par l'observateur nécessite la commande ask-patches ou une variante(mettre dans la fenêtre «Observer procedures» .
variante(mettre dans la fenêtre «Observer procedures» .
to demarrer to demarrer
ask-patches [ifelse xcor < 0 [setpc red] [setpc blue]]
ask-patches [ifelse xcor < 0 [setpc red] [setpc blue]]
endend
(Patches < 0 rouge sinon bleu (Patches < 0 rouge sinon bleu
Xcor commande relative aux tortues mais setpc sont relatives a l’observateur Xcor commande relative aux tortues mais setpc sont relatives a l’observateur
C’est le type de derniere commande qui détermine ou mettre la procédure ici c’est l’observateur le C’est le type de derniere commande qui détermine ou mettre la procédure ici c’est l’observateur le destinataire)
destinataire)
Commande associée aux tortues (à mettre dans la fenêtre «Turtle procedures» )Commande associée aux tortues (à mettre dans la fenêtre «Turtle procedures» )
to demarrer to demarrer
ask-turtles [demarrer-tortues] //
ask-turtles [demarrer-tortues] // dire aux tortues lancer la procedure demarrer tortuesdire aux tortues lancer la procedure demarrer tortues endend
to demarrer-tortues to demarrer-tortues patch-setup //
patch-setup //demmarage des patchesdemmarage des patches endend
Exemple de code Exemple de code
Beaucoup de fonctions clés : Beaucoup de fonctions clés :
– Fd (Forward) : Avance les tortues d’une etape Fd (Forward) : Avance les tortues d’une etape – Setc (SetColor) : Couleur des tortues Setc (SetColor) : Couleur des tortues
– Jump : Nombre de mouvements des tortues Jump : Nombre de mouvements des tortues – Seth (setheading) : Angle de direction Seth (setheading) : Angle de direction
– Rt (right turn) : Tourner à droite d’un certain Rt (right turn) : Tourner à droite d’un certain angle
angle
Exemple de programme Exemple de programme
Les termites Les termites
– Une termite erre aléatoirement Une termite erre aléatoirement
– Si elle trouve du bois elle le prend Si elle trouve du bois elle le prend – Puis continue d’errer Puis continue d’errer
– Si elle en trouve un autre Si elle en trouve un autre
– Elle pose le premier dans une “pile” avec d’autres Elle pose le premier dans une “pile” avec d’autres Regroupement de tous le morceaux de bois Regroupement de tous le morceaux de bois
Classification Classification
Explication du code Explication du code
to setup setc red
seth random 360 jump random 200 end
to go
search-for-chip ; chercher du bois find-new-pile ; trouver un autre bois find-empty-spot ; trouver une place libre end
to search-for-chip
if pc = yellow ; si elle trouve du bois [stamp black ; enleve le bois du schema
setc orange ; couleur orange pendant le transport jump 20
stop] ; on quitte wiggle
search-for-chip end
Etat initial Etat final
Conclusion Conclusion
Développement de starLogo en 3D en Développement de starLogo en 3D en cours
cours
Bonne plateforme de simulation Bonne plateforme de simulation
(S’adapte à de nombreux domaines) (S’adapte à de nombreux domaines)
Pas d’acquisition de connaissances Pas d’acquisition de connaissances
(Agents réactifs) (Agents réactifs)
Bibliographie Bibliographie
www.ades.cnrs.fr/IMG/ppt/Sem-GRANIT_MPiron_02-fevr-06.pptwww.ades.cnrs.fr/IMG/ppt/Sem-GRANIT_MPiron_02-fevr-06.ppt
www.sm.u-bordeaux2.fr/~rodrigue/starlogo/main.htmlwww.sm.u-bordeaux2.fr/~rodrigue/starlogo/main.html
www.samuel.landau.free.fr/pub/enseignements/ENSTA00-01/TD-6/www.samuel.landau.free.fr/pub/enseignements/ENSTA00-01/TD-6/
education.mit.edu/starlogo/education.mit.edu/starlogo/
www.lirmm.fr/~jq/Cours/3cycle/module/sujet2002.htmlwww.lirmm.fr/~jq/Cours/3cycle/module/sujet2002.html