Gpa750 les ateliers multigammes chapitre 5
This presentation is the property of its rightful owner.
Sponsored Links
1 / 31

GPA750 Les ateliers multigammes Chapitre 5 PowerPoint PPT Presentation


  • 65 Views
  • Uploaded on
  • Presentation posted in: General

GPA750 Les ateliers multigammes Chapitre 5. Cours 8-9. 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 :

Download Presentation

GPA750 Les ateliers multigammes Chapitre 5

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Gpa750 les ateliers multigammes chapitre 5

GPA750Les ateliers multigammesChapitre 5

Cours 8-9


Sommaire

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 Cmax.

      • Minimisation de la somme des tardivetés pondérées.

    • Une procédure générale pour l’ordonnancement dans les ateliers flexibles monogames avec temps de changements.


Ateliers multigammes job shop

Ateliers multigammes(Job shop)

1. Description de l’environnement de l’atelier

  • 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 pij.

    • Les routages des commandes sur les machines dans l’atelier 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 : Mk-Ml-Mk).

      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.


Ateliers multigammes job shop1

Ateliers multigammes(Job shop)

3. Définitions et notation pour Jm//Cmax sans re-circulation

  • On définit le graphe disjonctif G = (N, A, B) pour représenter Jm//Cmax sans re-circulation où:

  • N: l’ensemble 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: l’ensemble des arcs conjonctifs qui représentent les contraintes de précédence entre les opérations d’une seule commande i.e., les arcs du type (i, j) -> (k, j) qui définissent les contraintes de routage de la commande j.

  • B: l’ensemble 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 s’exécuter dans des intervalles de temps disjoints.


Ateliers multigammes avec deux machines j2 c max sans recirculation

J2,2

M1

M2

J2,1

J1,2

J1,1

Ateliers multigammes avec deux machines : J2//Cmax sans recirculation

4. Problème J2//Cmax sans re-circulation.

  • Comment min Cmax?


Ateliers multigammes avec deux machines j2 c max sans recirculation1

M1

M2

M2

M1

Ateliers multigammes avec deux machines : J2//Cmax 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 d’abord sur la machine M2 et ensuite sur la machine M1:


Algorithme pour r soudre j2 c max sans recirculation

Algorithme pour résoudre J2//Cmax 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//Cmax ou F2//Fmax .

  • Étape 4: ordonnancer les commandes de type 3 selon l ’algorithme de Johnson pour F2//Cmax ou F2//Fmax .

  • Attention : Pour l ’étape 4, M2 est considérée comme la première machine!


Algorithme pour r soudre j2 c max sans recirculation1

Algorithme pour résoudre J2//Cmax 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//Cmax

    Algorithme 2:

  • Étape 1 : ordonnancer les commandes de l’ensemble J1,2 selon l’algorithme de Johnson pour F2//Cmax ou F2//Fmax .

  • Étape 2: ordonnancer les commandes de l ’ensemble J2,1 selon l’algorithme de Johnson pour F2//Cmax ou F2//Fmax .

    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 .


Formulation math matique de jm c max sans recirculation et repr sentation disjonctive

Formulation mathématique de Jm//Cmax sans recirculation et représentation disjonctive

Variables de décision:

yij – temps de début de la commande j sur la machine i i.e. temps de début de l’opé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.


Repr sentation d un ordonnancement

Représentation d’un ordonnancement

  • Pour avoir un ordonnancement réalisable:

    • Il faut choisir un arc de chaque paire d’arcs disjonctifs de sorte qu’il n’y ait pas de cycle dans le graphe résultant.

  • On a alors:

    • Une paire d’arcs disjonctifs par opération sur une même machine.

    • Un sous-ensemble d’arcs 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 d’ordonnancement sur une machine…

    • La fonction à optimiser pour ce problème d’une machine dépend de la fonction globale.


Exemple d un ordonnancement r alisable

Exemple d’un ordonnancement réalisable

Aucune machine ordonnancée

Séquence 1-2-3 sur machine 1

Un ordonnancement complet

Séquence 1-2-3 sur machine 2

Séquence 1-2-3 sur machine 1

Attention aux cycles lorsqu’on fixe les séquences!


Probl me d une machine

Considérons la machine 1.

On a un problème d’une machine avec les opérations:

(1,1), (1,2), (1,3).

Le temps au plus tôt r1j pour débuter l’opération (1, j) correspond :

Le chemin le plus long du nœud de source (u) au nœud (i, j) = L(u,(i, j)).

r1j = L(u,(1,j))

r11= 0;

r12= 8;

r13= 0;

Problème d’une machine


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 qu’une opération commence plus tôt et aucune opération commence plus tard.

Algorithme 5.2.1 –

Énumération des calendriers actifs.

Étape 1:

 est l’ensemble qui contient les premières opérations de chaque commande j.

rij= 0 pour (i, j) .

Étape 2: sélection de la machine

Pour l’ordonnancement partiel, calculer :

t() = min (i, j)  {rij+pij}.

Soit i* la machine où le minimum est atteint.

Étape 3: Branchement

Soit ’ l’ensemble des opérations (i*, j) tel que

ri*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 l’opération ordonnancée de et placer ses successeurs immédiats dans  .

Retourner à l’étape 2.

Procédure d’énumération complète des calendriers actifs


L arbre correspondant

L’arbre correspondant

  • Ω l’ensemble qui contient les premières pérations de chaque commande j.

t1 = t(Ω) = min (i,j) ЄΩ{rij+pij}

Ω’ = {(i*,l), (i*,k), (i*,p)}

  • Avantage: La procédure d’énumération peut être utilisée pour tous les fonctions objectifs: Cmax, Lmax, etc.

  • Désavantage : temps de calcul très long.

    • Combien de noeuds à chaque niveau?


Proc dure d num ration implicite branch and bound

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 Cmax.

  • Calcul des bornes inférieures :

    • Au nœud v, soit l’opé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 n’est pas encore ordonnancée sur la machine i*.

    • Soit D’ l’ensemble de tous les arcs disjonctifs qui ont été fixés par l’ordonnancement partiel au nœud v.

    • Une borne inférieure LB(v) sur Cmax est donnée par le calcul du chemin critique (ou le chemin le plus long) dans le graphe G(D’). Voir exemple 5.2.2.


Calcul d une meilleure borne inf rieure pour jm c max sans recirculation

Calcul d ’une meilleure borne inférieure pour Jm//Cmax 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é rij et une date promise dij.

    • On veut minimiser Lmax.

  • 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:

      • rij = L(u,(i, j)): Chemin le plus long de la source (u) au nœud (i, j) dans G.

      • dij = LB(v’) – L((i, j),v)) + pij.

    • Soit Lmax(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) Lmax(i), i= 1,…m;

    • en prenant le maximum sur les Lmax(i).


  • Application de la m thode de branch and boud exemple 5 2 2

    Niveau 0 :

    Aucun arc disjonctif et Cmax = 22.

    LB = 22 (chemin le plus long dans G).

    Niveau 1:

    Ω = {(1,1), (2,2), (1,3)} et r11= r22= r13 = 0.

    t(Ω) = min (0+10, 0+8, 0+4) = 4.

    i* = 1 (machine 1).

    Ω’ = {(1,1), (1,3)} car r11, r13< 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 Cmax = LB = 24.

    Pour avoir une meilleure borne, il faut solutionner 3 sous problèmes d’une machine pour M1, M2 et M3.

    Application de la méthode de Branch and Boud : Exemple 5.2.2


    Application de la m thode de branch and boud exemple 5 2 2 suite

    Application de la méthode de Branch and Boud : Exemple 5.2.2 (suite)

    • Avantage: La procédure d’énumération implicite trouve la solutionoptimale pour Cmax.

    • Désavantage: temps de calcul très long


    Proc dure du shifting bottleneck ou du goulot changeant pour jm c max

    Procédure du ‘Shifting Bottleneck’ou du goulot changeant pour Jm//Cmax

    • Qualité de l ’heuristique : Cette procédure n’explore pas toutes les solutions

      • Par conséquent, elle ne garantit pas la solution optimale.

      • Cependant, en pratique, l’heuristique donne de très bonnes solutions.

    • Soit

      • M : l’ensemble des machines se trouvant dans l ’atelier.

      • Mo : l’ensemble 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 l’ensemble Mo et en enlevant les arcs correspondant aux machines de l’ensemble 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-M0 problèmes d’une machine où il faut minimiser Lmax: Lmax (k) = maxiM-Mo {Lmax(i)}.

        • Soit k la machine goulot. On a :

        • Cmax(Mo  k) >= Cmax (Mo) + Lmax(k).

          • Où Cmax (Mo) est le chemin critique dans le graphe G’.

      • Avant de passer à l’itération suivante, on ré-optimise les machines de l’ensemble Mo.

      • Ajouter k dans Mo.

    • Il faut faire attention aux cycles!


    Procedure du shifting bottleneck ou du goulot changeant p 91 92

    Procedure du ‘Shifting Bottleneck’ ou du goulot changeant (p. 91-92)


    Application de l heuristique du goulot changeant exemple 5 3 1

    Application de l ’heuristique du goulot changeant : Exemple 5.3.1


    Application de l heuristique du goulot changeant exemple 5 3 1 suite

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


    Delayed precedence constraints exemple 5 3 2

    Delayed-Precedence constraints : Exemple 5.3.2


    Ajout des contraintes pour emp cher des cycles

    Ajout des contraintes pour empêcher des cycles

    Delayed Precedence constraints


    Proc dure du goulot changeant pour minimiser la somme des tardivet s

    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 wjTj.

    • Approche similaire au goulot où à chaque itération, on résout un certain nombre de problèmes d’une machine.

    • Soit

      • M : l’ensemble des machines.

      • Mo: l’ensemble 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 : v1, v2, …, vn (un puit pour chaque commande).

      • Le chemin le plus long de u à vk 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 l’ensemble Mo et en enlevant les arcs correspondant aux machines de l’ensemble B-Mo.

      • Le graphe G’ est nécessairement acyclique (pas de cycle).


    Le graphe associ au probl me de job shop sans re circulation pour minimiser w j t j

    Le graphe associé au problème de job shop sans re-circulation pour minimiser wjTj


    Proc dure du goulot changeant pour minimiser la somme des tardivet s suite

    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,vk) dans G’.

    • Au début Mo est vide : Mo = .

    • À chaque itération, on fixe la séquence sur une machine de l’ensemble 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 dkij.

      • Étant donné que chaque opération (i, j) peut potentiellement retarder n’importe laquelle des n commandes, cette opération possède n dates promises : (d1ij, d2ij,…, dnij).

    • 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).


    Structure du sous probl me i pour minimiser la somme des tardivet s

    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 à l’aide d’une extension de l’algorithme ATC.

      • La priorité d’une 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 d’autres procédures plus complexes (voir p. 100).

    • Avant de passer à l’itération suivante, on ré-optimise les machines de l’ensemble Mo.

    • Ajouter k dans Mo


    Ordonnancement dans les ateliers flexibles monogames avec temps de changements

    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.


    Proc dure g n rale d ordonnancement dans les ateliers flexibles monogames avec temps de changements

    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.


  • Login