68
Introduction Aux Systèmes multi-agents Syma – cursus CSI / SCIA Julien Saunier - [email protected]

Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

IntroductionAux Systèmes multi-agents

Syma – cursus CSI / SCIA

Julien Saunier - [email protected]

Page 2: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Ressources

Multiagent Systems, A Modern Approach to Distributed Artificial Intelligence Edited by Gerhard Weiss, MIT Press.emmanuel.adam.free.fr/site/IMG/pdf/poa_introP.pdfwww.limsi.fr/~jps/enseignement/www.emse.fr/~boissier/www.ecs.soton.ac.uk/about/pdfs/AgentLink_Fifty_Facts.pdfwww.agentlink.org/roadmap/al3rm.pdfwww.lirmm.fr/~ferber/

Cours (librement et fortement) inspiré de ceux de Flavien Balbo et Nicolas Sabouret

Page 3: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Plan

● Introduction aux SMA– Historique, Définitions, Propriétés, Typologie

● Modélisation multi-agents : agents réactifs– Méthodologie Voyelle– Exemples

● Architectures d'agents rationnels– BDI / Logique– Modèles d'interaction...

● Simulation multi-agents– Systèmes complexes– Emergence & multi-agents–

Page 4: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Évaluation

● 50% examen– Premier partiel en avril

● 50% projet

Page 5: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Les Systèmes Multi-Agents

Une introduction

Nicolas Sabouret Module IAA – Septembre 2010

Page 6: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Plan● Introduction

– Introduction & historique– Définition : agent & SMA– Définition des notions clefs

● Modélisation: agents réactifs– Agent– Environnement– Interaction– Organisation– Utilisateur

Page 7: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Plan● Introduction

– Introduction & historique– Définition : agent & SMA– Définition des notions clefs

● Modélisation: agents réactifs– Agent– Environnement– Interaction– Organisation– Utilisateur

Page 8: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Objectifs

autonomieouverture

hétérogénéïté

asynchrone

cognitif

proactif

rationnel

faiblement couplé

coopératifcoordination

agent situé

interaction

SMA

Environnement

organisation

émergence

Page 9: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Exemple Jeu

Page 10: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

10

Exemple robots

Page 11: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

IntroductionOrigine

● Source– Intelligence Artificielle,– Informatique répartie, parallélisme,– Programmation, Objet.

● Inspiration– Systèmes complexes (physique, éthologie,

écologie, …)– Psychologie sociale, sociologie, économie, …

Page 12: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Point de vue IA● IA symbolique :

– Logique(s)– Représentation des connaissances & raisonnement

→ données et actions (planification, apprentissage)– Modélisation & résolution de problèmes

● Problème : – Conception d'une IA générale monolithique?

● Non, mais spécialisée (Ex: Big Blue)

Page 13: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Point de vue IA (2)

● Lier l'IA symbolique aux leçons des sciences cognitives :

– Simulation de comportement humain– Sociétés d'animaux (fourmis) → interactions– Simulation sociale

● Intelligence Artificielle Distribuée

Page 14: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Point de vue GL● Programmation impérative : fonctions● Programmation objet :

– Encapsulation → invocations de méthodes● Programmation services :

– Invocation à distance (RMI)– Indépendant du langage

● Programmation orientée-agents : processus– Pro-action (vs invocation modale)– Appels asynchrones– Délégation de tâche

Page 15: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Point de vue GL (2)● 1 agent = 1 thread

– Données et méthodes encapsulées– Interface d'invocation → service

→ Couche de communication mi-reseau, mi-langage

● SMA = ensemble de threads– Notion de système « ouvert »– Définition de « protocoles d'interaction »

pour la conception du système● Comment concevoir (ingénierie) un tel système ?

Page 16: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Point de vue SR● Informatique centralisée

– Calculateurs & « back-office »● Client-serveur → « synchronisation »

– Front-end (client)– Bases de données (serveur)

● Systèmes distribués → « répartition »– Internet, pair à pair, MANET– Délégation, migration, authentification– Coordination– Composition (auto) de services

Page 17: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Point de vue SR (2)

● Agent → métaphore des unités de calcul hétérogènes

– Capacités hétérogènes (proc, batterie...)– Couche de communication (réseau)

éventuellement instable● Questions

– Tolérance aux pannes → réplication– Réseau changeant et portée limitée → brokering– Fiabilité des communications– Authentification

Page 18: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Et donc?● Agent

– Processus– Encapsulation– Raisonnement sur les actions– Services

● SMA– Système (ouvert), environnement– Distribution, coordination– Invocation, Interactions

● Utilisateur !

Page 19: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Agent

&

Système Multi-Agents

Page 20: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Un agent ? Quelques définitions

● [ Ferber 91] : Entité physique ou virtuelle mue par un ensemble de tendances (objectifs individuels, fonction de satisfaction ou de survie à optimiser), qui possède des ressources propres, ne dispose que d'une représentation partielle (éventuellement aucune) de son environnement, son comportement tendant à satisfaire ses objectifs, en tenant compte de ses ressources et de ses compétences, et en fonction de sa perception, ses représentations et ses communications.

● [IBMWhite paper, 95] : Un agent intelligent est une entité logicielle qui réalise des opérations pour le compte d'un usager (ou d'un autre programme) avec un certain degré de liberté et d'autonomie et qui, pour ce faire, exploite des connaissances ou des représentations des désirs et des objectifs de l'usager.

● [P. Maes, 95] : Un agent autonome est un système calculatoire qui, placé dans un environnement complexe et dynamique, perçoit et agit de manière autonome dans cet environnement et, ce faisant, réalise les objectifs ou des tâches pour lesquels il est conçu.

● [Wooldridge 97] : Un agent est un système informatique situé dans un environnement, capable d’actions flexibles et autonomes dans cet environnement, pour atteindre le but pour lequel il a été conçu.

Page 21: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Notion d'agent

Agentréactif

Agentcognitif

Agentrationnel

Données Internes(croyances)Action

Raisonnement(inférence)

Interactionsdirectes

Planification

Butsexplicites

● Agent → actions– Agent réactif : règles perception → action– Agent cognitif/rationnel : raisonnement

● Rationnalité → but

→ Construction de plans

Page 22: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Agent (1)● Environnement

– Pas d'agent sans environnementInitialisation et exécution des agents

– Peut être réduit à des fonctions I/O– Souvent : fournisseur de l' « agent ID »

● Processus– Thread ou scheduler dans l'environnement– Boucle procédurale (actions)

● Exemples

Page 23: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Premier exemple

● Pas de donnée propre → plutôt « réactif »● Pas de perception, pas d'interaction● Action sur l'environnement● Processus = thread● Boucle procédurale

public class Agent1 extends Thread {  public void run() {    while (true) {      System.out.println("coucou");    }  }  public static void main(String [] args) {    (new Agent1()).start();  }}

Action dansl'environnement

Environnement(lance l'exécution + I/O)

Page 24: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Deuxième exemple

● Processus = simulé par l'environnement● Boucle procédurale : run1step (masquée dans l'ex. prec.)

import java.util.Random;

public class Agent2 {  public void run1step() {    System.out.println("coucou");  }  public static final int N = 10;  public static void main(String [] args) {    Random r = new Random();    Agent2[] agents = new Agent2[N];    for(int i= 0;i<N;i++)      agents[i] = new Agent2();    while (true)      agents[r.nextInt(N)].run1step();    }}

Boucle procédurale→ action dansl'environnement

Environnement

Scheduler

Liste des agents

Page 25: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Agent (2)● Un environnement● Un processus

→ peut être simulé (scheduler)● en interaction avec l'environnement

– Actions– Perceptions

→ l'agent est situé

Page 26: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Perception● Temps de perception

– Synchrone → à chaque cycle d'exécution– Asynchrone → seulement de temps en temps

● Méthode de perception– Passive → l'agent est informé automatiquement– Active → une ou plus. actions « percevoir »

● Rôle des perceptions– Mise à jour de données internes (agent cognitif)– Réaction (agent réactif)

→ Architecture dépendant de l'environnement et de la boucle procédurale !

Page 27: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Boucle procédurale● Ensemble d'actions + exécution cyclique● Sélection d'action

– En fonction des connaissances internes (agent cognitif)– En fonction des perceptions (agent réactif)

● Trois types d'actions– Actions exogènes → environnement

(écrire « coucou »)– Actions internes → données

(en particulier l'action de perception, si elle existe)– Interactions (voir + loin)

Page 28: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Troisième exemple

● Perception active, asynchrone

Thread[Thread-0,5,main]v=1279Thread[Thread-0,5,main]v=1280Thread[Thread-0,5,main]v=1279Thread[Thread-0,5,main]v=1280Thread[Thread-0,5,main]v=1287Thread[Thread-1,5,main]v=1219Thread[Thread-1,5,main]v=1220Thread[Thread-1,5,main]v=1220Thread[Thread-1,5,main]v=1220Thread[Thread-1,5,main]v=1221

static int env_v = 0;… main() {  for(int i<0;i<N;i++)    (new Agent3()).start();}

int v = 0;private void a1() { v = env_v; }private void a2() { v++; }private void a3() { env_v = v; }private void a4() {  …println(this.toString()+"v="+v);}

public void run() {  while (true) {    switch (r.nextInt(4)) {    case 0: a1(); break;    case 1: a2(); break;    case 2: a3(); break;    case 3: a4(); break;    }  }}

Environnement

Agent

Page 29: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Un problème SR & GL● Accès concurrent à une ressource

– Risque d'interblocage (au niveau du système)(ici, lecture et incrément → pas de blocage)

– Différence interne/environnement (au niveau de l'agent)

● Problématique multi-agent

→ concevoir des systèmes qui intègrent :– Le fait que les données ne sont pas à jour ;– La modification concurrente des données

Page 30: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Quatrième exemple

● Perception passive (peer)● Interaction uniquement entre agents (pik-pok)

… main() {  Agent4 a = new Agent4(),         b = new Agent4();

a.setPeer(b); b.setPeer(a);a.start(); b.start();

}

private Agent4 peer = null;public setPeer(Agent4 p) {  peer = p;}

public void pik() {  …println(this.toString()+": pok");}public void foo() {  if (peer!=null) peer.pik();}

public void run() {  while (true) {    foo();  }}

Environnement Agent

Connaître les autres agents...

...pour communiquer avec eux !

L'agent a 2 actions (pik et foo)

Page 31: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Agent (2)● Un processus● Situé dans un environnement● Des données et des actions

→ plus ou moins complexes● Des mécanismes d'interaction

→ avec l'environnement

→ avec les autres agents(éventuellement de manière indirecte)

● Des objectifs propres !

→ explicites ou implicites

Page 32: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Notion de but● Fonctionnement pour l'utilisateur

– Au niveau de l'agent– Au niveau du système

● Une première idée d' « autonomie »– Chaque agent a ses propres buts

(et ses propres données, actions...)– La sélection d'action doit se faire en fonction de ces

buts → agent « intelligent » !

Page 33: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Définition● Un agent est :

– Un processus (situé dans un environnement)– Qui manipule des données et des actions– Qui peut interagir avec l'environnement ou avec

d'autres agents– Qui a des objectifs propres

● Un système multi-agents est :– Un ensemble d'agents + un environnement– Un fonctionnement global + un ensemble de

propriétés – Un mécanisme de décision distribué

Page 34: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Système Multi-Agents● Ensemble d'agents + environnnement

→ plate-forme d'exécution !● Rôles de la plate-forme (matérielle ou logicielle)

– Exécution des agents (threads ou scheduling)

– Lien entre les agents● Adressage, identification● Transport des messages, invocation de mtds

– Environnement● Données de l'environnement● Actions & perceptions

Page 35: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Système Multi-Agent

Agents

+

Interactions

+

Environnement

+

Utilisateur !

SMA

Page 36: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Les 3 niveaux du SMA● Le niveau « processus »

– Programmation (en langage objet en général)

– Définition du comportement (pas « autonome »)

● Le niveau agent– Encapsulation + méthodes de communication– Comportement « autonome »– Pas de vision globale

● Le niveau Système– Définition de l'environnement

dont règles globales (régulation)– Propriétés

Page 37: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Propriétés● Du système multi-agent

– Distribution– Ouverture– Synchronisme– Mode d'interaction– Couplage– Homogénéité– Organisation

● Des agents– Autonomie– Coopération– Modèle de raisonnement

Page 38: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

SMA → ingénierie+rechercheQu'est-ce qui rend les SMA si intéressants ?

● Ensemble d'agents ayant des objectifs propres

→ les agents doivent se coordonner !

→ le comportement du système peut émerger !● Questions de recherche :

– Propriétés du système, des agents– Métaphore humaine, sociale...– Simulation

● Ingénierie– Conception & implémentation– Mécanismes d'interaction

Page 39: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Conclusion (1)

actions perceptions

communication

représentation● soi● les autres● l'environnement

environnement

utilisateur

proaction

Page 40: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Conclusion (2)● Agent ≠ imprévisible !

Voir « autonomie »...● SMA ≠ technique IA

La partie cognitive de l'agent peut être un système expert, un réseau bayésien, etc.

SMA → approche, architecture, problématiques(interactions, émergence, etc)

Page 41: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Définitions

Page 42: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Définitions● Distribution● Ouverture● Synchronisme● Hétérogénéité● Couplage● Autonomie● Coopération● Rationalité● Mode d'interaction● Organisation

Page 43: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Distribution● Un SMA est un système réparti

– Conceptuellement (a minima)Penser le système comme un ensemble d'entités séparées, avec leurs fonctionnalités

→ le mécanisme de décision est distribué !– Logiquement

L'implémenter comme tel– Physiquement

Sur plusieurs machines

→ la plupart des PF SMA n'adoptent pas ces trois degrés !

Page 44: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Distribution● Distribution conceptuelle

– Chaque agent possède:● Un ensemble de données propres● Des opérations spécifiques sur ces données

– Attention aux interactions→ si on se dit tout, ça n'est plus distribué

● Distribution logicielle– Les agents sont implémentés de manière séparée– Leur exécution est distribuée (N threads)

mais on peut recréer un scheduler (ex: Netlogo)– Généralement, 1 agent = 1 objet

Page 45: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Distribution● Envoi de messages

– Il faut un mécanisme central pour transporter les messages

– Peut être distribué (brokers, adressage, DNS)● Horloge → voir synchronisation● Plate-forme répartie (ex : Jade)

– Migration

→ l'agent se « déplace » physiquement sur la plate-forme concernée

● Sureté de fonctionnement

→ réplication d'agents (et donc de données)

Page 46: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Distribution● Distribution matérielle

– Plusieurs plate-formes physiques

→ il faut compléter les mécanismes de distribution logicielle par:

● Invocation de méthodesRMI, Web Services, TCP/IP, autres…

● Mécanismes de gestion des pannes physiques(perte sèche des agents, encore plus présent qu'en distribution logicielle)

– Attention au coût des communicationset de la synchronisation des données

Page 47: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

2 plate-formes● En Netlogo

→ on conçoit le SMA de manière distribuée

→ il est implanté de manière centralisée

→ sur une seule plate-forme● En Jade

→ on conçoit le SMA de manière distribuée

→ il est implanté de manière distribuée

→ il peut être physiquement distribué

Page 48: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

OuvertureLes agents peuvent entrer et sortir du système à tout moment en cours d'exécution

● Il faut des mécanisme d'enregistrement

→ Plate-forme SMA (répertoire, pages jaunes, etc...)

● Il faut en tenir compte dans le modèle !(cf. autonomie dans les interactions)

La solution est au niveau système

L'implémentation est au niveau agent→ les agents peuvent disparaître !

● Il faut des mécanismes de naissance & mort

Page 49: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Exemple

● Soldat : durée de « vie » aléatoire● Sergent : compter les soldats actifs

Sergent

Soldats

depot = new ArrayList<Soldat>();GetDepot()   → return depot; /* ou une copie */public static void main(String [] args) {

(new Sergent()).start();while (true) {    Thread.sleep(1000);    Soldat s = new Soldat();    depot.add(s); s.start();}

}

Environnement

Création d'agents

Page 50: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Exemple (suite)class Soldat extends Thread {  boolean running = true;  public boolean appel() {    return running;  }  public void run() {    running = true;    …println("** POP **");    Thread.sleep(rand(10000));    …println("­­­> depop ­­>");    running = false;  }}

Soldat

class Sergent extends Thread {  public void appel() {    int nb = 0;    for(Soldat s : getDepot())

   if (s.appel()) nb++;    …println(" => "+nb);  }  public void run() {    while (true) {      Thread.sleep(3000);      appel();    }  }}

Sergent

Méthode d'appel

Mort de l'agent ?

● Ici, les « soldats » ne quittent pas le SMA

→ ils répondent aux messages du « sergent »

Page 51: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Exemple (suite)● Arrivée d'agents

→ consulter l'annuaire

→ rappelle N fois les soldats toujours vivants !L'agent devrait avoir une mémoire...

● Les soldats restent dans le SMAMais s'ils le quittaient (destruction de l'objet) ?

→ risque de blocage du sergent (attente de réponse)

→ la PF SMA doit gérer les messages perdus, en attente, etc

→ Il faut un autre mécanisme d'interaction !– Appel de méthodes → pas SMA– Plate-forme : adressage, transport...

Page 52: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

AsynchroneChaque agent a sa propre vitesse d'exécution

● Propriétés souhaitées– Le temps moyen d'activité de chaque agent est le

même pour tous– La « vitesse perçue » des agents ne change pas

trop

● SMA synchrones

Ex : apprentissage multi-agent !

Page 53: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Exempleint id; /* unique */int vitesse = rand(1000);public void run() {  while (true) {    Thread.sleep(vitesse);    if (verrou==id)  verrou=­1;    else if (verrou==­1) {      verrou=id;

   …println("Je l'ai !");    }}

Agent

$ java Asynchrone (0) vitesse=166(1) vitesse=894(2) vitesse=847[...](1) Je l'ai !(0) Je l'ai !(0) Je l'ai !(2) Je l'ai !(0) Je l'ai !(1) Je l'ai !(0) Je l'ai !(2) Je l'ai !(0) Je l'ai !(0) Je l'ai !(0) Je l'ai !(2) Je l'ai !

Environnement

static int verrou = ­1;public static void main(...) {  for(int i=0;i<3;i++)    (new Asynchrone()).start();  }}

Page 54: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Exemple (suite)● Problèmes posés

– Risque de famine→ un agent n'arrive pas à « attraper » la ressource

– Interactions → retard dans les réponses→ raisonnement sur des données erronées

● SMA synchrone

→ en général, un scheduler régulier

ATTENTION :Ne pas tirer toujours les agents dans le même ordre !

Page 55: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Hétérogénéité● 2 Niveaux:

– Données internes des agents ou de l'env.– Contenu des messages

● Hétérogénéité syntaxique

→ Les agents ne partagent pas le même modèle de données (BDI, CLIPS, DL, autre)

Peu utilisé en pratique dans les SMA

→ Normes (FIPA) & langages standards

(is-into epita) (let x 3)in(epita) x:=3

Page 56: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Exemple

● Interactions indirectes (variable BAL)● Agents hétérogènes → échec

générer

filtrer

static final String SAIN = "sane";static final String A_EXAMINER = "check";static final String DANGEREUX = "danger";

Producteur

[...]Production (7): dangerProduction (8): checkProduction (9): checkProduction (0): check** ok null ok null ok null ok null ok ok **

Environnement

static String [] BAL;

static final String DANGER = "danger";static final String VERIFIE = "checked";public void run() {  while (true)    if (BAL[i]!=null)    BAL[i] = filtrer(BAL[i]);}private String filtrer(String dt) {  if (!dt.equals(DANGER))    return CHECKED;  return null;}

Filtre

Page 57: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Hétérogénéité● Sémantique

→ Les agents ne partagent pas la même conception du monde

● Solution :

→ Utiliser la même représentation du monde(voir SMA faiblement couplés)

→ Ontologies + services d'appariements

is(plant,safe) ?

Page 58: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Ontologie● Kesako ? (au sens multi-agents !)

– Ensemble des données manipulables par l'agent– Généralement structurée :

● Relation hiérarchique● Relations entre les termes

● Objectif– Cohérence dans les interactions multi-agents– Interactions structurées (cf. plus loin)

tenirverrou

libre

verrouilléagent

processus

software

Page 59: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Hétérogénéité

● Appariement d'ontologies– Approches par instances vs par structure– Approches par ontologie médiatrice– Problème des appariements impossibles

Page 60: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

SMA faiblement coupléLes agents ont été conçus par des personnes différentes, sans connaissance du fonctionnement des autres agents

● Pas si fréquent→ mais modèle business d'entreprise

● Faiblement couplé ≠ hétérogène– Évitez de cumuler les difficultés !

→ ontologie standard● Définition des protocoles d'interactions

– Fixer les échanges de messages– Sélection de protocoles

Page 61: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

SMA faiblement couplé● Fortement couplé (1 seul concepteur)

– Buts du SMA définis implicitement– Émergence de comportements de haut niveau– Analyse, debug, chaîne GL plus facile– Pas besoin de découverte de service

● Mais:– Système souvent fermé et homogène– Difficulté de l'ingénierie à l'échelle (nb d'agents)

Page 62: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Autonomie● Notion clef en SMA

→ différence entre agent et objet !● Autant de définition que de chercheur en M.A.

– Autonomie = proaction→ capacité d'agir seul

– Autonomie = encapsulation→ données propres

→ liberté d'action (limitée par l'environnement)– Autonomie = non-réponse aux messages

ou réponse non-conforme

→ limitée par les protocoles

Page 63: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Proaction: agent vs objet● Snoopy = agent

– Il peut envoyer la balle– Il peut ne pas l'envoyer

● Balle = objet– Elle obéit aux lois de la physique lorsque snoopy la

lance– Elle n'agit pas seule. Elle n'a pas d'action.

● Objet → donnée de l'environnement● Agent autonome → action et pro-action

Exemple filtre : proactions !

Page 64: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Encapsulation & liberté d'action

● Un agent agit comme il veut (peut!)● Un agent fait ce qu'il veut sur ses variables

internes

… mais pas sur les variables d'environnement

… ni sur les variables des autres agents

Page 65: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Autonomie d'interaction● Envoi de message → réponse

La réponse peut prendre n'importe quelle valeur !● Exemple

public class Autonome extends Thread {  private Autonome peer; /* set by env */  private int x = 0, i = 0;  public void run() {    while(true) { i++;

    if (i%100==0) x++;    if (i==500) println(peer.getX());    if (i==1000)  i = 0;

    }  }  public int getX() {

if (i%2==0) return x/2;else return x;

  }}

Agent

Du point de vue d'un agent, la réponse du ”pair” est imprévisible.Le ”pair” est autonome...

Page 66: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Coopération● SMA coopératif vs compétitif

– Les agents partagent des buts● De manière explicite (buts communs)● De manière implicite (tâches convergentes)

≠ ils participent tous de la même activité globale → toujours vrai dans un SMA

– Les ressources sont :● Soit suffisantes● Soit partagées équitablement

– Les agents sont honnêtes (non-byzantins)● Normes à respecter● Environnement ou agent censeur

– Les agents peuvent aider les autres agents

Page 67: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Coopération (2)● Exemples de SMA compétitifs

– SMA d'enchères (très souvent)● Protocoles d'enchères gérant la compétition

– Simulation (souvent)● Marché du travail● Trafic (réel)

● Exemples de SMA coopératifs– Simulation de transports autonomes

● Tous les agents s'aident

Page 68: Introduction Aux Systèmes multi-agentspagesperso.litislab.fr/~jsaunier/sma/SMA-2013-intro.pdf · 2015-09-15 · représentations des désirs et des objectifs de l'usager. [P. Maes,

Agent rationnel

● Rationnel = modèle orienté but– But explicite → construction de plans– Planification multi-agents– Sélection de plans– ex : modèle BDI