Systèmes Multi-Agents (SMA)

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
Ma surprise du Zoo.
[number 1-100].
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Vocabulaire 6.2 Français II Bon voyage ! 1.
Licence pro MPCQ : Cours
Distance inter-locuteur
Karima Boudaoud, Charles McCathieNevile
passé composé 1 il a fin… son livre itéu i is 1 il a fini.
Classe : …………… Nom : …………………………………… Date : ………………..
Les numéros
Mercredi – le 13 janvier 1) Quest-ce que cest, le français? 2) ______________________________________ Cest la langue de la France et de tous les pays rouges.
Les identités remarquables
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Sirop de Liège « industriel »
Objectif de la séance Concevoir et programmer un système multi-agent pour simuler un phénomène (simple) Accent sur la démarche plutôt que sur le problème.
Algorithme et structure de données
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
1 7 Langues niveaux débutant à avancé. 2 Allemand.
ORTH 1 CE2 Je sais écrire sans erreur les pluriels des noms se terminant par s, x, z.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
Niveau 6ème Calcul mental Exercices Vrai / Faux Q. C. M.
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Synchronisation et communication entre processus
1 Choisir une catégorie. Vous recevrez la réponse, vous devez donner la question. Cliquez pour commencer.
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
PM18 MONTAGE DU BLINDAGE AUTOUR DE LA QRL F. DELSAUX - 25 JAN 2005
Le Concours de Conaissance Francais I novembre 2012.
Titre : Implémentation des éléments finis sous Matlab
Tableaux de distributions
Tableaux de distributions
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
VOC 1 CE2 Je sais utiliser des mots de la vie quotidienne.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
1 INETOP
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Programmation concurrente
1 10 pt 15 pt 20 pt 25 pt 5 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Les fonctions.
Chapitre 9 Les sous-programmes.
Titre : Implémentation des éléments finis en Matlab
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Les Nombres 0 – 100 en français.
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
Copyright 2011 – Les Chiffres Copyright 2011 –
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Vocabulaire 7.1 Français II Bon voyage ! 1.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Nom:____________ Prénom: ___________
LES PILES ET FILES.
Exercice de vérification 1 p
Commission paritaire de suivi des opérations de reclassement repositionnement dans le cadre du droit d’option Statistiques novembre 2010.
Les Chiffres Prêts?
Les parties du corps By Haru Mehra Le Frehindi 1Haru Mehra, DELF, DALF,CFP.
Transcription de la présentation:

Systèmes Multi-Agents (SMA) Zahia Guessoum Zahia.Guessoum@lip6.fr www-desir.lip6.fr/~guessoum/M1P8

Organisation du cours COURS LE 31? 10hr de cours 10/10, 24/10, 21/11 et 28/11 8hr/groupe de TD 7/11, 14/11, 5/12 et 12/12 4hr présentation de projets Janvier Un examen d’une heure ou une heure 30 Total/étudiant : 10 + 8 + 4 + 1 Total cours : 10 + 2x8 + 4 +1

Plan Outils de Simulation Exemple : Netlogo Langages à objets : des objets actifs aux agents Exemple 1 : la plate-forme DIMA D’autres langages et outils Jade Jason

Netlogo

Netlogo Des termites assemblent des morceaux de bois et les empilent. Les termites suivent un ensemble de règles simples individuelles et locales  Règle 1 : Si je rencontre un morceau de bois, je prend le morceau et continue mon chemin. Règle 2 : Quand je porte un morceau de bois et que je rencontre un autre morceau de bois par terre, je cherche un coin vide et je dépose mon morceau de bois. Avec ces règles, finalement, les regroupements de bois, se transforment en piles..

Netlogo Environnement de développement multi-agents réactifs, pour l'étude de systèmes complexes  On peut gérer des centaines (voire des milliers) d'agents qui opère en même temps dans un environnement  Ecrit en Java Très facile à utiliser  Interface conviviale.. Tourne sur toutes les machines (Windows, Mac OS,Linux) Des tutoriaux complets et très faciles à lire

Netlogo Un système dans Netlogo est composé de deux types d’agents : Patches : constitue des "zones", des portions de l'environnement Tortues : créatures qui peuvent se déplacer et agir dans cet environnement

Netlogo Initialisation de l’environnement et interface graphique Commandes Comportements Trois bons tutoriaux (à voir en TD/TP)

Netlogo : le langage Les procédures : to setup end clear-all create-turtles 100 ask turtles [ setxy random-xcor random-ycor ] end Let's look at what you typed in and see what each line of your procedure does:to setup begins defining a procedure named "setup".clear-all resets the world to an initial, empty state. All the patches turn black and any turtles you might have created disappear. Basically, it wipes the slate clean for a new model run.create-turtles 100 creates 100 turtles. They start out standing at the origin, that is, the center of patch 0,0.ask turtles [ ... ] tells each turtle to run, independently, the commands inside the brackets. (Every command in NetLogo is run by some agent. ask is a command too. Here, the observer is running the ask command itself, in turn causing the turtles to run commands.)setxy random-xcor random-ycor is a command using "reporters". A reporter, as opposed to a command, reports a result. First each turtle runs the reporter random-xcor which will report a random number from the allowable range of turtle coordinates along the X axis. Then each turtle runs the reporter random-ycor, same for the Y axis. Finally each turtle runs the setxy command with those two numbers as inputs. That makes the turtle move to the point with those coordinates.end completes the definition of the "setup" procedure.

Netlogo : le langage Ants patches-own [ chemical ;; amount of chemical on this patch food ;; amount of food on this patch (0, 1, or 2) nest? ;; true on nest patches, false elsewhere nest-scent ;; number that is higher closer to the nest food-source-number ;; number (1, 2, or 3) to identify the food sources ]

Netlogo : le langage Ants to setup set-default-shape turtles "bug" crt population [ set size 2 set color red ] ;; red = not carrying food setup-patches do-plotting end

Netlogo : le langage Ants to setup-patches ask patches [ setup-nest setup-food recolor-patch ] End …

Netlogo : le langage to go ;; forever button ask turtles [ if who >= ticks [ stop ] ;; delay initial departure ifelse color = red [ look-for-food ] [ return-to-nest nest wiggle fd 1 ] diffuse chemical (diffusion-rate / 100) ask patches [ set chemical chemical * (100 - evaporation-rate) / 100 recolor-patch ] tick do-plotting end

Netlogo : les procédures/fonctions To draw-polygon [ num-sides size ] pen-down repeat num-sides [fd size rt (360 / num-sides) ] end Fonctions (retournent une valeur) to-report absolute-value [ number ] ifelse number >= 0 [ report number ] [ report 0 - number ]

Netlogo : quelques primitives Définition de variables globales globals [ max-energy ] Définition de variables locales (tortues/patches turtles-own [energy speed]! Set : Affectation de variables set energy 34 set color-of turtle 5 red

Netlogo : quelques primitives Ask : Demande à un ensemble de faire quelque chose ask turtles [ set color white setxy random-xcor random-ycor ] ask patch 2 3 [ set pcolor green ] ] Create-turtle : Crée un ensemble n de tortues Create-turtle n [ set size 1.5 ;; easier to see! set energy random (2 * max-energy) setxy random-xcor random-ycor

Netlogo : quelques primitives Un sous ensemble d'entités (patches ou tortues) turtles with [color = red ] patches with [pxcor > 0] turtles in-radius 3 aux éléments duquel on peut demander quelque chose ask turtles with [color = red] [bouge 30]

Netlogo : structures de contrôle If : Deux formes: if et ifelse if <condition> [<instructions>] ifelse <condition> [<instructions-then>] [<instructions-else>] Repeat : Pour répéter une instruction repeat <nombre> [<instructions>]

Netlogo : U peu de géométrie On peut dessiner des figures à partir du comportements des tortues Pour avancer: fd <n> Pour se diriger vers la droite (gauche): rt <n> (ou lt <n>) ;; tourne d'un angle de n (en degrés) vers la droite (ou la gauche)

Netlogo : Un peu de géométrie On peut dessiner des figures à partir du comportements des tortues Pour avancer: fd <n> Pour se diriger vers la droite (gauche): rt <n> (ou lt <n>) ;; tourne d'un angle de n (en degrés) vers la droite (ou la gauche)

Netlogo : Un peu de géométrie Exemples de Figures To carre [n] repeat 4 [fd n rt 90] End To cercle-carres [n] repeat 9 [carre n rt 30] end

Des objets aux objets actifs Objet actif = objet + thread Un programme : plusieurs atvités concurrentes Sur des machines multi-processeurs, Sur des machines distribués, Pour modéliser des systèmes complexes, …

Objets et Agents

Les langages de programmation d’agents Objets actifs Entités proactives Agent 0 Jason …

Des objets aux objets actifs Envoi de messages synchrones objet1 method1 objet2 method2 objet2 method2

Des objets aux objets actifs Envoi de messages asynchrones objet1 objet2 objet2 method2

Des objets aux objets actifs Envoi de messages asynchrones MailBox Quand un message est reçu, il est stocké dans un mail box Processus (activité) retirer les messages du mail box

Objets actifs (Actalk)

ActiveObject ... Default classes ... body [true]whileTrue: ActivityClass exemple de probleme : pré-emption voir les sous-classes ou insérer Processor yield body [true]whileTrue: [self acceptNextMessage. Processor yield]

Actalk Trois classes (…et hiérarchies de classes) à connaître Activity process Address mailBox ActiveObject

Activity ... Address : doesNotUnderstand: aMessage ^self receiveMessage: aMessage Activity : body [true]whileTrue: [self acceptNextMessage] createProcess ^[self body] newProcess

ActiveObject ... Sous classer ActiveObject pour définir des comportements ActiveObject subclass: #ActivePredator Utiliser la méthode « active » pour créer des objets actifs aPredator := ActivePredator new active

ActiveObject ... défault classes ... ActivityAddress différents types de messages synchrones & asynchrones

ActiveObject ... Utiliser le framework Définir le comportement objet Sous classer ActiveObject (simple classe)  Utiliser le framework MailBox Activity ActiveObject

Les langages de programmation d’agents Objets actifs Entités proactives Agent 0 Jason …

Les langages de programmation d’agents Objets actifs Malgré leur apparence de sujets communiquant, les objets actifs ne savent pas réfléchir sur leur comportement, sur les liens qu'ils entretiennent avec d'autres objets...(Ferber 89). Des objets actifs aux entités proactives Un agent a un but Et son comportement est dirigé vers ce but

Les langages de programmation d’agents Les entités proactives Des objets actifs aux entités proactives Un agent a un but Et son comportement est dirigé vers ce but Principales propriétés d’un agent Un agent est autonome Un agent est pro-actif

Les langages de programmation d’agents Les entités proactives Proactive Component public void startUp() { this.proactivityInitialize(); this.proactivityLoop(); this.proactivityTerminate(); } public void proactivityLoop() { while(this.isActive()) && (this.isAlive()) { this.preActivity(); this.step(); this.postActivity(); }}

Les langages de programmation d’agents Les entités proactives Deux principales méthodes abstraites : public abstract void step(); public abstract Boulean isActive();

Les langages de programmation d’agents Les entités proactives Le framework

Les langages de programmation d’agents Les entités proactives Le framework des proactive components est le noyau de la plate-forme DIMA DIMA fournit plusieurs bibliothèques et frameworks pour faciliter le développement des agents et SMA

Les langages de programmation d’agents Objets actifs Entités proactives Agent 0 Jason …

Agent 0 Agent 0 (Shoham, 1993) Caractéristiques de Agent 0 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 AGENT-0 a trois composantes : Les concepts de base sont : un système logique pour définir les états mentaux de l'agent un langage de programmation pour programmer les agents un processus "agentification", pour compiler les programmes agents en un système exécutable (bas-niveau). Les concepts de base sont : Les Actions provoquant des faits déterminés 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 AGENT-0

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 AGENT-0, d'un ensemble de plan ou plus simplement d'une façon procédurale. L'intérêt de LALO par rapport à AGENT-0 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