• Aucun résultat trouvé

Agents Software Agents Software Technologies Technologies

N/A
N/A
Protected

Academic year: 2022

Partager "Agents Software Agents Software Technologies Technologies"

Copied!
96
0
0

Texte intégral

(1)

Agents Software Agents Software

Technologies

Technologies

(2)

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

(3)

Caractéristiques des ALI

Mobilité

Intelligence Interactions

Agent de

Recherche Assistant

Personnel

Agent Complexe

Avec les autres agents

Avec l’utilisateur

Apprentissage Planification

Raisonnement Avec les

applications

Fixe

Mobile

(4)

Langages pour la Langages pour la construction des construction des

applications à base d’agent

applications à base d’agent s s

(5)

Langages

Langages

(6)

Outils

Outils

(7)

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

(8)

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.

(9)

Agent 0 Agent 0

• Le cycle de contrôle d'un agent AGENT0

(10)

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.

(11)

Agent 0

Agent 0

(12)

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

(13)

Le compilateur Lalo

Le compilateur Lalo

(14)

D’autres langages D’autres langages

 Placa Placa

 MétaTem MétaTem

 … …

– Des langages expérimentaux Des langages expérimentaux

(15)

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é

(16)

 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)

(17)

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)

(18)

Le cycle de vie dans une plate-forme agent

(19)

 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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

Principe

(25)

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

(26)

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

(27)

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 :

(28)

Synthèse des services proposés par les différents SAD

Logiciels Services Langage

MachinesSystèmes

Bosque 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

(29)

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.

(30)

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.

(31)

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

(32)

Agents Mobiles

sur le net

(33)

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)

(34)

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

(35)

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

(36)

Agent Mobile Client/Serveur

Evaluation de Performance

INRIA Rhône-Alpes

(37)
(38)
(39)
(40)
(41)
(42)
(43)
(44)
(45)
(46)
(47)
(48)

     Mesure des bandes passantes sur les connexions entre        les 3 sites (F GB Suisse) 

(49)
(50)
(51)
(52)
(53)
(54)

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

(55)

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

(56)

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é

(57)

Le monitorage des patients Le monitorage des patients

GUARDIAN (Barabara Hayes-Roth, 2000)

= un prototype d’agents intelligents pour le

monitorage en soins intensifs.

(58)

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.

(59)

Patient Advocate (Miksch et al., Patient Advocate (Miksch et al.,

1997) 1997)

Diabète

(60)

  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)

(61)

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)

(62)

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.

(63)

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.

(64)

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.

(65)

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

(66)

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

(67)

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)

(68)

BULLSEYE PRO

http://www.intelliseek.com

Fig1

(69)

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.

(70)

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 $

(71)

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

(72)

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.

(73)

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

(74)

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

(75)

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

(76)

ZEUS ZEUS

A collaborative Agents Tool-Kit

Outil de création de systèmes multi-agents BT Laboratories – England

Hyacinth@info.bt.co.uk

(77)

ZEUS

(78)

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.

(79)

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)

(80)

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

(81)

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)

(82)

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é

(83)

StarLogo

StarLogo

(84)

Plan Plan

 Introduction Introduction

 La plateforme La plateforme

 Exemple d’un programme Exemple d’un programme

 Démonstration Démonstration

 Conclusion Conclusion

(85)

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

(86)

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

(87)

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é

(88)

La plateforme La plateforme

4 fenêtres de commandes visibles 2 à 2 dans le centre de commandes,

(89)

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

(90)

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

(91)

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

(92)

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

(93)

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

(94)

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

(95)

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)

(96)

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

Références

Documents relatifs

strings filename | less Extract printable text strings from a binary file touch filename Create file if it does not exist, or update its timestam p rm filename Delete

Pour nom :x Crée une procédure nommée « nom » de paramètre x Fin Termine la création d'une procédure..

 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

At the same time, the ALAS agent-oriented programming language hides the complexity of enterprise applications from agent developers, allowing them to focus on problem-solving

In particular, multi-agent systems have been used as (i) an underlying layer or a middleware for developing social networking platforms, (ii) a

In this way, software agents become the “brain” for the Grid “brawn.” The aim of the presentation will be to outline the assumptions underlying our

L’appareil conçu dans ce projet contient un « Power Factor Corrector PFC » pour pouvoir créer un bus de tension à 400V et un convertisseur de type « Forward » pour chaque lampe

Les sommes des deux entiers contenus dans tous les dominos, horizontaux ou verticaux, constitués de deux cases adjacentes sont toutes différentes.. Déterminer en fonction de n la