FR3103296A1 - Procédé de fusion, au sein d’un entrepôt logistique, de k flux entrants de charges utiles en un flux sortant - Google Patents

Procédé de fusion, au sein d’un entrepôt logistique, de k flux entrants de charges utiles en un flux sortant Download PDF

Info

Publication number
FR3103296A1
FR3103296A1 FR1912777A FR1912777A FR3103296A1 FR 3103296 A1 FR3103296 A1 FR 3103296A1 FR 1912777 A FR1912777 A FR 1912777A FR 1912777 A FR1912777 A FR 1912777A FR 3103296 A1 FR3103296 A1 FR 3103296A1
Authority
FR
France
Prior art keywords
collector
aisle
injection
load
dates
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1912777A
Other languages
English (en)
Other versions
FR3103296B1 (fr
Inventor
Blandine Vacher
Stéphane PIETROWICZ
Antoine Jouglet
Dritan Nace
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universite de Technologie de Compiegne
Universite de Technologie de Compiegne UTC
Savoye SA
Original Assignee
Universite de Technologie de Compiegne
Universite de Technologie de Compiegne UTC
Savoye SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universite de Technologie de Compiegne, Universite de Technologie de Compiegne UTC, Savoye SA filed Critical Universite de Technologie de Compiegne
Priority to ES20202699T priority Critical patent/ES2962842T3/es
Priority to DK20202699.3T priority patent/DK3816896T3/da
Priority to EP20202699.3A priority patent/EP3816896B1/fr
Priority to PL20202699.3T priority patent/PL3816896T3/pl
Priority to RU2020135683A priority patent/RU2749385C1/ru
Priority to CA3097401A priority patent/CA3097401C/fr
Priority to US17/083,887 priority patent/US11795009B2/en
Priority to CN202011190697.5A priority patent/CN112749830B/zh
Publication of FR3103296A1 publication Critical patent/FR3103296A1/fr
Application granted granted Critical
Publication of FR3103296B1 publication Critical patent/FR3103296B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G1/00Storing articles, individually or in orderly arrangement, in warehouses or magazines
    • B65G1/02Storage devices
    • B65G1/04Storage devices mechanical
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G43/00Control devices, e.g. for safety, warning or fault-correcting
    • B65G43/08Control devices operated by article or material being fed, conveyed or discharged
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G47/00Article or material-handling devices associated with conveyors; Methods employing such devices
    • B65G47/52Devices for transferring articles or materials between conveyors i.e. discharging or feeding devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G47/00Article or material-handling devices associated with conveyors; Methods employing such devices
    • B65G47/52Devices for transferring articles or materials between conveyors i.e. discharging or feeding devices
    • B65G47/68Devices for transferring articles or materials between conveyors i.e. discharging or feeding devices adapted to receive articles arriving in one layer from one conveyor lane and to transfer them in individual layers to more than one conveyor lane or to one broader conveyor lane, or vice versa, e.g. combining the flows of articles conveyed by more than one conveyor
    • B65G47/70Devices for transferring articles or materials between conveyors i.e. discharging or feeding devices adapted to receive articles arriving in one layer from one conveyor lane and to transfer them in individual layers to more than one conveyor lane or to one broader conveyor lane, or vice versa, e.g. combining the flows of articles conveyed by more than one conveyor with precedence controls among incoming article flows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G1/00Storing articles, individually or in orderly arrangement, in warehouses or magazines
    • B65G1/02Storage devices
    • B65G1/04Storage devices mechanical
    • B65G1/12Storage devices mechanical with separate article supports or holders movable in a closed circuit to facilitate insertion or removal of articles the articles being books, documents, forms or the like
    • B65G1/127Storage devices mechanical with separate article supports or holders movable in a closed circuit to facilitate insertion or removal of articles the articles being books, documents, forms or the like the circuit being confined in a vertical plane
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G1/00Storing articles, individually or in orderly arrangement, in warehouses or magazines
    • B65G1/02Storage devices
    • B65G1/04Storage devices mechanical
    • B65G1/137Storage devices mechanical with arrangements or automatic control means for selecting which articles are to be removed
    • B65G1/1373Storage devices mechanical with arrangements or automatic control means for selecting which articles are to be removed for fulfilling orders in warehouses
    • B65G1/1378Storage devices mechanical with arrangements or automatic control means for selecting which articles are to be removed for fulfilling orders in warehouses the orders being assembled on fixed commissioning areas remote from the storage areas

Abstract

Procédé de fusion, au sein d’un entrepôt logistique, de k flux entrants de charges utiles, transportés respectivement par k allées , en un flux sortant de charges utiles, transporté par un collecteur. Les k allées sont de type FIFO, réparties le long du collecteur et numérotées de a1 à ak dans un sens de déplacement du collecteur. est une distance temporelle entre les allées ai et ak. Le procédé, exécuté par un système de pilotage, comprend : obtention (461) d’un ensemble L comprenant n charges utiles réparties sur les k allées et à injecter sur le collecteur pour former une séquence de sortie ; calcul (462) d’une date t0 à laquelle la première charge utile de la séquence de sortie passe devant l’allée ak ; calcul (463) de n dates d’injection des n charges utiles sur le collecteur, en fonction de t0 ; commande (464) du collecteur et des k allées, pour une injection des charges utiles conformément aux dates d’injection. .

Description

Procédé de fusion, au sein d’un entrepôt logistique, de k flux entrants de charges utiles en un flux sortant.
1. DOMAINE TECHNIQUE
Depuis quelques années, l’activité intra-logistique est très fortement impactée par un changement drastique du comportement de la société de consommation et par le développement de nouvelles technologies. L'augmentation constante de la demande oblige les acteurs de la logistique à se montrer de plus en plus réactifs et compétitifs. L'amélioration et l'optimisation des solutions d'acheminements, de stockage et de préparation de commandes sont devenues essentielles. L'entreprise SAVOYE, constructeur d'équipements pour la préparation de commandes, spécialisée dans l'automatisation et l'informatisation des entrepôts logistiques, est en processus continu d’amélioration et d’évaluation de ses solutions.
La gestion d'un entrepôt logistique inclut l'approvisionnement, la réception et la gestion des flux et des stocks. Améliorer la durée de trajet d'une commande revient souvent à minimiser sa durée de convoyage. 50% de la durée de préparation d'une commande est consacré à cette opération de convoyage, d’après l’article suivant: De Koster, R., Le-Duc, T., and Roodbergen, K.J.,"Design and control of warehouse order picking: a literature review"(2007), European Journal of Operational Research 182(2), 481-501. Il faut donc en premier lieu s'intéresser au problème principal des entrepôts : celui de l’optimisation des flux convoyés afin d'assurer un taux de production le plus élevé possible. Nous allons nous intéresser, plus particulièrement, aux intersections de flux de charges (colis, bacs, containers, etc.). L’objectif est de maximiser le débit du flux final (aussi appelé flux sortant), regroupant divers flux entrants provenant d’endroits différents.
2. PROBLEMATIQUE
2.1 OBJET
Dans un entrepôt logistique, il arrive en effet que plusieurs flux entrants de charges (aussi appelés flux d’injection) se regroupent pour former un seul flux sortant (aussi appelé flux de sortie). Un flux de charges correspond à une liste de charges séquencées défilant les unes derrière les autres. Ces flux peuvent être transportés par un convoyeur, similaire à un tapis roulant qui déplace dans un sens donné toutes les charges qui se trouvent sur lui en file indienne. Dans la suite de la description, les convoyeurs transportant les flux entrants sont appelés allées et le convoyeur transportant le flux de sortie est appelé collecteur.
Les flux d’injection sont répartis tout au long du collecteur. La position des charges composant ces flux d’injection sont connus et identifiables. Pour chaque flux d’injection, nous pouvons choisir l'instant où sa première charge est injectée sur le collecteur. Une répartition séquentielle des flux d’injection permet à une allée située en amont du flux du collecteur de bénéficier d’un nombre de possibilités d’injection plus important qu’une allée située en aval. En effet, cette dernière ne peut déverser ses charges que lorsqu’il y a de la place, laissée libre par les allées plus en amont.
Afin d’éviter un déséquilibre d’injection de charges entre les flux entrants, nous souhaitons définir en avance l’ordre des charges une fois toutes placées sur le collecteur (appelé séquence finale ou encore séquence de sortie).
L'idée directrice est de pousser le flux du collecteur à la capacité mécanique maximale du collecteur. Pour y arriver, il convient de limiter le nombre d’espace vide de ce dernier. Nous proposons une démarche fondée sur les bonnes dates d’injection des charges, pour constituer un flux final ne comportant pas (ou bien le moins possible) d’espaces vides. Ces dates d’injection sont définies afin de respecter toute séquence finale réalisable, c’est-à-dire respectant les ordres FIFO (First In First Out, «premier entré premier sorti») des flux d’injection.
La solution proposée et décrite par la suite, pour répondre à cette problématique, est nouvelle et inventive au vu des modèles de problèmes d’ordonnancement connus, notamment:
  • Runwey Cheng, Mitsuo Gen and Yasuhiro Tsujimura,A tutorial survey of Job Shop scheduling problems using genetic algorithls --- Partie I. Representation, Ashikaga Institute of Technology, Ashikaga 326, Japan; et
  • Imran Ali Chaudhry and Abid Ali Khan,A research survey: review of flexible job shop scheduling techniques, International transactions in operation research, 2015
2.2 EXEMPLE D’APPLICATION
Pour résumer, le système étudié est composé de flux d’injection (flux entrants) transportés par des allées (ensemble de convoyeurs) et d’un collecteur (autre convoyeur) regroupant ces flux d’injection en un seul flux final (flux sortant). Le pilotage proposé et décrit par la suite s’applique notamment, mais non exclusivement, à un collecteur de type «convoyeur continu sans accumulation» ou à un collecteur de type «trieurs» («belt tray», «tilt tray», etc.). Ce pilotage permet de respecter n’importe quelle séquence finale réalisable. Nous donnons donc la solution correspondant au débit optimal par rapport à une séquence finale donnée. Si aucune séquence finale n’est souhaitée, nous savons obtenir le débit maximal sur un collecteur complètement libre pour regrouper ces flux d’injection.
Cependant, dans certains cas, des obstructions peuvent déjà occuper des places sur le collecteur. Par obstruction d’un pas temporeldu collecteur, on entend notamment, mais non exclusivement, une charge perturbatrice provenant d’un flux perturbateur, différent des flux d’injection. Une obstruction n’est pas obligatoirement une charge perturbatrice mais peut également être un endroit du collecteur qui est abimé, réservé, etc. Dans ces cas, la gestion des flux d’injection doit prendre en compte de telles obstructions.
Dans le cas particulier où les charges perturbatrices proviennent d’un ou plusieurs flux perturbateurs, on distingue deux types de flux perturbateurs. Un flux perturbateur est dit «subi» si l’injection sur le collecteur des charges perturbatrices le composant ne peut pas être contrôlée par le système de pilotage (ces charges perturbatrices arrivent sans tenir compte de l’environnement). Par opposition, un flux perturbateur est dit «contrôlé » si l’injection sur le collecteur des charges perturbatrices le composant peut être contrôlée par le système de pilotage. Notre proposition de pilotage supporte ces différents types de flux perturbateurs (subis ou contrôlés) et donne une solution optimale incluant la gestion des flux perturbateurs à contrôler.
Un exemple (illustratif et non limitatif) d’application concret se trouve dans la solution GTP Intelis PTS (Goods To Person Intelis Picking Tray System) proposée par l’entreprise SAVOYE. C’est une solution globale de préparation de commande automatisée dans laquelle un système automatisé de stockage et déstockage à navettes (appelé Intelis PTS) 3 permet d’alimenter à très haute cadence des postes de préparation (appelés postes GTP) 4. Le rôle du système automatisé (Intelis PTS) est donc de stocker, faire entrer et sortir des charges comprenant des articles nécessaires au bon remplissage des commandes au niveau des postes GTP. Le système automatisé est composé de plusieurs rangées de stockage (aussi appelées «allées PTS», ou «PTS aisles» en anglais, mais à ne pas confondre avec les allées (au sens de convoyeurs) transportant les flux entrants dans le contexte de la présente invention, voir explications ci-après), chacune composées de navettes et d’ascenseur permettant le va-et-vient de ces charges sur des convoyeurs respectivement d’entrée 51, 52et de sortie 21, 22. Ces différents convoyeurs d’entrée et de sortie sont tous reliés par un collecteur 1 qui permet d’alimenter les postes de préparation 4 comme le montre la figure 50 (exemple avec trois postes de préparation 41, 42et 43).
Pour faire le lien avec la définition de contexte qui précède, les convoyeurs de sortie 21, 22du système automatisé 3 forment les convoyeurs (aussi appelés «allées») transportant les flux entrants de charges utiles, ces flux entrants étant fusionnés sur le collecteur 1 en un flux sortant de charges utiles.
En d’autres termes, le va-et-vient des charges qui entrent et sortent du système automatisé 3 est géré par le biais du collecteur. Nous sommes donc en présence de plusieurs flux d’injection de charges (aussi appelés flux entrants dans notre problématique) sur les convoyeurs de sortie 21, 22du système automatisé 3, tous injectés sur le collecteur.
De plus, lorsque les flux de charges qui retournent dans le système automatisé 3 (via les convoyeurs d’entrée 51, 52) passent par le biais du même collecteur 1, nous avons un exemple de flux perturbateurs, appelés flux retour dans ce cas particulier. Ces flux perturbateurs sont très intéressants car ils disparaissent après le passage de toutes les zones d’injection, créant ainsi des espaces vides pour certains flux d’injection mais pas d’autres. Comme détaillé par la suite, un mode de réalisation de la solution proposée vise à contrôler, autant que faire se peut, ces flux perturbateurs pour remplir ces espaces vides plutôt que de les subir.
Les solutions proposées dans cet exemple d’application sont décrites dans la suite du document.
2.3 SOLUTIONS ACTUELLES
2.3.1 Solutions existantes
  • Solution connue A, avec un séquencementfinal souhaité : dans ce cas, l’injection des charges sur le collecteur suit un ordre bien défini correspondant à la séquence finale attendue après fusion des charges. Si cette séquence finale souhaitée en sortie du collecteur est par exemple formée par les charges ayant pour numéros de séquence 1, 2, 3, etc. (appelées ci-après «charge 1», «charge 2», etc.) ; la charge 1 sera injectée en priorité, suivie de la charge 2 seulement si la charge 1 est en aval de la charge 2 sur le collecteur, suivie de la charge 3 seulement si la charge 2 est en aval de la charge 3sur le collecteur, et ainsi de suite.
  • Solution connue B, sans séquencement final souhaité: chaque première charge de chaque flux d’injection est injectée sur le collecteur dès lors qu’il y a de la place dans sa zone d’injection.
2.3.2 Inconvénients liés à ces solutions
  • Solutionconnue A : un inconvénient de la solution connue A est qu’elle laisse des espaces (vides) entre les charges, ce qui ralentit le flux sortant par rapport à la capacité mécanique du collecteur. Un espace vide apparaît entre deux charges successives dans la séquence finale dès lors que la charge précédente dans la séquence finale appartient à un flux d’injection plus en aval que la charge suivante. De plus, la longueur de ces espaces vides est proportionnelle à la distance des allées (convoyeurs) d’injection de ces deux charges successives.
Plusieurs étapes de cette solution connue A sont montrées par la figure 1 . Dans cet exemple, nous considérons la séquence finale souhaitée 1, 2, 3, 4. Afin de respecter cette séquence, il n’est pas possible d’injecter directement les charges 1, 2, 3 et 4 en même temps sur le collecteur. A l’étape 0, l’installation est déclenchée. Instantanément les charges 1 et 2 sont injectées sur le collecteur. Cette opération est rendue possible car le flux d’injection de la charge 1 est en aval du flux d’injection de la charge 2. Les charges 1 et 2 sont sur le collecteur, séparées par la distance qu’il y a entre les allées (convoyeurs) d’où elles proviennent. Le collecteur avance sans changement jusqu’à l’étape 1, où la charge 2 passe devant la zone d’injection du flux contenant la charge 3. A partir de ce moment, la charge 3 est injectée sur le collecteur directement derrière la charge 2. Notons que l’espace vide laissé entre les charges 1 et 2 est resté le même et ne sera jamais comblé. A cette même étape 1, la charge 4 est également injectée sur le collecteur avec un espace entre elle et la charge 3. L’étape 2 montre les espaces vides laissés par cette méthode connue d’injection.
  • Solution connue B: un inconvénient de la solution connue B est que l’allée (le convoyeur) le plus en aval injectera ses charges en continu alors que les autres devront se contenter de remplir les espaces libres restants; un autre inconvénient de la solution connue B est qu’elle propose un pilotage qui ne fonctionne, dans la réalité, que lorsque le collecteur (transportant le flux sortant) a une vitesse bien plus grande que celle des allées (convoyeurs) transportant les flux entrants (autant de fois plus grande qu’il y a de flux entrants à injecter). Dans la solution connue B, les vitesses des allées (convoyeurs) doivent donc être plafonnées. Or dans le contexte actuel, le nombre de flux d’injection augmente plus vite que les capacités mécaniques du collecteur. Cette solution connue B ne suffit plus, et ne contrôle pas l’optimisation du débit du flux de sortie.
3. RESUME
Dans un premier mode de réalisation particulier de l’invention, il est proposéun procédé de fusion, au sein d’un entrepôt logistique, de k flux entrants de charges utiles, transportés respectivement par k convoyeurs appelés allées , en un flux sortant de charges utiles, transporté par un autre convoyeur appelé collecteur, l’entrepôt logistique étant tel que:
  • les k allées sont de type «premier entré premier sorti», réparties le long du collecteur et numérotées de a1à akdans un sens de déplacement du collecteur, et
  • est une distance temporelle entre les allées aiet akexprimée en unités temporelles correspondant chacune à un pas temporel du collecteur,
le procédé étant exécuté au moins une fois par un système de pilotage, une exécution donnée étant effectuée à un instant Tb et comprenant:
- obtention d’un ensemble L comprenant n charges utiles réparties à l’instant Tb sur les k allées et devant être injectées sur le collecteur pour former une séquence de sortie , chacune des n charges utiles étant identifiée par un unique numéro de séquence au sein de la séquence de sortie , chacune des k allées contenant un ensemble ordonné, selon un sens croissant du numéro de séquence, de hicharges utiles devant être injectées une à une sur le collecteur;
- calcul d’une date t0à laquelle la première charge utile de la séquence de sortie passe devant l’allée ak;
- calcul d’une date d’injection sur le collecteur pour chacune des n charges utiles de l’ensemble L, selon la formule suivante: , avec :
  • une charge utile de l’ensemble L et provenant de la jèmeposition dans l’allée ai, , ,
  • le numéro de séquence de la charge utile dans la séquence de sortie ;
- commande du collecteur et des k allées, pour une injection des n charges utiles sur le collecteur conformément aux n dates d’injection .
Selon une caractéristique particulière du premier mode de réalisation, est une distance temporelle entre les allées aiet ai’exprimée en unités temporelles correspondant chacune à un pas temporel du collecteur, et le procédé comprend en outre les étapes suivantes:
- pour chaque charge utile provenant d’une allée ai, calcul des dates de passage de la charge utile devant les allées aià ak, connaissant la date d’injection de la charge utile sur le collecteur ;
- pour chaque allée ai, , obtention d’un ensemble contenant chaque date de passage d’une des charges utiles devant l’allée ai;
- pour chaque charge perturbatrice contrôléepd’un flux perturbateur contrôlé grâce à un moyen de contrôlesitué le long du collecteur et avant une allée ag(p)dans le sens de déplacement du collecteur, avec , ag(p)étant également la première allée, dans le sens de déplacement du collecteur, devant laquelle passe la charge perturbatrice contrôlée :
a) initialisation de t avec la date , avec représentant la date d’arrivée possible, en cas de non mise en attente, de la première charge perturbatrice contrôlée devant l’allée ak;
b) calcul des dates , ,…, de passage de la charge perturbatrice contrôlée devant les allées ag(p)à al(p), avec al(p)la dernière allée, dans le sens de déplacement du collecteur, devant laquelle passe la charge perturbatrice contrôlée;
c) si aucune des dates , ,…, n’appartient respectivement aux ensembles , ,…, , calcul d’une date fictive de passage de la charge perturbatrice contrôléepdevant l’allée a1, avec la formule suivante : ;
d) si une des dates , ,…, appartient respectivement à un des ensembles incrémentation de t d’une unité et réitération des étapes b), c) et d) avec la nouvelle valeur de t;
- commande du moyen de contrôle, pour une injection à la date de chaque charge perturbatrice contrôléepdevant l’allée ag(p).
Dans un deuxième mode de réalisation particulier de l’invention, il est proposéun procédé de fusion, au sein d’un entrepôt logistique, de k flux entrants de charges utiles, transportés respectivement par k convoyeurs appelés allées , en un flux sortant de charges utiles, transporté par un autre convoyeur appelé collecteur, l’entrepôt logistique étant tel que:
  • les k allées sont de type «premier entré premier sorti», réparties le long du collecteur et numérotées de a1à akdans un sens de déplacement du collecteur, et
  • est une distance temporelle entre les allées aiet akexprimée en unités temporelles correspondant chacune à un pas temporel du collecteur,
le procédé étant exécuté au moins une fois par un système de pilotage, une exécution donnée étant effectuée à un instant Tb et comprenant:
- obtention d’un ensemble L comprenant n charges utiles réparties à l’instant Tb sur les k allées et devant être injectées sur le collecteur pour former une séquence de sortie , chacune des n charges utiles étant identifiée par un unique numéro de séquence au sein de la séquence de sortie , chacune des k allées contenant un ensemble ordonné, selon un sens croissant du numéro de séquence, de hicharges utiles devant être injectées une à une sur le collecteur;
- pour chaque allée ai, , obtention d’un ensemble de dates non valides pour une injection d’une des charges utiles de l’allée aisur le collecteur à cause d’une charge perturbatrice non contrôlée ou d’une autre obstruction d’un pas temporel du collecteur;
- en ne prenant pas en compte les ensembles , , calcul d’une date t0à laquelle la première charge utile de la séquence de sortie passe devant l’allée ak;
- pour la première charge utile de la séquence de sortie , en supposant que la première charge utile provienne de l’allée ai:
a) initialisation de t avec t0;
b) si aucune des dates , , ,…, n’appartient respectivement aux ensembles , , ,…, , calcul d’une date d’injection de la première charge utile sur le collecteuravec la formule suivante : , avec ;
c) si une des dates , , ,…, appartient respectivement à un des ensembles , , ,…, , incrémentation de t d’une unité et réitération des étapes b) et c) avec la nouvelle valeur de t;
- pour chaque charge utile suivante de la séquence de sortie , , en supposant que la charge utile suivante provienne de l’allée ai:
a’) incrémentation de t d’une unité, avec t utilisé pour calculer la date d’injection de la charge utile précédente ;
b’) si aucune des dates , , ,…, n’appartient respectivement aux ensembles , , ,…, , calcul d’une date d’injection de la charge utile suivante sur le collecteuravec la formule suivante : , avec ;
c’) si une des dates , , ,…, appartient respectivement à un des ensembles , , ,…, , incrémentation de t d’une unité et réitération des étapes b’) et c’) avec la nouvelle valeur de t;
- commande du collecteur et des k allées, pour une injection des n charges utiles sur le collecteur conformément aux n dates d’injection .
Selon une caractéristique particulière du deuxième mode de réalisation, l’étape de commande du collecteur et des k allées, pour une injection des n charges utiles sur le collecteur conformément aux n dates d’injection , est précédée des étapes suivantes:
- calcul de selon la formule suivante: ;
- si , modification des n dates d’injection selon la formule suivante: .
Selon une caractéristique particulière du deuxième mode de réalisation, est une distance temporelle entre les allées aiet ai’exprimée en unités temporelles correspondant chacune à un pas temporel du collecteur, et le procédé comprend en outre les étapes suivantes:
- pour chaque charge utile provenant d’une allée ai, calcul des dates de passage de la charge utile devant les allées aià ak, connaissant la date d’injection de la charge utile sur le collecteur ;
- pour chaque allée ai, , obtention d’un ensemble contenant d’une part chaque date de passage d’une des charges utiles devant l’allée aiet d’autre part l’ensemble de dates non valides pour une injection d’une des charges utiles de l’allée aisur le collecteur ;
- pour chaque charge perturbatrice contrôléepd’un flux perturbateur contrôlé grâce à un moyen de contrôlesitué le long du collecteur et avant une allée ag(p)dans le sens de déplacement du collecteur, avec , ag(p)étant également la première allée, dans le sens de déplacement du collecteur, devant laquelle passe la charge perturbatrice contrôlée :
a) initialisation de t avec la date , avec représentant la date d’arrivée possible, en cas de non mise en attente, de la première charge perturbatrice contrôlée devant l’allée ak;
b) calcul des dates , ,…, de passage de la charge perturbatrice contrôlée devant les allées ag(p)à al(p), avec al(p)la dernière allée, dans le sens de déplacement du collecteur, devant laquelle passe la charge perturbatrice contrôlée;
c) si aucune des dates , ,…, n’appartient respectivement aux ensembles , ,…, , calcul d’une date fictive de passage de la charge perturbatrice contrôléepdevant l’allée a1, avec la formule suivante : ;
d) si une des dates , ,…, appartient respectivement à un des ensembles incrémentation de t d’une unité et réitération des étapes b), c) et d) avec la nouvelle valeur de t;
- commande du moyen de contrôle, pour une injection à la date de chaque charge perturbatrice contrôléepdevant l’allée ag(p).
Selon une caractéristique particulière du premier ou deuxième mode de réalisation, la date t0est calculée avec la formule suivante: , avec:
  • une charge utile d’un ensemble L’ comprenant des charges utiles placées en première position des allées situées, en suivant le sens de déplacement du collecteur, depuis l’allée a1jusqu’à l’allée ai1contenant la première charge utile de la séquence de sortie .
Selon une caractéristique particulière du premier ou deuxième mode de réalisation, le procédé est exécuté de manière itérative, chaque nouvelle exécution étant effectuée à un nouvel instant Tb calculé avec la formule suivante: , avec une dernière charge utile, provenant de la èmeposition dans l’allée , de la séquence de sortie d’une exécution précédente à un instant Tb précédent.
Selon une caractéristique particulière du premier ou deuxième mode de réalisation, le procédé est exécuté de manière itérative, chaque nouvelle exécution étant effectuée à un nouvel instant Tb défini comme un instant auquel aucune charge de la séquence de sortie d’une exécution précédente à un instant Tb précédent ne se trouve dans une portion du collecteur allant de la première allée a1à l’allée contenant la première charge de la séquence de sortie de la nouvelle exécution au nouvel instant Tb.
Selon une caractéristique particulière du premier ou deuxième mode de réalisation, le procédé est exécuté de manière itérative, chaque nouvelle exécution étant effectuée à un nouvel instant Tb calculé avec la formule suivante: , avec:
  • une dernière charge utile, provenant de la èmeposition dans l’allée , de la séquence de sortie d’une exécution précédente à un instant Tb précédent, et
  • obtenu par une incrémentation d’une unité de l’instant Tb précédent.
Dans un autre mode de réalisation de l'invention, il est proposé un produit programme d'ordinateur qui comprend des instructions de code de programme pour la mise en œuvre du procédé précité (dans l’un quelconque de ses différents modes de réalisation), lorsque ledit programme est exécuté sur un ordinateur.
Dans un autre mode de réalisation de l'invention, il est proposé un médium de stockage lisible par ordinateur et non transitoire, stockant un programme d’ordinateur comprenant un jeu d’instructions exécutables par un ordinateur pour mettre en œuvre le procédé précité (dans l’un quelconque de ses différents modes de réalisation).
Dans un autre mode de réalisation de l'invention, il est proposé un système de pilotage (dispositif) comprend des moyens de mise en œuvre des étapes qu’il effectue dans le procédé tel que décrit précédemment, dans l’un quelconque de ses différents modes de réalisation.
4. LISTE DES FIGURES
Dans la description ci-dessous, donnée à titre d’exemple indicatif et non limitatif, il est fait référence aux dessins annexés, dans lesquels :
Méthode existante pour insérer des charges dans un ordre donné
Image de deux allées (convoyeurs), un collecteur et une charge (carton)
Schéma de deux allées (convoyeurs), un collecteur et une charge (carton)
Schéma du système étudié en allées
Schéma du système avec indentification des charges par leur numéro de séquence
Points confondus sans perte de généralité
Point de départ et point d’injection
Découpage en pas (positions ou créneaux) du collecteur
Séquence de sortie souhaitée attendue dans le découpage du collecteur
Unité de temps associée au pas du collecteur par rapport à la durée d’injection d’une charge
Distances entières entre les flux d’injection
Distances non obligatoirement entières entre les flux d’injection
Schéma du collecteur avec des points d’injection consécutifs à chaque pas
Exemple d’un collecteur de 4 allées consécutivement placées par pas du collecteu
Diagramme de Gantt lié au job shop et retrouvant les données à calculer par formul
Exemple d’un collecteur de 4 allées placées de façon quelconque
Diagramme de Gantt lié au job shop avec distances quelconques entre les allées
Exemple d’un collecteur et de 2 allées avec les identifiants des charges
Exemple d’un collecteur et de 2 allées avec les identifiants des numéros d’ordre
Exemple d’un collecteur et de 2 allées avec les identifiants numéros de séquence
Image du collecteur à l’instant 0
Image du collecteur à l’instant 1
Image du collecteur à l’instant 2
Image du collecteur à l’instant 3
Exemple de liste FIFO associée à trois allées
Séquence réalisable attendue sur le collecteur
Première charge du flux collée au point d’injection faisant partie de la liste FIF
Première charge du flux non collée au point d’injection ne faisant pas partie de la liste FIFO
Charges en attente continue derrière une première charge faisant partie de la liste FIFO
Charges en attente continue derrière une première charge ne faisant pas partie de la liste FIFO
Exemple de batch (lot) de travail
Calcul des dates d’injection et traitement du batch 1
Traitement d’un batch en cours
Fin de traitement du batch 1 et formation du batch 2
Fin de traitement du batch 2 et son application
Diagramme de l’algorithme dans le cas général avec flux perturbateur subi
Exemple de flux perturbateur: charges grises qui retournent dans la PT
Exemple d’un collecteur de 4 allées quelconques avec flux perturbateur subi
Diagramme de Gantt avec flux perturbateur subi formant des espaces
Diagramme de l’algorithme 4
Exemple d’un collecteur de 4 allées placées de façon quelconque avec flux perturbateur contrôlé
Diagramme de Gantt des injections montant les espaces à utiliser pour les charges perturbatrices
Diagramme de Gantt en choisissant le placement des charges perturbatrices
Structure d’un système de pilotage selon un mode de réalisation particulier de l’inventio
Diagramme de l’algorithme 5
Organigramme d’un procédé de fusion de k flux entrants en un flux sortant, selon un premier mode de réalisation particulier basé sur l’algorithme 2
Organigramme d’un procédé de fusion de k flux entrants en un flux sortant, selon un deuxième mode de réalisation particulier basé sur l’algorithme 3 (illustré sur la figure 36)
Organigramme d’un procédé de fusion de k flux entrants en un flux sortant, selon un troisième mode de réalisation particulier basé sur l’algorithme 4 (illustré sur la figure 40)
Organigramme d’un procédé de fusion de k flux entrants en un flux sortant, selon un quatrième mode de réalisation particulier basé sur l’algorithme 5 (illustré sur la figure 45)
Exemple d’application
5. PARAMETRES DU PILOTAGE
Comme déjà mentionné plus haut, le système étudié est composé d’un système de drainage (convoyeur appelé collecteur), de plusieurs autres convoyeurs (appelés allées) et de charges. Ce système est dynamique, les charges sont transportées par les allées, injectées sur le collecteur puis transportées par celui-ci. Dans un premier temps, considérons l’état de ce système en figeant la position de chaque charge présente dans celui-ci à un instant donné. Définissons les sous-systèmes figés de ce système afin de pouvoir calculer les futures dates d’injection de certaines charges. Cela correspond à la résolution du problème statique, nous étudierons dans la Section 7 comment piloter ce système de façon dynamique.
La figure 2 est une image illustrant deux allées (convoyeurs) 21, 22, un collecteur 1 et une charge (carton) 6. La figure 3 est une vue modélisée des éléments apparaissant sur l’image de la figure 2 (mêmes références numériques).
5.1 NOTATIONS
Le tableau ci-dessous est un récapitulatif des notations.
Nombre de flux d’injection (flux entrants) du système
k allées (convoyeurs) transportant chacune un ensemble ordonné de charges à un instant donné
Nombre de charges présentes sur l’allée (convoyeur) ai
Nombre total de charges à injecter sur le collecteur
Ensemble des charges à injecter sur le collecteur
Charge , provenant de la position dans l’allée
Séquence de sortie souhaitée, ordonnant toutes les charges de
Position de la charge dans la séquence de sortie
charge de la séquence , appartenant à
signifie le calcul de pour la charge
Ensemble des charges placées en première position des allées situées entre l’allée et l’allée contenant la première charge de la séquence (soit )
Date de départ de la charge , coïncidant avec le point de départ, c’est-à-dire l’instant où la charge doit quitter son allée (convoyeur)
Date d’injection de la charge sur le collecteur, coïncidant avec le point d’injection, où la charge arrive physiquement sur le collecteur
Durée nécessaire pour parcourir la distance entre le point de départ et le point d’injection pour une charge de l’allée
Unité de temps correspondant au découpage du collecteur en pas temporels (appelés aussi positions temporelles ou créneaux temporels)
La date 0 Date à laquelle nous pouvons commencer à injecter les charges sur le collecteur (date matérialisée par le premier emplacement libre sur celui-ci)
Date à laquelle la première charge de la séquence de sortie souhaitée passe devant l’allée
Distance en «pas» séparant l’allée et l’allée
Distance en «pas» séparant l’allée et l’allée
5.1.1 Notations par allées du système de convoyage
Pour une configuration du système à un instant donné, chaque allée comprend un ensemble ordonné de charges. Soit le nombre d’allées dans notre système, chaque allée est numérotée de à dans le sens de déplacement du collecteur. Ces allées possèdent respectivement un nombre de charges, représenté par une liste First In First Out (FIFO) devant être injectée une à une sur le collecteur.
Un exemple est donné sur la figure 4 . Le sens de déplacement du collecteur 1 est de droite à gauche, direction indiquée par la flèche. Chaque allée est numérotée et comprend des charges ordonnées, qui devront être injectées une par une, de bas en haut, sur le collecteur. Dans cet exemple, nous avons donc avec et
5.1.2 Notations des charges à injecter
Il y a charges (cartons, bacs, containers, etc.) au total à injecter sur le collecteur, provenant des différents flux d’injection. Notons l’ensemble de ces charges et une charge appartenant à , provenant de la position dans l’allée .
De plus appelons la séquence de sortie dans laquelle ces charges doivent être ordonnées une fois toutes injectées sur le collecteur. La fonction donne la position de la charge dans cette séquence. Chaque charge peut ainsi être identifiée par un numéro «de séquence» unique, entre et , correspondant à sa position dans la séquence de sortie souhaitée ( ). C’est de cette façon que nous identifierons les charges par la suite. Remarquons que dans ce cas, il est facile de vérifier si la séquence est réalisable: il suffit que chaque allée ait une liste ordonnée de charges identifiées par des numéros de séquence croissants, pas forcément consécutifs.
Spécifions maintenant l’ensemble regroupant spécialement les premières charges attendues dans la séquence de sortie finale, placées en première position des allées avec le numéro de l’allée contenant la première charge de cette séquence . Cet ensemble regroupe toutes les charges pouvant être la première charge de la séquence à être injectée sur le collecteur. En effet, une charge en première position dans une allée placée en amont de l’allée comportant la première charge de la séquence est susceptible d’être injectée en premier, tout en se retrouvant derrière la première charge dans le flux final du collecteur. Cependant, une charge en première position dans les allées en aval de l’allée comportant la première charge ne sera jamais injectée avant cette première charge sur le collecteur.
La figure 5 montre le schéma équivalent à celui de la figure 4 en prenant la séquence réalisable Dans cette exemple, , donc chaque charge a un numéro de séquence unique permettant de l’identifier tout en connaissant rapidement sa position souhaitée dans la séquence La figure 5 permet immédiatement de voir que la séquence choisie est réalisable, en effet et De plus, nous avons l’ensemble particulier
5.1.3 Dates de départ et dates d’injection
Pour rappel, chaque allée correspond à un flux d’injection à un instant donné, représenté comme une colonne FIFO collée au collecteur. Cependant, dans l’entrepôt, il se peut que la charge en attente d’injection soit éloignée du collecteur. Appelonspoint de départl’endroit où cette charge attend l’ordre de départ de son allée (convoyeur), illustré par un point accolé à la colonne FIFO, etpoint d’injectionl’espace du collecteur touché en premier par la charge en cours d’injection réelle sur celui-ci, illustré par un point accolé au collecteur sur la figure 6 .
Dans les schémas du système en allées, ces deux points sont confondus et représentés en noir sur la figure 7 . En réalité, ces points sont souvent différents et on associe la durée nécessaire à une charge du flux pour passer d’un point à l’autre par (voir figure 6). La date de départ de la charge lorsque celle-ci doit quitter son allée (convoyeur) est relié à sa date d’injection sur le collecteur (coïncidant avec le point d’injection) par la simple formule suivante: De ce fait, sans perdre de généralité par la suite, nous allons présenter uniquement le calcul des dates d’injection.
5.2 STRUCTURE DE DONNEE
5.2.1 Découpage du système de drainage (collecteur): unité de temps (pas temporel)
Le système de drainage (ou collecteur) sera considéré comme un système avec despastemporels (comme un trieur), appelé aussicréneauxoupositions.
La figure 8 illustre le découpage en pas (positions ou créneaux) temporels du collecteur.
Ainsi, notre objectif d’obtenir un débit maximal avec un flux sortant ordonné revient à remplir les pas du collecteur comme le montre la figure 9 .
Nous allons considérer uneunité de tempscorrespondant à ce pas temporel qui subdivise le collecteur, suivant sa vitesse de déplacement. Une unité de temps, appelée «un pas temporel», correspond à la durée nécessaire pour qu’un point du collecteur se déplace exactement de la distance physique d’une position. La distance définie pour cette positioncorrespond à la taille d’une charge, ajoutée d’une distance de sécurité. Cette distance de sécurité est à ajuster suivant les besoins métier et afin de respecter la condition suivante(illustrée sur la figure 10 ) :
L’unité de temps doit obligatoirement être supérieure à la durée que met une charge pour être injectée sur le collecteur depuis le moment où une partie de la charge touche le collecteur jusqu’au moment où toute la charge est placée correctement sur le collecteur (c'est-à-dire dans le flux de celui-ci).
5.2.2 Distance du système d’injection
Comme illustré sur la figure 11 , nous définissons correspondant au nombre de pas temporels du collecteur (système de drainage) entre l’allée et la dernière allée , comme le montre les figures suivantes, avec . Comme illustré sur la figure 12 , ce nombre peut ne pas être un entier. .
La distance temporelle entre deux allées aiet ajest notée , le deuxième indice étant l’allée par rapport à laquelle on se situe.
5.2.3 Modèle Job Shop associé
Le tableau ci-dessous est un récapitulatif de notations du modèle Job Shop.
} Ensemble de jobs (tâches)associés à un modèle en Job Shop.
La charge de la séquence est notée la place de l’allée et est associée au job
Ensemble des machines du modèle en Job Shop.
L’allée est associée à la machine .
Liste des opérations consécutives associées au job , sachant que l’opération doit s’effectuer sur la machine .
Pour chaque séquence de sortie , nous modélisons le système en un modèle Job Shop à tâches unitaires, à jobs et machines. Chaque charge de la séquence charge de cette séquence) est associée à un job et chaque allée est associée à une machine Chaque job associé à une charge contenue dans l’allée doit suivre une liste ordonnée de opérations unitaires . Une opération notée est une tâche unitaire du job à effectuer spécifiquement sur la machine . Un job peut être affecté à une seule machine à la fois et une machine peut effectuer une seule opération à la fois.
Nous cherchons à planifier ces jobs sur les machines en respectant l’ordre donné par leur liste respective d’opérations. L’objectif est de les planifier afin de minimiser la durée totale d’exécution de tous ces jobs.
6. DETERMINATION DE LA DATE D’INJECTION DE CHAQUE CHARGE, POUR UN COLLECTEUR TRAITANT UNIQUEMENT LES FLUX D’INJECTION
Nous considérons dans cette partie un collecteur traitant uniquement les flux d’injection. Le collecteur est entièrement vide et prêt à récupérer les flux d’injection. Seule la fusion de ces flux d’injection est à contrôler pour injecter correctement leurs charges afin d’avoir un flux final fluide, continu et correspondant à la séquence de sortie souhaitée.
6.1 SOLUTION POUR DES ALLEES CONSECUTIVEMENT BIEN REPARTIES
Afin de simplifier les choses, nous supposons que les flux d’injection sont répartis de manière consécutive sur le collecteur, de sorte qu'il faille un intervalle de temps pour qu'une charge sur le collecteur passe d'une zone d’injection à la suivante comme le montre la figure 13 . Ce cas simplifié correspond à pour tout .
6.1.1 Modélisation du système en ordonnancement d’ateliers job shop
Nous allons expliquer la modélisation du système en problème d’ordonnancement d’atelier Job Shop dans ce cas particulier.
Chacune des charges est associée à un job , numérotation en concordance avec le numéro de séquence de la charge. Ainsi, si correspond à la charge dans la séquence alors son job associé est Les opérations de ces jobs doivent être traitées par un ensemble de machines . Une opération peut être affectée à une seule machine à la fois. Chaque machine est associée à une allée (c’est-à-dire à un flux d’injection), ne pouvant effectuer qu’une seule opération à la fois. Rappelons que ces allées sont numérotées , de l’amont vers l’aval (c’est-à-dire en suivant le sens de convoyage du collecteur).
Ainsi, une charge étant injectée sur le collecteur depuis l’allée passera devant chaque allée avec dans . Ce mécanisme est représenté par le fait que chaque job associé à une charge de l’allée se compose de opérations unitaires à traiter consécutivement sans attendre. Chaque opération est à planifier sur une machine spécifique. Ainsi, si l'opération (traitée par la machine ) commence à l'instant , l’opération (traitée par la machine ) commence à l’instant , etc., et enfin l'opération (traitée par la machine ) commence à l'instant .
Si l’instant de début de la première opération de ce job correspond à la date d'injection dans le collecteur, les instants de début des opérations suivantes (c.-à-d. ) représentent les instants auxquels la charge est devant les allées suivantes.
Notez que chaque tâche est composée d’au moins une opération sur la dernière machine (puisque chaque charge passe devant au moins la dernière allée ). La séquence des opérations planifiées sur la machine correspond exactement à l’ordre dans lequel les charges passeront devant la dernière allée et leur date de départ correspond à l’instant où ces charges passeront devant cette dernière allée d’injection. C’est pourquoi, si la charge est devant la charge dans la séquence de sortie donnée, la dernière opération de doit commencer avant la dernière opération de sur .
L’objectif de ne pas avoir d’espace sur le collecteur revient à ne pas avoir de temps mort entre les traitements des opérations de la machine
6.1.2 Principe de l’algorithme permettant d’atteindre les dates d’injection
Le problème de planification proposé ci-dessus peut être résolu par l’algorithme suivant.
Pour commencer, en supposant que la première charge de la séquence provienne de l’allée les opérations associées à ce job commencent aux instants .
Ensuite, les opérations du job correspondant à la prochaine charge de la séquence seront planifiées d'abord en exécutant l'opération à traiter sur la machine . Cette opération sera planifiée juste après (sans temps mort) l’opération précédente programmée sur . En supposant que cette opération commence à l'instant , l'opération sur la machine (si elle existe) est planifiée à l’instant , et ainsi de suite, jusqu'à ce que toutes les opérations soient programmées.
Cette procédure est appliquée de manière itérative sur chacun des jobs suivants de la séquence donnée.
Les dates d’injection réelles sur le collecteur sont déduites directement à partir du début de la première opération de chaque job. L’unité de temps utilisée est celle défini ci-dessus («le pastemporel » du collecteur).
6.1.3 Calcul des dates d’injection par formule
Maintenant que nous avons décrit comment fonctionnait l’algorithme de résolution du problème d’ordonnancement, nous pouvons déduire la formule permettant de calculer les dates d’injection.
Les notations utilisées dans la formule ci-après sont celles du tableau récapitulatif discuté plus haut.
Fixons l’origine du temps à la date d’injection, au plus tôt, de la (ou les) toute(s) première(s) charge(s) injectée sur le collecteur. Dans notre système, l’emplacement libre qui va recevoir cette charge est donc placé juste devant l’allée de celle-ci à l’instant 0. Ainsi, nous calculerons la date correspondant à la date au plus tôt à laquelle la première charge de la séquence passe devant l’allée
Preuve: Soit 0 la date à laquelle l’injection des charges commence. Soit la date à laquelle la première charge de la séquence (c’est-à-dire passe devant l’allée Nous remarquons que la première charge injectée sur le collecteur est forcément une charge en tête d’allée, dans une allée située entre l’allée et celle de , comprise. Soit ce sous-ensemble de charge.
Donc, pour toute charge , nous savons que si elle était injectée à la date , elle passerait devant l’allée à la date Nous avons puisque nous ne pouvons pas injecter de charge avant la date 0. Or par définition de la charge passera devant l’allée à la date Soit .
Nous en déduisons que pour tout Nous cherchons la date au plus tôt permettant de vérifier toutes ces contraintes, donc:
L’algorithme 1 ci-après donne les dates d’injection , c’est-à-dire les dates d’entrée de chaque charge sur le collecteur. L’unité de temps utilisé est le « pastemporel » défini plus haut. L’algorithme 1 donne la formule pour calculer ces dates d’injection dans le cas où les flux s’injectent à chaque emplacement consécutif sur le collecteur (voir figure 14 ).
6.1.4 Exemple
En ordonnancement, le diagramme de Gantt est un outil très utile pour visualiser dans le temps les opérations composant un job. Cet outil va nous permettre de représenter graphiquement l’avancement du travail de chaque machine et nous montrer visuellement la solution apportée à notre problème. De plus, nous pourrons voir le lien entre les résultats obtenus par l’algorithme permettant d’atteindre les dates d’injection et la formule associée.
Soit la configuration du système comme suit(voir la figure 14) : allées comprenant deux ou trois charges. Chaque charge est identifiée par un numéro de séquence unique grâce à la séquence de sortie C’est une séquence réalisable.
Dans ce cas simplifié, nous pouvons représenter la solution du Job Shop dans un diagramme de Gantt tel que chaque ligne correspond à une machine. Le fait que chaque charge passe par les machines consécutivement est représenté par le fait que chaque numéro de séquence de charge apparait sur des cases consécutives de gauche à droite dans le tableau (voir figure 15 ). De plus, la première apparition de chaque charge indique sa date d’injection donnée par la formule en callant l’échelle de temps à l’instant 0 défini plus haut. Pour rappel, la date 0 correspond à l’instant de la première injection de charge possible. Nous pouvons même placer la date selon sa définition et la retrouver par calcul. Pour rappel, est la date à laquelle la première charge de la séquence ( ) passe devant l’allée , soit le chiffre 1 lorsque l’opération du job 1 est opéré par la machine .
Nous retrouvons la séquence souhaitée, sans espace vide, sur la machine et la date d’injection de chaque charge est donnée par la lecture de la case de première apparition (de la gauche vers la droite) du numéro de séquence donnant l’identification de cette charge.
6.2 SOLUTION POUR DES ALLEES AVEC UNE REPARTITION QUELCONQUE
Maintenant que le cas simplifié a été vu, considérons le cas général du collecteur ne traitant que les flux d’injection. Les flux ne s’injectent donc plus consécutivement à chaque pas temporel du collecteur mais sont répartis de façon quelconque. Les distances entre allées sont connues. C’est la durée de parcours qu’il y a entre le point d’injection de l’allée et la dernière allée qui nous intéresse particulièrement, elle sera notée (comme déjà défini plus haut).
6.2.1 Calcul des dates d’injection par formule
L’algorithme 2 ci-après prend en compte cette notion de distance temporelle quelconque entre allées et répond ainsi au cas général du collecteur dédié aux flux d’injection.
Considérons de nouveau la date 0 comme étant la date de la première injection possible. Cette fois, une charge de l’allée injectée à la date arrive devant l’allée à la date Ainsi, nous obtenons la date au plus tôt à laquelle la première charge de la séquence passe devant l’allée par la formule
La figure 46 présente un organigramme d’un procédé de fusion de k flux entrants en un flux sortant, selon un premier mode de réalisation particulier basé sur l’algorithme 2. Le procédé est exécuté au moins une fois par le système de pilotage. Une exécution donnée est effectuée à un instant Tb et comprendles étapes suivantes :
- obtention (étape 461) d’un ensemble L comprenant n charges utiles réparties à l’instant Tb sur les k allées et devant être injectées sur le collecteur pour former une séquence de sortie , chacune des n charges utiles étant identifiée par un unique numéro de séquence au sein de la séquence de sortie , chacune des k allées contenant un ensemble ordonné, selon un sens croissant du numéro de séquence, de hicharges utiles devant être injectées une à une sur le collecteur;
- calcul (étape 462) d’une date t0à laquelle la première charge utile de la séquence de sortie passe devant l’allée ak;
- calcul (étape 463) d’une date d’injection sur le collecteur pour chacune des n charges utiles de l’ensemble L, selon la formule suivante: , avec :
  • une charge utile de l’ensemble L et provenant de la jèmeposition dans l’allée ai, , ,
  • le numéro de séquence de la charge utile dans la séquence de sortie ;
- commande (étape 464) du collecteur et des k allées, pour une injection des n charges utiles sur le collecteur conformément aux n dates d’injection .
6.2.2 Exemple
Prenons un exemple similaire à celui du paragraphe 6.1.4 en écartant cette fois les allées.
Soit la configuration du système comme suit(voir la figure 16 ) : allées comprenant deux ou trois charges. Chaque charge est identifiée par un numéro de séquence unique en fonction de la séquence de sortie C’est une séquence réalisable. Nous connaissons la distance de chaque allée par rapport à la dernière:
Nous donnons sur la figure 17 la représentation de la solution sous forme de diagramme de Gantt. Cette fois, il faut espacer deux machines consécutives d’autant de lignes qu’il y a de «pastemporels » entre les deux allées consécutives correspondantes. C’est pourquoi la solution est donnée dans un tableau à 13 ( lignes. Par calcul, nous avons , que nous retrouvons bien par définition à l’instant sur le graphique.
Nous donnons ici un exemple avec des distances entières entre allées pour faciliter la compréhension, mais il serait possible de prendre des valeurs non entières en nombre de «pastemporels ».
6.3 DESCRIPTION D’UN MODE DE REALISATION PARTICULIER
6.3.1 Liste d’éléments à regrouper
Chaque flux d’injection (flux entrant) est représenté par une allée contenant une liste de charges dans un ordre FIFO. Le nombre d’allées peut varier de à , et la liste de l’allée contient charges (hipouvant être nul). Il y a, en tout, charges à fusionner sur le collecteur. Prenons par exemple (voir figure 18 ) : et
De plus, pour rester dans le cas général, nous prendrons les résolutions du cas général avec et
6.3.2 Construction d’une séquence par défaut
Lorsque la séquence finale des charges sur le collecteur n’a pas d’importance, il suffit de définir de manière quelconque une séquence réalisable ordonnant les charges.
Nous pouvons concevoir différentes façons de définir une séquence de sortie «par défaut»:
  • Sortir alternativement une charge de chaque allée,
  • Sortir les charges en fonction de leur arrivée dans les flux d’injection,
  • Prendre la première charge de chaque allée tirée aléatoirement,
  • Etc.
6.3.3 Une séquence donnée par un calcul de minimisation de désordre
La figure 19 illustre un exemple de séquence ( ) résultant d’un calcul de minimisation de désordre. Les numéros indiqués ne sont pas des numéros de séquence au sein de la séquence finale, mais des numéros d’ordre par rapport à des commandes à préparer.
Il est possible de prendre cette séquence comme séquence de sortie donnée pour l’algorithme qui calcule les dates d’injection. Cette séquence est obligatoirement réalisable et minimise le désordre. Nous obtenons un débit maximal avec un désordre minimum pour le flux sortant du collecteur.
Comme il est toujours possible d’attribuer un numéro de séquence unique de 1 à n à toutes les charges, correspondant à leur position dans la séquence finale , nous afficherons les charges avec ces numéros de séquence pour les identifier et les caractériser entièrement (cf. figure 20 ). Les figures 19 et 20 sont équivalentes. La séquence de sortie permet de bien voir l’ordre croissant des charges sur chaque flux d’injection (preuve de la faisabilité de la séquence).
Gardons cette configuration pour poursuivre l’exemple.
6.3.4 Construction de
Dans notre exemple, rassemble les charges numérotées et .
Nous recherchons le maximum entre , nous obtenons
6.3.5 Calcul des dates d’injection (par formule)
6.3.6 Explication du résultat en images
Les date s d’injection étant données dans l’unité de temps (c'est-à-dire le pas temporel du collecteur), cela revient visuellement à voir le collecteur se déplacer d’un pas à chaque unité de temps. Si nous visualisons une image du système à chaque unité de temps, chaque charge apparaîtra pour la première fois sur le collecteur à la date (sa date d’injection).
La configuration du collecteur à l’instant 0 (cf. figure 21 ) correspond à la première injection réelle d’une charge, ici la charge 1 ( , même si ça ne sera pas toujours le cas. Attention, en effet, la première charge de la séquence n’est pas obligatoirement la première charge à être injectée sur le collecteur.
La charge 2 doit être injectée à l’instant , ce qui veut dire qu’elle est sur le collecteur après le déplacement d’un pas du collecteur, comme le montre la figure 22 .
La charge 3 est injectée à l’instant , comme le montre la figure 23 .
Les charges 4 et 5 sont injectées à la date 3, comme le montre la figure 24.
Et ainsi de suite.
7. DEROULEMENT DES BATCHS
Le calcul des dates d’injection se fait sur un état donné du système. Le système évoluant dans le temps, une première possibilité consiste à refaire ce calcul à chaque fois qu’une nouvelle charge arrive dans le système car elle n’a pas encore sa date d’injection définie. Toutefois, au lieu de lancer aussi régulièrement l’algorithme de calcul ce qui n’est pas avantageux pour diverses raisons (consommation de ressources de calcul notamment), il est préférable de procéder par batchs (lots). Un tel fonctionnement dynamique par batchs est expliqué dans cette section.
7.1 BATCH DE TRAVAIL
Nous voulons un flux (flux sortant) continu et optimal sur le collecteur tout au long d’une journée de travail. Nous venons de voir comment définir une date d’injection optimale (afin de parvenir à notre objectif) sur des charges présentes dans les allées à un instant donné, fixé. Il faut maintenant réaliser cet objectif pour toutes les charges arrivant par les flux d’injection, à tout instant. Nous proposons d’appeler l’algorithme de calcul des dates d’injection à l’instant nécessaire pour obtenir un remplissage fluide et continu du collecteur.
Pour ce faire, dans cette section, nous définissons comment remplir les listes FIFO de chaque allée pour la configuration du système à un instant fixé. Ensuite, nous définissons ce qu’est un batch pour finir par expliquer la succession du traitement de deux batchs sans laisser d’espace vide sur le collecteur.
7.1.1 Remplissage des listes FIFO des allées
Dans chaque allée, il y a une liste de charges avec un numéro de séquence unique pour chaque charge. Ces numéros de séquence des charges sont obligatoirement croissants par allée, mais pas forcément consécutifs (dû à la définition de la séquence réalisable à donner).
La figure 25 illustre un exemple de listes FIFO associées à trois allées.
La figure 26 illustre la séquence finale réalisable, attendue sur le collecteur.
Pour rappel, chaque allée correspond à un flux d’injection, représenté comme une colonne FIFO collée au collecteur, avec son point d’injection défini par un point noir sur les schémas.
La liste FIFO des charges prise en compte dans une allée pour une configuration fixée du système ordonne les charges en attente au point d’injection de cette allée respectant les conditions suivantes:
  • Les charges prises en compte lors de l‘analyse sont en attente au point d’injection (représenté par un point noir sur les figures suivantes)( figure 27 : première charge du flux collée au point d'injection et donc faisant partie de la liste FIFO; figure 28 : première charge du flux non collée au point d'injection et ne faisant donc pas partie de la liste FIFO);
  • Les charges prises en compte lors de l’analyse sont en attente«continue» derrière une première charge faisant partie de la liste FIFO ( figure 29 : deuxième charge en attente continue derrière une première charge faisant partie de la liste FIFO; figure 30 : charge en attente continue derrière une première charge ne faisant pas partie de la liste FIFO).
7.1.2 Définition des batchs
Un batch (lot) de travail correspond à l’ensemble des charges des listes FIFO de toutes les allées (c’est l’ensemble de n charges) Toutes ces charges correspondent à la photo statique de notre système à un instant donné, respectant les règles du paragraphe précédent. Les charges présentes dans le système à cet instant, ne respectant pas les règles de remplissage des listes FIFO, seront affectées plus tard à un autre batch.
Une fois les charges du batch toutes affectées, le calcul des dates d’injection pour ce batch est effectué. L’injection de ces charges se fait au fur et à mesure que le temps avance, en respectant les dates d’injection calculées au préalable. Le système évolue au cours du temps, sans appeler de nouveau l’algorithme de calcul des dates d’injection, bien que de nouvelles charges soient éligibles aux règles de remplissage des listes FIFO ou même que de nouvelles charges apparaissent dans le système.
Toutes ces dates d’injection sont calculées pour réussir à mettre chaque charge du batch à sa place réservée sur le convoyeur, respectant l’ordre de la séquence finale souhaitée tout en minimisant les espaces vides. Appelons la dernière place réservée pour la dernière charge de ce batch donné par l’ordre de la séquence. Après cette place , le collecteur est libre. C’est au moment où cette dernière place (peut être encore vide) passe devant le premier flux d’injection (première allée) qu’un nouveau batch va être défini.
Le batch suivant se construira de la même manière, mais sur la nouvelle photo statique du système à cet instant fixé (avec comme premier emplacement libre lepas du collecteur accolé à cette dernière place ).
A noter, dans une implémentation particulière, que si un nouveau batch est défini avant que le batch précédent soit entièrement exécuté, les dernières charges de la séquence de sortie du batch précédent peuvent être considérées pour le nouveau batch (batch suivant). Dans ce cas, si une charge à la positionidans la séquence de sortie est remise dans le batch suivant, alors toutes les charges de position supérieure à i aussi). Cependant, il y a un intérêt à reprendre des charges uniquement si la séquence finale souhaitée a changé. Dans ce cas, la dernière place considérée sera la place de la dernière charge non reprise dans le batch suivant. Pour les charges reprises, les dates d’injection déjà définies dans le batch précédent seront obsolètes et remplacées par les dates d’injection calculées pour le batch suivant.
Dans l’exemple illustré sur la figure 31 , le premier batch sera composé des charges: 1, 2, 3, 4, 5, 6, 7, 8, 9. Le batch suivant pourra être: xx, yy ou 9, xx, yy,…, ou encore 7, 8, 9, xx, yy,… (mais pas 8, xx, yy, ni 7, 9, xx, yy).
7.2 TRAITEMENT DYNAMIQUE DES BATCHS
Le traitement de chaque batch est réalisé de manière continue et en série (batch1, batch2 etc…). Le traitement d’un batch est un calcul statique de toutes les dates d’injection des charges composant ce batch. La liaison et la construction de ces batchs permet de donner une solution globale au problème de fusion de flux entrant en un flux sortant, dans les entrepôts, qui est un problème dynamique.
7.2.1 Calcul des dates d’injection d’un premier batch
La figure 32 illustre un exemple de premier batch pour une séquence de sortie , avec les charges 2, 6, 7 et 8 (pour lesquelles les dates d’injection sont notées Temps 4, Temps 8, Temps 9 et Temps 10 respectivement) sur l’allée a3, les charges 1, 3 et 5 (pour lesquelles les dates d’injection sont notées Temps 0, Temps 2 et Temps 4 respectivement) sur l’allée a2et les charges 4 et 9 (pour lesquelles les dates d’injection sont notées Temps 0 et Temps 5 respectivement) sur l’allée a1.
7.2.2 Injection dans le temps du batch
Tant que le pas temporel du collecteur attendant le numéro de séquence le plus élevé (ici n° 9, entouré par un cercle sur les figures 32 et 33) n’est pas arrivé devant l’allée d’injection la plus en amont (c’est-à-dire l’allée ), aucun traitement du batch suivant n’est réalisé. Le traitement des charges du premier batch continue au fur et à mesure que le temps passe, injectant ces charges à la date d’injection calculée au préalable comme le montre la partie haute et la partie basse de la figure 33 .
7.2.3 Formation du prochain batch et calcul statique des futures dates d’injection de celui-ci
Lorsque le dernier pas marqué de la dernière charge de la séquence du premier batch arrive devant l’allée , c’est le signal pour construire le prochain batch. Ce batch est constitué de toutes les charges valides de chaque liste FIFO de chaque allée suivant les règles expliquées plus haut.
La figure 34 illustre la formation du batch suivant, composé de six nouvelles charges apparues sur les allées et numérotées de 1 à 6 (numéros de séquence de la nouvelle séquence de sortie souhaitée pour le nouveau batch).
L’algorithme de calcul des dates d’injection statique est appliqué à ce nouveau batch en considérant la partie libre du collecteur (à droite de la place réservée pour la charge numéroté 9 du batch précédent). Les dates d’injection sont calculées en fonction d’une échelle de temps dont l’origine correspond à la première injection d’une charge du nouveau batch.
La configuration du système statique, prise au «Temps 5» comme le montre la figure 34, est fournie (comme données d’entrée) à l’algorithme. Cette configuration est définie comme suit: allées comprenant six nouvelles charges apparues (appartenant au nouveau batch). Chaque nouvelle charge est identifiée par un numéro de séquence unique en fonction de la nouvelle séquence de sortie de ce nouveau batch: C’est une séquence réalisable. Nous connaissons les distances temporelles par rapport à la dernièreallée :
La date 0 est fixée par l’injection simultanée des deux nouvelles charges numérotées 1 et 4 (sur les allées a2et a1respectivement). Depuis cette origine de temps, l’algorithme donne une date d’injection pour chacune des six nouvelles charges de ce nouveau batch.
7.2.4 Lien entre les dates d’injection d’un batch et le temps réel qui s’écoule
Chaque charge de chaque batch se voit donner une date d’injection en fonction d’une origine de temps bien précise relatif au système statique. Ces dates d’injection doivent être placées au bon moment dans la configuration dynamique pour être en cohérence avec la solution dynamique.
Une échelle de temps commune entre tous les batchs permet de lier les injections de toutes les charges dans le système dynamique. Son unité de temps est le «pastemporel » du collecteur, comme défini plus haut. Appelons «Temps» le temps qui s’écoule de cette échelle de temps commune, avec le Temps 0 représentant la date de début des opérations dans le système.
Les dates d’injection données par l’algorithme sont à replacer correctement dans cette échelle de temps commune. Il convient pour cela de trouver la correspondance temporelle, dans le système dynamique, de la situation décrite à la date 0 du batch. C’est-à-dire qu’il faut faire correspondre la date 0 du batch avec le Temps de l’échelle commune permettant réellement la première injection de la charge de ce batch. Il faudra ensuite décaler toutes les dates d’injection de ce batch d’exactement ce temps.
Pour cela, il faut connaitre le Temps (aussi noté «Tb») auquel l’appel de l’algorithme a été lancé et la (ou au moins une des) première(s) charge(s) du batch à être injectée au plus tôt sur le collecteur, appelons-là . La date 0 du batch correspond à l’action d’injection de cette charge , et elle est effectuée réellement par le système dynamique exactement pas temporels après l’appel.
En revenant à notre exemple, il faut ajouter à chaque date d’injection calculée par l’algorithme pour le nouveau batch (pour tout , la date actuelle (date d’appel de l’algorithme, ici le Temps 5 (c'est-à-dire Tb=5) plus la position de la première charge injectée du nouveau batch dans la nouvelle séquence (ici c’est la charge 1 donc il faut ajouter plus la distance entre l’allée et celle contenant cette première charge injectée (ici . En remarquant que la charge 4 du nouveau batch est aussi injectée en première sur le collecteur (en même temps que la charge 1 du nouveau batch), nous aurions pu la choisir et ajouter ; cela revient bien au même que d’ajouter .
Pour l’application dynamique, nous faisons une transformation linéaire des temps d’injection comme suit:
Dans ce cas, la date au plus tôt de la première charge de la nouvelle séquence passant devant sera exactement , avec la première charge de la nouvelle séquence à être injectée sur le collecteur (n’étant pas forcément la première charge de la nouvelle séquence). Or, nous savons que est un max atteint exactement par cette charge , soit . Ainsi nous savons que la première charge de la nouvelle séquence passera devant à , dans l’échelle de temps commune.
Une façon équivalente de donner les temps d’injection dans l’échelle de temps commune est, par définition, de donner à l’algorithme , dans le cas où nous prenons connaissance du système exactement à un instant , avec dernière charge de la séquence de l’instant précédent.
Dans l’exemple précédent, l’instant correspond exactement à la condition donc nous aurions pu appeler l’algorithme avec (plutôt que 3) et nous aurions directement eu les temps d’injection exprimés dans l’échelle de temps commune.
Au final, notre système peut être représenté comme le montre la figure 35 . Dans l’échelle de temps commune:
  • les dates d’injection des charges 6, 7 et 8 du batch précédent sont notées Temps 8, Temps 9 et Temps 10 respectivement; et
  • les dates d’injection des charges 1, 2, 3, 4, 5 et 6 du nouveau batch sont notées Temps 9, Temps 10, Temps 14, Temps 9, Temps 13 et Temps 11 respectivement.
8. DETERMINATION DES DATES D’INJECTION DES CHARGES, POUR UN COLLECTEUR TRAITANT UN OU PLUSIEURS FLUX PERTURBATEURS
Nous supposons qu’il existe maintenant au moins un flux perturbateur (de charges perturbatrices) déjà présent sur le collecteur. Ces charges perturbatrices ne font partie d’aucun des flux d’injection (flux entrants), par conséquent elles ne sont pas ordonnées dans la séquence de sortie souhaitée des flux d’injection. Ces charges perturbatrices perturbent l’introduction des charges utiles contenues dans les flux d’injection car elles occupent des places sur le collecteur. Il faut prendre en compte ces obstructions qui bloquent l’injection de charges utiles de temps en temps. De plus, si ces charges perturbatrices disparaissent du collecteur entre les allées d’injection, cela peut créer des espaces vides dans le flux de sortie du collecteur. Notre objectif est toujours de respecter une séquence de sortie en maximisant le débit du collecteur et ainsi minimiser ces espaces vides.
Pour parvenir à cet objectif, nous utilisons des listes de dates non valides à exploiter avec la modélisation du Job Shop vu précédemment.
Le tableau suivant donne de nouvelles notations nécessaires pour la suite (récapitulatif des notations pour les flux perturbateurs).
Le tableau suivant donne de nouvelles notations pour les flux perturbateurs.
Flux perturbateur
Nombre total de charges perturbatrices
Numéro de la dernière allée devant laquelle passe la charge perturbatrice
Numéro de la première allée devant laquelle passe la charge perturbatrice
Liste des dates interdites pour une injection de charge utile par l’allée
Liste ordonnée des charges perturbatrices
La charge perturbatrice du flux perturbateur
Durée qui sépare la charge perturbatrice de la charge perturbatrice dans le flux perturbateur, en nombre de «pas», à un instant donné.
Date d’arrivée de la première charge perturbatrice du flux perturbateur devant l’allée , dans le cas particulier où cette charge passe effectivement devant cette allée (lien avec
Distance entre la charge perturbatrice par rapport à la dernière allée à la date
Date à laquelle la charge perturbatrice est injectée «fictivement» devant l’allée . (fictivement si car dans ce cas, la charge p ne passera pas devant l’allée
8.1 MODELISATION DU SYSTEME AVEC UN FLUX PERTURBATEUR SUBI
Les charges perturbatrices du flux perturbateur bloquent l’injection d’une charge utile sur le collecteur lorsqu’elles passent devant les allées d’injection. Il faut donc calculer les dates non valides pour une injection d’une charge utile pour chaque allée. Nous cherchons maintenant à calculer les nouvelles dates d’injection des charges utiles en tenant compte du flux perturbateur subi (sur lequel par définition nous supposons n’avoir aucun contrôle). Nous noterons qu’il peut y avoir désormais des espaces libres dans le flux de sortie, nous recherchons cependant la minimisation optimale de ces espaces inoccupés.
8.1.1 Création de la liste des dates non valides
Nous pouvons prendre en compte un flux perturbateur subi, comprenant des charges perturbatrices qui restent sur le collecteur, passant ainsi devant toutes les allées et faisant partie du flux final du collecteur (mélangé avec les charges utiles des flux d’injection). Nous pouvons également prendre un compte un flux perturbateur subi, comprenant des charges perturbatrices présentes sur le collecteur mais disparaissant entre les allées d’injection, créant ainsi des emplacements libres devant certaines allées mais pas toutes. Nous pouvons également prendre en compte le cas d’un mélange de ces types de flux perturbateurs subis, ainsi que des charges perturbatrices arrivant et repartant entre les allées. Tout est envisageable, nous pouvons même prendre en compte une obstruction quelconque sur un ou plusieurs pas du collecteur (une obstruction n’étant pas obligatoirement une charge perturbatrice mais pouvant également être un endroit du collecteur qui est abimé, réservé, etc.).
Dans tous les cas, l’idée est de prendre en compte les charges perturbatrices et/ou autres obstructions, pour calculer les dates non valides pour une injection d’une charge utile d’une allée. Les dates non valides sont obtenues en calculant les instants de passages de chaque obstruction (c’est-à-dire chaque charge perturbatrice du flux perturbateur ou autre obstruction) devant cette allée d’injection. Notons l’ensemble des dates non valides où l’allée ne peut pas injecter une charge utile à cause des charges perturbatrices et/ou obstructions quelconques de pas temporels du collecteur.
8.1.2 Idée de la solution pour des allées consécutivement bien réparties
Ce problème de planification Job Shop, avec une liste de dates non valides pour chaque machine, peut être résolu en suivant presque les mêmes étapes que celles du paragraphe 6.2.1.
Voici la démarche dans le cas particulier d’allées bien réparties par pas de convoyeur:
Pour commencer, en supposant que la première charge de la séquence provienne de l’allée , les opérations associées à ce job commencent aux dates à partir d’une date qui permet d’avoir les dates respectivement sur chaque machine libres (c’est-à-dire sans obstruction}.
Ensuite, les opérations du job correspondant à la prochaine charge de la séquence seront planifiées d'abord en exécutant l'opération à traiter sur la machine . Cette opération sera planifiée juste après (sans temps mort) l’opération précédente programmée sur . En supposant que cette opération commence à un nouvel instant (différent de l’instant t défini plus haut pour les calculs liés à la première charge) l'opération sur la machine (si elle existe) est planifiée à l’instant , et ainsi de suite, jusqu'à ce que toutes les opérations soient programmées. Si une opération ne peut pas être opérée à ces dates indiquée à cause d’une obstruction, nous recommençons la planification du job (entier) en décalant l’instant t d’exécution de l'opération à traiter sur la machine d’une unité de temps (c’est-à-dire d’un emplacement, pas ou créneau).
Cette procédure est appliquée de manière itérative sur chacun des jobs suivants de la séquence donnée.
Les dates réelles d’injection des charges utiles sur le collecteur sont déduites directement à partir du début de la première opération de chaque job. L’unité de temps utilisée est celle définie plus haut.
ATTENTION: cette méthode ne donne pas toujours un flux sans espaces vides. Le flux perturbateur et/ou les obstructions sont subis, donc nous maximisons le débit sans garantie de maximalité.
8.1.3 Idée de la solution avec un flux perturbateur subi dans le cas général
S’appuyant sur le paragraphe ci-dessus, voici la démarche suivie dans le cas général pour calculer les dates réelles d’injection lors de la fusion de plusieurs flux comprenant des flux entrants (flux d’injection) et (au moins) un flux perturbateur subi.
Considérons que nous pouvons commencer à planifier les jobs à partir de l’instant N’oublions pas qu’il faut suivre un ordre particulier dans l’exécutions des opérations de la machine tout en minimisant les temps morts de cette machine.
Pour commencer, appelons la date au plus tôt à laquelle le job associé à la première charge de la séquence peut être affecté sur la machine , s’il n’y avait pas de flux perturbateur. Planifions les charges dans l’ordre donné par la séquence souhaitée sans prendre en compte le flux perturbateur, et ensuite on modifie la date d’injection en suivant cet ordre. En effet, on note que la planification d’une charge impacte uniquement les charges tel que
Pour le job associé à une charge , planifions d’abord son opération à traiter sur la machine . Cette opération sera planifiée à si c’est la charge , sinon juste après (sans temps mort) l’opération précédente programmée sur . En supposant que cette opération sur commence à l'instant , l'opération sur la machine (si elle existe) est planifiée à l’instant . Puis l'opération sur la machine (si elle existe) est planifiée à l’instant , et ainsi de suite, jusqu'à ce que toutes les opérations soient programmées. Si une opération ne peut pas être opérée à ces dates indiquées à cause d’une obstruction, nous recommençons la planification du job (entier) en décalant l’instant t d’exécution de l'opération à traiter sur la machine d’une unité de temps (c’est-à-dire d’un emplacement, pas ou créneau).
Cette procédure est appliquée de manière itérative sur chacun des jobs suivants de la séquence donnée.
Il faut décaler, si besoin, la date 0 et la date pour les faire correspondre à leur définition. Le décalage de la date 0, devant correspondre à la première injection possible de charge sur le collecteur, se répercute sur l’ensemble des planifications (dates d’injection) qui seront à décaler à leur tour.
Les dates réelles d’injection des charges utiles sur le collecteur sont déduites directement à partir du début de la première opération de chaque job. L’unité de temps utilisé est celle définie plus haut.
ATTENTION: la présence de flux perturbateur subi ne permet pas toujours un flux sans espace vide sur le collecteur. Avec cette méthode, nous maximisons le débit du collecteur, sans garantie de maximalité.
8.1.4 Algorithme dans le cas général
L’algorithme 3 ci-après calcule les dates d’injection des charges utiles en tenant compte du flux perturbateur matérialisé par des dates d’interdiction d’injection par allée.
La date 0 correspond à la première charge injectée sur le collecteur, au plus tôt. La date est toujours la date à laquelle la première charge de la séquence passe devant l’allée . La formule générale pour reste valide s’il n’y pas de conflit avec le flux perturbateur lors de l’injection de la première charge de la séquence.
L’algorithme 3 donne la date d’injection de chaque charge en prenant en compte le flux perturbateur et en corrigeant la date si nécessaire. Le flux perturbateur est pris en compte par le calcul préalable des ensembles donnant les dates de passage de chaque charge perturbatrice de ce flux perturbateur devant l’allée . Ces dates sont donc des dates d’injection interdites (aussi appelées dates non valides pour une injection de charge utile).
Nous utilisons dans cet algorithme la notation simplifiée « » pour définir une charge correspondant à la charge de la séquence , définie également par sa position dans l’allée .
// Donner les , calcul à faire au cas par cas
// Calcul théorique de
// Date théorique du passage de devant l’allée
// Planification de la charge en évitant toutes obstructions
;
// Date finale d’injection pour la charge
// Date théorique de passage de devant l’allée
// Décalage éventuel de la date 0
set to
La figure 36 est un diagramme de l’algorithme 3 ci-dessus.
La figure 47 présente un organigramme d’un procédé de fusion de k flux entrants en un flux sortant, selon un deuxième mode de réalisation particulier basé sur l’algorithme 3 (illustré sur la figure 36). Le procédé est exécuté au moins une fois par le système de pilotage. Une exécution donnée est effectuée à un instant Tb et comprendles étapes suivantes :
- obtention (étape 471) d’un ensemble L comprenant n charges utiles réparties à l’instant Tb sur les k allées et devant être injectées sur le collecteur pour former une séquence de sortie , chacune des n charges utiles étant identifiée par un unique numéro de séquence au sein de la séquence de sortie , chacune des k allées contenant un ensemble ordonné, selon un sens croissant du numéro de séquence, de hicharges utiles devant être injectées une à une sur le collecteur;
- pour chaque allée ai, , obtention (étape 472) d’un ensemble de dates non valides pour une injection d’une des charges utiles de l’allée aisur le collecteur à cause d’une charge perturbatrice non contrôlée ou d’une autre obstruction d’un pas temporel du collecteur;
- en ne prenant pas en compte les ensembles , , calcul (étape 473) d’une date t0à laquelle la première charge utile de la séquence de sortie passe devant l’allée ak;
- pour la première charge utile de la séquence de sortie , en supposant que la première charge utile provienne de l’allée ai(étape 474) :
a) initialisation de t avec t0;
b) si aucune des dates , , ,…, n’appartient respectivement aux ensembles , , ,…, , calcul d’une date d’injection de la première charge utile sur le collecteuravec la formule suivante : , avec ;
c) si une des dates , , ,…, appartient respectivement à un des ensembles , , ,…, , incrémentation de t d’une unité et réitération des étapes b) et c) avec la nouvelle valeur de t;
- pour chaque charge utile suivante de la séquence de sortie , , en supposant que la charge utile suivante provienne de l’allée ai(étape 475) :
a’) incrémentation de t d’une unité, avec t utilisé pour calculer la date d’injection de la charge utile précédente ;
b’) si aucune des dates , , ,…, n’appartient respectivement aux ensembles , , ,…, , calcul d’une date d’injection de la charge utile suivante sur le collecteuravec la formule suivante : , avec ;
c’) si une des dates , , ,…, appartient respectivement à un des ensembles , , ,…, , incrémentation de t d’une unité et réitération des étapes b’) et c’) avec la nouvelle valeur de t;
- calcul (476) de selon la formule suivante: ;
- si , modification (477) des n dates d’injection selon la formule suivante: ;
- commande (étape 478) du collecteur et des k allées, pour une injection des n charges utiles sur le collecteur conformément aux n dates d’injection .
8.1.5 Description d’un mode de réalisation particulier
Parlons d’un flux perturbateur subi déjà présent sur le collecteur, non pris en compte par la séquence souhaitée au final car les charges perturbatrices vont toutes disparaitre avant la dernière allée d’injection. C’est le cas par exemple lorsque nous nous plaçons dans le contexte de la figure 50 (système automatisé GTP Intelis PTS) avec la gestion de l’injection sur le collecteur des charges utiles venant du système automatisé (PTS) mais aussi du retour des charges qui arrivent sur ce collecteur pour retourner dans le système automatisé P(TS) (voir le paragraphe 2.2 sur le contexte de cette application possible).
La figure 37 illustre cette configuration, avec des charges perturbatrices (marquées d’une croix) du flux retour (constituant le flux perturbateur subi) qui retournent vers le système automatisé (PTS).
D’après cette configuration, nous faisons deux constats:
- aucune charge perturbatrice du flux retour (et donc du flux perturbateur) ne passera devant la dernière allée; et
- les charges perturbatrices quittant le collecteur (vers le système automatisé (PTS)) avant l’allée ne posent aucun problème et seront donc pas étudiées. Toutes les charges restantes passeront forcément devant l’allée .
8.1.5.1 Calcul des listes de dates non valides induites par le flux de charges perturbatrices
Soit un flux de charges perturbatrices déjà présentes sur le collecteur et devant sortir du collecteur entre les allées d’injection. Ce flux perturbateur, appelé flux retour, correspond aux charges devant retourner en stock dans le système automatisé (PTS). Ces charges perturbatrices doivent en effet passer devant une à plusieurs allées d’injection. Pour chaque charge perturbatrice de ce flux retour (flux perturbateur), on note gp(respectivement lp) le numéro de la première (respectivement dernière) allée devant laquelle passe la charge perturbatricep. Nous allons voir deux méthodes permettant de calculer les dates non valides d’injection ( , induites par le flux retour en fonction des données connues.
Dans ce mode de réalisation particulier, , pour toute charge du flux retour spécifique au système automatisé (PTS). Nous donnerons cependant la solution générale avec la notation .
  • Soit, dans le cas spécifique précité d’un flux retour, nous connaissons la date d’arrivée (noté de la première charge perturbatrice du flux retour (flux perturbateur) devant l’allée numéro (ou encore machine ). Nous connaissons aussi dans quel ordre les charges perturbatrices de ce flux retour sont réparties sur le collecteur (appelons cette séquence ) et la durée qui sépare chaque charge perturbatrice d’une autre charge perturbatrice de ce flux perturbateur. Soit donne la charge perturbatrice du flux retour et donne la durée qui sépare la charge perturbatrice de la charge perturbatrice dans le flux perturbateur en nombre de «pas».
Alors, les instants sont encombrés pour la machine et forment .
  • Pour la machine , les dates encombrées sont les
  • Une autre façon de voir les choses serait de copier les dates «encombrées» (ou non valides) de la machine des charges perturbatrices qui ont et d’ajouter à tous ces instants pour obtenir la liste des dates encombrées pour la machine
  • Soit, dans un cadre plus général, nous connaissons la distance de chaque charge perturbatrice par rapport à la dernière allée à la date que nous noterons . Avec ces données-ci, nous calculons les comme suit:
;
;
8.1.5.2 Exemples
Reprenons la configuration de l’exemple du paragraphe 6.2.2.
Soit allées comprenant deux ou trois charges utiles. Chaque charge utile est identifiée par un numéro de séquence unique en fonction de la séquence de sortie C’est une séquence réalisable. Nous connaissons les distances de chaque allée par rapport à la dernière:
Comme illustré sur la figure 38 , on suppose que cette fois il y a trois pas temporels du collecteur obstrués par des charges perturbatrices A, B et C. Nous savons que ces charges perturbatrices passent devant certaines allées et disparaissent du collecteur par la suite. Les charges A et B passent devant les allées a1et a2. Enfin la charge C passe devant toutes les allées a1, a2et a3. Ainsi, nous avons et , ainsi que .
Nous montrons un état du système à la date 0, lorsque la première charge utile du batch va être injectée sur la première place libre du collecteur. Sur le schéma, une position du collecteur non occupée est vide, les croix indiquent les positions prisent par les charges utiles du batch précédent et les lettres les charges perturbatrices du flux perturbateur. La position du flux perturbateur à la date 0 nous permet de déduire les informations suivantes: et
La charge perturbatrice B oblige la charge utile 4 à se décaler dans le temps d’une position et va laisser un espace vide dans le flux final du collecteur. Ensuite la charge perturbatrice C oblige la charge utile 7 à se décaler encore d’une position, laissant un espace vide plus tard dans le flux final du collecteur.
La figure 39 est un diagramme de Gantt illustrant la solution proposée dans ce cas. Nous pouvons voir que si le flux perturbateur était contrôlé (et non pas subi), le premier espace vide pourrait être comblé par l’allée ou et le deuxième espace vide uniquement par l’allée Ainsi, on éviterait les espaces vides, et on augmenterait le débit du flux final (flux sortant) du collecteur.
8.2 MODELISATION DU SYSTEME AVEC UN FLUX PERTURBATEUR CONTROLE
Nous avons vu que lorsque le flux perturbateur était subi, il occasionnait des espaces vides dans le flux final du collecteur. Il y a donc un intérêt de contrôler le flux perturbateur pour éviter ces espaces vides. Nous pourrons ainsi prioriser les charges des flux d’injection sur les charges des flux perturbateurs et arriver à faire passer les charges perturbatrices dans les espaces libres laissés par l’injection des différentes allées.
8.2.1 Formulation du problème
Nous supposons maintenant que nous pouvons contrôler le flux perturbateur. Cela revient à maitriser l’injection des charges perturbatrices de ce flux perturbateur, et nous devons décider la date (notée ) à laquelle la charge perturbatrice est injectée devant l’allée a1de manière à ne pas perturber le flux de sortie (flux sortant formé par la fusion des flux d’injection), c’est-à-dire en ne créant pas d’espace vide dans le flux de sortie.
8.2.2 Idée de l’algorithme solution
Nous allons d’abord calculer les dates d’injection des charges utiles provenant des allées, comme s’il n’y avait pas de flux perturbateur (cf. Section 6). Ce sont ces dates d’injection qui nous donnerons les dates indisponibles ( pour une charge perturbatrice passant devant une allée ( . Puis nous calculerons, en prenant en compte la liste des dates non valides, l’injection des charges du flux perturbateur. Pour ce faire, nous planifions dans l’ordre d’arrivée des charges perturbatrices, chacun de leur passage devant les allées au plus tôt, c’est-à-dire dès que toutes ces dates de passage dans les machines respectives tombent sur des dates libres.
8.2.3 Algorithme général
L’algorithme 4 détaillé ci-dessous donne les dates d’injection des charges utiles ainsi que le contrôle du flux perturbateur. Les charges à injecter constituent le flux final du collecteur. Leur injection est décidée sans prendre en compte le flux perturbateur. Ensuite, nous déterminons quand laisser passer les charges du flux perturbateur en considérant cette fois les charges utiles injectées comme jouant le même rôle que le flux subi dans l’algorithme 3 ci-dessus. Ainsi nous pouvons utiliser la même technique que précédemment, avec le calcul des ensembles donnant les dates de passage de chaque charge utile du flux injecté devant l’allée . Ces dates sont donc des dates d’injection interdites pour les charges perturbatrices.
Rappelons que donne la distance qui sépare les charges perturbatrices à la date 0et donne la date, sans attente, d’arrivée de la charge du flux perturbateur devant l’allée numéro .
Nous utilisons dans cet algorithme la notation simplifiée « » pour définir une charge correspondant à la charge de la séquence , définie également par sa position dans l’allée .
// Calcul théorique de
// Arrivée de la première charge perturbatrice devant
// Charge identifiée par leur place dans
;
// Attente possible de l’arrivée de p+1
La figure 40 est un diagramme de l’algorithme 4 ci-dessus.
La figure 48 présente un organigramme d’un procédé de fusion de k flux entrants en un flux sortant, selon un troisième mode de réalisation particulier basé sur l’algorithme 4 (illustré sur la figure 40). Le procédé est exécuté au moins une fois par le système de pilotage. Une exécution donnée est effectuée à un instant Tb et comprendles étapes suivantes :
- pour chaque charge utile provenant d’une allée ai, calcul (étape 481) des dates de passage de la charge utile devant les allées aià ak, connaissant la date d’injection de la charge utile sur le collecteur ;
- pour chaque allée ai, , obtention (étape 482) d’un ensemble contenant chaque date de passage d’une des charges utiles devant l’allée ai;
- pour chaque charge perturbatrice contrôléepd’un flux perturbateur contrôlé grâce à un moyen de contrôlesitué le long du collecteur et avant une allée ag(p)dans le sens de déplacement du collecteur, avec , ag(p)étant également la première allée, dans le sens de déplacement du collecteur, devant laquelle passe la charge perturbatrice contrôlée (étape 483) :
a) initialisation de t avec la date , avec représentant la date d’arrivée possible, en cas de non mise en attente, de la première charge perturbatrice contrôlée devant l’allée ak;
b) calcul des dates , ,…, de passage de la charge perturbatrice contrôlée devant les allées ag(p)à al(p), avec al(p)la dernière allée, dans le sens de déplacement du collecteur, devant laquelle passe la charge perturbatrice contrôlée;
c) si aucune des dates , ,…, n’appartient respectivement aux ensembles , ,…, , calcul d’une date fictive de passage de la charge perturbatrice contrôléepdevant l’allée a1, avec la formule suivante : ;
d) si une des dates , ,…, appartient respectivement à un des ensembles incrémentation de t d’une unité et réitération des étapes b), c) et d) avec la nouvelle valeur de t;
- commande (étape 484) du moyen de contrôle, pour une injection à la date de chaque charge perturbatrice contrôléepdevant l’allée ag(p).
8.2.4 Description d’un mode de réalisation particulier
Prenons l’exemple commun à tous les cas précédents pour pouvoir comparer les solutions finales.
Soit allées comprenant deux ou trois charges. Chaque charge est identifiée par un numéro de séquence unique en fonction de la séquence de sortie C’est une séquence réalisable. Nous connaissons les distances de chaque allée par rapport à la dernière: Le flux perturbateur est composé des charges A, B, C telles que , , et .
Cette fois, le flux perturbateur est contrôlable. Nous pouvons voir sur la figure 41 le point de contrôle de ce flux perturbateur, matérialisé par un rectangle vertical juste avant l’allée a1.
La figure 42 illustre, sous la forme d’un diagramme de Gantt, la solution sans prendre en compte le flux perturbateur («solution d’injection pure»).
La solution de l’algorithme prenant en compte le flux perturbateur, revient à glisser les charges perturbatrices dans les cases grisées, laissées vides par la solution d’injection pure. La charge A est laissée passée dès qu’elle arrive au point de contrôle du flux perturbateur alors que la charge B est retenue pendant une unité de temps. Cette attente permet de faire passer la charge perturbatrice B dans les espaces libres des injections, juste avant que la charge 5 ne soit injectée. Il en est de même avec la charge C et la charge 8 de la séquence.
La figure 43 illustre, sous la forme d’un diagramme de Gantt, la solution proposée pour contrôler le flux perturbateur (c'est-à-dire en choisissant le placement des charges perturbatrices). Les charges B et C ne forment plus d’espace vide dans le flux final du collecteur. Elles ont été intercalées à des endroits stratégiques afin que l’espace vide qu’elle laisse dans un premier temps soit ensuite comblé par une injection de charge temporellement compatible. Grâce au contrôle du flux perturbateur, nous avons montré que les espaces vides sur le collecteur étaient évitables.
8.3 MODELISATION DU SYSTEME AVEC UN FLUX PERTURBATEUR SUBI ET UN FLUX PERTURBATEUR CONTROLE
Dans le cas où il y a à la fois au moins un flux perturbateur subi et au moins un flux perturbateur contrôlé, nous procéderons ainsi.
Nous différencions les charges perturbatrices subies et celles contrôlées comme suit:
- Soit l’ensemble des charges perturbatrices subies à laisser obligatoirement passer sans contrôle dans la zone d’injection des allées du collecteur, chacune étant identifiée par un numéro de séquence unique correspondant à sa position dans l’ordre d’arrivée, (notée ).
Désignons par la distance de chaque charge perturbatrice par rapport à la dernière allée à la date et par respectivement le numéro de la première et dernière allée devant laquelle la charge perturbatrice doit passer.
Enfin, les ensembles donnent les dates d’indisponibilités de passage devant l’allée pour les charges utiles.
- Soit l'ensemble des charges perturbatrices à laisser passer sous contrôle dans la zone d’injection des allées du collecteur, chacune étant identifiée par un numéro de séquence unique correspondant à sa position dans l’ordre d’arrivée (notée .
Désignons par la distance de chaque charge perturbatrice par rapport à la dernière allée à la date et par respectivement le numéro de la première et dernière allée devant laquelle la charge perturbatrice doit passer.
Enfin, les ensembles donnent les dates d’indisponibilités de passage devant l’allée pour ces charges perturbatrices contrôlées.
L’algorithme 5 détaillé ci-dessous donne les dates d’injection des charges utiles ainsi que le contrôle du flux perturbateur, en tenant compte du flux perturbateur subi.
// Calcul théorique de
//Calcul des
// Charge devant
// Calcul des
// Date théorique du passage de devant l’allée
// Planification de la charge de
;
// Date finale d’injection pour la charge
// Place suivante devant
// Décalage éventuel de la date 0
set to
if
// calcul des
// calcul des
// Arrivée de la première charge perturbatrice devant
// Charge identifiée par sa place dans
;
// Attente possible de l’arrivée de p+1
La figure 45 est un diagramme de l’algorithme 5 ci-dessus.
La figure 49 présente un organigramme d’un procédé de fusion de k flux entrants en un flux sortant, selon un quatrième mode de réalisation particulier basé sur l’algorithme 5 (illustré sur la figure 45). Le procédé est exécuté au moins une fois par le système de pilotage. Une exécution donnée est effectuée à un instant Tb et comprendles étapes suivantes :
- pour chaque charge utile provenant d’une allée ai, calcul (étape 491) des dates de passage de la charge utile devant les allées aià ak, connaissant la date d’injection de la charge utile sur le collecteur ;
- pour chaque allée ai, , obtention (étape 492) d’un ensemble contenant d’une part chaque date de passage d’une des charges utiles devant l’allée aiet d’autre part l’ensemble de dates non valides pour une injection d’une des charges utiles de l’allée aisur le collecteur ;
- pour chaque charge perturbatrice contrôléepd’un flux perturbateur contrôlé grâce à un moyen de contrôlesitué le long du collecteur et avant une allée ag(p)dans le sens de déplacement du collecteur, avec , ag(p)étant également la première allée, dans le sens de déplacement du collecteur, devant laquelle passe la charge perturbatrice contrôlée (étape 493) :
a) initialisation de t avec la date , avec représentant la date d’arrivée possible, en cas de non mise en attente, de la première charge perturbatrice contrôlée devant l’allée ak;
b) calcul des dates , ,…, de passage de la charge perturbatrice contrôlée devant les allées ag(p)à al(p), avec al(p)la dernière allée, dans le sens de déplacement du collecteur, devant laquelle passe la charge perturbatrice contrôlée;
c) si aucune des dates , ,…, n’appartient respectivement aux ensembles , ,…, , calcul d’une date fictive de passage de la charge perturbatrice contrôléepdevant l’allée a1, avec la formule suivante : ;
d) si une des dates , ,…, appartient respectivement à un des ensembles incrémentation de t d’une unité et réitération des étapes b), c) et d) avec la nouvelle valeur de t;
- commande (étape 494) du moyen de contrôle, pour une injection à la date de chaque charge perturbatrice contrôléepdevant l’allée ag(p).
9. CONCLUSION
La durée de trajet étant critique pour avoir un taux de production le plus élevé possible, savoir regrouper plusieurs flux entrants sur un collecteur est très important dans le domaine de la logistique. Utiliser l’ensemble des capacités mécaniques de chaque système et donc maximiser le débit d’un tel collecteur est crucial pour ne pas perdre de temps dans la préparation de commande par exemple.
Nous avons atteint le débit optimal en injectant les charges au plus tôt de façon synchronisée. Nous avons notamment atteint les capacités maximales du collecteur lorsqu’il est dédié aux flux d’injection. En plus de la modélisation et résolution mathématique, nous avons extrait une formule permettant de calculer directement les dates d’injection de chaque charge. Ces résultats sont donnés pour respecter une séquence finale de sortie des charges une fois que celles-ci sont toutes sur le collecteur, cela permet de combiner l’optimisation d’une vitesse et d’un tri.
Nous avons aussi traité la gestion de plusieurs types de flux sur le collecteur, en appelant flux perturbateur un flux différent des flux d’injection. Nous savons calculer les dates d’injection grâce à un algorithme prenant en compte ce flux perturbateur lorsqu’il est subi. Toutefois, le débit est optimal sans garantie de maximalité. En effet, un tel flux perturbateur subi ne permet pas de rattraper un espace laissé par une charge perturbatrice qui aurait quitté le collecteur entre les allées d’injection.
Nous avons également proposé une solution dans laquelle le flux perturbateur est contrôlé. Un autre algorithme a été donné pour faire passer le flux perturbateur contrôlé, de façon à prioriser le débit maximal du collecteur une fois toutes les allées d’injection passées. Le contrôle de ce flux perturbateur contrôlé permet un débit maximal des flux d’injection une fois sur le collecteur lorsque toutes les charges du flux perturbateur contrôlé disparaissent avant la dernière allée d’injection. Sinon, les charges perturbatrices restantes sont comprises dans le flux final du collecteur et insérées dans la séquence sans espace.
Un algorithme a également été donné pour gérer à la fois au moins un flux subi (obstructions qui ne sont pas obligatoirement des charges perturbatrices) et au moins un flux contrôlé (charges perturbatrices).
10. EXEMPLE DE SYSTEME DE PILOTAGE
La solution proposée est un procédé de fusion, au sein d’un entrepôt logistique, de k flux entrants de charges utiles, transportés respectivement par k convoyeurs appelés allées , en un flux sortant de charges utiles, transporté par un autre convoyeur appelé collecteur.
Le procédé de fusion est exécuté par un système de pilotage. Il s’agit est par exemple d’un système informatique de gestion central (aussi appelé SGE, pour «Système de Gestion d'Entrepôt», ou WCS, pour «Warehouse Control System» en anglais).
La figure 44 présente la structure du système de pilotage 90 selon un mode de réalisation particulier de l'invention. Ce système de pilotage comprend une mémoire vive 92 (par exemple une mémoire RAM), une unité de traitement 91, équipée par exemple d'un processeur, et pilotée par un programme d'ordinateur 930 stocké dans une mémoire morte 93 (par exemple une mémoire ROM ou un disque dur).
A l'initialisation, les instructions de code du programme d'ordinateur sont par exemple chargées dans la mémoire vive 92 avant d'être exécutées par le processeur de l'unité de traitement 91, pour mettre en œuvre le procédé de fusionde l’invention (selon l’un quelconque des différents modes de réalisation décrits plus haut). L'unité de traitement 91 reçoit en entrée des informations 94 relatives aux flux entrants. Le processeur de l'unité de traitement 91 traite les informations 94 et génère en sortie des instructions ou commandes 95 permettant de piloter (commander) différents éléments compris dans le système, notammentles allées, le collecteur, les moyens de contrôle, etc.
Cette figure 44 illustre seulement une manière particulière, parmi plusieurs possibles, de réaliser la technique de l’invention, dans l’un quelconque de ses modes de réalisation. En effet, le système de pilotage se réalise indifféremmentsur une machine de calcul reprogrammable (par exemple un ordinateur PC, un processeur DSP, un microcontrôleur, etc.) exécutant un programme comprenant une séquence d’instructions, ou sur une machine de calcul dédiée (par exemple un ensemble de portes logiques comme un FPGA ou un ASIC, ou tout autre module matériel).
Dans le cas où le système de pilotage est réalisé avec une machine de calcul reprogrammable, le programme correspondant (c'est-à-dire la séquence d’instructions) peut être stocké dans un médium de stockage amovible (tel que par exemple une disquette, un CD-ROM ou un DVD-ROM) ou non, ce médium de stockage étant lisible partiellement ou totalement par un ordinateur ou un processeur.

Claims (9)

  1. Procédé de fusion, au sein d’un entrepôt logistique, de k flux entrants de charges utiles, transportés respectivement par k convoyeurs appelés allées , en un flux sortant de charges utiles, transporté par un autre convoyeur appelé collecteur,
    l’entrepôt logistique étant tel que:
    - les k allées sont de type «premier entré premier sorti», réparties le long du collecteur et numérotées de a1à akdans un sens de déplacement du collecteur, et
    - est une distance temporelle entre les allées aiet akexprimée en unités temporelles correspondant chacune à un pas temporel du collecteur,
    le procédé étant exécuté au moins une fois par un système de pilotage, une exécution donnée étant effectuée à un instant Tb et comprenant:
    - obtention (461) d’un ensemble L comprenant n charges utiles réparties à l’instant Tb sur les k allées et devant être injectées sur le collecteur pour former une séquence de sortie , chacune des n charges utiles étant identifiée par un unique numéro de séquence au sein de la séquence de sortie , chacune des k allées contenant un ensemble ordonné, selon un sens croissant du numéro de séquence, de hicharges utiles devant être injectées une à une sur le collecteur;
    - calcul (462) d’une date t0à laquelle la première charge utile de la séquence de sortie passe devant l’allée ak;
    - calcul (463) d’une date d’injection sur le collecteur pour chacune des n charges utiles de l’ensemble L, selon la formule suivante: , avec :
    * une charge utile de l’ensemble L et provenant de la jèmeposition dans l’allée ai, , ,
    * le numéro de séquence de la charge utile dans la séquence de sortie ;
    - commande (464) du collecteur et des k allées, pour une injection des n charges utiles sur le collecteur conformément aux n dates d’injection .
  2. Procédé selon la revendication 1, dans lequel est une distance temporelle entre les allées aiet ai’exprimée en unités temporelles correspondant chacune à un pas temporel du collecteur, et comprenant en outre les étapes suivantes:
    - pour chaque charge utile provenant d’une allée ai, calcul (481) des dates de passage de la charge utile devant les allées aià ak, connaissant la date d’injection de la charge utile sur le collecteur ;
    - pour chaque allée ai, , obtention (482) d’un ensemble contenant chaque date de passage d’une des charges utiles devant l’allée ai;
    - pour chaque charge perturbatrice contrôléepd’un flux perturbateur contrôlé grâce à un moyen de contrôlesitué le long du collecteur et avant une allée ag(p)dans le sens de déplacement du collecteur, avec , ag(p)étant également la première allée, dans le sens de déplacement du collecteur, devant laquelle passe la charge perturbatrice contrôlée (483) :
    a) initialisation de t avec la date , avec représentant la date d’arrivée possible, en cas de non mise en attente, de la première charge perturbatrice contrôlée devant l’allée ak;
    b) calcul des dates , ,…, de passage de la charge perturbatrice contrôlée devant les allées ag(p)à al(p), avec al(p)la dernière allée, dans le sens de déplacement du collecteur, devant laquelle passe la charge perturbatrice contrôlée;
    c) si aucune des dates , ,…, n’appartient respectivement aux ensembles , ,…, , calcul d’une date fictive de passage de la charge perturbatrice contrôléepdevant l’allée a1, avec la formule suivante : ;
    d) si une des dates , ,…, appartient respectivement à un des ensembles incrémentation de t d’une unité et réitération des étapes b), c) et d) avec la nouvelle valeur de t;
    - commande (484) du moyen de contrôle, pour une injection à la date de chaque charge perturbatrice contrôléepdevant l’allée ag(p).
  3. Procédé de fusion, au sein d’un entrepôt logistique, de k flux entrants de charges utiles, transportés respectivement par k convoyeurs appelés allées , en un flux sortant de charges utiles, transporté par un autre convoyeur appelé collecteur,
    l’entrepôt logistique étant tel que:
    - les k allées sont de type «premier entré premier sorti», réparties le long du collecteur et numérotées de a1à akdans un sens de déplacement du collecteur, et
    - est une distance temporelle entre les allées aiet akexprimée en unités temporelles correspondant chacune à un pas temporel du collecteur,
    le procédé étant exécuté au moins une fois par un système de pilotage, une exécution donnée étant effectuée à un instant Tb et comprenant:
    - obtention (471) d’un ensemble L comprenant n charges utiles réparties à l’instant Tb sur les k allées et devant être injectées sur le collecteur pour former une séquence de sortie , chacune des n charges utiles étant identifiée par un unique numéro de séquence au sein de la séquence de sortie , chacune des k allées contenant un ensemble ordonné, selon un sens croissant du numéro de séquence, de hicharges utiles devant être injectées une à une sur le collecteur;
    - pour chaque allée ai, , obtention (472) d’un ensemble de dates non valides pour une injection d’une des charges utiles de l’allée aisur le collecteur à cause d’une charge perturbatrice non contrôlée ou d’une autre obstruction d’un pas temporel du collecteur;
    - en ne prenant pas en compte les ensembles , , calcul (473) d’une date t0à laquelle la première charge utile de la séquence de sortie passe devant l’allée ak;
    - pour la première charge utile de la séquence de sortie , en supposant que la première charge utile provienne de l’allée ai(474) :
    a) initialisation de t avec t0;
    b) si aucune des dates , , ,…, n’appartient respectivement aux ensembles , , ,…, , calcul d’une date d’injection de la première charge utile sur le collecteuravec la formule suivante : , avec ;
    c) si une des dates , , ,…, appartient respectivement à un des ensembles , , ,…, , incrémentation de t d’une unité et réitération des étapes b) et c) avec la nouvelle valeur de t;
    - pour chaque charge utile suivante de la séquence de sortie , , en supposant que la charge utile suivante provienne de l’allée ai(475) :
    a’) incrémentation de t d’une unité, avec t utilisé pour calculer la date d’injection de la charge utile précédente ;
    b’) si aucune des dates , , ,…, n’appartient respectivement aux ensembles , , ,…, , calcul d’une date d’injection de la charge utile suivante sur le collecteuravec la formule suivante : , avec ;
    c’) si une des dates , , ,…, appartient respectivement à un des ensembles , , ,…, , incrémentation de t d’une unité et réitération des étapes b’) et c’) avec la nouvelle valeur de t;
    - commande (478) du collecteur et des k allées, pour une injection des n charges utiles sur le collecteur conformément aux n dates d’injection .
  4. Procédé selon la revendication 3, dans lequel l’étape de commande (478) du collecteur et des k allées, pour une injection des n charges utiles sur le collecteur conformément aux n dates d’injection , est précédée des étapes suivantes:
    - calcul (476) de selon la formule suivante: ;
    - si , modification (477) des n dates d’injection selon la formule suivante: .
  5. Procédé selon la revendication 3 ou 4, dans lequel est une distance temporelle entre les allées aiet ai’exprimée en unités temporelles correspondant chacune à un pas temporel du collecteur, et comprenant en outre les étapes suivantes:
    - pour chaque charge utile provenant d’une allée ai, calcul (491) des dates de passage de la charge utile devant les allées aià ak, connaissant la date d’injection de la charge utile sur le collecteur ;
    - pour chaque allée ai, , obtention (492) d’un ensemble contenant d’une part chaque date de passage d’une des charges utiles devant l’allée aiet d’autre part l’ensemble de dates non valides pour une injection d’une des charges utiles de l’allée aisur le collecteur ;
    - pour chaque charge perturbatrice contrôléepd’un flux perturbateur contrôlé grâce à un moyen de contrôlesitué le long du collecteur et avant une allée ag(p)dans le sens de déplacement du collecteur, avec , ag(p)étant également la première allée, dans le sens de déplacement du collecteur, devant laquelle passe la charge perturbatrice contrôlée (493) :
    a) initialisation de t avec la date , avec représentant la date d’arrivée possible, en cas de non mise en attente, de la première charge perturbatrice contrôlée devant l’allée ak;
    b) calcul des dates , ,…, de passage de la charge perturbatrice contrôlée devant les allées ag(p)à al(p), avec al(p)la dernière allée, dans le sens de déplacement du collecteur, devant laquelle passe la charge perturbatrice contrôlée;
    c) si aucune des dates , ,…, n’appartient respectivement aux ensembles , ,…, , calcul d’une date fictive de passage de la charge perturbatrice contrôléepdevant l’allée a1, avec la formule suivante : ;
    d) si une des dates , ,…, appartient respectivement à un des ensembles incrémentation de t d’une unité et réitération des étapes b), c) et d) avec la nouvelle valeur de t;
    - commande (494) du moyen de contrôle, pour une injection à la date de chaque charge perturbatrice contrôléepdevant l’allée ag(p).
  6. Procédé selon l’une quelconque des revendications 1 à 5, dans lequel la date t0est calculée avec la formule suivante:
    , avec:
    - une charge utile d’un ensemble L’ comprenant des charges utiles placées en première position des allées situées, en suivant le sens de déplacement du collecteur, depuis l’allée a1jusqu’à l’allée contenant la première charge utile de la séquence de sortie .
  7. Procédé selon l’une quelconque des revendications 1 à 6, caractérisé en ce qu’il est exécuté de manière itérative, chaque nouvelle exécution étant effectuée à un nouvel instant Tb calculé avec la formule suivante: , avec une dernière charge utile, provenant de la èmeposition dans l’allée , de la séquence de sortie d’une exécution précédente à un instant Tb précédent.
  8. Procédé selon l’une quelconque des revendications 1 à 6, caractérisé en ce qu’il est exécuté de manière itérative, chaque nouvelle exécution étant effectuée à un nouvel instant Tb défini comme un instant auquel aucune charge de la séquence de sortie d’une exécution précédente à un instant Tb précédent ne se trouve dans une portion du collecteur allant de la première allée a1à l’allée contenant la première charge de la séquence de sortie de la nouvelle exécution au nouvel instant Tb.
  9. Procédé selon l’une quelconque des revendications 1 à 6, caractérisé en ce qu’il est exécuté de manière itérative, chaque nouvelle exécution étant effectuée à un nouvel instant Tb calculé avec la formule suivante: , avec:
    - une dernière charge utile, provenant de la èmeposition dans l’allée , de la séquence de sortie d’une exécution précédente à un instant Tb précédent, et
    - obtenu par une incrémentation d’une unité de l’instant Tb précédent.
FR1912777A 2019-10-30 2019-11-15 Procédé de fusion, au sein d’un entrepôt logistique, de k flux entrants de charges utiles en un flux sortant Active FR3103296B1 (fr)

Priority Applications (8)

Application Number Priority Date Filing Date Title
DK20202699.3T DK3816896T3 (da) 2019-10-30 2020-10-20 Fremgangsmåde til sammenlægning af k inkommende strømme af nyttelaster til en udgående strøm i et logistiklager
EP20202699.3A EP3816896B1 (fr) 2019-10-30 2020-10-20 Procédé de fusion, au sein d'un entrepôt logistique, de k flux entrants de charges utiles en un flux sortant
PL20202699.3T PL3816896T3 (pl) 2019-10-30 2020-10-20 Sposób łączenia k przepływów wchodzących ładunków w jeden przepływ wychodzący, w magazynie logistycznym
ES20202699T ES2962842T3 (es) 2019-10-30 2020-10-20 Procedimiento para fusionar, en un almacén logístico, de k flujos de entrada de cargas útiles en un flujo de salida
RU2020135683A RU2749385C1 (ru) 2019-10-30 2020-10-29 Способ определения входящих потоков грузов в один исходящий поток на логистическом складе
CA3097401A CA3097401C (fr) 2019-10-30 2020-10-29 Procede de fusion, au sein d'un entrepot logistique, de k flux entrants de charges utiles en un flux sortant
US17/083,887 US11795009B2 (en) 2019-10-30 2020-10-29 Method for merging, within a logistical warehouse, k incoming flows of payloads into one outgoing flow
CN202011190697.5A CN112749830B (zh) 2019-10-30 2020-10-30 用于在物流仓库内将k个有效负载输入流合并成一个输出流的方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1912231A FR3103182A1 (fr) 2019-10-30 2019-10-30 Procédé de fusion, au sein d’un entrepôt logistique, de k flux entrants de charges utiles en un flux sortant.
FR1912231 2019-10-30

Publications (2)

Publication Number Publication Date
FR3103296A1 true FR3103296A1 (fr) 2021-05-21
FR3103296B1 FR3103296B1 (fr) 2022-07-01

Family

ID=69630459

Family Applications (2)

Application Number Title Priority Date Filing Date
FR1912231A Pending FR3103182A1 (fr) 2019-10-30 2019-10-30 Procédé de fusion, au sein d’un entrepôt logistique, de k flux entrants de charges utiles en un flux sortant.
FR1912777A Active FR3103296B1 (fr) 2019-10-30 2019-11-15 Procédé de fusion, au sein d’un entrepôt logistique, de k flux entrants de charges utiles en un flux sortant

Family Applications Before (1)

Application Number Title Priority Date Filing Date
FR1912231A Pending FR3103182A1 (fr) 2019-10-30 2019-10-30 Procédé de fusion, au sein d’un entrepôt logistique, de k flux entrants de charges utiles en un flux sortant.

Country Status (2)

Country Link
FR (2) FR3103182A1 (fr)
RU (1) RU2749385C1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013150080A1 (fr) * 2012-04-04 2013-10-10 Savoye Systeme et procede de traitement d'une commande

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2167088C2 (ru) * 1998-04-28 2001-05-20 Михаил Ефимович Гренадер Многоэтажный склад штучных грузов
AT506887A1 (de) * 2008-05-26 2009-12-15 Tgw Mechanics Gmbh Lagersystem und verfahren zum betreiben desselben
RU92894U1 (ru) * 2009-11-23 2010-04-10 Государственное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный технологический институт (технический университет)" Автоматизированный многоярусный склад хранения
US9738450B2 (en) * 2013-04-01 2017-08-22 Hoj Engineering & Sales Co., Inc. Warehouse conveyor
US9965730B2 (en) * 2016-08-23 2018-05-08 X Development Llc Autonomous condensing of pallets of items in a warehouse

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013150080A1 (fr) * 2012-04-04 2013-10-10 Savoye Systeme et procede de traitement d'une commande

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DE KOSTER, R.LE-DUC, T.ROODBERGEN, K.J.: "Design and control ofwarehouse order picking: a literature review", EUROPEAN JOURNAL OF OPERATIONAL RESEARCH, vol. 182, no. 2, 2007, pages 481 - 501
IMRAN ALI CHAUDHRYABID ALI KHAN: "A research survey: review of flexible job shop scheduling techniques", INTERNATIONAL TRANSACTIONS IN OPÉRATION RESEARCH, 2015
RUNWEY CHENGMITSUO GENYASUHIRO TSUJIMURA: "Représentation", ASHIKAGA INSTITUTE OF TECHNOLOGY, article "A tutorial survey of Job Shop scheduling problems using genetic algorithls --- Partie I"

Also Published As

Publication number Publication date
FR3103296B1 (fr) 2022-07-01
FR3103182A1 (fr) 2021-05-21
RU2749385C1 (ru) 2021-06-09

Similar Documents

Publication Publication Date Title
EP3465561B1 (fr) Système de stockage tampon et de séquencement de charges comprenant deux élévateurs
EP0092460B1 (fr) Dispositif de classement d'objets manutentionnés
EP3245147A1 (fr) Système et procédé de séquencement pour au moins un poste de préparation
EP3393939A1 (fr) Système de stockage tampon et de séquencement de charges en amont d'au moins un poste de préparation
CA3080655C (fr) Procede de traitement d'une liste de commandes dans un systeme de preparation de commandes, et systeme de preparation de commandes correspondant
EP3816896B1 (fr) Procédé de fusion, au sein d'un entrepôt logistique, de k flux entrants de charges utiles en un flux sortant
EP3693901B1 (fr) Procédé de séquencement de charges dans un système de distribution automatisé, avec réduction d'un désordre lors d'une collecte de charges sur un collecteur
EP2858764B1 (fr) Procédé de préparation de commandes listant des charges unitaires
FR3103296A1 (fr) Procédé de fusion, au sein d’un entrepôt logistique, de k flux entrants de charges utiles en un flux sortant
CA3059728C (fr) Procede de pilotage en mode flux d'un systeme de stockage tampon et de sequencement de charges, et unite de pilotage correspondante
WO2009068792A2 (fr) Procede et dispositif de tri selectif d'objets
CN111703802B (zh) 出入库流程的控制方法和装置、仓储系统
FR2844616A1 (fr) Procede d'optimisation et de synchronisation d'une fabrication, notamment d'ordinateurs
EP3648025B1 (fr) Procédé de pilotage en mode tri d'un système de stockage tampon et de séquencement de charges, et unité de pilotage correspondante
CA3071709C (fr) Procede de sequencement de charges dans un systeme de distribution automatise, avec reduction d'un desordre lors d'une collecte de charges sur un collecteur
FR2844615A1 (fr) Systeme de gestion des plans de vol en tour de controle d'aeroport
WO2024089265A1 (fr) Procédé de détermination d'un plan d'agencement de contenus dans un contenant
EP3854728A1 (fr) Installation et procédé de préparation de commandes
CN114138027A (zh) 一种速度控制的方法、装置、电子设备及可读存储介质
FR2811245A1 (fr) Systeme et procede de traitement de charges isolees, et outils d'aide a la conception d'un tel systeme
Rahmani Planning and routing via decomposition approaches
van de Vrie Developing a model to analyze buffer utilization and work-in-progress reduction in a semi-automated packaging process
EP1550974A1 (fr) Système, procédé et module logiciel de gestion de ressources dans un environnement délimité

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20210521

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5