La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

GPA750 Les ateliers multigammes Chapitre 5 Cours 8-9.

Présentations similaires


Présentation au sujet: "GPA750 Les ateliers multigammes Chapitre 5 Cours 8-9."— Transcription de la présentation:

1 GPA750 Les ateliers multigammes Chapitre 5 Cours 8-9

2 Sommaire Ordonnancement dans les ateliers multigammes (Job shop scheduling) : –Formulation disjonctive. –Énumération implicite sur les calendriers actifs. –La procédure de résolution par analyse de goulots successifs : Minimisation du temps total de finition C max. Minimisation de la somme des tardivetés pondérées. –Une procédure générale pour lordonnancement dans les ateliers flexibles monogames avec temps de changements.

3 Ateliers multigammes (Job shop) 1. Description de lenvironnement de latelier –m machines (i = 1, 2, …, m); –n commandes (j = 1, 2, … n) à traiter avec une fonction objectif à minimiser. Chaque commande j a une opération (i, j) à effectuer sur la machine i pour une durée de p ij. Les routages des commandes sur les machines dans latelier sont connues et varient de commande en commande. Par exemple: –C1 : M1-M2-M4-M5. –C2: M2-M3-M5-M4-M1. Chaque commande peut passer sur chaque machine au plus une fois : il n y a pas de re-circulation (par exemple : M k -M l -M k ). 2. Pratique : –Industrie des semi-conducteurs (re-circulation). –Hôpital : les commandes sont les patients;chaque patient a son routage et doit être traité à un certain nombre de stations (départements) dans le système.

4 Ateliers multigammes (Job shop) 3. Définitions et notation pour Jm//C max sans re-circulation –On définit le graphe disjonctif G = (N, A, B) pour représenter Jm//C max sans re-circulation où: –N: lensemble des nœuds correspondant à toutes les opérations avec deux nœuds supplémentaires : un nœud source (u) et un nœud puit (v). –A: lensemble des arcs conjonctifs qui représentent les contraintes de précédence entre les opérations dune seule commande i.e., les arcs du type (i, j) -> (k, j) qui définissent les contraintes de routage de la commande j. –B: lensemble des arcs disjonctifs i.e. deux opérations (i, l) et (i, j) appartenant à 2 commandes différentes l et j qui doivent être traitées par la même machine i sont reliées entre elles par 2 arcs disjonctifs allant dans les deux sens opposés : arcs disjonctifs (i, l) (i, j). –Note : Un arc disjonctif entre 2 commandes l et j exprime le fait que l et j doivent sexécuter dans des intervalles de temps disjoints.

5 Ateliers multigammes avec deux machines : J2//C max sans recirculation 4. Problème J2//C max sans re-circulation. Comment min C max ? J1,1 M1M2 J2,2 J1,2 J2,1

6 Ateliers multigammes avec deux machines : J2//C max sans recirculation Il y a 4 ensembles de commandes : Type 1 : J1,1 = ensemble des commandes devant être traitées seulement sur la machine M1. Type 2 : J2,2 = ensemble des commandes devant être traitées seulement sur la machine M2. Type 3 : J1,2 = ensemble des commandes qui doivent être traitées d abord sur la machine M1 et ensuite sur la machine M2 : Type 4 : J2,1 = ensemble des commandes qui doivent être traitées dabord sur la machine M2 et ensuite sur la machine M1: M1M2 M1

7 Algorithme pour résoudre J2//C max sans recirculation Algorithme 1: On suppose qu une machine doit compléter toutes les commandes d un type donné avant de passer à un autre type de commandes. Étape 1 : ordonnancer les commandes de type 1 avec un ordre quelconque pour donner la séquence J1,1. Étape 2: ordonnancer les commandes de type 2 avec un ordre quelconque pour donner la séquence J2,2. Étape 3 : ordonnancer les commandes de type 3 selon l algorithme de Johnson pour F2//C max ou F2//F max. Étape 4: ordonnancer les commandes de type 3 selon l algorithme de Johnson pour F2//C max ou F2//F max. Attention : Pour l étape 4, M2 est considérée comme la première machine!

8 Algorithme pour résoudre J2//C max sans recirculation Ordonnancement obtenu : Machine 1 : Ordre de traitement sur M1 (J1,2; J1,1; J2,1). Machine 2 : Ordre de traitement sur M2 (J2,1; J2,2; J1,2). Cas particulier: Si type 1 et type 2 sont absents, on a pour J2//C max Algorithme 2: Étape 1 : ordonnancer les commandes de lensemble J1,2 selon lalgorithme de Johnson pour F2//C max ou F2//F max. Étape 2: ordonnancer les commandes de l ensemble J2,1 selon lalgorithme de Johnson pour F2//C max ou F2//F max. Ordonnancement obtenu : Machine 1 : Ordre de traitement sur M1 (J1,2; J2,1). Machine 2 : Ordre de traitement sur M2 (J2,1; J1,2). Exemple.

9 Formulation mathématique de Jm//C max sans recirculation et représentation disjonctive Variables de décision: y ij – temps de début de la commande j sur la machine i i.e. temps de début de lopération (i, j). Remarque: Notez que seulement une des deux contraintes disjonctives doit être active. Le graphe disjonctif G = (N, A, B) : A : Contraintes de routage de chaque commande j : (i, j) -> (k, j). B: Ensemble des arcs disjonctifs : un sous-ensemble par machine. N: Ensemble des opérations.

10 Représentation dun ordonnancement Pour avoir un ordonnancement réalisable: – Il faut choisir un arc de chaque paire darcs disjonctifs de sorte quil ny ait pas de cycle dans le graphe résultant. On a alors: –Une paire darcs disjonctifs par opération sur une même machine. –Un sous-ensemble darcs par machine. En résumé, spécifier un ordonnancement réalisable revient à: –Spécifier les arcs pour chaque machine. –Ce qui correspond à spécifier le séquence des opérations sur chaque machine. Voir exemple (page suivante). Comment spécifier les arcs (ou ordonnancement pour chaque) machine? –En solutionnant un problème correspondant dordonnancement sur une machine… –La fonction à optimiser pour ce problème dune machine dépend de la fonction globale.

11 Exemple dun ordonnancement réalisable Aucune machine ordonnancéeSéquence sur machine 1 Séquence sur machine 2 Un ordonnancement complet Attention aux cycles lorsquon fixe les séquences!

12 Problème dune machine Considérons la machine 1. On a un problème dune machine avec les opérations: –(1,1), (1,2), (1,3). Le temps au plus tôt r 1j pour débuter lopération (1, j) correspond : –Le chemin le plus long du nœud de source (u) au nœud (i, j) = L(u,(i, j)). r 1j = L(u,(1,j)) – r 11 = 0; – r 12 = 8; – r 13 = 0;

13 Procédure dénumération complète des calendriers actifs Pappel : Calendrier actif –Impossible de générer un autre calendrier en changeant la séquence sur les machines de sorte quune opération commence plus tôt et aucune opération commence plus tard. Algorithme – –Énumération des calendriers actifs. Étape 1: – est lensemble qui contient les premières opérations de chaque commande j. –r ij = 0 pour (i, j). Étape 2: sélection de la machine –Pour lordonnancement partiel, calculer : t( ) = min (i, j) {r ij +p ij }. –Soit i* la machine où le minimum est atteint. Étape 3: Branchement –Soit lensemble des opérations (i*, j) tel que r i*j < t( ). –Pour chaque opération dans, considérer une extension de la séquence partielle avec cette opération comme étant la prochaine sur la machine i*. –Pour chaque extension, supprimer lopération ordonnancée de et placer ses successeurs immédiats dans. –Retourner à létape 2.

14 Larbre correspondant t 1 = t(Ω) = min (i,j) Є Ω {r ij +p ij } Ω = {(i*,l), (i*,k), (i*,p)} Ω lensemble qui contient les premières pérations de chaque commande j. Avantage: La procédure dénumération peut être utilisée pour tous les fonctions objectifs: C max, L max, etc. Désavantage : temps de calcul très long. Combien de noeuds à chaque niveau?

15 Procédure dénumération implicite (Branch and Bound) À chaque nœud de l arbre : –Calculer une borne inférieure sur toute solution découlant de ce nœud. Supposons que la fonction à minimiser est C max. Calcul des bornes inférieures : Au nœud v, soit lopération (i*, j) qui est choisie. Les arcs disjonctifs suivants doivent être ajoutés sur la machine i*: –(i*,j) -> (i*,k), pour toute opération k qui nest pas encore ordonnancée sur la machine i*. Soit D lensemble de tous les arcs disjonctifs qui ont été fixés par lordonnancement partiel au nœud v. Une borne inférieure LB(v) sur C max est donnée par le calcul du chemin critique (ou le chemin le plus long) dans le graphe G(D). Voir exemple

16 Calcul d une meilleure borne inférieure pour Jm//C max sans recirculation Une meilleure borne est donnée par la solution du problème à une machine où: Il y a n opérations. Chaque opération (i, j) a une date de mise en disponibilité r ij et une date promise d ij. On veut minimiser L max. En résumé: À chaque nœud v, on peut construire un sous problème similaire pour chacune des m machines. –Soit la machine i et le graphe G(N, A, D) où : D correspond aux arcs disjonctifs déjà fixés aux itérations précédentes. –On a pour chaque opération (i, j) sur la machine i: r ij = L(u,(i, j)): Chemin le plus long de la source (u) au nœud (i, j) dans G. d ij = LB(v) – L((i, j),v)) + p ij. –Soit L max (i), la solution pour la machine i. La nouvelle borne est obtenue : –en trouvant la solution optimale aux m sous-problèmes (un pour chaque machine) L max (i), i= 1,…m; –en prenant le maximum sur les L max (i).

17 Application de la méthode de Branch and Boud : Exemple Niveau 0 : –Aucun arc disjonctif et C max = 22. –LB = 22 (chemin le plus long dans G). Niveau 1: –Ω = {(1,1), (2,2), (1,3)} et r 11 = r 22 = r 13 = 0. –t( Ω ) = min (0+10, 0+8, 0+4) = 4. –i* = 1 (machine 1). –Ω = {(1,1), (1,3)} car r 11, r 13 < t( Ω ) = 4. Donc, deux branches du noeud 0 et donc deux séquences partielles au nœud 1: Calcul des bornes. –(1,1) et (1,3). –Si (1,1) est choisi pour la première position alors les arcs disjonctifs suivants doivent être ajoutés : (1,1) -> (1,2) (1,1) -> (1,3) –Avec ces deux arcs C max = LB = 24. –Pour avoir une meilleure borne, il faut solutionner 3 sous problèmes dune machine pour M1, M2 et M3.

18 Application de la méthode de Branch and Boud : Exemple (suite) Avantage: La procédure dénumération implicite trouve la solution optimale pour C max. Désavantage: temps de calcul très long

19 Procédure du Shifting Bottleneck ou du goulot changeant pour Jm//C max Qualité de l heuristique : Cette procédure nexplore pas toutes les solutions –Par conséquent, elle ne garantit pas la solution optimale. –Cependant, en pratique, lheuristique donne de très bonnes solutions. Soit –M : lensemble des machines se trouvant dans l atelier. –Mo : lensemble des machines où les séquences des opérations sont fixées. Les arcs disjonctifs sont déjà définis. –Le graphe G est obtenu de G=(N, A, B) en fixant les arcs disjonctifs de lensemble Mo et en enlevant les arcs correspondant aux machines de lensemble B - Mo. Au début Mo est vide : Mo =. –À chaque itération, on fixe la séquence sur une machine goulot: On choisit la machine goulot en solutionnant M-M 0 problèmes dune machine où il faut minimiser L max : L max (k) = max i M-Mo {L max (i)}. Soit k la machine goulot. On a : C max (Mo k) >= C max (Mo) + L max (k). –Où C max (Mo) est le chemin critique dans le graphe G. –Avant de passer à litération suivante, on ré-optimise les machines de lensemble Mo. –Ajouter k dans Mo. Il faut faire attention aux cycles!

20 Procedure du Shifting Bottleneck ou du goulot changeant (p )

21 Application de l heuristique du goulot changeant : Exemple 5.3.1

22 Application de l heuristique du goulot changeant : Exemple (suite)

23 Delayed-Precedence constraints : Exemple 5.3.2

24 Ajout des contraintes pour empêcher des cycles Delayed Precedence constraints

25 Procédure du goulot changeant pour minimiser la somme des tardivetés Soit un atelier avec m machines et n commandes. Pas de re-circulation possible. On veut minimiser w j T j. Approche similaire au goulot où à chaque itération, on résout un certain nombre de problèmes dune machine. Soit –M : lensemble des machines. –Mo: lensemble des machines où les séquences des opérations sont fixées. Les arcs disjonctifs sont déjà définis. Le graphe disjonctif G = (N, A, B) est différent dans ce cas: –Un nœud de source u. –n puits : v 1, v 2, …, v n (un puit pour chaque commande). –Le chemin le plus long de u à v k donne le temps de finition de la commande k. Le graphe G est obtenu de G = (N, A, B) en fixant les arcs disjonctifs de lensemble Mo et en enlevant les arcs correspondant aux machines de lensemble B-Mo. –Le graphe G est nécessairement acyclique (pas de cycle).

26 Le graphe associé au problème de job shop sans re-circulation pour minimiser w j T j

27 Procédure du goulot changeant pour minimiser la somme des tardivetés (suite) Soit C k la date de finition de la commande k dans le graphe G : C k correspond à L(u,v k ) dans G. Au début Mo est vide : Mo =. À chaque itération, on fixe la séquence sur une machine de lensemble M-Mo. Soit i une machine de M-Mo : –Afin déviter une augmentation du temps de finition C k, chaque opération (i, j) de la machine i doit être complétée avant la date d k ij. –Étant donné que chaque opération (i, j) peut potentiellement retarder nimporte laquelle des n commandes, cette opération possède n dates promises : (d 1 ij, d 2 ij,…, d n ij ). La forme de la courbe de pénalité est donnée par une fonction linéaire par morceaux (piece-wise linear – voir figure 5.10).

28 Structure du sous-problème i pour minimiser la somme des tardivetés Le sous problème correspondant à la machine i est décrit comme suit : –Min la somme des tardivetés sous : des contraintes de mise en disponibilité. une fonction de pénalité linéaire par morceaux. –Peut être résolu de façon heuristique à laide dune extension de lalgorithme ATC. –La priorité dune opération (i, j) est donnée par la valeur suivante : Soit k la machine goulot. Celle-ci est déterminée par : –La machine ayant la plus grande coût de pénalité. –En utilisant dautres procédures plus complexes (voir p. 100). Avant de passer à litération suivante, on ré-optimise les machines de lensemble Mo. Ajouter k dans Mo

29 Ordonnancement dans les ateliers flexibles monogames avec temps de changements Un nombre détapes. Chaque étape possède : –plusieurs machines en parallèles; –ou des machines flexibles avec vitesse variable; –temps de changement qui dépendent de la séquence.

30 Procédure générale d ordonnancement dans les ateliers flexibles monogames avec temps de changements. Identification de létape goulot. Détermination des fenêtres de temps sur le goulot. Calcul de la capacité requise sur le goulot et balancement de la charge de travail si nécessaire. Ordonnancement du goulot. Ordonnancement des étapes non-goulots.

31


Télécharger ppt "GPA750 Les ateliers multigammes Chapitre 5 Cours 8-9."

Présentations similaires


Annonces Google