Développement d`un système multi-agents (SMA) pour l

Transcription

Développement d`un système multi-agents (SMA) pour l
Développement d’un système multi-agents (SMA) pour
l’optimisation du temps de déstockage dans un système
automatisé de stockage /déstockage
(Development of a Multi-Agent System (MAS) to optimize the retrieval time within an automated storage
/retrieval system)
(Full text in French)
1
Imen KOULOUGHLI1, Pierre CASTAGNA2, Zaki SARI1
Manufacturing Engineering Laboratory of Tlemcen (MELT), University of Tlemcen Algeria; 2Lunam University, IUT of Nantes, Nantes University,
IRCCyN UMR CNRS 6597 (Institute of the research in communication and cybernetic of Nantes)
Abstract
In this paper, we focus to retrieval the products in AS/RS (Automated Storage Retrieval System). The objective is to choose the
best product to be retrieved, in the shortest possible time. The system is seen as a multi-agent system (MAS), where the agents
can interact to achieve a behaviour (organizing the store and taking the best decision of retrieval). The proposed model will
be implemented to the multi-agent platform Jade (Java Agent Development Framework); it is based on three kinds of agents:
DF agent (Directory Facilitator), the product agent to retrieve and bin agent. The retrieval of products is generally based on a
specific retrieval rule; each rule is founded on one mathematic metric. The objective is to bring out communications between
different agents of our system to choose the best bin from where the product will be retrieved (the retrieval rule with the
minimal metric).
Keywords: Multi-Agent System, Jade, Retrieval, Communications, Retrieval time
Received: March, 18, 2016
1. Introduction
Un système automatisé de stockage/déstockage
(Automated Storage/Retrieval system, AS/RS) est
composé typiquement de racks de stockage, machines de
stockage et déstockage, convoyeurs et de stations
d’entrée/sortie où la machine de stockage/déstockage
peut charger et décharger des produits. Il existe plusieurs
types d’AS/RS tel que l’AS/RS à charge unitaire, à minicharge, et l’AS/RS à convoyeur gravitationnel. [1]
Plusieurs travaux ont été réalisés dans le cadre des
AS/RS ; De Koster et Le-Duc [2] ont estimé le temps de
cycle d’un déstockage par lots regroupant plusieurs
demandes de déstockage. Yugang et de Koster [3] ont
étudié la conception de racks 3D optimaux sous
différentes politiques de stockage. Le-Duc et al. [4], ont
optimisé un AS/RS tridimensionnel compact composé d'un
pont automatisé
prenant en considération les
mouvements dans le sens horizontal et dans le sens
vertical. Les auteurs dans [5] se sont intéressés à
l’optimisation des dimensions de l’AS/RS multi allées pour
différents cas possibles. Azzouz et al. [6] ont appliqué la
méthode de Branch and Bound pour optimiser les
dimensions d’un AS/RS à convoyeur gravitationnel. Dans
[7] l’auteur a fait une synthèse sur l’optimisation des
dimensions d’un AS/RS à convoyeur gravitationnel. Une
étude comparative entre l’AS/RS à convoyeur
gravitationnel a une seule machine et à charge unitaire a
été réalisée dans [8]. Gaouar [9] a étudié le stockage par
classe dans un AS/RS à convoyeur gravitationnel. Les
auteurs, dans [10], se sont intéressés aux AS/RS à
convoyeur gravitationnel, pour lesquels ils ont développé
une expression mathématique continue du temps de
cycle. Dans [11] les auteurs modélisent la coordination
des différentes parties collaboratives d’une chaîne
logistique en utilisant les modèles de coordination par
formation de coalitions proposés dans les SMA. Les auteurs
dans [12] proposent une plateforme basée sur l’émulation
du système opérant ; ainsi il est possible de représenter
des systèmes industriels complexes, d’échelle réaliste en
utilisant les multi agents. Muneendra Ojha [13] s’est
intéressé à l’optimisation de la gestion d’une chaine
d’approvisionnement en utilisant Gravitational Search
Algorithm (GSA) et les systèmes multi agents. Dans [14]
une plate-forme de simulation de gestion de production a
été développée afin de comparer différentes approches.
Le problème consiste en l’affectation de tâches à des
opérateurs sur des machines d’usinage de pièces, en
fonction d’un cahier de commandes. Cette approche va
mettre en action des agents qui vont coopérer pour
parvenir à trouver la meilleure solution possible au
scénario proposé et répondre à la dynamique de
l’environnement. L’auteur dans [15] a proposé un
protocole de coordination qui est un ensemble de classes
de comportements utilisables pour contrôler l’échange de
messages entre les agents dans le SMA étudié. Dans son
approche il a partagé les taches de coordination entre
l’agent coordinateur (AC) et les agents ressources (AR) ce
qui a donné à son application un aspect décentralisé.
Atalla F. Sayda, [16] traite les différents aspects de la
conception d'un système multi-agents pour gérer et
contrôler les installations industrielles. L’auteur dans [17]
traite la manière dont les SMA pourraient aider à la
gestion de la production, de la distribution et des stocks ;
en se basant sur l’approche DDP (Demand Driven
Production and Distribution) pour étudier comment les
SMA pourraient résoudre le problème de la centralisation
des décisions. Mansour et al. [18] présentent une solution
logicielle flexible pour contrôler les systèmes multi-agents
intelligents de production. Dans [19], l’intégration des
agents aux Systèmes Interactifs d’Aide à la Décision (SIAD)
a été proposée ; afin de résoudre certains problèmes
116
ELECTROTEHNICĂ, ELECTRONICĂ, AUTOMATICĂ (EEA), vol. 64 (2016), nr. 3
d’incertitude dans le système d’ordonnancement de la
production dynamique. Le système développé donne aux
centres de décision la possibilité pour prendre des
décisions dans un contexte dynamique. Plus précisément,
les Stations Intégrées de Production (SIP) seront équipées
d’un comportement suffisant pour exécuter des
opérations concrètes et réagir simultanément à la
complexité des problèmes causés par l’ordonnancement
dynamique dans des situations réelles. Ces agents
expriment leurs préférences en utilisant la méthode
ELECTRE III, afin de résoudre les différences. Le
mécanisme de négociation est basé sur le Protocole
Contract Net (CNP). Le protocole développé sur JADE
fournit des échanges de messages entre les agents et leur
propose des comportements prédéfinis. L’approche est
testée à travers des scénarii simples.
Une nouvelle approche a été proposée dans [20] ;
baptisée COSAH (COntainer Stacking via multi-Agent
approach and Heuristic method) qui permet de simuler,
résoudre et optimiser l’espace de stockage disponible
pour manier les départs et les arrivées des conteneurs
dans un port fluvial ou maritime. Dans cet article, nous
proposons une nouvelle technique dédiée au déstockage
automatisé de produits dans un rack ; celle-ci est fondée
sur les systèmes multi-agents dont les coordinations entre
les agents est la clé.
Dans un travail précédent et dans le but de limiter le
temps de déstockage; nous avions établi un modèle
baptisé SMASD (Système multi-agent de Stockage et de
Déstockage) dont le but était de choisir à chaque fois la
meilleure combinaison de règles de stockage et de
déstockage. Des simulations ont été faites sous le logiciel
Netlogo ; les agents de notre système étaient réactifs ; au
fur et à mesure ; nous constations l’importance des
communications entre les agents d’où l’intérêt de ce
nouveau travail.
2. Les outils de développement
Notre application est implémentée en utilisant le
langage JAVA, sous l’environnement de développement
NetBeans. Pour le système multi agents nous avons utilisé
la plateforme JADE.
fournit plusieurs outils tels qu’un éditeur de texte doté
d’un pré-compilateur avancé, un gestionnaire de projets,
ainsi que des outils de débogage et de test de
programmes. C’est un outil qui facilite énormément la
phase de développement et de tests.
2.3. La plateforme JADE (Java Agent Development
Framework)
JADE est une plate-forme de développement d’agents
gratuite et Open Source développée par CSELT (Centro
Studi e Laboratori Telecommunicazioni) et qui résulte
principalement des activités de recherche.
Le choix de cette plateforme a été fait pour les raisons
suivantes :
− JADE simplifie l’implémentation d’un SMA à travers
un Middleware répondant aux spécifications de la
FIPA (Foundation for Intelligent Physical Agents) une
librairie de classes que les utilisateurs peuvent utiliser
et étendre ainsi qu’un ensemble d’outils graphiques
qui permettent le débogage et l’administration du
SMA à concevoir.
− JADE assure une communication transparente par
l’échange de messages dans le langage normalisé
FIPA-ACL.
Dans notre programme nous avons utilisé les
comportements d’agents suivants :
− Cyclic Behaviour qui est une instance de la classe
jade.core.behaviours.CyclicBehaviour.Un
cyclic
Behaviour exécute sa tâche d'une manière répétitive.
La classe CyclicBehaviour implémente la méthode
donnée qui retourne toujours false.
− Parallel Behaviour pour qu’un agent puisse exécuter
plusieurs comportements à la fois.
3. Application
3.1. Architecture de notre système
L’application implémentée se compose d’un système
multi-agents et d’une interface de communication entre
le SMA et l’utilisateur (figure 1).
2.1. Le langage de programmation java
Le choix du langage JAVA a été fait pour les raisons
suivantes :
− Les agents développés sous la plate-forme JADE, sont
entièrement écrits en Java. Ce langage nous est donc
imposé par le choix de la plate-forme.
− Java assure une totale indépendance des applications
vis-à-vis de l’environnement d’exécution : c’est à dire
que toute machine supportant Java est en mesure
d’exécuter un programme sans aucune adaptation (ni
recompilation, ni paramétrage de variables
d’environnement)
− JAVA possède une bibliothèque immense d’objets
prêts à l’emploi, ce qui facilite pleinement la
procédure d’implémentation.
Figure 1. Architecture générale de notre application
3.2. Interface Java
Nous donnons un aperçu de l’interface graphique de
notre application (figure 2).
2.2. L’environnement de développement NetBeans
NetBeans est un EDI (Environnement de
Développement Intégré), un environnement libre et facile
à utiliser. Il supporte plusieurs langages de programmation
à savoir JAVA, C++, PHP, et bien d’autres langages. Il
Figure 2. Interface Java du SMA
ELECTROTEHNICĂ, ELECTRONICĂ, AUTOMATICĂ (EEA), vol. 64 (2016), nr. 3
A travers cette interface, l’utilisateur lance la
plateforme multi agents, contrôle le nombre
d’agents Casiers qui composent le rack et crée dès qu’il
le souhaite un agent Produit souhaitant être déstocké du
rack.
3.3. Le système multi agents
Notre SMA se compose de deux types d’agents : un
agent produit et plusieurs agents casiers.
Des agents de type « Casier » qui ont pour objectif de
proposer des offres aux agents produits qui souhaitent
être déstockés.
Un agent de type « Produit » qui a pour objectif d’être
déstocké du meilleur casier (le casier offrant la meilleure
métrique)
Le SMA fonctionne de la manière suivante :
L’Agent produit
Devra envoyer une requête contenant la couleur (le
type) du produit que nous souhaitons déstocker.
L’agent Casier
En supposant que le choix de la règle de déstockage a
déjà été effectué auparavant ; chaque casier propose une
valeur de la métrique choisie (suivant la règle de
déstockage).
L’agent produit devra par la suite consulter toutes les
propositions et choisir celle qui offre la valeur minimale
de la métrique de la règle de déstockage.
4. Déroulement des communications
Dans un premier temps, tous les agents casiers devront
enregistrer les services qu’ils offrent auprès de l’agent DF
qui existe par défaut dans Jade. La figure suivante (figure
3) est extraite à partir de l’outil « agent sniffer » de la
plateforme JADE.
117
L’agent produit envoie un message contenant la
couleur du produit à déstocker. La requête envoyée par
l’agent produit peut contenir n’importe quel type
d’informations ; elle peut par exemple contenir en plus de
la couleur du produit que nous souhaitons déstocker : la
quantité souhaitée … (figure 4)
Figure 4. Envoi de message sous Jade
La requête est envoyée à l’agent DF ; Ceci
déclenchera un appel de propositions pour tous les casiers
(des messages de type CFP : Call For Proposal). (Figure 5)
Par la suite, nous pourrons modifier le contenu du
message ; il pourra contenir d’autres informations sur le
produit souhaité ; tout dépendra du système étudié ; si
par exemple il s’agit d’un rack contenant des
médicaments la date de péremption aurait également son
importance dans le contenu du message.
Figure 3. Enregistrement de services auprès de l’agent DF
Ensuite, chaque minute, l’agent Produit tente de
chercher dans le service des pages jaunes DF, les agents
qui offrent le service de déstockage.
Recherche des services...
Liste des casiers trouvés :
====Casier [email protected]:1099/JADE
====Casier [email protected]:1099/JADE
[email protected]:1099/JADE
====Casier [email protected]:1099/JADE
====Casier [email protected]:1099/JADE
====Casier [email protected]:1099/JADE
Figure 5. Messages de type CFP (Call For Proposal)
Chacun des agents Casiers postera sa proposition (la
métrique qu’il propose) ; et à partir de ces propositions
l’agent produit choisira la meilleure (le meilleur casier
d’où il devra être déstocké) (figure 6).
118
ELECTROTEHNICĂ, ELECTRONICĂ, AUTOMATICĂ (EEA), vol. 64 (2016), nr. 3
Figure 6. Choix du meilleur casier et confirmation de la transaction
dans chaque casier ; les métriques seront choisies
aléatoirement dans un premier temps.
À la demande d’un agent « Organisateur », l’agent de
type « Produit » commence par récupérer le type de
produit à déstocker, passé comment argument au moment
du déploiement ; ensuite, chaque minute, il tente de
chercher dans le service des pages jaunes DF, les agents
qui offrent le service de déstockage de produits.
Ensuite, il envoie un message de type CFP (Call For
Proposal) à tous ces agents « Casiers », pour leur
demander de lui fournir la proposition de la métrique du
produit souhaité.
Si les propositions arrivent, il doit déterminer l’agent
qui offre la meilleure métrique. Ensuite il envoi un
message à cet agent pour finaliser le déstockage
(figure 8).
A partir de plusieurs messages reçus par l’agent
produit ; ce dernier choisira le meilleur agent avec qui il
procédera à une nouvelle communication (message de
confirmation).
Dans le cas réel, plusieurs produits peuvent être
déstockés simultanément ; dans notre application ceci
revient à envoyer plusieurs requêtes de déstockage.
5. Demandes simultanées de déstockage de produits
Dans le cas réel, il arrive que nous souhaitions
déstocker plusieurs produits à la fois.
Dans l’exemple qui suit, il y a eu envoi de trois
requêtes simultanées.
La première demandant un produit bleu ; la seconde
un produit orange et la troisième un produit rouge. En
supposant qu’à chaque couleur est associée un certain
type de produit (figure 7).
Figure 8. Communications intelligentes entre les agents pour
l’optimisation du rangement d’un rack
En utilisant la plateforme Multi-agents Jade ; nous
sommes parvenus à programmer des comportements
d’agents (Behaviours) qui peuvent se passer parallèlement
(figure 9); par parallèle nous comprenons qu'après avoir
invoqué la méthode action d'un sous-Behaviour, nous
pointons sur le suivant sans attendre que le premier
termine son exécution.
Figure 7. Demandes simultanées de destockage de produits
6. Résultats
À sa création, un agent Casier doit publier un service
dans les pages jaunes. Ce service concerne Le déstockage
de produits. Chaque agent « Casier » possède une
collection de type HashMap dont la clé représente la
couleur (le type) du produit et dont la valeur représente
la métrique de la règle de déstockage appliquée ; par
exemple si nous souhaitons déstocker un produit rouge et
que la métrique appliquée dans ce cas la représente le
temps de déstockage minimal de chaque produit rouge
Figure 9. Résultat de l’application
L'ajout de sous-Behaviour a été fait par la méthode
addSubBehaviour.
Plusieurs requêtes de déstockage de produits peuvent
être envoyées et traitées simultanément ce qui permet
d’optimiser le temps de déstockage d’une liste de
produits.
Ce travail a montré une parfaite collaboration entre
les différents agents pour atteindre le but final
(rangement du magasin).
ELECTROTEHNICĂ, ELECTRONICĂ, AUTOMATICĂ (EEA), vol. 64 (2016), nr. 3
Une certaine intelligence dans notre système résulte à
partir des communications entre nos différents agents.
Nous avons établi une application de base dans
l’objectif de choisir à chaque fois le meilleur produit à
déstocker après demande du client ; ceci a été réalisé en
tirant profit des avantages que peuvent offrir les SMA.
En utilisant la plateforme Jade les coordinations entre
les différents agents du système peuvent être
programmées ; à chaque type d’agent ont été affectés des
comportements bien spécifiques et bien étudiés.
Cette application peut être considérée comme une
référence de base que nous pourrions améliorer et
adapter au système étudié.
7. Conclusions
Dans cet article, nous avons conçu une application
multi-agents appliquée aux systèmes automatisés de
stockage et déstockage ; celle-ci peut être considérée
comme l’application de référence dont d’autres peuvent
s’inspirer et la modifier selon les besoins du système
étudié.
L’optimisation du temps de déstockage dans ce genre
de système a déjà été faite par d’autres auteurs ; ceci dit
ces derniers ont implémenté une heuristique pour
résoudre le problème (des règles de stockage et de
déstockage se basant sur des métriques mathématiques).
La nouveauté et l’originalité de ce travail réside dans
la considération du système comme étant un SMA .ce qui
a engendré des communications entre les différents
agents de notre système ; ces derniers partagent des
informations les concernant en se basant sur un langage
bien spécifique : ACL.L’envoi de plusieurs messages de
manière simultanée a été réalisé
en utilisant la
plateforme Jade ; à partir des comportements apportés
aux agents.
Ces collaborations entre les agents permettraient sans
aucun doute un gain de temps de déstockage très
important.
8. Acknowledgment
This work was financially supported by the Manufacturing
Engineering Laboratory of Tlemcen (Algeria); directed by the
professor Sari Zaki.
9. Références
[1] Hachemi K., Alla H., «Pilotage dynamique d’un système
automatisé
de
stockage/déstockage
à
convoyeur
gravitationnel». Journal Européen des Systèmes Automatisés,
Hermès, 2008, vol 42 , p 487-508.
[2] De Koster R., Le-Duc T., Roodbergen KJ., «Design and control of
warehouse order picking: a literature review». European Journal
of Operational Research, 2007, 182(2), p 481-501.
[3] Yugang Yu., De Koster M.B.M, «Designing an optimal turnoverbased storage rack for a 3D compact automated». International
journal of production research, 2009, 47(6), p 1551-1571.
[4] Le-Duc T.and De Koster R., «Travel time estimation and order
batching in a 2- block warehouse». Report, Erasmus Research
Institute of Management, RSM Erasmus University, the
Netherlands (in revision for the European Journal of Operational
Research), 2006.
[5] Kouloughli S. and Sari Z., «Multi-aisle AS/RS dimensions
optimization for cycle time minimization», International Journal
of Advanced Manufacturing Technology IJAMT, Vol 76, DOI
10.1007, ISSN 0268-3768, 2015.
[6] Azzouz A., Sari Z., Ghouali N., «La méthode Branch and Bound
appliquée à l’optimisation des dimensions d’un AS/RS à
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
119
convoyeur gravitationnel», Conférence internationale sur la
productique, Alger, 9-11 juin 2001.
Azzouz A., Sari Z., Ghouali N., «Une synthèse sur l’optimisation
des dimensions d’un AS/RS à convoyeur gravitationnel»,
Conférence internationale sur la conception et la production
intégrée, Fès, 24-26 octobre 2001.
Sari Z., Kouloughli S., «Modélisation des temps de cycle d’un
AS/RS à convoyeur gravitationnel à une seule machine S/R»,
Conférence Internationale de Modélisation et Simulation,
Hammamet Tunisie, 10-12 mai 2010.
Gaouar N., «Evaluation de la performance d’un stockage par
classes dans le contexte du stockage en AS/RS à convoyeurs
gravitationnels», Conférence Internationale de Modélisation et
Simulation, Hammamet Tunisie, 10-12 mai 2010.
Sari Z., Saygin C., Ghouali N., «Travel-time models for flow-rack
automated storage and retrieval systems», International journal
Advanced Manufacturing Technology, vol. 25, 2005, p 979-987.
Anane D., Pinson S., Aknine S., «Coordination d’Activités dans les
Chaînes Logistiques: une Approche Multi-Agents par Formation
de Coalitions», Revue des sciences et technologies de
l'information, Vol 14/2, 2009, p.113-136, Doi:10.3166.
Pannequin R., Thomas A., «Proposition d’une plateforme
d’expérimentation sur le contrôle par le produit des flux de
production», Conférence francophone de modélisation et de
simulation MOSIM’06, Rabat Maroc, 2006.
Ojha M, «Optimizing supply chain management using
gravitational search algorithm and multi agent system» Advances
in Intelligent and Soft Computing, vol. 1, (2012), pp. 481–491.
Clair G., «Gestion de production par système multi-agent autoorganisateur», Rapport de Master 2 Recherche Web Intelligence
(WI), Université Jean Monnet, 2008.
Reguieg S., «A Global Multi-agent Decision Support System
(GMDSS) for a manufacturing SME: Towards participating in Collaborative spunlace nonwovens Manufacturing», International
Conference on engineering of Industrial Safety and Environment
ICISE 2013, Oran.
Atalla F., «Multi-agent Systems for Industrial Applications:
Design, Development, and Challenges, Multi-Agent Systems Modeling, Control, Programming, Simulations and Applications»,
ISBN:
978-953-307-174-9,
InTech,
http://www.intechopen.com/books/multi-agentsystems, 2011.
Moyaux T., «Comment les SMA pourraient aider à la gestion de la
production, de la distribution et des stocks», Rapport d’un cours,
Université Laval, 2001.
Mansour W., Jelassi K., «Flexible Software solution for intelligent
multi-agent manufacturing systems» , international Conference
Electrical Sciences and Technologies in Maghreb (CISTEM) , 2014.
Taghezout N., Zaraté P., «Supporting a multicriterion decision
making and multi-agent negotiation in manufacturing systems».
Intelligent Decision Technologies, IOS Press, Vol. 3 No. 3, p. 139155, 2009.
Gazdar M., «Optimisation Heuristique Distribuée du Problème de
Stockage de Conteneurs dans un Port », Thèse de doctorat, école
centrale de Lille, 2008.
10. Biography
Imen KOULOUGHLI received her Master degree
from the department of computer science,
university of Tlemcen, 2012.
She is currently working towards the Ph.D degree
at the Manufacturing Engineering Laboratory of
Tlemcen (MELT) in University of Tlemcen
Her main research interests are optimization of production systems,
multi-agent systems, simulation of retrieval time in an automated
storage/ retrieval system (AS/RS) with a gravity conveyor.
Correspondence address: Manufacturing Engineering Laboratory of
Tlemcen(MELT), University of Tlemcen, PB 230, Tlemcen 13000,
Algeria, e-mail: [email protected]
Pierre CASTAGNA is a Professor of the University
of Nantes, in Industrial Engineering. He is member
of « Institut de Recherche
en Communications et Cybernétique de Nantes ».
After attending an initial education in mechanical
engineering and automatic control.
120
ELECTROTEHNICĂ, ELECTRONICĂ, AUTOMATICĂ (EEA), vol. 64 (2016), nr. 3
He is currently working on formalism for specification of
simulation models, distributed simulation, discrete event
simulation and transfer system design.
He has been a scientific manager of more than 30 research
contracts (with AIRBUS, TRELLEBORG, SOCCATA, etc.).
Correspondence address: Industrial Engineering, Manufacturing
Engineering, Quality Assurance Engineering, IUT of Nantes,
IRCCyN, e-mail: [email protected].
Zaki SARI is a Manufacturing Engineering Professor at
University of Tlemcen, Algeria; he is the Director of the
Manufacturing Engineering Laboratory of Tlemcen
(MELT), and the head of the National Curriculum of
Manufacturing Engineering.
He obtained his Doctorate degree in manufacturing engineering in
2003 and a certificate in system engineering management from
University of Missouri Rolla, USA, in 2003.
He is interested in the Design, Modeling, Optimization, Simulation and
Control AS/RS...
Correspondence address: Department of Industrial Engineering Izmir
University of Economics Izmir, 35330 Turkey, e-mail:
[email protected]

Documents pareils