TP3 - a remettre le 23 mars avant 17h00.
Vu la complexite apparente de Jade, j'ai decide de vous faire faire un TP3 qui servira de base a la competition de fin de cours.
Il s'agit de concevoir deux sortes d'agents: des Grossistes et des Restaurants. Chaque jour les Restaurants doivent s'approvisionner en achetant 10 caisses de viande, 10 caisses de fruits et 10 caisses de legumes au meilleur prix possible.
Les Grossistes fournissent un seul type de produit qu'ils achetent au debut de la journee a $10/caisse. Les Restaurants peuvent acheter directement des Coop et des Abattoirs; mais ca leur coutent $30/caisse. La competition portera sur la performance economique des Grossistes et des Restaurants
Pour le TP3, il s'agit de debuter avec des interactions simples entre des agents de votre conception puis de progresser vers des interactions plus generales entre vos agents et ceux des autres participants. On vous demande de realiser les trois etapes suivantes. Pour le TP3 vous utilisez votre propre plateforme ET PAS VELES.
Faire un Restaurant et un Grossiste avec des noms connus (y compris vos initiales), pe: JV_Resto & JV_Metro. Avec des messages comme query-ref et inform, le restaurant contacte le grossiste, qui lui dit ce qu'il vend: produit, categorie, prix. Le resto passe une commande avec "request" sur produit et quantite et recoit un "agree". Dans ce cas le "content" des messages est du texte:
query-ref: "catalogue" inform: categorie,produit,prix ex: legume,carottes,11.50 request: "buy",produit,#caisses,prix ex: "buy",carottes,5,11.50 agree:Les classes seront "Resto1.java" et "Metro1.java" avec language "UM_Resto1"
Les choses se corsent. On vous demande d'employer le DF pour decouvrir les grossistes et de faire une premiere experience de marchandage. Pour cela vous allez traiter l'approvisionnement pour UNE SEULE categorie de nourriture, disons la Viande. Pour qu'il y aie un marche, ca prend plusieurs vendeurs et plusieurs acheteurs, donc vous devez prevoir 2 Grossistes (de Viande) et 2 Restaurants (les classes seront Viande2.java et Resto2.java). Ces agents parlent "UM_Resto2".
Vous devez aussi prevoir un agent Controlleur qui INFORM tous les participants du DEBUT et de la FIN de la journee apres un intervalle approprie (p.e. 1 minute).
Arrangez vous pour qu'il y aie du marchandage entre votre acheteur et ses fournisseurs. L'acheteur pouvant proposer d'acheter a un prix moindre que celui initiallement offert. Ceci devrait apparaitre dans vos traces [ A vous de trouver un juste equilibre dans le volume d'information imprimee ].
Une fois le message de FIN de journee recu, le Resto doit completer ses achats (au gros prix directement des Producteurs) et imprimer un mini rapport de ses depenses. Les grossistes font aussi leur bilan puis tous les agents quittent le systeme.
- Ontologie des objets - Forme des questions - Protocoles - Deroulement de la competition & criteres d'evaluation
Pour la partie 3, expediez a gift6802. Pour les parties 1 et 2, utilisez "remise":
% remise ift6802 tp3
Le cadre d'execution pour les agents des parties 1 et 2 sera UN seul programme (main container) sur la machine locale ET pas de PACKAGE. La commande pourrait etre:
%java jade.Boot JV_Resto:resto1 JV_Metro:metro1
En tous cas, il est recommande d'avoir un fichier README avec des exemples des commande a faire qu'on peut essayer avec un simple COUPER/COLLER.
Note2: Vous devez prevoir des traces (ou une interface) qui demontrent le fonctionnement correcte de vos agents
PS: ce TP est inspire du Assignment #2 de D. Grimshaw (Ryerson). Voir: http://www.ryerson.ca/~dgrimsha/courses/cps720_02/assignments/ cps720a2_02.html