Simulation de Offre/Demande avec Jade, Projet de Systèmes Multi-Agents, Agents Mobiles, 3A GL, ENSIAS
Réalisé par :
Younes KASRI, Badr Eddine BAHOUM,
3ème année Génie Logiciel,
ENSIAS Promo 2019
A l’intention de :
Prof. A EL FAKER, UM5, ENSIAS
Mot clés :
Java, JADE, agent, distributed systems
Afin d’appliquer les méthodologies et les notions enseignées dans le cours Systèmes Multi-Agents, Agents Mobiles, lors de notre 3ème année Génie Logiciel à l’ENSIAS, nous avons été chargé de réaliser une application de simulation Offre/Demande à l’aide du Framework Jade.
Il s’agit de développer une application de simulation de l’offre et de la demande en Jade. Cette
application multi-agents met en jeu :
Le producteur fixe un prix et le communique aux consommateurs.
Les consommateurs ont chacun sa propre demande concernant la quantité du produit qu’ils veulent acheter
à ce prix.
Ils le disent au producteur qui calcule ensuite son bénéfice en se basant sur la quantité totale vendue (q), le prix unitaire (p) et le coût unitaire de production (c) qu’on suppose indépendant de q :Benefice = (p-c)*q
Pour simplifier on peut supposer que la demande est linéaire c’est-à-dire que :q = m*p
où la pente m = -Qmax/Pmax
avec
Pmax
le prix maximum que le consommateur est prêt à payerQmax
la valeur de la « gourmandise » c’est-à-dire le montant que leNous présentons dans cette partie, la méthodologie suivie pour réaliser le projet :
Les données échangées dans cet environnement sont :
Les agents qui participent à cette activité sont :
message ACL
avec le performatif INFORM contenant les détails du Produit (instance de Product sérialisée
).reply
avec le performatif REQUEST contenant les détails de la Commande (instance de Order sérialisée
).Une plateforme regroupe un ensemble de conteneurs actifs d’agents.
Chaque conteneur est en fait une instance de la JRE.
Le conteneur principal contient des agents spéciaux. Il doit être toujours actif.
Les conteneurs contiennent des agents qui échangent des messages entre agents locaux, ou avec des agents distant à travers le réseau.
La consommateur détermine la quantitée à calculer à l’aide d’une fonction linéaire q = m*p
où la pente m = -Qmax/Pmax
C’est à l’Agent Consommateur de déterminer Qmax et Pmax :
MAX_BUDGET
. Qmax est alors calculée selon la relation suivante : MAX_BUDGET*(1-RAND)/PrixProduit
avec RAND
une variable aléatoire suivant une Loi Normale Réduite centrée sur 1/2 çàd que la valeur de la variable est comprise entre 0 et 1
prixProduit*(1+augmentation)
avec augmentation un nombre aléatoire entre 0 et 50%
Nous remarquons que l’Agent Producteur crée les Agents Consommateurs sont crées dans le même conteneur où il réside.
En utilisant l’Agent Sniffer ont remarque que les messages sont échangés conformément à ce qui a été définit.
Au terme de ce projet, nous sommes parvenus à réaliser un système multi-agents pour une simulation de l’Offre et la Demande. Nous avons effectué le monitoring de ce système à l’aide des outils offerts par Jade. Nous prévoyons d’améliorer notre système en y ajoutant la migration d’agents mobiles, et une simulation plus réaliste du Marché.