61
pages
Français
Documents
Obtenez un accès à la bibliothèque pour le consulter en ligne En savoir plus
Découvre YouScribe et accède à tout notre catalogue !
Découvre YouScribe et accède à tout notre catalogue !
61
pages
Français
Documents
Obtenez un accès à la bibliothèque pour le consulter en ligne En savoir plus
Exercice
Définissez (au sens SMA) chacune des notions suivantes :
SMA ouvert
Environnement
Agent cognitif
Autonomie
Agent coopératif
Système Multi-Agent
Agent situé
Hétérogénéïté
Exécution synchrone
Agent rationnel
SMA faiblement couplé
À préparer pour le cours 2...Cours 2
Modélisation multi-agents
(première partie)
sans trop regarder les interactions...
Définition d'un agent
Modélisation d'un SMA
→ on décrit les données de l'environnement
→ on définit les actions sur l'envirent
(actions « exogènes »)
→ on définit les buts/rôles des agents
→ on définit les données et actions des agents
Attention : l'environnement est passif
Sinon, c'est lui-aussi un agent
→ on peut avoir un agent « environnement »
c'est l'environnement « logique »
→ ni vraiment un agent, ni vraiment un objet
→ tout un pan de la recherche sur E4MAS Running example
Le dîner des Philosophes (Dijkstra, 1971)
Environnement :
N couverts
État libre ou pris
Agents
2 couverts accessibles
État « faim »
Manger
Penser
But : penser
Modélisation de
l'environnement
Choix du type de processus → thread
Choix de la perception → active
Données
Soit N le nombre d'agents. i∈[1,N] désigne l'AID de l'agenti
∀i∈[1,N], soit f ∈[0,1]l'état du couvert à gauche de l'agentii
f =1ssi le couvert est libre (par défaut)i
Actions exogènes : prendre et lâcher couverts
Problème classique en Systèmes Répartis
Lâcher/prendre par couvert → risque d'interblocage !
ex : tous les agents prennent le couvert de gauche
puis sélectionnent les autres actions (qui échouent)
Lâcher et prendre par 2 uniquement
→ risque de famineModélisation de
l'environnement (2)
Actions exogènes
1 si f ∧fi i1mod N prendreiPrendre : [1,N] → [0,1] { }0 sinon
+ changements états couverts
Attention : agent i « prend » couvert j≠i
poseri f =1∧f =1Lâcher : [1,N] → void i i1mod N
Attention : agent i « pose » couvert j≠i
L'environnement ne régule pas tout !
→ hypothèse = fortement couplé
Fonction d'initialisation du SMA
cf. modèle agent
IHM → sortie standard
ère(un agent prévient la 1 fois qu'il pense)
Environnement :
implémentation
public static final int N = 10;
public static boolean [] libre = new boolean[N];
public static void poser(int i) {
libre[i] = libre[(i+1)%N] = true;
}
public static boolean prendre(int i) {
if (libre[i]&&libre[(i+1)%N]) {
libre[i] = libre[(i+1)%N] = false;
return true;
Agent } else { return false; }
public class Philosophe}
extends Thread {public static void main(String [] args) {
private int id; int i;
for(i=0;i<N;i++) {
public Philosophe(int i) { libre[i] = true;
id = i; (new Philosophe(i)).start();
} }
}
public void run() {Environnement
while(true) { … }
}
}Modélisation de l'agent
Choix du type d'agent → cognitif, orienté tâche
Etat Modélisation des données initial2Soit g ,d ∈[0,1] indiquant les croyances de l'agent ii i
g=1ssi le couvert de gauche est supposé occupé
fauxAttention : g ≠¬f (perception)i i
Soit ready ∈[0,1] indiquant si l'agent i tient les 2 couverts fauxi
Soit faim∈[0,1] indiquant si l'agent i a faim vraii
Modélisation des actions
Modèle STRIPS : (nom, Precondition, Effet)
voir aussi « interactions »
Modèle orienté tâche :
Précondition → nécessaire et suffisant pour
décider la sélection d'action Modélisation de l'agent (2)
Modélisation des actions
Manger P : faim∧readyi i
E :¬faimi
Penser P :¬faimi
E : faim et si c'est la première fois, l'écrirei
P :∅Regarder
E :g =¬f ∧d =¬fi i i i1mod N
P :¬ready∧¬g∧¬d ∧prendrei=true i i iPrendre
E :readyi
Poser P :readyi
E :¬ready∧poserii
Modélisation de l'agent (3)
Boucle procédurale → chaîne
(réseau de Petri)
regarder
poserprendre
faim
prepared
mangerpenser
Pas de puit !
Pas de source !
→ tout faire vs sélectionner aléatoirement