Vous êtes sur la page 1sur 96

Agents Software

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

Interactions Agent de Assistant


Avec les Recherche Personnel
autres agents
Avec les
applications Agent
Complexe
Avec
l’utilisateur

Raisonnement Planification Apprentissage


Fixe

Intelligence
Mobile

Mobilité
Langages pour la
construction des
applications à base d’agents
Langages
Bibliographie Environnements de Développement SMA
M. OCCELLO
15/04/2007

Langage, Bibliothèques et Shell (L et B et S)

(B) DECAF Decker R http://www.cis.udel.edu/~graham/DECAF/ Java


(L) Agent0 Shoham R
(L) LALO Gauvin CRIM R http://www.CRIM.CA/sbc/english/lalo/
(L) AgenTalk Ishida R/I http://drogo.cselt.stet.it/fipa/torino/cfp1/propos97_009.htm LISP
(L) Agent Building IBM I http://www.networking.ibm.com/iag/iagsoft.htm C++, Java
Environment
(B) JACK d'Inverno R/I http://www.agent-software.com.au/ Java
(dMars) (AOS)
(S) Agent Building Shell Un. Toronto R http://www.ie.utoronto.ca/EIL/ABS-page/ABS-overview.html LISP
(COOL) Barbuceanu
(B) FIPA-SMART R. Crepeau (US Navy) R http://satyrnt.SPAWAR.NAVY.MIL:6996/Info.html Java
(B) Swarm Burhard (Santa Fe) R http://www.santafe.edu/projects/swarm Objective C
(L) MAML Central European Univ R http://www.syslab.ceu.hu/maml/ Swarm
(B) JAFMAS D. Chauhan http://www.ececs.uc.edu/~abaker/JAFMAS/JAFMASabstract.html Java
(Uni Cincinati)
Outils
(B) JACK d'Inverno R/I http://www.agent-software.com.au/
(dMars) (AOS)
(S) Agent Building Shell Un. Toronto R http://www.ie.utoronto.ca/EIL/ABS-page/ABS-overview.html
(COOL) Barbuceanu
(B) FIPA-SMART R. Crepeau (US Navy) R http://satyrnt.SPAWAR.NAVY.MIL:6996/Info.html
(B) Swarm Burhard (Santa Fe) R http://www.santafe.edu/projects/swarm
(L) MAML Central European Univ R http://www.syslab.ceu.hu/maml/
(B) JAFMAS D. Chauhan http://www.ececs.uc.edu/~abaker/JAFMAS/JAFMASabstract.html
(Uni Cincinati)

Outils Intégrés de Conception

AgentBuilder Thomas I http://www.agentbuilder.com/Documentation/WhitePaper/index.html


(PLACA) (Reticular Sys)
ADE GenSym I http://www.gensym.com/
Bond Purdue U. R http://bond.cs.purdue.edu/papers/index.html
dMARS Rao R http://www.aaii.oz.au/articles/articles.html
(Australian AI Inst)
KAoS J. Bradshaw (Boeing) http://ksi.cpsc.ucalgary.ca/KAW/KAW96/bradshaw/KAW.html
Intelligent Agent Library Bits&Pixels I http://www.bitpix.com/business/main/techspec.htm
& IA Factory
MAST Uni. Madrid R http://www.gsi.dit.upm.es/~mast/
Madkit Gutknecht-Ferber R
Agent 0
 Agent 0 (Shoham, 1993)
– propose un nouveau style de programmation et
propose un vrai langage (AOP) intégrant un grand
nombre des concepts définissant la notion d'agent.
 Caractéristiques de Agent 0
– un langage de programmation interprété permettant
de programmer les agents.
– fondé sur un langage formel réduit utilisant la logique
modale pour décrire les états mentaux.
– Les agents sont programmés en terme de règles
d'échanges mentaux
Agent 0
 AGENT0 a trois composantes :
– 1) un système logique pour définir les états mentaux de l'agent ;
– 2) un langage de programmation pour programmer les agents
– 3) un processus "agentification", pour compiler les programmes d’agents en
un système exécutable (basniveau).
 Les concepts de base sont :
– Les Actions provoquant des faits déterminés (externes ou internes) par des
Décisions,
– Les Capacités indiquant dans quelle mesure l'agent est capable d'effectuer
une action,
– Les Croyances faisant référence à l'état du monde, aux état mentaux et aux
compétences des autres, et contraignant les décisions,
– Les Obligations traduisant des engagements et proposant des alternatives
pour les décisions.
Agent 0
• Le cycle de contrôle d'un agent AGENT0
Agent 0
 Le cycle de contrôle est assez simple. Il
consiste en la répétition de la boucle
suivante :
– lire les messages, mettre à jour l'état mental,
– exécuter les actions prévues pour le cycle
courant.
Agent 0
LALO
 Lalo est une extension de Agent 0. L'utilisateur peut choisir de
spécifier le comportement à l'aide :
– de règles comme dans AGENT0,
– d'un ensemble de plan ou plus simplement d'une façon
procédurale.

 L'intérêt de LALO par rapport à AGENT0 réside surtout dans


son aspect compilé. Le compilateur LALO génère à partir du
programme de l'agent, un code source C++ pour l'agent, et le
code source d'un programme d'installation dans la base de
données (Orientée Objet) des agents qui contient au lancement
les croyances et engagements
Le compilateur Lalo
D’autres langages
 Placa
 MétaTem
 …

– Des langages expérimentaux


Les critères de choix (1)

 Le type de l’agent développé


Les critères de choix (2)

 Le domaine d’application
 Les compétences techniques disponibles
 Le niveau de sécurité désiré
 Le niveau de performance
FIPA (1)

(Fundation for Intelligent Physical Agents)

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.

 
Le cycle de vie dans une plate-forme agent
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.
Application Réelle

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
« 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

Une voie de recherche s’est entrouverte :

le concept d’Agent Logiciel Intelligent (ALI)

Réponses effectives et performantes quant au problème de la coopération


inter-logiciels

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

Machines
Logiciels Services Langage Systèmes
- détection précoce d’un feu
Bosque Delphi PC
- liste des feux actifs PC
Criado,96 Pascal
- image visible ou infra-rouge d’un feu
- positions des moyens de lutte (GPS)
Florinus - information sur l ’état du réseau routier C et C++ PC/Unix
Schmidt,95 - état des ressources en eau
Système Météo - direction et vitesse du vent C++ et PC
Chambina,98 - humidité, température, Pascal
pluviométrie
- interpolation des données météo
Wilfrid
- calcul du niveau de risque
Guarnieri,95 C++ PC/Unix
- ressources en eau (citernes)
- simulation de la propagation d’un feu
- gestion de messages Access
MCI PC
- suivi de situations et C
Vauche,97
- statistiques
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
Agent Mobile (1)

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 (2)

“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..”.

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.
Technologie d'agent mobile

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.
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

SystSystemem Appli
ApplicaticationonDomai
Domainn
Sony’
Sony’s Magi
s Magic Lic Linknk assiassistsstisninmanagi
managingnga user’a user’s e-mai
s e-mail, lfax,, fax,phone phoneandandpagerpager
PDAPDA linliksnksthtehuser
e usertotoTelTelescriescriptp-enabl
t-enablededmessagi messagingngandand
communi
communicatciatoinonserviservicesces
France
FranceTelTelecomecom mobimobilelTele Telescriescriptpagent
t agents isnitnegrattegrate raie railwlwayaytictketicketinigngandand
protprototoytpeype carcarrentrentinigngserviservicesces
IBMIBMCommuniCommunicatciatoinon mobimobilelagent
e agents provi
s providedae communi
a communicatciatoinsonssuper-servi super-servicece
SystSystemem capabl
capable ofe ofroutroutinigngandandtransltranslatiantigngcommunicommunicatciatoinsonsfromfrom
oneoneserviservicecande andmedimediumumtotoanotanotherher
BTBTLaborat
Laboratorioerises mobimobilelC/e C/C++C++agentagents cont
s controlrola taelteecommuni
lecommunicatciatoinsons
protprototoytpeype netnetwworkork
Amélioration de la qualité des
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 techniques

2 types d’agents sont utilisés :

 Region agents
 Edge agents

Tous ces agents sont des entités simples et autonomes


qui communiquent dans un environnement partagé
Le monitorage des patients

GUARDIAN (Barabara Hayes-Roth, 2000)

= un prototype d’agents intelligents pour le


monitorage en soins intensifs.
Quelques caractéristiques techniques

3 types d’agents sont utilisés :


 Des agents de perception et d’action
 Des agents de raisonnement
 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., 1997)
Diabète
Trois principales familles d’agents (1)

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 (2)

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 (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.
Liste des principaux agents
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.
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
Les fonctionnalités (2)

Simplicité et rapidité
de la recherche :

Strategic Finder
interroge
simultanément toutes
les sources
sélectionnées avec une
seule requête.

Il élimine ensuite les pages doublons et supprime les pages non


pertinentes.
BULLSEYE PRO
Fig1
http://www.intelliseek.com
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
TD/TP : Etude Comparative de Plates-formes Multi-Agents

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
Comparaison avec d’autres plateformes 

  JAFMAS ZEUS dMars AgenTalk AgentTcl Telescript


 

Langage de Java Java C++ Lisp Tcl Telescript


développement

Supporté par les Tous Unix, Solaris, UNIX UNIX UNIX UNIX
systèmes Windows NT
d’exploitation :
Agent implémenté Software Software Software Software Software Software
comme :

Orienté objet ? Oui Oui Oui Non Non Oui

Chaque agent a Oui Oui Oui Non Oui Oui


son propre chemin
d’exécution ?

Protocole de TCP/IP and TCP/IP TCP/IP TCP/IP TCP/IP TCP/IP


communication ? UDP/IP

Support d’agents Oui Non Non Non Oui Oui


mobiles

Fournit des Oui Oui Quelques-uns Oui Non Non


constructeurs de
coordination ?

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

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)

Le but du projet Zeus est de facilité le développement


de système multi-agents à partir d’une boite à outil.

Leur philosophie s’est orienté selon 3 principes :


 utilisation de la boite à outils simple.
 Possibilité d ’ajouter ses propres agents dans la
librairie.
 utilisation d’outils standards pour faciliter les
modifications ultérieurs.
Philosophie (2)

Plus précisément, l’utilisateur doit pouvoir :


 configurer ses propres agents avec des
fonctionnalités différentes.
 établir des relations entre eux.
 définir chaque agent avec différents protocoles
de communication et de coordination
 fournir à chaque agent le code spécifique pour
résoudre les problèmes 
 générer automatiquement le code exécutable
pour chaque agent.
Architecture (1)

La structure de l’agent ZEUS:


 une entité composé de cinq couches:
Messages to / from
other agents
Communication Layer

Co-ordination Layer

Organisation Layer

Definition Layer

Interface Layer

Sensors Effectors
Architecture (2)

Les composants de ZEUS :


U
tilityAgents

AgentComponentLibrary Agent BuildingSoftware Name F


acilitator
S
erve
r

Visualiser

C
omm
unication
VisualE
ditors Society
P
lanningand Vie
we r
Scheduling Agent
C
odeG
enerator Vie
wer
D
ataS
tructures C
ontrol
Tool
Statistics R
eports
Social LegacyS
ystem
sAP
I Tool T
ool
Interaction U
serInterfa
ce
Avantages de la technologie Agent

Avantages Bénéfice
Réaliser des tâches Augmenter la productivité
répétitives

Interagir avec des Réduire la quantité d’informations


informations personnalisées présentée

Prévenir l ’utilisateur des Réduire la charge de travail


événements importants

Apprendre à reconnaître le Assistance proactive


comportement des utilisateurs

Suivre et diriger l’utilisateur Réduire le temps de formation


dans un contexte particulier

Réaliser les tâches à distance Travail local en mode déconnecté


StarLogo
Plan
 Introduction
 La plateforme
 Exemple d’un programme
 Démonstration
 Conclusion
Introduction
 Plusieurs plate-formes multi-agents existent :
– les plate-formes de simulation,
– les plate-formes de développement
– et les plate-formes d'exécution.

 Starlogo : plate-forme de simulation


– créé par Mitchell Resnick au MIT dans les années 90.
– 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
non pas uniquement sur Macintosh , clarification de l'aspect orienté objets
du langage, construction rapide des applets qui peuvent être montrés sur
le Web. )
– modélisation des comportements collectifs ou émergents, survenant tant
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
voitures ou encore une recherche de nourriture par des termites. )
La plateforme
 Notion de décentralisation
– systèmes organisés sans organisateur et coordonnés sans coordonnateur
– Exemple : Le vol en formation des oiseaux, les embouteillages de voitures,
le marché économique ou le comportement d'une fourmilière,…

 Système auto-organisés
– Interaction locale ajoutée les unes aux autres -> ordre (impression
d’actions centralisées)
– Capacité cognitive individuelle limitée mais en groupe le comportement
peut être complexe et parait organisé (exemple : les fourmis)

 Stalogo offre au programmeur trois entités différentes :


– les tortues (les agents),
– les patches (l'environnement) et
– l'observateur (le superviseur).
La plateforme
 Les tortues
– Éléments principaux
– Entités colorées sur l’écran principal
– Exemple : tortues, fourmis, termites, …

 Les patches
– Environnement des tortues
– Cases de l’écran principal
– Interaction des tortues avec l’environnement
– Exemple : mettre de le nourriture dans l’environnement ou laisser des phéromones

 L’observateur
– superviseur
– Extérieur au monde des tortues
– Gestion des programmes dans StarLogo
– Intervention possible même lorsque le programme est lancé
La plateforme
 4 fenêtres de commandes visibles 2 à 2 dans le centre de commandes,
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
tortues.
– 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.

 La fenêtre «Turtle procedures» :


– Écriture de toutes les procédures concernant les tortues.
– Exemple :
To set up to demarrer
Setcolor red setc red
Forward 10 fd 10
End end

– Les procédures ne peuvent lancées immédiatement


dans la fenêtre
– Pour exécuter les procédures :
 Taper le nom de la procédure dans la fenêtre
«Turtle command center»
 Créer un bouton de lancement de la procédure
La plateforme
 La fenêtre «observer command center» :
– Exécution immédiate des commandes qui y sont tapées.
– 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
tortues, en nettoyant l'écran de visualisation, ou en monitorant les événements
– Exemple :

 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
nouvelles tortues.

 La fenêtre «observer procedures» :


– Écriture les procédures relatives à l'observateur.
– Procédures qui permettent de gérer un programme dans Starlogo
– Les procédures ne peuvent lancées immédiatement dans la fenêtre
– Commandes importantes : ask-turtles et ask-patches pour passer des ordres
aux tortues et aux patches
– Exemple :
To set up
clear-all
create-turtles 20
ask-patches [set-patchcolor red]
ask-turtles [setc blue fd 5]
end
La plateforme
 Les patches
– Pas de commandes spécifiques aux patchs
– Les commandes relatives aux patchs sont :
 soit, des commandes qui peuvent être exécutées par les tortues
 soit, des commandes utilisées par l'observateur (principalement).
– Utilisation des patches
 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.
– Exemple :
 L'utilisation des patchs par l'observateur nécessite la commande ask-patches ou une
variante(mettre dans la fenêtre «Observer procedures» .
to demarrer
ask-patches [ifelse xcor < 0 [setpc red] [setpc blue]]
end
(Patches < 0 rouge sinon bleu
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
destinataire)
 Commande associée aux tortues (à mettre dans la fenêtre «Turtle procedures» )
to demarrer
ask-turtles [demarrer-tortues] // dire aux tortues lancer la procedure demarrer tortues
end
to demarrer-tortues
patch-setup //demmarage des patches
end
Exemple de code
 Beaucoup de fonctions clés :
– Fd (Forward) : Avance les tortues d’une etape
– Setc (SetColor) : Couleur des tortues
– Jump : Nombre de mouvements des tortues
– Seth (setheading) : Angle de direction
– Rt (right turn) : Tourner à droite d’un certain
angle
Exemple de programme
 Les termites
– Une termite erre aléatoirement
– Si elle trouve du bois elle le prend
– Puis continue d’errer
– Si elle en trouve un autre
– Elle pose le premier dans une “pile” avec d’autres

 Regroupement de tous le morceaux de bois


 Classification
Explication du code
to go to setup to search-for-chip
search-for-chip ; chercher du bois setc red if pc = yellow ; si elle trouve du bois
find-new-pile ; trouver un autre bois seth random 360 [stamp black ; enleve le bois du schema
find-empty-spot ; trouver une place libre jump random 200 setc orange ; couleur orange pendant le transport
end end jump 20
stop] ; on quitte
wiggle
search-for-chip
end

Etat initial Etat final


Conclusion
 Développement de starLogo en 3D en
cours
 Bonne plateforme de simulation
(S’adapte à de nombreux domaines)
 Pas d’acquisition de connaissances
(Agents réactifs)
Bibliographie
 www.ades.cnrs.fr/IMG/ppt/Sem-GRANIT_MPiron_02-fevr-06.ppt

 www.sm.u-bordeaux2.fr/~rodrigue/starlogo/main.html

 www.samuel.landau.free.fr/pub/enseignements/ENSTA00-01/TD-6/

 education.mit.edu/starlogo/

 www.lirmm.fr/~jq/Cours/3cycle/module/sujet2002.html

Vous aimerez peut-être aussi