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]