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