Programmation orientée agents #1. v 1.3. M1 S2 - Université de Montpellier II"



Documents pareils
SEANCE 2 : éléments de programmation

La Programmation Orientée Agent Les Agents Réactifs

Master IAC Philippe Caillou DÉVELOPPEMENT DE SMA. Cours 1b

Modélisation multi-agents - Agents réactifs

Complexité et auto-organisation chez les insectes sociaux. Complexité et auto-organisation chez les insectes sociaux

Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Systèmes Multi-Agents : Modélisation et simulation informatique de comportements collectifs. Chapitre III

La programmation en première année basée sur l enrichissement progressif de micromondes multi-agents

Évaluation et implémentation des langages

Segmentation d'images à l'aide d'agents sociaux : applications GPU

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

L apprentissage automatique

BABEL LEXIS : UN SYSTÈME ÉVOLUTIF PERMETTANT LA CRÉATION, LE STOCKAGE ET LA CONSULTATION D OBJETS HYPERMÉDIAS

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

Etude de la simulation de systèmes multiagents pour la conception vivante d agents dans la méthode ADELFE

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Algorithme des fourmis appliqué à la détection et au suivi de contours dans une image

Tivoli Endpoint Manager Introduction IBM Corporation

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Traduction des Langages : Le Compilateur Micro Java

TP1. Outils Java Eléments de correction

COR-E : un modèle pour la simulation d agents affectifs fondé sur la théorie COR

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Consigne : je remplis le tableau en tenant compte des informations de la ligne supérieure et de la colonne de gauche (droite pour les gauchers)

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

Chapitre 1 : Introduction aux bases de données

Un ordinateur, c est quoi?

Tux Paint. 1. Informations générales sur le logiciel. Auteur : Bill Kendrick et l équipe de développement de New Breed Software

Annexe : La Programmation Informatique

Le génie logiciel. maintenance de logiciels.

Automatisation de l administration système avec

Nouveautés Ignition v7.7

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Logitech Tablet Keyboard for Windows 8, Windows RT and Android 3.0+ Setup Guide Guide d installation

LES SOLUTIONS OPEN SOURCE RED HAT

Architecture distribuée

AOLbox. Partage de disque dur Guide d utilisation. Partage de disque dur Guide d utilisation 1

Plan du cours. Historique du langage Nouveautés de Java 7

Programme scientifique Majeure INTELLIGENCE NUMERIQUE. Mentions Image et Réalité Virtuelle Intelligence Artificielle et Robotique

Service des stages et du placement - secteur placement ANNEE 2013 TITRES DE POSTES OFFERTS AUX DIPLOMES DE GENIE INFORMATIQUE

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Initiation à JAVA et à la programmation objet.

Développement Logiciel

Brève introduction à la recherche d!information sur le Web à base d!agents logiciels

MSP Center Plus. Vue du Produit

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Cours 1 : La compilation

A QUOI SERVENT LES BASES DE DONNÉES?

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Nouvelles stratégies et technologies de sauvegarde

Chapitre I Notions de base et outils de travail

TP1 : Initiation à l algorithmique (1 séance)

L informatique en BCPST

Symantec Endpoint Protection Fiche technique

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Importer un CD audio dans itunes

Programmation de services en téléphonie sur IP

L OUTIL NUMERIQUE CARACTERISTIQUES ET FONCTIONNALITES

Logiciel Libre Cours 3 Fondements: Génie Logiciel

modélisation solide et dessin technique

Université de Bangui. Modélisons en UML

Création de jeu vidéo

Préparation à l examen EFA en Macro

Logiciel Libre Cours 2 Fondements: Programmation

Manuel logiciel client Java

Génie Logiciel avec Ada. 4 février 2013

Développer une stratégie SIG Entreprise efficace avec ESRI et ArcGIS

Conception et contrôle des SMA tolérants aux fautes

Architectures informatiques dans les nuages

Panorama des études à travers les filières. FEEL du 23 octobre 2014

LIVRET DE facebook.com/asmadigames

Techniques d interaction dans la visualisation de l information Séminaire DIVA

A. Sécuriser les informations sensibles contre la disparition

Atelier Jerry au - - TOGO JERRY DO IT TOGETHER

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Environnement logiciel open source pour la création d œuvres artistiques interactives

OCL - Object Constraint Language

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Implantation des protocoles de communication FIPA dans la plate-forme GAMA

Introduction au Génie Logiciel

Christophe Le Page CIRAD - UPR Green

La programmation orientée objet et le langage C++

CAHIER DES CHARGES D IMPLANTATION

TITRE DE L ACTIVITÉ : Vivre en groupe chez les animaux. DISCIPLINES ET DOMAINES D ACTIVITÉ de la discipline

Cours Informatique 1. Monsieur SADOUNI Salheddine

Formation Cloudera Data Analyst Utiliser Pig, Hive et Impala avec Hadoop

Scratch : programmation objet facile pour tous

Guide de l utilisateur

Grégory Bressolles L E-MARKETING

Langage Java. Classe de première SI

A. À propos des annuaires

Rappel sur les bases de données

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Bases de données - Modèle relationnel

Transcription:

Programmation orientée agents #1 v 1.3 M1 S2 - Université de Montpellier II" FMIN207 spécialité Imagina (Aigle) Jacques Ferber www.lirmm.fr/~ferber Oct 2013 Resp du module: J. Ferber Jacques Ferber Module de programmation orientée agent 1

Prolégomènes" u La programmation utilise des techniques et des concepts l On s'éloigne de plus en plus des machines: F De la programmation en langage machine jusqu'aux langages de scripts l On utilise des principes issus d'autres disciplines F Electronique: composants F Logique / mathématiques: fonctions (Lisp, Scheme, etc., C, Pascal), F Philo: programmation par objets Un objet est défini par ses attributs et les opérations qu'on peut faire sur lui. On crée une classification des types d'objets (héritage) u La programmation par agents utilise une métaphore sociale Jacques Ferber Module de programmation orientée agent 2

Des sociétés animales..." u Construire des programmes sous la forme d'entités autonomes en interactions l Métaphore des sociétés animales et humaines FOURMIS Abeilles Termites Jacques Ferber Module de programmation orientée agent 3

aux sociétés humaines" u Point commun l Existence d'individus l Ces individus interagissent (communication entre autre) dans un environnement l Ils coordonnent leurs actions et/ou entrent en conflit/ compétition l Il existe une organisation sociale fondée sur la notion de rôle (métier, statut, caste, poste, etc..) et de groupes (familles, nid, clans, tribus, sociétés, associations, bandes, etc..) l Ils produisent collectivement des structures (objets, sociétés, activités), qu'il n'auraient pas pu créer individuellement Jacques Ferber Module de programmation orientée agent 4

Les deux niveaux d'une société" Cultures, habitus, institutions, équipe, organisations Niveau collectif Pression sociale, imprégnation individuelle de la culture collective, contraintes des lois et normes. Constructions sociales, émergence de la culture et des institutions. Niveau individuel Jacques Ferber Module de programmation orientée agent 5

Les systèmes multi-agents" Representations Goals Perception Goal: B self world others Action Environment Communications u Un SMA est défini comme: l Un ensemble C d'entités plongées dans un environnement E (E est caractérisé par l'ensemble des états de l'environnement S) l Un ensemble A d'agents avec A C l Un système d'action (opérations) permettant à des agents d'agir dans E (une opération est une fonction de S -> S) l Un système de communication entre Agents (envoi de messages, diffusion de signaux, l Une organisation O structurant l'ensemble des agents et définissant les fonctions remplies par les agents (notion de rôle et éventuellement de groupes) l Eventuellement: une relation à des utilisateurs U qui agissent dans ce SMA via des agents interfaces U A Jacques Ferber Module de programmation orientée agent 6

Un agent" Un agent est une entité physique (hard) ou logicielle (soft) située dans un environnement (réel ou virtuel) qui est capable de: l agir dans son environnement l percevoir and partiellement se représenter* son environnement (et les autres), l communiquer avec d'autres agents, l mû par se tendances internes (buts, recherche de satisfaction, "drives"), l se conserver* et se reproduire*, l Jouer un (des) rôle dans une organisation, et qui présente un comportement autonome qui est la conséquence de ses perceptions, de ses représentations et de ses communications. Jacques Ferber Module de programmation orientée agent 7

Architecture générique d'agent" Système représentationnel (cognitif) Représentation Mémoire Raisonnement Perception Action Sélection d'action Fonction déontique Consommation Agent Système conatif Etat interne, drives, Tendances (désirs) Environment Système de communication perception -> délibération -> action Jacques Ferber Module de programmation orientée agent 8

Concepts fondamentaux" u Pas de centralisation l Autonomie l Localité l Contrôle distribué Contraintes sociales et culturelles Organisations, Structures et phénomènes sociaux Emergence/ Constitution d'organisations u Structures de coordination l Coopération / compétition u Emergence l Existence d'un niveau micro (le niveau agent) et d'un niveau macro (la société dans son ensemble) Jacques Ferber Module de programmation orientée agent 9

Propriétés générales" u Simplifie la programmation concurrente et distribuée l En plein essor dans les systèmes P2P l Redécouverte de la programmation par «acteurs» l Intergiciels objets intégrant les envois de messages asynchrones (J2EE) u Permet de programmer des applications complexes u Utilisée dans le domaine du software engineering l Ecriture de programmes complexes dans des architectures ouvertes l Productique, logistique, systèmes complexes ouverts (ex: Amazon.com) l Informatique orientée service u Mais aussi finalement peu considérée comme telle Jacques Ferber Module de programmation orientée agent 10

Usage" u Utilisée pour la création d effets spéciaux de films (effets de foule) u La robotique u Les jeux video (intelligence des caractères) u La simulation de systèmes complexe Zeno, robot jouet de Hanson Robotics Apprend, reconnaît, décide Jacques Ferber Module de programmation orientée agent 11

Notion de niveaux de cognition" u Agents "réactifs": l Qui ne disposent pas d'une représentation explicite de leur environnement F Actions situées F Ex: fourmis u Agents "cognitifs": l Qui ont une représentation de leur environnement, d'eux-mêmes et des autres agents et qui peuvent raisonner sur leurs représentations F Planification F Ex: êtres humains Jacques Ferber Module de programmation orientée agent 12

Exemple d'agent réactif" u Un garde dans un jeu l Tant que je ne vois rien, je suis mon chemin de garde l Si je vois un ennemi F S'il n'est pas menaçant et si je ne suis pas blessé, je l'attaque F S'il est menaçant ou si je suis blessé, je sonne l'alarme, et je m'éloigne Jacques Ferber Module de programmation orientée agent 13

Emergence: les termites" u Construction de tas de bois l Comme les termites lors de la construction de leur nid u Termites assemblent des morceaux de bois et les empilent. Les termites suivent un ensemble de règles simples individuelles et locales l Règles F Si je rencontre un morceau de bois, je prend le morceau et continue mon chemin. F 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. u Avec ces règles, finalement, les regroupements de bois, se transforment en piles.. Jacques Ferber Module de programmation orientée agent 14

NetLogo" u Environnement de développement multi-agents réactifs, pour l'étude de systèmes complexes l On peut gérer des centaines (voire des milliers) d'agents qui opère en même temps dans un environnement l Ecrit en Java u Très facile à utiliser l Interface conviviale.. l Tourne sur toutes les machines (Windows, Mac OS, Linux) Jacques Ferber Module de programmation orientée agent 15

Structure de NetLogo" u NetLogo est un monde 2D constitué de l Patches: constitue des "zones", des portions de l'environnement l Tortues : créatures qui peuvent se déplacer et agir dans cet environnement F Attention: NetLogo appelle "agent" à la fois les patches et les tortues, mais cela ne correspond pas à la vision multi-agents Vol en formation Vol en formation Jacques Ferber Module de programmation orientée agent 16

Interface graphique" u Très facile de rajouter des contrôle et des moniteurs et de les relier à des paramètres du modèle Jacques Ferber Module de programmation orientée agent 17

Deux types d entités" u Les tortues l Elles bougent et elles sont utilisés pour implémenter les agents d un SMA u Les patches l Se sont des parcelles de terrain. Elles ne bougent pas mais peuvent avoir un comportement Jacques Ferber Module de programmation orientée agent 18

Les procédures" u Syntaxe logo To draw-carre[taille] pen-down repeat 4 [fd size rt 90] end u Fonctions (retournent une valeur): to-report absolute-value [ number ] ifelse number >= 0 [ report number ] [ report 0 - number ] end Jacques Ferber Module de programmation orientée agent 19

Quelques primitives #1" u Global l Définition de variables globales globals [ max-energy ] u Définition d attributs (tortues/patches) turtles-own [energy speed] u Définition de variables locales: let <var> <val> Let r one-of turtles in-radius 5 u Set : Affectation de variables set energy 35 set color-of turtle 5 red Jacques Ferber Module de programmation orientée agent 20

Quelques primitives #2" u Ask l Demande à un ensemble d'entités (tortues et patches) de faire quelque chose ask turtles [ set color white setxy random-xcor random-ycor ] ask patch 2 3 [ set pcolor green ] u Create-turtle l Crée un ensemble n de tortues create-turtles n [ set color white set size 1.5 ;; easier to see set energy random (2 * max-energy) setxy random-xcor random-ycor ] Jacques Ferber Module de programmation orientée agent 21

NetLogo: structures de contrôle" u if l Deux formes: if et ifelse F if <condition> [<instructions>] F ifelse <condition> [<instructions-then>][<instructions-else>] u repeat l Pour répéter une instruction F repeat <nombre> [<instructions>] Jacques Ferber Module de programmation orientée agent 22

NetLogo: géométrie tortue" u On peut dessiner des figures à partir du comportements des tortues l Pour avancer: fd <n> l Pour se diriger vers la droite (gauche): F rt <n> (ou lt <n>) ;; tourne d'un angle de n (en degrés) vers la droite (ou la gauche) u Figures standard: To carre [n] repeat 4 [fd n rt 90] end To poly [c n] repeat c [fd n rt 360 / c ] end To cercle-carres [n] repeat 9 [carre n rt 30] end To spirale [n k a] repeat k [ fd n rt 360 / a set n n + 1 ] end Jacques Ferber Module de programmation orientée agent 23

AgentSets" u 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] Jacques Ferber Module de programmation orientée agent 24

Espèces (breed)" u On peut créer des espèces (breed) ou "races" de créatures breed[ wolves wolf ] u Crée automatiquement les procédures associées create-<breed> <breed>-own <breed>-here <breed>-at... Jacques Ferber Module de programmation orientée agent 25

Les listes" u Comprend un ensemble de primitives permettant de manipuler les listes à la mode «lisp» ou «scheme». u first, but-first, last, item u fput, lput, u length, empty?, member, u remove, remove-item, replace-item u list, sentence, sublist u sort Jacques Ferber Module de programmation orientée agent 26

Exemple: le tri par les termites" to setup clear-all set-default-shape turtles "bug" ;; randomly distribute wood chips ask patches [ if random-float 100 < density [ set pcolor yellow ] ] ;; randomly distribute termites create-turtles number [ set color white setxy random-xcor random-ycor set size 5 ;; easier to see ] Jacques Ferber Module de programmation orientée agent 27

Les termites" to go search-for-chip find-new-pile put-down-chip end to search-for-chip ifelse pcolor = yellow [ set pcolor black set color orange fd 20 ] [ wiggle search-for-chip ] end to find-new-pile if pcolor = yellow [ wiggle find-new-pile ] end to put-down-chip if pcolor = black [ st pcolor yellow set color white get-away ] [ rt random 360 fd 1 put-down-chip ] end Jacques Ferber Module de programmation orientée agent 28