Mise en place d`un système de vente aux enchères
Transcription
Mise en place d`un système de vente aux enchères
Institut de la Francophonie pour l’Informatique RAPPORT DU PROJET SYSTEMES MULTI-AGENT Mise en place d’un système de vente aux enchères Réalisé par: Sous la supervision du: NGUYEN Van Tho LUACHENI Farida KASEREKA Selain KHONG Minh Than Dr. NGUYEN Manh Hung Hanoï, Février 2013 P age |2 TABLE DES MATIERES 1. INTRODUCTION .............................................................................................................. 3 2. ANALYSE ......................................................................................................................... 3 3. CONCEPTION ................................................................................................................... 8 3.1. Modèle d’agent ............................................................................................................ 8 3.2. Modèle de service ........................................................................................................ 9 3.3. Modèle d’accointance ................................................................................................ 10 1.1. Modèle de classe ........................................................................................................ 11 1.2. Protocole détaillé ....................................................................................................... 11 4. OUTILS UTILISES.......................................................................................................... 17 5. IMPLEMENTATION ...................................................................................................... 18 6. CONCLUSION ET PERSPECTIVES ............................................................................. 21 7. CODES SOURCE : .......................................................................................................... 22 8. REFERENCES ................................................................................................................. 22 P age |3 1. INTRODUCTION C’est dans le cadre du cours d’Intelligence artificielle et Système multi-agent que nous avons effectué ce travail qui a pour but de développer un système multiagents pour la vente aux enchères. Ce système va permettre d'automatiser les opérations commerciales aux acheteurs, en offrant une liste des produits en enchère afin de satisfaire aux besoins des clients. L’objectif essentiel est d'avoir un certain degré d'autonomie à l'aide de ces entités logicielles intelligentes ou agents qui sont des programmes auxquels on peut déléguer des tâches spécifiques. Nous devons souligner que ce système diffère du logiciel traditionnel grâce à ces entités autonomes qui négocient entre elles. Ce travail va donc ajouter l’automatisation et l'autonomie sur un site de vente aux enchères au niveau de la médiation entre vendeurs et acheteurs et de la négociation automatique des offres et des prix. Dans le cadre de ce travail nous considérons le type où l'ensemble des compétiteurs doivent soumettre leurs mises mais seul le participant ayant soumis la meilleure mise remporte l'enchère. Mais nous devons souligner qu’un temps fixe est défini par le vendeur pour chaque enchère et ce temps doit commencer à décroitre au début de l’enchère. Ce temps défini la durée de l’enchère. 2. ANALYSE Avant de passer à la conception du système, cette section va se consacrer à l’analyse. Ainsi ce point va présenter le modèle des rôles et le modèle des interactions . Enfin un schéma (figure 1.) illustrant l’architecture globale du système est présentée. 2.1. Le modèle de rôle: Dans ce modèle on va décrire le rôle de chaque agent dans notre système. Agent Main o Crée de nouvelles enchères et établie la liste des enchères existantes. o Crée un agent enchère lorsqu’une nouvelle enchère est ajoutée au système. o Vérifie si le produit choisi par l'agent acheteur existe o Il gère les enchères et met à jour la liste des produits. P age |4 Agent Seller Il propose et soumet un produit dans le système en décrivant toutes les informations qui le concerne, voici les informations spécifiques: o description du produit, o prix initial du produit, o temps de clôture de l'enchère (durée de vente), o date début, date fin. Son objectif est de d'obtenir le plus haut prix pour son produit avant l'écoulement du temps de l'enchère. Schéma : Seller Description : Vendre un produit avec un prix plus élevé Protocole : consultation, transaction Activité : Ajouter un produit dans le système en indiquant les informations qui le concerne (Description du produit, prix initial, pas de prix, date début et date fin de l'enchère). Fixe un prix initial pour le produit au départ Initialise le temps d'enchère (Timer). Permission : Consulter la liste des acheteurs qui ont soumis à l'offre du Vendeur Activité : Liveness : Vendre des produits Safeness : Le prix du produit vendu est préférable par le vendeur Tableau 1 : Modèle de rôle d'agent vendeur Agent Bidder Son objectif est de d'obtenir un produit avec un prix bas avant l'écoulement du temps de l'enchère. Schéma : Bidder Description : Les acheteurs achètent des produits avec un prix bas Protocole : Négociation, Consultation, transaction Activité : Consulte et examine le catalogue des produits Faire l'enchère sur le produit sélectionné Propose un prix supérieur que le prix actuel du produit Valide l'achat du produit P age |5 Permission : Consulter la liste des produits Activité : Liveness : Acheter des produits Safeness : Le prix du produit est préférable pour l'acheteur Tableau 2 : Modèle de rôle agent acheteur Agent Auction Schéma : Auction Description : Gère l'enchère et transmettre les messages pour le vendeur et l'acheteur Protocole : Consultation, transaction, négociation Activité : Initie l'enchère en annonçant un prix initial que le vendeur propose pour son produit et le délai de l'enchère (Timer) Vérifie si le produit choisi par l'acheteur correspond au produit soumis par le vendeur, en envoyant une requête au Main Agent qui va consulter la BD. Annonce une nouvelle proposition de prix supérieur au dernier prix Il diffuse à tous les acheteurs le nouveau montant actuel et a l’agent Seller. Compare les prix des participants, celui qui à soumis le prix le plus élevé, l'enchère est accordée à lui. Il choisit celui qui a soumis le pris le plus élevé avant l'écoulement du temps Il déclare le gagnant de l'enchère en envoyant un message pour l'acheteur et pour le vendeur après la fin de délai de l'enchère. Il informe les participants la terminaison de l'enchère Permission : Gère la liste des participants Activité : Liveness : - Il propose le produit, le prix initial et le temps de l'enchère pour l'acheteur Safeness : - Chercher le produit s'il est disponible. - Le prix que l'acheteur à soumis est supérieur au prix initial que le vendeur à proposé. - Clôture de l'enchère après l'écoulement du temps. - Quand l'enchère est terminée l'agent enchère correspondant est supprimé Tableau 3 : Modèle de rôle agent enchère 2.2. Le modèle de l'interaction Dans ce modèle on va montrer les interactions entre les différents agents existants dans notre système. Le système déploie trois protocoles principaux: Consultation : L'acheteur demande au Main Agent de lui donner la liste des produits qui conviennent avec ses préférences. P age |6 Transaction : Le vendeur envoi une demande au Main Agent d'ajouter un nouveau produit, dès que la nouvelle vente est ajoutée, le Main Agent crée l'agent enchère. Négocier : L'agent Auction met à jour le prix du produit chaque fois qu'un acheteur soumet un prix plus élevé par rapport au prix actuel et il diffuse le nouveau prix actuel aux acheteurs. 1. Consultation entre l'acheteur et Auction : Purpose : permet à l'acheteur de consulter le catalogue des produits disponibles en envoyant une requête au Main Agent Initiator : Bidder Responder : Auction Processing : Les acheteurs cherchent des produits qui répondent à leurs critères. Input : preferences Output : les informations concernant le produit Le prix initial du produit La date début et date fin de l'enchère Tableau 4. Interaction Bidder / Auction 2. Négociation entre l'acheteur et l'auction : Purpose : permet à l'acheteur de proposer un prix pour le produit avant l'écoulement du temps de l'enchère Initiator : Bidder Responder : Auction Input : Le produit sélectionné le prix du produit proposé par l'acheteur Date début et date fin de l'enchère Processing : Output : L'Auctioneer reçois l'offre que l'acheteur à soumet. L'acheteur connaît la date fin de l'enchère que le L'acheteur propose un prix supérieur du prix initial du vendeur à proposer produit avant le délai de l'enchère L'auctionnaire met à jour L'acheteur reçois la réponse du l'actionneur que c'est le prix du produit et lui le gagnant, s'il à soumis un prix élevé par rapport diffuse le nom de aux autres acheteurs et avant la fin de l'enchère l'acheteur et le prix actuel à tous les autres acheteurs. Tableau 5: Modèle de protocole négociation acheteur-Auctioneer P age |7 3. Transaction entre le vendeur et Auction Purpose : permet au vendeur de proposé et de déposer un produit Initiator : Seller Resonder : Main Agent Processing : L'Auctioneer envoie une requête au Main Agent pour stocker le produit et toutes les informations qui le concernant proposé par le vendeur dans la BD. le Main Agent crée un Auctioneer (Agent d'enchère). Après la fin de l'enchère l'auctioneer envoi un message informant le vendeur le gagnant de cette l'enchère et lui envoie le nom de l'acheteur et le prix pour son produit. Input : les informations concernant le produit Le prix initial du produit La date début et date fin de l’enchère Output : Transaction est faite Tableau 6. Modèle de protocole négociation Seller / Auction 4. Transaction entre Auction et Bidder: Purpose : permet a l'acheteur d'examiner les produits proposés par le vendeur. Initiator : Bidder Responder : Auction Input : Le produit électionné Processing : Output : L'auction met a jour le prix et il diffuse le prix actuel Transaction est faite et le nom de l'acheteur a tous les autres acheteurs. L'Auction envoie une requête au Main Agent pour stocker le produit choisi, le nom de l'acheteur et le prix proposé par ce dernier dans la BD. Après la fin de l'enchère l'Auction envoi un message informant le vendeur le gagnant de cette l'enchère. Tableau 7: Modèle de protocole transaction Bidder / Auction 5. Transaction entre Auction et Seller: Purpose : permet au vendeur de consulter la liste des Initiator : Seller Responder : Main Agent Processing : Le vendeur envoie une requête au Main Agent pour afficher la liste des acheteurs pour son produit. Le Main Agent lui renvoie la liste des acheteurs. Input : Le produit sélectionné Output : Transaction est faite Tableau 8 : Modèle de protocole transaction vendeur Main-Agent P age |8 Ci-dessous nous présentons l’architecture principale de notre système : Figure 1. Architecture globale du système 3. CONCEPTION Cette section va se consacrer à l’étape de la conception. Ainsi nous allons présenter le modèle d’agents, le modèle de service et le modèle d’accointance. 3.1. Modèle d’agent Le modèle d’agents de notre système se présente comme suit : Seller : joue le rôle de vendeur, le nombre est 1 à n Bidder : joue le rôle d’acheteur, le nombre est 1 à n Auction : joue le rôle de l’enchère, le nombre est 1à n Main : joue le rôle de l’agent principal Figure 2. Modèle d’agents P age |9 3.2. Modèle de service 1. Services sur le vendeur : Proposer un produit 2. Services sur le vendeur : Ajouter un produit Supprimer un produit 3. Services sur l’acheteur Chercher une enchère Participer à une enchère Mettre à jour la souscription Enregistrer la souscription 4. Services sur l’enchère Ajouter l’enchère Supprimer l’enchère Envoyer confirmation Dans les lignes qui suivent nous présentons la description de chaque service sur chaque agent : A. Le service sur le vendeur 1. Ajouter un produit - Input : Information sur le produit - Outputs : liste d’enchères - Pré-condition : - Post-condition : soumission du produit B. Le service sur l’acheteur 1. Rechercher une enchère - Input : préférences/ exigences de l’acheteur sur le produit - Outputs : Un produit satisfaisant la demande de l’acheteur - Pré-condition : recevoir une demande de l’acheteur - Post-condition : la liste des enchères disponibles P a g e | 10 2. Ajouter une souscription - Input : le prix le plus élevé sur l’enchère - Outputs : mise à jour de la liste des clients - Pré-condition : le prix doit être supérieur au prix de l’enchère - Post-condition : préférences/ exigences de l’acheteur sur le produit 3. Mettre à jour de la souscription - Input : le prix le plus élevé sur l’enchère - Outputs : mise à jour de la liste des clients - Pré-condition : recevoir les informations sur le prix le plus élevé sur l’enchère - Post-condition : le prix est supérieur au prix soumis par l’agent acheteur C. Le service sur l’enchère 1. Mettre à jour les informations sur l’enchère - Input : nouveau prix le plus élevé du produit - Outputs : Affichage nouveau prix le plus élevé du produit - Pré-condition : recevoir une demande de participation a l’enchère - Post-condition : présentation ancien prix du produit 2. Supprimer une enchère - Input : vérification durée de l’enchère - Outputs : clôture de l’enchère - Pré-condition : Durée de l’enchère épuisée - Post-condition : Enregistrement des dernières informations sur l’enchère 3.3. Modèle d’accointance Bidder Auction Seller Main Bidder -- Interaction -- Interaction Auction Interaction -- Interaction Interaction Seller -- Interaction -- Interaction Main Interaction Interaction Interaction -- Tableau 9. Modèle d’accointance P a g e | 11 1.1. Modèle de classe Figure 3. Modèle de classe 1.2. Protocole détaillé Comme défini un peu plus haut, nous avons 3 protocoles pour notre système : Transaction Dans cette phase, le vendeur propose un produit pour vente et Main Agent crée l’enchère avec ce produit. P a g e | 12 Figure 4. Protocole transaction Figure 5. Initialisation de la transaction P a g e | 13 Figure 6. Etape intermédiaire de la transaction Figure 7. Réponse a la transaction Consultation Le client demande au Main Agent de lui donner la liste des produits qui conviennent avec ses préférences. P a g e | 14 Figure 8. Protocole consultation Figure 9. Initialisation de la consultation P a g e | 15 Figure 10. Etape Intermédiaire pour la consultation Figure 11. Réponse de la consultation Négociation Le client change le dernier prix de la mise en mettant un prix élevé par rapport au prix trouvé. P a g e | 16 Figure 12. Protocole négociation Figure 13. Initialisation de la négociation P a g e | 17 Figure 14. Etape Intermédiaire de la négociation Figure 15. Réponse a la négociation 4. OUTILS UTILISES La mise en place concrète de ce logiciel demande l’utilisation d’une méthodologie, d’un langage de programmation et quelques outils. Pour l’analyse et conception, nous avons utilisé la méthodologie GAIA qui est fondée sur l'idée d'un système multi-agent comme une organisation de calcul comprenant des rôles déférents en interaction. P a g e | 18 Nous devons souligner que nous avons aussi utilisée JADE (Java Agent DEvelopment Framework) est une plate-forme en Java pour développer les systèmes multi-agents respectant le standard FIPA. 5. IMPLEMENTATION Cette section présente l'implémentation de notre système par des captures d'écran en précisant quelques fonctionnalités de base. La première capture ci-dessous présente les agents dans notre système: Agents dans le système Ajouter un nouveau produit et toutes les informations qui le concerne ( Nom produit, prix initial du produit, pas du produit, date début de l'enchère, délai d'expiration de l'enchère, description du produit). Ajouter un produit P a g e | 19 Le bidder peut consulter la liste des produits disponibles Liste des produits disponible Le bidder (acheteur) choisis un produit qui satisfait ses critères pour miser. Tout d'abord il sélectionne le produit, propose un nouveau prix (8) ensuite il valide l'enchère. Proposition d'un nouveau prix P a g e | 20 Si le bidder (acheteur) propose un prix inférieur à celui qui existe déjà alors un message d'erreurs est envoyé à lui pour qu'il puisse proposer un autre prix. P a g e | 21 Quand l'enchère est terminée celui le dernier bidder (acheteur) qui à soumis le prix le plus élevé par rapport aux prix qui existent déjà gagne l'enchère. Fin de l'enchère Si un bidder (acheteur) soumis un offre après l'expiration de l'enchère alors un message «enchère terminée» s'affiche comme dans la capture d'écran ci dessous 6. CONCLUSION ET PERSPECTIVES L’objectif de ce travail était de construire un système de vente aux enchères où les négociations se déroulent selon un protocole anglais en se basant sur des agents de la plate forme JADE. Soulignons que ces derniers ont permis de négocier (faire des propositions de prix) de manière automatique et de signaler au vendeur lorsque l'enchère est achevée. Nous osons croire que cet outil arrive à répondre aux exigences que nous nous sommes assignées au départ. Dans le projet, nous avons implémenté un système d'enchère en ligne. Ce que nous avons fait : Analyse Conception générale Conception détaillée Outils utilisés Implémentation et perspective Dans notre système, nous avons réussi à implémenter les fonctions principales du P a g e | 22 système : Pour les commissaire-priseurs (Auctioneer), ils peuvent: Ajouter un produit pour une enchère Afficher ses produits Connaître qui a gagné son enchère Pour les enchérisseurs, ils peuvent : Afficher les enchères Faire un enchère Connaître les informations sur les enchères qu'il fait Connaître le résultat de l'enchère Le système peut vérifier qu'un enchérisseur a fait un bon enchère ou non (le prix). Les participants sont notifiés automatiquement quand il y a des changements. Bien que l'architecture du système permette la gestion des utilisateurs et la bonne sécurité des enchères, nous n'avons pas assez de temps pour tout réaliser. Donc, ces fonctions sont considérées comme les travaux dans le futur. Une autre fonction que nous voulons faire, ce sont les tactiques pour faire l'enchère automatiquement. 7. CODES SOURCE : Le code source de notre projet peut être vu sur le lien ci-dessous : https://code.google.com/p/enchere-sma/ 8. REFERENCES [1] Giovanni Caire. JADE TUTORIAL JADE PROGRAMMING FOR BEGINNERS. TILAB, formerly CSELT, Decembre 2003. [2] David Kinny Michael Wooldridge, Nicholas R.Jennings. The Gaia Methodology for Agent-Oriented Analysis and Design. [3] http://jade.tilab.com/doc/tutorials/JADEProgramming-Tutorial-for-beginners.pdf [4] http://www.code.google.com/p/gama-platform