• Aucun résultat trouvé

Problème de JIT particulier à la thèse

Chaîne logistique

2.3 Problème de JIT particulier à la thèse

2.3.1 Hypothèses générales

Outre les notations α/β/γ que nous continuons d’utiliser et qui définissent toujours parfaitement tout problème d’ordonnancement, nous proposons des sigles spécifiques aux problèmes d’ordonnancement d’atelier en juste à temps que nous considérons dans cette thèse de manière à mieux mettre en évidence les problèmes les plus généraux et leurs cas particuliers.

Notre sigle commence toujours par les trois lettres JIT et signifie que les critères que nous utilisons sont exclusivement des critères d’avance et de retard. Ces trois lettres sont suivies de la partie α décrivant la structure d’atelier considéré si les travaux sont définis par des gammes, comme par exemple :

JIT-1 : pour les problèmes à une machine, JIT-F : pour les problèmes de type flow-shop,

JIT-Fperm : pour les problèmes de type flow-shop de permutation JIT-J : pour les problèmes de type job-shop

JIT-prec : pour les problèmes dont les gammes sont données par des contraintes de précédence entre les opérations (exemple : les problèmes d’assemblage).

Lorsque les éventuels conflits entre les opérations qui utilisent les mêmes ressources ont été levés en choisissant l’ordre de passage (ou séquence de passage) des opérations en conflit sur les ressources (en supposant que l’arbitrage effectué n’a pas créé de circuit), on obtient des cas particulier des problèmes précédents que l’on distingue en ajoutant « Seq » au sigle retenu, comme par exemple :

JIT-1-seq, JIT-F-seq, JIT-Fperm-seq, JIT-prec-seq et pour désigner le problème général d’atelier où les conflits ont été levés : JIT-seq (la partie description de l’atelier n’est plus précisée).

La deuxième partie de notre sigle concerne la manière de construire le critère d’avance et de retard à minimiser.

Dans le cas le plus général qui correspond aux problèmes résolus dans cette thèse, toute opération (considérée ici comme non interruptible) n’induit aucun coût d’avance (ou de retard) si son début est placé sur un intervalle dit « idéal ». Elle induit un coût proportionnel à l’avance si elle commence strictement avant le début de l’intervalle idéal et un coût proportionnel au retard si elle commence strictement après la fin de l’intervalle idéal. Il est à noter que si on définit plusieurs intervalles « idéaux » que l’on associe à la même opération, on peut définir ainsi une fonction de pénalité convexe, continue et linéaire par morceaux autour de l’intervalle idéal associé à l’opération (éventuellement réduit à un point).

Le problème général sera noté T) ou encore T, w=1) ou JIT/op(ΣE-T, w=k) qui signifie que tout opération peut avoir un ou plusieurs intervalles « idéaux » et on peut préciser s’il n’y en a au plus 1 ou s’il peut y en avoir plusieurs. Par ailleurs, le signe Σ rappelle qu’il s’agit d’une somme de pénalités d’avance et de retard.

Il s’agit ici d’intervalle flexible ou mou et on pourrait, en principe, placer l’opération n’importe où (y compris sur les valeurs négatives de l’axe temps). On suppose en fait que toute opération doit être placée sur un horizon défini par l’intervalle de temps [0,H]. On suppose toujours que les instants de début des opérations sont positifs, il n’est donc pas

nécessaire de l’inclure dans le sigle. Par contre, s’il est important de rester dans l’horizon H, on l’indique dans le sigle : JIT/op(ΣE-T,H), de même, s’il existe des contraintes strictes à respecter pour le début au plus tôt et au plus tard des opérations, on l’indique dans le sigle : JIT/op(ΣE-T,hw) où hw signifie Hard Windows (ou date au plus tôt et au plus tard impératives ou fenêtres impératives).

Des cas particuliers ont été considérés dans cette thèse, lorsque l’on considère que seules les premières et les dernières opérations d’un travail impliquent des négociations avec l’amont et/ou l’aval de la chaîne logistique. Nous utilisons des notations pour définir ces cas particuliers qui peuvent permettent d’utiliser des méthodes de résolution simplifiée.

JIT/job(ΣE1-Tm) correspond au cas très particulier où on ne considère des pénalités d’avance que pour la première opération de chaque travail et des pénalités de retard que pour la dernière opération de chaque travail.

JIT/job(ΣE1-T1-Em-Tm) correspond au cas particulier où on considère des pénalités d’avance et de retard pour la première et pour la dernière opération de chaque travail, car on peut négocier en amont et en aval de la chaîne logistique des avances et/ou des retards.

En ce qui concerne les méthodes de résolution que nous présentons dans le chapitre 3, on peut déjà signaler que le problème JIT-seq/job(ΣE1-Tm, w=k) peut être résolu avec la méthode classique connue du Pert Coût, mieux, on peut accélérer l’algorithme primal en tenant compte de la position particulière dans le graphe de précédence des arcs qui peuvent être compressés.

Par contre le problème JIT/job(ΣE1T1-Em-Tm) et plus généralement JIT/op(ΣE-T) nécessite une adaptation de la méthode du Pert Coût où il faut gérer non seulement des arcs que l’on contracte, mais également des arcs que l’on dilate.

Néanmoins, les arcs compressés et les arcs dilatés sont toujours adjacents à la source et au puits, ce qui permet de conserver l’amélioration de la mise en œuvre de l’algorithme primal du Pert Coût.

2.3.2 Le problème d’ordonnancement en juste à temps

On a vu qu’après l’introduction des fenêtres de temps souples et dure (éventuellement virtuelles) entre les différents centres de décisions, les ordonnancements de ces derniers deviennent complètement indépendants. A l’intérieur de chaque centre de décisions on a donc un problème d’ordonnancement en juste à temps avec comme fonction objectif de minimiser la somme des avances et des retards par rapport aux délais négociés. Nous ne prenons pas en compte ici d’autres critères comme la minimisation des stocks, ou la somme des heures supplémentaires, ou les coûts de sous-traitance, maintenance...

Pour le problème particulier où on n’a des pénalités d’avance et/ou de retards que sur les premières et dernières opérations de chaque job, on considère que les centres de production sont organisés en atelier de type flowshop, et que les dates souhaitées et impératives de disponibilité (soft and hard release dates) sont associées aux premières opérations de chaque job (ceci est logique si tous les composants externes sont assemblés sur la première machine puis transportés sur les machines suivantes. C’est la date d’exécution de la première opération de chaque job qui détermine alors s’il est en avance ou en retard par rapport à sa date de disponibilité) ; et que les dates souhaitées et impératives de livraison (soft et hard due dates) sont associées à la dernière opération de chaque job (c’est la date d’exécution de la dernière opération de chaque job qui détermine si le produit correspondant est en avance ou en retard par rapport à sa date de livraison). En utilisant la notation classique en ordonnancement

γ β

α / / , nous pouvons donner la notation suivante à chaque problème d’ordonnancement interne : F/ri,ri,di,di /

αr,iEir +

βr,iTir +

αd,iEid +

βd,iTid. Tel que :

 F : décrit une structure d’atelier en flowshop.

 id

r i E

E et sont les avances par rapport à r ,i di respectivement.

 d

i r i T

T et sont les retards par rapport à r ,i di respectivement.

Il est à noter qu’évidemment, une opération ne peut être à la fois en avance et en retard à la fois.

D’une manière plus générale, et si nous supposons que les dates souhaitées et/ou impératives peuvent être associées à n’importe quelle opération, alors nous décrivons le problème par la notation suivante :J/tminj,t*j,tmaxj/

αjEj +

βjTj tel que :

 t*j : est la date d’exécution idéale de l’opération j .

 tminj,tmaxj sont respectivement les dates minimales et maximales autorisées pour l’opération j .

Pour résoudre ce problème localement au sein de chaque centre de décision, nous proposons une méthode par décomposition. Une solution du problème est donnée par la séquence (permutation ou ordre) de l’exécution des jobs. Si nous supposons que cette séquence est donnée ou fixée, alors nous devons calculer la date de début d’exécution de chaque opération sur toutes les machines de l’atelier avec autorisation de temps morts (idle times) car notre critère est irrégulier (on peut l’améliorer en retardant des opérations). Les séquences de jobs sont explorées par une méta-heuristique et sont modélisées par des chromosomes.

Dans le cas où une séquence est donnée par un chromosome, nous avons les notations suivantes des problèmes simplifiés

:Fseq/ri,ri,di,di/

αr,iEir +

βr,iTir +

αd,iEid +

βd,iTid ou bien j j j j j j j seq t t t E T j / min , *, max /

α +

β

. Ce problème est équivalent à un problème de PERT coût. Nous présentons avec plus de détail l’évaluation des chromosomes dans le chapitre 4.

La recherche de bonnes solutions faisables s’effectue avec des méthodes approchées. Nous avons choisi des méta-heuristiques du type évolutionniste (les algorithmes génétiques) et aussi du type recherche par voisinage (le recuit simulé). Nous générons des séquences avec ces méthodes que nous évaluons avec la méthode du PERT coût. Nous détaillons ces approches de résolutions dans le chapitre 4.

2.3.3 Notations

Pour ce problème nous adoptons les notations suivantes tout au long du présent chapitre. Pour le problème général :

Les données

 L : le nombre de lignes (centres de production) au premier étage.

 L+1 : indice de la ligne d’assemblage (deuxième étage).

 Ml : nombre de machines sur la ligne l.

 ML+1 : nombre de machines sur la ligne d’assemblage.

 mj,l : indice de la machine j de la ligne l.

 Nl : nombre de jobs sur la ligne l.

 Pi,j,l : temps d’exécution de l’opération du job i sur la machine j de la ligne l.

 ri,j : date de disponibilité souhaitée (soft release date) associée à l’opération du job i

sur la machine j.

 ri,j : date de disponibilité impérative (hard release date) associée à l’opération du job i sur la machine j.

 di,j : date de livraison souhaitée (soft due date) associée à l’opération du job i sur la machine j..

 di,j : date de livraison impérative (hard due date) associée à l’opération du job i sur la machine j..

 αr ,ij : pénalité d’avance par unité de temps par rapport à ri associée à l’opération du job i sur la machine j.

 αd ,i j : pénalité de retard par unité de temps par rapport à ri associée à l’opération du job i sur la machine j..

 βr ,ij : pénalité d’avance par unité de temps par rapport à di associée à l’opération du job i sur la machine j..

 βd ,i j : pénalité de retard par unité de temps par rapport à di associée à l’opération du job i sur la machine j..

Pour le cas particulier du JIT/job(ΣE1-T1-Em-Tm)

 M : nombre de machines.

 mj : indice de la machine j.

 N : nombre de jobs.

 Pi,j : temps d’exécution de l’opération du job i sur la machine j.

 ri : date de disponibilité souhaitée (soft release date) associée à la première opération du job i.

 ri : date de disponibilité impérative (hard release date) associée à la première opération du job i.

 di : date de livraison souhaitée (soft due date) associée à la dernière opération du job i.

 di : date de livraison impérative (hard due date) associée à la dernière opération du job i.

 αr i : pénalité d’avance par unité de temps par rapport à ri associée au job i.

 αd i : pénalité de retard par unité de temps par rapport à ri associée au job i.

 βr i : pénalité d’avance par unité de temps par rapport à di associée au job i.

 βd i : pénalité de retard par unité de temps par rapport à di associée au job i. Variables

 ai,j : date de début d’exécution de l’opération correspondant au job i sur la machine j.

Fonction objectif

 minimiser la somme des avances et des retards par rapports aux dates souhaitées de disponibilités des composants, et de livraison des produits finis.